Module:Sandbox/AB-me/Racing table

This is an old revision of this page, as edited by AB-me (talk | contribs) at 10:27, 5 July 2020. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local p = {}
local getArgs = require('Module:Arguments').getArgs

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
	local eventsArg = mw.text.split(args['events'], ",")
	local participantsArg = mw.text.split(args['participants'], ",")
	local pointPositionsArg = mw.text.split(args['points'], ",") or {}
	local pointSpecialArg = mw.text.split(args['pointsSpecial'], ",") or {}
	
	local events = {}
	local participants = {}
	local pointPositions = {}
	local pointSpecial = {}
	
	for i,v in ipairs(eventsArg) do events[v] = args['event_' .. v] or v end
	for i,v in ipairs(participantsArg) do participants[v] = args['participant_' .. v] or v end
	for i,v in ipairs(pointPositionsArg) do pointPositions[i] = tonumber(v) or 0 end
	for i,v in ipairs(pointSpecialArg) do pointSpecial[v] = tonumber(args['pointsSpecial_' .. v] or 0) end
	
	local t = {}
	
	table.insert(t, '{| class="wikitable" style="font-size: 85%; vertical-align:top; text-align:center""\n')
	table.insert(t, '!style="vertical-align:middle;"|<abbr title="Position">Pos</abbr>\n')
	table.insert(t, '!style="vertical-align:middle;"|Participant\n')
	
	for k,v in pairs(events) do
		table.insert(t, '!' .. v)
	end
	
	table.insert(t, '!style="vertical-align:middle"|Points\n')
	
	table.insert(t, '|}')
	
	return table.concat(t)
end

	
return p;