Module:Development versions

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 'previews, test builds, builds, alphas, betas, experimental snapshots, snapshots, pre-releases, release candidates' local devVersions = '' for category in mw.text.gsplit( categories, '%s*,%s*' ) do devVersions = devVersions .. '|' .. version .. ' ' .. category end devVersions = f:callParserFunction( '#dpl:', {			category = mw.text.trim( devVersions, '%s|' ),			format = ',|%PAGE%',			ordermethod = 'sortkey',			debug = '1'		} ) devVersions = mw.text.trim( 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', '' ) :gsub( "x", "x" ) :gsub( "xx", "xx" ) end local wikitext = mw.title.new( page ) if not wikitext then return end wikitext = wikitext:getContent if wikitext:match( ' ' ) and wikitext:match( ' ' ) then table.insert( content, ' =' .. devVersion .. '= ' .. wikitext ) else table.insert( brokenPages, '"' .. page .. '"' ) end end if #brokenPages > 0 then error( mw.text.listToText( brokenPages ) .. ' missing ', 0 ) return end content = table.concat( content ) :gsub( '^.- %s*', '\n' ) :gsub( '%s* .- %s*', '\n' ) :gsub( '%s* .*$', '\n' ) :gsub( '\n(=+ *[^\n]+ *=+)', '\n=%1=' ) return f:preprocess( mw.text.trim( content ) ) end return p