<?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%2FGabrielchihonglee%2FTempReign</id>
	<title>Module:Sandbox/Gabrielchihonglee/TempReign - 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%2FGabrielchihonglee%2FTempReign"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Gabrielchihonglee/TempReign&amp;action=history"/>
	<updated>2026-07-28T21:16:37Z</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/Gabrielchihonglee/TempReign&amp;diff=145445&amp;oldid=prev</id>
		<title>imported&gt;Gabrielchl at 00:49, 13 January 2018</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Gabrielchihonglee/TempReign&amp;diff=145445&amp;oldid=prev"/>
		<updated>2018-01-13T00:49:06Z</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;-- For GCI Lua Task 10&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.reign( frame )&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	-- **** Taking in all parameters&amp;#039; value **** --&lt;br /&gt;
    local startDate = frame.args[1] or &amp;quot;&amp;quot; -- Start date, string and/or number, optional&lt;br /&gt;
    local endDate = frame.args[2] or &amp;quot;&amp;quot; -- End date, string and/or number, optional&lt;br /&gt;
    local startDate2 = frame.args[3] or &amp;quot;&amp;quot; -- 2nd Start date, string and/or number, optional&lt;br /&gt;
    local endDate2 = frame.args[4] or &amp;quot;&amp;quot; -- 2nd End date, string and/or number, optional&lt;br /&gt;
    local single = frame.args.single or &amp;quot;&amp;quot; -- Single date, string and/or number, optional&lt;br /&gt;
    local show = frame.args.show or frame.args.link or frame.args.lk or &amp;quot;&amp;quot; -- Formats &amp;quot;r.&amp;quot;, &amp;quot;none&amp;quot;, &amp;quot;link&amp;quot;, &amp;quot;word&amp;quot;, &amp;quot;colon&amp;quot;, &amp;quot;lword&amp;quot;, &amp;quot;lcolon&amp;quot;, &amp;quot;blank&amp;quot;, optional&lt;br /&gt;
    local cap = frame.args.cap or &amp;quot;&amp;quot; -- Capitalizes the r./reigned/reign text, &amp;quot;yes&amp;quot; or any other values, optional&lt;br /&gt;
    local preDate = frame.args[&amp;#039;pre-date&amp;#039;] or &amp;quot;&amp;quot; -- Single date before date range, string and/or number, optional&lt;br /&gt;
    local postDate = frame.args[&amp;#039;post-date&amp;#039;] or &amp;quot;&amp;quot; -- Single date after date range, string and/or number, optional&lt;br /&gt;
    local midDate = frame.args[&amp;#039;mid-date&amp;#039;] or &amp;quot;&amp;quot; -- Single date between 2 date range, string and/or number, optional&lt;br /&gt;
    local era = frame.args.era or &amp;quot;&amp;quot; -- Adds era at the end, string and/or number (posibly link), optional&lt;br /&gt;
    local wrap = frame.args.wrap or &amp;quot;&amp;quot; -- Adds era at the end, &amp;quot;yes&amp;quot; or any other values, optional&lt;br /&gt;
	local sortable = frame.args.sortable -- &lt;br /&gt;
	local sortDate = frame.args.sort_date --&lt;br /&gt;
	local label = frame.args.label or &amp;quot;&amp;quot; -- Phrase replacing &amp;quot;r.&amp;quot;, string and/or number, optional&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if startDate ~= &amp;quot;&amp;quot; and endDate == &amp;quot;&amp;quot; and startDate2 == &amp;quot;&amp;quot; and endDate2 == &amp;quot;&amp;quot; and preDate == &amp;quot;&amp;quot; and postDate == &amp;quot;&amp;quot; and midDate == &amp;quot;&amp;quot; then&lt;br /&gt;
		single = startDate&lt;br /&gt;
		startDate = &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	-- **** Cleaning dates (remove head and tail space) **** --&lt;br /&gt;
	local dateList = {startDate, endDate, startDate2, endDate2, preDate, postDate, midDate}&lt;br /&gt;
	for dateListCount = 1, 7 do&lt;br /&gt;
		if string.sub(dateList[dateListCount], 1, 1) == &amp;#039; &amp;#039; then dateList[dateListCount] = string.sub(dateList[dateListCount], 2, -1) end&lt;br /&gt;
		if string.sub(dateList[dateListCount], -1) == &amp;#039; &amp;#039; then dateList[dateListCount] = string.sub(dateList[dateListCount], 1, -2) end&lt;br /&gt;
	end&lt;br /&gt;
	startDate, endDate, startDate2, endDate2, preDate, postDate, midDate = unpack(dateList)&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	-- **** Initial output **** --&lt;br /&gt;
	local result = &amp;#039;&amp;lt;abbr title=&amp;quot;reign&amp;quot;&amp;gt;r&amp;lt;/abbr&amp;gt;.&amp;amp;nbsp;&amp;#039;&lt;br /&gt;
	if show == &amp;#039;word&amp;#039; then result = &amp;#039;reigned &amp;#039; end&lt;br /&gt;
	if show == &amp;#039;word&amp;#039; and cap ~= &amp;#039;&amp;#039; then result = &amp;#039;Reigned &amp;#039; end&lt;br /&gt;
	if show == &amp;#039;colon&amp;#039; then result = &amp;#039;reign: &amp;#039; end&lt;br /&gt;
	if show == &amp;#039;colon&amp;#039; and cap ~= &amp;#039;&amp;#039; then result = &amp;#039;Reign: &amp;#039; end&lt;br /&gt;
	if show == &amp;#039;lword&amp;#039; then result = &amp;#039;[[Reign|reigned]] &amp;#039; end&lt;br /&gt;
	if show == &amp;#039;lword&amp;#039; and cap ~= &amp;#039;&amp;#039; then result = &amp;#039;[[Reign|Reigned]] &amp;#039; end&lt;br /&gt;
	if show == &amp;#039;lcolon&amp;#039; then result = &amp;#039;[[Reign|reign]]: &amp;#039; end&lt;br /&gt;
	if show == &amp;#039;lcolon&amp;#039; and cap ~= &amp;#039;&amp;#039; then result = &amp;#039;[[Reign|Reign]]: &amp;#039; end&lt;br /&gt;
	if show == &amp;#039;blank&amp;#039; then result = &amp;#039;&amp;#039; end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if label ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		result = label .. &amp;#039; &amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- **** Add space between &amp;#039;c.&amp;#039; and number if needed **** --&lt;br /&gt;
	for dateListCount = 1, 4 do&lt;br /&gt;
		if string.sub(dateList[dateListCount], 1, 2) == &amp;#039;c.&amp;#039; and string.sub(dateList[dateListCount], 1, 3) ~= &amp;#039;c. &amp;#039; then&lt;br /&gt;
		dateList[dateListCount] = &amp;#039;c. &amp;#039; .. string.sub(dateList[dateListCount], 3, -1)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	startDate, endDate, startDate2, endDate2 = unpack(dateList)&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	-- **** Adding space before and after dash **** --&lt;br /&gt;
	local isComplexDate1 = false&lt;br /&gt;
	local isComplexDate2 = false&lt;br /&gt;
	if string.find(startDate, &amp;#039; &amp;#039;) ~= nil then isStartDateComplex = true end -- Check for space in middle of startDate&lt;br /&gt;
	if string.find(endDate, &amp;#039; &amp;#039;) ~= nil then isEndDateComplex = true end -- Check for space in middle of endDate&lt;br /&gt;
	if string.find(startDate2, &amp;#039; &amp;#039;) ~= nil then isStartDate2Complex = true end -- Check for space in middle of startDate2&lt;br /&gt;
	if string.find(endDate2, &amp;#039; &amp;#039;) ~= nil then isEndDate2Complex = true end -- Check for space in middle of endDate2&lt;br /&gt;
	if string.sub(endDate, -4) == &amp;#039; BCE&amp;#039; then&lt;br /&gt;
		if string.find(string.sub(endDate, 1, -5), &amp;#039; &amp;#039;) == nil then isEndDateComplex = false end&lt;br /&gt;
	end&lt;br /&gt;
	if isStartDateComplex == true or isEndDateComplex == true then&lt;br /&gt;
		isComplexDate1 = true -- true = there is at least 1 complex date&lt;br /&gt;
	end&lt;br /&gt;
	if isStartDate2Complex == true or isEndDate2Complex == true then&lt;br /&gt;
		isComplexDate2 = true -- true = there is at least 1 complex date&lt;br /&gt;
	end&lt;br /&gt;
	local dash1 = &amp;#039;–&amp;#039;&lt;br /&gt;
	local dash2 = &amp;#039;–&amp;#039;&lt;br /&gt;
	if startDate2 == &amp;#039;&amp;#039; and endDate2 == &amp;#039;&amp;#039; then	dash2 = &amp;#039;&amp;#039; end&lt;br /&gt;
	if isComplexDate1 then dash1 = &amp;#039; – &amp;#039; end&lt;br /&gt;
	if isComplexDate2 then dash2 = &amp;#039; – &amp;#039; end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if era ~= &amp;#039;&amp;#039; then era = &amp;#039; &amp;#039; .. era end&lt;br /&gt;
	&lt;br /&gt;
	if preDate ~= &amp;#039;&amp;#039; then preDate = preDate .. &amp;#039;, &amp;#039; end&lt;br /&gt;
	if postDate ~= &amp;#039;&amp;#039; then postDate = &amp;#039;, &amp;#039; .. postDate end&lt;br /&gt;
	if midDate ~= &amp;#039;&amp;#039; then midDate = &amp;#039;, &amp;#039; .. midDate .. &amp;#039;, &amp;#039; end&lt;br /&gt;
	&lt;br /&gt;
	-- **** Producing output **** --&lt;br /&gt;
	if startDate == &amp;quot;&amp;quot; and endDate == &amp;quot;&amp;quot; and preDate == &amp;quot;&amp;quot; and postDate == &amp;quot;&amp;quot; and single == &amp;quot;&amp;quot; then&lt;br /&gt;
		return result&lt;br /&gt;
	elseif single ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		result = result .. single&lt;br /&gt;
		return result&lt;br /&gt;
	else&lt;br /&gt;
		if startDate == &amp;quot;&amp;quot; and endDate == &amp;quot;&amp;quot; then dash1 = &amp;#039;&amp;#039; end&lt;br /&gt;
		if startDate == &amp;quot;&amp;quot; and endDate == &amp;quot;&amp;quot; and preDate ~= &amp;quot;&amp;quot; and postDate ~= &amp;quot;&amp;quot; then postDate = string.sub(postDate, 3, -1) end&lt;br /&gt;
		if startDate == &amp;quot;&amp;quot; and endDate ~= &amp;quot;&amp;quot; then startDate = &amp;#039;?&amp;#039; end&lt;br /&gt;
		if endDate == &amp;quot;&amp;quot; and startDate ~= &amp;quot;&amp;quot; then endDate = &amp;quot; &amp;quot; end&lt;br /&gt;
		if endDate2 == &amp;quot;&amp;quot; and startDate2 ~= &amp;quot;&amp;quot; then endDate2 = &amp;quot; &amp;quot; end&lt;br /&gt;
		local commaBetweenDates = &amp;#039;&amp;#039;&lt;br /&gt;
		if startDate ~= &amp;quot;&amp;quot; and endDate ~= &amp;quot;&amp;quot; and startDate2 ~= &amp;quot;&amp;quot; and endDate2 ~= &amp;quot;&amp;quot; and midDate == &amp;quot;&amp;quot; then commaBetweenDates = &amp;#039;, &amp;#039; end&lt;br /&gt;
		if wrap ~= &amp;quot;&amp;quot; then wrap = &amp;#039;&amp;lt;wbr&amp;gt;&amp;#039; end&lt;br /&gt;
		result = &amp;#039;&amp;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;&amp;#039; .. result .. preDate .. wrap .. startDate .. dash1 .. endDate .. wrap .. midDate .. commaBetweenDates .. wrap .. startDate2 .. dash2 .. endDate2 .. wrap .. postDate .. era .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Gabrielchl</name></author>
	</entry>
</feed>