Module:Navbox: Difference between revisions
Jump to navigation
Jump to search
No edit summary Tag: Reverted |
No edit summary Tag: Reverted |
||
| Line 2: | Line 2: | ||
function p.box( f ) | function p.box( f ) | ||
local args = require( 'Module:ProcessArgs' ).merge( true ) | local args = require( 'Module:ProcessArgs' ).merge( true ) | ||
local | local Navbox = {} | ||
if args.title then | if args.title then | ||
| Line 10: | Line 10: | ||
bodyStyle = 'style="' .. bodyStyle .. '"' | bodyStyle = 'style="' .. bodyStyle .. '"' | ||
end | end | ||
table.insert( | table.insert( Navbox, ' {| class="navbox hlist ' .. class .. '" ' .. bodyStyle ) | ||
local titleStyle = args.titlestyle or '' | local titleStyle = args.titlestyle or '' | ||
| Line 30: | Line 30: | ||
} ) .. '</div>' | } ) .. '</div>' | ||
end | end | ||
table.insert( | table.insert( Navbox, '! class="navbox-top" colspan="2" ' .. titleStyle .. ' | ' .. navbar .. '<span class="navbox-title">' .. args.title .. '</span>' ) | ||
else | else | ||
table.insert( | table.insert( Navbox, ' {| class="navbox-child"' ) | ||
end | end | ||
| Line 51: | Line 51: | ||
local list = args['list' .. v] | local list = args['list' .. v] | ||
if list then | if list then | ||
table.insert( | table.insert( Navbox, '|-\n! class="navbox-group" style="' .. groupStyle .. '" | ' .. args['group' .. v] ) | ||
table.insert( | table.insert( Navbox, '| class="navbox-list" style="' .. listStyle .. '" | ' .. list:gsub( '^([*#:{])', '\n%1' ) ) | ||
end | end | ||
end | end | ||
Revision as of 10:50, 26 June 2025
Documentation for this module may be created at Module:Navbox/doc
local p = {}
function p.box( f )
local args = require( 'Module:ProcessArgs' ).merge( true )
local Navbox = {}
if args.title then
local class = args.class or 'collapsible'
local bodyStyle = args.bodystyle or ''
if bodyStyle ~= '' then
bodyStyle = 'style="' .. bodyStyle .. '"'
end
table.insert( Navbox, ' {| class="navbox hlist ' .. class .. '" ' .. bodyStyle )
local titleStyle = args.titlestyle or ''
if titleStyle ~= '' then
titleStyle = 'style="' .. titleStyle .. '"'
end
local navbar = args[1] or ''
if navbar ~= '' then
local mini = ''
if navbar:match( 'navbar%-mini' ) then
mini = '1'
end
navbar = '<div class="navbox-navbar">' .. f:expandTemplate( {
title = 'navbar',
args = {
args.name,
mini = mini
}
} ) .. '</div>'
end
table.insert( Navbox, '! class="navbox-top" colspan="2" ' .. titleStyle .. ' | ' .. navbar .. '<span class="navbox-title">' .. args.title .. '</span>' )
else
table.insert( Navbox, ' {| class="navbox-child"' )
end
local groupNums = {}
for k, v in pairs( args ) do
if type( k ) == 'string' then
local groupNum = k:match( 'group(%d+)' )
if groupNum and v then
table.insert( groupNums, tonumber( groupNum ) )
end
end
end
table.sort( groupNums )
local groupStyle = args.groupstyle or ''
local listStyle = args.liststyle or ''
for _, v in ipairs( groupNums ) do
local list = args['list' .. v]
if list then
table.insert( Navbox, '|-\n! class="navbox-group" style="' .. groupStyle .. '" | ' .. args['group' .. v] )
table.insert( Navbox, '| class="navbox-list" style="' .. listStyle .. '" | ' .. list:gsub( '^([*#:{])', '\n%1' ) )
end
end
table.insert( Navbox, '|}' )
Navbox = table.concat( Navbox, '\n' ):gsub( ' style=""', '' )
return Navbox
end
return p