<?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%2FBrownHairedGirl%2FIrelandByCountyCatNav17</id>
	<title>Module:Sandbox/BrownHairedGirl/IrelandByCountyCatNav17 - 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%2FBrownHairedGirl%2FIrelandByCountyCatNav17"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/BrownHairedGirl/IrelandByCountyCatNav17&amp;action=history"/>
	<updated>2026-04-04T05:03:27Z</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/BrownHairedGirl/IrelandByCountyCatNav17&amp;diff=145224&amp;oldid=prev</id>
		<title>imported&gt;BrownHairedGirl: Undid revision 834022461 by BrownHairedGirl -- wrong page</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/BrownHairedGirl/IrelandByCountyCatNav17&amp;diff=145224&amp;oldid=prev"/>
		<updated>2018-04-03T14:48:50Z</updated>

		<summary type="html">&lt;p&gt;Undid revision 834022461 by &lt;a href=&quot;/research/Special:Contributions/BrownHairedGirl&quot; title=&quot;Special:Contributions/BrownHairedGirl&quot;&gt;BrownHairedGirl&lt;/a&gt; -- wrong page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[ v16&lt;br /&gt;
&lt;br /&gt;
 each title consists of 3 parts&lt;br /&gt;
    * prefix&lt;br /&gt;
    * county name&lt;br /&gt;
    * suffix&lt;br /&gt;
 e.g. &amp;quot;Foo in County Mayo&amp;quot;&lt;br /&gt;
    * prefix = &amp;quot;Foo in &amp;quot;&lt;br /&gt;
    * county name = &amp;quot;County Mayo&amp;quot;&lt;br /&gt;
    * suffix = &amp;quot;&amp;quot;&lt;br /&gt;
 e.g. &amp;quot;County Sligo-related lists&amp;quot;&lt;br /&gt;
    * prefix = &amp;quot;&amp;quot;&lt;br /&gt;
    * county name = &amp;quot;County Sligo&amp;quot;&lt;br /&gt;
    * suffix = &amp;quot;-related lists&amp;quot;&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
-- config&lt;br /&gt;
local textSize = &amp;#039;90%&amp;#039;&lt;br /&gt;
local tableClass=&amp;quot;infobox&amp;quot;&lt;br /&gt;
local tableStyle=&amp;quot;margin-left:auto; margin-right:auto; clear:left; float:left; width:auto;&amp;quot;&lt;br /&gt;
local evenRowStyle = &amp;quot;background-color:#f3f3f3;&amp;quot;&lt;br /&gt;
local oddRowStyle = &amp;quot;&amp;quot;&lt;br /&gt;
local labelStyle = &amp;quot;text-align:right; font-weight: bold;&amp;quot;&lt;br /&gt;
local listStyle = &amp;quot;text-align:left; font-weight: normal;&amp;quot;&lt;br /&gt;
local greyLinkColor = &amp;quot;#888&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- globals for this module&lt;br /&gt;
local debugging = false&lt;br /&gt;
local debugmsg = &amp;quot;&amp;quot;&lt;br /&gt;
local tableRowNum = 0&lt;br /&gt;
local includeNewCounties = true&lt;br /&gt;
local useCountyWord = true&lt;br /&gt;
local title_prefix = &amp;quot;&amp;quot;&lt;br /&gt;
local title_suffix = &amp;quot;&amp;quot;&lt;br /&gt;
local displayAbbrevCounty = false&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local TwentySixCounties = {&lt;br /&gt;
	&amp;#039;Carlow&amp;#039;,&lt;br /&gt;
	&amp;#039;Cavan&amp;#039;,&lt;br /&gt;
	&amp;#039;Clare&amp;#039;,&lt;br /&gt;
	&amp;#039;Cork&amp;#039;,&lt;br /&gt;
	&amp;#039;Donegal&amp;#039;,&lt;br /&gt;
	&amp;#039;Dublin&amp;#039;,&lt;br /&gt;
	&amp;#039;Galway&amp;#039;,&lt;br /&gt;
	&amp;#039;Kerry&amp;#039;,&lt;br /&gt;
	&amp;#039;Kildare&amp;#039;,&lt;br /&gt;
	&amp;#039;Kilkenny&amp;#039;,&lt;br /&gt;
	&amp;#039;Laois&amp;#039;,&lt;br /&gt;
	&amp;#039;Leitrim&amp;#039;,&lt;br /&gt;
	&amp;#039;Limerick&amp;#039;,&lt;br /&gt;
	&amp;#039;Longford&amp;#039;,&lt;br /&gt;
	&amp;#039;Louth&amp;#039;,&lt;br /&gt;
	&amp;#039;Mayo&amp;#039;,&lt;br /&gt;
	&amp;#039;Meath&amp;#039;,&lt;br /&gt;
	&amp;#039;Monaghan&amp;#039;,&lt;br /&gt;
	&amp;#039;Offaly&amp;#039;,&lt;br /&gt;
	&amp;#039;Roscommon&amp;#039;,&lt;br /&gt;
	&amp;#039;Sligo&amp;#039;,&lt;br /&gt;
	&amp;#039;Tipperary&amp;#039;,&lt;br /&gt;
	&amp;#039;Waterford&amp;#039;,&lt;br /&gt;
	&amp;#039;Westmeath&amp;#039;,&lt;br /&gt;
	&amp;#039;Wexford&amp;#039;,&lt;br /&gt;
	&amp;#039;Wicklow&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local SixCounties = {&lt;br /&gt;
	&amp;#039;Antrim&amp;#039;,&lt;br /&gt;
	&amp;#039;Armagh&amp;#039;,&lt;br /&gt;
	&amp;#039;Down&amp;#039;,&lt;br /&gt;
	&amp;#039;Fermanagh&amp;#039;,&lt;br /&gt;
	&amp;#039;Londonderry&amp;#039;,&lt;br /&gt;
	&amp;#039;Tyrone&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local newCounties = {&lt;br /&gt;
	&amp;#039;Dún Laoghaire–Rathdown&amp;#039;,&lt;br /&gt;
	&amp;#039;Fingal&amp;#039;,&lt;br /&gt;
	&amp;#039;South Dublin (county)&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local Traditional32Counties = {&lt;br /&gt;
	&amp;#039;Antrim&amp;#039;,&lt;br /&gt;
	&amp;#039;Armagh&amp;#039;,&lt;br /&gt;
	&amp;#039;Carlow&amp;#039;,&lt;br /&gt;
	&amp;#039;Cavan&amp;#039;,&lt;br /&gt;
	&amp;#039;Clare&amp;#039;,&lt;br /&gt;
	&amp;#039;Cork&amp;#039;,&lt;br /&gt;
	&amp;#039;Donegal&amp;#039;,&lt;br /&gt;
	&amp;#039;Down&amp;#039;,&lt;br /&gt;
	&amp;#039;Dublin&amp;#039;,&lt;br /&gt;
	&amp;#039;Fermanagh&amp;#039;,&lt;br /&gt;
	&amp;#039;Galway&amp;#039;,&lt;br /&gt;
	&amp;#039;Kerry&amp;#039;,&lt;br /&gt;
	&amp;#039;Kildare&amp;#039;,&lt;br /&gt;
	&amp;#039;Kilkenny&amp;#039;,&lt;br /&gt;
	&amp;#039;Laois&amp;#039;,&lt;br /&gt;
	&amp;#039;Leitrim&amp;#039;,&lt;br /&gt;
	&amp;#039;Limerick&amp;#039;,&lt;br /&gt;
	&amp;#039;Londonderry&amp;#039;,&lt;br /&gt;
	&amp;#039;Longford&amp;#039;,&lt;br /&gt;
	&amp;#039;Louth&amp;#039;,&lt;br /&gt;
	&amp;#039;Mayo&amp;#039;,&lt;br /&gt;
	&amp;#039;Meath&amp;#039;,&lt;br /&gt;
	&amp;#039;Monaghan&amp;#039;,&lt;br /&gt;
	&amp;#039;Offaly&amp;#039;,&lt;br /&gt;
	&amp;#039;Roscommon&amp;#039;,&lt;br /&gt;
	&amp;#039;Sligo&amp;#039;,&lt;br /&gt;
	&amp;#039;Tipperary&amp;#039;,&lt;br /&gt;
	&amp;#039;Tyrone&amp;#039;,&lt;br /&gt;
	&amp;#039;Waterford&amp;#039;,&lt;br /&gt;
	&amp;#039;Westmeath&amp;#039;,&lt;br /&gt;
	&amp;#039;Wexford&amp;#039;,&lt;br /&gt;
	&amp;#039;Wicklow&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local GAACounties = {&lt;br /&gt;
	&amp;#039;Antrim&amp;#039;,&lt;br /&gt;
	&amp;#039;Armagh&amp;#039;,&lt;br /&gt;
	&amp;#039;Carlow&amp;#039;,&lt;br /&gt;
	&amp;#039;Cavan&amp;#039;,&lt;br /&gt;
	&amp;#039;Clare&amp;#039;,&lt;br /&gt;
	&amp;#039;Cork&amp;#039;,&lt;br /&gt;
	&amp;#039;Donegal&amp;#039;,&lt;br /&gt;
	&amp;#039;Derry&amp;#039;,&lt;br /&gt;
	&amp;#039;Down&amp;#039;,&lt;br /&gt;
	&amp;#039;Dublin&amp;#039;,&lt;br /&gt;
	&amp;#039;Fermanagh&amp;#039;,&lt;br /&gt;
	&amp;#039;Galway&amp;#039;,&lt;br /&gt;
	&amp;#039;Kerry&amp;#039;,&lt;br /&gt;
	&amp;#039;Kildare&amp;#039;,&lt;br /&gt;
	&amp;#039;Kilkenny&amp;#039;,&lt;br /&gt;
	&amp;#039;Laois&amp;#039;,&lt;br /&gt;
	&amp;#039;Leitrim&amp;#039;,&lt;br /&gt;
	&amp;#039;Limerick&amp;#039;,&lt;br /&gt;
	&amp;#039;Longford&amp;#039;,&lt;br /&gt;
	&amp;#039;Louth&amp;#039;,&lt;br /&gt;
	&amp;#039;Mayo&amp;#039;,&lt;br /&gt;
	&amp;#039;Meath&amp;#039;,&lt;br /&gt;
	&amp;#039;Monaghan&amp;#039;,&lt;br /&gt;
	&amp;#039;Offaly&amp;#039;,&lt;br /&gt;
	&amp;#039;Roscommon&amp;#039;,&lt;br /&gt;
	&amp;#039;Sligo&amp;#039;,&lt;br /&gt;
	&amp;#039;Tipperary&amp;#039;,&lt;br /&gt;
	&amp;#039;Tyrone&amp;#039;,&lt;br /&gt;
	&amp;#039;Waterford&amp;#039;,&lt;br /&gt;
	&amp;#039;Westmeath&amp;#039;,&lt;br /&gt;
	&amp;#039;Wexford&amp;#039;,&lt;br /&gt;
	&amp;#039;Wicklow&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local abbreviatedCountyName = {&lt;br /&gt;
--using ISO 3166-2:IE&lt;br /&gt;
	[&amp;#039;Cork&amp;#039;] = &amp;#039;CO&amp;#039;,&lt;br /&gt;
	[&amp;#039;Clare&amp;#039;] = &amp;#039;CE&amp;#039;,&lt;br /&gt;
	[&amp;#039;Cavan&amp;#039;] = &amp;#039;CN&amp;#039;,&lt;br /&gt;
	[&amp;#039;Carlow&amp;#039;] = &amp;#039;CW&amp;#039;,&lt;br /&gt;
	[&amp;#039;Dublin&amp;#039;] = &amp;#039;D&amp;#039;,&lt;br /&gt;
	[&amp;#039;Donegal&amp;#039;] = &amp;#039;DL&amp;#039;,&lt;br /&gt;
	[&amp;#039;Galway&amp;#039;] = &amp;#039;G&amp;#039;,&lt;br /&gt;
	[&amp;#039;Kildare&amp;#039;] = &amp;#039;KE&amp;#039;,&lt;br /&gt;
	[&amp;#039;Kilkenny&amp;#039;] = &amp;#039;KK&amp;#039;,&lt;br /&gt;
	[&amp;#039;Kerry&amp;#039;] = &amp;#039;KY&amp;#039;,&lt;br /&gt;
	[&amp;#039;Limerick&amp;#039;] = &amp;#039;LK&amp;#039;,&lt;br /&gt;
	[&amp;#039;Longford&amp;#039;] = &amp;#039;LD&amp;#039;,&lt;br /&gt;
	[&amp;#039;Louth&amp;#039;] = &amp;#039;LH&amp;#039;,&lt;br /&gt;
	[&amp;#039;Leitrim&amp;#039;] = &amp;#039;LM&amp;#039;,&lt;br /&gt;
	[&amp;#039;Laois&amp;#039;] = &amp;#039;LS&amp;#039;,&lt;br /&gt;
	[&amp;#039;Meath&amp;#039;] = &amp;#039;MH&amp;#039;,&lt;br /&gt;
	[&amp;#039;Monaghan&amp;#039;] = &amp;#039;MN&amp;#039;,&lt;br /&gt;
	[&amp;#039;Mayo&amp;#039;] = &amp;#039;MO&amp;#039;,&lt;br /&gt;
	[&amp;#039;Offaly&amp;#039;] = &amp;#039;OY&amp;#039;,&lt;br /&gt;
	[&amp;#039;Roscommon&amp;#039;] = &amp;#039;RN&amp;#039;,&lt;br /&gt;
	[&amp;#039;Sligo&amp;#039;] = &amp;#039;SO&amp;#039;,&lt;br /&gt;
	[&amp;#039;Tipperary&amp;#039;] = &amp;#039;TA&amp;#039;,&lt;br /&gt;
	[&amp;#039;Waterford&amp;#039;] = &amp;#039;WD&amp;#039;,&lt;br /&gt;
	[&amp;#039;Westmeath&amp;#039;] = &amp;#039;WH&amp;#039;,&lt;br /&gt;
	[&amp;#039;Wexford&amp;#039;] = &amp;#039;WX&amp;#039;,&lt;br /&gt;
	[&amp;#039;Wicklow&amp;#039;] = &amp;#039;WW&amp;#039;,&lt;br /&gt;
-- made-up codes for new counties&lt;br /&gt;
	[&amp;#039;Fingal&amp;#039;] = &amp;#039;FL&amp;#039;,&lt;br /&gt;
	[&amp;#039;South Dublin&amp;#039;] = &amp;#039;SD&amp;#039;,&lt;br /&gt;
	[&amp;#039;South Dublin (county)&amp;#039;] = &amp;#039;SD&amp;#039;,&lt;br /&gt;
	[&amp;#039;Dún Laoghaire–Rathdown&amp;#039;] = &amp;#039;DLR&amp;#039;,&lt;br /&gt;
-- made-up codes for Northern Ireland&lt;br /&gt;
	[&amp;#039;Antrim&amp;#039;] = &amp;#039;AM&amp;#039;,&lt;br /&gt;
	[&amp;#039;Armagh&amp;#039;] = &amp;#039;AH&amp;#039;,&lt;br /&gt;
	[&amp;#039;Down&amp;#039;] = &amp;#039;DN&amp;#039;,&lt;br /&gt;
	[&amp;#039;Fermanagh&amp;#039;] = &amp;#039;FH&amp;#039;,&lt;br /&gt;
	[&amp;#039;Londonderry&amp;#039;] = &amp;#039;LY&amp;#039;,&lt;br /&gt;
	[&amp;#039;Tyrone&amp;#039;] = &amp;#039;TE&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function makeTableRow(rowLabel, useCountyWord, countyList)&lt;br /&gt;
	debugLog(2, &amp;quot;makeTableRow: [&amp;quot; .. rowLabel .. &amp;quot;]&amp;quot;)&lt;br /&gt;
	tableRowNum = tableRowNum + 1&lt;br /&gt;
	local thisRow&lt;br /&gt;
	if (tableRowNum % 2) == 0 then&lt;br /&gt;
		debugLog(3, &amp;quot;Even-numbered&amp;quot;)&lt;br /&gt;
		thisRow = &amp;#039;&amp;lt;tr style=&amp;quot;&amp;#039; .. evenRowStyle .. &amp;#039;&amp;quot;&amp;gt;\n&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		debugLog(3, &amp;quot;Odd-numbered&amp;quot;)&lt;br /&gt;
		thisRow = &amp;#039;&amp;lt;tr style=&amp;quot;&amp;#039; .. oddRowStyle .. &amp;#039;&amp;quot;&amp;gt;\n&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if not ((rowLabel == nil) or (mw.ustring.match(rowLabel, &amp;quot;^%s*$&amp;quot;))) then&lt;br /&gt;
		thisRow = thisRow .. &amp;#039;&amp;lt;td style=&amp;quot;&amp;#039; .. labelStyle .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. rowLabel .. &amp;#039;&amp;lt;/td&amp;gt;\n&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	-- now begin making the row contents&lt;br /&gt;
	local countyWord = &amp;quot;&amp;quot;&lt;br /&gt;
	if useCountyWord then&lt;br /&gt;
		debugLog(3, &amp;quot;Using countyWord&amp;quot;)&lt;br /&gt;
		countyWord = &amp;quot;County &amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		debugLog(3, &amp;quot;Not using countyWord&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	thisRow = thisRow .. &amp;#039;&amp;lt;td style=&amp;quot;&amp;#039; .. listStyle .. &amp;#039;;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;hlist&amp;quot;&amp;gt;\n&amp;#039;&lt;br /&gt;
	local i, aCounty&lt;br /&gt;
		debugLog(3, &amp;quot;Process countyList&amp;quot;)&lt;br /&gt;
	for i, aCounty in ipairs(countyList) do&lt;br /&gt;
		debugLog(4, &amp;quot;No. [&amp;quot; .. tostring(i) .. &amp;quot;: [&amp;quot; .. aCounty .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		myCatName = makeCatName(countyWord .. aCounty, title_prefix, title_suffix)&lt;br /&gt;
		thisRow = thisRow .. &amp;quot;* &amp;quot; .. makeCatLink(myCatName, aCounty) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
		local j, nuCounty&lt;br /&gt;
		if (includeNewCounties and (aCounty == &amp;quot;Dublin&amp;quot;)) then&lt;br /&gt;
			-- make a sub-list for the newCounties&lt;br /&gt;
			local subCatName&lt;br /&gt;
			for j, nuCounty in ipairs(newCounties) do&lt;br /&gt;
				subCatName = makeCatName(nuCounty, title_prefix, title_suffix)&lt;br /&gt;
				thisRow = thisRow .. &amp;quot;** &amp;quot; .. makeCatLink(subCatName, nuCounty) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			subCatName = makeCatName(&amp;quot;Dublin (city)&amp;quot;, title_prefix, title_suffix)&lt;br /&gt;
			thisRow = thisRow .. &amp;quot;** &amp;quot; .. makeCatLink(subCatName, &amp;quot;City&amp;quot;) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	thisRow = thisRow .. &amp;#039;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;\n&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	return thisRow&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function makeTable()&lt;br /&gt;
	debugLog(1, &amp;quot;makeTable&amp;quot;)&lt;br /&gt;
	tableRowNum = 0&lt;br /&gt;
	local myTable = &amp;#039;&amp;lt;table class=&amp;quot;&amp;#039; .. tableClass .. &amp;#039;&amp;quot; style=&amp;quot;&amp;#039; .. tableStyle .. &amp;#039; ; font-size:&amp;#039; .. textSize .. &amp;#039;;&amp;quot;&amp;gt;\n&amp;#039;&lt;br /&gt;
	myTable = myTable .. makeTableRow(&amp;quot;Republic of Ireland&amp;quot;, useCountyWord, TwentySixCounties)&lt;br /&gt;
	myTable = myTable .. makeTableRow(&amp;quot;Northern Ireland&amp;quot;, useCountyWord, SixCounties)&lt;br /&gt;
	myTable = myTable .. &amp;quot;&amp;lt;/table&amp;gt;\n&amp;quot;&lt;br /&gt;
	return myTable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function makeAbbreviatedCountyName(s)&lt;br /&gt;
	debugLog(5, &amp;quot;displayAbbrevCounty? &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	if not displayAbbrevCounty then&lt;br /&gt;
		debugLog(nil, &amp;quot; No&amp;quot;)&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
		debugLog(nil, &amp;quot; Yes&amp;quot;)&lt;br /&gt;
	if (abbreviatedCountyName[s] ~= nil) then&lt;br /&gt;
		debugLog(5, &amp;quot;AbbreviatedCountyName for: [&amp;quot; .. s .. &amp;quot;] = [&amp;quot; .. abbreviatedCountyName[s] .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		return abbreviatedCountyName[s]&lt;br /&gt;
	end&lt;br /&gt;
	debugLog(5, &amp;quot;No abbreviatedCountyName for: [&amp;quot; .. s .. &amp;quot;]&amp;quot;)&lt;br /&gt;
	return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Make a piped link to a category, if it exists&lt;br /&gt;
-- If it doesn&amp;#039;t exist, just display the greyed the link title without linking&lt;br /&gt;
function makeCatLink(catname, disp)&lt;br /&gt;
	local displaytext&lt;br /&gt;
	if (disp ~= &amp;quot;&amp;quot;) and (disp ~= nil) then&lt;br /&gt;
		-- use &amp;#039;disp&amp;#039; parameter, but strip any trailing disambiguator&lt;br /&gt;
		displaytext = mw.ustring.gsub(disp, &amp;quot;%s+%(.+$&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
		displaytext = makeAbbreviatedCountyName(displaytext)&lt;br /&gt;
	else&lt;br /&gt;
		displaytext = catname&lt;br /&gt;
	end&lt;br /&gt;
	local fmtlink&lt;br /&gt;
	local catPage = mw.title.new( catname, &amp;quot;Category&amp;quot; )&lt;br /&gt;
	if (catPage.exists) then&lt;br /&gt;
		fmtlink = &amp;quot;[[:Category:&amp;quot; .. catname .. &amp;quot;|&amp;quot; .. displaytext .. &amp;quot;]]&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		fmtlink = &amp;#039;&amp;lt;span style=&amp;quot;color:&amp;#039; .. greyLinkColor .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. displaytext .. &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return fmtlink&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function makeCatName(countyName, prefix, suffix)&lt;br /&gt;
	local this_cat_name = &amp;#039;&amp;#039;;&lt;br /&gt;
	this_cat_name = this_cat_name .. prefix&lt;br /&gt;
	this_cat_name = this_cat_name .. countyName&lt;br /&gt;
	this_cat_name = this_cat_name .. suffix&lt;br /&gt;
	return this_cat_name&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Does the pagename include a bare county name? (i.e. without the prefix &amp;quot;County &amp;quot;)&lt;br /&gt;
-- This would be one line in regex, but Lua pattern matching is cruder, so&lt;br /&gt;
-- we need several passes to ensure that any match is of a complete word&lt;br /&gt;
function findBareCountyNameInPagename(pn, countylist, description)&lt;br /&gt;
	local i, testCounty&lt;br /&gt;
	debugLog(2, &amp;quot;trying bare_county name [&amp;quot; .. pn ..&amp;quot;] in county set: &amp;quot; .. description)&lt;br /&gt;
	for i, testCounty in ipairs(countylist) do&lt;br /&gt;
		debugLog(3, &amp;quot;testing new_county: [&amp;quot;  .. testCounty .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		local testCountyEncoded = mw.ustring.gsub(testCounty, &amp;quot;([%W])&amp;quot;, &amp;quot;%%%1&amp;quot;)&lt;br /&gt;
		-- For efficiency, the first test is a simple match as a a screening test&lt;br /&gt;
		-- If the bare county name is nowhere in the pagename, then no need for&lt;br /&gt;
		-- more precise checks&lt;br /&gt;
		if (mw.ustring.match(pn, testCountyEncoded)) then&lt;br /&gt;
			debugLog(4, &amp;quot;simple match success&amp;quot;)&lt;br /&gt;
			debugLog(4, &amp;quot;match at start, followed by separator? &amp;quot;)&lt;br /&gt;
			if mw.ustring.match(pn, &amp;quot;^&amp;quot; .. testCountyEncoded .. &amp;quot;[^%w]&amp;quot;) then&lt;br /&gt;
				debugLog(nil, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
				return testCounty&lt;br /&gt;
			else&lt;br /&gt;
				debugLog(nil, &amp;quot;No&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			debugLog(4, &amp;quot;match at end, preceded by separator? &amp;quot;)&lt;br /&gt;
			if mw.ustring.match(pn, &amp;quot;[^%w]&amp;quot; .. testCountyEncoded .. &amp;quot;$&amp;quot;) then&lt;br /&gt;
				debugLog(nil, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
				return testCounty&lt;br /&gt;
			else&lt;br /&gt;
				debugLog(nil, &amp;quot;No&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			debugLog(4, &amp;quot;match anywhere, preceded and followed by separator? &amp;quot;)&lt;br /&gt;
			if mw.ustring.match(pn, &amp;quot;[^%w]&amp;quot; .. testCountyEncoded .. &amp;quot;[^%w]&amp;quot;) then&lt;br /&gt;
				debugLog(nil, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
				return testCounty&lt;br /&gt;
			else&lt;br /&gt;
				debugLog(nil, &amp;quot;No&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			debugLog(4, &amp;quot;simple match fail&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- check whether a given county name is in a particular set&lt;br /&gt;
function isCountyInSet(s, countySet)&lt;br /&gt;
	local thisCounty = mw.ustring.gsub(s, &amp;quot;^County +&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	local aValidCounty&lt;br /&gt;
	for i, aValidCounty in ipairs(countySet) do&lt;br /&gt;
		if mw.ustring.match(thisCounty, &amp;quot;^&amp;quot; .. aValidCounty .. &amp;quot;$&amp;quot;) then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function parsePagename(pn)&lt;br /&gt;
	debugLog(1, &amp;quot;parsePagename: [&amp;quot; .. pn .. &amp;quot;]&amp;quot;)&lt;br /&gt;
	debugLog(2, &amp;quot;simple parse&amp;quot;)&lt;br /&gt;
	match_prefix, match_county, match_suffix = mw.ustring.match(pn, &amp;quot;^(.*)(County%s+%a+)(.*)$&amp;quot;)&lt;br /&gt;
	if not (match_county == nil or match_county == &amp;#039;&amp;#039;) then&lt;br /&gt;
		debugLog(3, &amp;quot;County Foo = [&amp;quot; .. match_county .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		-- we have a &amp;quot;County Foo&amp;quot; ... but is it one of the 32 counties?&lt;br /&gt;
		debugLog(3, &amp;quot;is [&amp;quot; .. match_county .. &amp;quot;] one of the 32 counties?&amp;quot;)&lt;br /&gt;
		if isCountyInSet(match_county, Traditional32Counties) then&lt;br /&gt;
			debugLog(nil, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
		else&lt;br /&gt;
			debugLog(nil, &amp;quot;No&amp;quot;)&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	else -- simple parse failed&lt;br /&gt;
		debugLog(3, &amp;quot;No match_&amp;#039;County Foo&amp;#039;&amp;quot;)&lt;br /&gt;
		local new_county = findBareCountyNameInPagename(pn, newCounties, &amp;quot;New_counties&amp;quot;)&lt;br /&gt;
		if new_county == nil then&lt;br /&gt;
			debugLog(3, &amp;quot;no match in new counties&amp;quot;)&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
		debugLog(3, &amp;quot;found new county: [&amp;quot; .. new_county .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		local testCountyEncoded = mw.ustring.gsub(new_county, &amp;quot;([%W])&amp;quot;, &amp;quot;%%%1&amp;quot;)&lt;br /&gt;
		match_prefix, match_county, match_suffix = mw.ustring.match(pn, &amp;quot;^(.*)(&amp;quot; .. testCountyEncoded .. &amp;quot;)(.*)$&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	title_prefix = match_prefix&lt;br /&gt;
	title_suffix = match_suffix&lt;br /&gt;
	debugLog(2, &amp;quot;parse successful&amp;quot;)&lt;br /&gt;
	debugLog(3, &amp;quot;match_prefix = [&amp;quot; .. match_prefix .. &amp;quot;]&amp;quot;)&lt;br /&gt;
	debugLog(3, &amp;quot;match_county = [&amp;quot; .. match_county .. &amp;quot;]&amp;quot;)&lt;br /&gt;
	debugLog(3, &amp;quot;match_suffix = [&amp;quot; .. match_suffix .. &amp;quot;]&amp;quot;)&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function publishDebugLog()&lt;br /&gt;
	if not debugging then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;==Debugging ==\n\n&amp;quot; .. debugmsg .. &amp;quot;\n== Output ==\n&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- debugLog builds a log which can be output if debuging is enabled&lt;br /&gt;
-- each log entry is given a level, so that the output is not simply a flat list&lt;br /&gt;
-- a debug msg may be appended to the previous msg by setting the level to nil&lt;br /&gt;
function debugLog(level, msg)&lt;br /&gt;
&lt;br /&gt;
	if (debugmsg == nil) then&lt;br /&gt;
		debugmsg = &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if (level ~= nil) then&lt;br /&gt;
		-- not appending, so make a new line&lt;br /&gt;
		debugmsg = debugmsg .. &amp;quot;\n&amp;quot;&lt;br /&gt;
		-- then add the level&lt;br /&gt;
		if (level == 1) then&lt;br /&gt;
			debugmsg = debugmsg .. &amp;quot;# &amp;quot;&lt;br /&gt;
		elseif  (level == 2) then&lt;br /&gt;
			debugmsg = debugmsg .. &amp;quot;#* &amp;quot;&lt;br /&gt;
		elseif  (level == 3) then&lt;br /&gt;
			debugmsg = debugmsg .. &amp;quot;#*# &amp;quot;&lt;br /&gt;
		elseif  (level == 4) then&lt;br /&gt;
			debugmsg = debugmsg .. &amp;quot;#*#* &amp;quot;&lt;br /&gt;
		elseif  (level == 5) then&lt;br /&gt;
			debugmsg = debugmsg .. &amp;quot;#*#*# &amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	debugmsg = debugmsg .. &amp;quot; &amp;quot; .. msg&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function argValueFunc(value)&lt;br /&gt;
	if (value == nil) then&lt;br /&gt;
		value = &amp;#039;&amp;#039; -- nil value = blank&lt;br /&gt;
	end&lt;br /&gt;
	value = mw.ustring.gsub(value, &amp;quot;^%s+$&amp;quot;, &amp;quot;&amp;quot;) -- only whitespace, so replace with &amp;#039;&amp;#039;&lt;br /&gt;
	return value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
-- getArgs&lt;br /&gt;
-- In all cases, convert to blank (i.e. &amp;#039;&amp;#039;)&lt;br /&gt;
--   * a nil value&lt;br /&gt;
--   * a value consisting only of whitespace&lt;br /&gt;
&lt;br /&gt;
	debugLog(1, &amp;quot;Check parameters&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	debugLog(2, &amp;quot;debug&amp;quot;)&lt;br /&gt;
	if (frame.args[&amp;#039;debug&amp;#039;] == nil) then&lt;br /&gt;
		debugLog(3, &amp;quot;not set&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		debugLog(3, &amp;quot;debug=[&amp;quot; .. frame.args[&amp;#039;debug&amp;#039;] .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		debugLog(4, &amp;quot;Evaluate as: &amp;quot;)&lt;br /&gt;
		if (yesno(frame.args[&amp;#039;debug&amp;#039;], false)) then&lt;br /&gt;
			debugLog(nil, &amp;quot;Yes&amp;quot;)&lt;br /&gt;
			debugging = true&lt;br /&gt;
		else&lt;br /&gt;
			debugLog(nil, &amp;quot;No, or invalid&amp;quot;)&lt;br /&gt;
			debugging = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	debugLog(2, &amp;quot;usecountyword&amp;quot;)&lt;br /&gt;
	if (frame.args[&amp;#039;usecountyword&amp;#039;] == nil) then&lt;br /&gt;
		debugLog(3, &amp;quot;not set&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		debugLog(3, &amp;quot;debug=[&amp;quot; .. frame.args[&amp;#039;usecountyword&amp;#039;] .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		debugLog(4, &amp;quot;Evaluate as: &amp;quot;)&lt;br /&gt;
		if (yesno(frame.args[&amp;#039;usecountyword&amp;#039;], true)) then&lt;br /&gt;
			debugLog(nil, &amp;quot;Yes, or invalid&amp;quot;)&lt;br /&gt;
			useCountyWord = true&lt;br /&gt;
		else&lt;br /&gt;
			debugLog(nil, &amp;quot;No&amp;quot;)&lt;br /&gt;
			useCountyWord = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	debugLog(2, &amp;quot;abbrev&amp;quot;)&lt;br /&gt;
	if (frame.args[&amp;#039;abbrev&amp;#039;] == nil) then&lt;br /&gt;
		debugLog(3, &amp;quot;not set&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		debugLog(3, &amp;quot;abbrev=[&amp;quot; .. frame.args[&amp;#039;abbrev&amp;#039;] .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		debugLog(4, &amp;quot;Evaluate as: &amp;quot;)&lt;br /&gt;
		if (yesno(frame.args[&amp;#039;abbrev&amp;#039;], false)) then&lt;br /&gt;
			debugLog(nil, &amp;quot;Yes, or invalid&amp;quot;)&lt;br /&gt;
			displayAbbrevCounty = true&lt;br /&gt;
		else&lt;br /&gt;
			debugLog(nil, &amp;quot;No&amp;quot;)&lt;br /&gt;
			displayAbbrevCounty = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	debugLog(2, &amp;quot;newcounties&amp;quot;)&lt;br /&gt;
	if (frame.args[&amp;#039;newcounties&amp;#039;] == nil) then&lt;br /&gt;
		debugLog(3, &amp;quot;not set&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		debugLog(3, &amp;quot;debug=[&amp;quot; .. frame.args[&amp;#039;newcounties&amp;#039;] .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		debugLog(4, &amp;quot;Evaluate as: &amp;quot;)&lt;br /&gt;
		if (yesno(frame.args[&amp;#039;newcounties&amp;#039;], false)) then&lt;br /&gt;
			debugLog(nil, &amp;quot;Yes, or invalid&amp;quot;)&lt;br /&gt;
			includeNewCounties = true&lt;br /&gt;
		else&lt;br /&gt;
			debugLog(nil, &amp;quot;No&amp;quot;)&lt;br /&gt;
			includeNewCounties = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- still need to add a &amp;quot;countyset&amp;quot; parameter, to choose [all 32]/[only 26]/[only 6]/[GAACounties]/[26+6]&lt;br /&gt;
	-- this is just a crude start&lt;br /&gt;
	debugLog(2, &amp;quot;countySet&amp;quot;)&lt;br /&gt;
	if (frame.args[&amp;#039;countyset&amp;#039;] == nil) then&lt;br /&gt;
		debugLog(3, &amp;quot;not set&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		local countySet = mw.ustring.lower(frame.args[&amp;#039;countyset&amp;#039;])&lt;br /&gt;
		debugLog(3, &amp;quot;countyset=[&amp;quot; .. countySet .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		debugLog(4, &amp;quot;Evaluate as: &amp;quot;)&lt;br /&gt;
		if (yesno(frame.args[&amp;#039;countyset&amp;#039;], false)) then&lt;br /&gt;
			debugLog(nil, &amp;quot;Yes, or invalid&amp;quot;)&lt;br /&gt;
			-- do something&lt;br /&gt;
		else&lt;br /&gt;
			debugLog(nil, &amp;quot;No&amp;quot;)&lt;br /&gt;
			-- do something&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- get the page title&lt;br /&gt;
	thispage = mw.title.getCurrentTitle()&lt;br /&gt;
	thispagename = thispage.text;&lt;br /&gt;
	&lt;br /&gt;
	debugLog(1, &amp;quot;mw.title.getCurrentTitle()&amp;quot;)&lt;br /&gt;
	debugLog(2, &amp;quot;thispage.text = [&amp;quot; .. thispage.text ..&amp;quot;]&amp;quot;)&lt;br /&gt;
	debugLog(2, &amp;quot;thispage.namespace = [&amp;quot; .. thispage.namespace ..&amp;quot;]&amp;quot;)&lt;br /&gt;
	debugLog(2, &amp;quot;thispage.nsText = [&amp;quot; .. thispage.nsText ..&amp;quot;]&amp;quot;)&lt;br /&gt;
	debugLog(2, &amp;quot;is it a cat? using (thispage:inNamespace(14)): &amp;quot;)&lt;br /&gt;
	if not (thispage:inNamespace(14)) then&lt;br /&gt;
		debugLog(nil, &amp;quot;No, this is not a category&amp;quot;)&lt;br /&gt;
		debugLog(1, &amp;quot;Not a category, so no output&amp;quot;)&lt;br /&gt;
		return publishDebugLog()&lt;br /&gt;
	end&lt;br /&gt;
	debugLog(nil, &amp;quot;Yes, this is a category&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	if not parsePagename(thispagename) then&lt;br /&gt;
		-- some error parsing the title, so don&amp;#039;t proceed to output&lt;br /&gt;
		return publishDebugLog()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	debugLog(1, &amp;quot;all parse done&amp;quot;)&lt;br /&gt;
	debugLog(2, &amp;quot;title_prefix = [&amp;quot; .. title_prefix .. &amp;quot;]&amp;quot;)&lt;br /&gt;
	debugLog(2, &amp;quot;title_suffix = [&amp;quot; .. title_suffix .. &amp;quot;]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	return publishDebugLog() .. makeTable()&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;BrownHairedGirl</name></author>
	</entry>
</feed>