<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FUser%3ARiblet15%2FTrailblazer_Region</id>
	<title>Module:Sandbox/User:Riblet15/Trailblazer Region - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FUser%3ARiblet15%2FTrailblazer_Region"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Sandbox/User:Riblet15/Trailblazer_Region&amp;action=history"/>
	<updated>2026-04-30T15:34:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=Module:Sandbox/User:Riblet15/Trailblazer_Region&amp;diff=35196&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;local p = {} local lang = mw.getContentLanguage()  local regions = { 	misthalin = true, 	karamja = true, 	asgarnia = true, 	desert = true, 	fremennik = true, 	kandarin = true, 	morytania = true, 	tirannwn = true, 	wilderness = true, 	kourend = true, 	varlamore = true, }  function p._main(region, note, link, global_highlight, league) 	if region == nil or string.lower(region) == &quot;no&quot; then 		return &quot;None&quot; 	end 	local ret = {} 	for value in string.gmatch(region, &quot;[^,]+&quot;) do...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Sandbox/User:Riblet15/Trailblazer_Region&amp;diff=35196&amp;oldid=prev"/>
		<updated>2024-10-16T23:13:18Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local p = {} local lang = mw.getContentLanguage()  local regions = { 	misthalin = true, 	karamja = true, 	asgarnia = true, 	desert = true, 	fremennik = true, 	kandarin = true, 	morytania = true, 	tirannwn = true, 	wilderness = true, 	kourend = true, 	varlamore = true, }  function p._main(region, note, link, global_highlight, league) 	if region == nil or string.lower(region) == &amp;quot;no&amp;quot; then 		return &amp;quot;None&amp;quot; 	end 	local ret = {} 	for value in string.gmatch(region, &amp;quot;[^,]+&amp;quot;) do...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local lang = mw.getContentLanguage()&lt;br /&gt;
