Module:Version

From Vintage Story Wiki
Revision as of 22:52, 27 August 2022 by Sana (talk | contribs)

Documentation for this module may be created at Module:Version/doc

local p = {}

function p.categories(f)
	local title = mw.title.getCurrentTitle().baseText
	local ver = {}
    for v in (title..'-'):gmatch('(.-)-') do
		table.insert(ver, v)
	end
	
	local categories
	if ver[2] ~= nil then
		if ver[2]:find('pre') then
		   categories = '[[Category:' .. ver[1] .. ' pre releases]]' .. '[[Category:' .. ver[1] .. ' development versions]]'
		elseif ver[2]:find('rc') then
		    categories = '[[Category:' .. ver[1] .. ' release candidates]]' .. '[[Category:' .. ver[1] .. ' development versions]]'
		end
	end
	categories = categories .. '[[Category:Versions]]'
	return categories
end

function p.prevNextLinks(f)
	local args = require( 'Module:ProcessArgs' ).merge( true )
	
	local leftArrows = '<span style="margin-right:-0.35em">◄</span>◄ '
	local rightArrows = ' <span style="margin-right:-0.35em">►</span>►'
	
	local prev = ''
	if args.prev then 
		if string.match(string.lower(args.prev), 'tbd') then
			prev = 'TBD'
		else 
		    prev = '[[' .. args.prev .. '|' .. leftArrows .. args.prev .. ']]'
		end
	end
	local next = ''
	if args.next then 
		if string.match(string.lower(args.next), 'tbd') then
			next = 'TBD' .. rightArrows
		else 
		    next = '[[' .. args.next .. '|' .. args.next .. rightArrows .. ']]'
		end
	end
	local prevDev = ''
	if args.prevdev then 
		if string.match(string.lower(args.prevdev), 'tbd') then
			prevDev = '◄ TBD'
		else 
			prevDev = args.prevdev:match('-(.*)')
		    prevDev = '[[' .. args.prevdev .. '|◄ ' .. prevDev .. ']]'
		end
	end
	local nextDev = ''
	if args.nextdev then 
		if string.match(string.lower(args.nextdev), 'tbd') then
			nextDev = 'TBD ►'
		else 
			nextDev = args.prevdev:match('-(.*)')
		    nextDev = '[[' .. args.nextdev .. '|' .. nextDev .. ' ►]]'
		end
	end
	
	local body = '<table style="width: 100%; margin: auto;><tr><td>' .. prev .. '<br>' .. prevDev .. '</td><td>' .. next .. '<br>' .. nextDev .. '</td></tr></table>'
	return body
end
return p