Module:TableGenerator

Revision as of 22:10, 14 September 2024 by Sur (talk | contribs) (Undo revision 5127 by Sur (talk))

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