<?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%2FIrelandByCountyCatNav3</id>
	<title>Module:Sandbox/BrownHairedGirl/IrelandByCountyCatNav3 - 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%2FIrelandByCountyCatNav3"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/BrownHairedGirl/IrelandByCountyCatNav3&amp;action=history"/>
	<updated>2026-04-17T18:49:22Z</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/IrelandByCountyCatNav3&amp;diff=145229&amp;oldid=prev</id>
		<title>imported&gt;BrownHairedGirl: v10</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/BrownHairedGirl/IrelandByCountyCatNav3&amp;diff=145229&amp;oldid=prev"/>
		<updated>2018-04-01T02:55:15Z</updated>

		<summary type="html">&lt;p&gt;v10&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&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;
local ROI_counties = {&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 Norniron_counties = {&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 New_counties = {&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&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function nil_or_value(s)&lt;br /&gt;
	if (s == nil) then&lt;br /&gt;
		return &amp;quot;nil&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function makeTable()&lt;br /&gt;
	local i, myCounty&lt;br /&gt;
	local myTable = &amp;#039;&amp;lt;table class=&amp;quot;infobox&amp;quot; style=&amp;quot;margin-left:auto; margin-right:auto; font-size: 90%; clear:left; float:left; width:auto;&amp;quot;&amp;gt;\n&amp;#039;&lt;br /&gt;
	myTable = myTable .. &amp;#039;&amp;lt;tr&amp;gt;\n&amp;#039;&lt;br /&gt;
--	myTable = myTable .. &amp;#039;&amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align:center; background-color:#f3f3f3&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;\n&amp;#039;&lt;br /&gt;
	myTable = myTable .. &amp;#039;&amp;lt;/tr&amp;gt;\n&amp;#039;&lt;br /&gt;
	myTable = myTable .. &amp;#039;&amp;lt;td style=&amp;quot;text-align:right; font-weight: bold;&amp;quot;&amp;gt;&amp;#039; .. &amp;#039;Republic of Ireland&amp;lt;/td&amp;gt;\n&amp;#039;&lt;br /&gt;
	myTable = myTable .. &amp;#039;&amp;lt;td style=&amp;quot;text-align:left;&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;hlist&amp;quot;&amp;gt;\n&amp;#039;&lt;br /&gt;
	for i, myCounty in ipairs(ROI_counties) do&lt;br /&gt;
		myCatName = make_cat_name(myCounty, title_prefix, title_suffix, title_nocountyword)&lt;br /&gt;
		myTable = myTable .. &amp;quot;* &amp;quot; .. make_cat_link(myCatName, myCounty) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
		local j, nuCounty&lt;br /&gt;
		if (myCounty == &amp;quot;Dublin&amp;quot;) then&lt;br /&gt;
			for j, nuCounty in ipairs(New_counties) do&lt;br /&gt;
				myCatName = make_cat_name(nuCounty, title_prefix, title_suffix, true)&lt;br /&gt;
				myTable = myTable .. &amp;quot;** &amp;quot; .. make_cat_link(myCatName, nuCounty) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			myCatName = make_cat_name(&amp;quot;Dublin (city)&amp;quot;, title_prefix, title_suffix, title_nocountyword)&lt;br /&gt;
			myTable = myTable .. &amp;quot;** &amp;quot; .. make_cat_link(myCatName, &amp;quot;city&amp;quot;) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	myTable = myTable .. &amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;&lt;br /&gt;
	myTable = myTable .. &amp;#039;&amp;lt;tr style=&amp;quot;margin:1.5em; background-color:#f3f3f3&amp;quot;&amp;gt;\n&amp;#039;&lt;br /&gt;
	myTable = myTable .. &amp;#039;&amp;lt;td style=&amp;quot;text-align:right;  font-weight: bold;&amp;quot;&amp;gt;&amp;#039; .. &amp;#039;Northern&amp;amp;nbsp;Ireland&amp;lt;/td&amp;gt;\n&amp;#039;&lt;br /&gt;
	myTable = myTable .. &amp;#039;&amp;lt;td style=&amp;quot;text-align:left;&amp;quot;&amp;gt; &amp;lt;div class=&amp;quot;hlist&amp;quot;&amp;gt;\n&amp;#039;&lt;br /&gt;
	for i, myCounty in ipairs(Norniron_counties) do&lt;br /&gt;
		myCatName = make_cat_name(myCounty, title_prefix, title_suffix, title_nocountyword)&lt;br /&gt;
		myTable = myTable .. &amp;quot;* &amp;quot; .. make_cat_link(myCatName, myCounty) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	myTable = myTable .. &amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;\n&amp;quot;&lt;br /&gt;
	return myTable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local debugmsg = nil&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
function make_cat_link(catname, disp)&lt;br /&gt;
	local displaytext&lt;br /&gt;
	if (disp ~= &amp;quot;&amp;quot;) then&lt;br /&gt;
		displaytext = disp&lt;br /&gt;
	else&lt;br /&gt;
		displaytext = catname&lt;br /&gt;
	end&lt;br /&gt;
	local link = &amp;quot;[[:Category:&amp;quot; .. catname .. &amp;quot;|&amp;quot; .. displaytext .. &amp;quot;]]&amp;quot;&lt;br /&gt;
	local fmtlink&lt;br /&gt;
	local linktitle = mw.title.new( catname, &amp;quot;Category&amp;quot; )&lt;br /&gt;
	if (linktitle.exists) then&lt;br /&gt;
		fmtlink = link&lt;br /&gt;
	else&lt;br /&gt;
		fmtlink = &amp;quot;&amp;lt;span style=\&amp;quot;color:#888\&amp;quot;&amp;gt;&amp;quot; .. 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;
function make_cat_name(countyname, prefix, suffix, nocounty)&lt;br /&gt;
	local this_cat_name = &amp;#039;&amp;#039;;&lt;br /&gt;
	this_cat_name = this_cat_name .. prefix&lt;br /&gt;
	if not (nocounty) then&lt;br /&gt;
		this_cat_name = this_cat_name .. &amp;#039;County &amp;#039;;&lt;br /&gt;
	end&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;
function find_new_county_name_in_pagename(pn)&lt;br /&gt;
	local i, testCounty&lt;br /&gt;
	for i, testCounty in ipairs(ROI_counties) do&lt;br /&gt;
		debuglog(4, &amp;quot;testing new_county: [&amp;quot;  .. testCounty .. &amp;quot;]&amp;quot;)&lt;br /&gt;
		if (mw.ustring.match(pn, testCounty)) then&lt;br /&gt;
			if mw.ustring.match(pn, &amp;quot;^&amp;quot; .. testCounty .. &amp;quot;[^%w]&amp;quot;) then&lt;br /&gt;
				return testCounty&lt;br /&gt;
			elseif mw.ustring.match(pn, &amp;quot;[^%w]&amp;quot; .. testCounty .. &amp;quot;$&amp;quot;) then&lt;br /&gt;
				return testCounty&lt;br /&gt;
			elseif mw.ustring.match(pn, &amp;quot;[^%w]&amp;quot; .. testCounty .. &amp;quot;[^%w]&amp;quot;) then&lt;br /&gt;
				return testCounty&lt;br /&gt;
			elseif mw.ustring.match(pn, &amp;quot;[^%w]&amp;quot; .. testCounty .. &amp;quot;[^%w]&amp;quot;) then&lt;br /&gt;
				return testCounty&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function parse_pagename(pn)&lt;br /&gt;
	debuglog(1, &amp;quot;parse_pagename: [&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 = string.match(pn, &amp;quot;^(.*)(County%s+%a+)(.*)$&amp;quot;)&lt;br /&gt;
	if (match_county == nil or match_county == &amp;#039;&amp;#039;) then&lt;br /&gt;
		debuglog(3, &amp;quot;No match_&amp;#039;County Foo&amp;#039;&amp;quot;)&lt;br /&gt;
		debuglog(2, &amp;quot;try new counties&amp;quot;)&lt;br /&gt;
		local new_county = find_new_county_name_in_pagename(pn)&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;
		match_prefix, match_county, match_suffix = string.match(pn, &amp;quot;^(.*)(&amp;quot; .. new_county .. &amp;quot;)(.*)$&amp;quot;)&lt;br /&gt;
&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 debuglog(level, msg)&lt;br /&gt;
&lt;br /&gt;
	if (debugmsg == nil) then -- we are not debugging&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if (string.match(debugmsg, &amp;quot;^%s+$&amp;quot;)) then&lt;br /&gt;
		debugmsg = &amp;quot;==Debugging ==\n\n&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	debugmsg = debugmsg .. &amp;quot;\n&amp;quot;&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;
	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;
-- for the third parameter (&amp;quot;nospace&amp;quot;), trim whitespace and convert to lowercase&lt;br /&gt;
&lt;br /&gt;
local myArgs = {}&lt;br /&gt;
	myArgs[1] = argValueFunc(frame.args[1])&lt;br /&gt;
	myArgs[2] = argValueFunc(frame.args[2])&lt;br /&gt;
	myArgs[3] = argValueFunc(frame.args[3])&lt;br /&gt;
	myArgs[3] = mw.text.trim(myArgs[3]:lower())&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	debuglog(1, &amp;quot;myArgs&amp;quot;)&lt;br /&gt;
	debuglog(2, &amp;quot;myArgs[1] = [&amp;quot; .. myArgs[1] .. &amp;quot;]&amp;quot;)&lt;br /&gt;
	debuglog(2, &amp;quot;myArgs[2] = [&amp;quot; .. myArgs[2] .. &amp;quot;]&amp;quot;)&lt;br /&gt;
	debuglog(2, &amp;quot;myArgs[3] = [&amp;quot; .. myArgs[3] .. &amp;quot;]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	-- now set the key variables&lt;br /&gt;
	title_prefix = myArgs[1]&lt;br /&gt;
	title_suffix = myArgs[2]&lt;br /&gt;
	title_nocountyword = false&lt;br /&gt;
	if (myArgs[3] == &amp;#039;nocountyword&amp;#039;) then&lt;br /&gt;
		title_nocountyword = true&lt;br /&gt;
	end&lt;br /&gt;
	debuglog(1, &amp;quot;set main variables&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;
	-- 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 (thispage:inNamespace(14)) then&lt;br /&gt;
		debuglog(3, &amp;quot;yes, this is a category&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		debuglog(3, &amp;quot;no, this is not a category&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- do we need to parse the page title?&lt;br /&gt;
	-- if neither title_prefix nor title_suffix was supplied as a parameter, then yes&lt;br /&gt;
	-- test by concatenating them, and see if the combination is blank&lt;br /&gt;
	if ((title_prefix .. title_suffix) == &amp;#039;&amp;#039;) then&lt;br /&gt;
		debuglog(1, &amp;quot;Yes, we need to parse the page title&amp;quot;)&lt;br /&gt;
		parse_pagename(thispagename)&lt;br /&gt;
	else&lt;br /&gt;
		debuglog(1, &amp;quot;No, we don&amp;#039;t need to parse the page title&amp;quot;)&lt;br /&gt;
	end&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;
	if (debugmsg == nil) then&lt;br /&gt;
		debugmsg = &amp;quot;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		debugmsg = debugmsg .. &amp;quot;\n== Output ==\n&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return debugmsg .. makeTable()&lt;br /&gt;
&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>