Module:DynamicTable: Difference between revisions
From TwogPedia
(Created page with "local getArgs = require('Module:Arguments').getArgs local DynamicTable = {} function DynamicTable.main(frame) local args = getArgs(frame) local tableContainer = mw.html.create('table'):addClass('wikitable') local split = mw.text.split(args.columns, ',') local headerRow = mw.html.create('tr') for i = 1, #split do local th = mw.html.create('th'):wikitext(mw.text.trim(split[i])) headerRow:node(th) end tableContainer:node(headerRow):node(args.rows) return ta...") |
No edit summary |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
function DynamicTable.main(frame) | function DynamicTable.main(frame) | ||
local args = getArgs(frame) | |||
local IconHtml = '[[File:Work-hours-icon.png|30px|alt=Icon]]' | |||
local container = mw.html.create('div'):addClass('container') | |||
container:node(mw.html.create('div'):addClass('news-icon'):wikitext(IconHtml .. ' <span>Equipment </span>')) | |||
-- local tableContainer = mw.html.create('table'):addClass('striped-table') | |||
local tableContainer = mw.html.create('table'):addClass('striped-table'):addClass('equipment-table') | |||
if (args.columns) then | |||
local split = mw.text.split(args.columns, ',') | |||
local headerRow = mw.html.create('tr'):addClass('headerRow') | |||
for i = 1, #split do | |||
local th = mw.html.create('th'):wikitext(mw.text.trim(split[i])) | |||
headerRow:node(th) | |||
end | |||
tableContainer:node(headerRow) | |||
end | |||
if (args.rows) then | |||
tableContainer:node(args.rows) | |||
end | |||
container:node(tableContainer) | |||
return container | |||
end | end | ||
function DynamicTable.row(frame) | function DynamicTable.row(frame) | ||
local args = getArgs(frame) | |||
local split = mw.text.split(args[1], ',') | |||
local row = mw.html.create('tr'):addClass('bodyRow') | |||
for i = 1, #split do | |||
local td = mw.html.create('td'):wikitext(mw.text.trim(split[i])) | |||
if #split == 1 then td:attr('colspan', 5):addClass('fw-600') end | |||
row:node(td) | |||
end | |||
return row | |||
end | end | ||
return DynamicTable | return DynamicTable |
Latest revision as of 21:00, 30 April 2025
Documentation for this module may be created at Module:DynamicTable/doc
local getArgs = require('Module:Arguments').getArgs
local DynamicTable = {}
function DynamicTable.main(frame)
local args = getArgs(frame)
local IconHtml = '[[File:Work-hours-icon.png|30px|alt=Icon]]'
local container = mw.html.create('div'):addClass('container')
container:node(mw.html.create('div'):addClass('news-icon'):wikitext(IconHtml .. ' <span>Equipment </span>'))
-- local tableContainer = mw.html.create('table'):addClass('striped-table')
local tableContainer = mw.html.create('table'):addClass('striped-table'):addClass('equipment-table')
if (args.columns) then
local split = mw.text.split(args.columns, ',')
local headerRow = mw.html.create('tr'):addClass('headerRow')
for i = 1, #split do
local th = mw.html.create('th'):wikitext(mw.text.trim(split[i]))
headerRow:node(th)
end
tableContainer:node(headerRow)
end
if (args.rows) then
tableContainer:node(args.rows)
end
container:node(tableContainer)
return container
end
function DynamicTable.row(frame)
local args = getArgs(frame)
local split = mw.text.split(args[1], ',')
local row = mw.html.create('tr'):addClass('bodyRow')
for i = 1, #split do
local td = mw.html.create('td'):wikitext(mw.text.trim(split[i]))
if #split == 1 then td:attr('colspan', 5):addClass('fw-600') end
row:node(td)
end
return row
end
return DynamicTable
No categories