Module:History: Difference between revisions

From Vintage Story Wiki
mNo edit summary
mNo edit summary
Line 9: Line 9:
'|-'
'|-'
}
}
if args.header then
return table.concat(header, '\n')
end
local footer = '|}'
local footer = '|}'
if args.footer then
local notes = {}
return footer
local versions = {}
local parentVer = {}
for i,v in pairs(args) do
local version = string.match(v, '(.*);')
local parentVer = string.match(version, '(.*)-')
local childVer = string.match(version, '-(.*)')
local note = string.match(v , ';(.*)')
versions[parentVer][childVer] = note
end
end
local parentVer = args[1] or ''
local body = header .. '\n'
local childVer = args[2]
for ver in versions do
body = body .. '|[[' .. tostring(ver) .. ']]'
local child = '[[' .. childVer .. ']]'
for child in ver do
body = body .. '||[[' .. tostring(child) .. ']]'
local parent
for note in child do
local body
body = body .. '||' .. note
if parentVer then
end
parent = '[[' .. parentVer .. ']]'
end
body = {
'|' .. parent .. '||' .. child .. '||' .. args[3]
}
else
body = '|' .. child .. notes
end
end
return body .. '\n' .. footer
return body
end
end
return p
return p

Revision as of 17:17, 27 August 2022

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

local p = {}

function p.create(f)
	local args = require( 'Module:ProcessArgs' ).merge( true )
		
	local header = {
		'{|class="wikitable"',
		'!colspan="3"|History',
		'|-'
	}
	local footer = '|}'
	
	local notes = {}
	local versions = {}
	local parentVer = {}
	for i,v in pairs(args) do
		local version = string.match(v, '(.*);')
		local parentVer = string.match(version, '(.*)-')
		local childVer = string.match(version, '-(.*)')
		local note = string.match(v , ';(.*)')
		
		versions[parentVer][childVer] = note
	end
	
	local body = header .. '\n'
	for ver in versions do
		body = body .. '|[[' .. tostring(ver) .. ']]'
		for child in ver do
			body = body .. '||[[' .. tostring(child) .. ']]'
			for note in child do 
				body = body .. '||' .. note	
			end
		end
	end
	return body .. '\n' .. footer
end
return p