Minecraft Wiki Polska

Chcesz pomóc, ale nie wiesz, od czego zacząć? Sprawdź listę artykułów do rozszerzenia lub zilustrowania czy potrzebnych zmian.

CZYTAJ WIĘCEJ

Minecraft Wiki Polska
Advertisement
Minecraft Wiki Polska
Template-noinfo.png
Dokumentacja
W tym module nie ma dokumentacji. Jeśli wiesz jak używać tego modułu, dodaj odpowiednie informacje.
local p = {}
function p.box( f )
	local args = require( 'Module:ProcessArgs' ).merge( true )
	local navbox = {}
	local title = args.title or ''
	local class = args.class or 'collapsible'
	local bodyStyle = args.bodystyle or ''
		if bodyStyle ~= '' then
			bodyStyle = 'style="' .. bodyStyle .. '"'
		end
	local titleStyle = args.titlestyle or ''
		if titleStyle ~= '' then
			titleStyle = 'style="' .. titleStyle .. '"'
		end
	local aboveStyle = args.abovestyle or ''
		if aboveStyle ~= '' then
			aboveStyle = 'style="' .. aboveStyle .. '"'
		end
	local groupStyle = args.groupstyle or ''
		if groupStyle ~= '' then
			groupStyle = 'style="' .. groupStyle .. '"'
		end
	local listStyle = args.liststyle or ''
		if listStyle ~= '' then
			listStyle = 'style="' .. listStyle .. '"'
		end
	local belowStyle = args.belowstyle or ''
		if belowStyle ~= '' then
			belowStyle = 'style="' .. belowStyle .. '"'
		end
	local navbar = args[1] or ''
	local barStyle = args.barstyle or ''
	local barFont = args.barfont or ''
	local name = args.name 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 ''
	local above = args.above 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
Advertisement