Модуль:Предварительные сборки — различия между версиями

Материал из Playzone Minecraft Wiki
Перейти к: навигация, поиск
(тестирую)
 
м (1 версия импортирована)
 
(нет различий)

Текущая версия на 01:27, 18 января 2017

Для документации этого модуля может быть создана страница Модуль:Предварительные сборки/doc

local p = {}
p.list = function( f )
	local args = f:getParent().args
	local version = args[1] or mw.title.getCurrentTitle().rootText
	
	f:callParserFunction ( '#dplvar:set', 'parentVersion', version )
	
	local categories = args.categories or 'предварительные сборки, пре-релизы'
	local devVersions = {}
	for category in mw.text.gsplit( categories, '%s*,%s*' ) do
		table.insert( devVersions,
			f:callParserFunction( '#dpl', {
                [1] = '',
				category = category .. ' ' .. version,
				format = ',|%PAGE%',
				debug = '1'
			} )
		)
	end
	devVersions = mw.text.trim( table.concat( devVersions ), '%s|' )
	
	local content = {}
	for v in mw.text.gsplit( devVersions, '|' ) do
		local wikitext = mw.title.new( v ):getContent()
		if not wikitext:match( '<onlyinclude>' ) then
			wikitext = '<onlyinclude>' .. wikitext .. '</onlyinclude>'
		end
		table.insert( content, '<onlyinclude>=' .. v .. '=</onlyinclude>' .. wikitext )
	end
	
	content = table.concat( content )
		:gsub( '^.-<onlyinclude>%s*', '\n' )
		:gsub( '%s*</onlyinclude>.-<onlyinclude>%s*', '\n' )
		:gsub( '%s*</onlyinclude>.*$', '\n' )
		:gsub( '\n(=+ *[^\n]+ *=+)', '\n=%1=' )
	
	return f:preprocess( mw.text.trim( content ) )
end
return p