Content deleted Content added
m Anthony Appleyard moved page Module:Tropical cyclone categories to Module:Storm categories without leaving a redirect: Requested by Chlod at WP:RM/TR: Module's scope has now expanded to include other non-tropical storms (such as tornadoes). As such, the name "Tropical cyclone categories" is unfitting. This module includes many subpages (some are submodules, others are documentation pages) which require the page mover right to move (or at least, it'... |
per edit request on talk page - implement three significant changes per Module talk:Storm categories#Template-protected edit request on 23 April 2022 |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 1:
local categoryData = require("Module:
local colors = require("Module:
local icons = require("Module:
local cats = categoryData.cats
local defaultCategory = categoryData.defaultCategory
Line 26:
end
function p.
return p._isEqual(
frame.args[1] or frame:getParent().args[1],
frame.args[2] or frame:getParent().args[2]
) and "yes" or ""
end
function p._normalizeId(category, fallback)
-- Normalize if normalizable, fall back to default if not.
end
function p._color(category, nilIfMissing)
-- This looks confusing, but it's actually nested ternaries (for nil checks)
local color =
or defaultCategory▼
return colors[color] or ((cats[color] or (
nilIfMissing
and { color = nil }
or cats[defaultCategory]
Line 39 ⟶ 50:
end
function p._name(category, basin,
local name_def = (cats[
▲ (category ~= nil and string.len(category) ~= 0) and
▲ string.gsub(string.lower(category), "[^%w]", "")
or defaultCategory▼
return type(name_def) == "table" and
(
name_def[string.lower(basin or "default")]
or name_def["default"]
or (
)
or name_def
end
function p._sortkey(category,
-- This looks confusing, but it's actually nested ternaries (for nil checks)
return (cats[
] or (nilIfMissing and { sortkey = nil } or cats[defaultCategory])).sortkey
▲ ] or (nullIfMissing and { sortkey = nil } or cats[defaultCategory])).sortkey
end
function p._icon(
-- This looks confusing, but it's actually nested ternaries (for nil checks)
local icon =
return icons[icon] or (cats[icon] ~= nil and (
cats[icon].icon or cats["tropicalcyclone"].icon
) or (
end
function p._isEqual(category1, category2)
-- Checks if two IDs are equal.
-- An {{#ifeq}} check does not consider aliases. This function compares two
-- IDs in a way that considers category aliases. This works because alias
-- assignments are references to the actual table containing the category
-- info found in the main category table.
--
-- `false` will be returned if at least one of the categories are nil or
-- if the category is not defined.
local _category1 = p._normalizeId(category1)
local _category2 = p._normalizeId(category2)
return (_category1 == _category2 and _category1 ~= nil) or
cats[ _category1 ] == cats[ _category2 ] and
-- `false` if categories are undefined and not equal.
cats[ _category1 ] ~= nil
end
function p.demo(frame)
return require("Module:
end
|