<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thegoonshow.co.uk/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AMedals_table</id>
	<title>Module:Medals table - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.thegoonshow.co.uk/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AMedals_table"/>
	<link rel="alternate" type="text/html" href="https://www.thegoonshow.co.uk/wiki/index.php?title=Module:Medals_table&amp;action=history"/>
	<updated>2026-05-14T11:40:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://www.thegoonshow.co.uk/wiki/index.php?title=Module:Medals_table&amp;diff=9412&amp;oldid=prev</id>
		<title>Kurt: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.thegoonshow.co.uk/wiki/index.php?title=Module:Medals_table&amp;diff=9412&amp;oldid=prev"/>
		<updated>2022-07-27T20:54:30Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:54, 27 July 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Kurt</name></author>
	</entry>
	<entry>
		<id>https://www.thegoonshow.co.uk/wiki/index.php?title=Module:Medals_table&amp;diff=9411&amp;oldid=prev</id>
		<title>en&gt;Maiō T.: typo</title>
		<link rel="alternate" type="text/html" href="https://www.thegoonshow.co.uk/wiki/index.php?title=Module:Medals_table&amp;diff=9411&amp;oldid=prev"/>
		<updated>2021-02-17T17:17:20Z</updated>

		<summary type="html">&lt;p&gt;typo&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require('Module:No globals')&lt;br /&gt;
local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function deflag(s)&lt;br /&gt;
	s = mw.ustring.gsub(s or '', '%[%[[Ff][Ii][Ll][Ee]:[^%[%]]*%]%]', '')&lt;br /&gt;
	s = mw.ustring.gsub(s, '%[%[[Ii][Mm][Aa][Gg][Ee]:[^%[%]]*%]%]', '')&lt;br /&gt;
	s = mw.ustring.gsub(s, '&amp;lt;[^&amp;lt;&amp;gt;]*&amp;gt;', '')&lt;br /&gt;
	s = mw.ustring.gsub(s, '%s*%([A-Z][A-Z][A-Z]%)%s*$', '')&lt;br /&gt;
	while s:match('^%s*&amp;amp;[Nn][Bb][Ss][Pp];%s*') do&lt;br /&gt;
		s = mw.ustring.gsub(s, '^%s*&amp;amp;[Nn][Bb][Ss][Pp];%s*', '')&lt;br /&gt;
	end&lt;br /&gt;
	s = mw.ustring.gsub(s, '%s*&amp;amp;[Nn][Bb][Ss][Pp];%s*$', '')&lt;br /&gt;
	s = mw.ustring.gsub(s, '%s%s+', ' ')&lt;br /&gt;
	s = mw.ustring.gsub(s, '^%s*(.-?)%s*$', '%1')&lt;br /&gt;
	return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.createTable(frame, args)&lt;br /&gt;
	if not args then&lt;br /&gt;
		args = getArgs(frame)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    local team = args['team'] or 'Nation'&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
	local host = args['host'] or ''&lt;br /&gt;
	local hostColor = '#ccccff'&lt;br /&gt;
	local defaultRowColor = '#f8f9fa'&lt;br /&gt;
	local flagTemplate = args['flag_template'] or 'flagteam'&lt;br /&gt;
	local event = args['event']&lt;br /&gt;
	local legendpos = (args['legend_position'] or 't'):lower()&lt;br /&gt;
	local header, footer = '', ''&lt;br /&gt;
	local totalGold = 0&lt;br /&gt;
	local totalSilver = 0&lt;br /&gt;
	local totalBronze = 0&lt;br /&gt;
	&lt;br /&gt;
	local remainingGold = 0&lt;br /&gt;
	local remainingSilver = 0&lt;br /&gt;
	local remainingBronze = 0&lt;br /&gt;
	local remainingStart = 0&lt;br /&gt;
	local remainingEnd = 0&lt;br /&gt;
	local limitReached = false&lt;br /&gt;
	local showLimit = tonumber(args['show_limit'])&lt;br /&gt;
