Módulo:Portal navigation
De Wikimedia Small Projects
Más acciones
La documentación para este módulo puede ser creada en Módulo:Portal navigation/doc
local p = {}
local getArgs = require('Module:Arguments').getArgs
local SKINVERT = 'skin-invert-image'
-- possible refactor for this: collect all tabs/icons into one array you can
-- iterate through. would also allow warning about unused args.
function p._main(args)
local container = mw.html.create('div')
:addClass('portal-navigation')
local header = container
:tag('div')
:addClass('portal-navigation-header')
:css({
['color'] = args.header_text_color,
['background-color'] = args.header_background_color,
['border-bottom-color'] = args.header_border_color,
})
if not args.noinvert then
header:addClass(SKINVERT)
end
header:tag('span')
:addClass('portal-navigation-portalicon')
:wikitext(args.portalicon)
header:tag('span')
:addClass('portal-navigation-portalname')
:wikitext(args.portalname)
local nav = container:tag('ul')
:addClass('portal-navigation-body')
:addClass(SKINVERT)
local i = 1
local activetab = tonumber(args.active)
while true do
local tab = args['tab' .. i]
local icon = args['icon' .. i]
if not tab then break end
local item = nav:tag('li'):addClass('portal-navigation-item')
if i == activetab then
item:addClass('active-tab')
end
if icon then
item:tag('span')
:addClass('portal-navigation-tabicon')
:wikitext(icon)
end
item:tag('span')
:addClass('portal-navigation-tabname')
:wikitext(tab)
i = i + 1
end
return container
end
function p.main(frame)
return tostring(p._main(getArgs(frame))) .. frame:extensionTag('templatestyles', '', {
src = 'Module:Portal navigation/styles.css',
})
end
return p