欢迎来到奇葩栖息地!欢迎加入Discord服务器:XfrfHCzfbW欢迎加入QQ频道:r01m9y3iz6请先至特殊:参数设置验证邮箱后再进行编辑。特殊:参数设置挑选自己想要使用的小工具!不会编辑?请至这里学习Wikitext语法。

模块:Navbox

来自奇葩栖息地
SkyEye FAST讨论 | 贡献2021年5月29日 (六) 14:52的版本 (建立内容为“local p = {} function p.box( f ) local args = require( 'Module:ProcessArgs' ).merge( true ) local navbox = {} if args.title then local class = args.class or…”的新页面)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
此模块及其文档搬运自中文Minecraft Wiki页面[[mcwzh:{{{page}}}|{{{page}}}]]。

这些内容依据CC BY-NC-SA 3.0协议引入。原贡献者请参见[{{fullurl:mcwzh:{{{page}}}|action=history}} 原页面的历史]。
经过双方编者的修改,这些内容与来源可能存在差异。
From interwiki:sync参数无效

此模块已被弃用。

请使用{{SimpleNavbox}}代替。

This module implements {{navbox}}. It should generally be invoked directly on template pages, rather than using the navbox template.

Parent arguments are automatically merged with directly passed arguments (the latter overwriting the former) and all arguments are normalised to trim whitespace and set empty arguments to nil.

Dependencies

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:preprocess( '{{navbar|' .. 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