Jump to content

The wiki is in the process of updating to the latest major game changes. Any contributions are appreciated!
Start here to learn how to edit and join our Discord server to make suggestions.

Module:TableGenerator

From The Deadlock Wiki
Revision as of 22:00, 14 September 2024 by Sur (talk | contribs)

Documentation for this module may be created at Module:TableGenerator/doc

local p = {}

--<table class="wikitable">
--{{#invoke: TableGenerator | generateHtmlTable | cols=3 | onlyBody=true | Item 1 | Item 2 | Item 3 | Item 4 | Item 5 }}
--</table>

--creates

--Item 1, Item 2, Item 3
--Item 4, item 5
function p.generateHtmlTable(frame)
    -- Get the arguments passed to the template
    local args = frame.args
    local cols = tonumber(args['cols']) or 3  -- Default number of columns is 3
    local onlyBody = args['onlyBody'] == 'true'  -- Check if onlyBody is set to true
    
    -- Initialize the HTML table structure
    local result = ''
    
    if not onlyBody then
        result = result .. '<table class="wikitable">\n'
    end
    
    local count = 0
    for i, value in ipairs(args) do
        -- If it's the start of a new row
        if count % cols == 0 then
            if count > 0 then
                result = result .. '  </tr>\n'
            end
            result = result .. '  <tr>\n'
        end

        -- Add the value as a table cell
        result = result .. '    <td>' .. value .. '</td>\n'
        count = count + 1
    end
    
    -- Close the last row if necessary
    if count % cols ~= 0 then
        result = result .. '  </tr>\n'
    end

    if not onlyBody then
        result = result .. '</table>'
    end

    return result
end

--Used for converting a list to a parameter list without resorting to string parser functions
--{{#invoke:TableGenerator|replaceCommasWithPipes|Your,string,with,commas}}
--outputs
--Your|string|with|commas
function p.replaceCommasWithPipes(frame)
    -- Get the input string from the template arguments
    local inputString = frame.args[1] or ""
    
    -- Replace all commas with pipes
    local outputString = inputString:gsub(",", "|")
    
    return outputString
end

return p