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