Toggle menu
236
372
1
5.2K
DemocracyCraft Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Navbox

From DemocracyCraft Wiki
Revision as of 21:48, 20 June 2025 by RylandW (talk | contribs) (Testing, will revert if does not work)

Documentation for this module may be created at Module:Navbox/doc

-- Module:Navbox – Full module with 'subgroup' support
require('strict')
local p = {}
local cfg = mw.loadData('Module:Navbox/configuration')
local inArray = require("Module:TableTools").inArray
local getArgs -- lazily initialized
local hiding_templatestyles = {}

-- Add 'subgroup' argument prefix to check
if not cfg.arg.subgroups_and_num then
	cfg.arg.subgroups_and_num = { 'subgroup%%d' }
else
	table.insert(cfg.arg.subgroups_and_num, 'subgroup%d')
end

-- Lazy argument loader
local function getArgsLazy()
	if not getArgs then
		getArgs = require('Module:Arguments').getArgs
	end
	return getArgs
end

-- Basic navbox rendering (simplified for this example)
function p.navbox(frame)
	local args = getArgsLazy()(frame)
	-- Example rendering: header + body with optional subgroup
	local root = mw.html.create('div')
	root:addClass('navbox')
	
	if args.title then
		root:tag('div'):addClass('navbox-title'):wikitext(args.title)
	end

	local body = root:tag('div'):addClass('navbox-body')
	if args.list1 then
		body:tag('div'):addClass('navbox-list'):wikitext(args.list1)
	end

	-- Check for subgroup usage (e.g., {{Navbox|child|...}})
	for i = 1, 10 do
		local key = 'subgroup' .. i
		if args[key] then
			body:tag('div')
				:addClass('navbox-subgroup')
				:wikitext(args[key])
		end
	end

	return tostring(root)
end

--[[ 
To use a subgroup (child navbox), insert this into a main navbox:
| subgroup1 = {{Navbox|child|title=Subsection|list1=Item A • Item B}}

You can add up to 10 subgroups using subgroup1 through subgroup10.
Each child navbox should use the "child" parameter like so:
{{Navbox|child|title=Subsection|list1=...}}
]]

return p