Программное обеспечение вики, MediaWiki, обновлено до версии 1.33. Подробная информация об этом обновлении доступна на Справочной вики Gamepedia. В связи с обновлением возможны некоторые технические неполадки.

We are currently performing an upgrade to our software. This upgrade will bring MediaWiki from version 1.31 to 1.33. While the upgrade is being performed on your wiki it will be in read-only mode. For more information check here.

Модуль:Navbox

Материал из Minecraft Wiki
Перейти к: навигация, поиск

Этот модуль реализует {{navbox}}. Его в большинстве случаев следует вызывать напрямую на страницах шаблонов, а не использовать шаблон Navbox.

Аргументы родителя автоматически объединяются с напрямую переданными аргументами (при этом последние перезаписывают первые), затем все аргументы нормализуются для очистки от начинающих и завершающих пробелов и установки пустых аргументов, как равных nil.

Для испытаний перед нововведениями используется Модуль: Navbox/test.

Зависит от

См. также


local p = {}
function p.box( f )
	local args = require( 'Module:ProcessArgs' ).merge( true )
	local navbox = {}
	local title = args.title or args["название"] or ''
	local class = args.class or args["класс"] or 'collapsible'
	local bodyStyle = args.bodystyle or args["стиль тела"] or ''
		if bodyStyle ~= '' then
			bodyStyle = 'style="' .. bodyStyle .. '"'
		end
	local titleStyle = args.titlestyle or args["стиль названия"] or ''
		if titleStyle ~= '' then
			titleStyle = 'style="' .. titleStyle .. '"'
		end
	local aboveStyle = args.abovestyle or args["стиль верха"] or ''
		if aboveStyle ~= '' then
			aboveStyle = 'style="' .. aboveStyle .. '"'
		end
	local groupStyle = args.groupstyle or args["стиль группы"] or ''
		if groupStyle ~= '' then
			groupStyle = 'style="' .. groupStyle .. '"'
		end
	local listStyle = args.liststyle or args["стиль списка"] or ''
		if listStyle ~= '' then
			listStyle = 'style="' .. listStyle .. '"'
		end
	local belowStyle = args.belowstyle or args["стиль подвала"] or ''
		if belowStyle ~= '' then
			belowStyle = 'style="' .. belowStyle .. '"'
		end
	local navbar = args[1] or ''
	local barStyle = args.barstyle or args["стиль бара"] or ''
	local barFont = args.barfont or args["текст бара"] or ''
	local name = args.name or args["шаблон"] or ''
	if navbar ~= '' then
		local mini = ''
		if navbar:match( 'navbar%-mini' ) then
			mini = '1'
		end
		navbar = '<div class="navbox-navbar">' .. f:preprocess( '{{navbar|' .. name .. '|mini=' .. mini .. '|style=' .. barStyle .. '|fontstyle=' .. barFont .. '}}' ) .. '</div>'
	end
	local below = args.below or args["подвал"] or ''
	local above = args.above or args["верх"] or ''

	if title ~= '' then

		table.insert( navbox, ' {| class="navbox hlist ' .. class .. '" ' .. bodyStyle )
		table.insert( navbox, '! class="navbox-top" colspan="2" ' .. titleStyle .. ' | ' .. navbar .. '<span class="navbox-title">' .. title .. '</span>' )
	else
		table.insert( navbox, ' {| class="navbox-child"' )
	end

	if above ~= '' then
		table.insert( navbox, '|-\n| class="navbox-above" colspan="2" ' .. aboveStyle .. '| '  .. above:gsub( '^([*#:{])', '\n%1' ) )
	end

	local listNums = {}
	for k, v in pairs( args ) do
		if type( k ) == 'string' then
			local listNum = k:match( 'list(%d+)' ) or k:match( 'лист(%d+)' )
			if listNum and v then
				table.insert( listNums, tonumber( listNum ) )
			end
		end
	end

	table.sort( listNums )

	for _, v in ipairs( listNums ) do
		local list = args['list' .. v] or args['лист' .. v]
		local groupl = args['group' .. v] or args['группа' .. v] or ''
		if list ~= '' and groupl ~= '' then
			table.insert( navbox, '|-\n! class="navbox-group" ' .. groupStyle .. ' | ' .. groupl )
			table.insert( navbox, '| class="navbox-list" ' .. listStyle .. '| ' .. list:gsub( '^([*#:{])', '\n%1' ) )

		else if list ~= '' then
				table.insert( navbox, '|-\n| class="navbox-list" colspan="2" ' .. listStyle .. '| ' .. list:gsub( '^([*#:{])', '\n%1' ) )
			end
		end
	end
	if below ~= '' then
		table.insert( navbox, '|-\n| class="navbox-below" colspan="2" ' .. belowStyle .. '| '  .. below:gsub( '^([*#:{])', '\n%1' ) )
	end

	table.insert( navbox, '|}' )
	
	navbox = table.concat( navbox, '\n' ):gsub( ' style=""', '' )
	return navbox
end
return p