Module:Navbox
Jump to navigation
Jump to search
Documentation for this module may be created at Module:Navbox/doc
local p = {}
function p.navbox(frame)
local title = frame.args.title
if title == nil then
error("Missing title")
end
-- Assign group1, group2, etc to groups
local groups = {}
local i = 1
while frame.args["group" .. i] ~= nil do
local group = {
content = frame.args["group" .. i],
name = frame.args["groupName" .. i] -- can be nil
}
table.insert(groups, group)
i = i + 1
end
return make_box(title, groups)
end
function make_box(title, groups)
local navbox = mw.html.create("table"):addClass("navbox")
-- Create title row
local title_row = navbox:tag("tr"):addClass("title")
title_row:tag("th"):attr("colspan", 2):wikitext(title)
-- Create row for each group
for _, group in ipairs(groups) do
local group_row = navbox:tag("tr"):addClass("group")
if group.name == nil then
group_row:tag("td"):attr("colspan", "2"):wikitext(group.content)
else
group_row:tag("th"):wikitext(group.name)
group_row:tag("td"):wikitext(group.content)
end
end
return navbox
end
return p