Minecraft Wiki
Advertisement
Minecraft Wiki
4,114
ページ

このモジュールは{{development versions}}を実装しています。

[閲覧 | 編集 | 履歴 | キャッシュ削除]上記の解説は、モジュール:Development versions/docから参照されています。
local p = {}
p.list = function( f )
	local args = f:getParent().args
	local title = mw.title.getCurrentTitle().rootText
	local version = args[1] or title

	if not version:find('Edition') and not version:find('Launcher') then
		version = 'Java Edition ' .. version
	end
	
	f:callParserFunction ( '#dplvar:set', 'parentVersion', version )

	local categories = args.categories or 'プレビュー, test build, build, alpha, ベータ, スナップショット, プレリリース, リリース候補'
    local jcat = { ['snapshots'] = 'スナップショット', ['pre-releases'] = 'プレリリース', ['release candidates'] = 'リリース候補', ['build'] = 'Build', ['builds'] = 'Build' }
	local devVersions = {}
	for category in mw.text.gsplit( categories, '%s*,%s*' ) do
		table.insert( devVersions,
			f:callParserFunction( '#dpl:', {
				category = version .. 'の' .. ( jcat[ category ] or category),
				format = ',|%PAGE%',
				ordermethod = 'sortkey',
				debug = '1'
			} )
		)
	end
	devVersions = mw.text.trim( table.concat( devVersions ), '%s|' )
	
	local edition = version:match( '^.- Edition' )
	local content = {}
	local brokenPages = {}
	for page in mw.text.gsplit( devVersions, '|' ) do
		local devVersion = page
		if edition then
			devVersion = page:gsub( '^' .. edition, '' )
		elseif version:find('Launcher') then
			devVersion = page:gsub( 'Launcher', '' )
			devVersion = devVersion:gsub( "x", "''x''" )
			devVersion = devVersion:gsub( "''x''''x''", "''xx''" )
		end
		
		local wikitext = mw.title.new( page ):getContent()
		if wikitext:match( '<onlyinclude>' ) and wikitext:match( '</onlyinclude>' ) then
			table.insert( content, '<onlyinclude>=[[' .. page .. '|' .. devVersion .. ']]=</onlyinclude>' .. wikitext )
		else
			table.insert( brokenPages, '「[[' .. page .. ']]」' )
		end
	end
	
	if #brokenPages > 0 then
		error( mw.text.listToText( brokenPages ) .. 'には <onlyinclude> タグが設定されていません', 0 )
		return
	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