Module:TableGenerator: Difference between revisions
Jump to navigation
Jump to search
m using 1 parameter split by commas as args |
m json arg |
||
Line 2: | Line 2: | ||
--<table class="wikitable"> | --<table class="wikitable"> | ||
--{{#invoke: | --{{#invoke:YourModuleName|createHtmlTable | ||
--|cols=3 | |||
--|onlyBody=true | |||
--|cell_values=[ "Cell 1", "Cell 2", "Cell 3", "Cell 4", "Cell 5", "Cell 6", "Cell 7" ] | |||
--}} | |||
--</table> | --</table> | ||
--creates | --creates | ||
-- | --Cell 1, Cell 2, Cell 3 | ||
-- | --Cell 4, Cell 5 | ||
function p. | function p.createHtmlTable(frame) | ||
local args = frame.args | local args = frame.args | ||
local cols = tonumber(args['cols']) or | local cols = tonumber(args['cols']) or 3 | ||
local onlyBody = args['onlyBody'] == 'true' | local onlyBody = args['onlyBody'] == 'true' | ||
local | local cell_values_json = args['cell_values'] or "[]" | ||
local values = | local values = json.decode(cell_values_json) -- Decode JSON string | ||
local result = '' | local result = '' | ||
if not onlyBody then | if not onlyBody then | ||
result = result .. '<table class="wikitable">\n' | result = result .. '<table class="wikitable">\n' | ||
end | end | ||
local count = 0 | local count = 0 | ||
for i, value in ipairs(values) do | for i, value in ipairs(values) do | ||
if count % cols == 0 then | if count % cols == 0 then | ||
if count > 0 then | if count > 0 then | ||
Line 39: | Line 34: | ||
end | end | ||
result = result .. ' <td>' .. value .. '</td>\n' | result = result .. ' <td>' .. value .. '</td>\n' | ||
count = count + 1 | count = count + 1 | ||
end | end | ||
if count % cols ~= 0 then | if count % cols ~= 0 then | ||
result = result .. ' </tr>\n' | result = result .. ' </tr>\n' |
Revision as of 22:07, 14 September 2024
Documentation for this module may be created at Module:TableGenerator/doc
local p = {}
--<table class="wikitable">
--{{#invoke:YourModuleName|createHtmlTable
--|cols=3
--|onlyBody=true
--|cell_values=[ "Cell 1", "Cell 2", "Cell 3", "Cell 4", "Cell 5", "Cell 6", "Cell 7" ]
--}}
--</table>
--creates
--Cell 1, Cell 2, Cell 3
--Cell 4, Cell 5
function p.createHtmlTable(frame)
local args = frame.args
local cols = tonumber(args['cols']) or 3
local onlyBody = args['onlyBody'] == 'true'
local cell_values_json = args['cell_values'] or "[]"
local values = json.decode(cell_values_json) -- Decode JSON string
local result = ''
if not onlyBody then
result = result .. '<table class="wikitable">\n'
end
local count = 0
for i, value in ipairs(values) do
if count % cols == 0 then
if count > 0 then
result = result .. ' </tr>\n'
end
result = result .. ' <tr>\n'
end
result = result .. ' <td>' .. value .. '</td>\n'
count = count + 1
end
if count % cols ~= 0 then
result = result .. ' </tr>\n'
end
if not onlyBody then
result = result .. '</table>'
end
return result
end
return p