&lt;br /&gt;
local regions = {&lt;br /&gt;
	misthalin = true,&lt;br /&gt;
	karamja = true,&lt;br /&gt;
	asgarnia = true,&lt;br /&gt;
	desert = true,&lt;br /&gt;
	fremennik = true,&lt;br /&gt;
	kandarin = true,&lt;br /&gt;
	morytania = true,&lt;br /&gt;
	tirannwn = true,&lt;br /&gt;
	wilderness = true,&lt;br /&gt;
	kourend = true,&lt;br /&gt;
	varlamore = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function p._main(region, note, link, global_highlight, league)&lt;br /&gt;
	if region == nil or string.lower(region) == &amp;quot;no&amp;quot; then&lt;br /&gt;
		return &amp;quot;None&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for value in string.gmatch(region, &amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
		-- Ampersand regions will always just show badges without text&lt;br /&gt;
		if string.find(value, &amp;quot;&amp;amp;&amp;quot;) then&lt;br /&gt;
			local badge_result = p._badge(value, note, link, global_highlight, league)&lt;br /&gt;
			table.insert(ret, badge_result)&lt;br /&gt;
		else&lt;br /&gt;
			local lower = string.lower(value)&lt;br /&gt;
			local trimmed = lower:gsub(&amp;quot;^%s*(.-)%s*$&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
			if regions[trimmed] then&lt;br /&gt;
				local uc_region = lang:ucfirst(trimmed)&lt;br /&gt;
				local icon = p._icon(trimmed, note, link, league)&lt;br /&gt;
				local text&lt;br /&gt;
				if link == nil or link ~= &amp;#039;false&amp;#039; then&lt;br /&gt;
					text = string.format(&amp;#039;&amp;lt;span class=&amp;quot;tbz-name&amp;quot;&amp;gt;[[%s/Areas/%s|%s]]&amp;lt;/span&amp;gt;&amp;#039;, league, uc_region, uc_region)&lt;br /&gt;
				else&lt;br /&gt;
					text = uc_region&lt;br /&gt;
				end&lt;br /&gt;
				local cur_ret = highlight(string.format(&amp;#039;%s %s&amp;#039;, icon, text), uc_region, global_highlight)&lt;br /&gt;
				table.insert(ret, cur_ret)&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(ret, value)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(ret, &amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function highlight(s, r, global_highlight)&lt;br /&gt;
	r = string.lower(r)&lt;br /&gt;
	local highlight_class = &amp;quot;&amp;quot;&lt;br /&gt;
	if global_highlight ~= nil and global_highlight == &amp;#039;false&amp;#039; then&lt;br /&gt;
		highlight_class = &amp;quot;tbz-no-global&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return string.format(&amp;#039;&amp;lt;span class=&amp;quot;tbz-region %s&amp;quot; data-tbz-area=&amp;quot;%s&amp;quot;&amp;gt;%s&amp;lt;span class=&amp;quot;tbz-check&amp;quot;&amp;gt;✓&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;#039;, highlight_class, r, s)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._icon(region, note, link, league)&lt;br /&gt;
	if string.lower(region or &amp;#039;&amp;#039;) == &amp;quot;no&amp;quot; then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		region = lang:ucfirst(region)&lt;br /&gt;
	end&lt;br /&gt;
	if note == nil then&lt;br /&gt;
		note = region&lt;br /&gt;
	end&lt;br /&gt;
	local label&lt;br /&gt;
	if link == nil or link ~= &amp;#039;false&amp;#039; then&lt;br /&gt;
		label = string.format(&amp;#039;%s/Areas/%s&amp;#039;, league, region)&lt;br /&gt;
	else&lt;br /&gt;
		label = &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return string.format(&amp;#039;[[File:%s Area Badge.png|%s|link=%s]]&amp;#039;, region, note, label)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._badge(region, note, link, global_highlight, league)&lt;br /&gt;
	if region == nil or string.lower(region) == &amp;quot;no&amp;quot; then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local highlight_class = &amp;quot;&amp;quot;&lt;br /&gt;
	if global_highlight ~= nil and global_highlight == &amp;#039;false&amp;#039; then&lt;br /&gt;
		highlight_class = &amp;quot;tbz-no-global&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for value in string.gmatch(region, &amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
		local lower = string.lower(value)&lt;br /&gt;
		-- Ampersand regions wrapped in additional badge span&lt;br /&gt;
		if string.find(lower, &amp;#039;&amp;amp;&amp;#039;) then&lt;br /&gt;
			local ampersandRegions = {}&lt;br /&gt;
			local ampersandBadges = {}&lt;br /&gt;
			for curRegion in string.gmatch(lower, &amp;quot;[^&amp;amp;]+&amp;quot;) do&lt;br /&gt;
				curRegion = curRegion:gsub(&amp;quot;^%s*(.-)%s*$&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
				if regions[curRegion] then&lt;br /&gt;
					table.insert(ampersandRegions, curRegion)&lt;br /&gt;
					local icon = p._icon(curRegion, note, link, league)&lt;br /&gt;
					local cur_badge = string.format(&amp;#039;&amp;lt;span class=&amp;quot;tbz-badge %s&amp;quot; data-tbz-area=&amp;quot;%s&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&amp;#039;, highlight_class, curRegion, icon)&lt;br /&gt;
					table.insert(ampersandBadges, cur_badge)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			local ampersandString = table.concat(ampersandRegions, &amp;#039;&amp;amp;&amp;#039;)&lt;br /&gt;
			local innerBadgesString = table.concat(ampersandBadges, &amp;#039;&amp;amp;&amp;#039;) &lt;br /&gt;
			local cur_ret = string.format(&amp;#039;&amp;lt;span class=&amp;quot;tbz-badge tbz-badge-wrapper %s&amp;quot; data-tbz-area=&amp;quot;%s&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&amp;#039;, highlight_class, ampersandString, innerBadgesString)&lt;br /&gt;
			table.insert(ret, cur_ret)&lt;br /&gt;
		else&lt;br /&gt;
			local trimmed = lower:gsub(&amp;quot;^%s*(.-)%s*$&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
			if regions[trimmed] then&lt;br /&gt;
				local icon = p._icon(trimmed, note, link, league)&lt;br /&gt;
				local cur_ret = string.format(&amp;#039;&amp;lt;span class=&amp;quot;tbz-badge %s&amp;quot; data-tbz-area=&amp;quot;%s&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&amp;#039;, highlight_class, trimmed, icon)&lt;br /&gt;
				table.insert(ret, cur_ret)&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(ret, value)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(ret, &amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._highlightedIcon(region, note, link, global_highlight, league)&lt;br /&gt;
	return highlight(p._icon(region, note, link, league), region, global_highlight)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local region = args[1]&lt;br /&gt;
	local note = args.note&lt;br /&gt;
	local link = args.link&lt;br /&gt;
	local global_highlight = args.global_highlight&lt;br /&gt;
	local frameargs = frame.args&lt;br /&gt;
	local league = frameargs.league&lt;br /&gt;
	return p._main(region, note, link, global_highlight, league)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.highlightedIcon(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local region = args[1]&lt;br /&gt;
	local note = args.note&lt;br /&gt;
	local link = args.link&lt;br /&gt;
	local global_highlight = args.global_highlight&lt;br /&gt;
	local frameargs = frame.args&lt;br /&gt;
	local league = frameargs.league&lt;br /&gt;
	return p._highlightedIcon(region, note, link, global_highlight, league)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.icon(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local region = args[1]&lt;br /&gt;
	local note = args.note&lt;br /&gt;
	local link = args.link&lt;br /&gt;
	local frameargs = frame.args&lt;br /&gt;
	local league = frameargs.league&lt;br /&gt;
	return p._icon(region, note, link, league)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.badge(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	local region = args[1]&lt;br /&gt;
	local note = args.note&lt;br /&gt;
	local link = args.link&lt;br /&gt;
	local global_highlight = args.global_highlight&lt;br /&gt;
	local frameargs = frame.args&lt;br /&gt;
	local league = frameargs.league&lt;br /&gt;
	return p._badge(region, note, link, global_highlight, league)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Parsing function for use in infoboxes. Shows at most 2 full chips; more&lt;br /&gt;
-- regions will render as badge icons without text.&lt;br /&gt;
function p.regionsForInfobox(arg)&lt;br /&gt;
	if arg == nil or arg == &amp;#039;&amp;#039; or arg == &amp;#039;UH OH YOU SHOULDN\&amp;#039;T SEE THIS!&amp;#039; or string.find(arg, &amp;quot;action=edit&amp;quot;) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if string.lower(arg) == &amp;#039;no&amp;#039; then&lt;br /&gt;
		return &amp;#039;N/A&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	local comma_count = select(2, string.gsub(arg, &amp;quot;,&amp;quot;, &amp;quot;&amp;quot;))&lt;br /&gt;
	for region in string.gmatch(arg, &amp;quot;[^,]+&amp;quot;) do&lt;br /&gt;
		local trimmed = region:gsub(&amp;quot;^%s*(.-)%s*$&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
		if comma_count &amp;lt; 2 then&lt;br /&gt;
			table.insert(ret, p._main(trimmed, nil, nil, nil, &amp;#039;Raging Echoes League&amp;#039;))&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(ret, p._badge(trimmed, nil, nil, nil, &amp;#039;Raging Echoes League&amp;#039;))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(ret, &amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>