Module:Version: Difference between revisions

From Vintage Story Wiki
(Created page with "local p = {} function p.prevNextLinks(f) local args = require( 'Module:ProcessArgs' ).merge( true ) local prev = '' if args.prev then prev = '[[' .. args.prev .. '|<span...")
 
m (Undo revision 55858 by Sana (talk))
Tag: Undo
 
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {}
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)
function p.prevNextLinks(f)
local args = require( 'Module:ProcessArgs' ).merge( true )
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 = ''
local prev = ''
if args.prev then prev = '[[' .. args.prev .. '|<span style="margin-right:-0.35em">◄</span>◄ ' .. args.prev .. ']]' end
if args.prev then  
if args.prev:match('-(.*)') then
prev = args.prev:match('-(.*)')
prev = '[[' .. args.prev .. '|◄ ' .. prev .. ']]'
else
prev = '[[' .. args.prev .. '|◄ ' .. args.prev .. ']]'
end
end
local next = ''
local next = ''
if args.next then next = '[[' .. args.next .. '|' .. args.next .. ' <span style="margin-right:-0.35em">►</span>►]]' end
if args.next then  
local prevDev = ''
if args.next:match('-(.*)') then
if args.prevDev then prevDev = '[[' .. args.prevDev .. '|' .. string.match(args.prevDev, '-(.*)') .. ']]' end
next = args.next:match('-(.*)')
local nextDev = ''
next = '[[' .. args.next .. '|' .. next .. ' ►]]'
if args.nextDev then nextDev = '[[' .. args.nextDev .. '|' .. string.match(args.nextDev, '-(.*)') .. ' ►]]' end
else
next = '[[' .. args.next .. '|' .. args.next .. ' ►]]'
end
end
local prevParent = ''
if args.prevparent then  
prevParent = '[[' .. args.prevparent .. '|' .. leftArrows .. args.prevparent .. ']]'
end
local nextParent = ''
if args.nextparent then
nextParent = args.nextparent:match('-(.*)')
nextParent = '[[' .. args.nextparent .. '|' .. args.nextparent .. rightArrows .. ']]'
end
if args.nextparent and args.next then
nextParent = nextParent .. '<br>'
end
if args.prevparent and args.prev then
prevParent = prevParent .. '<br>'
end
if args.ver then
if args.prev then
if args.prev:find(args.ver) == nil then
prev = '[[' .. args.prev .. '|' .. args.prev .. ']]'
end
end
if args.next then
if args.next:find(args.ver) == nil then
next = '[[' .. args.next .. '|' .. args.next .. ' ►]]'
end
end
end
local width
if (args.next or args.nextparent) and (args.prev or args.prevparent) then
width = '50%'
else
width = '100%'
end
local body = '<table style="width: 100%; margin: auto;><tr><td>' .. prev .. '<br>' .. prevDev .. '</td><td>' .. next .. '<br>' .. nextDev .. '</td></tr></table>'
local body = '<table style="width: 100%; margin: auto;><tr><td style="width:' .. width .. '">' .. prevParent .. prev .. '</td><td>' .. nextParent .. next .. '</td></tr></table>'
return body
return body
end
end
return p
return p

Latest revision as of 10:19, 4 September 2022

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 args.prev:match('-(.*)') then
			prev = args.prev:match('-(.*)')
			prev = '[[' .. args.prev .. '|◄ ' .. prev .. ']]'
		else
			prev = '[[' .. args.prev .. '|◄ ' .. args.prev .. ']]'
		end
	end
	local next = ''
	if args.next then 
		if args.next:match('-(.*)') then
			next = args.next:match('-(.*)')
			next = '[[' .. args.next .. '|' .. next .. ' ►]]'
		else
			next = '[[' .. args.next .. '|' .. args.next .. ' ►]]'
		end
	end
	local prevParent = ''
	if args.prevparent then 
		prevParent = '[[' .. args.prevparent .. '|' .. leftArrows .. args.prevparent .. ']]'
	end
	local nextParent = ''
	if args.nextparent then 
		nextParent = args.nextparent:match('-(.*)')
		nextParent = '[[' .. args.nextparent .. '|' .. args.nextparent .. rightArrows .. ']]'
	end
	if args.nextparent and args.next then
		nextParent = nextParent .. '<br>'
	end
	if args.prevparent and args.prev then
		prevParent = prevParent .. '<br>'
	end
	
	if args.ver then
		if args.prev then
			if args.prev:find(args.ver) == nil then
				prev = '[[' .. args.prev .. '|◄ ' .. args.prev .. ']]'
			end
		end
		if args.next then
			if args.next:find(args.ver) == nil then
				next = '[[' .. args.next .. '|' .. args.next .. ' ►]]'
			end
		end
	end
	
	local width
	if (args.next or args.nextparent) and (args.prev or args.prevparent) then
		width = '50%'
	else
		width = '100%'
	end
	
	local body = '<table style="width: 100%; margin: auto;><tr><td style="width:' .. width .. '">' .. prevParent .. prev .. '</td><td>' .. nextParent .. next .. '</td></tr></table>'
	return body
end
return p