Module:Navbox: Difference between revisions
No edit summary |
No edit summary |
||
Line 81: | Line 81: | ||
-- Navbox to be #invoke'd | -- Navbox to be #invoke'd | ||
function p.navbox(frame) | function p.navbox(frame) | ||
local args = getArgs(frame) | local args = getArgs(frame) | ||
local is_collapsed = args["Is Collapsed"] | local is_collapsed = args["Is Collapsed"] | ||
local is_subtable = args["Is Subtable"] -- "subgroup" already means something else here | |||
local title = args["Title"] | local title = args["Title"] | ||
local rows = {{args["Header 1"], args["Data 1"]}} | local rows = {{args["Header 1"], args["Data 1"]}} | ||
-- Both the Wikipedia and RsWiki navboxes go up to 20 rows so follow that | |||
local rows = {} | |||
for i = 1, 20 do | |||
local row = {} | |||
local header = args["Header " .. i] | |||
local data = args["Data " .. i] | |||
if header ~= nil and data ~= nil then | |||
-- If there's both a header data, add both | |||
table.insert(row, header) | |||
table.insert(row, data) | |||
elseif header == nil and data ~= nil then | |||
-- Headerless row | |||
table.insert(row, data) | |||
elseif header ~= nil and data == nil then | |||
-- Dataless row with header; this is allowed | |||
table.insert(row, header) | |||
table.insert(row, "") | |||
end | |||
if #row >= 1 then | |||
table.insert(rows, row) | |||
end | |||
end | |||
return p._navbox(title, rows, is_collapsed) | return p._navbox(title, rows, is_collapsed) |