Module:Navbox top and bottom

From The Goon Show Depository

Revision as of 12:00, 4 November 2021 by en>MusikBot II (Protected "Module:Navbox top and bottom": High-risk template or module: 3931 transclusions (more info) ([Edit=Require extended confirmed access] (indefinite) [Move=Require extended confirmed access] (indefinite)))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

-- This implements {{navbox top}} and {{navbox bottom}}
local p = {}

local function build_navbox(parentArgs, list)
	local args = {}
    for argName, value in pairs(parentArgs) do
        if value ~= '' then
            if type(argName) == 'string' then
                args[argName] = value
            end
        end
    end
    args['bodystyle'] = 'display:table;' .. (args['bodystyle'] or '')
    args['list1padding'] = '0'
    args['list1style'] = 'border-width:0;'
    args['list1'] = list
    -- Note Navbox.navbox() has a kludge to order the parent frame's args
    -- into a specific order. For now, this is omitted from this module.

	local Navbox = require('Module:Navbox')
    return Navbox._navbox(args)
end

function p.top(frame)
	local args = frame:getParent().args
	local parts = mw.text.split(build_navbox(args, '<ADD LIST HERE>'), '<ADD LIST HERE>')
	return parts[1]
end

function p.bottom(frame)
	local args = frame:getParent().args
	local parts = mw.text.split(build_navbox(args, '<ADD LIST HERE>'), '<ADD LIST HERE>')
	return parts[2]
end

return p