<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://salisford.net/index.php?action=history&amp;feed=atom&amp;title=Module%3AStorm_categories</id>
	<title>Module:Storm categories - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://salisford.net/index.php?action=history&amp;feed=atom&amp;title=Module%3AStorm_categories"/>
	<link rel="alternate" type="text/html" href="https://salisford.net/index.php?title=Module:Storm_categories&amp;action=history"/>
	<updated>2026-05-04T13:25:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://salisford.net/index.php?title=Module:Storm_categories&amp;diff=804&amp;oldid=prev</id>
		<title>Cascadia: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://salisford.net/index.php?title=Module:Storm_categories&amp;diff=804&amp;oldid=prev"/>
		<updated>2023-04-05T14:39:51Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:39, 5 April 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Cascadia</name></author>
	</entry>
	<entry>
		<id>https://salisford.net/index.php?title=Module:Storm_categories&amp;diff=803&amp;oldid=prev</id>
		<title>wp&gt;BusterD: Changed protection settings for &quot;Module:Storm categories&quot;: Highly visible template; requested at WP:RfPP ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</title>
		<link rel="alternate" type="text/html" href="https://salisford.net/index.php?title=Module:Storm_categories&amp;diff=803&amp;oldid=prev"/>
		<updated>2022-04-12T17:39:24Z</updated>

		<summary type="html">&lt;p&gt;Changed protection settings for &amp;quot;&lt;a href=&quot;/index.php?title=Module:Storm_categories&quot; title=&quot;Module:Storm categories&quot;&gt;Module:Storm categories&lt;/a&gt;&amp;quot;: &lt;a href=&quot;/index.php?title=WP:High-risk_templates&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:High-risk templates (page does not exist)&quot;&gt;Highly visible template&lt;/a&gt;; requested at &lt;a href=&quot;/index.php?title=WP:RfPP&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:RfPP (page does not exist)&quot;&gt;WP:RfPP&lt;/a&gt; ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local categoryData = require(&amp;quot;Module:Storm categories/categories&amp;quot;)&lt;br /&gt;
local colors = require(&amp;quot;Module:Storm categories/colors&amp;quot;).colors&lt;br /&gt;
local icons = require(&amp;quot;Module:Storm categories/icons&amp;quot;).icons&lt;br /&gt;
local cats = categoryData.cats&lt;br /&gt;
local defaultCategory = categoryData.defaultCategory&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.color(frame)&lt;br /&gt;
	return p._color(frame.args[1] or frame:getParent().args[1], false)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.name(frame)&lt;br /&gt;
	return p._name(&lt;br /&gt;
		frame.args[1] or frame:getParent().args[1],&lt;br /&gt;
		frame.args[2] or frame:getParent().args[2],&lt;br /&gt;
		false&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.sortkey(frame)&lt;br /&gt;
	return p._sortkey(frame.args[1] or frame:getParent().args[1], false)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.icon(frame)&lt;br /&gt;
	return p._icon(frame.args[1] or frame:getParent().args[1], false)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._color(colorCode, nullIfMissing)&lt;br /&gt;
	-- This looks confusing, but it's actually nested ternaries (for nil checks)&lt;br /&gt;
	local color = (colorCode ~= nil and string.len(colorCode) ~= 0) and &lt;br /&gt;
		string.gsub(string.lower(colorCode), &amp;quot;[^%w]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		or defaultCategory&lt;br /&gt;
		&lt;br /&gt;
	return colors[color] or ((cats[color] or (&lt;br /&gt;
		nullIfMissing&lt;br /&gt;
		and { color = nil }&lt;br /&gt;
		or cats[defaultCategory]&lt;br /&gt;
	)).color)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._name(category, basin, nullIfMissing)&lt;br /&gt;
	local name_def = (cats[&lt;br /&gt;
		(category ~= nil and string.len(category) ~= 0) and &lt;br /&gt;
			string.gsub(string.lower(category), &amp;quot;[^%w]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
			or defaultCategory&lt;br /&gt;
	] or cats[defaultCategory]).name&lt;br /&gt;
	return type(name_def) == &amp;quot;table&amp;quot; and &lt;br /&gt;
		(&lt;br /&gt;
			name_def[string.lower(basin or &amp;quot;default&amp;quot;)]&lt;br /&gt;
			or name_def[&amp;quot;default&amp;quot;]&lt;br /&gt;
			or (nullIfMissing and nil or error(&amp;quot;No default name for basin-based category name.&amp;quot;))&lt;br /&gt;
		) &lt;br /&gt;
		or name_def&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._sortkey(category, nullIfMissing)&lt;br /&gt;
	-- This looks confusing, but it's actually nested ternaries (for nil checks)&lt;br /&gt;
	return (cats[&lt;br /&gt;
		(category ~= nil and string.len(category) ~= 0) and &lt;br /&gt;
			string.gsub(string.lower(category), &amp;quot;[^%w]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
			or defaultCategory&lt;br /&gt;
	] or (nullIfMissing and { sortkey = nil } or cats[defaultCategory])).sortkey&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._icon(iconCode, nullIfMissing)&lt;br /&gt;
	-- This looks confusing, but it's actually nested ternaries (for nil checks)&lt;br /&gt;
	local icon = (iconCode ~= nil and string.len(iconCode) ~= 0) and &lt;br /&gt;
		string.gsub(string.lower(iconCode), &amp;quot;[^%w]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		or defaultCategory&lt;br /&gt;
		&lt;br /&gt;
	return icons[icon] or (cats[icon] ~= nil and (&lt;br /&gt;
		cats[icon].icon or cats[&amp;quot;tropicalcyclone&amp;quot;].icon&lt;br /&gt;
	) or (nullIfMissing and nil or cats[defaultCategory].icon))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.demo(frame)&lt;br /&gt;
	return require(&amp;quot;Module:Storm categories/demo&amp;quot;).demo(frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wp&gt;BusterD</name></author>
	</entry>
</feed>