<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FBrandonXLF%2F3</id>
	<title>Module:Sandbox/BrandonXLF/3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FBrandonXLF%2F3"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/BrandonXLF/3&amp;action=history"/>
	<updated>2026-05-12T02:58:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/BrandonXLF/3&amp;diff=145211&amp;oldid=prev</id>
		<title>imported&gt;BrandonXLF at 05:38, 23 July 2022</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/BrandonXLF/3&amp;diff=145211&amp;oldid=prev"/>
		<updated>2022-07-23T05:38:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Sandbox, do not delete&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function getCountry(country)&lt;br /&gt;
	local title = mw.title.new(country)&lt;br /&gt;
	&lt;br /&gt;
	if not title or not title.exists then&lt;br /&gt;
		return country&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return &amp;#039;[[&amp;#039; .. country .. &amp;#039;]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getTimespan(timespan)&lt;br /&gt;
	return &amp;#039; (&amp;#039; .. timespan .. &amp;#039;)&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getImage(image)&lt;br /&gt;
	local file = nil&lt;br /&gt;
&lt;br /&gt;
	if string.match(image, &amp;#039;.-%.&amp;#039;) then&lt;br /&gt;
		file = mw.getCurrentFrame():expandTemplate{title = &amp;#039;flagicon image&amp;#039;, args = {image}}&lt;br /&gt;
	elseif string.match(image, &amp;#039;.- %(.-%)&amp;#039;) then&lt;br /&gt;
		local country, var = string.match(image,&amp;#039;(.-) %((.-)%)&amp;#039;)&lt;br /&gt;
		file = mw.getCurrentFrame():expandTemplate{title = &amp;#039;flagdeco&amp;#039;, args = {country, var, noredlink = &amp;#039;y&amp;#039;}}&lt;br /&gt;
	else&lt;br /&gt;
		file = mw.getCurrentFrame():expandTemplate{title = &amp;#039;flagdeco&amp;#039;, args = {image, noredlink = &amp;#039;y&amp;#039;}}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return file&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	local hasFlags = false&lt;br /&gt;
	local entries = {}&lt;br /&gt;
	local i = 1&lt;br /&gt;
	local keyHandles = {&lt;br /&gt;
		[&amp;#039;&amp;#039;] = getCountry,&lt;br /&gt;
		[&amp;#039;date&amp;#039;] = getTimespan,&lt;br /&gt;
		flag = getImage&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	for i, entry in ipairs(args) do&lt;br /&gt;
		local country&lt;br /&gt;
		local timespan&lt;br /&gt;
		local flag&lt;br /&gt;
		local data = {}&lt;br /&gt;
		&lt;br /&gt;
		for line in entry:gmatch(&amp;#039;[^\n]+&amp;#039;) do&lt;br /&gt;
			line = mw.text.trim(line)&lt;br /&gt;
			&lt;br /&gt;
			local key, val = line:match(&amp;#039;^([a-z]*):? *(.*)$&amp;#039;)&lt;br /&gt;
			&lt;br /&gt;
			if keyHandles[key] then&lt;br /&gt;
				data[key] = keyHandles[key](val)&lt;br /&gt;
			else&lt;br /&gt;
				return require(&amp;#039;Module:Error&amp;#039;).error{&amp;#039;Invalid key &amp;#039; .. key .. &amp;#039; in argument &amp;#039; .. i}&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if not data[&amp;#039;&amp;#039;] then&lt;br /&gt;
			return require(&amp;#039;Module:Error&amp;#039;).error{&amp;#039;A country is required in argument &amp;#039; .. i}&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if not data[&amp;#039;date&amp;#039;] then&lt;br /&gt;
			return require(&amp;#039;Module:Error&amp;#039;).error{&amp;#039;A date is required in argument &amp;#039; .. i}&lt;br /&gt;
		end&lt;br /&gt;
	&lt;br /&gt;
		if data.flag then&lt;br /&gt;
			hasFlags = true&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		table.insert(entries, data)&lt;br /&gt;
	&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local outTable = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
		:css({&lt;br /&gt;
			padding = &amp;#039;5px&amp;#039;,&lt;br /&gt;
			float = args.float or &amp;#039;left&amp;#039;,&lt;br /&gt;
			[&amp;#039;background-color&amp;#039;] = &amp;#039;#f8f9fa&amp;#039;,&lt;br /&gt;
			border = &amp;#039;1px solid #aaa&amp;#039;,&lt;br /&gt;
			width = &amp;#039;20em&amp;#039;,&lt;br /&gt;
			[&amp;#039;font-size&amp;#039;] = &amp;#039;90%&amp;#039;&lt;br /&gt;
		})&lt;br /&gt;
&lt;br /&gt;
	outTable:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
		:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
			:attr(&amp;#039;colspan&amp;#039;, hasFlags and 2 or 1)&lt;br /&gt;
			:css({&lt;br /&gt;
				[&amp;#039;text-align&amp;#039;] = &amp;#039;center&amp;#039;,&lt;br /&gt;
				[&amp;#039;font-size&amp;#039;] = &amp;#039;larger&amp;#039;,&lt;br /&gt;
				[&amp;#039;font-weight&amp;#039;] = &amp;#039;bold&amp;#039;&lt;br /&gt;
			})&lt;br /&gt;
			:wikitext(args.title and args.title or &amp;#039;Historical affiliations&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	for i, entry in ipairs(entries) do&lt;br /&gt;
		local row = outTable:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
		&lt;br /&gt;
		if entry.flag then&lt;br /&gt;
			row:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;vertical-align&amp;#039;, &amp;#039;top&amp;#039;)&lt;br /&gt;
				:wikitext(entry.flag)&lt;br /&gt;
		elseif hasFlags then&lt;br /&gt;
			row:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
				&lt;br /&gt;
		row:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:css({&lt;br /&gt;
				width = &amp;#039;100%&amp;#039;,&lt;br /&gt;
				[&amp;#039;vertical-align&amp;#039;] = &amp;#039;top&amp;#039;&lt;br /&gt;
			})&lt;br /&gt;
			:wikitext(entry[&amp;#039;&amp;#039;] .. entry[&amp;#039;date&amp;#039;])&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring(outTable)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;BrandonXLF</name></author>
	</entry>
</feed>