Module:Navbox top and bottom

Revision as of 19:44, 23 May 2022 by Maxwells (talk | contribs) (Created page with "-- 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;'...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Usage

{{#invoke:Navbox top and bottom|function_name}}



-- 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