Module:TableGenerator: Difference between revisions
Jump to navigation
Jump to search
m removed if i>1 |
mNo edit summary |
||
Line 47: | Line 47: | ||
return result | 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 | end | ||
return p | return p |
Revision as of 22:00, 14 September 2024
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