Module:Navbox: Difference between revisions

From Wiki of ZZT
Jump to navigation Jump to search
(Forgot to add class=navbox to table)
(Add div to see if it helps with MediaWiki list formatting)
Line 32: Line 32:
for _, group in ipairs(groups) do
for _, group in ipairs(groups) do
local group_row = navbox:tag("tr"):addClass("group")
local group_row = navbox:tag("tr"):addClass("group")
if group.name == nil then
if group.name == nil then
group_row:tag("td"):attr("colspan", "2"):wikitext(group.content)
group_row:tag("td"):attr("colspan", "2"):tag("div"):wikitext(group.content)
else
else
group_row:tag("th"):wikitext(group.name)
group_row:tag("th"):wikitext(group.name)
group_row:tag("td"):wikitext(group.content)
group_row:tag("td"):tag("div"):wikitext(group.content)
end
end
end
end

Revision as of 03:36, 18 January 2021

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"):tag("div"):wikitext(group.content)
		else
			group_row:tag("th"):wikitext(group.name)
			group_row:tag("td"):tag("div"):wikitext(group.content)
		end
	end

	return navbox
end

return p