&lt;br /&gt;
	-- build the legend&lt;br /&gt;
	if host ~= '' then&lt;br /&gt;
		if args['name_' .. host] then&lt;br /&gt;
			host = args['name_' .. host]&lt;br /&gt;
			host = 'Host nation (' .. deflag(host) .. ')'&lt;br /&gt;
		elseif host:match('^([A-Z][A-Z][A-Z])') then&lt;br /&gt;
			host = frame:expandTemplate{title = flagTemplate, args = {host, event} }&lt;br /&gt;
			host = 'Host nation (' .. deflag(host) .. ')'&lt;br /&gt;
		end&lt;br /&gt;
		host = host .. (args['host_note'] or '')&lt;br /&gt;
		host = frame:expandTemplate{title = 'color box', args = {hostColor, '&amp;amp;nbsp;*&amp;amp;nbsp;', 'border=darkgray'}} ..'&amp;amp;nbsp;'.. host&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local leading = ''&lt;br /&gt;
	if args['leading'] then&lt;br /&gt;
		leading = frame:expandTemplate{title = 'legend', args = {'#E9D66B', &amp;quot;'''Leading in that sport'''&amp;quot;}}&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if legendpos == 't' then&lt;br /&gt;
		header = header .. host .. leading&lt;br /&gt;
	else&lt;br /&gt;
		footer = footer .. host .. leading&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	root = root&lt;br /&gt;
		:tag('table')&lt;br /&gt;
		:addClass('wikitable')&lt;br /&gt;
		:addClass('sortable')&lt;br /&gt;
		:addClass('plainrowheaders')&lt;br /&gt;
		:addClass('jquery-tablesorter')&lt;br /&gt;
		:css('text-align', 'center')&lt;br /&gt;
	&lt;br /&gt;
	root:tag('caption')&lt;br /&gt;
		:wikitext(args['caption'])&lt;br /&gt;
	-- add the header row&lt;br /&gt;
	local row = root:tag('tr')&lt;br /&gt;
	&lt;br /&gt;
	if args['hide_rank'] then else&lt;br /&gt;
		row:tag('th')&lt;br /&gt;
			:attr('scope', 'col')&lt;br /&gt;
			:wikitext('Rank')&lt;br /&gt;
	end&lt;br /&gt;
	row&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:attr('scope', 'col')&lt;br /&gt;
			:wikitext(team)&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:attr('scope', 'col')&lt;br /&gt;
			:addClass('headerSort')&lt;br /&gt;
			:css('width', '4em')&lt;br /&gt;
			:css('background-color', 'gold')&lt;br /&gt;
			:wikitext('Gold')&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:attr('scope', 'col')&lt;br /&gt;
			:addClass('headerSort')&lt;br /&gt;
			:css('width', '4em')&lt;br /&gt;
			:css('background-color', 'silver')&lt;br /&gt;
			:wikitext('Silver')&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:attr('scope', 'col')&lt;br /&gt;
			:addClass('headerSort')&lt;br /&gt;
			:css('width', '4em')&lt;br /&gt;
			:css('background-color', '#c96')&lt;br /&gt;
			:wikitext('Bronze')&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:attr('scope', 'col')&lt;br /&gt;
			:css('width', '4em')&lt;br /&gt;
			:wikitext('Total')&lt;br /&gt;
	&lt;br /&gt;
	-- enumerate the rows&lt;br /&gt;
	local rowNums = {}&lt;br /&gt;
	local IOCs = {}&lt;br /&gt;
	for k,v in pairs(args) do&lt;br /&gt;
		k = ''..k&lt;br /&gt;
		local IOC = k:match('^gold_([A-Z][A-Z][A-Z])$') or k:match('^gold_(%d+)$')&lt;br /&gt;
			or k:match('^silver_([A-Z][A-Z][A-Z])$') or k:match('^silver_(%d+)$')&lt;br /&gt;
			or k:match('^bronze_([A-Z][A-Z][A-Z])$') or k:match('^bronze_(%d+)$')&lt;br /&gt;
		if IOC and IOCs[IOC] == nil then&lt;br /&gt;
			IOCs[IOC] = 1&lt;br /&gt;
			local gold   = (tonumber(args['gold_' .. IOC]) or 0)&lt;br /&gt;
			local silver = (tonumber(args['silver_' .. IOC]) or 0)&lt;br /&gt;
			local bronze = (tonumber(args['bronze_' .. IOC]) or 0)&lt;br /&gt;
			local noskip = args['skip_' .. IOC] and 0 or 1&lt;br /&gt;
			local nation = args['name_' .. IOC] or &lt;br /&gt;
				frame:expandTemplate{title = flagTemplate, args = {IOC, event} }&lt;br /&gt;
			nation = deflag(nation)&lt;br /&gt;
			if nation:match('%[%[[^%[%]%|]*%|([^%[%]]*)%]%]') then&lt;br /&gt;
				nation = nation:match('%[%[[^%[%]%|]*%|([^%[%]]*)%]%]')&lt;br /&gt;
			end&lt;br /&gt;
			if nation:match('%[%[([^%[%]%|]*)%]%]') then&lt;br /&gt;
				nation = nation:match('%[%[([^%[%]%|]*)%]%]')&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(rowNums, {gold, silver, bronze, noskip, nation, IOC}) &lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if args['team'] == 'Games' then&lt;br /&gt;
		table.sort(rowNums, function (a,b)&lt;br /&gt;
			return  a[5] &amp;lt; b[5]&lt;br /&gt;
			end&lt;br /&gt;
		)&lt;br /&gt;
	else&lt;br /&gt;
		table.sort(rowNums, function (a, b) &lt;br /&gt;
			return a[1] &amp;gt; b[1] or (a[1] == b[1] and a[2] &amp;gt; b[2]) &lt;br /&gt;
				or (a[1] == b[1] and a[2] == b[2] and a[3] &amp;gt; b[3]) &lt;br /&gt;
				or (a[1] == b[1] and a[2] == b[2] and a[3] == b[3] and a[4] &amp;gt; b[4])&lt;br /&gt;
				or (a[1] == b[1] and a[2] == b[2] and a[3] == b[3] and a[4] == b[4] and a[5] &amp;lt; b[5])&lt;br /&gt;
				end&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local lastGold, lastSilver, lastBronze = -1&lt;br /&gt;
	local rank = 0&lt;br /&gt;
	local lastspan, lastrankcell = 1, nil&lt;br /&gt;
	for i, anum in ipairs(rowNums) do&lt;br /&gt;
		local IOC = anum[6]&lt;br /&gt;
		if args['skip_' .. IOC] then &lt;br /&gt;
			lastGold, lastSilver, lastBronze, lastspan = -1, -1, -1, 1&lt;br /&gt;
		else &lt;br /&gt;
			rank = rank + 1 &lt;br /&gt;
		end&lt;br /&gt;
		local nation = args['name_' .. IOC] or &lt;br /&gt;
			frame:expandTemplate{title = flagTemplate, args = {IOC, event} }&lt;br /&gt;
		local gold   = tonumber(args['gold_' .. IOC]) or 0&lt;br /&gt;
		local silver = tonumber(args['silver_' .. IOC]) or 0&lt;br /&gt;
		local bronze = tonumber(args['bronze_' .. IOC]) or 0&lt;br /&gt;
		local isHost = args['host_' .. IOC]&lt;br /&gt;
		-- this is mainly for the parameter names example so you can override it.&lt;br /&gt;
		local total  = args['total_' .. IOC] or gold + silver + bronze&lt;br /&gt;
		local color = isHost and hostColor or defaultRowColor&lt;br /&gt;
&lt;br /&gt;
		if args['grand_total'] then else&lt;br /&gt;
				totalGold = totalGold + gold&lt;br /&gt;
				totalSilver = totalSilver + silver&lt;br /&gt;
				totalBronze = totalBronze + bronze&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if args['host_' .. IOC] then&lt;br /&gt;
			nation = nation .. '*'&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if args['note_' .. IOC] then&lt;br /&gt;
			nation = nation .. args['note_' .. IOC]&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if showLimit and (rank&amp;gt;showLimit) then &lt;br /&gt;
			if remainingStart == 0 then remainingStart = rank end&lt;br /&gt;
			limitReached = true&lt;br /&gt;
			remainingGold = remainingGold + gold&lt;br /&gt;
			remainingSilver = remainingSilver + silver&lt;br /&gt;
			remainingBronze = remainingBronze + bronze&lt;br /&gt;
		else&lt;br /&gt;
			local row&lt;br /&gt;
			if args['leading_' .. IOC] then&lt;br /&gt;
				row = root:tag('tr'):css('background-color', '#E9D66B')&lt;br /&gt;
				color = '#E9D66B'&lt;br /&gt;
			else&lt;br /&gt;
				row = root:tag('tr')&lt;br /&gt;
			end&lt;br /&gt;
				&lt;br /&gt;
			--Don't put the color on the row because of ranks spanning multiple rows. &lt;br /&gt;
			--:css('background-color', color)&lt;br /&gt;
			&lt;br /&gt;
			if args['hide_rank'] then else&lt;br /&gt;
				if (gold == lastGold) and (silver == lastSilver) and (bronze == lastBronze) then&lt;br /&gt;
					lastspan = lastspan + 1&lt;br /&gt;
					lastrankcell:attr('rowspan',lastspan)&lt;br /&gt;
				else&lt;br /&gt;
					lastspan = 1&lt;br /&gt;
					if args['skip_' .. IOC] then&lt;br /&gt;
						lastrankcell = row:tag('td'):wikitext(frame:expandTemplate{title = 'sort', args = {'999', '–'}})&lt;br /&gt;
					else&lt;br /&gt;
						lastrankcell = row:tag('td'):wikitext(rank)&lt;br /&gt;
						lastGold   = gold&lt;br /&gt;
						lastSilver = silver&lt;br /&gt;
						lastBronze = bronze&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			row:tag('th')&lt;br /&gt;
					:attr('scope', 'row')&lt;br /&gt;
					:css('background-color', color)&lt;br /&gt;
					:css('text-align','left')&lt;br /&gt;
					:wikitext(nation)&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:wikitext(gold)&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:wikitext(silver)&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:wikitext(bronze)&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:wikitext(total)&lt;br /&gt;
		end&lt;br /&gt;
		remainingEnd = rank&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if limitReached then&lt;br /&gt;
		root:tag('tr')&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:wikitext(remainingStart..'–'..remainingEnd)&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:css('font-style', 'italic')&lt;br /&gt;
					:css('text-align','left')&lt;br /&gt;
					:wikitext(args['remaining_link'] or args['remaining_text'] or 'Remaining')&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:wikitext(remainingGold)&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:wikitext(remainingSilver)&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:wikitext(remainingBronze)&lt;br /&gt;
				:tag('td')&lt;br /&gt;
					:wikitext(remainingGold+remainingSilver+remainingBronze)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if team:match('^[A-Z][A-Z][A-Z]$') or team:match('&amp;gt;[A-Z][A-Z][A-Z]&amp;lt;') then else team = team:lower() end&lt;br /&gt;
	if team:match('^games$') then team = 'game' end&lt;br /&gt;
	&lt;br /&gt;
	local colspan &lt;br /&gt;
	if args['hide_rank'] then &lt;br /&gt;
		colspan = 1 &lt;br /&gt;
	else &lt;br /&gt;
		colspan = 2	&lt;br /&gt;
	end&lt;br /&gt;
	if args['hide_totals'] then else&lt;br /&gt;
		root:tag('tr')&lt;br /&gt;
			:css('background-color', '#eaebef')&lt;br /&gt;
			:addClass('sortbottom')&lt;br /&gt;
			:tag('th')&lt;br /&gt;
				:wikitext('Totals ('..remainingEnd..' '..team..'s)')&lt;br /&gt;
				:attr('scope', 'row')&lt;br /&gt;
				:css('background-color', '#eaebef')&lt;br /&gt;
				:css('font-weight', 'bold')&lt;br /&gt;
				:attr('colspan', colspan)&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(args['total_gold'] or totalGold)&lt;br /&gt;
				:css('font-weight', 'bold')&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(args['total_silver'] or totalSilver)&lt;br /&gt;
				:css('font-weight', 'bold')&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(args['total_bronze'] or totalBronze)&lt;br /&gt;
				:css('font-weight', 'bold')&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:wikitext(args['grand_total'] or totalGold+totalSilver+totalBronze)&lt;br /&gt;
				:css('font-weight', 'bold')&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Build the rest of the footer&lt;br /&gt;
	if args['source'] or args['notes'] then&lt;br /&gt;
		if footer ~= '' then&lt;br /&gt;
			footer = footer .. '&amp;lt;br&amp;gt;'&lt;br /&gt;
		end&lt;br /&gt;
		footer = frame:expandTemplate{ title = 'refbegin' } .. footer&lt;br /&gt;
		&lt;br /&gt;
		if args['source'] then &lt;br /&gt;
			footer = footer .. 'Source: ' .. args['source']&lt;br /&gt;
		end&lt;br /&gt;
		if args['notes'] then&lt;br /&gt;
			if args['source'] then&lt;br /&gt;
				footer = footer .. '&amp;lt;br&amp;gt;'&lt;br /&gt;
			end&lt;br /&gt;
			footer = footer .. 'Notes: ' .. args['notes']&lt;br /&gt;
		end&lt;br /&gt;
		footer = footer .. frame:expandTemplate{ title = 'refend' }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return header .. tostring(root) .. footer&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>en&gt;Maiō T.</name></author>
	</entry>
</feed>