<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>FeministWiki  - Recent changes [en]</title>
		<link>https://feministwiki.org/wiki/Special:RecentChanges</link>
		<description>Track the most recent changes to the wiki in this feed.</description>
		<language>en</language>
		<generator>MediaWiki 1.43.9</generator>
		<lastBuildDate>Sun, 27 Sep 2026 14:26:13 GMT</lastBuildDate>
		<item>
			<title>Module:ScribuntoTest</title>
			<link>https://feministwiki.org/w/index.php?title=Module:ScribuntoTest&amp;diff=1964&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:ScribuntoTest&amp;diff=1964&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;-- Testing Scribunto&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Testing Scribunto&lt;/div&gt;</description>
			<pubDate>Sat, 26 Sep 2026 09:10:04 GMT</pubDate>
			<dc:creator>Technician</dc:creator>
			<comments>https://feministwiki.org/wiki/Module_talk:ScribuntoTest</comments>
		</item>
		<item>
			<title>MediaWiki:Sidebar</title>
			<link>https://feministwiki.org/w/index.php?title=MediaWiki:Sidebar&amp;diff=1963&amp;oldid=832</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=MediaWiki:Sidebar&amp;diff=1963&amp;oldid=832</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:00, 26 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Special&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Special&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** recentchanges-url | recentchanges&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** recentchanges-url | recentchanges&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** Special:NewFiles | Newly added files&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;** Special:SpecialPages | specialpages&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** randompage-url | randompage&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** randompage-url | randompage&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Special:Version | version&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Special:Version | version&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SEARCH&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* SEARCH&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* TOOLBOX&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* TOOLBOX&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key feministwiki:diff:1.41:old-832:rev-1963:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sat, 26 Sep 2026 09:00:55 GMT</pubDate>
			<dc:creator>Technician</dc:creator>
			<comments>https://feministwiki.org/wiki/MediaWiki_talk:Sidebar</comments>
		</item>
		<item>
			<title>Template:SHORTDESC:</title>
			<link>https://feministwiki.org/w/index.php?title=Template:SHORTDESC:&amp;diff=1962&amp;oldid=1961</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:SHORTDESC:&amp;diff=1962&amp;oldid=1961</guid>
			<description>&lt;p&gt;Blanked the page&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:39, 25 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#REDIRECT [[Help talk:SHORTDESC]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key feministwiki:diff:1.41:old-1961:rev-1962:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:39:14 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:SHORTDESC:</comments>
		</item>
		<item>
			<title>Template:SHORTDESC:</title>
			<link>https://feministwiki.org/w/index.php?title=Template:SHORTDESC:&amp;diff=1960&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:SHORTDESC:&amp;diff=1960&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/w/index.php?title=User:Minervaproject&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;User:Minervaproject (page does not exist)&quot; rel=&quot;nofollow&quot;&gt;&lt;bdi&gt;Minervaproject&lt;/bdi&gt;&lt;/a&gt; moved page &lt;a href=&quot;/w/index.php?title=Template:SHORTDESC:&amp;amp;redirect=no&quot; title=&quot;Template:SHORTDESC:&quot;&gt;Template:SHORTDESC:&lt;/a&gt; to &lt;a href=&quot;/wiki/Help_talk:SHORTDESC&quot; class=&quot;mw-redirect&quot; title=&quot;Help talk:SHORTDESC&quot;&gt;Help talk:SHORTDESC&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#REDIRECT [[Template:Short description]]&lt;br /&gt;
{{Rcatsh|&lt;br /&gt;
{{R from incorrect name}}&lt;br /&gt;
}}&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:38:59 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:SHORTDESC:</comments>
		</item>
		<item>
			<title>Module:Lua call</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Lua_call&amp;diff=1959&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Lua_call&amp;diff=1959&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;require&lt;a href=&quot;/w/index.php?title=Strict&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Strict (page does not exist)&quot; rel=&quot;nofollow&quot;&gt;strict&lt;/a&gt; local p={}  function p.main(frame)     local parent = frame.getParent(frame) or {}     local explist = {}     local fnname, varlist     local vars = {}     for k, v in pairs(_G) do         vars[k] = v -- transfer every global directly to our variable table     end     for k, v in pairs(parent.args or {}) do         vars[k] = tonumber(v) or v -- transfer every parameter directly to our variable table     end     for k, v in pairs(frame.args or {}) do...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require[[strict]]&lt;br /&gt;
local p={}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
    local parent = frame.getParent(frame) or {}&lt;br /&gt;
    local explist = {}&lt;br /&gt;
    local fnname, varlist&lt;br /&gt;
    local vars = {}&lt;br /&gt;
    for k, v in pairs(_G) do&lt;br /&gt;
        vars[k] = v -- transfer every global directly to our variable table&lt;br /&gt;
    end&lt;br /&gt;
    for k, v in pairs(parent.args or {}) do&lt;br /&gt;
        vars[k] = tonumber(v) or v -- transfer every parameter directly to our variable table&lt;br /&gt;
    end&lt;br /&gt;
    for k, v in pairs(frame.args or {}) do&lt;br /&gt;
        vars[k] = tonumber(v) or v -- transfer every parameter directly to our variable table&lt;br /&gt;
    end&lt;br /&gt;
     --- Alas Scribunto does NOT implement coroutines, according to&lt;br /&gt;
     --- https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#string.format&lt;br /&gt;
     --- this will not stop us from trying to implement one single lousy function call&lt;br /&gt;
    if vars[1] then&lt;br /&gt;
        fnname, varlist = mw.ustring.match(vars[1], &amp;quot;^%s*(%a[^%s%(]*)%(([^%)]*)%)%s*$&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
    if varlist then&lt;br /&gt;
        local expn = 0&lt;br /&gt;
        repeat&lt;br /&gt;
            expn = expn + 1&lt;br /&gt;
            explist[expn] = vars[mw.ustring.match(varlist, &amp;quot;([^%,]+)&amp;quot;)]&lt;br /&gt;
            varlist = mw.ustring.match(varlist, &amp;quot;[^%,]+,(.*)$&amp;quot;)&lt;br /&gt;
        until not varlist&lt;br /&gt;
    end&lt;br /&gt;
    local scopetab = vars&lt;br /&gt;
    while mw.ustring.match(fnname, &amp;quot;%.&amp;quot;) do&lt;br /&gt;
        local scopekey&lt;br /&gt;
        scopekey, fnname = mw.ustring.match(fnname, &amp;quot;^(%a[^%.]*)%.(.*)$&amp;quot;)&lt;br /&gt;
        scopetab = scopetab[scopekey]&lt;br /&gt;
    end&lt;br /&gt;
    local fn = scopetab[fnname]&lt;br /&gt;
    if type(fn) ~= &amp;quot;function&amp;quot; then --XXX: What about callable tables?&lt;br /&gt;
        return tostring(fn)&lt;br /&gt;
    else &lt;br /&gt;
    	local output = {fn(unpack(explist))}&lt;br /&gt;
        return output[vars.reserved_return or 1]&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tonumberOrString(v)&lt;br /&gt;
	return tonumber(v) or v:gsub(&amp;quot;^\\&amp;quot;, &amp;quot;&amp;quot;, 1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function callWithTonumberOrStringOnPairs(f, ...)&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for _, v in ... do&lt;br /&gt;
		table.insert(args, tonumberOrString(v))&lt;br /&gt;
	end&lt;br /&gt;
	return (f(unpack(args)))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- ipairsAtOffset&lt;br /&gt;
&lt;br /&gt;
-- This is an iterator for arrays. It can be used like ipairs, but with&lt;br /&gt;
-- specified i as first index to iterate. i is an offset from 1&lt;br /&gt;
--&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
local function ipairsAtOffset(t, i)&lt;br /&gt;
	local f, s, i0 = ipairs(t)&lt;br /&gt;
	return f, s, i0+i&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get(s)&lt;br /&gt;
	local G = _G; for _ in mw.text.gsplit(&lt;br /&gt;
		mw.text.trim(s, &amp;#039;%s&amp;#039;), &amp;#039;%s*%.%s*&amp;#039;&lt;br /&gt;
	) do&lt;br /&gt;
		G = G[_]&lt;br /&gt;
	end&lt;br /&gt;
	return G&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- call&lt;br /&gt;
--&lt;br /&gt;
-- This function is usually useful for debugging template parameters.&lt;br /&gt;
-- Prefix parameter with backslash (\) to force interpreting parameter as string.&lt;br /&gt;
-- The leading backslash will be removed before passed to Lua function.&lt;br /&gt;
--&lt;br /&gt;
-- Example:&lt;br /&gt;
--    {{#invoke:Lua call|call|mw.log|a|1|2|3}} will return results of mw.log(&amp;#039;a&amp;#039;, 1, 2, 3)&lt;br /&gt;
--    {{#invoke:Lua call|call|mw.logObject|\a|321|\321| \321 }} will return results of mw.logObject(&amp;#039;a&amp;#039;, 321, &amp;#039;321&amp;#039;, &amp;#039; \\321 &amp;#039;)&lt;br /&gt;
--&lt;br /&gt;
-- This example show the debugging to see which Unicode characters are allowed in template parameters,&lt;br /&gt;
--    {{#invoke:Lua call|call|mw.ustring.codepoint|{{#invoke:Lua call|call|mw.ustring.char|0x0061}}}} return 97&lt;br /&gt;
--    {{#invoke:Lua call|call|mw.ustring.codepoint|{{#invoke:Lua call|call|mw.ustring.char|0x0000}}}} return 65533&lt;br /&gt;
--    {{#invoke:Lua call|call|mw.ustring.codepoint|{{#invoke:Lua call|call|mw.ustring.char|0x0001}}}} return 65533&lt;br /&gt;
--    {{#invoke:Lua call|call|string.format|0x%04x|{{#invoke:Lua call|call|mw.ustring.codepoint|{{#invoke:Lua call|call|mw.ustring.char|0x0002}}}}}} return 0xfffd&lt;br /&gt;
--    {{#invoke:Lua call|call|string.format|0x%04x|{{#invoke:Lua call|call|mw.ustring.codepoint|{{#invoke:Lua call|call|mw.ustring.char|0x007e}}}}}} return 0x007e&lt;br /&gt;
--    {{#invoke:Lua call|call|string.format|0x%04x|{{#invoke:Lua call|call|mw.ustring.codepoint|{{#invoke:Lua call|call|mw.ustring.char|0x007f}}}}}} return 0x007f&lt;br /&gt;
--    {{#invoke:Lua call|call|string.format|0x%04x|{{#invoke:Lua call|call|mw.ustring.codepoint|{{#invoke:Lua call|call|mw.ustring.char|0x0080}}}}}} return 0x0080&lt;br /&gt;
--    {{#invoke:Lua call|call|string.format|0x%04x|{{#invoke:Lua call|call|mw.ustring.codepoint|{{#invoke:Lua call|call|mw.ustring.char|0x00a0}}}}}} return 0x00a0&lt;br /&gt;
--&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.call(frame)&lt;br /&gt;
	return callWithTonumberOrStringOnPairs(get(frame.args[1]),&lt;br /&gt;
		ipairsAtOffset(frame.args, 1)&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--local TableTools = require(&amp;#039;Module:TableTools&amp;#039;)&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- get&lt;br /&gt;
--&lt;br /&gt;
-- Example:&lt;br /&gt;
--    {{#invoke:Lua call|get| math.pi }} will return value of math.pi&lt;br /&gt;
--    {{#invoke:Lua call|get|math|pi}} will return value of math.pi&lt;br /&gt;
--    {{#invoke:Lua call|get| math |pi}} will return value of _G[&amp;#039; math &amp;#039;].pi&lt;br /&gt;
--    {{#invoke:Lua call|get|_G| math.pi }} will return value of _G[&amp;#039; math.pi &amp;#039;]&lt;br /&gt;
--    {{#invoke:Lua call|get|obj.a.5.c}} will return value of obj.a[&amp;#039;5&amp;#039;].c&lt;br /&gt;
--    {{#invoke:Lua call|get|obj|a|5|c}} will return value of obj.a[5].c&lt;br /&gt;
--&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.get(frame)&lt;br /&gt;
	-- #frame.args always return 0, regardless of number of unnamed&lt;br /&gt;
	-- template parameters, so check manually instead&lt;br /&gt;
	if frame.args[2] == nil then&lt;br /&gt;
		-- not do tonumber() for this args style,&lt;br /&gt;
		-- always treat it as string,&lt;br /&gt;
		-- so &amp;#039;obj.1&amp;#039; will mean obj[&amp;#039;1&amp;#039;] rather obj[1]&lt;br /&gt;
		return get(frame.args[1])&lt;br /&gt;
	else&lt;br /&gt;
		local G = _G&lt;br /&gt;
		for _, v in ipairs(frame.args) do&lt;br /&gt;
			G = G[tonumberOrString(v)]&lt;br /&gt;
		end&lt;br /&gt;
		return G&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- invoke&lt;br /&gt;
--&lt;br /&gt;
-- This function is used by Template:Invoke&lt;br /&gt;
--&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.invoke(frame)&lt;br /&gt;
	local pframe, usedpargs = frame:getParent(), {}&lt;br /&gt;
	-- get module and function names from parent args if not provided&lt;br /&gt;
	local pfargs = setmetatable({frame.args[1], frame.args[2]}, {__index = table})&lt;br /&gt;
	if not pfargs[1] then&lt;br /&gt;
		pfargs[1], usedpargs[1] = pframe.args[1], true&lt;br /&gt;
		if not pfargs[2] then&lt;br /&gt;
			pfargs[2], usedpargs[2] = pframe.args[2], true&lt;br /&gt;
		end&lt;br /&gt;
	elseif not pfargs[2] then&lt;br /&gt;
		pfargs[2], usedpargs[1] = pframe.args[1], true&lt;br /&gt;
	end&lt;br /&gt;
	-- repack sequential args&lt;br /&gt;
	for i, v in ipairs(pframe.args) do&lt;br /&gt;
		if not usedpargs[i] then&lt;br /&gt;
			pfargs:insert(v)&lt;br /&gt;
			usedpargs[i] = true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- copy other args&lt;br /&gt;
	for k, v in pairs(pframe.args) do&lt;br /&gt;
		if not pfargs[k] and not usedpargs[k] then&lt;br /&gt;
			pfargs[k], usedpargs[k] = v, true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- #invoke off parent frame so the new frame has the same parent&lt;br /&gt;
	return pframe:callParserFunction{name = &amp;#039;#invoke&amp;#039;, args = pfargs}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:36:56 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Template:SHORTDESC</title>
			<link>https://feministwiki.org/w/index.php?title=Template:SHORTDESC&amp;diff=1958&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:SHORTDESC&amp;diff=1958&amp;oldid=0</guid>
			<description>&lt;p&gt;Redirected page to &lt;a href=&quot;/wiki/Template:Short_description&quot; title=&quot;Template:Short description&quot;&gt;Template:Short description&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#REDIRECT [[Template:Short description]]&lt;br /&gt;
{{Rcatsh|&lt;br /&gt;
{{R from incorrect name}}&lt;br /&gt;
}}&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:33:37 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:SHORTDESC</comments>
		</item>
		<item>
			<title>Template:SHORTDESC:</title>
			<link>https://feministwiki.org/w/index.php?title=Template:SHORTDESC:&amp;diff=1957&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:SHORTDESC:&amp;diff=1957&amp;oldid=0</guid>
			<description>&lt;p&gt;Redirected page to &lt;a href=&quot;/wiki/Template:Short_description&quot; title=&quot;Template:Short description&quot;&gt;Template:Short description&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#REDIRECT [[Template:Short description]]&lt;br /&gt;
{{Rcatsh|&lt;br /&gt;
{{R from incorrect name}}&lt;br /&gt;
}}&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:32:39 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:SHORTDESC:</comments>
		</item>
		<item>
			<title>Template:Rcatsh</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Rcatsh&amp;diff=1956&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Rcatsh&amp;diff=1956&amp;oldid=0</guid>
			<description>&lt;p&gt;Redirected page to &lt;a href=&quot;/wiki/Template:Redirect_category_shell&quot; title=&quot;Template:Redirect category shell&quot;&gt;Template:Redirect category shell&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#REDIRECT [[Template:Redirect category shell]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R to redirect template}}&lt;br /&gt;
{{R from template shortcut}}&lt;br /&gt;
}}&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:30:48 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Rcatsh</comments>
		</item>
		<item>
			<title>Template:Shortdesc</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Shortdesc&amp;diff=1955&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Shortdesc&amp;diff=1955&amp;oldid=0</guid>
			<description>&lt;p&gt;Redirected page to &lt;a href=&quot;/wiki/Template:Short_description&quot; title=&quot;Template:Short description&quot;&gt;Template:Short description&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#REDIRECT [[Template:Short description]]&lt;br /&gt;
{{Rcatsh|&lt;br /&gt;
{{R from incorrect name}}&lt;br /&gt;
}}&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:30:29 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Shortdesc</comments>
		</item>
		<item>
			<title>Module:Userbox</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Userbox&amp;diff=1954&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Userbox&amp;diff=1954&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;-- This module implements {{userbox}}.  local categoryHandler = require(&amp;#039;Module:Category handler&amp;#039;).main  local p = {}  -------------------------------------------------------------------------------- -- Helper functions --------------------------------------------------------------------------------  local function checkNum(val, default) 	-- Checks whether a value is a number greater than or equal to zero. If so, 	-- returns it as a number. If not, returns a default valu...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements {{userbox}}.&lt;br /&gt;
&lt;br /&gt;
local categoryHandler = require(&amp;#039;Module:Category handler&amp;#039;).main&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function checkNum(val, default)&lt;br /&gt;
	-- Checks whether a value is a number greater than or equal to zero. If so,&lt;br /&gt;
	-- returns it as a number. If not, returns a default value.&lt;br /&gt;
	val = tonumber(val)&lt;br /&gt;
	if val and val &amp;gt;= 0 then&lt;br /&gt;
		return val&lt;br /&gt;
	else&lt;br /&gt;
		return default&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addSuffix(num, suffix)&lt;br /&gt;
	-- Turns a number into a string and adds a suffix.&lt;br /&gt;
	if num then&lt;br /&gt;
		return tostring(num) .. suffix&lt;br /&gt;
	else&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function checkNumAndAddSuffix(num, default, suffix)&lt;br /&gt;
	-- Checks a value with checkNum and adds a suffix.&lt;br /&gt;
	num = checkNum(num, default)&lt;br /&gt;
	return addSuffix(num, suffix)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeCat(cat, sort)&lt;br /&gt;
	-- Makes a category link.&lt;br /&gt;
	if sort then&lt;br /&gt;
		return mw.ustring.format(&amp;#039;[[Category:%s|%s]]&amp;#039;, cat, sort)&lt;br /&gt;
	else&lt;br /&gt;
		return mw.ustring.format(&amp;#039;[[Category:%s]]&amp;#039;, cat)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Argument processing&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunc(funcName)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local origArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame)&lt;br /&gt;
		local args = {}&lt;br /&gt;
		for k, v in pairs(origArgs) do&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
		return p.main(funcName, args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.userbox = makeInvokeFunc(&amp;#039;_userbox&amp;#039;)&lt;br /&gt;
p[&amp;#039;userbox-2&amp;#039;] = makeInvokeFunc(&amp;#039;_userbox-2&amp;#039;)&lt;br /&gt;
p[&amp;#039;userbox-r&amp;#039;] = makeInvokeFunc(&amp;#039;_userbox-r&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Main functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.main(funcName, args)&lt;br /&gt;
	local userboxData = p[funcName](args)&lt;br /&gt;
	local userbox = p.render(userboxData)&lt;br /&gt;
	local cats = p.categories(args)&lt;br /&gt;
	return userbox .. (cats or &amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._userbox(args)&lt;br /&gt;
	-- Does argument processing for {{userbox}}.&lt;br /&gt;
	local data = {}&lt;br /&gt;
&lt;br /&gt;
	-- Get div tag values.&lt;br /&gt;
	data.float = args.float&lt;br /&gt;
	local borderWidthNum = checkNum(args[&amp;#039;border-width&amp;#039;] or args[&amp;#039;border-s&amp;#039;], nil)&lt;br /&gt;
	data.borderWidth = addSuffix(borderWidthNum, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.borderColor = args[&amp;#039;border-color&amp;#039;] or args[&amp;#039;border-c&amp;#039;] or args[1] or args[&amp;#039;id-c&amp;#039;]&lt;br /&gt;
	data.width = borderWidthNum and addSuffix(240 - 2 * borderWidthNum, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.bodyClass = args.bodyclass&lt;br /&gt;
&lt;br /&gt;
	-- Get table tag values.&lt;br /&gt;
	data.backgroundColor = args[&amp;#039;info-background&amp;#039;] or args[2] or args[&amp;#039;info-c&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	-- Get info values.&lt;br /&gt;
	data.info = args.info or args[4] or &amp;quot;&amp;lt;code&amp;gt;{{{info}}}&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
	data.infoTextAlign = args[&amp;#039;info-a&amp;#039;]&lt;br /&gt;
	data.infoFontSize = checkNumAndAddSuffix(args[&amp;#039;info-size&amp;#039;] or args[&amp;#039;info-s&amp;#039;], nil, &amp;#039;pt&amp;#039;)&lt;br /&gt;
	data.infoHeight = checkNumAndAddSuffix(args[&amp;#039;logo-height&amp;#039;] or args[&amp;#039;id-h&amp;#039;], nil, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.infoPadding = args[&amp;#039;info-padding&amp;#039;] or args[&amp;#039;info-p&amp;#039;]&lt;br /&gt;
	data.infoLineHeight = args[&amp;#039;info-line-height&amp;#039;] or args[&amp;#039;info-lh&amp;#039;]&lt;br /&gt;
	data.infoColor = args[&amp;#039;info-color&amp;#039;] or args[&amp;#039;info-fc&amp;#039;]&lt;br /&gt;
	data.infoOtherParams = args[&amp;#039;info-other-param&amp;#039;] or args[&amp;#039;info-op&amp;#039;]&lt;br /&gt;
	data.infoClass = args[&amp;#039;info-class&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	-- Get id values.&lt;br /&gt;
	local id = args.logo or args[3] or args.id&lt;br /&gt;
	data.id = id&lt;br /&gt;
	data.showId = id and true or false&lt;br /&gt;
	data.idWidth = checkNumAndAddSuffix(args[&amp;#039;logo-width&amp;#039;] or args[&amp;#039;id-w&amp;#039;], nil, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.idHeight = checkNumAndAddSuffix(args[&amp;#039;logo-height&amp;#039;] or args[&amp;#039;id-h&amp;#039;], nil, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.idBackgroundColor = args[&amp;#039;logo-background&amp;#039;] or args[1] or args[&amp;#039;id-c&amp;#039;]&lt;br /&gt;
	data.idTextAlign = args[&amp;#039;id-a&amp;#039;]&lt;br /&gt;
	data.idFontSize = checkNum(args[&amp;#039;logo-size&amp;#039;] or args[5] or args[&amp;#039;id-s&amp;#039;], nil)&lt;br /&gt;
	data.idColor = args[&amp;#039;logo-color&amp;#039;] or args[&amp;#039;id-fc&amp;#039;] or data.infoColor&lt;br /&gt;
	data.idPadding = args[&amp;#039;logo-padding&amp;#039;] or args[&amp;#039;id-p&amp;#039;]&lt;br /&gt;
	data.idLineHeight = args[&amp;#039;logo-line-height&amp;#039;] or args[&amp;#039;id-lh&amp;#039;]&lt;br /&gt;
	data.idOtherParams = args[&amp;#039;logo-other-param&amp;#039;] or args[&amp;#039;id-op&amp;#039;]&lt;br /&gt;
	data.idClass = args[&amp;#039;id-class&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p[&amp;#039;_userbox-2&amp;#039;] = function (args)&lt;br /&gt;
	-- Does argument processing for {{userbox-2}}.&lt;br /&gt;
	local data = {}&lt;br /&gt;
&lt;br /&gt;
	-- Get div tag values.&lt;br /&gt;
	data.float = args.float&lt;br /&gt;
	local borderWidthNum = checkNum(args[&amp;#039;border-s&amp;#039;] or args[9], nil)&lt;br /&gt;
	data.borderWidth = addSuffix(borderWidthNum, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.borderColor = args[&amp;#039;border-c&amp;#039;] or args[6] or args[&amp;#039;id1-c&amp;#039;] or args[1]&lt;br /&gt;
	data.width = borderWidthNum and addSuffix(240 - 2 * borderWidthNum, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.bodyClass = args.bodyclass&lt;br /&gt;
&lt;br /&gt;
	-- Get table tag values.&lt;br /&gt;
	data.backgroundColor = args[&amp;#039;info-c&amp;#039;] or args[2]&lt;br /&gt;
&lt;br /&gt;
	-- Get info values.&lt;br /&gt;
	data.info = args.info or args[4] or &amp;quot;&amp;lt;code&amp;gt;{{{info}}}&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
	data.infoTextAlign = args[&amp;#039;info-a&amp;#039;]&lt;br /&gt;
	data.infoFontSize = checkNumAndAddSuffix(args[&amp;#039;info-s&amp;#039;], nil, &amp;#039;pt&amp;#039;)&lt;br /&gt;
	data.infoColor = args[&amp;#039;info-fc&amp;#039;] or args[8]&lt;br /&gt;
	data.infoPadding = args[&amp;#039;info-p&amp;#039;]&lt;br /&gt;
	data.infoLineHeight = args[&amp;#039;info-lh&amp;#039;]&lt;br /&gt;
	data.infoOtherParams = args[&amp;#039;info-op&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	-- Get id values.&lt;br /&gt;
	data.showId = true&lt;br /&gt;
	data.id = args.logo or args[3] or args.id1 or &amp;#039;id1&amp;#039;&lt;br /&gt;
	data.idWidth = checkNumAndAddSuffix(args[&amp;#039;id1-w&amp;#039;], nil, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.idHeight = checkNumAndAddSuffix(args[&amp;#039;id-h&amp;#039;], nil, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.idBackgroundColor = args[&amp;#039;id1-c&amp;#039;] or args[1]&lt;br /&gt;
	data.idTextAlign = args[&amp;#039;id-a&amp;#039;]&lt;br /&gt;
	data.idFontSize = checkNum(args[&amp;#039;id1-s&amp;#039;], nil)&lt;br /&gt;
	data.idLineHeight = args[&amp;#039;id1-lh&amp;#039;]&lt;br /&gt;
	data.idColor = args[&amp;#039;id1-fc&amp;#039;] or data.infoColor&lt;br /&gt;
	data.idPadding = args[&amp;#039;id1-p&amp;#039;]&lt;br /&gt;
	data.idOtherParams = args[&amp;#039;id1-op&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	-- Get id2 values.&lt;br /&gt;
	data.showId2 = true&lt;br /&gt;
	data.id2 = args.logo or args[5] or args.id2 or &amp;#039;id2&amp;#039;&lt;br /&gt;
	data.id2Width = checkNumAndAddSuffix(args[&amp;#039;id2-w&amp;#039;], nil, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.id2Height = data.idHeight&lt;br /&gt;
	data.id2BackgroundColor = args[&amp;#039;id2-c&amp;#039;] or args[7] or args[1]&lt;br /&gt;
	data.id2TextAlign = nil -- Always center, but don&amp;#039;t set if no content&lt;br /&gt;
	data.id2FontSize = checkNum(args[&amp;#039;id2-s&amp;#039;], nil)&lt;br /&gt;
	data.id2LineHeight = args[&amp;#039;id2-lh&amp;#039;]&lt;br /&gt;
	data.id2Color = args[&amp;#039;id2-fc&amp;#039;] or data.infoColor&lt;br /&gt;
	data.id2Padding = args[&amp;#039;id2-p&amp;#039;]&lt;br /&gt;
	data.id2OtherParams = args[&amp;#039;id2-op&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p[&amp;#039;_userbox-r&amp;#039;] = function (args)&lt;br /&gt;
	-- Does argument processing for {{userbox-r}}.&lt;br /&gt;
	local data = {}&lt;br /&gt;
&lt;br /&gt;
	-- Get div tag values.&lt;br /&gt;
	data.float = args.float&lt;br /&gt;
	local borderWidthNum = checkNum(args[&amp;#039;border-width&amp;#039;] or args[&amp;#039;border-s&amp;#039;], nil)&lt;br /&gt;
	data.borderWidth = addSuffix(borderWidthNum, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.borderColor = args[&amp;#039;border-color&amp;#039;] or args[&amp;#039;border-c&amp;#039;] or args[1] or args[&amp;#039;id-c&amp;#039;]&lt;br /&gt;
	data.width = borderWidthNum and addSuffix(240 - 2 * borderWidthNum, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.bodyClass = args.bodyclass&lt;br /&gt;
&lt;br /&gt;
	-- Get table tag values.&lt;br /&gt;
	data.backgroundColor = args[&amp;#039;info-background&amp;#039;] or args[2] or args[&amp;#039;info-c&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	-- Get id values.&lt;br /&gt;
	data.showId = false -- We only show id2 in userbox-r.&lt;br /&gt;
&lt;br /&gt;
	-- Get info values.&lt;br /&gt;
	data.info = args.info or args[4] or &amp;quot;&amp;lt;code&amp;gt;{{{info}}}&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
	data.infoTextAlign = args[&amp;#039;info-align&amp;#039;] or args[&amp;#039;info-a&amp;#039;]&lt;br /&gt;
	data.infoFontSize = checkNumAndAddSuffix(args[&amp;#039;info-size&amp;#039;] or args[&amp;#039;info-s&amp;#039;], nil, &amp;#039;pt&amp;#039;)&lt;br /&gt;
	data.infoPadding = args[&amp;#039;info-padding&amp;#039;] or args[&amp;#039;info-p&amp;#039;]&lt;br /&gt;
	data.infoLineHeight = args[&amp;#039;info-line-height&amp;#039;] or args[&amp;#039;info-lh&amp;#039;]&lt;br /&gt;
	data.infoColor = args[&amp;#039;info-color&amp;#039;] or args[&amp;#039;info-fc&amp;#039;]&lt;br /&gt;
	data.infoOtherParams = args[&amp;#039;info-other-param&amp;#039;] or args[&amp;#039;info-op&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	-- Get id2 values.&lt;br /&gt;
	data.showId2 = true  -- userbox-r always shows the ID cell (as id2)&lt;br /&gt;
	data.id2 = args.logo or args[3] or args.id or &amp;#039;id&amp;#039;&lt;br /&gt;
	data.id2Width = checkNumAndAddSuffix(args[&amp;#039;logo-width&amp;#039;] or args[&amp;#039;id-w&amp;#039;], nil, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.id2Height = checkNumAndAddSuffix(args[&amp;#039;logo-height&amp;#039;] or args[&amp;#039;id-h&amp;#039;], nil, &amp;#039;px&amp;#039;)&lt;br /&gt;
	data.id2BackgroundColor = args[&amp;#039;logo-background&amp;#039;] or args[1] or args[&amp;#039;id-c&amp;#039;]&lt;br /&gt;
	data.id2TextAlign = args[&amp;#039;id-a&amp;#039;]&lt;br /&gt;
	data.id2FontSize = checkNum(args[&amp;#039;logo-size&amp;#039;] or args[5] or args[&amp;#039;id-s&amp;#039;], nil)&lt;br /&gt;
	data.id2Color = args[&amp;#039;logo-color&amp;#039;] or args[&amp;#039;id-fc&amp;#039;] or data.infoColor&lt;br /&gt;
	data.id2Padding = args[&amp;#039;logo-padding&amp;#039;] or args[&amp;#039;id-p&amp;#039;]&lt;br /&gt;
	data.id2LineHeight = args[&amp;#039;logo-line-height&amp;#039;] or args[&amp;#039;id-lh&amp;#039;]&lt;br /&gt;
	data.id2OtherParams = args[&amp;#039;logo-other-param&amp;#039;] or args[&amp;#039;id-op&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.render(data)&lt;br /&gt;
	-- Renders the userbox html using the content of the data table.&lt;br /&gt;
	-- Add TemplateStyles&lt;br /&gt;
	local templateStyles = mw.getCurrentFrame():extensionTag{&lt;br /&gt;
		name = &amp;#039;templatestyles&amp;#039;, args = { src = &amp;#039;Template:Userbox/styles.css&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	-- Render the div tag html.&lt;br /&gt;
	local root = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
	root:addClass(&amp;#039;wikipediauserbox&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Only add CSS properties if they have values&lt;br /&gt;
	if data.float then root:css(&amp;#039;float&amp;#039;, data.float) end&lt;br /&gt;
	if data.borderWidth then &lt;br /&gt;
		root:css(&amp;#039;border-width&amp;#039;, data.borderWidth)&lt;br /&gt;
	end&lt;br /&gt;
	if data.borderColor then &lt;br /&gt;
		root:css(&amp;#039;border-color&amp;#039;, data.borderColor)&lt;br /&gt;
		-- Set border style if we have a color but potentially no width set&lt;br /&gt;
		if not data.borderWidth then&lt;br /&gt;
			root:css(&amp;#039;border-width&amp;#039;, &amp;#039;1px&amp;#039;)  -- default border width&lt;br /&gt;
		end&lt;br /&gt;
		root:css(&amp;#039;border-style&amp;#039;, &amp;#039;solid&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if data.width then root:css(&amp;#039;width&amp;#039;, data.width) end&lt;br /&gt;
	if data.bodyClass then root:addClass(data.bodyClass) end&lt;br /&gt;
&lt;br /&gt;
	-- Render the table tag html.&lt;br /&gt;
	local tableroot = root:tag(&amp;#039;table&amp;#039;)&lt;br /&gt;
	tableroot:attr(&amp;#039;role&amp;#039;, &amp;#039;presentation&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Only add CSS if values exist&lt;br /&gt;
	if data.width then tableroot:css(&amp;#039;width&amp;#039;, data.width) end&lt;br /&gt;
	if data.backgroundColor then tableroot:css(&amp;#039;background&amp;#039;, data.backgroundColor):css(&amp;#039;color&amp;#039;, &amp;#039;inherit&amp;#039;) end&lt;br /&gt;
&lt;br /&gt;
	local tablerow = tableroot:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Create cells based on what should actually be shown&lt;br /&gt;
	if data.showId == false then&lt;br /&gt;
		-- userbox-r: info cell first, then id2 cell (if showId2 is true)&lt;br /&gt;
		local infoCell = tablerow:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
		infoCell:addClass(&amp;#039;userbox-info&amp;#039;)&lt;br /&gt;
		if data.infoTextAlign then infoCell:css(&amp;#039;text-align&amp;#039;, data.infoTextAlign) end&lt;br /&gt;
		if data.infoFontSize then infoCell:css(&amp;#039;font-size&amp;#039;, data.infoFontSize) end&lt;br /&gt;
		if data.infoPadding then infoCell:css(&amp;#039;padding&amp;#039;, data.infoPadding) end&lt;br /&gt;
		if data.infoHeight then infoCell:css(&amp;#039;height&amp;#039;, data.infoHeight) end&lt;br /&gt;
		if data.infoLineHeight then infoCell:css(&amp;#039;line-height&amp;#039;, data.infoLineHeight) end&lt;br /&gt;
		if data.infoColor then infoCell:css(&amp;#039;color&amp;#039;, data.infoColor) end&lt;br /&gt;
		if data.infoOtherParams then infoCell:cssText(data.infoOtherParams) end&lt;br /&gt;
		if data.infoClass then infoCell:addClass(data.infoClass) end&lt;br /&gt;
		if data.info then infoCell:wikitext(data.info) end&lt;br /&gt;
		&lt;br /&gt;
		-- Create id2 cell only if showId2 is true&lt;br /&gt;
		if data.showId2 then&lt;br /&gt;
			local id2Cell = tablerow:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			id2Cell:addClass(&amp;#039;userbox-id2&amp;#039;)&lt;br /&gt;
			if data.id2Width then id2Cell:css(&amp;#039;width&amp;#039;, data.id2Width) end&lt;br /&gt;
			if data.id2Height then id2Cell:css(&amp;#039;height&amp;#039;, data.id2Height) end&lt;br /&gt;
			if data.id2BackgroundColor then id2Cell:css(&amp;#039;background&amp;#039;, data.id2BackgroundColor) end&lt;br /&gt;
			if data.id2TextAlign then id2Cell:css(&amp;#039;text-align&amp;#039;, data.id2TextAlign) end&lt;br /&gt;
			if data.id2FontSize then id2Cell:css(&amp;#039;font-size&amp;#039;, data.id2FontSize .. &amp;#039;pt&amp;#039;) end&lt;br /&gt;
			if data.id2Color then id2Cell:css(&amp;#039;color&amp;#039;, data.id2Color) else id2Cell:css(&amp;#039;color&amp;#039;, &amp;#039;inherit&amp;#039;) end&lt;br /&gt;
			if data.id2Padding then id2Cell:css(&amp;#039;padding&amp;#039;, data.id2Padding) end&lt;br /&gt;
			if data.id2LineHeight then id2Cell:css(&amp;#039;line-height&amp;#039;, data.id2LineHeight) end&lt;br /&gt;
			if data.id2OtherParams then id2Cell:cssText(data.id2OtherParams) end&lt;br /&gt;
			if data.id2 then id2Cell:wikitext(data.id2) end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- userbox and userbox-2: create id cell only if showId is true&lt;br /&gt;
		if data.showId then&lt;br /&gt;
			local idCell = tablerow:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			idCell:addClass(&amp;#039;userbox-id&amp;#039;)&lt;br /&gt;
			if data.idWidth then idCell:css(&amp;#039;width&amp;#039;, data.idWidth) end&lt;br /&gt;
			if data.idHeight then idCell:css(&amp;#039;height&amp;#039;, data.idHeight) end&lt;br /&gt;
			if data.idBackgroundColor then idCell:css(&amp;#039;background&amp;#039;, data.idBackgroundColor) end&lt;br /&gt;
			if data.idTextAlign then idCell:css(&amp;#039;text-align&amp;#039;, data.idTextAlign) end&lt;br /&gt;
			if data.idFontSize then idCell:css(&amp;#039;font-size&amp;#039;, data.idFontSize .. &amp;#039;pt&amp;#039;) end&lt;br /&gt;
			if data.idColor then idCell:css(&amp;#039;color&amp;#039;, data.idColor) else idCell:css(&amp;#039;color&amp;#039;, &amp;#039;inherit&amp;#039;) end&lt;br /&gt;
			if data.idPadding then idCell:css(&amp;#039;padding&amp;#039;, data.idPadding) end&lt;br /&gt;
			if data.idLineHeight then idCell:css(&amp;#039;line-height&amp;#039;, data.idLineHeight) end&lt;br /&gt;
			if data.idOtherParams then idCell:cssText(data.idOtherParams) end&lt;br /&gt;
			if data.idClass then idCell:addClass(data.idClass) end&lt;br /&gt;
			if data.id then idCell:wikitext(data.id) end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		-- Always create info cell for userbox and userbox-2&lt;br /&gt;
		local infoCell = tablerow:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
		infoCell:addClass(&amp;#039;userbox-info&amp;#039;)&lt;br /&gt;
		if data.infoTextAlign then infoCell:css(&amp;#039;text-align&amp;#039;, data.infoTextAlign) end&lt;br /&gt;
		if data.infoFontSize then infoCell:css(&amp;#039;font-size&amp;#039;, data.infoFontSize) end&lt;br /&gt;
		if data.infoPadding then infoCell:css(&amp;#039;padding&amp;#039;, data.infoPadding) end&lt;br /&gt;
		if data.infoHeight then infoCell:css(&amp;#039;height&amp;#039;, data.infoHeight) end&lt;br /&gt;
		if data.infoLineHeight then infoCell:css(&amp;#039;line-height&amp;#039;, data.infoLineHeight) end&lt;br /&gt;
		if data.infoColor then infoCell:css(&amp;#039;color&amp;#039;, data.infoColor) end&lt;br /&gt;
		if data.infoOtherParams then infoCell:cssText(data.infoOtherParams) end&lt;br /&gt;
		if data.infoClass then infoCell:addClass(data.infoClass) end&lt;br /&gt;
		if data.info then infoCell:wikitext(data.info) end&lt;br /&gt;
		&lt;br /&gt;
		-- Create id2 cell only for userbox-2 and only if showId2 is true&lt;br /&gt;
		if data.showId2 then&lt;br /&gt;
			local id2Cell = tablerow:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			id2Cell:addClass(&amp;#039;userbox-id2&amp;#039;)&lt;br /&gt;
			if data.id2Width then id2Cell:css(&amp;#039;width&amp;#039;, data.id2Width) end&lt;br /&gt;
			if data.id2Height then id2Cell:css(&amp;#039;height&amp;#039;, data.id2Height) end&lt;br /&gt;
			if data.id2BackgroundColor then id2Cell:css(&amp;#039;background&amp;#039;, data.id2BackgroundColor) end&lt;br /&gt;
			if data.id2TextAlign then id2Cell:css(&amp;#039;text-align&amp;#039;, data.id2TextAlign) end&lt;br /&gt;
			if data.id2FontSize then id2Cell:css(&amp;#039;font-size&amp;#039;, data.id2FontSize .. &amp;#039;pt&amp;#039;) end&lt;br /&gt;
			if data.id2Color then id2Cell:css(&amp;#039;color&amp;#039;, data.id2Color) else id2Cell:css(&amp;#039;color&amp;#039;, &amp;#039;inherit&amp;#039;) end&lt;br /&gt;
			if data.id2Padding then id2Cell:css(&amp;#039;padding&amp;#039;, data.id2Padding) end&lt;br /&gt;
			if data.id2LineHeight then id2Cell:css(&amp;#039;line-height&amp;#039;, data.id2LineHeight) end&lt;br /&gt;
			if data.id2OtherParams then id2Cell:cssText(data.id2OtherParams) end&lt;br /&gt;
			if data.id2 then id2Cell:wikitext(data.id2) end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	if (title.namespace == 2) and not title.text:match(&amp;quot;/&amp;quot;) then&lt;br /&gt;
		return templateStyles .. tostring(root) -- regular user page&lt;br /&gt;
	elseif title.namespace == 14 then&lt;br /&gt;
		return templateStyles .. tostring(root) -- category&lt;br /&gt;
	elseif title.isTalkPage then&lt;br /&gt;
		return templateStyles .. tostring(root) -- talk page&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Color contrast checking (simplified for TemplateStyles)&lt;br /&gt;
	local legible = true&lt;br /&gt;
	local contrast = require(&amp;#039;Module:Color contrast&amp;#039;)._ratio&lt;br /&gt;
	local function has_text(wikitext)&lt;br /&gt;
		if not wikitext then return false end&lt;br /&gt;
		wikitext = wikitext:gsub(&amp;quot;]]&amp;quot;, &amp;quot;|]]&amp;quot;)&lt;br /&gt;
		wikitext = wikitext:gsub(&amp;quot;%[%[%s*[Mm][Ee][Dd][Ii][Aa]%s*:[^|]-(|.-)]]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		wikitext = wikitext:gsub(&amp;quot;%[%[%s*[Ii][Mm][Aa][Gg][Ee]%s*:[^|]-(|.-)]]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		wikitext = wikitext:gsub(&amp;quot;%[%[%s*[Ff][Ii][Ll][Ee]%s*:[^|]-(|.-)]]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		return mw.text.trim(wikitext) ~= &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if data.infoColor and data.backgroundColor and contrast { data.infoColor, data.backgroundColor, error = 0 } &amp;lt; 4.5 then&lt;br /&gt;
		legible = false&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- For bold text &amp;gt;= 14pt, requirement is only 3.&lt;br /&gt;
	local idContrastThreshold = 4.5&lt;br /&gt;
	local id2ContrastThreshold = 4.5&lt;br /&gt;
	if (data.idFontSize or 0) &amp;gt;= 14 then idContrastThreshold = 3 end&lt;br /&gt;
	if (data.id2FontSize or 0) &amp;gt;= 14 then id2ContrastThreshold = 3 end&lt;br /&gt;
&lt;br /&gt;
	if data.showId and data.idColor and data.idBackgroundColor and contrast { data.idColor, data.idBackgroundColor, error = 0 } &amp;lt; idContrastThreshold then&lt;br /&gt;
		if has_text(data.id or &amp;quot;&amp;quot;) then legible = false end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if data.showId2 and data.id2Color and data.id2BackgroundColor and contrast { data.id2Color, data.id2BackgroundColor, error = 0 } &amp;lt; id2ContrastThreshold then&lt;br /&gt;
		if has_text(data.id2 or &amp;quot;&amp;quot;) then legible = false end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not legible then&lt;br /&gt;
		root:wikitext(&amp;#039;[[Category:Userboxes with insufficient color contrast]]&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return templateStyles .. tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.categories(args, page)&lt;br /&gt;
	-- Gets categories from [[Module:Category handler]].&lt;br /&gt;
	-- The page parameter makes the function act as though the module was being called from that page.&lt;br /&gt;
	-- It is included for testing purposes.&lt;br /&gt;
	local cats = {}&lt;br /&gt;
	cats[#cats + 1] = args.usercategory&lt;br /&gt;
	cats[#cats + 1] = args.usercategory2&lt;br /&gt;
	cats[#cats + 1] = args.usercategory3&lt;br /&gt;
	cats[#cats + 1] = args.usercategory4&lt;br /&gt;
	cats[#cats + 1] = args.usercategory5&lt;br /&gt;
&lt;br /&gt;
	-- Get the title object&lt;br /&gt;
	local title&lt;br /&gt;
	if page then&lt;br /&gt;
		title = mw.title.new(page)&lt;br /&gt;
	else&lt;br /&gt;
		title = mw.title.getCurrentTitle()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Build category handler arguments.&lt;br /&gt;
	local chargs = {}&lt;br /&gt;
	chargs.page = page&lt;br /&gt;
	chargs.nocat = args.nocat&lt;br /&gt;
	chargs.main = &amp;#039;[[Category:Pages with templates in the wrong namespace]]&amp;#039;&lt;br /&gt;
	if args.notcatsubpages then&lt;br /&gt;
		chargs.subpage = &amp;#039;no&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- User namespace.&lt;br /&gt;
	local user = &amp;#039;&amp;#039;&lt;br /&gt;
	for i, cat in ipairs(cats) do&lt;br /&gt;
		user = user .. makeCat(cat)&lt;br /&gt;
	end&lt;br /&gt;
	chargs.user = user&lt;br /&gt;
&lt;br /&gt;
	return categoryHandler(chargs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:28:59 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Template:Userbox</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Userbox&amp;diff=1953&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Userbox&amp;diff=1953&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;{{#invoke:userbox|userbox}}{{template other|__EXPECTUNUSEDTEMPLATE__}}&amp;lt;noinclude&amp;gt; {{documentation}} &amp;lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&amp;gt; &amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#invoke:userbox|userbox}}{{template other|__EXPECTUNUSEDTEMPLATE__}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:28:27 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Userbox</comments>
		</item>
		<item>
			<title>Template:User Short descriptions</title>
			<link>https://feministwiki.org/w/index.php?title=Template:User_Short_descriptions&amp;diff=1952&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:User_Short_descriptions&amp;diff=1952&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;{{userbox | border-c      = #bcbcac | id            = &lt;a href=&quot;/w/index.php?title=File:Farm-Fresh_quill.png&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;File:Farm-Fresh quill.png (page does not exist)&quot; rel=&quot;nofollow&quot;&gt;File:Farm-Fresh quill.png&lt;/a&gt; | id-c          = #f8f9f8 | info          = This user is a participant in&amp;lt;/br&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;a href=&quot;https://en.wikipedia.org/wiki/WikiProject_Short_descriptions&quot; class=&quot;extiw&quot; title=&quot;wikipedia:WikiProject Short descriptions&quot;&gt;WikiProject Short descriptions&lt;/a&gt;&amp;#039;&amp;#039;&amp;#039;. | info-c        = #f8f9f8 | info-s        = 8 | info-op       = text-align:center | usercategory  = WikiProject Short descriptions participants | nocat         = {{{nocat|}}} }}&amp;lt;noinclude&amp;gt; {{Documentation}} &amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{userbox&lt;br /&gt;
| border-c      = #bcbcac&lt;br /&gt;
| id            = [[File:Farm-Fresh quill.png]]&lt;br /&gt;
| id-c          = #f8f9f8&lt;br /&gt;
| info          = This user is a participant in&amp;lt;/br&amp;gt;&amp;#039;&amp;#039;&amp;#039;[[Wikipedia:WikiProject Short descriptions|WikiProject Short descriptions]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
| info-c        = #f8f9f8&lt;br /&gt;
| info-s        = 8&lt;br /&gt;
| info-op       = text-align:center&lt;br /&gt;
| usercategory  = WikiProject Short descriptions participants&lt;br /&gt;
| nocat         = {{{nocat|}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:28:13 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:User_Short_descriptions</comments>
		</item>
		<item>
			<title>Template:Shortdesc there</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Shortdesc_there&amp;diff=1951&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Shortdesc_there&amp;diff=1951&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;&amp;lt;noinclude&amp;gt;&amp;lt;!--    {{{1}}} is the description    {{{2}}} sets noreplace     {{{note}}} overrides default HTML comment       (empty value or &amp;quot;none&amp;quot; suppresses it)  --&amp;gt;&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{subst:#if:{{{1|}}}    |{{subst:includeonly|{{Short description|{{{1}}}{{subst:#switch:{{subst:lc:{{{2|}}}}}       |noreplace       |nr={{subst:!}}noreplace       | }}}}}}{{subst:#if:{{{note|a}}}       |{{subst:#ifeq:{{subst:lc:{{{note}}}}}|none          |          |{{subst:html com...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
   {{{1}}} is the description&lt;br /&gt;
   {{{2}}} sets noreplace &lt;br /&gt;
   {{{note}}} overrides default HTML comment&lt;br /&gt;
      (empty value or &amp;quot;none&amp;quot; suppresses it)&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{subst:#if:{{{1|}}}&lt;br /&gt;
   |{{subst:includeonly|{{Short description|{{{1}}}{{subst:#switch:{{subst:lc:{{{2|}}}}}&lt;br /&gt;
      |noreplace&lt;br /&gt;
      |nr={{subst:!}}noreplace&lt;br /&gt;
      |&lt;br /&gt;
}}}}}}{{subst:#if:{{{note|a}}}&lt;br /&gt;
      |{{subst:#ifeq:{{subst:lc:{{{note}}}}}|none&lt;br /&gt;
         |&lt;br /&gt;
         |{{subst:html comment|{{{note|For transclusion only}}}}}}}&lt;br /&gt;
      |}}&lt;br /&gt;
   |}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:27:41 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Shortdesc_there</comments>
		</item>
		<item>
			<title>Template:Shortdesc here</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Shortdesc_here&amp;diff=1950&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Shortdesc_here&amp;diff=1950&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;&amp;lt;noinclude&amp;gt;&amp;lt;!--    {{{1}}} is the description    {{{2}}} sets noreplace     {{{note}}} overrides default HTML comment       (empty value or &amp;quot;none&amp;quot; suppresses it)  --&amp;gt;&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{subst:#if:{{{1|}}}    |{{subst:noinclude|{{Short description|{{{1}}}{{subst:#switch:{{subst:lc:{{{2|}}}}}       |noreplace       |nr={{subst:!}}noreplace       | }}}}}}{{subst:#if:{{{note|a}}}       |{{subst:#ifeq:{{subst:lc:{{{note}}}}}|none          |          |{{subst:html comme...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
   {{{1}}} is the description&lt;br /&gt;
   {{{2}}} sets noreplace &lt;br /&gt;
   {{{note}}} overrides default HTML comment&lt;br /&gt;
      (empty value or &amp;quot;none&amp;quot; suppresses it)&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{subst:#if:{{{1|}}}&lt;br /&gt;
   |{{subst:noinclude|{{Short description|{{{1}}}{{subst:#switch:{{subst:lc:{{{2|}}}}}&lt;br /&gt;
      |noreplace&lt;br /&gt;
      |nr={{subst:!}}noreplace&lt;br /&gt;
      |&lt;br /&gt;
}}}}}}{{subst:#if:{{{note|a}}}&lt;br /&gt;
      |{{subst:#ifeq:{{subst:lc:{{{note}}}}}|none&lt;br /&gt;
         |&lt;br /&gt;
         |{{subst:html comment|{{{note|For this page only}}}}}}}&lt;br /&gt;
      |}}&lt;br /&gt;
   |}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:27:24 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Shortdesc_here</comments>
		</item>
		<item>
			<title>Module:Ustring</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Ustring&amp;diff=1949&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Ustring&amp;diff=1949&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;require(&amp;#039;strict&amp;#039;) return setmetatable({}, { 	__index = function(t, k) 		local what = mw.ustring[k] 		if type(what) ~= &amp;quot;function&amp;quot; then 			return what 		end 		return function(frame) 			local fargs = frame.args 			local fargsused = { tag = true } 			local args = {} 			local str_i = 1 			while fargs[&amp;#039;s&amp;#039; .. str_i] do 				fargsused[&amp;#039;s&amp;#039; .. str_i] = true 				args[str_i] = fargs[&amp;#039;s&amp;#039; .. str_i] 				str_i = str_i + 1 			end 			for i, v in ipairs(fargs) do 				fargsused[i] = true...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
return setmetatable({}, {&lt;br /&gt;
	__index = function(t, k)&lt;br /&gt;
		local what = mw.ustring[k]&lt;br /&gt;
		if type(what) ~= &amp;quot;function&amp;quot; then&lt;br /&gt;
			return what&lt;br /&gt;
		end&lt;br /&gt;
		return function(frame)&lt;br /&gt;
			local fargs = frame.args&lt;br /&gt;
			local fargsused = { tag = true }&lt;br /&gt;
			local args = {}&lt;br /&gt;
			local str_i = 1&lt;br /&gt;
			while fargs[&amp;#039;s&amp;#039; .. str_i] do&lt;br /&gt;
				fargsused[&amp;#039;s&amp;#039; .. str_i] = true&lt;br /&gt;
				args[str_i] = fargs[&amp;#039;s&amp;#039; .. str_i]&lt;br /&gt;
				str_i = str_i + 1&lt;br /&gt;
			end&lt;br /&gt;
			for i, v in ipairs(fargs) do&lt;br /&gt;
				fargsused[i] = true&lt;br /&gt;
				args[i + str_i - 1] = tonumber(v) or v:gsub(&amp;quot;^\\&amp;quot;, &amp;quot;&amp;quot;, 1)&lt;br /&gt;
			end&lt;br /&gt;
			if not fargs.tag then&lt;br /&gt;
				return (what(unpack(args)))		-- Outside parens truncate to first result avoiding tail call&lt;br /&gt;
			end&lt;br /&gt;
			local tagargs = {}&lt;br /&gt;
			for x, y in pairs(fargs) do&lt;br /&gt;
				if not fargsused[x] then tagargs[x] = y end&lt;br /&gt;
			end&lt;br /&gt;
			return frame:extensionTag{name = fargs.tag, content = what(unpack(args)), args = tagargs}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
})&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:25:02 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Template:Str sub old</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Str_sub_old&amp;diff=1948&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Str_sub_old&amp;diff=1948&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;&amp;lt;includeonly&amp;gt;{{{{{|safesubst:}}}#invoke:String|sublength|s={{{1}}}|i={{{2|0}}}|len={{{3|0}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt; {{documentation}} &amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;{{{{{|safesubst:}}}#invoke:String|sublength|s={{{1}}}|i={{{2|0}}}|len={{{3|0}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:24:10 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Str_sub_old</comments>
		</item>
		<item>
			<title>Template:Wikidata entity link</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Wikidata_entity_link&amp;diff=1947&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Wikidata_entity_link&amp;diff=1947&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;&amp;lt;includeonly&amp;gt;{{#if:{{{1|}}} | {{#switch:{{padleft:|1|{{uc:{{{1}}}}}}}   | Q | P  = [[d:Special:EntityPage/{{uc:{{{1}}}}}|{{replace|{{#invoke:wd|label|{{uc:{{{1}}}}}}}|&amp;#039;|&amp;#039;}} &amp;lt;small&amp;gt;({{uc:{{{1}}}}})&amp;lt;/small&amp;gt;]]   | #default = [[d:Special:EntityPage/Q{{uc:{{{1}}}}}|{{replace|{{#invoke:wd|label|Q{{uc:{{{1}}}}}}}|&amp;#039;|&amp;#039;}} &amp;lt;small&amp;gt;(Q{{uc:{{{1|}}}}})&amp;lt;/small&amp;gt;]]   }} | {{#if:{{#invoke:wd|label|raw}}   | d:Special:EntityPage/{{#invoke:wd|label|raw}}|{{#invoke:wd|label}} &amp;lt;small...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#if:{{{1|}}}&lt;br /&gt;
| {{#switch:{{padleft:|1|{{uc:{{{1}}}}}}}&lt;br /&gt;
  | Q | P  = [[d:Special:EntityPage/{{uc:{{{1}}}}}|{{replace|{{#invoke:wd|label|{{uc:{{{1}}}}}}}|&amp;#039;|&amp;amp;#39;}} &amp;lt;small&amp;gt;({{uc:{{{1}}}}})&amp;lt;/small&amp;gt;]]&lt;br /&gt;
  | #default = [[d:Special:EntityPage/Q{{uc:{{{1}}}}}|{{replace|{{#invoke:wd|label|Q{{uc:{{{1}}}}}}}|&amp;#039;|&amp;amp;#39;}} &amp;lt;small&amp;gt;(Q{{uc:{{{1|}}}}})&amp;lt;/small&amp;gt;]]&lt;br /&gt;
  }}&lt;br /&gt;
| {{#if:{{#invoke:wd|label|raw}}&lt;br /&gt;
  | [[d:Special:EntityPage/{{#invoke:wd|label|raw}}|{{#invoke:wd|label}} &amp;lt;small&amp;gt;({{#invoke:wd|label|raw}})&amp;lt;/small&amp;gt;]]&lt;br /&gt;
  | &amp;lt;small&amp;gt;(no entity)&amp;lt;/small&amp;gt;&lt;br /&gt;
  }}&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:11:27 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Wikidata_entity_link</comments>
		</item>
		<item>
			<title>Template:Q</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Q&amp;diff=1946&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Q&amp;diff=1946&amp;oldid=0</guid>
			<description>&lt;p&gt;Redirected page to &lt;a href=&quot;/wiki/Template:Wikidata_entity_link&quot; title=&quot;Template:Wikidata entity link&quot;&gt;Template:Wikidata entity link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#REDIRECT [[Template:Wikidata entity link]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
{{R mentioned in hatnote}}&lt;br /&gt;
{{R from template shortcut}}&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Wikidata templates]]&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:11:14 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Q</comments>
		</item>
		<item>
			<title>Template:Short description/test</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Short_description/test&amp;diff=1945&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Short_description/test&amp;diff=1945&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;&amp;lt;span class=&amp;quot;shortdescription nomobile noexcerpt noprint&amp;quot;&amp;gt;{{nowiki2|1={{#invoke:WikidataIB|getDescription|{{{1|}}}|qid={{{qid|}}}}}}}&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt; {{documentation}}&amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;span class=&amp;quot;shortdescription nomobile noexcerpt noprint&amp;quot;&amp;gt;{{nowiki2|1={{#invoke:WikidataIB|getDescription|{{{1|}}}|qid={{{qid|}}}}}}}&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:10:41 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Short_description/test</comments>
		</item>
		<item>
			<title>Module:Is infobox in lead/doc</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Is_infobox_in_lead/doc&amp;diff=1944&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Is_infobox_in_lead/doc&amp;diff=1944&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;&amp;lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see &lt;a href=&quot;https://en.wikipedia.org/wiki/Wikidata&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Wikidata&quot;&gt;Wikipedia:Wikidata&lt;/a&gt;) --&amp;gt; {{high use|risk}}  &amp;#039;&amp;#039;&amp;#039;Module:Is infobox in lead&amp;#039;&amp;#039;&amp;#039; checks if a given infobox is in the lead, is also the only infobox in the lead, and that there aren&amp;#039;t two of that same infobox in the article. If that is the case, it returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, and if not returns nothing.  This is designed for use by infoboxes that automatically generate sho...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&amp;gt;&lt;br /&gt;
{{high use|risk}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Module:Is infobox in lead&amp;#039;&amp;#039;&amp;#039; checks if a given infobox is in the lead, is also the only infobox in the lead, and that there aren&amp;#039;t two of that same infobox in the article. If that is the case, it returns &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, and if not returns nothing.&lt;br /&gt;
&lt;br /&gt;
This is designed for use by infoboxes that automatically generate short descriptions, to make sure they only generate a short description if they are the lead infobox.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Is infobox in lead|main|[Ii]nfobox [Ff]oo [Bb]ar}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It does not detect redirects which do not match the parameter. Redirects can be handled with an extra invocation per redirect pattern, e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Is infobox in lead|main|[Ii]nfobox [Ss]ong}}{{#invoke:Is infobox in lead|main|[Ii]nfobox [Ss]ingle}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirects can be found with [{{fullurl:Special:WhatLinksHere|hidetrans=1&amp;amp;hidelinks=1&amp;amp;target=Template%3AInfobox+(enter+real+name+of+infobox+here)}} WhatLinksHere].&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |&lt;br /&gt;
&amp;lt;!-- Categories below this line, please; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
[[Category:Infobox modules]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Module documentation pages]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:10:02 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:Is infobox in lead</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Is_infobox_in_lead&amp;diff=1943&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Is_infobox_in_lead&amp;diff=1943&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;local p = {}  function p.main (frame) 	return p._main (frame.args[1]) end  function p._main (searchString) 	local content = mw.title.getCurrentTitle():getContent() 	local offset = string.find(content, &amp;quot;==&amp;quot;, 1 , true) 	if offset then 		local lead = string.sub(content, 1, offset-1) 		if (string.find(lead, searchString)) then 			lead = lead 				:gsub( &amp;quot;{{%s-[Ii]nfobox%s-mapframe&amp;quot;, &amp;quot;&amp;quot;) --don&amp;#039;t check for infobox mapframe 				:gsub( &amp;quot;{{%s-[Ii]nfobo[^}]-%|%s-embed%s-=%s-yes&amp;quot;, &amp;quot;...&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;
&lt;br /&gt;
function p.main (frame)&lt;br /&gt;
	return p._main (frame.args[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main (searchString)&lt;br /&gt;
	local content = mw.title.getCurrentTitle():getContent()&lt;br /&gt;
	local offset = string.find(content, &amp;quot;==&amp;quot;, 1 , true)&lt;br /&gt;
	if offset then&lt;br /&gt;
		local lead = string.sub(content, 1, offset-1)&lt;br /&gt;
		if (string.find(lead, searchString)) then&lt;br /&gt;
			lead = lead&lt;br /&gt;
				:gsub( &amp;quot;{{%s-[Ii]nfobox%s-mapframe&amp;quot;, &amp;quot;&amp;quot;) --don&amp;#039;t check for infobox mapframe&lt;br /&gt;
				:gsub( &amp;quot;{{%s-[Ii]nfobo[^}]-%|%s-embed%s-=%s-yes&amp;quot;, &amp;quot;&amp;quot;) --don&amp;#039;t check for embeded infoboxes&lt;br /&gt;
				:gsub( &amp;quot;{{%s-[Ii]nfobo[^}]-%|%s-child%s-=%s-yes&amp;quot;, &amp;quot;&amp;quot;) --don&amp;#039;t check for child infoboxes&lt;br /&gt;
			local iter = string.gmatch(lead, &amp;quot;{{%s-[Ii]nfobox&amp;quot;)&lt;br /&gt;
			iter()&lt;br /&gt;
			if not iter() then --if able to find two infoboxes in the lead, then don&amp;#039;t return true&lt;br /&gt;
				local iter2 = string.gmatch(content, searchString)&lt;br /&gt;
				iter2()&lt;br /&gt;
				if not iter2() then --if able to find two of the specific infobox in the article, then don&amp;#039;t return true&lt;br /&gt;
					return true&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:09:39 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Template:Annotated link</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Annotated_link&amp;diff=1942&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Annotated_link&amp;diff=1942&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;&amp;lt;includeonly&amp;gt;{{ {{{|safesubst:}}}#invoke:Annotated link | main  | wikidata = {{{ wikidata |}}} | not_wikidata_for_links_starting_with = List of # Index of # Glossary of # Outline of # Timeline of # History of | not_wikidata_descriptions_including  = wikimedia # mediawiki # wikipedia # list # index # glossary # outline # overview  | space_cat       = {{{ space_cat | {{{ space-cat |}}} }}} | not_single_word = organization # organisation # term  | none_is_valid = yes | none...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;{{ {{{|safesubst:}}}#invoke:Annotated link | main&lt;br /&gt;
&lt;br /&gt;
| wikidata = {{{ wikidata |}}}&lt;br /&gt;
| not_wikidata_for_links_starting_with = List of # Index of # Glossary of # Outline of # Timeline of # History of&lt;br /&gt;
| not_wikidata_descriptions_including  = wikimedia # mediawiki # wikipedia # list # index # glossary # outline # overview&lt;br /&gt;
&lt;br /&gt;
| space_cat       = {{{ space_cat | {{{ space-cat |}}} }}}&lt;br /&gt;
| not_single_word = organization # organisation # term&lt;br /&gt;
&lt;br /&gt;
| none_is_valid = yes&lt;br /&gt;
| none_is_nil   = yes&lt;br /&gt;
&lt;br /&gt;
| name    = {{{ 1 | {{{ name | {{{ title |}}} }}} }}}&lt;br /&gt;
| display = {{{ 2 | {{{ display | {{{ disp |}}} }}} }}}&lt;br /&gt;
| dash    = {{{ 3 | {{{ dash | {{{ comma |}}} }}} }}}&lt;br /&gt;
&lt;br /&gt;
| template_link = {{{ template_link | {{{ template-link | {{{ tl |}}} }}} }}}&lt;br /&gt;
&lt;br /&gt;
| link_lang        = {{{ link_lang | {{{ link-lang | {{{ ll |}}} }}} }}}&lt;br /&gt;
| link_lang_italic = {{{ link_lang_italic | {{{ link-lang-italic | {{{ lli |}}} }}} }}}&lt;br /&gt;
| link_lang_nocat  = {{{ link_lang_nocat | {{{ link-lang-nocat | {{{ llnc |}}} }}} }}}&lt;br /&gt;
| link_lang_size   = {{{ link_lang_size | {{{ link-lang-size | {{{ lls |}}} }}} }}}&lt;br /&gt;
| link_lang_cat    = {{{ link_lang_cat | {{{ link-lang-cat | {{{ llc |}}} }}} }}}&lt;br /&gt;
| link_lang_rtl    = {{{ link_lang_rtl | {{{ link-lang-rtl | {{{ llr |}}} }}} }}}&lt;br /&gt;
&lt;br /&gt;
| quote = {{{ quote | {{{ quote_link | {{{ quote-link | {{{ ql |}}} }}} }}} }}}&lt;br /&gt;
&lt;br /&gt;
| abbr       = {{{ abbr | {{{ abbreviation |}}} }}}&lt;br /&gt;
| abbr_title = {{{ abbr_title | {{{ abbr-title | {{{ abbreviation_title | {{{ abbreviation-title | {{{ at |}}} }}} }}} }}} }}}&lt;br /&gt;
&lt;br /&gt;
| aka             = {{{ aka |}}}&lt;br /&gt;
| aka_lang        = {{{ aka_lang | {{{ aka-lang | {{{ al |}}} }}} }}}&lt;br /&gt;
| aka_lang_italic = {{{ aka_lang_italic | {{{ aka-lang-italic | {{{ ali |}}} }}} }}}&lt;br /&gt;
| aka_lang_nocat  = {{{ aka_lang_nocat | {{{ aka-lang-nocat | {{{ alnc |}}} }}} }}}&lt;br /&gt;
| aka_lang_size   = {{{ aka_lang_size | {{{ aka-lang-size | {{{ als |}}} }}} }}}&lt;br /&gt;
| aka_lang_cat    = {{{ aka_lang_cat | {{{ aka-lang-cat | {{{ alc |}}} }}} }}}&lt;br /&gt;
| aka_lang_rtl    = {{{ aka_lang_rtl | {{{ aka-lang-rtl | {{{ alr |}}} }}} }}}&lt;br /&gt;
&lt;br /&gt;
| wedge             = {{{ wedge | {{{ insert | {{{ extra |}}} }}} }}}&lt;br /&gt;
| wedge_lang        = {{{ wedge_lang | {{{ wedge-lang | {{{ insert_lang | {{{ insert-lang | {{{ extra_lang | {{{ extra-lang | {{{ wl |}}} }}} }}} }}} }}} }}} }}}&lt;br /&gt;
| wedge_lang_italic = {{{ wedge_lang_italic | {{{ wedge-lang-italic | {{{ insert_lang_italic | {{{ insert-lang-italic | {{{ extra_lang_italic | {{{ extra-lang-italic | {{{ wli |}}} }}} }}} }}} }}} }}} }}}&lt;br /&gt;
| wedge_lang_nocat  = {{{ wedge_lang_nocat | {{{ wedge-lang_nocat | {{{ insert_lang_nocat | {{{ insert-lang-nocat | {{{ extra_lang_nocat | {{{ extra-lang-nocat | {{{ wlnc |}}} }}} }}} }}} }}} }}} }}}&lt;br /&gt;
| wedge_lang_size   = {{{ wedge_lang_size | {{{ wedge-lang-size | {{{ insert_lang_size | {{{ insert-lang-size | {{{ extra_lang_size | {{{ extra-lang-size | {{{ wls |}}} }}} }}} }}} }}} }}} }}}&lt;br /&gt;
| wedge_lang_cat    = {{{ wedge_lang_cat | {{{ wedge-lang-cat | {{{ insert_lang_cat | {{{ insert-lang-cat | {{{ extra_lang_cat | {{{ extra-lang-cat | {{{ wlc |}}} }}} }}} }}} }}} }}} }}}&lt;br /&gt;
| wedge_lang_rtl    = {{{ wedge_lang_rtl | {{{ wedge-lang-rtl | {{{ insert_lang_rtl | {{{ insert-lang-rtl | {{{ extra_lang_rtl | {{{ extra-lang-rtl | {{{ wlr |}}} }}} }}} }}} }}} }}} }}}&lt;br /&gt;
&lt;br /&gt;
| desc_first_letter_case = {{{ desc_first_letter_case | {{{ desc-first-letter-case | {{{ desc_case | {{{ desc-case | {{{ case | {{{ dflc |}}} }}} }}} }}} }}} }}}&lt;br /&gt;
&lt;br /&gt;
| only     = {{{ only |}}}&lt;br /&gt;
| prefer   = {{{ prefer |}}}&lt;br /&gt;
| fallback = {{{ fallback |}}}&lt;br /&gt;
&lt;br /&gt;
| desc_lang_italic = {{{ desc_lang_italic | {{{ desc-lang-italic | {{{ dli |}}} }}} }}}&lt;br /&gt;
| desc_lang_nocat  = {{{ desc_lang_nocat | {{{ desc-lang-nocat | {{{ dlnc |}}} }}} }}}&lt;br /&gt;
| desc_lang_size   = {{{ desc_lang_size | {{{ desc-lang-size | {{{ dls |}}} }}} }}}&lt;br /&gt;
| desc_lang_cat    = {{{ desc_lang_cat | {{{ desc-lang-cat | {{{ dlc |}}} }}} }}}&lt;br /&gt;
| desc_lang_rtl    = {{{ desc_lang_rtl | {{{ desc-lang-rtl | {{{ dlr |}}} }}} }}}&lt;br /&gt;
| desc_lang_no     = {{{ desc_lang_no | {{{ desc-lang-no | {{{ dlno |}}} }}} }}}&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:09:03 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Annotated_link</comments>
		</item>
		<item>
			<title>Template:Source parameter</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Source_parameter&amp;diff=1941&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Source_parameter&amp;diff=1941&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#ifeq:{{SAFESUBST:&amp;lt;noinclude /&amp;gt;Yesno|{{{nested|no}}}}}|yes||&amp;lt;{{{tag|code}}}&amp;gt;}}{{{{{{1&amp;lt;noinclude&amp;gt;|foo&amp;lt;/noinclude&amp;gt;}}}{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#ifeq:{{{2}}}|{{{2|}}} ||}}{{{2|}}}}}}{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#ifeq:{{SAFESUBST:&amp;lt;noinclude /&amp;gt;Yesno|{{{nested|no}}}}}|yes||&amp;lt;/{{{tag|code}}}&amp;gt;}}&amp;lt;noinclude&amp;gt; {{Documentation}} &amp;lt;!--    PLEASE ADD CATEGORIES AND INTERWIKIS    TO THE /doc SUBPAGE, THANKS --&amp;gt; &amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#ifeq:{{SAFESUBST:&amp;lt;noinclude /&amp;gt;Yesno|{{{nested|no}}}}}|yes||&amp;lt;{{{tag|code}}}&amp;gt;}}&amp;amp;#123;&amp;amp;#123;&amp;amp;#123;{{{1&amp;lt;noinclude&amp;gt;|foo&amp;lt;/noinclude&amp;gt;}}}{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#ifeq:{{{2}}}|{{{2|}}} |&amp;amp;#124;}}{{{2|}}}&amp;amp;#125;&amp;amp;#125;&amp;amp;#125;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#ifeq:{{SAFESUBST:&amp;lt;noinclude /&amp;gt;Yesno|{{{nested|no}}}}}|yes||&amp;lt;/{{{tag|code}}}&amp;gt;}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
   PLEASE ADD CATEGORIES AND INTERWIKIS&lt;br /&gt;
   TO THE /doc SUBPAGE, THANKS&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:08:24 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Source_parameter</comments>
		</item>
		<item>
			<title>Template:Param</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Param&amp;diff=1940&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Param&amp;diff=1940&amp;oldid=0</guid>
			<description>&lt;p&gt;Redirected page to &lt;a href=&quot;/wiki/Template:Source_parameter&quot; title=&quot;Template:Source parameter&quot;&gt;Template:Source parameter&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#REDIRECT [[Template:Source parameter]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
}}&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:08:08 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Param</comments>
		</item>
		<item>
			<title>Template:--</title>
			<link>https://feministwiki.org/w/index.php?title=Template:--&amp;diff=1939&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:--&amp;diff=1939&amp;oldid=0</guid>
			<description>&lt;p&gt;Redirected page to &lt;a href=&quot;/wiki/Template:Em_dash&quot; title=&quot;Template:Em dash&quot;&gt;Template:Em dash&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#REDIRECT [[Template:Em dash]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
{{R from template shortcut}}&lt;br /&gt;
}}&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 08:07:38 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:--</comments>
		</item>
		<item>
			<title>Template:Short description/doc</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Short_description/doc&amp;diff=1938&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Short_description/doc&amp;diff=1938&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;&amp;lt;noinclude&amp;gt; {{pp|small=yes}} &amp;lt;/noinclude&amp;gt; {{Documentation subpage}} &amp;lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see &lt;a href=&quot;https://en.wikipedia.org/wiki/Wikidata&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Wikidata&quot;&gt;Wikipedia:Wikidata&lt;/a&gt;) --&amp;gt; {{High risk}} {{cascade-protected template}} {{Warning|{{strong|Please do not use redirects or shortcuts for this template}}, as they cause problems with the &lt;a href=&quot;https://en.wikipedia.org/wiki/Shortdesc_helper&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Shortdesc helper&quot;&gt;short description editing gadget&lt;/a&gt; and other maintenance tools.}} {{Lua|Module:Check for...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{pp|small=yes}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Documentation subpage}}&lt;br /&gt;
&amp;lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&amp;gt;&lt;br /&gt;
{{High risk}}&lt;br /&gt;
{{cascade-protected template}}&lt;br /&gt;
{{Warning|{{strong|Please do not use redirects or shortcuts for this template}}, as they cause problems with the [[Wikipedia:Shortdesc helper|short description editing gadget]] and other maintenance tools.}}&lt;br /&gt;
{{Lua|Module:Check for unknown parameters|Module:String|Module:SDcat}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Template:Short description]]&amp;#039;&amp;#039;&amp;#039; is used to add a [[Wikipedia:Short description|short description]] (which can be edited from within Wikipedia) to a Wikipedia page. These descriptions may appear in Wikipedia searches and elsewhere, and [[WP:SDPURPOSE|help users identify the desired article]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
{{tld|Short description|&amp;#039;&amp;#039;Write your short description here&amp;#039;&amp;#039;}}&lt;br /&gt;
&lt;br /&gt;
This should be limited to about 40 characters, as explained at [[WP:SDFORMAT]], along with the other guidance at [[WP:SDCONTENT]].&lt;br /&gt;
&lt;br /&gt;
If the page&amp;#039;s title is sufficiently descriptive that a [[WP:SDNONE|short description is not needed]], use the following:&lt;br /&gt;
&lt;br /&gt;
{{tld|Short description|none}}&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
{{TemplateData header|noheader=1}}&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;description&amp;quot;: {&lt;br /&gt;
		&amp;quot;en&amp;quot;: &amp;quot;Creates a short description for a Wikipedia page, which is displayed in search results and other locations.&amp;quot;,&lt;br /&gt;
		&amp;quot;es&amp;quot;: &amp;quot;Crea una breve descripción, para un artículo de Wikipedia, que se utiliza en el Editor Visual para proporcionar contexto en los wikilinks (wikienlaces).&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;params&amp;quot;: {&lt;br /&gt;
		&amp;quot;1&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Description&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;Descripción&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;The short description of the article or &amp;#039;none&amp;#039;. It should be limited to about 40 characters.&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;La descripción corta del artículo&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;example&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Endangered species of South American fish&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;La enciclopedia en línea que cualquiera puede editar&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;required&amp;quot;: true,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;content&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;2&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;No replace?&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;2&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Should be unused or &amp;#039;noreplace&amp;#039;. Templates with noreplace will not replace a short description defined by an earlier template. Mainly for use within transcluded templates.&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;Se anula una descripción corta si se transcluye.  Debe estar sin usar o  con &amp;#039;noreplace&amp;#039; (que significar no reemplazar).&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;example&amp;quot;: {&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;noreplace&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;autovalue&amp;quot;: &amp;quot;noreplace&amp;quot;,&lt;br /&gt;
			&amp;quot;suggestedvalues&amp;quot;: [&lt;br /&gt;
				&amp;quot;noreplace&amp;quot;&lt;br /&gt;
			]&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;pagetype&amp;quot;: {&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;The type of page. This puts it in the appropriate category - Things with short description. Normally unneeded, since handled through namespace detection.&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;El tipo de página. La coloca en la categoría apropiada - Cosas con descripción corta&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;example&amp;quot;: &amp;quot;Redirect, Disambiguation page&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;format&amp;quot;: &amp;quot;{{_|_ = _}}\n&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== About writing good short descriptions ==&lt;br /&gt;
This page is about the short description {{em|template}}; it does not provide guidelines for writing a good short description. If you plan to use this template, you should make sure you read and follow the detailed guidance at [[WP:HOWTOSD]]. General information can be found at [[Wikipedia:Short description]].&lt;br /&gt;
&lt;br /&gt;
== Template information ==&lt;br /&gt;
Eventually all articles should have a short description:&lt;br /&gt;
* by directly using this template, in which case the short description will be unique to the article&lt;br /&gt;
* transcluded in another template, such as a disambiguation template, where a generic short description is adequate for a large class of pages&lt;br /&gt;
* where the short description is assembled from data in an infobox&lt;br /&gt;
&lt;br /&gt;
Automatically generated descriptions within templates should set the second parameter as {{code|noreplace}} so they do not override any short descriptions specifically added to the transcluding article.&lt;br /&gt;
&lt;br /&gt;
Short descriptions are not normally needed for non-article pages, such as redirects, but can be added if useful.&lt;br /&gt;
&lt;br /&gt;
If the article title alone is sufficient to ensure reliable identification of the desired article, a null value of {{tnull|Short description|none}} may be used.&lt;br /&gt;
&lt;br /&gt;
Short descriptions do not necessarily serve the same function as the Wikidata description for an item and they do not have to be the same, but some overlap is expected in many cases. Some Wikidata descriptions may be unsuitable, and if imported must be checked for relevance, accuracy and fitness for purpose. Responsibility for such imports lies with the importer. {{crossref|(See also [[d:Help:Description|Wikidata:Help:Description]].)}}&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
At [[Oxygen therapy]], add the following at the very top of the article, above everything else:&lt;br /&gt;
* {{tld|Short description|Use of oxygen as medical treatment}}&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
For testing purposes, the display of this template can be enabled by adding a line to your [[Special:MyPage/common.css]]:&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;CSS&amp;quot; inline&amp;gt;.shortdescription { display:block !important; }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This can be easily removed or disabled when testing is finished.&lt;br /&gt;
&lt;br /&gt;
If you want to {{em|always}} see short descriptions, you may prefer a more utilitarian layout, such as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;CSS&amp;quot;&amp;gt;&lt;br /&gt;
.shortdescription {&lt;br /&gt;
  display:block !important;&lt;br /&gt;
  white-space: pre-wrap;&lt;br /&gt;
}&lt;br /&gt;
.shortdescription::before { &lt;br /&gt;
  content: &amp;quot;\A[Short description:\0020&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
.shortdescription::after { &lt;br /&gt;
  content: &amp;quot;]\A&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
There is a test version of this template available as [[Template:Short description/test]] which displays its text by default.&lt;br /&gt;
* {{tld|Short description/test}} displays the short description if supplied&lt;br /&gt;
* {{tld|Short description/test}} displays nothing if &amp;lt;code&amp;gt;none&amp;lt;/code&amp;gt; is supplied&lt;br /&gt;
* {{tld|Short description/test}} displays the description from Wikidata if &amp;lt;code&amp;gt;wikidata&amp;lt;/code&amp;gt; is supplied.&lt;br /&gt;
&lt;br /&gt;
Taking {{Q|Q1096878}} as an example:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{short description/test|Underwater diving where breathing is from equipment independent of the surface}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{short description/test|Underwater diving where breathing is from equipment independent of the surface }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{short description/test|none}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{short description/test|none}}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{short description/test|wikidata}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{short description/test|wikidata|qid=Q1096878}}&lt;br /&gt;
&lt;br /&gt;
===Pagetype parameter===&lt;br /&gt;
If {{param|Pagetype}} is &amp;#039;&amp;#039;&amp;#039;not&amp;#039;&amp;#039;&amp;#039; set, then this template adds the article to a category based on the namespace:&lt;br /&gt;
* {{clc|Articles with short description}}&lt;br /&gt;
* {{clc|Redirects with short description}} {{--}} for redirects in any namespace&lt;br /&gt;
&lt;br /&gt;
If {{param|Pagetype}} &amp;#039;&amp;#039;&amp;#039;is&amp;#039;&amp;#039;&amp;#039; set, then this template adds the article to a category matching the parameter. For example:&lt;br /&gt;
* {{cl|Redirects with short description}} {{--}} {{code|pagetype {{=}} Redirect }}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span class=&amp;quot;anchor&amp;quot; id=&amp;quot;Aliases&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;anchor&amp;quot; id=&amp;quot;No-aliases&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Redirects ==&lt;br /&gt;
&lt;br /&gt;
While there are currently &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[{{fullurl:Special:WhatLinksHere/Template:Short_description|hidetrans=1&amp;amp;hidelinks=1&amp;amp;limit=500}} redirects to this template]&amp;lt;/span&amp;gt;, {{Strong|they must not be used}}, for the reasons below:&lt;br /&gt;
&lt;br /&gt;
* Other templates and gadgets attempt to extract short descriptions from pages by explicitly searching for the {{tl|Short description}} template.&lt;br /&gt;
* For example, {{tl|Annotated link}} searches for the template in its uppercase &amp;quot;Short description&amp;quot; and lowercase form &amp;quot;short description&amp;quot;; either form is acceptable.&lt;br /&gt;
* Infoboxes often check the article for an existing short description template before setting thier own short description.&lt;br /&gt;
&lt;br /&gt;
See the related [[Wikipedia:Redirects for discussion/Log/2021 July 20#Aliases for Short description template|2021 RfD]].&lt;br /&gt;
&lt;br /&gt;
{{Strong|Do not}} start the template with a space: {{code|&amp;lt;nowiki&amp;gt; {{ Short description...&amp;lt;/nowiki&amp;gt;}} or use an underscore: {{code|&amp;lt;nowiki&amp;gt; {{Short_description...&amp;lt;/nowiki&amp;gt;}}. While these do create a valid short description, they will prevent searches for the {{code|&amp;lt;nowiki&amp;gt;{{Short description...&amp;lt;/nowiki&amp;gt;}} text.&lt;br /&gt;
&lt;br /&gt;
==Tracking categories==&lt;br /&gt;
* {{clc|Templates that generate short descriptions}}&lt;br /&gt;
* {{clc|Modules that create a short description}}&lt;br /&gt;
* {{clc|Short description matches Wikidata}}&lt;br /&gt;
* {{clc|Short description is different from Wikidata}}&lt;br /&gt;
* {{clc|Short description with empty Wikidata description}}&lt;br /&gt;
&lt;br /&gt;
== Maintenance categories ==&lt;br /&gt;
* {{clc|Pages using short description with unknown parameters}}&lt;br /&gt;
* {{clc|Articles with long short description}}&lt;br /&gt;
* {{clc|Pages with lower-case short description}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* {{tlx|Auto short description}}&lt;br /&gt;
* {{tlx|Annotated link}}&lt;br /&gt;
* {{tlx|laal}} – displays an article&amp;#039;s pagelinks alongside its short description&lt;br /&gt;
* [[Module:Is infobox in lead]]&lt;br /&gt;
* [[Wikipedia:Short descriptions]] – background information&lt;br /&gt;
* [[Wikipedia:WikiProject Short descriptions]] – project to add Short descriptions to all articles&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- Categories below this line, please; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
[[Category:Short description templates]]&lt;br /&gt;
[[Category:Templates that add a tracking category]]&lt;br /&gt;
[[Category:Templates that generate short descriptions]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 07:55:53 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Short_description/doc</comments>
		</item>
		<item>
			<title>Module:Transclusion count/data/C</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Transclusion_count/data/C&amp;diff=1937&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Transclusion_count/data/C&amp;diff=1937&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;return { [&amp;quot;C&amp;quot;] = 803000, [&amp;quot;C-Class&amp;quot;] = 17000, [&amp;quot;C-SPAN&amp;quot;] = 13000, [&amp;quot;C-cmn&amp;quot;] = 2800, [&amp;quot;C-pl&amp;quot;] = 51000, [&amp;quot;C.&amp;quot;] = 354000, [&amp;quot;CAN&amp;quot;] = 20000, [&amp;quot;CANelec&amp;quot;] = 18000, [&amp;quot;CANelec/gain&amp;quot;] = 3500, [&amp;quot;CANelec/hold&amp;quot;] = 6800, [&amp;quot;CANelec/source&amp;quot;] = 11000, [&amp;quot;CANelec/top&amp;quot;] = 9100, [&amp;quot;CANelec/total&amp;quot;] = 9600, [&amp;quot;CAS&amp;quot;] = 3800, [&amp;quot;CAS_Registry_Number&amp;quot;] = 3800, [&amp;quot;CBB_Yearly_Record_End&amp;quot;] = 3500, [&amp;quot;CBB_Yearly_Record_Entry&amp;quot;] = 3600, [&amp;quot;CBB_Yearly_Record_Start&amp;quot;] = 3400, [&amp;quot;CBB_Yearly_Record_Subhead&amp;quot;] = 4200...&amp;quot;&lt;/p&gt;
&lt;a href=&quot;https://feministwiki.org/w/index.php?title=Module:Transclusion_count/data/C&amp;amp;diff=1937&quot;&gt;Show changes&lt;/a&gt;</description>
			<pubDate>Fri, 25 Sep 2026 07:48:55 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Template:Protected due to vandalism</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Protected_due_to_vandalism&amp;diff=1936&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Protected_due_to_vandalism&amp;diff=1936&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;&amp;lt;includeonly&amp;gt;{{#invoke:Protected page|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt; {{documentation}} &amp;lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&amp;gt; &amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Protected page|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 07:47:26 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Protected_due_to_vandalism</comments>
		</item>
		<item>
			<title>Module:Message box/</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Message_box/&amp;diff=1935&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Message_box/&amp;diff=1935&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;require(&amp;#039;strict&amp;#039;) local getArgs local yesno = require(&amp;#039;Module:Yesno&amp;#039;) local lang = mw.language.getContentLanguage()  local CONFIG_MODULE = &amp;#039;Module:Message box/configuration&amp;#039; local DEMOSPACES = {talk = &amp;#039;tmbox&amp;#039;, image = &amp;#039;imbox&amp;#039;, file = &amp;#039;imbox&amp;#039;, category = &amp;#039;cmbox&amp;#039;, article = &amp;#039;ambox&amp;#039;, main = &amp;#039;ambox&amp;#039;}  -------------------------------------------------------------------------------- -- Helper functions ---------------------------------------------------------------------------...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
local getArgs&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local lang = mw.language.getContentLanguage()&lt;br /&gt;
&lt;br /&gt;
local CONFIG_MODULE = &amp;#039;Module:Message box/configuration&amp;#039;&lt;br /&gt;
local DEMOSPACES = {talk = &amp;#039;tmbox&amp;#039;, image = &amp;#039;imbox&amp;#039;, file = &amp;#039;imbox&amp;#039;, category = &amp;#039;cmbox&amp;#039;, article = &amp;#039;ambox&amp;#039;, main = &amp;#039;ambox&amp;#039;}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function getTitleObject(...)&lt;br /&gt;
	-- Get the title object, passing the function through pcall&lt;br /&gt;
	-- in case we are over the expensive function count limit.&lt;br /&gt;
	local success, title = pcall(mw.title.new, ...)&lt;br /&gt;
	if success then&lt;br /&gt;
		return title&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function union(t1, t2)&lt;br /&gt;
	-- Returns the union of two arrays.&lt;br /&gt;
	local vals = {}&lt;br /&gt;
	for i, v in ipairs(t1) do&lt;br /&gt;
		vals[v] = true&lt;br /&gt;
	end&lt;br /&gt;
	for i, v in ipairs(t2) do&lt;br /&gt;
		vals[v] = true&lt;br /&gt;
	end&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for k in pairs(vals) do&lt;br /&gt;
		table.insert(ret, k)&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(ret)&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getArgNums(args, prefix)&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		local num = mw.ustring.match(tostring(k), &amp;#039;^&amp;#039; .. prefix .. &amp;#039;([1-9]%d*)$&amp;#039;)&lt;br /&gt;
		if num then&lt;br /&gt;
			table.insert(nums, tonumber(num))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(nums)&lt;br /&gt;
	return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Box class definition&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local MessageBox = {}&lt;br /&gt;
MessageBox.__index = MessageBox&lt;br /&gt;
&lt;br /&gt;
function MessageBox.new(boxType, args, cfg)&lt;br /&gt;
	args = args or {}&lt;br /&gt;
	local obj = {}&lt;br /&gt;
&lt;br /&gt;
	-- Set the title object and the namespace.&lt;br /&gt;
	obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
	-- Set the config for our box type.&lt;br /&gt;
	obj.cfg = cfg[boxType]&lt;br /&gt;
	if not obj.cfg then&lt;br /&gt;
		local ns = obj.title.namespace&lt;br /&gt;
		-- boxType is &amp;quot;mbox&amp;quot; or invalid input&lt;br /&gt;
		if args.demospace and args.demospace ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			-- implement demospace parameter of mbox&lt;br /&gt;
			local demospace = string.lower(args.demospace)&lt;br /&gt;
			if DEMOSPACES[demospace] then&lt;br /&gt;
				-- use template from DEMOSPACES&lt;br /&gt;
				obj.cfg = cfg[DEMOSPACES[demospace]]&lt;br /&gt;
			elseif string.find( demospace, &amp;#039;talk&amp;#039; ) then&lt;br /&gt;
				-- demo as a talk page&lt;br /&gt;
				obj.cfg = cfg.tmbox&lt;br /&gt;
			else&lt;br /&gt;
				-- default to ombox&lt;br /&gt;
				obj.cfg = cfg.ombox&lt;br /&gt;
			end&lt;br /&gt;
		elseif ns == 0 then&lt;br /&gt;
			obj.cfg = cfg.ambox -- main namespace&lt;br /&gt;
		elseif ns == 6 then&lt;br /&gt;
			obj.cfg = cfg.imbox -- file namespace&lt;br /&gt;
		elseif ns == 14 then&lt;br /&gt;
			obj.cfg = cfg.cmbox -- category namespace&lt;br /&gt;
		else&lt;br /&gt;
			local nsTable = mw.site.namespaces[ns]&lt;br /&gt;
			if nsTable and nsTable.isTalk then&lt;br /&gt;
				obj.cfg = cfg.tmbox -- any talk namespace&lt;br /&gt;
			else&lt;br /&gt;
				obj.cfg = cfg.ombox -- other namespaces or invalid input&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the arguments, and remove all blank arguments except for the ones&lt;br /&gt;
	-- listed in cfg.allowBlankParams.&lt;br /&gt;
	do&lt;br /&gt;
		local newArgs = {}&lt;br /&gt;
		for k, v in pairs(args) do&lt;br /&gt;
			if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				newArgs[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		for i, param in ipairs(obj.cfg.allowBlankParams or {}) do&lt;br /&gt;
			newArgs[param] = args[param]&lt;br /&gt;
		end&lt;br /&gt;
		obj.args = newArgs&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Define internal data structure.&lt;br /&gt;
	obj.categories = {}&lt;br /&gt;
	obj.classes = {}&lt;br /&gt;
	-- For lazy loading of [[Module:Category handler]].&lt;br /&gt;
	obj.hasCategories = false&lt;br /&gt;
&lt;br /&gt;
	return setmetatable(obj, MessageBox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:addCat(ns, cat, sort)&lt;br /&gt;
	if not cat then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	if sort then&lt;br /&gt;
		cat = string.format(&amp;#039;[[Category:%s|%s]]&amp;#039;, cat, sort)&lt;br /&gt;
	else&lt;br /&gt;
		cat = string.format(&amp;#039;[[Category:%s]]&amp;#039;, cat)&lt;br /&gt;
	end&lt;br /&gt;
	self.hasCategories = true&lt;br /&gt;
	self.categories[ns] = self.categories[ns] or {}&lt;br /&gt;
	table.insert(self.categories[ns], cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:addClass(class)&lt;br /&gt;
	if not class then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(self.classes, class)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setParameters()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	-- Get type data.&lt;br /&gt;
	self.type = args.type&lt;br /&gt;
	local typeData = cfg.types[self.type]&lt;br /&gt;
	self.invalidTypeError = cfg.showInvalidTypeError&lt;br /&gt;
		and self.type&lt;br /&gt;
		and not typeData&lt;br /&gt;
	typeData = typeData or cfg.types[cfg.default]&lt;br /&gt;
	self.typeClass = typeData.class&lt;br /&gt;
	self.typeImage = typeData.image&lt;br /&gt;
	self.typeImageNeedsLink = typeData.imageNeedsLink&lt;br /&gt;
&lt;br /&gt;
	-- Find if the box has been wrongly substituted.&lt;br /&gt;
	self.isSubstituted = cfg.substCheck and args.subst == &amp;#039;SUBST&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	-- Find whether we are using a small message box.&lt;br /&gt;
	self.isSmall = cfg.allowSmall and (&lt;br /&gt;
		cfg.smallParam and args.small == cfg.smallParam&lt;br /&gt;
		or not cfg.smallParam and yesno(args.small)&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
	-- Set the below row.&lt;br /&gt;
	self.below = cfg.below and args.below&lt;br /&gt;
	&lt;br /&gt;
	-- Add attributes, classes and styles.&lt;br /&gt;
	self.id = args.id&lt;br /&gt;
	self.name = args.name&lt;br /&gt;
	if self.name then&lt;br /&gt;
		self:addClass(&amp;#039;box-&amp;#039; .. string.gsub(self.name,&amp;#039; &amp;#039;,&amp;#039;_&amp;#039;))&lt;br /&gt;
	end&lt;br /&gt;
	if yesno(args.plainlinks) ~= false then&lt;br /&gt;
		self:addClass(&amp;#039;plainlinks&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if self.below then&lt;br /&gt;
		self:addClass(&amp;#039;mbox-with-below&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	for _, class in ipairs(cfg.classes or {}) do&lt;br /&gt;
		self:addClass(class)&lt;br /&gt;
	end&lt;br /&gt;
	if self.isSmall then&lt;br /&gt;
		self:addClass(cfg.smallClass or &amp;#039;mbox-small&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	self:addClass(self.typeClass)&lt;br /&gt;
	self:addClass(args.class)&lt;br /&gt;
	self.style = args.style&lt;br /&gt;
	self.attrs = args.attrs&lt;br /&gt;
&lt;br /&gt;
	-- Set text style.&lt;br /&gt;
	self.textstyle = args.textstyle&lt;br /&gt;
&lt;br /&gt;
	-- Set image classes.&lt;br /&gt;
	self.imageRightClass = args.imagerightclass or args.imageclass&lt;br /&gt;
	self.imageLeftClass = args.imageleftclass or args.imageclass&lt;br /&gt;
&lt;br /&gt;
	-- Find if we are on the template page or not. This functionality is only&lt;br /&gt;
	-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory&lt;br /&gt;
	-- and cfg.templateCategoryRequireName are set.&lt;br /&gt;
	self.useCollapsibleTextFields = cfg.useCollapsibleTextFields&lt;br /&gt;
	if self.useCollapsibleTextFields&lt;br /&gt;
		or cfg.templateCategory&lt;br /&gt;
		and cfg.templateCategoryRequireName&lt;br /&gt;
	then&lt;br /&gt;
		if self.name then&lt;br /&gt;
			local templateName = mw.ustring.match(&lt;br /&gt;
				self.name,&lt;br /&gt;
				&amp;#039;^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$&amp;#039;&lt;br /&gt;
			) or self.name&lt;br /&gt;
			templateName = &amp;#039;Template:&amp;#039; .. templateName&lt;br /&gt;
			self.templateTitle = getTitleObject(templateName)&lt;br /&gt;
		end&lt;br /&gt;
		self.isTemplatePage = self.templateTitle&lt;br /&gt;
			and mw.title.equals(self.title, self.templateTitle)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Process data for collapsible text fields. At the moment these are only&lt;br /&gt;
	-- used in {{ambox}}.&lt;br /&gt;
	if self.useCollapsibleTextFields then&lt;br /&gt;
		-- Get the self.issue value.&lt;br /&gt;
		if self.isSmall and args.smalltext then&lt;br /&gt;
			self.issue = args.smalltext&lt;br /&gt;
		else&lt;br /&gt;
			local sect&lt;br /&gt;
			if args.sect == &amp;#039;&amp;#039; then&lt;br /&gt;
				sect = &amp;#039;This &amp;#039; .. (cfg.sectionDefault or &amp;#039;page&amp;#039;)&lt;br /&gt;
			elseif type(args.sect) == &amp;#039;string&amp;#039; then&lt;br /&gt;
				sect = &amp;#039;This &amp;#039; .. args.sect&lt;br /&gt;
			end&lt;br /&gt;
			local issue = args.issue&lt;br /&gt;
			issue = type(issue) == &amp;#039;string&amp;#039; and issue ~= &amp;#039;&amp;#039; and issue or nil&lt;br /&gt;
			local text = args.text&lt;br /&gt;
			text = type(text) == &amp;#039;string&amp;#039; and text or nil&lt;br /&gt;
			local issues = {}&lt;br /&gt;
			table.insert(issues, sect)&lt;br /&gt;
			table.insert(issues, issue)&lt;br /&gt;
			table.insert(issues, text)&lt;br /&gt;
			self.issue = table.concat(issues, &amp;#039; &amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Get the self.talk value.&lt;br /&gt;
		local talk = args.talk&lt;br /&gt;
		-- Show talk links on the template page or template subpages if the talk&lt;br /&gt;
		-- parameter is blank.&lt;br /&gt;
		if talk == &amp;#039;&amp;#039;&lt;br /&gt;
			and self.templateTitle&lt;br /&gt;
			and (&lt;br /&gt;
				mw.title.equals(self.templateTitle, self.title)&lt;br /&gt;
				or self.title:isSubpageOf(self.templateTitle)&lt;br /&gt;
			)&lt;br /&gt;
		then&lt;br /&gt;
			talk = &amp;#039;#&amp;#039;&lt;br /&gt;
		elseif talk == &amp;#039;&amp;#039; then&lt;br /&gt;
			talk = nil&lt;br /&gt;
		end&lt;br /&gt;
		if talk then&lt;br /&gt;
			-- If the talk value is a talk page, make a link to that page. Else&lt;br /&gt;
			-- assume that it&amp;#039;s a section heading, and make a link to the talk&lt;br /&gt;
			-- page of the current page with that section heading.&lt;br /&gt;
			local talkTitle = getTitleObject(talk)&lt;br /&gt;
			local talkArgIsTalkPage = true&lt;br /&gt;
			if not talkTitle or not talkTitle.isTalkPage then&lt;br /&gt;
				talkArgIsTalkPage = false&lt;br /&gt;
				talkTitle = getTitleObject(&lt;br /&gt;
					self.title.text,&lt;br /&gt;
					mw.site.namespaces[self.title.namespace].talk.id&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
			if talkTitle and talkTitle.exists then&lt;br /&gt;
                local talkText&lt;br /&gt;
                if self.isSmall then&lt;br /&gt;
                    local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. (talk == &amp;#039;#&amp;#039; and &amp;#039;&amp;#039; or &amp;#039;#&amp;#039;) .. talk)&lt;br /&gt;
                    talkText = string.format(&amp;#039;([[%s|talk]])&amp;#039;, talkLink)&lt;br /&gt;
                else&lt;br /&gt;
                    talkText = &amp;#039;Relevant discussion may be found on&amp;#039;&lt;br /&gt;
                    if talkArgIsTalkPage then&lt;br /&gt;
                        talkText = string.format(&lt;br /&gt;
                            &amp;#039;%s [[%s|%s]].&amp;#039;,&lt;br /&gt;
                            talkText,&lt;br /&gt;
                            talk,&lt;br /&gt;
                            talkTitle.prefixedText&lt;br /&gt;
                        )&lt;br /&gt;
                    else&lt;br /&gt;
                        talkText = string.format(&lt;br /&gt;
                            &amp;#039;%s the [[%s&amp;#039; .. (talk == &amp;#039;#&amp;#039; and &amp;#039;&amp;#039; or &amp;#039;#&amp;#039;) .. &amp;#039;%s|talk page]].&amp;#039;,&lt;br /&gt;
                            talkText,&lt;br /&gt;
                            talkTitle.prefixedText,&lt;br /&gt;
                            talk&lt;br /&gt;
                        )&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
				self.talk = talkText&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Get other values.&lt;br /&gt;
		self.fix = args.fix ~= &amp;#039;&amp;#039; and args.fix or nil&lt;br /&gt;
		local date&lt;br /&gt;
		if args.date and args.date ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			date = args.date&lt;br /&gt;
		elseif args.date == &amp;#039;&amp;#039; and self.isTemplatePage then&lt;br /&gt;
			date = lang:formatDate(&amp;#039;F Y&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		if date then&lt;br /&gt;
			self.date = string.format(&amp;quot; &amp;lt;span class=&amp;#039;date-container&amp;#039;&amp;gt;&amp;lt;i&amp;gt;(&amp;lt;span class=&amp;#039;date&amp;#039;&amp;gt;%s&amp;lt;/span&amp;gt;)&amp;lt;/i&amp;gt;&amp;lt;/span&amp;gt;&amp;quot;, date)&lt;br /&gt;
		end&lt;br /&gt;
		self.info = args.info&lt;br /&gt;
		if yesno(args.removalnotice) then&lt;br /&gt;
			self.removalNotice = cfg.removalNotice&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the non-collapsible text field. At the moment this is used by all box&lt;br /&gt;
	-- types other than ambox, and also by ambox when small=yes.&lt;br /&gt;
	if self.isSmall then&lt;br /&gt;
		self.text = args.smalltext or args.text&lt;br /&gt;
	else&lt;br /&gt;
		self.text = args.text&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- General image settings.&lt;br /&gt;
	self.imageCellDiv = not self.isSmall and cfg.imageCellDiv&lt;br /&gt;
	self.imageEmptyCell = cfg.imageEmptyCell&lt;br /&gt;
&lt;br /&gt;
	-- Left image settings.&lt;br /&gt;
	local imageLeft = self.isSmall and args.smallimage or args.image&lt;br /&gt;
	if cfg.imageCheckBlank and imageLeft ~= &amp;#039;blank&amp;#039; and imageLeft ~= &amp;#039;none&amp;#039;&lt;br /&gt;
		or not cfg.imageCheckBlank and imageLeft ~= &amp;#039;none&amp;#039;&lt;br /&gt;
	then&lt;br /&gt;
		self.imageLeft = imageLeft&lt;br /&gt;
		if not imageLeft then&lt;br /&gt;
			local imageSize = self.isSmall&lt;br /&gt;
				and (cfg.imageSmallSize or &amp;#039;30x30px&amp;#039;)&lt;br /&gt;
				or &amp;#039;40x40px&amp;#039;&lt;br /&gt;
			self.imageLeft = string.format(&amp;#039;[[File:%s|%s%s|alt=]]&amp;#039;, self.typeImage&lt;br /&gt;
				or &amp;#039;Information icon4.svg&amp;#039;, imageSize, self.typeImageNeedsLink and &amp;quot;&amp;quot; or &amp;quot;|link=&amp;quot; )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Right image settings.&lt;br /&gt;
	local imageRight = self.isSmall and args.smallimageright or args.imageright&lt;br /&gt;
	if not (cfg.imageRightNone and imageRight == &amp;#039;none&amp;#039;) then&lt;br /&gt;
		self.imageRight = imageRight&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- set templatestyles&lt;br /&gt;
	self.base_templatestyles = cfg.templatestyles&lt;br /&gt;
	self.templatestyles = args.templatestyles&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setMainspaceCategories()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	if not cfg.allowMainspaceCategories then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for _, prefix in ipairs{&amp;#039;cat&amp;#039;, &amp;#039;category&amp;#039;, &amp;#039;all&amp;#039;} do&lt;br /&gt;
		args[prefix .. &amp;#039;1&amp;#039;] = args[prefix]&lt;br /&gt;
		nums = union(nums, getArgNums(args, prefix))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- The following is roughly equivalent to the old {{Ambox/category}}.&lt;br /&gt;
	local date = args.date&lt;br /&gt;
	date = type(date) == &amp;#039;string&amp;#039; and date&lt;br /&gt;
	local preposition = &amp;#039;from&amp;#039;&lt;br /&gt;
	for _, num in ipairs(nums) do&lt;br /&gt;
		local mainCat = args[&amp;#039;cat&amp;#039; .. tostring(num)]&lt;br /&gt;
			or args[&amp;#039;category&amp;#039; .. tostring(num)]&lt;br /&gt;
		local allCat = args[&amp;#039;all&amp;#039; .. tostring(num)]&lt;br /&gt;
		mainCat = type(mainCat) == &amp;#039;string&amp;#039; and mainCat&lt;br /&gt;
		allCat = type(allCat) == &amp;#039;string&amp;#039; and allCat&lt;br /&gt;
		if mainCat and date and date ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			local catTitle = string.format(&amp;#039;%s %s %s&amp;#039;, mainCat, preposition, date)&lt;br /&gt;
			self:addCat(0, catTitle)&lt;br /&gt;
			catTitle = getTitleObject(&amp;#039;Category:&amp;#039; .. catTitle)&lt;br /&gt;
			if not catTitle or not catTitle.exists then&lt;br /&gt;
				self:addCat(0, &amp;#039;Articles with invalid date parameter in template&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		elseif mainCat and (not date or date == &amp;#039;&amp;#039;) then&lt;br /&gt;
			self:addCat(0, mainCat)&lt;br /&gt;
		end&lt;br /&gt;
		if allCat then&lt;br /&gt;
			self:addCat(0, allCat)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setTemplateCategories()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	-- Add template categories.&lt;br /&gt;
	if cfg.templateCategory then&lt;br /&gt;
		if cfg.templateCategoryRequireName then&lt;br /&gt;
			if self.isTemplatePage then&lt;br /&gt;
				self:addCat(10, cfg.templateCategory)&lt;br /&gt;
			end&lt;br /&gt;
		elseif not self.title.isSubpage then&lt;br /&gt;
			self:addCat(10, cfg.templateCategory)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add template error categories.&lt;br /&gt;
	if cfg.templateErrorCategory then&lt;br /&gt;
		local templateErrorCategory = cfg.templateErrorCategory&lt;br /&gt;
		local templateCat, templateSort&lt;br /&gt;
		if not self.name and not self.title.isSubpage then&lt;br /&gt;
			templateCat = templateErrorCategory&lt;br /&gt;
		elseif self.isTemplatePage then&lt;br /&gt;
			local paramsToCheck = cfg.templateErrorParamsToCheck or {}&lt;br /&gt;
			local count = 0&lt;br /&gt;
			for i, param in ipairs(paramsToCheck) do&lt;br /&gt;
				if not args[param] then&lt;br /&gt;
					count = count + 1&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if count &amp;gt; 0 then&lt;br /&gt;
				templateCat = templateErrorCategory&lt;br /&gt;
				templateSort = tostring(count)&lt;br /&gt;
			end&lt;br /&gt;
			if self.categoryNums and #self.categoryNums &amp;gt; 0 then&lt;br /&gt;
				templateCat = templateErrorCategory&lt;br /&gt;
				templateSort = &amp;#039;C&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		self:addCat(10, templateCat, templateSort)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setAllNamespaceCategories()&lt;br /&gt;
	-- Set categories for all namespaces.&lt;br /&gt;
	if self.invalidTypeError then&lt;br /&gt;
		local allSort = (self.title.namespace == 0 and &amp;#039;Main:&amp;#039; or &amp;#039;&amp;#039;) .. self.title.prefixedText&lt;br /&gt;
		self:addCat(&amp;#039;all&amp;#039;, &amp;#039;Wikipedia message box parameter needs fixing&amp;#039;, allSort)&lt;br /&gt;
	end&lt;br /&gt;
	if self.isSubstituted then&lt;br /&gt;
		self:addCat(&amp;#039;all&amp;#039;, &amp;#039;Pages with incorrectly substituted templates&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setCategories()&lt;br /&gt;
	if self.title.namespace == 0 then&lt;br /&gt;
		self:setMainspaceCategories()&lt;br /&gt;
	elseif self.title.namespace == 10 then&lt;br /&gt;
		self:setTemplateCategories()&lt;br /&gt;
	end&lt;br /&gt;
	self:setAllNamespaceCategories()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:renderCategories()&lt;br /&gt;
	if not self.hasCategories then&lt;br /&gt;
		-- No categories added, no need to pass them to Category handler so,&lt;br /&gt;
		-- if it was invoked, it would return the empty string.&lt;br /&gt;
		-- So we shortcut and return the empty string.&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	-- Convert category tables to strings and pass them through&lt;br /&gt;
	-- [[Module:Category handler]].&lt;br /&gt;
	return require(&amp;#039;Module:Category handler&amp;#039;)._main{&lt;br /&gt;
		main = table.concat(self.categories[0] or {}),&lt;br /&gt;
		template = table.concat(self.categories[10] or {}),&lt;br /&gt;
		all = table.concat(self.categories.all or {}),&lt;br /&gt;
		nocat = self.args.nocat,&lt;br /&gt;
		page = self.args.page&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:exportDiv()&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
	-- Add the subst check error.&lt;br /&gt;
	if self.isSubstituted and self.name then&lt;br /&gt;
		root:tag(&amp;#039;b&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;error&amp;#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&amp;#039;Template &amp;lt;code&amp;gt;%s[[Template:%s|%s]]%s&amp;lt;/code&amp;gt; has been incorrectly substituted.&amp;#039;,&lt;br /&gt;
				mw.text.nowiki(&amp;#039;{{&amp;#039;), self.name, self.name, mw.text.nowiki(&amp;#039;}}&amp;#039;)&lt;br /&gt;
			))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	root:wikitext(frame:extensionTag{&lt;br /&gt;
		name = &amp;#039;templatestyles&amp;#039;,&lt;br /&gt;
		args = { src = self.base_templatestyles },&lt;br /&gt;
	})&lt;br /&gt;
	-- Add support for a single custom templatestyles sheet. Undocumented as&lt;br /&gt;
	-- need should be limited and many templates using mbox are substed; we&lt;br /&gt;
	-- don&amp;#039;t want to spread templatestyles sheets around to arbitrary places&lt;br /&gt;
	if self.templatestyles then&lt;br /&gt;
		root:wikitext(frame:extensionTag{&lt;br /&gt;
			name = &amp;#039;templatestyles&amp;#039;,&lt;br /&gt;
			args = { src = self.templatestyles },&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Create the box.&lt;br /&gt;
	local mbox = root:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
	mbox:attr(&amp;#039;id&amp;#039;, self.id or nil)&lt;br /&gt;
	for i, class in ipairs(self.classes or {}) do&lt;br /&gt;
		mbox:addClass(class or nil)&lt;br /&gt;
	end&lt;br /&gt;
	mbox&lt;br /&gt;
		:cssText(self.style or nil)&lt;br /&gt;
&lt;br /&gt;
	if self.attrs then&lt;br /&gt;
		mbox:attr(self.attrs)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local flex_container&lt;br /&gt;
	if self.below then&lt;br /&gt;
		-- we need to wrap the flex components (`image(right)` and `text`) in their&lt;br /&gt;
		-- own container div to support the `below` parameter&lt;br /&gt;
		flex_container = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
		flex_container:addClass(&amp;#039;mbox-flex&amp;#039;)&lt;br /&gt;
	else&lt;br /&gt;
		-- the mbox itself is the parent, so we need no HTML flex_container&lt;br /&gt;
		flex_container = mw.html.create()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the left-hand image.&lt;br /&gt;
	if self.imageLeft then&lt;br /&gt;
		local imageLeftCell = flex_container:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mbox-image&amp;#039;)&lt;br /&gt;
		imageLeftCell&lt;br /&gt;
			:addClass(self.imageLeftClass)&lt;br /&gt;
			:wikitext(self.imageLeft or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the text.&lt;br /&gt;
	local textCell = flex_container:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mbox-text&amp;#039;)&lt;br /&gt;
	if self.useCollapsibleTextFields then&lt;br /&gt;
		-- The message box uses advanced text parameters that allow things to be&lt;br /&gt;
		-- collapsible. At the moment, only ambox uses this.&lt;br /&gt;
		textCell:cssText(self.textstyle or nil)&lt;br /&gt;
		local textCellDiv = textCell:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
		textCellDiv&lt;br /&gt;
			:addClass(&amp;#039;mbox-text-span&amp;#039;)&lt;br /&gt;
			:wikitext(self.issue or nil)&lt;br /&gt;
		if (self.talk or self.fix) then&lt;br /&gt;
			textCellDiv:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;hide-when-compact&amp;#039;)&lt;br /&gt;
				:wikitext(self.talk and (&amp;#039; &amp;#039; .. self.talk) or nil)&lt;br /&gt;
				:wikitext(self.fix and (&amp;#039; &amp;#039; .. self.fix) or nil)&lt;br /&gt;
		end&lt;br /&gt;
		textCellDiv:wikitext(self.date and (&amp;#039; &amp;#039; .. self.date) or nil)&lt;br /&gt;
		if self.info and not self.isSmall then&lt;br /&gt;
			textCellDiv&lt;br /&gt;
				:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;hide-when-compact&amp;#039;)&lt;br /&gt;
				:wikitext(self.info and (&amp;#039; &amp;#039; .. self.info) or nil)&lt;br /&gt;
		end&lt;br /&gt;
		if self.removalNotice then&lt;br /&gt;
			textCellDiv:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;hide-when-compact&amp;#039;)&lt;br /&gt;
				:tag(&amp;#039;i&amp;#039;)&lt;br /&gt;
					:wikitext(string.format(&amp;quot; (%s)&amp;quot;, self.removalNotice))&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- Default text formatting - anything goes.&lt;br /&gt;
		textCell&lt;br /&gt;
			:cssText(self.textstyle or nil)&lt;br /&gt;
			:wikitext(self.text or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the right-hand image.&lt;br /&gt;
	if self.imageRight then&lt;br /&gt;
		local imageRightCell = flex_container:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mbox-imageright&amp;#039;)&lt;br /&gt;
		imageRightCell&lt;br /&gt;
			:addClass(self.imageRightClass)&lt;br /&gt;
			:wikitext(self.imageRight or nil)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	mbox:node(flex_container)&lt;br /&gt;
&lt;br /&gt;
	-- Add the below row.&lt;br /&gt;
	if self.below then&lt;br /&gt;
		mbox:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;mbox-text mbox-below&amp;#039;)&lt;br /&gt;
			:cssText(self.textstyle or nil)&lt;br /&gt;
			:wikitext(self.below or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add error message for invalid type parameters.&lt;br /&gt;
	if self.invalidTypeError then&lt;br /&gt;
		root:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;mbox-invalid-type&amp;#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&amp;#039;This message box is using an invalid &amp;quot;type=%s&amp;quot; parameter and needs fixing.&amp;#039;,&lt;br /&gt;
				self.type or &amp;#039;&amp;#039;&lt;br /&gt;
			))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add categories.&lt;br /&gt;
	root:wikitext(self:renderCategories() or nil)&lt;br /&gt;
&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:export()&lt;br /&gt;
&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
	-- Add the subst check error.&lt;br /&gt;
	if self.isSubstituted and self.name then&lt;br /&gt;
		root:tag(&amp;#039;b&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;error&amp;#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&amp;#039;Template &amp;lt;code&amp;gt;%s[[Template:%s|%s]]%s&amp;lt;/code&amp;gt; has been incorrectly substituted.&amp;#039;,&lt;br /&gt;
				mw.text.nowiki(&amp;#039;{{&amp;#039;), self.name, self.name, mw.text.nowiki(&amp;#039;}}&amp;#039;)&lt;br /&gt;
			))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	root:wikitext(frame:extensionTag{&lt;br /&gt;
		name = &amp;#039;templatestyles&amp;#039;,&lt;br /&gt;
		args = { src = self.base_templatestyles },&lt;br /&gt;
	})&lt;br /&gt;
	-- Add support for a single custom templatestyles sheet. Undocumented as&lt;br /&gt;
	-- need should be limited and many templates using mbox are substed; we&lt;br /&gt;
	-- don&amp;#039;t want to spread templatestyles sheets around to arbitrary places&lt;br /&gt;
	if self.templatestyles then&lt;br /&gt;
		root:wikitext(frame:extensionTag{&lt;br /&gt;
			name = &amp;#039;templatestyles&amp;#039;,&lt;br /&gt;
			args = { src = self.templatestyles },&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Create the box table.&lt;br /&gt;
	local boxTable = root:tag(&amp;#039;table&amp;#039;)&lt;br /&gt;
	boxTable:attr(&amp;#039;id&amp;#039;, self.id or nil)&lt;br /&gt;
	for i, class in ipairs(self.classes or {}) do&lt;br /&gt;
		boxTable:addClass(class or nil)&lt;br /&gt;
	end&lt;br /&gt;
	boxTable&lt;br /&gt;
		:cssText(self.style or nil)&lt;br /&gt;
		:attr(&amp;#039;role&amp;#039;, &amp;#039;presentation&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	if self.attrs then&lt;br /&gt;
		boxTable:attr(self.attrs)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the left-hand image.&lt;br /&gt;
	local row = boxTable:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	if self.imageLeft then&lt;br /&gt;
		local imageLeftCell = row:tag(&amp;#039;td&amp;#039;):addClass(&amp;#039;mbox-image&amp;#039;)&lt;br /&gt;
		if self.imageCellDiv then&lt;br /&gt;
			-- If we are using a div, redefine imageLeftCell so that the image&lt;br /&gt;
			-- is inside it. Divs use style=&amp;quot;width: 52px;&amp;quot;, which limits the&lt;br /&gt;
			-- image width to 52px. If any images in a div are wider than that,&lt;br /&gt;
			-- they may overlap with the text or cause other display problems.&lt;br /&gt;
			imageLeftCell = imageLeftCell:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mbox-image-div&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		imageLeftCell&lt;br /&gt;
			:addClass(self.imageLeftClass)&lt;br /&gt;
			:wikitext(self.imageLeft or nil)&lt;br /&gt;
	elseif self.imageEmptyCell then&lt;br /&gt;
		-- Some message boxes define an empty cell if no image is specified, and&lt;br /&gt;
		-- some don&amp;#039;t. The old template code in templates where empty cells are&lt;br /&gt;
		-- specified gives the following hint: &amp;quot;No image. Cell with some width&lt;br /&gt;
		-- or padding necessary for text cell to have 100% width.&amp;quot;&lt;br /&gt;
		row:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;mbox-empty-cell&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the text.&lt;br /&gt;
	local textCell = row:tag(&amp;#039;td&amp;#039;):addClass(&amp;#039;mbox-text&amp;#039;)&lt;br /&gt;
	if self.useCollapsibleTextFields then&lt;br /&gt;
		-- The message box uses advanced text parameters that allow things to be&lt;br /&gt;
		-- collapsible. At the moment, only ambox uses this.&lt;br /&gt;
		textCell:cssText(self.textstyle or nil)&lt;br /&gt;
		local textCellDiv = textCell:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
		textCellDiv&lt;br /&gt;
			:addClass(&amp;#039;mbox-text-span&amp;#039;)&lt;br /&gt;
			:wikitext(self.issue or nil)&lt;br /&gt;
		if (self.talk or self.fix) then&lt;br /&gt;
			textCellDiv:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;hide-when-compact&amp;#039;)&lt;br /&gt;
				:wikitext(self.talk and (&amp;#039; &amp;#039; .. self.talk) or nil)&lt;br /&gt;
				:wikitext(self.fix and (&amp;#039; &amp;#039; .. self.fix) or nil)&lt;br /&gt;
		end&lt;br /&gt;
		textCellDiv:wikitext(self.date and (&amp;#039; &amp;#039; .. self.date) or nil)&lt;br /&gt;
		if self.info and not self.isSmall then&lt;br /&gt;
			textCellDiv&lt;br /&gt;
				:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;hide-when-compact&amp;#039;)&lt;br /&gt;
				:wikitext(self.info and (&amp;#039; &amp;#039; .. self.info) or nil)&lt;br /&gt;
		end&lt;br /&gt;
		if self.removalNotice then&lt;br /&gt;
			textCellDiv:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;hide-when-compact&amp;#039;)&lt;br /&gt;
				:tag(&amp;#039;i&amp;#039;)&lt;br /&gt;
					:wikitext(string.format(&amp;quot; (%s)&amp;quot;, self.removalNotice))&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- Default text formatting - anything goes.&lt;br /&gt;
		textCell&lt;br /&gt;
			:cssText(self.textstyle or nil)&lt;br /&gt;
			:wikitext(self.text or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the right-hand image.&lt;br /&gt;
	if self.imageRight then&lt;br /&gt;
		local imageRightCell = row:tag(&amp;#039;td&amp;#039;):addClass(&amp;#039;mbox-imageright&amp;#039;)&lt;br /&gt;
		if self.imageCellDiv then&lt;br /&gt;
			-- If we are using a div, redefine imageRightCell so that the image&lt;br /&gt;
			-- is inside it.&lt;br /&gt;
			imageRightCell = imageRightCell:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mbox-image-div&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		imageRightCell&lt;br /&gt;
			:addClass(self.imageRightClass)&lt;br /&gt;
			:wikitext(self.imageRight or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the below row.&lt;br /&gt;
	if self.below then&lt;br /&gt;
		boxTable:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
				:attr(&amp;#039;colspan&amp;#039;, self.imageRight and &amp;#039;3&amp;#039; or &amp;#039;2&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;mbox-text&amp;#039;)&lt;br /&gt;
				:cssText(self.textstyle or nil)&lt;br /&gt;
				:wikitext(self.below or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add error message for invalid type parameters.&lt;br /&gt;
	if self.invalidTypeError then&lt;br /&gt;
		root:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;mbox-invalid-type&amp;#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&amp;#039;This message box is using an invalid &amp;quot;type=%s&amp;quot; parameter and needs fixing.&amp;#039;,&lt;br /&gt;
				self.type or &amp;#039;&amp;#039;&lt;br /&gt;
			))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add categories.&lt;br /&gt;
	root:wikitext(self:renderCategories() or nil)&lt;br /&gt;
&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Exports&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local p, mt = {}, {}&lt;br /&gt;
&lt;br /&gt;
function p._exportClasses()&lt;br /&gt;
	-- For testing.&lt;br /&gt;
	return {&lt;br /&gt;
		MessageBox = MessageBox&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(boxType, args, cfgTables)&lt;br /&gt;
	local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))&lt;br /&gt;
	box:setParameters()&lt;br /&gt;
	box:setCategories()&lt;br /&gt;
	-- DIV MIGRATION CONDITIONAL&lt;br /&gt;
	if box.cfg.div_structure then&lt;br /&gt;
		return box:exportDiv()&lt;br /&gt;
	end&lt;br /&gt;
	-- END DIV MIGRATION CONDITIONAL&lt;br /&gt;
	return box:export()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function mt.__index(t, k)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		if not getArgs then&lt;br /&gt;
			getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
		end&lt;br /&gt;
		return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return setmetatable(p, mt)&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 07:44:54 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:Documentation/</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Documentation/&amp;diff=1934&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Documentation/&amp;diff=1934&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;-- This module implements {{documentation}}.  -- Get required modules. local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs  -- Get the config table. local cfg = mw.loadData(&amp;#039;Module:Documentation/config&amp;#039;)  local p = {}  -- Often-used functions. local ugsub = mw.ustring.gsub local format = mw.ustring.format  ---------------------------------------------------------------------------- -- Helper functions -- -- These are defined as local functions, but are made available in...&amp;quot;&lt;/p&gt;
&lt;a href=&quot;https://feministwiki.org/w/index.php?title=Module:Documentation/&amp;amp;diff=1934&quot;&gt;Show changes&lt;/a&gt;</description>
			<pubDate>Fri, 25 Sep 2026 07:42:53 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Template:Module link expanded</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Module_link_expanded&amp;diff=1933&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Module_link_expanded&amp;diff=1933&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;&amp;lt;includeonly&amp;gt;&amp;lt;code&amp;gt;{{{{{{{|safesubst:}}}#invoke:Separated entries|main|[[Module:{{{1}}}{{{section|}}}|#invoke:{{{1}}}]]|{{{2|&amp;#039;&amp;#039;function&amp;#039;&amp;#039;}}}|separator=|}}}}&amp;lt;/code&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&amp;gt;&amp;lt;/noinclude&amp;gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;code&amp;gt;&amp;amp;#123;&amp;amp;#123;{{{{{|safesubst:}}}#invoke:Separated entries|main|[[Module:{{{1}}}{{{section|}}}|#invoke:{{{1}}}]]|{{{2|&amp;#039;&amp;#039;function&amp;#039;&amp;#039;}}}|separator=&amp;amp;#124;}}&amp;amp;#125;&amp;amp;#125;&amp;lt;/code&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 07:41:04 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Module_link_expanded</comments>
		</item>
		<item>
			<title>Template:Mlx</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Mlx&amp;diff=1932&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Mlx&amp;diff=1932&amp;oldid=0</guid>
			<description>&lt;p&gt;Redirected page to &lt;a href=&quot;/wiki/Template:Module_link_expanded&quot; title=&quot;Template:Module link expanded&quot;&gt;Template:Module link expanded&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#REDIRECT [[Template:Module link expanded]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
}}&lt;/div&gt;</description>
			<pubDate>Fri, 25 Sep 2026 07:40:48 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Mlx</comments>
		</item>
		<item>
			<title>Module:Transclusion count/data/P</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Transclusion_count/data/P&amp;diff=1931&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Transclusion_count/data/P&amp;diff=1931&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;return { [&amp;quot;P&amp;quot;] = 6400, [&amp;quot;P-1&amp;quot;] = 4800, [&amp;quot;P-phrases&amp;quot;] = 4300, [&amp;quot;P.&amp;quot;] = 4000, [&amp;quot;P1&amp;quot;] = 234000, [&amp;quot;P2&amp;quot;] = 516000, [&amp;quot;PAGENAMEBASE&amp;quot;] = 1910000, [&amp;quot;PAGENAMEU&amp;quot;] = 55000, [&amp;quot;PAK&amp;quot;] = 3500, [&amp;quot;PD-US&amp;quot;] = 8600, [&amp;quot;PD-US-1923-abroad&amp;quot;] = 5400, [&amp;quot;PD-US-expired&amp;quot;] = 5000, [&amp;quot;PD-US-expired-abroad&amp;quot;] = 8700, [&amp;quot;PD-US-no_notice&amp;quot;] = 2300, [&amp;quot;PD-art&amp;quot;] = 3300, [&amp;quot;PD-ineligible-USonly&amp;quot;] = 7700, [&amp;quot;PD-notice&amp;quot;] = 26000, [&amp;quot;PD-old-100&amp;quot;] = 3200, [&amp;quot;PD-self&amp;quot;] = 31000, [&amp;quot;PD-textlogo&amp;quot;] = 6200, [&amp;quot;PDB_Gallery&amp;quot;] = 29...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;return {&lt;br /&gt;
[&amp;quot;P&amp;quot;] = 6400,&lt;br /&gt;
[&amp;quot;P-1&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;P-phrases&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;P.&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;P1&amp;quot;] = 234000,&lt;br /&gt;
[&amp;quot;P2&amp;quot;] = 516000,&lt;br /&gt;
[&amp;quot;PAGENAMEBASE&amp;quot;] = 1910000,&lt;br /&gt;
[&amp;quot;PAGENAMEU&amp;quot;] = 55000,&lt;br /&gt;
[&amp;quot;PAK&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;PD-US&amp;quot;] = 8600,&lt;br /&gt;
[&amp;quot;PD-US-1923-abroad&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;PD-US-expired&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;PD-US-expired-abroad&amp;quot;] = 8700,&lt;br /&gt;
[&amp;quot;PD-US-no_notice&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;PD-art&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;PD-ineligible-USonly&amp;quot;] = 7700,&lt;br /&gt;
[&amp;quot;PD-notice&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;PD-old-100&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;PD-self&amp;quot;] = 31000,&lt;br /&gt;
[&amp;quot;PD-textlogo&amp;quot;] = 6200,&lt;br /&gt;
[&amp;quot;PDB_Gallery&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;PER&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;PHI&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;PHL&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;PH_census&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;PLANTS&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;PM20&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;PMID&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;PNsign&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;POL&amp;quot;] = 68000,&lt;br /&gt;
[&amp;quot;POR&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;POTD/Day&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;POTD_archive&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;POTD_archive/footer&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;POTD_default&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;POTD_image&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;POTD_image1&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;POTD_image2&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;POTD_navigation&amp;quot;] = 7900,&lt;br /&gt;
[&amp;quot;POTD_texttitle&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;POTDlink&amp;quot;] = 8300,&lt;br /&gt;
[&amp;quot;POV&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;POW&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;PR/header&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;PR/heading&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;PRI&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;PRT&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;PR_link&amp;quot;] = 119000,&lt;br /&gt;
[&amp;quot;PS&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Pad&amp;quot;] = 51000,&lt;br /&gt;
[&amp;quot;Paddle_Steamer&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Page&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Page_list&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Page_name_sub&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;Page_needed&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Page_tabs&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Page_tabs/styles.css&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Pagelinks&amp;quot;] = 75000,&lt;br /&gt;
[&amp;quot;Pagelist&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Pagetype&amp;quot;] = 11400000,&lt;br /&gt;
[&amp;quot;Paid&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Pakistani_English&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Para&amp;quot;] = 2970000,&lt;br /&gt;
[&amp;quot;Parabr&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Paragraph_break&amp;quot;] = 2160000,&lt;br /&gt;
[&amp;quot;Param_value&amp;quot;] = 153000,&lt;br /&gt;
[&amp;quot;Param_value/styles.css&amp;quot;] = 153000,&lt;br /&gt;
[&amp;quot;Parameter&amp;quot;] = 3120000,&lt;br /&gt;
[&amp;quot;Parameter_names_example&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;ParmPart&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Partial&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Partial_minor_planet_designation&amp;quot;] = 5700,&lt;br /&gt;
[&amp;quot;Partly_done&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Party_color&amp;quot;] = 83000,&lt;br /&gt;
[&amp;quot;Party_color_cell&amp;quot;] = 6900,&lt;br /&gt;
[&amp;quot;Party_index_link&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Party_name_with_color&amp;quot;] = 7400,&lt;br /&gt;
[&amp;quot;Party_name_with_colour&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Party_shading/Democratic&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Party_shading/Independent&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Party_shading/Republican&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Party_stripe&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Pass&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Pb&amp;quot;] = 2130000,&lt;br /&gt;
[&amp;quot;Pd-notice&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Pedigree&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Peer_review/heading&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Peer_review_links&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Peer_review_tools&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;Penalty_shoot-out&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Pending&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;Pending_DYK_American_hooks&amp;quot;] = 5300,&lt;br /&gt;
[&amp;quot;Pending_DYK_biographies&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Pending_changes–protected&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Pending_film&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Pending_films_key&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Pengoal&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Penmiss&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Percentage&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Performance_key&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Performance_key/styles.css&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Period_color&amp;quot;] = 28000,&lt;br /&gt;
[&amp;quot;Period_end&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;Period_id&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Period_start&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Personal_attack_removed&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;PeruTasks&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Phab&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;Phabricator&amp;quot;] = 8400,&lt;br /&gt;
[&amp;quot;Phanerozoic_250px&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;PharmNavFootnote&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Philippine_census_reference&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Philippine_name&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Photo&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Photo_montage&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Photo_requested&amp;quot;] = 108000,&lt;br /&gt;
[&amp;quot;Photograph_requested&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Photomontage&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Photoreq&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Picture_of_the_day&amp;quot;] = 8300,&lt;br /&gt;
[&amp;quot;Pie_chart&amp;quot;] = 8500,&lt;br /&gt;
[&amp;quot;Pie_chart/styles.css&amp;quot;] = 8500,&lt;br /&gt;
[&amp;quot;Ping&amp;quot;] = 286000,&lt;br /&gt;
[&amp;quot;Pipe&amp;quot;] = 97000,&lt;br /&gt;
[&amp;quot;Place_name_disambiguation&amp;quot;] = 40000,&lt;br /&gt;
[&amp;quot;Plain_link&amp;quot;] = 120000,&lt;br /&gt;
[&amp;quot;Plain_list&amp;quot;] = 169000,&lt;br /&gt;
[&amp;quot;Plain_text&amp;quot;] = 109000,&lt;br /&gt;
[&amp;quot;Plainlink&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Plainlist&amp;quot;] = 378000,&lt;br /&gt;
[&amp;quot;Plainlist/styles.css&amp;quot;] = 3130000,&lt;br /&gt;
[&amp;quot;Player&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Player2&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Please_check_ISSN&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Plural&amp;quot;] = 108000,&lt;br /&gt;
[&amp;quot;Pluralize_from_text&amp;quot;] = 2890000,&lt;br /&gt;
[&amp;quot;Pn&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Poem_quote&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Poemquote&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Politician_icon&amp;quot;] = 35000,&lt;br /&gt;
[&amp;quot;Politician_icon2&amp;quot;] = 35000,&lt;br /&gt;
[&amp;quot;Politics_sidebar_below&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Politics_sidebar_title&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Polluted_category&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Polparty&amp;quot;] = 31000,&lt;br /&gt;
[&amp;quot;Pop_density&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Population_Germany&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Portal&amp;quot;] = 10800000,&lt;br /&gt;
[&amp;quot;Portal-Class&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;Portal-inline&amp;quot;] = 246000,&lt;br /&gt;
[&amp;quot;Portal_and_project&amp;quot;] = 263000,&lt;br /&gt;
[&amp;quot;Portal_bar&amp;quot;] = 186000,&lt;br /&gt;
[&amp;quot;Portal_box&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Portalbar&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;Portuguese_name&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Possible&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Possibly_empty_category&amp;quot;] = 70000,&lt;br /&gt;
[&amp;quot;Post-nominals&amp;quot;] = 63000,&lt;br /&gt;
[&amp;quot;Post-nominals/AUS&amp;quot;] = 8500,&lt;br /&gt;
[&amp;quot;Post-nominals/CAN&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Post-nominals/GBR&amp;quot;] = 33000,&lt;br /&gt;
[&amp;quot;Post-nominals/NZL&amp;quot;] = 4500,&lt;br /&gt;
[&amp;quot;Postnominals&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Pp&amp;quot;] = 8700,&lt;br /&gt;
[&amp;quot;Pp-book-cover&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;Pp-extended&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Pp-move&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Pp-pc&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Pp-protected&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Pp-semi&amp;quot;] = 6900,&lt;br /&gt;
[&amp;quot;Pp-semi-indef&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Pp-template&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;Pp-vandalism&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Precision&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Preferences&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Preferences/section&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;PresFoot&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;PresHead&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;PresRow&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Press&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Preview_warning&amp;quot;] = 488000,&lt;br /&gt;
[&amp;quot;Primary_source_inline&amp;quot;] = 8300,&lt;br /&gt;
[&amp;quot;Primary_sources&amp;quot;] = 33000,&lt;br /&gt;
[&amp;quot;Principal_rank&amp;quot;] = 655000,&lt;br /&gt;
[&amp;quot;Prisoner_of_war&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Prl&amp;quot;] = 119000,&lt;br /&gt;
[&amp;quot;ProCyclingStats&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;ProQuest&amp;quot;] = 36000,&lt;br /&gt;
[&amp;quot;Professional_wrestling_profiles&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Professional_wrestling_results_table&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Profit&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Progress_box&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Project-Class&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Project_other&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Promotional&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Proper_name&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Prose&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Protected_due_to_vandalism&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Protected_page&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Protected_page_maintenance_message&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Protection_padlock&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Proxy_block&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Pso&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Purge&amp;quot;] = 571000,&lt;br /&gt;
[&amp;quot;Purge_button&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Purge_button/styles.css&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Module:POTD_titletext&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Module:Page&amp;quot;] = 123000,&lt;br /&gt;
[&amp;quot;Module:PageLinks&amp;quot;] = 75000,&lt;br /&gt;
[&amp;quot;Module:Page_tabs&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Module:Pagelist&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Module:Pagetype&amp;quot;] = 19100000,&lt;br /&gt;
[&amp;quot;Module:Pagetype/config&amp;quot;] = 19100000,&lt;br /&gt;
[&amp;quot;Module:Pagetype/disambiguation&amp;quot;] = 13300000,&lt;br /&gt;
[&amp;quot;Module:Pagetype/rfd&amp;quot;] = 17200000,&lt;br /&gt;
[&amp;quot;Module:Pagetype/setindex&amp;quot;] = 13600000,&lt;br /&gt;
[&amp;quot;Module:Pagetype/softredirect&amp;quot;] = 17800000,&lt;br /&gt;
[&amp;quot;Module:ParameterCount&amp;quot;] = 1760000,&lt;br /&gt;
[&amp;quot;Module:Parameter_names_example&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Module:Parameter_validation&amp;quot;] = 166000,&lt;br /&gt;
[&amp;quot;Module:Parameter_validation/default_config&amp;quot;] = 166000,&lt;br /&gt;
[&amp;quot;Module:Party_name_with_color&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Module:Percentage&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Module:Person_date&amp;quot;] = 1790000,&lt;br /&gt;
[&amp;quot;Module:Person_height&amp;quot;] = 284000,&lt;br /&gt;
[&amp;quot;Module:Person_length&amp;quot;] = 7700,&lt;br /&gt;
[&amp;quot;Module:Person_weight&amp;quot;] = 85000,&lt;br /&gt;
[&amp;quot;Module:Phone_size&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Module:Photo_montage&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Module:Piechart&amp;quot;] = 8500,&lt;br /&gt;
[&amp;quot;Module:Piechart/cuts.json&amp;quot;] = 8500,&lt;br /&gt;
[&amp;quot;Module:Plain_text&amp;quot;] = 1890000,&lt;br /&gt;
[&amp;quot;Module:Pn&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Module:Political_party&amp;quot;] = 151000,&lt;br /&gt;
[&amp;quot;Module:Political_party/A&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Module:Political_party/B&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Module:Political_party/C&amp;quot;] = 49000,&lt;br /&gt;
[&amp;quot;Module:Political_party/D&amp;quot;] = 59000,&lt;br /&gt;
[&amp;quot;Module:Political_party/E&amp;quot;] = 7000,&lt;br /&gt;
[&amp;quot;Module:Political_party/F&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Module:Political_party/G&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Module:Political_party/H&amp;quot;] = 7600,&lt;br /&gt;
[&amp;quot;Module:Political_party/I&amp;quot;] = 63000,&lt;br /&gt;
[&amp;quot;Module:Political_party/J&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Module:Political_party/K&amp;quot;] = 6400,&lt;br /&gt;
[&amp;quot;Module:Political_party/L&amp;quot;] = 48000,&lt;br /&gt;
[&amp;quot;Module:Political_party/M&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Module:Political_party/N&amp;quot;] = 39000,&lt;br /&gt;
[&amp;quot;Module:Political_party/O&amp;quot;] = 7100,&lt;br /&gt;
[&amp;quot;Module:Political_party/P&amp;quot;] = 34000,&lt;br /&gt;
[&amp;quot;Module:Political_party/R&amp;quot;] = 58000,&lt;br /&gt;
[&amp;quot;Module:Political_party/S&amp;quot;] = 38000,&lt;br /&gt;
[&amp;quot;Module:Political_party/T&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Module:Political_party/U&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Module:Political_party/V&amp;quot;] = 8000,&lt;br /&gt;
[&amp;quot;Module:Political_party/W&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Module:Political_party/Y&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Module:Pop_density&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Module:PopulationFromWikidata&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Module:Portal&amp;quot;] = 11300000,&lt;br /&gt;
[&amp;quot;Module:Portal-inline&amp;quot;] = 251000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/a&amp;quot;] = 2060000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/aliases&amp;quot;] = 361000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/b&amp;quot;] = 3580000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/c&amp;quot;] = 2330000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/d&amp;quot;] = 121000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/e&amp;quot;] = 599000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/f&amp;quot;] = 1020000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/g&amp;quot;] = 710000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/h&amp;quot;] = 551000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/i&amp;quot;] = 1300000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/j&amp;quot;] = 350000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/k&amp;quot;] = 89000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/l&amp;quot;] = 537000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/m&amp;quot;] = 776000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/n&amp;quot;] = 844000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/o&amp;quot;] = 465000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/other&amp;quot;] = 272000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/p&amp;quot;] = 987000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/q&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Module:Portal/images/r&amp;quot;] = 443000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/s&amp;quot;] = 2010000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/t&amp;quot;] = 866000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/u&amp;quot;] = 1430000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/v&amp;quot;] = 350000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/w&amp;quot;] = 214000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/y&amp;quot;] = 39000,&lt;br /&gt;
[&amp;quot;Module:Portal/images/z&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;Module:Portal/styles.css&amp;quot;] = 10800000,&lt;br /&gt;
[&amp;quot;Module:Portal_bar&amp;quot;] = 207000,&lt;br /&gt;
[&amp;quot;Module:Portal_bar/styles.css&amp;quot;] = 206000,&lt;br /&gt;
[&amp;quot;Module:PrevalenceData&amp;quot;] = 8300,&lt;br /&gt;
[&amp;quot;Module:Professional_wrestling_profiles&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Module:Professional_wrestling_results_table&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Module:Progress_box&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Module:Progress_box/config&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Module:Progress_box/styles.css&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Module:Protect&amp;quot;] = 126000,&lt;br /&gt;
[&amp;quot;Module:Protected_edit_request&amp;quot;] = 60000,&lt;br /&gt;
[&amp;quot;Module:Protected_page&amp;quot;] = 75000,&lt;br /&gt;
[&amp;quot;Module:Protected_page/config&amp;quot;] = 75000,&lt;br /&gt;
[&amp;quot;Module:Protection_banner&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Module:Purge&amp;quot;] = 594000,&lt;br /&gt;
}&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:58:28 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Template:Infobox podcast</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Infobox_podcast&amp;diff=1930&amp;oldid=1768</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Infobox_podcast&amp;diff=1930&amp;oldid=1768</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:56, 22 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Main other|{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Short description&lt;/del&gt;|1=Podcast|2=noreplace}}}}&amp;lt;!--&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Main other|{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Short_description&lt;/ins&gt;|1=Podcast|2=noreplace}}}}&amp;lt;!--&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;---&amp;gt;{{Infobox&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;---&amp;gt;{{Infobox&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| italic title = {{{italic title|{{{italic_title|&amp;lt;noinclude&amp;gt;no&amp;lt;/noinclude&amp;gt;}}}}}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| italic title = {{{italic title|{{{italic_title|&amp;lt;noinclude&amp;gt;no&amp;lt;/noinclude&amp;gt;}}}}}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key feministwiki:diff:1.41:old-1768:rev-1930:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:56:43 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Infobox_podcast</comments>
		</item>
		<item>
			<title>Template:Short description</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Short_description&amp;diff=1929&amp;oldid=1894</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Short_description&amp;diff=1929&amp;oldid=1894</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:51, 22 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#ifeq:{{lc:{{{1|}}}}}|none|{{SHORTDESC:|{{{2|}}}}}&amp;lt;nowiki/&amp;gt;&amp;lt;!--Prevents whitespace issues when used with adjacent newlines--&amp;gt;|&amp;lt;div class=&amp;quot;shortdescription nomobile noexcerpt noprint searchaux&amp;quot; style=&amp;quot;display:none&amp;quot;&amp;gt;{{{1|}}}{{SHORTDESC:{{{1|}}}|{{{2|}}}}}&amp;lt;/div&amp;gt;}}&amp;lt;includeonly&amp;gt;{{#ifeq:{{{pagetype}}}|Disambiguation pages||{{#ifeq:{{pagetype |defaultns = all |user=exclude}}|exclude||{{#ifeq:{{#switch: {{NAMESPACENUMBER}} | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 100 | 101 | 118 | 119 | 828 | 829 | = exclude|#default=}}|exclude||[[Category:{{{pagetype|{{pagetype |defaultns = extended |plural=y}}}}} with short description]]}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;!-- Start tracking&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{#ifeq:{{lc:{{{1|}}}}}|none|{{SHORTDESC:|{{{2|}}}}}&amp;lt;nowiki/&amp;gt;&amp;lt;!--Prevents whitespace issues when used with adjacent newlines--&amp;gt;|&amp;lt;div class=&amp;quot;shortdescription nomobile noexcerpt noprint searchaux&amp;quot; style=&amp;quot;display:none&amp;quot;&amp;gt;{{{1|}}}{{SHORTDESC:{{{1|}}}|{{{2|}}}}}&amp;lt;/div&amp;gt;}}&amp;lt;includeonly&amp;gt;{{#ifeq:{{{pagetype}}}|Disambiguation pages||{{#ifeq:{{pagetype |defaultns = all |user=exclude}}|exclude||{{#ifeq:{{#switch: {{NAMESPACENUMBER}} | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 100 | 101 | 118 | 119 | 828 | 829 | = exclude|#default=}}|exclude||[[Category:{{{pagetype|{{pagetype |defaultns = extended |plural=y}}}}} with short description]]}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;!-- Start tracking&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--&amp;gt;{{#invoke:Check for unknown parameters|check|unknown={{Main other|[[Category:Pages using short description with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Short description]] with unknown parameter &quot;_VALUE_&quot;|ignoreblank=y| 1 | 2 | pagetype | bot |plural }}&amp;lt;!----&amp;gt;{{#ifexpr: {{#invoke:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Strong&lt;/del&gt;|len|{{{1|}}}}}&amp;gt;100 | [[Category:{{{pagetype|{{pagetype |defaultns = extended |plural=y}}}}} with long short description]]}}&amp;lt;!----&amp;gt;&amp;lt;includeonly&amp;gt;{{#if:{{{1|}}}||[[Category:Pages with empty short description]]}}&amp;lt;/includeonly&amp;gt;&amp;lt;!----&amp;gt;{{Short description/lowercasecheck|{{{1|}}}}}&amp;lt;!----&amp;gt;{{Main other |{{SDcat |sd={{{1|}}} }} }}&amp;lt;noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--&amp;gt;{{#invoke:Check for unknown parameters|check|unknown={{Main other|[[Category:Pages using short description with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Short description]] with unknown parameter &quot;_VALUE_&quot;|ignoreblank=y| 1 | 2 | pagetype | bot |plural }}&amp;lt;!--&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--&amp;gt;{{#ifexpr: {{#invoke:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;String&lt;/ins&gt;|len|{{{1|}}}}}&amp;gt;100 | [[Category:{{{pagetype|{{pagetype |defaultns = extended |plural=y}}}}} with long short description]]}}&amp;lt;!--&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--&amp;gt;&amp;lt;includeonly&amp;gt;{{#if:{{{1|}}}||[[Category:Pages with empty short description]]}}&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--&amp;gt;{{Short description/lowercasecheck|{{{1|}}}}}&amp;lt;!--  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--&amp;gt;{{Main other |{{SDcat |sd={{{1|}}} }} }}&amp;lt;noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Documentation}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Documentation}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key feministwiki:diff:1.41:old-1894:rev-1929:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:51:09 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Short_description</comments>
		</item>
		<item>
			<title>Module:Submit an edit request/config/doc</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Submit_an_edit_request/config/doc&amp;diff=1928&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Submit_an_edit_request/config/doc&amp;diff=1928&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;{{used in system}} This module provides configuration data for &lt;a href=&quot;/wiki/Module:Submit_an_edit_request&quot; title=&quot;Module:Submit an edit request&quot;&gt;Module:Submit an edit request&lt;/a&gt;. Please see the module comments for a description of what each message does.  &amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox|| &amp;lt;!-- Categories go here and interwikis go in Wikidata. --&amp;gt;  }}&amp;lt;/includeonly&amp;gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{used in system}}&lt;br /&gt;
This module provides configuration data for [[Module:Submit an edit request]]. Please see the module comments for a description of what each message does.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||&lt;br /&gt;
&amp;lt;!-- Categories go here and interwikis go in Wikidata. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:50:15 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:Submit an edit request/config</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Submit_an_edit_request/config&amp;diff=1927&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Submit_an_edit_request/config&amp;diff=1927&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;-- This module contains configuration data for &lt;a href=&quot;/wiki/Module:Submit_an_edit_request&quot; title=&quot;Module:Submit an edit request&quot;&gt;Module:Submit an edit request&lt;/a&gt;.  return {  -------------------------------------------------------------------------------- -- Messages --------------------------------------------------------------------------------  -- The default display value for edit requests. [&amp;#039;default-display-value&amp;#039;] = &amp;#039;Submit an edit request&amp;#039;,  -- The template that stores the edit request preload text [&amp;#039;preload-template&amp;#039;] = &amp;#039;Template:Submit an edi...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module contains configuration data for [[Module:Submit an edit request]].&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Messages&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- The default display value for edit requests.&lt;br /&gt;
[&amp;#039;default-display-value&amp;#039;] = &amp;#039;Submit an edit request&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
-- The template that stores the edit request preload text&lt;br /&gt;
[&amp;#039;preload-template&amp;#039;] = &amp;#039;Template:Submit an edit request/preload&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
-- The section heading that is generated when a user clicks on an edit request&lt;br /&gt;
-- link. $1 is the protection level text, e.g. &amp;quot;Semi-protected&amp;quot; or&lt;br /&gt;
-- &amp;quot;Template-protected&amp;quot;. $2 is the current date, in the format specified by the&lt;br /&gt;
-- &amp;quot;preload-title-date-format&amp;quot; message.&lt;br /&gt;
[&amp;#039;preload-title-text&amp;#039;] = &amp;#039;$1 edit request on $2&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
-- The date format for the automatically-generated section heading. The format&lt;br /&gt;
-- must be valid input for the #time parser function.&lt;br /&gt;
[&amp;#039;preload-title-date-format&amp;#039;] = &amp;#039;j F Y&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
-- What do do with the generated section header if another header with the same section already exists&lt;br /&gt;
-- $1 is the original section header. $2 is an automatically generated number, starting at 2 and increasing&lt;br /&gt;
-- by one until a unique header is found.&lt;br /&gt;
[&amp;#039;preload-title-dedup-suffix&amp;#039;] = &amp;#039;$1 ($2)&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
-- The names of pages (and their subpages) that make up the content of the main page for this wiki&lt;br /&gt;
[&amp;#039;main-page-content&amp;#039;] = {&lt;br /&gt;
	[&amp;#039;Wikipedia:Today\&amp;#039;s featured article&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;Template:In the news&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;Template:Did you know&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;Wikipedia:Selected anniversaries&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;Template:POTD protected&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;Wikipedia:Today\&amp;#039;s featured list&amp;#039;] = true&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- The page used to request changes to things on the Main Page.&lt;br /&gt;
[&amp;#039;main-page-request-page&amp;#039;] = &amp;#039;Wikipedia:Main Page/Errors&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
-- The page used to request edits to protected talk pages.&lt;br /&gt;
[&amp;#039;protected-talk-page-request-page&amp;#039;] = &amp;#039;Wikipedia:Requests for page protection/Edit&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
-- The names of the templates to be used as wrappers for the &amp;quot;link&amp;quot; and &amp;quot;button&amp;quot;&lt;br /&gt;
-- functions. These are passed as arguments to the &amp;quot;wrappers&amp;quot; option of&lt;br /&gt;
-- [[Module:Arguments]].&lt;br /&gt;
[&amp;#039;link-wrapper-template&amp;#039;] = &amp;#039;Template:Submit an edit request/link&amp;#039;,&lt;br /&gt;
[&amp;#039;button-wrapper-template&amp;#039;] = &amp;#039;Template:Submit an edit request&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Protection level config&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
protectionLevels = {&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- These settings are for the different protection levels which the module can&lt;br /&gt;
-- output edit request links for.&lt;br /&gt;
--&lt;br /&gt;
-- editintro:&lt;br /&gt;
-- The template to use as the edit intro users see when they click on an edit&lt;br /&gt;
-- request link.&lt;br /&gt;
--&lt;br /&gt;
-- request-template:&lt;br /&gt;
-- The name of the edit request template for that protection level. Do not&lt;br /&gt;
-- include the &amp;quot;Template:&amp;quot; text.&lt;br /&gt;
--&lt;br /&gt;
-- protectionlevel:&lt;br /&gt;
-- The name of the protection level, used for formatting the automatically-&lt;br /&gt;
-- generated section headings.&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
-- Semi-protection&lt;br /&gt;
semi = {&lt;br /&gt;
	editintro = &amp;#039;Template:Edit semi-protected/editintro&amp;#039;,&lt;br /&gt;
	requestTemplate = &amp;#039;edit semi-protected&amp;#039;,&lt;br /&gt;
	levelText = &amp;#039;Semi-protected&amp;#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- Extended-confirmed-protection&lt;br /&gt;
extended = {&lt;br /&gt;
	editintro = &amp;#039;Template:Edit extended-protected/editintro&amp;#039;,&lt;br /&gt;
	requestTemplate = &amp;#039;edit extended-protected&amp;#039;,&lt;br /&gt;
	levelText = &amp;#039;Extended-confirmed-protected&amp;#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- Template-protection&lt;br /&gt;
template = {&lt;br /&gt;
	editintro = &amp;#039;Template:Edit template-protected/editintro&amp;#039;,&lt;br /&gt;
	requestTemplate = &amp;#039;edit template-protected&amp;#039;,&lt;br /&gt;
	levelText = &amp;#039;Template-protected&amp;#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- Full protection&lt;br /&gt;
full = {&lt;br /&gt;
	editintro = &amp;#039;Template:Edit fully-protected/editintro&amp;#039;,&lt;br /&gt;
	requestTemplate = &amp;#039;edit fully-protected&amp;#039;,&lt;br /&gt;
	levelText = &amp;#039;Protected&amp;#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- Interface-protection&lt;br /&gt;
interface = {&lt;br /&gt;
	editintro = &amp;#039;Template:Edit interface-protected/editintro&amp;#039;,&lt;br /&gt;
	requestTemplate = &amp;#039;edit interface-protected&amp;#039;,&lt;br /&gt;
	levelText = &amp;#039;Interface-protected&amp;#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:49:49 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:Submit an edit request</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Submit_an_edit_request&amp;diff=1926&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Submit_an_edit_request&amp;diff=1926&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;-- This module implements {{Submit an edit request}}.  local CONFIG_MODULE = &amp;#039;Module:Submit an edit request/config&amp;#039;  -- Load necessary modules local mRedirect = require(&amp;#039;Module:Redirect&amp;#039;) local cfg = mw.loadData(CONFIG_MODULE) local effectiveProtectionLevel = require(&amp;#039;Module:Effective protection level&amp;#039;)._main local escape = require(&amp;quot;Module:String&amp;quot;)._escapePattern local lang = mw.language.getContentLanguage()  local p = {}  local validLevels = { 	semi = &amp;#039;semi&amp;#039;, 	extended...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements {{Submit an edit request}}.&lt;br /&gt;
&lt;br /&gt;
local CONFIG_MODULE = &amp;#039;Module:Submit an edit request/config&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- Load necessary modules&lt;br /&gt;
local mRedirect = require(&amp;#039;Module:Redirect&amp;#039;)&lt;br /&gt;
local cfg = mw.loadData(CONFIG_MODULE)&lt;br /&gt;
local effectiveProtectionLevel = require(&amp;#039;Module:Effective protection level&amp;#039;)._main&lt;br /&gt;
local escape = require(&amp;quot;Module:String&amp;quot;)._escapePattern&lt;br /&gt;
local lang = mw.language.getContentLanguage()&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local validLevels = {&lt;br /&gt;
	semi = &amp;#039;semi&amp;#039;,&lt;br /&gt;
	extended = &amp;#039;extended&amp;#039;,&lt;br /&gt;
	template = &amp;#039;template&amp;#039;,&lt;br /&gt;
	full = &amp;#039;full&amp;#039;,&lt;br /&gt;
	interface = &amp;#039;interface&amp;#039;,&lt;br /&gt;
	manual = &amp;#039;manual&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function message(key, ...)&lt;br /&gt;
	local params = {...}&lt;br /&gt;
	local msg = cfg[key]&lt;br /&gt;
	if #params &amp;lt; 1 then&lt;br /&gt;
		return msg&lt;br /&gt;
	else&lt;br /&gt;
		return mw.message.newRawMessage(msg):params(params):plain()&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function validateLevel(level)&lt;br /&gt;
	return level and validLevels[level] or &amp;#039;full&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getLevelInfo(level, field)&lt;br /&gt;
	return cfg.protectionLevels[level][field]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function resolveRedirect(page)&lt;br /&gt;
	return mRedirect.luaMain(page)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isProtected(page)&lt;br /&gt;
	local action = mw.title.new(page).exists and &amp;#039;edit&amp;#039; or &amp;#039;create&amp;#039;&lt;br /&gt;
	return effectiveProtectionLevel(action, page) ~= &amp;#039;*&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeRequestUrl(level, titleObj)&lt;br /&gt;
	titleObj = titleObj or mw.title.getCurrentTitle()&lt;br /&gt;
	local basePage = titleObj.basePageTitle.fullText&lt;br /&gt;
	if cfg[&amp;#039;main-page-content&amp;#039;][basePage] then&lt;br /&gt;
		return tostring(mw.uri.fullUrl(message(&amp;#039;main-page-request-page&amp;#039;)))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local talkPageName = titleObj.talkPageTitle&lt;br /&gt;
	if talkPageName == nil then&lt;br /&gt;
		return tostring(mw.uri.fullUrl(message(&amp;#039;protected-talk-page-request-page&amp;#039;)))&lt;br /&gt;
	end&lt;br /&gt;
	talkPageName = resolveRedirect(talkPageName.prefixedText)&lt;br /&gt;
	if isProtected(talkPageName) then&lt;br /&gt;
		return tostring(mw.uri.fullUrl(message(&amp;#039;protected-talk-page-request-page&amp;#039;)))&lt;br /&gt;
	end&lt;br /&gt;
	level = validateLevel(level)&lt;br /&gt;
	if level == &amp;#039;manual&amp;#039; then&lt;br /&gt;
		return tostring(mw.uri.fullUrl(talkPageName, {&lt;br /&gt;
			action = &amp;#039;edit&amp;#039;,&lt;br /&gt;
			section = &amp;#039;new&amp;#039;&lt;br /&gt;
		}))&lt;br /&gt;
	end&lt;br /&gt;
	local sectionname = message(&lt;br /&gt;
			&amp;#039;preload-title-text&amp;#039;,&lt;br /&gt;
			getLevelInfo(level, &amp;#039;levelText&amp;#039;),&lt;br /&gt;
			lang:formatDate(message(&amp;#039;preload-title-date-format&amp;#039;))&lt;br /&gt;
	)&lt;br /&gt;
	local content = mw.title.new(talkPageName):getContent()&lt;br /&gt;
	if content and content:find(&amp;quot;== *&amp;quot; .. escape(sectionname) .. &amp;quot; *==&amp;quot;) then&lt;br /&gt;
		local dedup = 2&lt;br /&gt;
		while true do&lt;br /&gt;
			local newname = message(&amp;quot;preload-title-dedup-suffix&amp;quot;, sectionname, dedup)&lt;br /&gt;
			if not content:find(&amp;quot;== *&amp;quot; .. escape(newname) .. &amp;quot; *==&amp;quot;) then&lt;br /&gt;
				sectionname = newname&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
			dedup = dedup + 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local url = mw.uri.fullUrl(talkPageName, {&lt;br /&gt;
		action = &amp;#039;edit&amp;#039;,&lt;br /&gt;
		editintro = getLevelInfo(level, &amp;#039;editintro&amp;#039;),&lt;br /&gt;
		preload = message(&amp;#039;preload-template&amp;#039;),&lt;br /&gt;
		preloadtitle = sectionname,&lt;br /&gt;
		section = &amp;#039;new&amp;#039;&lt;br /&gt;
	})&lt;br /&gt;
	url = tostring(url)&lt;br /&gt;
&lt;br /&gt;
	-- Add the preload parameters. @TODO: merge this into the mw.uri.fullUrl&lt;br /&gt;
	-- query table once [[phab:T93059]] is fixed.&lt;br /&gt;
	local function encodeParam(key, val)&lt;br /&gt;
		return string.format(&amp;#039;&amp;amp;%s=%s&amp;#039;, mw.uri.encode(key), mw.uri.encode(val))&lt;br /&gt;
	end&lt;br /&gt;
	url = url .. encodeParam(&amp;#039;preloadparams[]&amp;#039;, getLevelInfo(level, &amp;#039;requestTemplate&amp;#039;))&lt;br /&gt;
	url = url .. encodeParam(&amp;#039;preloadparams[]&amp;#039;, titleObj.prefixedText)&lt;br /&gt;
&lt;br /&gt;
	return url&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._link(args)&lt;br /&gt;
	return string.format(&lt;br /&gt;
		&amp;#039;&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[%s %s]&amp;lt;/span&amp;gt;&amp;#039;,&lt;br /&gt;
		p.makeRequestUrl(args.type),&lt;br /&gt;
		args.display or message(&amp;#039;default-display-value&amp;#039;)&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._button(args)&lt;br /&gt;
	return require(&amp;#039;Module:Clickable button&amp;#039;).main{&lt;br /&gt;
		[1] = args.display or message(&amp;#039;default-display-value&amp;#039;),&lt;br /&gt;
		url = p.makeRequestUrl(args.type),&lt;br /&gt;
		class = &amp;#039;mw-ui-progressive&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunc(func, wrapper)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {&lt;br /&gt;
			wrappers = {wrapper}&lt;br /&gt;
		})&lt;br /&gt;
		return func(args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.link = makeInvokeFunc(p._link, message(&amp;#039;link-wrapper-template&amp;#039;))&lt;br /&gt;
p.button = makeInvokeFunc(p._button, message(&amp;#039;button-wrapper-template&amp;#039;))&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:49:27 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:SDcat</title>
			<link>https://feministwiki.org/w/index.php?title=Module:SDcat&amp;diff=1925&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:SDcat&amp;diff=1925&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;--&lt;a href=&quot;/w/index.php?title=SDcat_Module_to_check_whether_local_short_description_matches_that_on_Wikidata_--&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;SDcat Module to check whether local short description matches that on Wikidata -- (page does not exist)&quot; rel=&quot;nofollow&quot;&gt;SDcat Module to check whether local short description matches that on Wikidata --&lt;/a&gt;  local p = {}  ------------------------------------------------------------------------------- -- setCat has the qid of a Wikidata entity passed as |qid= (it defaults to the associated qid of the current article if omitted) and the local short description passed as |sd= It returns a category if there is an associated Wikidata entity. It returns one of the following tracking categor...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[&lt;br /&gt;
SDcat&lt;br /&gt;
Module to check whether local short description matches that on Wikidata&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
--[[&lt;br /&gt;
setCat has the qid of a Wikidata entity passed as |qid=&lt;br /&gt;
(it defaults to the associated qid of the current article if omitted)&lt;br /&gt;
and the local short description passed as |sd=&lt;br /&gt;
It returns a category if there is an associated Wikidata entity.&lt;br /&gt;
It returns one of the following tracking categories, as appropriate:&lt;br /&gt;
* Category:Short description matches Wikidata (case-insensitive)&lt;br /&gt;
* Category:Short description is different from Wikidata&lt;br /&gt;
* Category:Short description with empty Wikidata description&lt;br /&gt;
For testing purposes, a link prefix |lp= may be set to &amp;quot;:&amp;quot; to make the categories visible.&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
-- function exported for use in other modules&lt;br /&gt;
-- (local short description, Wikidata entity-ID, link prefix)&lt;br /&gt;
p._setCat = function(sdesc, itemID, lp)&lt;br /&gt;
	if not mw.wikibase then return nil end&lt;br /&gt;
	if itemID == &amp;quot;&amp;quot; then itemID = nil end&lt;br /&gt;
	-- Wikidata description field&lt;br /&gt;
	local wdesc = (mw.wikibase.getDescription(itemID) or &amp;quot;&amp;quot;):lower()&lt;br /&gt;
	if wdesc == &amp;quot;&amp;quot; then&lt;br /&gt;
		return &amp;quot;[[&amp;quot; .. lp .. &amp;quot;Category:Short description with empty Wikidata description]]&amp;quot;&lt;br /&gt;
	elseif wdesc == sdesc then&lt;br /&gt;
		return &amp;quot;[[&amp;quot; .. lp .. &amp;quot;Category:Short description matches Wikidata]]&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;[[&amp;quot; .. lp .. &amp;quot;Category:Short description is different from Wikidata]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- function exported for call from #invoke&lt;br /&gt;
p.setCat = function(frame)&lt;br /&gt;
	local args&lt;br /&gt;
	if frame.args.sd then&lt;br /&gt;
		args = frame.args&lt;br /&gt;
	else&lt;br /&gt;
		args = frame:getParent().args&lt;br /&gt;
	end&lt;br /&gt;
	-- local short description&lt;br /&gt;
	local sdesc = mw.text.trim(args.sd or &amp;quot;&amp;quot;):lower()&lt;br /&gt;
	-- Wikidata entity-ID&lt;br /&gt;
	local itemID = mw.text.trim(args.qid or &amp;quot;&amp;quot;)&lt;br /&gt;
	-- link prefix, strip quotes&lt;br /&gt;
	local lp = mw.text.trim(args.lp or &amp;quot;&amp;quot;):gsub(&amp;#039;&amp;quot;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	return p._setCat(sdesc, itemID, lp)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:48:41 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:Transclusion count/data/S</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Transclusion_count/data/S&amp;diff=1924&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Transclusion_count/data/S&amp;diff=1924&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;return { [&amp;quot;S&amp;quot;] = 4300, [&amp;quot;S-aca&amp;quot;] = 6700, [&amp;quot;S-ach&amp;quot;] = 17000, [&amp;quot;S-aft&amp;quot;] = 230000, [&amp;quot;S-aft/check&amp;quot;] = 231000, [&amp;quot;S-aft/filter&amp;quot;] = 231000, [&amp;quot;S-bef&amp;quot;] = 235000, [&amp;quot;S-bef/check&amp;quot;] = 235000, [&amp;quot;S-bef/filter&amp;quot;] = 235000, [&amp;quot;S-break&amp;quot;] = 6600, [&amp;quot;S-bus&amp;quot;] = 2100, [&amp;quot;S-civ&amp;quot;] = 2900, [&amp;quot;S-dip&amp;quot;] = 6000, [&amp;quot;S-end&amp;quot;] = 262000, [&amp;quot;S-gov&amp;quot;] = 8600, [&amp;quot;S-hon&amp;quot;] = 4000, [&amp;quot;S-hou&amp;quot;] = 9800, [&amp;quot;S-inc&amp;quot;] = 13000, [&amp;quot;S-legal&amp;quot;] = 9900, [&amp;quot;S-line_label&amp;quot;] = 2000, [&amp;quot;S-mil&amp;quot;] = 13000, [&amp;quot;S-new&amp;quot;] = 17000, [&amp;quot;S-non&amp;quot;] = 11000,...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;return {&lt;br /&gt;
[&amp;quot;S&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;S-aca&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;S-ach&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;S-aft&amp;quot;] = 230000,&lt;br /&gt;
[&amp;quot;S-aft/check&amp;quot;] = 231000,&lt;br /&gt;
[&amp;quot;S-aft/filter&amp;quot;] = 231000,&lt;br /&gt;
[&amp;quot;S-bef&amp;quot;] = 235000,&lt;br /&gt;
[&amp;quot;S-bef/check&amp;quot;] = 235000,&lt;br /&gt;
[&amp;quot;S-bef/filter&amp;quot;] = 235000,&lt;br /&gt;
[&amp;quot;S-break&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;S-bus&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;S-civ&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;S-dip&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;S-end&amp;quot;] = 262000,&lt;br /&gt;
[&amp;quot;S-gov&amp;quot;] = 8600,&lt;br /&gt;
[&amp;quot;S-hon&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;S-hou&amp;quot;] = 9800,&lt;br /&gt;
[&amp;quot;S-inc&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;S-legal&amp;quot;] = 9900,&lt;br /&gt;
[&amp;quot;S-line_label&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;S-mil&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;S-new&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;S-non&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;S-npo&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;S-off&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;S-par&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;S-par/en&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;S-par/gb&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;S-par/uk&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;S-par/us-hs&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;S-par/us-sen&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;S-ppo&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;S-prec&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;S-reg&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;S-rel&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;S-roy&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;S-sports&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;S-start&amp;quot;] = 254000,&lt;br /&gt;
[&amp;quot;S-ttl&amp;quot;] = 242000,&lt;br /&gt;
[&amp;quot;S-ttl/check&amp;quot;] = 242000,&lt;br /&gt;
[&amp;quot;S-vac&amp;quot;] = 7800,&lt;br /&gt;
[&amp;quot;SAU&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;SCO&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;SDcat&amp;quot;] = 6830000,&lt;br /&gt;
[&amp;quot;SECOND&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;SGP&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;SIA&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;SLL&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;SLO&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;SMS&amp;quot;] = 6900,&lt;br /&gt;
[&amp;quot;SMU&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;SPI_archive_notice&amp;quot;] = 85000,&lt;br /&gt;
[&amp;quot;SPIarchive_notice&amp;quot;] = 82000,&lt;br /&gt;
[&amp;quot;SPIcat&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;SPIclose&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;SPIpriorcases&amp;quot;] = 78000,&lt;br /&gt;
[&amp;quot;SR/Olympics_profile&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;SRB&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;SS&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;SSPa&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;STN&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;SUBJECTSPACE_formatted&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;SUI&amp;quot;] = 9700,&lt;br /&gt;
[&amp;quot;SVG&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;SVG-Logo&amp;quot;] = 26000,&lt;br /&gt;
[&amp;quot;SVG-Res&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;SVG-logo&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;SVK&amp;quot;] = 8800,&lt;br /&gt;
[&amp;quot;SVN&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;SWE&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Salts_by_element&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Sandbox_other&amp;quot;] = 477000,&lt;br /&gt;
[&amp;quot;Saturday&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Saved_book&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;Sc&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Scholia&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;School_block&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;School_disambiguation&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;Schoolblock&amp;quot;] = 6900,&lt;br /&gt;
[&amp;quot;Schooldis&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Schoolip&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Scientist_icon&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Scientist_icon2&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Sclass&amp;quot;] = 34000,&lt;br /&gt;
[&amp;quot;Sclass2&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Screen_reader-only&amp;quot;] = 109000,&lt;br /&gt;
[&amp;quot;Screen_reader-only/styles.css&amp;quot;] = 149000,&lt;br /&gt;
[&amp;quot;Script&amp;quot;] = 7700,&lt;br /&gt;
[&amp;quot;Script/Arabic&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Script/Hebrew&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Script/Nastaliq&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Script/doc/id-unk&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Script/doc/id-unk/core&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Script/doc/id-unk/is-iso-alpha4&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Script/doc/id-unk/name-to-alpha4&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Script/styles.css&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Script/styles_arabic.css&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Script/styles_hebrew.css&amp;quot;] = 4900,&lt;br /&gt;
[&amp;quot;Sdash&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Search_box&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Search_link&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Section_link&amp;quot;] = 167000,&lt;br /&gt;
[&amp;quot;Section_sizes&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;See&amp;quot;] = 8900,&lt;br /&gt;
[&amp;quot;See_also&amp;quot;] = 219000,&lt;br /&gt;
[&amp;quot;Seealso&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;Seiner_Majestät_Schiff&amp;quot;] = 6900,&lt;br /&gt;
[&amp;quot;Seiner_Majestät_Unterseeboot&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Select_skin&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Selected&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Selected_article&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Selected_picture&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Self&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;Self-published_inline&amp;quot;] = 4700,&lt;br /&gt;
[&amp;quot;Self-published_source&amp;quot;] = 6100,&lt;br /&gt;
[&amp;quot;Self-reference&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Self-reference_tool&amp;quot;] = 8200,&lt;br /&gt;
[&amp;quot;Semi-protected_indefinitely&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Sent_off&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Sentoff&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;Separated_entries&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Sequence&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Series_overview&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Serif&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Set_category&amp;quot;] = 38000,&lt;br /&gt;
[&amp;quot;Set_index_article&amp;quot;] = 6400,&lt;br /&gt;
[&amp;quot;Sets_taxobox_colour&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Sfn&amp;quot;] = 211000,&lt;br /&gt;
[&amp;quot;SfnRef&amp;quot;] = 166000,&lt;br /&gt;
[&amp;quot;Sfn_whitelist&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Sfnm&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Sfnp&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Sfnref&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Sfrac&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;Sfrac/styles.css&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;SharedIPEDU&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Shared_IP&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Shared_IP_corp&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Shared_IP_edu&amp;quot;] = 186000,&lt;br /&gt;
[&amp;quot;Shared_IP_gov&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Sharedip&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Sharedipedu&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Sherdog&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Ship&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Ship_index&amp;quot;] = 7600,&lt;br /&gt;
[&amp;quot;Shipboxflag&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Shipboxflag/core&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Shipwrecks_navbox_footer&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Shipwrecks_navbox_footer/link&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Short_description&amp;quot;] = 6970000,&lt;br /&gt;
[&amp;quot;Short_description/lowercasecheck&amp;quot;] = 6970000,&lt;br /&gt;
[&amp;quot;Shortcut&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Should_be_SVG&amp;quot;] = 7900,&lt;br /&gt;
[&amp;quot;Shy&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Sic&amp;quot;] = 39000,&lt;br /&gt;
[&amp;quot;Side_box&amp;quot;] = 1250000,&lt;br /&gt;
[&amp;quot;Sidebar&amp;quot;] = 320000,&lt;br /&gt;
[&amp;quot;Sidebar_games_events&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Sidebar_person&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Sidebar_person/styles.css&amp;quot;] = 6300,&lt;br /&gt;
[&amp;quot;Sidebar_with_collapsible_lists&amp;quot;] = 83000,&lt;br /&gt;
[&amp;quot;Sigfig&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Significant_figures&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Significant_figures/rnd&amp;quot;] = 5300,&lt;br /&gt;
[&amp;quot;Signpost-subscription&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Signpost-subscription/styles.css&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Signpost/item&amp;quot;] = 49000,&lt;br /&gt;
[&amp;quot;Signpost/item/core&amp;quot;] = 49000,&lt;br /&gt;
[&amp;quot;Signpost/snippet-nopic&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Signpost/snippet/styles.css&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Sildb_prim&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Silver02&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Silver2&amp;quot;] = 46000,&lt;br /&gt;
[&amp;quot;Silver_medal&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Silver_medal_icon&amp;quot;] = 60000,&lt;br /&gt;
[&amp;quot;Similar_names&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Single+double&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Single+space&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Single-innings_cricket_match&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Single_chart&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Single_namespace&amp;quot;] = 339000,&lt;br /&gt;
[&amp;quot;Single_source&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Singlechart&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Singles&amp;quot;] = 49000,&lt;br /&gt;
[&amp;quot;Sister-inline&amp;quot;] = 224000,&lt;br /&gt;
[&amp;quot;Sister-inline/styles.css&amp;quot;] = 224000,&lt;br /&gt;
[&amp;quot;Sister_project&amp;quot;] = 1130000,&lt;br /&gt;
[&amp;quot;Sister_project/styles.css&amp;quot;] = 1130000,&lt;br /&gt;
[&amp;quot;Sister_project_links&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Skip_to_talk&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Skip_to_talk/styles.css&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Sky&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Sky/styles.css&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Slink&amp;quot;] = 65000,&lt;br /&gt;
[&amp;quot;Slovak_municipality&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Slovak_municipality/geo&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Small&amp;quot;] = 653000,&lt;br /&gt;
[&amp;quot;Small_Solar_System_bodies&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Smallcaps&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Smallcaps/styles.css&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Smalldiv&amp;quot;] = 44000,&lt;br /&gt;
[&amp;quot;Smaller&amp;quot;] = 79000,&lt;br /&gt;
[&amp;quot;Smiley&amp;quot;] = 54000,&lt;br /&gt;
[&amp;quot;Snd&amp;quot;] = 615000,&lt;br /&gt;
[&amp;quot;Snds&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;Soccer_icon&amp;quot;] = 124000,&lt;br /&gt;
[&amp;quot;Soccer_icon2&amp;quot;] = 124000,&lt;br /&gt;
[&amp;quot;Soccer_icon4&amp;quot;] = 3500,&lt;br /&gt;
[&amp;quot;Soccerbase&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Soccerbase_season&amp;quot;] = 8100,&lt;br /&gt;
[&amp;quot;Soccerway&amp;quot;] = 84000,&lt;br /&gt;
[&amp;quot;Sock&amp;quot;] = 56000,&lt;br /&gt;
[&amp;quot;Sock_list&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Sockcat&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Sockmaster&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Sockpuppet&amp;quot;] = 287000,&lt;br /&gt;
[&amp;quot;Sockpuppet/altmaster&amp;quot;] = 3700,&lt;br /&gt;
[&amp;quot;Sockpuppet/categorise&amp;quot;] = 287000,&lt;br /&gt;
[&amp;quot;SockpuppetCheckuser&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Sockpuppet_category&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;Sockpuppet_category/confirmed&amp;quot;] = 28000,&lt;br /&gt;
[&amp;quot;Sockpuppet_category/suspected&amp;quot;] = 24000,&lt;br /&gt;
[&amp;quot;Sockpuppetcheckuser&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Sockpuppeteer&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Soft_hyphen&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Soft_redirect&amp;quot;] = 6500,&lt;br /&gt;
[&amp;quot;Soft_redirect_protection&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Softredirect&amp;quot;] = 3300,&lt;br /&gt;
[&amp;quot;Solar_luminosity&amp;quot;] = 5200,&lt;br /&gt;
[&amp;quot;Solar_mass&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Solar_radius&amp;quot;] = 5300,&lt;br /&gt;
[&amp;quot;Soldier_icon&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Soldier_icon2&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Songs_category&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;Songs_category/core&amp;quot;] = 9600,&lt;br /&gt;
[&amp;quot;Sort&amp;quot;] = 123000,&lt;br /&gt;
[&amp;quot;Sort_under&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Sort_under/styles.css&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Sortname&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Source-attribution&amp;quot;] = 9300,&lt;br /&gt;
[&amp;quot;Source_assess&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Source_assess_table&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Source_attribution&amp;quot;] = 39000,&lt;br /&gt;
[&amp;quot;Source_check&amp;quot;] = 927000,&lt;br /&gt;
[&amp;quot;Sourcecheck&amp;quot;] = 927000,&lt;br /&gt;
[&amp;quot;Sources&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;Sources_exist&amp;quot;] = 4400,&lt;br /&gt;
[&amp;quot;South_America_topic&amp;quot;] = 2700,&lt;br /&gt;
[&amp;quot;Sp&amp;quot;] = 165000,&lt;br /&gt;
[&amp;quot;Space&amp;quot;] = 130000,&lt;br /&gt;
[&amp;quot;Space+apostrophe+s&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Space+double&amp;quot;] = 7300,&lt;br /&gt;
[&amp;quot;Space+single&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Spaced_en_dash&amp;quot;] = 649000,&lt;br /&gt;
[&amp;quot;Spaced_en_dash_space&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Spaced_ndash&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Spaces&amp;quot;] = 737000,&lt;br /&gt;
[&amp;quot;Spain_metadata_Wikidata&amp;quot;] = 7400,&lt;br /&gt;
[&amp;quot;Spamlink&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Species_Latin_name_abbreviation_disambiguation&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Species_list&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Speciesbox&amp;quot;] = 395000,&lt;br /&gt;
[&amp;quot;Speciesbox/checkgenus&amp;quot;] = 393000,&lt;br /&gt;
[&amp;quot;Speciesbox/getGenus&amp;quot;] = 396000,&lt;br /&gt;
[&amp;quot;Speciesbox/getSpecies&amp;quot;] = 395000,&lt;br /&gt;
[&amp;quot;Speciesbox/name&amp;quot;] = 395000,&lt;br /&gt;
[&amp;quot;Speciesbox/parameterCheck&amp;quot;] = 395000,&lt;br /&gt;
[&amp;quot;Speciesbox/trim&amp;quot;] = 395000,&lt;br /&gt;
[&amp;quot;Specieslist&amp;quot;] = 9300,&lt;br /&gt;
[&amp;quot;Split_article&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Spnd&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Spoken_Wikipedia&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Sport_icon&amp;quot;] = 16000,&lt;br /&gt;
[&amp;quot;Sport_icon2&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;SportsYearCatUSstate&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Sports_club_or_team_people_category_header&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Sports_club_or_team_people_category_header/category1&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Sports_club_or_team_people_category_header/club_name&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Sports_links&amp;quot;] = 82000,&lt;br /&gt;
[&amp;quot;Sports_reference&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Squad_maintenance&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Sronly&amp;quot;] = 49000,&lt;br /&gt;
[&amp;quot;Srt&amp;quot;] = 7300,&lt;br /&gt;
[&amp;quot;Stack&amp;quot;] = 30000,&lt;br /&gt;
[&amp;quot;Stack/styles.css&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Stack_begin&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Stack_end&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;StaleIP&amp;quot;] = 3600,&lt;br /&gt;
[&amp;quot;StandardEbooks&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Standings_table_end&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Standings_table_entry&amp;quot;] = 25000,&lt;br /&gt;
[&amp;quot;Standings_table_entry/record&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Standings_table_start&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Standings_table_start/colheader&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Standings_table_start/colspan&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Standings_table_start/styles.css&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Starbox_astrometry&amp;quot;] = 5700,&lt;br /&gt;
[&amp;quot;Starbox_begin&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Starbox_catalog&amp;quot;] = 5700,&lt;br /&gt;
[&amp;quot;Starbox_character&amp;quot;] = 5700,&lt;br /&gt;
[&amp;quot;Starbox_detail&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Starbox_end&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Starbox_image&amp;quot;] = 4100,&lt;br /&gt;
[&amp;quot;Starbox_observe&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Starbox_reference&amp;quot;] = 5700,&lt;br /&gt;
[&amp;quot;Start-Class&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Start-date&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Start_and_end_dates&amp;quot;] = 3800,&lt;br /&gt;
[&amp;quot;Start_box&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Start_date&amp;quot;] = 549000,&lt;br /&gt;
[&amp;quot;Start_date_and_age&amp;quot;] = 189000,&lt;br /&gt;
[&amp;quot;Start_date_and_years_ago&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Start_date_text&amp;quot;] = 3900,&lt;br /&gt;
[&amp;quot;Start_of_course_timeline&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Start_of_course_week&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Start_tab&amp;quot;] = 6700,&lt;br /&gt;
[&amp;quot;Startflatlist&amp;quot;] = 163000,&lt;br /&gt;
[&amp;quot;Startplainlist&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Static_IP&amp;quot;] = 5000,&lt;br /&gt;
[&amp;quot;Static_row_numbers&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Static_row_numbers/styles.css&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Station&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Station_link&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Stdinchicite&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Steady&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;Sticky_header&amp;quot;] = 9800,&lt;br /&gt;
[&amp;quot;Sticky_header/styles.css&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Stl&amp;quot;] = 17000,&lt;br /&gt;
[&amp;quot;Stn&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Stn_art_lnk&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Stnlnk&amp;quot;] = 35000,&lt;br /&gt;
[&amp;quot;Stop&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Store_norske_leksikon&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Storm_colour&amp;quot;] = 5800,&lt;br /&gt;
[&amp;quot;Storm_name&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Storm_path&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Stortingetbio&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;StoryTeleplay&amp;quot;] = 3200,&lt;br /&gt;
[&amp;quot;Str_count&amp;quot;] = 166000,&lt;br /&gt;
[&amp;quot;Str_endswith&amp;quot;] = 236000,&lt;br /&gt;
[&amp;quot;Str_find&amp;quot;] = 283000,&lt;br /&gt;
[&amp;quot;Str_index&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Str_left&amp;quot;] = 316000,&lt;br /&gt;
[&amp;quot;Str_len&amp;quot;] = 169000,&lt;br /&gt;
[&amp;quot;Str_letter&amp;quot;] = 184000,&lt;br /&gt;
[&amp;quot;Str_letter/trim&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Str_number&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;Str_number/trim&amp;quot;] = 226000,&lt;br /&gt;
[&amp;quot;Str_rep&amp;quot;] = 299000,&lt;br /&gt;
[&amp;quot;Str_right&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;Str_startswith&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Str_trim&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Str_≠_len&amp;quot;] = 49000,&lt;br /&gt;
[&amp;quot;Str_≤_len&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Str_≥_len&amp;quot;] = 106000,&lt;br /&gt;
[&amp;quot;Strfind_short&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Strike&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Strikethrough&amp;quot;] = 20000,&lt;br /&gt;
[&amp;quot;String_split&amp;quot;] = 5400,&lt;br /&gt;
[&amp;quot;Strip_tags&amp;quot;] = 41000,&lt;br /&gt;
[&amp;quot;Strong&amp;quot;] = 217000,&lt;br /&gt;
[&amp;quot;Structurae&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Stub-Class&amp;quot;] = 18000,&lt;br /&gt;
[&amp;quot;Stub_Category&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Stub_category&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Stub_documentation&amp;quot;] = 42000,&lt;br /&gt;
[&amp;quot;Student_editor&amp;quot;] = 27000,&lt;br /&gt;
[&amp;quot;Student_sandbox&amp;quot;] = 4300,&lt;br /&gt;
[&amp;quot;Student_table_row&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;Students_table&amp;quot;] = 7200,&lt;br /&gt;
[&amp;quot;Su&amp;quot;] = 4800,&lt;br /&gt;
[&amp;quot;Su-census1989&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Sub&amp;quot;] = 4600,&lt;br /&gt;
[&amp;quot;Subinfobox_bodystyle&amp;quot;] = 75000,&lt;br /&gt;
[&amp;quot;Subject_bar&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Suboff&amp;quot;] = 7500,&lt;br /&gt;
[&amp;quot;Subon&amp;quot;] = 7600,&lt;br /&gt;
[&amp;quot;Subpage_other&amp;quot;] = 412000,&lt;br /&gt;
[&amp;quot;Subscription_required&amp;quot;] = 35000,&lt;br /&gt;
[&amp;quot;Subsidebar_bodystyle&amp;quot;] = 6400,&lt;br /&gt;
[&amp;quot;Subst_only&amp;quot;] = 5500,&lt;br /&gt;
[&amp;quot;Substituted_comment&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Succession_box&amp;quot;] = 119000,&lt;br /&gt;
[&amp;quot;Succession_box/check&amp;quot;] = 119000,&lt;br /&gt;
[&amp;quot;Succession_links&amp;quot;] = 219000,&lt;br /&gt;
[&amp;quot;Summer_Olympics_by_year_category_navigation&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Summer_Olympics_by_year_category_navigation/core&amp;quot;] = 2600,&lt;br /&gt;
[&amp;quot;Sunday&amp;quot;] = 2800,&lt;br /&gt;
[&amp;quot;Sup&amp;quot;] = 95000,&lt;br /&gt;
[&amp;quot;Suppress_categories&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Surname&amp;quot;] = 81000,&lt;br /&gt;
[&amp;quot;Swiss_metadata_Wikidata&amp;quot;] = 2900,&lt;br /&gt;
[&amp;quot;Swiss_populations&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Swiss_populations_NC&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Swiss_populations_YM&amp;quot;] = 2300,&lt;br /&gt;
[&amp;quot;Swiss_populations_ref&amp;quot;] = 2400,&lt;br /&gt;
[&amp;quot;Switcher&amp;quot;] = 8500,&lt;br /&gt;
[&amp;quot;Sz&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Module:SDcat&amp;quot;] = 6830000,&lt;br /&gt;
[&amp;quot;Module:SPI_archive_notice&amp;quot;] = 39000,&lt;br /&gt;
[&amp;quot;Module:SST&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Module:SST/hosts&amp;quot;] = 13000,&lt;br /&gt;
[&amp;quot;Module:SST/registry&amp;quot;] = 276000,&lt;br /&gt;
[&amp;quot;Module:SST/shards/sets/COLLEDGE_SHIPS_RN&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Module:SST/shards/sets/TALBERT_BARRINGTON_ATLAS&amp;quot;] = 2100,&lt;br /&gt;
[&amp;quot;Module:Science_redirect&amp;quot;] = 323000,&lt;br /&gt;
[&amp;quot;Module:Science_redirect/conf&amp;quot;] = 323000,&lt;br /&gt;
[&amp;quot;Module:Section_link&amp;quot;] = 167000,&lt;br /&gt;
[&amp;quot;Module:Section_sizes&amp;quot;] = 6000,&lt;br /&gt;
[&amp;quot;Module:See_also_if_exists&amp;quot;] = 96000,&lt;br /&gt;
[&amp;quot;Module:Self&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;Module:Self/license_migration_data.json&amp;quot;] = 23000,&lt;br /&gt;
[&amp;quot;Module:Self/styles.css&amp;quot;] = 45000,&lt;br /&gt;
[&amp;quot;Module:Separated_entries&amp;quot;] = 2840000,&lt;br /&gt;
[&amp;quot;Module:Series_overview&amp;quot;] = 10000,&lt;br /&gt;
[&amp;quot;Module:Settlement_Wikidata&amp;quot;] = 52000,&lt;br /&gt;
[&amp;quot;Module:Settlement_short_description&amp;quot;] = 729000,&lt;br /&gt;
[&amp;quot;Module:Shortcut&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Module:Shortcut/config&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Module:Shortcut/styles.css&amp;quot;] = 29000,&lt;br /&gt;
[&amp;quot;Module:Side_box&amp;quot;] = 1290000,&lt;br /&gt;
[&amp;quot;Module:Side_box/styles.css&amp;quot;] = 1290000,&lt;br /&gt;
[&amp;quot;Module:Sidebar&amp;quot;] = 436000,&lt;br /&gt;
[&amp;quot;Module:Sidebar/configuration&amp;quot;] = 436000,&lt;br /&gt;
[&amp;quot;Module:Sidebar/styles.css&amp;quot;] = 442000,&lt;br /&gt;
[&amp;quot;Module:Sidebar_games_events&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Module:Sidebar_games_events/styles.css&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Module:Singles&amp;quot;] = 49000,&lt;br /&gt;
[&amp;quot;Module:Sister_project_links&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Module:Sister_project_links/bar/styles.css&amp;quot;] = 7300,&lt;br /&gt;
[&amp;quot;Module:Sister_project_links/config&amp;quot;] = 22000,&lt;br /&gt;
[&amp;quot;Module:Sister_project_links/styles.css&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Module:Sister_project_logo&amp;quot;] = 1360000,&lt;br /&gt;
[&amp;quot;Module:Sister_project_logo/data&amp;quot;] = 1360000,&lt;br /&gt;
[&amp;quot;Module:Slovak_municipality&amp;quot;] = 3000,&lt;br /&gt;
[&amp;quot;Module:Sock_list&amp;quot;] = 11000,&lt;br /&gt;
[&amp;quot;Module:Sort&amp;quot;] = 156000,&lt;br /&gt;
[&amp;quot;Module:Sort_title&amp;quot;] = 40000,&lt;br /&gt;
[&amp;quot;Module:Sortkey&amp;quot;] = 105000,&lt;br /&gt;
[&amp;quot;Module:Split_article&amp;quot;] = 4200,&lt;br /&gt;
[&amp;quot;Module:Spoken_Wikipedia&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Module:Spoken_Wikipedia/configuration&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Module:Spoken_Wikipedia/styles.css&amp;quot;] = 2200,&lt;br /&gt;
[&amp;quot;Module:Sports_career&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Module:Sports_color&amp;quot;] = 79000,&lt;br /&gt;
[&amp;quot;Module:Sports_color/baseball&amp;quot;] = 36000,&lt;br /&gt;
[&amp;quot;Module:Sports_color/basketball&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Module:Sports_color/ice_hockey&amp;quot;] = 3400,&lt;br /&gt;
[&amp;quot;Module:Sports_color/international_football&amp;quot;] = 43000,&lt;br /&gt;
[&amp;quot;Module:Sports_rbr_table&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Module:Sports_rbr_table/styles.css&amp;quot;] = 15000,&lt;br /&gt;
[&amp;quot;Module:Sports_reference&amp;quot;] = 5100,&lt;br /&gt;
[&amp;quot;Module:Sports_results&amp;quot;] = 19000,&lt;br /&gt;
[&amp;quot;Module:Sports_results/styles.css&amp;quot;] = 12000,&lt;br /&gt;
[&amp;quot;Module:Sports_table&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Module:Sports_table/Volleyball&amp;quot;] = 2500,&lt;br /&gt;
[&amp;quot;Module:Sports_table/WDL&amp;quot;] = 64000,&lt;br /&gt;
[&amp;quot;Module:Sports_table/WDL_OT&amp;quot;] = 4000,&lt;br /&gt;
[&amp;quot;Module:Sports_table/WL&amp;quot;] = 5600,&lt;br /&gt;
[&amp;quot;Module:Sports_table/WL_OT&amp;quot;] = 3100,&lt;br /&gt;
[&amp;quot;Module:Sports_table/argcheck&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Module:Sports_table/styles.css&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Module:Sports_table/sub&amp;quot;] = 74000,&lt;br /&gt;
[&amp;quot;Module:Sports_table/totalscheck&amp;quot;] = 53000,&lt;br /&gt;
[&amp;quot;Module:Stock_tickers/NYSE&amp;quot;] = 2000,&lt;br /&gt;
[&amp;quot;Module:Storm_categories&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Module:Storm_categories/categories&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Module:Storm_categories/colors&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Module:Storm_categories/icons&amp;quot;] = 5900,&lt;br /&gt;
[&amp;quot;Module:String&amp;quot;] = 14200000,&lt;br /&gt;
[&amp;quot;Module:String2&amp;quot;] = 2090000,&lt;br /&gt;
[&amp;quot;Module:Su&amp;quot;] = 14000,&lt;br /&gt;
[&amp;quot;Module:Subject_bar&amp;quot;] = 21000,&lt;br /&gt;
[&amp;quot;Module:Suppress_categories&amp;quot;] = 6600,&lt;br /&gt;
[&amp;quot;Module:Switcher&amp;quot;] = 8500,&lt;br /&gt;
}&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:46:12 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:Toolbar</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Toolbar&amp;diff=1923&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Toolbar&amp;diff=1923&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;-- This module implements {{toolbar}}.  local mArguments -- Lazily initialise &lt;a href=&quot;/wiki/Module:Arguments&quot; title=&quot;Module:Arguments&quot;&gt;Module:Arguments&lt;/a&gt; local mTableTools = require(&amp;#039;Module:TableTools&amp;#039;) local yesno = require(&amp;#039;Module:Yesno&amp;#039;)  local p = {}  function p.main(frame) 	mArguments = require(&amp;#039;Module:Arguments&amp;#039;) 	local args = mArguments.getArgs(frame) 	return p._main(args) end  function p._main(args) 	local toolbarItems = p.makeToolbarItems(args) 	if not toolbarItems then 		-- Return the blank string if no arguments w...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements {{toolbar}}.&lt;br /&gt;
&lt;br /&gt;
local mArguments -- Lazily initialise [[Module:Arguments]]&lt;br /&gt;
local mTableTools = require(&amp;#039;Module:TableTools&amp;#039;)&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	mArguments = require(&amp;#039;Module:Arguments&amp;#039;)&lt;br /&gt;
	local args = mArguments.getArgs(frame)&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local toolbarItems = p.makeToolbarItems(args)&lt;br /&gt;
	if not toolbarItems then&lt;br /&gt;
		-- Return the blank string if no arguments were specified, rather than&lt;br /&gt;
		-- returning empty brackets.&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	elseif yesno(args.span) == false then&lt;br /&gt;
		return string.format(&lt;br /&gt;
			&amp;#039;(%s)&amp;#039;,&lt;br /&gt;
			toolbarItems&lt;br /&gt;
		)&lt;br /&gt;
	else&lt;br /&gt;
		return string.format(&lt;br /&gt;
			&amp;#039;&amp;lt;span class=&amp;quot;plainlinks%s&amp;quot;%s&amp;gt;(%s)&amp;lt;/span&amp;gt;&amp;#039;,&lt;br /&gt;
			type(args.class) == &amp;#039;string&amp;#039; and &amp;#039; &amp;#039; .. args.class or &amp;#039;&amp;#039;,&lt;br /&gt;
			type(args.style) == &amp;#039;string&amp;#039; and string.format(&amp;#039; style=&amp;quot;%s&amp;quot;&amp;#039;, args.style) or &amp;#039;&amp;#039;,&lt;br /&gt;
			toolbarItems&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeToolbarItems(args)&lt;br /&gt;
	local nums = mTableTools.numKeys(args)&lt;br /&gt;
	local sep = (args.separator or &amp;#039;pipe&amp;#039;) .. &amp;#039;-separator&amp;#039;&lt;br /&gt;
	sep = mw.message.new(sep):plain()&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for i, v in ipairs(nums) do&lt;br /&gt;
		ret[#ret + 1] = mw.ustring.gsub(args[v], &amp;quot;%[%[::+(.-)%]%]&amp;quot;, &amp;quot;[[:%1]]&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	if #ret &amp;gt; 0 then&lt;br /&gt;
		return table.concat(ret, sep)&lt;br /&gt;
	else&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:45:52 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:String/doc</title>
			<link>https://feministwiki.org/w/index.php?title=Module:String/doc&amp;diff=1922&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:String/doc&amp;diff=1922&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;{{Used in system}}  {{Module rating|protected}} {{cascade-protected template|page=module}} {{Lmd|String}}  This module is intended to provide access to basic string functions.  Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture. If named parameters are used, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. Depending on the intended use, it may be advantageous to either prese...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Used in system}} &lt;br /&gt;
{{Module rating|protected}}&lt;br /&gt;
{{cascade-protected template|page=module}}&lt;br /&gt;
{{Lmd|String}}&lt;br /&gt;
&lt;br /&gt;
This module is intended to provide access to basic string functions.&lt;br /&gt;
&lt;br /&gt;
Most of the functions provided here can be invoked with named parameters, unnamed parameters, or a mixture. If named parameters are used, Mediawiki will automatically remove any leading or trailing whitespace from the parameter. Depending on the intended use, it may be advantageous to either preserve or remove such whitespace.&lt;br /&gt;
&lt;br /&gt;
== Global options ==&lt;br /&gt;
&lt;br /&gt;
; ignore_errors&lt;br /&gt;
: If set to &amp;#039;true&amp;#039; or 1, any error condition will result in an empty string being returned rather than an error message.&lt;br /&gt;
; error_category&lt;br /&gt;
: If an error occurs, specifies the name of a category to include with the error message. The default category is {{clc|Errors reported by Module String}}.&lt;br /&gt;
; no_category&lt;br /&gt;
: If set to &amp;#039;true&amp;#039; or 1, no category will be added if an error is generated.&lt;br /&gt;
&lt;br /&gt;
Unit tests for this module are available at [[Module:String/testcases]].&lt;br /&gt;
&lt;br /&gt;
== Functions ==&lt;br /&gt;
&lt;br /&gt;
=== count ===&lt;br /&gt;
&lt;br /&gt;
Counts the number of times a given pattern appears in the arguments that get passed on to this module. Counts disjoint matches only.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|count|&amp;#039;&amp;#039;source_str&amp;#039;&amp;#039;|&amp;#039;&amp;#039;pattern_string&amp;#039;&amp;#039;|&amp;#039;&amp;#039;plain_flag&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|count|source= &amp;#039;&amp;#039;source_string&amp;#039;&amp;#039; |pattern= &amp;#039;&amp;#039;pattern_string&amp;#039;&amp;#039;|plain= &amp;#039;&amp;#039;plain_flag&amp;#039;&amp;#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Parameters:&lt;br /&gt;
; source_string&lt;br /&gt;
: The string to count occurrences in&lt;br /&gt;
; pattern&lt;br /&gt;
: The string or pattern to count occurrences of within source&lt;br /&gt;
; plain&lt;br /&gt;
: Boolean flag indicating that pattern should be understood as plain text and not as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:Lua|Lua]]-style [[w:regular expression|regular expression]]); defaults to true&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* Count of &amp;#039;a&amp;#039;: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|count|aabbcc|a}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|count|aabbcc|a}}&amp;quot;&lt;br /&gt;
* Count occurrences of &amp;#039;aba&amp;#039;: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|count|ababababab|aba}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|count|ababababab|aba}}&amp;quot;&lt;br /&gt;
* Count of &amp;quot;either &amp;#039;a&amp;#039; or &amp;#039;c&amp;#039; &amp;quot;:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|count|aabbcc|[ac]|plain=false}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|count|aabbcc|[ac]|plain=false}}&amp;quot;&lt;br /&gt;
* Count of &amp;quot;not &amp;#039;a&amp;#039; &amp;quot;: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|count|aaabaaac|[^a]|plain=false}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|count|aaabaaac|[^a]|plain=false}}&amp;quot;&lt;br /&gt;
* Count of &amp;quot;starts with &amp;#039;a&amp;#039; &amp;quot;: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|count|aaabaaac|^a|plain=false}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|count|aaabaaac|^a|plain=false}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== endswith ===&lt;br /&gt;
&lt;br /&gt;
{{for|the startswith function|Module:String2#startswith}}&lt;br /&gt;
Usage:&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|endswith|&amp;#039;&amp;#039;source_str&amp;#039;&amp;#039;|&amp;#039;&amp;#039;search_string&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|endswith|source= &amp;#039;&amp;#039;source_string&amp;#039;&amp;#039; |pattern= &amp;#039;&amp;#039;search_string&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Returns &amp;quot;yes&amp;quot; if the source string ends with the search string. Use named parameters to have the strings trimmed before use. Despite the parameter name, &amp;#039;&amp;#039;search_string&amp;#039;&amp;#039; is not a Lua pattern, it is interpreted literally.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|endswith|xxxyyy|y}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|endswith|xxxyyy|y}}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|endswith|xxxyyy|z}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|endswith|xxxyyy|z}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== escapePattern ===&lt;br /&gt;
&lt;br /&gt;
In a [[:mw:LUAREF#Patterns|Lua pattern]], changes a &amp;#039;&amp;#039;class character&amp;#039;&amp;#039; into a &amp;#039;&amp;#039;literal character&amp;#039;&amp;#039;. For example: in a pattern, character &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; catches &amp;quot;any character&amp;quot;; escapePattern will convert it to &amp;lt;code&amp;gt;%.&amp;lt;/code&amp;gt;, catching just the literal character &amp;quot;.&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|escapePattern|&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039;pattern_string&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; pattern_string&lt;br /&gt;
: The pattern string to escape&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|escapePattern|A.D.}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|escapePattern|A.D.}}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|escapePattern|10%}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|escapePattern|10%}}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== find ===&lt;br /&gt;
&lt;br /&gt;
This function allows one to search for a target string or pattern within another string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|find|&amp;#039;&amp;#039;source_string&amp;#039;&amp;#039;|&amp;#039;&amp;#039;target_string&amp;#039;&amp;#039;|&amp;#039;&amp;#039;start_index&amp;#039;&amp;#039;|&amp;#039;&amp;#039;plain_flag&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|find|source= &amp;#039;&amp;#039;source_string&amp;#039;&amp;#039; |target= &amp;#039;&amp;#039;target_string&amp;#039;&amp;#039; |start= &amp;#039;&amp;#039;start_index&amp;#039;&amp;#039; |plain= &amp;#039;&amp;#039;plain_flag&amp;#039;&amp;#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; source&lt;br /&gt;
: The string to search&lt;br /&gt;
; target&lt;br /&gt;
: The string or pattern to find within source&lt;br /&gt;
; start&lt;br /&gt;
: The index within the source string to start the search, defaults to 1&lt;br /&gt;
; plain&lt;br /&gt;
: Boolean flag indicating that target should be understood as plain text and not as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:Lua|Lua]]-style [[w:regular expression|regular expression]]); defaults to true&lt;br /&gt;
&lt;br /&gt;
This function returns the first index &amp;gt;= &amp;quot;start&amp;quot; where &amp;quot;target&amp;quot; can be found within &amp;quot;source&amp;quot;. Indices are 1-based. If &amp;quot;target&amp;quot; is not found, then this function returns 0. If either &amp;quot;source&amp;quot; or &amp;quot;target&amp;quot; are missing / empty, this function also returns 0.&lt;br /&gt;
&lt;br /&gt;
This function should be safe for UTF-8 strings.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|find|abc123def|12}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|find|abc123def|12}}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|find|source=abc123def|target=12}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|find|source=abc123def|target=12}}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|find|source=abc123def|target=pqr}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|find|source=abc123def|target=pqr}}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|find| abc123def |123}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|find| abc123def |123}}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|find|source= abc123def |target= 123 }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|find|source= abc123def |target= 123 }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|find|source=abc123def|target=%d |start=3 |plain=false }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|find|source=abc123def|target=%d |start=3 |plain=false }}&lt;br /&gt;
&lt;br /&gt;
When using unnamed parameters, preceding and trailing spaces are kept and counted:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|find|  abc123def |c|false}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|find|  abc123def |c|false}}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|find|source=  abc123def |target=c|plain=false}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|find|source=  abc123def |target=c|plain=false}}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:string|find|abc 123 def|%s|plain=false}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:string|find|abc 123 def|%s|plain=false}}&lt;br /&gt;
&lt;br /&gt;
Testing for the presence of a string:&lt;br /&gt;
* &amp;lt;code&amp;gt;{{pf|ifexpr|&amp;lt;nowiki&amp;gt;{{#invoke:string|find|haystack|needle}}&amp;lt;/nowiki&amp;gt;|Found needle|Didn&amp;#039;t find needle}}&amp;lt;/code&amp;gt; → {{#ifexpr:{{#invoke:string|find|haystack|needle}}|Found needle|Didn&amp;#039;t find needle}}&lt;br /&gt;
&lt;br /&gt;
=== findpagetext ===&lt;br /&gt;
&lt;br /&gt;
The findpagetext function returns the position of a piece of text in the wikitext source of a page. It takes up to four parameters:&lt;br /&gt;
* First positional parameter or |text is the text to be searched for.&lt;br /&gt;
* Optional parameter |title is the page title, defaults to the current page.&lt;br /&gt;
* Optional parameter |plain is either true for a plain search (default), or false for a [[mw:Extension:Scribunto/Lua reference manual #Patterns|Lua pattern]] search.&lt;br /&gt;
* Optional parameter |nomatch is the value returned when no match is found; default is nothing.&lt;br /&gt;
&lt;br /&gt;
; Examples&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String |findpagetext |text=Youghiogheny}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String |findpagetext |text=Youghiogheny}}&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String |findpagetext |text=Youghiogheny |nomatch=not found}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String |findpagetext |text=Youghiogheny |nomatch=not found}}&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String |findpagetext |text=Youghiogheny |title=Boston Bridge |nomatch=not found}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String |findpagetext |text=Youghiogheny |title=Boston Bridge |nomatch=not found}}&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String |findpagetext |text=river |title=Boston Bridge |nomatch=not found}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String |findpagetext |text=river |title=Boston Bridge |nomatch=not found}}&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String |findpagetext |text=[Rr]iver |title=Boston Bridge |plain=false |nomatch=not found}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String |findpagetext |text=[Rr]iver |title=Boston Bridge |plain=false |nomatch=not found}}&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String |findpagetext |text=%[%[ |title=Boston Bridge |plain=f |nomatch=not found}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String |findpagetext |text=%[%[ |title=Boston Bridge |plain=f |nomatch=not found}}&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String |findpagetext |text=%{%{[Cc]oord |title=Boston Bridge |plain=f |nomatch=not found}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String |findpagetext |text=%{%{coord |title=Boston Bridge |plain=f |nomatch=not found}}&lt;br /&gt;
The search is case-sensitive, so Lua pattern matching is needed to find &amp;lt;code&amp;gt;river&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;River&amp;lt;/code&amp;gt;. The last example finds &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{coord&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Coord&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. The penultimate example finds a wiki-link.&lt;br /&gt;
&lt;br /&gt;
The [[Template:Findpagetext]] is a convenience wrapper for this function.&lt;br /&gt;
&lt;br /&gt;
=== join ===&lt;br /&gt;
&lt;br /&gt;
Joins all strings passed as arguments into one string, treating the first argument as a separator.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|join|&amp;#039;&amp;#039;separator&amp;#039;&amp;#039;|&amp;#039;&amp;#039;string1&amp;#039;&amp;#039;|&amp;#039;&amp;#039;string2&amp;#039;&amp;#039;|...&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
Parameters:&lt;br /&gt;
; separator&lt;br /&gt;
: String that separates each string being joined together&lt;br /&gt;
: Note that leading and trailing spaces are &amp;#039;&amp;#039;not&amp;#039;&amp;#039; stripped from the separator.&lt;br /&gt;
; string1/string2/...&lt;br /&gt;
: Strings being joined together&lt;br /&gt;
Examples:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|join|x|foo|bar|baz}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|join|x|foo|bar|baz}}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|join||a|b|c|d|e|f|g}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|join||a|b|c|d|e|f|g}}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|join|,|a|b|c|d|e|f|g}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|join|,|a|b|c|d|e|f|g}}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|join|, |a|b|c|d|e|f|g}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|join|, |a|b|c|d|e|f|g}}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|join| &amp;amp;ndash; |a|b|c|d|e|f|g}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|join| &amp;amp;ndash; |a|b|c|d|e|f|g}}&amp;quot;&lt;br /&gt;
The preceding example uses the html entity &amp;amp;amp;ndash; but the unicode character also works.&lt;br /&gt;
&lt;br /&gt;
=== len ===&lt;br /&gt;
&lt;br /&gt;
This function returns the length of the target string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|len|&amp;#039;&amp;#039;target_string&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|len|s= &amp;#039;&amp;#039;target_string&amp;#039;&amp;#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; s&lt;br /&gt;
: The string whose length to report&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|len| abcdefghi }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|len| abcdefghi }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|len|s= abcdefghi }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|len|s= abcdefghi }}&lt;br /&gt;
&lt;br /&gt;
=== match ===&lt;br /&gt;
&lt;br /&gt;
This function returns a substring from the source string that matches a specified pattern.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|match|&amp;#039;&amp;#039;source_string&amp;#039;&amp;#039;|&amp;#039;&amp;#039;pattern_string&amp;#039;&amp;#039;|&amp;#039;&amp;#039;start_index&amp;#039;&amp;#039;|&amp;#039;&amp;#039;match_number&amp;#039;&amp;#039;|&amp;#039;&amp;#039;plain_flag&amp;#039;&amp;#039;|&amp;#039;&amp;#039;nomatch_output&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|match|s= &amp;#039;&amp;#039;source_string&amp;#039;&amp;#039; |pattern= &amp;#039;&amp;#039;pattern_string&amp;#039;&amp;#039; |start= &amp;#039;&amp;#039;start_index&amp;#039;&amp;#039; |match= &amp;#039;&amp;#039;match_number&amp;#039;&amp;#039; |plain= &amp;#039;&amp;#039;plain_flag&amp;#039;&amp;#039; |nomatch= &amp;#039;&amp;#039;nomatch_output&amp;#039;&amp;#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; s&lt;br /&gt;
: The string to search&lt;br /&gt;
; pattern&lt;br /&gt;
: The pattern or string to find within the string&lt;br /&gt;
; start&lt;br /&gt;
: The index within the source string to start the search. The first character of the string has index 1. Defaults to 1.&lt;br /&gt;
; match&lt;br /&gt;
: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1.&lt;br /&gt;
; plain&lt;br /&gt;
: Boolean flag indicating that pattern should be understood as plain text and not as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:Lua|Lua]]-style [[w:regular expression|regular expression]]). Defaults to false (to change: &amp;lt;code&amp;gt;plain=true&amp;lt;/code&amp;gt;)&lt;br /&gt;
; nomatch&lt;br /&gt;
: If no match is found, output the &amp;quot;nomatch&amp;quot; value rather than an error.&lt;br /&gt;
; ignore_errors&lt;br /&gt;
: If no match is found and ignore_errors=true, output an empty string rather than an error.&lt;br /&gt;
&lt;br /&gt;
If the match_number or start_index are out of range for the string being queried, then this function generates an error. An error is also generated if no match is found.&lt;br /&gt;
If one adds the parameter ignore_errors=true, then the error will be suppressed and an empty string will be returned on any failure.&lt;br /&gt;
&lt;br /&gt;
For information on constructing [[w:Lua|Lua]] patterns, a form of [[w:regular expression|regular expression]], see:&lt;br /&gt;
&lt;br /&gt;
* [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#Patterns|Scribunto patterns]]&lt;br /&gt;
* [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto Unicode string patterns]]&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|match| abc123def456 |%d+}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|match| abc123def456 |%d+}}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|match|s= abc123def456 |pattern= %d+ }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|match|s= abc123def456 |pattern= %d+ }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|match| abc123def456 |%d+|6}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|match| abc123def456 |%d+|6}}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 |match= 2 }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|match|s= abc123def456 |pattern= %d+ |start= 6 |match= 2 }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|match|s= abc123%d+ |pattern= %d+ }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|match|s= abc123%d+ |pattern= %d+ }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|match|s= abc123%d+ |pattern= %d+ |plain= true }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|match|s= abc123%d+ |pattern= %d+ |plain= true }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|match|s= abc |pattern= %d }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|match|s= abc |pattern= %d |no_category=true}}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|match|s= abc |pattern= %d |nomatch= No numeric characters in string }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|match|s= abc |pattern= %d |nomatch= No numeric characters in string }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|match|s= abc |pattern= %d |ignore_errors= true }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|match|s= abc |pattern= %d |ignore_errors= true }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|match|s= 0012001200 |pattern= 0*(%d*) }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|match|s= 0012001200 |pattern= 0*(%d*) }}&lt;br /&gt;
&lt;br /&gt;
=== pos ===&lt;br /&gt;
&lt;br /&gt;
This function returns a single character from the target string at position pos.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|pos|&amp;#039;&amp;#039;target_string&amp;#039;&amp;#039;|&amp;#039;&amp;#039;index_value&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|pos|target= &amp;#039;&amp;#039;target_string&amp;#039;&amp;#039; |pos= &amp;#039;&amp;#039;index_value&amp;#039;&amp;#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; target&lt;br /&gt;
: The string to search&lt;br /&gt;
; pos&lt;br /&gt;
: The index for the character to return&lt;br /&gt;
&lt;br /&gt;
The first character has an index value of 1.&lt;br /&gt;
&lt;br /&gt;
If one requests a negative value, this function will select a character by counting backwards&lt;br /&gt;
from the end of the string. In other words pos = -1 is the same as asking for the last character.&lt;br /&gt;
&lt;br /&gt;
A requested value of zero, or a value greater than the length of the string returns an error.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|pos| abcdefghi | 4 }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|pos| abcdefghi | 4 }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|pos|target= abcdefghi |pos= 4 }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|pos|target= abcdefghi |pos= 4 }}&lt;br /&gt;
&lt;br /&gt;
=== rep ===&lt;br /&gt;
&lt;br /&gt;
Repeats a string &amp;#039;&amp;#039;n&amp;#039;&amp;#039; times. A simple function to pipe string.rep to templates.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|rep|&amp;#039;&amp;#039;source&amp;#039;&amp;#039;|&amp;#039;&amp;#039;count&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; source&lt;br /&gt;
: The string to repeat&lt;br /&gt;
; count&lt;br /&gt;
: The number of repetitions.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|rep|hello|3}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|rep|hello|3}}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|rep| hello | 3 }}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|rep| hello | 3 }}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;span class=&amp;quot;anchor&amp;quot; id=&amp;quot;replace&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; replace (gsub) ===&lt;br /&gt;
&lt;br /&gt;
{{notice|text=Note that by default the pattern is understood as plain text as the {{var|plain flag}} {{nowrap|{{para|plain}}}} defaults to {{pval|true}}. To use a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto mw.ustring pattern]] you must set it to {{pval|false}}.}}&lt;br /&gt;
&lt;br /&gt;
This function allows one to replace a target string or pattern within another string. To Lua programmers: this function works internally by calling &amp;lt;code&amp;gt;[[mw:Extension:Scribunto/Lua_reference_manual#mw.ustring.gsub|mw.ustring.gsub]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|replace|&amp;#039;&amp;#039;source_str&amp;#039;&amp;#039;|&amp;#039;&amp;#039;pattern_string&amp;#039;&amp;#039;|&amp;#039;&amp;#039;replace_string&amp;#039;&amp;#039;|&amp;#039;&amp;#039;replacement_count&amp;#039;&amp;#039;|&amp;#039;&amp;#039;plain_flag&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|replace|source= &amp;#039;&amp;#039;source_string&amp;#039;&amp;#039; |pattern= &amp;#039;&amp;#039;pattern_string&amp;#039;&amp;#039; |replace= &amp;#039;&amp;#039;replace_string&amp;#039;&amp;#039; |count= &amp;#039;&amp;#039;replacement_count&amp;#039;&amp;#039; |plain= &amp;#039;&amp;#039;plain_flag&amp;#039;&amp;#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; source&lt;br /&gt;
: The string to search&lt;br /&gt;
; pattern&lt;br /&gt;
: The string or pattern to find within source&lt;br /&gt;
; replace&lt;br /&gt;
: The replacement text&lt;br /&gt;
; count&lt;br /&gt;
: The number of occurrences to replace; defaults to all&lt;br /&gt;
; plain&lt;br /&gt;
: Boolean flag indicating whether the pattern should be understood as plain text or as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:Lua|Lua]]-style [[w:regular expression|regular expression]]). Defaults to &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;. Pass parameter {{para|plain|false}} to use regular expressions.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|replace| abc123def456 |123|XYZ}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|replace| abc123def456 |123|XYZ}}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|replace|source= abc123def456 |pattern= 123 |replace= XYZ }}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|replace|source= abc123def456 |pattern= 123 |replace= XYZ }}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|replace| abc123def456 |%d+|XYZ|1|false}}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|replace| abc123def456 |%d+|XYZ|1|false}}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |count=1 |plain= false }}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |count=1 |plain= false }}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |plain= false }}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|replace|source= abc123def456 |pattern= %d+ |replace= XYZ |plain= false }}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|replace|source= 0012001200 |pattern= ^0* |plain= false }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|replace|source= 0012001200 |pattern= ^0* |plain= false }}&lt;br /&gt;
&lt;br /&gt;
=== str_find ===&lt;br /&gt;
&lt;br /&gt;
This function duplicates the behavior of {{tl|str_find}}, including all of its quirks. This is provided in order to support existing templates, but is NOT RECOMMENDED for new code and templates. New code is recommended to use the &amp;quot;find&amp;quot; function instead.&lt;br /&gt;
&lt;br /&gt;
Returns the first index in &amp;quot;source&amp;quot; that is a match to &amp;quot;target&amp;quot;. Indexing is 1-based, and the function returns -1 if the &amp;quot;target&amp;quot; string is not present in &amp;quot;source&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Important Note: If the &amp;quot;target&amp;quot; string is empty / missing, this function returns a value of &amp;quot;1&amp;quot;, which is generally unexpected behavior, and must be accounted for separately.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|str_find|&amp;#039;&amp;#039;source_string&amp;#039;&amp;#039;|&amp;#039;&amp;#039;target_string&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|str_find|source= &amp;#039;&amp;#039;source_string&amp;#039;&amp;#039; |target= &amp;#039;&amp;#039;target_string&amp;#039;&amp;#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; source&lt;br /&gt;
: The string to search&lt;br /&gt;
; target&lt;br /&gt;
: The string to find within source&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|str_find| abc123def }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|str_find| abc123def }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|str_find|source= abc123def }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|str_find|source= abc123def }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|str_find| abc123def |123}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|str_find| abc123def |123}}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|str_find|source= abc123def |target= 123 }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|str_find|source= abc123def |target= 123 }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|str_find| abc123def |not}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|str_find| abc123def |not}}&lt;br /&gt;
&lt;br /&gt;
=== sub ===&lt;br /&gt;
&lt;br /&gt;
This function returns a substring of the target string at specified inclusive, one-indexed indices.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|sub|&amp;#039;&amp;#039;target_string&amp;#039;&amp;#039;|&amp;#039;&amp;#039;start_index&amp;#039;&amp;#039;|&amp;#039;&amp;#039;end_index&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|sub|s= &amp;#039;&amp;#039;target_string&amp;#039;&amp;#039; |i= &amp;#039;&amp;#039;start_index&amp;#039;&amp;#039; |j= &amp;#039;&amp;#039;end_index&amp;#039;&amp;#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; s&lt;br /&gt;
: The string to return a subset of&lt;br /&gt;
; i&lt;br /&gt;
: The first index of the substring to return, defaults to 1.&lt;br /&gt;
; j&lt;br /&gt;
: The last index of the string to return, defaults to the last character.&lt;br /&gt;
&lt;br /&gt;
The first character of the string is assigned an index of 1. If either i or j is a negative value, it is interpreted the same as selecting a character by counting from the end of the string. Hence, a value of -1 is the same as selecting the last character of the string.&lt;br /&gt;
&lt;br /&gt;
If the requested indices are out of range for the given string, an error is reported. To avoid error messages, use {{ml|ustring|sub}} instead.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|sub| abcdefghi }}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|sub| abcdefghi }}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|sub|s= abcdefghi }}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|sub|s= abcdefghi }}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|sub| abcdefghi | 3 }}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|sub| abcdefghi | 3 }}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|sub|s= abcdefghi |i= 3 }}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|sub|s= abcdefghi |i= 3 }}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|sub| abcdefghi | 3 | 4 }}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|sub| abcdefghi | 3 | 4 }}&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;quot;{{#invoke:String|sub|s= abcdefghi |i= 3 |j= 4 }}&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → &amp;quot;{{#invoke:String|sub|s= abcdefghi |i= 3 |j= 4 }}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== sublength ===&lt;br /&gt;
&lt;br /&gt;
This function implements the features of {{tl|str sub old}} and is kept in order to maintain these older templates. It returns a substring of the target string starting at a specified index and of a specified length.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:&amp;lt;/nowiki&amp;gt;String|sublength|s= &amp;#039;&amp;#039;target_string&amp;#039;&amp;#039; |i= &amp;#039;&amp;#039;start_index&amp;#039;&amp;#039; |len= &amp;#039;&amp;#039;length&amp;#039;&amp;#039; &amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
; s&lt;br /&gt;
: The string&lt;br /&gt;
; i&lt;br /&gt;
: The starting index of the substring to return. The first character of the string is assigned an index of 0.&lt;br /&gt;
; len&lt;br /&gt;
: The length of the string to return, defaults to the last character.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|sublength|s= abcdefghi }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|sublength|s= abcdefghi }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|sublength|s= abcdefghi |i= 3 }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|sublength|s= abcdefghi |i= 3 }}&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:String|sublength|s= abcdefghi |i= 3 |len= 4 }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; → {{#invoke:String|sublength|s= abcdefghi |i= 3 |len= 4 }}&lt;br /&gt;
&lt;br /&gt;
== See also==&lt;br /&gt;
* {{mfl|MultiReplace|main}}&lt;br /&gt;
&lt;br /&gt;
{{String handling templates}}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
[[Category:Modules that add a tracking category]]&lt;br /&gt;
[[Category:Modules that manipulate strings|*]]&lt;br /&gt;
[[Category:Template metamodules]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:45:25 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:PageLinks</title>
			<link>https://feministwiki.org/w/index.php?title=Module:PageLinks&amp;diff=1921&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:PageLinks&amp;diff=1921&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;local ToolbarBuilder = require(&amp;#039;Module:Toolbar&amp;#039;)  local p = {} -- Page object local trackingCategories = {} -- Table for storing the tracking categories. local demo  -- Define a custom error message for this module. local function err(msg, section) 	local help 	if section then 		help = &amp;#039; (&lt;a href=&quot;/w/index.php?title=Template:Page-multi&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Template:Page-multi (page does not exist)&quot; rel=&quot;nofollow&quot;&gt;help&lt;/a&gt;)&amp;#039; 	else 		help = &amp;#039;&amp;#039; 	end 	local cat 	if demo == &amp;#039;yes&amp;#039; then 		cat = &amp;#039;&amp;#039; 	else 		cat = &amp;#039;&lt;a href=&quot;/w/index.php?title=Category:PageLinks_transclusions_with_errors&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Category:PageLinks transclusions with errors (page does not exist)&quot; rel=&quot;nofollow&quot;&gt;Category:PageLinks transclusions with errors&lt;/a&gt;&amp;#039; 	en...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local ToolbarBuilder = require(&amp;#039;Module:Toolbar&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {} -- Page object&lt;br /&gt;
local trackingCategories = {} -- Table for storing the tracking categories.&lt;br /&gt;
local demo&lt;br /&gt;
&lt;br /&gt;
-- Define a custom error message for this module.&lt;br /&gt;
local function err(msg, section)&lt;br /&gt;
	local help&lt;br /&gt;
	if section then&lt;br /&gt;
		help = &amp;#039; ([[Template:Page-multi#&amp;#039; .. section .. &amp;#039;|help]])&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		help = &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local cat&lt;br /&gt;
	if demo == &amp;#039;yes&amp;#039; then&lt;br /&gt;
		cat = &amp;#039;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		cat = &amp;#039;[[Category:PageLinks transclusions with errors]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;[[Template:Page-multi|Page-multi]] error: &amp;#039; .. msg &lt;br /&gt;
        .. help .. &amp;#039;.&amp;lt;/span&amp;gt;&amp;#039; .. cat&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------&lt;br /&gt;
--      To add more link types, write a function that produces an individual link, and put  --&lt;br /&gt;
--      it at the bottom of the list below. Then, add a link code for your function to the  --&lt;br /&gt;
--      &amp;quot;linktypes&amp;quot; table. Try and make the code three letters or less. &lt;br /&gt;
--&lt;br /&gt;
--      If you want more helper strings, you can define them in the generatePageDataStrings --&lt;br /&gt;
--      function below.                                                                     --&lt;br /&gt;
----------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------&lt;br /&gt;
--                                LINK FUNCTIONS START                                      --&lt;br /&gt;
----------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function makePageLink()&lt;br /&gt;
	return p.fullText and &amp;#039;[[:&amp;#039; .. p.fullText .. &amp;#039;|&amp;#039; .. p.fullText .. &amp;#039;]]&amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeTalkLink()&lt;br /&gt;
	return &amp;#039;[[&amp;#039; .. tostring(p.talkPageTitle) .. &amp;#039;|talk]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeTalkOrSubjectLink()&lt;br /&gt;
	if p.isTalkPage then&lt;br /&gt;
		return &amp;#039;[[:&amp;#039; .. tostring(p.subjectPageTitle) .. &amp;#039;|subject]]&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;[[&amp;#039; .. tostring(p.talkPageTitle) .. &amp;#039;|talk]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeWhatLinksHereLink()&lt;br /&gt;
	return &amp;#039;[[Special:WhatLinksHere/&amp;#039; .. p.fullText .. &amp;#039;|links]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeRelatedChangesLink()&lt;br /&gt;
	return &amp;#039;[[Special:RelatedChanges/&amp;#039; .. p.fullText .. &amp;#039;|related]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeEditLink()&lt;br /&gt;
	return &amp;#039;[[Special:EditPage/&amp;#039; .. p.fullText .. &amp;#039;|edit]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeHistoryLink()&lt;br /&gt;
	return &amp;#039;[[Special:PageHistory/&amp;#039; .. p.fullText .. &amp;#039;|history]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeWatchLink()&lt;br /&gt;
	return &amp;#039;[&amp;#039; .. p:fullUrl( &amp;#039;action=watch&amp;#039; ) .. &amp;#039; watch]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeTargetLogsLink()&lt;br /&gt;
	local url = mw.uri.fullUrl( &amp;#039;Special:Log&amp;#039;, &amp;#039;page=&amp;#039; .. mw.uri.encode(p.fullText) )&lt;br /&gt;
	return &amp;#039;[&amp;#039; .. tostring(url) .. &amp;#039; logs]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeEditFilterLogLink()&lt;br /&gt;
	local url = mw.uri.fullUrl( &amp;#039;Special:AbuseLog&amp;#039;, &amp;#039;wpSearchTitle=&amp;#039; .. mw.uri.encode(p.fullText) )&lt;br /&gt;
	return &amp;#039;[&amp;#039; .. tostring(url) .. &amp;#039; abuse&amp;amp;nbsp;filter&amp;amp;nbsp;log]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makePageViewsLink(args)&lt;br /&gt;
	local endDate, startDate = &amp;quot;&amp;quot;, &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	if args.date then&lt;br /&gt;
		local date = string.gsub(args.date,&amp;quot;-&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
		date = os.time{year=string.sub(date,1,4), month=string.sub(date,5,6), day=string.sub(date,7,8)}&lt;br /&gt;
		endDate = os.date(&amp;quot;%Y-%m-%d&amp;quot;, date - (1*86400))&lt;br /&gt;
		startDate = os.date(&amp;quot;%Y-%m-%d&amp;quot;, date - (30*86400))&lt;br /&gt;
	else&lt;br /&gt;
		endDate = os.date(&amp;quot;%Y-%m-%d&amp;quot;)&lt;br /&gt;
		startDate = os.date(&amp;quot;%Y-%m-%d&amp;quot;, os.time() - (60*86400))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local project = string.sub(mw.site.server,3)&lt;br /&gt;
	local url = mw.uri.encode(p.fullText, &amp;quot;WIKI&amp;quot;)&lt;br /&gt;
	local urlargs = &amp;#039;?start=&amp;#039; .. startDate .. &amp;#039;&amp;amp;end=&amp;#039; .. endDate .. &amp;#039;&amp;amp;project=&amp;#039; .. project .. &amp;#039;&amp;amp;pages=&amp;#039; .. tostring(url)&lt;br /&gt;
	&lt;br /&gt;
	return &amp;#039;[https://pageviews.toolforge.org/&amp;#039; .. urlargs .. &amp;#039; stats]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeHistory500Link()&lt;br /&gt;
	local url = p:fullUrl( &amp;#039;action=history&amp;amp;limit=500&amp;#039; );&lt;br /&gt;
	return &amp;#039;[&amp;#039; .. url .. &amp;#039; long history]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------&lt;br /&gt;
--                                   LINK FUNCTIONS END                                     --&lt;br /&gt;
--      To enable new link functions, add the code to the &amp;quot;linktypes&amp;quot; table directly below. --&lt;br /&gt;
----------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local linktypes = {&lt;br /&gt;
    t    = makeTalkLink,&lt;br /&gt;
    ts   = makeTalkOrSubjectLink,&lt;br /&gt;
    wlh  = makeWhatLinksHereLink,&lt;br /&gt;
    rc   = makeRelatedChangesLink,&lt;br /&gt;
    edit = makeEditLink,&lt;br /&gt;
    h    = makeHistoryLink,&lt;br /&gt;
    w    = makeWatchLink,&lt;br /&gt;
    tl   = makeTargetLogsLink,&lt;br /&gt;
    efl  = makeEditFilterLogLink,&lt;br /&gt;
    [&amp;#039;vlm-sgs&amp;#039;] = makePageViewsLink,&lt;br /&gt;
    pv   = makePageViewsLink,&lt;br /&gt;
    h500 = makeHistory500Link,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function getLink(linktype, args)&lt;br /&gt;
	local func = linktypes[linktype]&lt;br /&gt;
	if func then&lt;br /&gt;
		return func(args)&lt;br /&gt;
	else&lt;br /&gt;
        return err(&amp;#039;&amp;quot;&amp;#039; .. linktype .. &amp;#039;&amp;quot; is not a valid link code&amp;#039;, &amp;#039;Not a valid link code&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeToolbar(args)&lt;br /&gt;
    local targs = {}&lt;br /&gt;
    local numArgsExist = false&lt;br /&gt;
    for k, v in pairs(args) do&lt;br /&gt;
        if type(k) == &amp;#039;number&amp;#039; and p then&lt;br /&gt;
            numArgsExist = true&lt;br /&gt;
            targs[k] = getLink(v, args)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    targs.style = args.small and &amp;#039;font-size: 90%;&amp;#039;&lt;br /&gt;
    targs.separator = args.separator or &amp;#039;dot&amp;#039;&lt;br /&gt;
    targs.class = &amp;#039;lx&amp;#039;&lt;br /&gt;
    &lt;br /&gt;
    if numArgsExist == false then&lt;br /&gt;
        return nil -- Don&amp;#039;t return a toolbar if no numeric arguments exist. -- this bit looks odd&lt;br /&gt;
    else&lt;br /&gt;
        return ToolbarBuilder.main(targs)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function generatePageDataStrings(args)&lt;br /&gt;
    -- If the page name is absent or blank, return an error and a tracking category.&lt;br /&gt;
    if args.page == &amp;#039;&amp;#039; or not args.page then&lt;br /&gt;
        return err(&amp;#039;no page detected&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    local noError&lt;br /&gt;
    noError, p = pcall(mw.title.new, args.page)&lt;br /&gt;
    if not noError then&lt;br /&gt;
    	return err(&amp;#039;pcall mw.title failed&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if args.exists and (not p or p[&amp;#039;id&amp;#039;] == 0) then&lt;br /&gt;
    	return err(&amp;#039;page not found&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function generateTrackingCategories()&lt;br /&gt;
    if demo == &amp;#039;yes&amp;#039; then&lt;br /&gt;
        return &amp;#039;&amp;#039;&lt;br /&gt;
    else&lt;br /&gt;
        return table.concat(trackingCategories)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This function generates a table of all available link types, with their previews.&lt;br /&gt;
-- It is used in the module documentation.&lt;br /&gt;
local function getLinkTable(args)&lt;br /&gt;
	demo = args.demo -- Set the demo variable.&lt;br /&gt;
	-- Generate the page data strings and return any errors.&lt;br /&gt;
	local dataStringError = generatePageDataStrings(args)&lt;br /&gt;
	if dataStringError then&lt;br /&gt;
		return dataStringError&lt;br /&gt;
	end&lt;br /&gt;
	-- Build a table of all of the links.&lt;br /&gt;
	local header_row = mw.html.create(&amp;#039;tr&amp;#039;)&lt;br /&gt;
		:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Code&amp;#039;):done()&lt;br /&gt;
		:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Preview&amp;#039;):done()&lt;br /&gt;
	local result = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
    	:addClass(&amp;#039;wikitable&amp;#039;):addClass(&amp;#039;plainlinks&amp;#039;):addClass(&amp;#039;sortable&amp;#039;)&lt;br /&gt;
		:node(header_row)&lt;br /&gt;
	for code, _ in pairs(linktypes) do&lt;br /&gt;
		local row = mw.html.create(&amp;#039;tr&amp;#039;)&lt;br /&gt;
        	:tag(&amp;#039;th&amp;#039;):wikitext(code):done()&lt;br /&gt;
        	:tag(&amp;#039;td&amp;#039;):wikitext(getLink(code, args)):done()&lt;br /&gt;
		result:node(row)&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(result)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getSingleLink(args)&lt;br /&gt;
    demo = args.demo -- Set the demo variable.&lt;br /&gt;
    -- Generate the page data strings and return any errors.&lt;br /&gt;
    local dataStringError = generatePageDataStrings(args)&lt;br /&gt;
    if dataStringError then&lt;br /&gt;
        return dataStringError&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local linktype = args[1]&lt;br /&gt;
    if not linktype then &lt;br /&gt;
        return err(&amp;#039;no link type specified&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    local result = getLink(linktype, args)&lt;br /&gt;
    result = result .. generateTrackingCategories()&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getLinksToolbar(args)&lt;br /&gt;
    demo = args.demo -- Set the demo variable.&lt;br /&gt;
    -- Generate the page data strings and return any errors.&lt;br /&gt;
    local dataStringError = generatePageDataStrings(args)&lt;br /&gt;
    if dataStringError then&lt;br /&gt;
        return dataStringError&lt;br /&gt;
    end    &lt;br /&gt;
    &lt;br /&gt;
    -- Build the template output.&lt;br /&gt;
    local result = makeToolbar(args) -- Get the toolbar contents.&lt;br /&gt;
    result = (result or &amp;#039;&amp;#039;) .. generateTrackingCategories()&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getLinks(args)&lt;br /&gt;
	local result = getLinksToolbar(args)&lt;br /&gt;
&lt;br /&gt;
	if result then&lt;br /&gt;
		if args.sup then&lt;br /&gt;
			result = &amp;#039;&amp;lt;sup&amp;gt;&amp;#039; .. result .. &amp;#039;&amp;lt;/sup&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		result = &amp;#039;&amp;amp;nbsp;&amp;#039; .. result&lt;br /&gt;
	else&lt;br /&gt;
		result = &amp;#039;&amp;#039; -- If there are no links specified, don&amp;#039;t return the toolbar at all.&lt;br /&gt;
	end&lt;br /&gt;
	if args.nopage then&lt;br /&gt;
		result = &amp;#039;&amp;lt;span&amp;gt;&amp;#039; .. result .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		if p then&lt;br /&gt;
			result = &amp;#039;&amp;lt;span&amp;gt;&amp;#039; .. makePageLink() .. result .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			result = &amp;#039;&amp;lt;span&amp;gt;[[&amp;#039; .. args.page .. &amp;#039;]]&amp;#039; .. result .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getExampleLinks(args)&lt;br /&gt;
    -- This function enables example output without having to specify any&lt;br /&gt;
    -- parameters to #invoke.&lt;br /&gt;
    args.demo = &amp;#039;yes&amp;#039;&lt;br /&gt;
    args.page = &amp;#039;Example&amp;#039;&lt;br /&gt;
    return getLinks(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeWrapper(func)&lt;br /&gt;
    return function (frame)&lt;br /&gt;
        -- If called via #invoke, use the args passed into the invoking template.&lt;br /&gt;
        -- Otherwise, for testing purposes, assume args are being passed directly in.&lt;br /&gt;
        local origArgs&lt;br /&gt;
        if frame == mw.getCurrentFrame() then&lt;br /&gt;
            origArgs = frame:getParent().args&lt;br /&gt;
            for k, v in pairs(frame.args) do&lt;br /&gt;
                origArgs = frame.args&lt;br /&gt;
                break&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            origArgs = frame&lt;br /&gt;
        end&lt;br /&gt;
 &lt;br /&gt;
        -- Strip whitespace, and treat blank arguments as nil.&lt;br /&gt;
        -- &amp;#039;page&amp;#039;, and &amp;#039;separator&amp;#039; have different behaviour depending on&lt;br /&gt;
        -- whether they are blank or nil, so keep them as they are.&lt;br /&gt;
        local args = {}&lt;br /&gt;
        for k, v in pairs(origArgs) do&lt;br /&gt;
            v = mw.text.trim(v)&lt;br /&gt;
            if v ~= &amp;#039;&amp;#039; or k == &amp;#039;page&amp;#039; or k == &amp;#039;separator&amp;#039; then&lt;br /&gt;
                args[k] = v&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    &lt;br /&gt;
        return func(args)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
    main = makeWrapper(getLinks),&lt;br /&gt;
    single = makeWrapper(getSingleLink),&lt;br /&gt;
    toolbar = makeWrapper(getLinksToolbar),&lt;br /&gt;
    linktable = makeWrapper(getLinkTable),&lt;br /&gt;
    example = makeWrapper(getExampleLinks)&lt;br /&gt;
}&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:44:53 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:Namespace detect</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Namespace_detect&amp;diff=1920&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Namespace_detect&amp;diff=1920&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;-- -------------------------------------------------------------------------------- --                                                                            -- --                            NAMESPACE DETECT                                -- --                                                                            -- -- This module implements the {{namespace detect}} template in Lua, with a    -- -- few improvements: all namespaces and all namespace aliases are...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
--                                                                            --&lt;br /&gt;
--                            NAMESPACE DETECT                                --&lt;br /&gt;
--                                                                            --&lt;br /&gt;
-- This module implements the {{namespace detect}} template in Lua, with a    --&lt;br /&gt;
-- few improvements: all namespaces and all namespace aliases are supported,  --&lt;br /&gt;
-- and namespace names are detected automatically for the local wiki. The     --&lt;br /&gt;
-- module can also use the corresponding subject namespace value if it is     --&lt;br /&gt;
-- used on a talk page. Parameter names can be configured for different wikis --&lt;br /&gt;
-- by altering the values in the &amp;quot;cfg&amp;quot; table in                               --&lt;br /&gt;
-- Module:Namespace detect/config.                                            --&lt;br /&gt;
--                                                                            --&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local data = mw.loadData(&amp;#039;Module:Namespace detect/data&amp;#039;)&lt;br /&gt;
local argKeys = data.argKeys&lt;br /&gt;
local cfg = data.cfg&lt;br /&gt;
local mappings = data.mappings&lt;br /&gt;
&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local mArguments -- Lazily initialise Module:Arguments&lt;br /&gt;
local mTableTools -- Lazily initilalise Module:TableTools&lt;br /&gt;
local ustringLower = mw.ustring.lower&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function fetchValue(t1, t2)&lt;br /&gt;
	-- Fetches a value from the table t1 for the first key in array t2 where&lt;br /&gt;
	-- a non-nil value of t1 exists.&lt;br /&gt;
	for i, key in ipairs(t2) do&lt;br /&gt;
		local value = t1[key]&lt;br /&gt;
		if value ~= nil then&lt;br /&gt;
			return value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function equalsArrayValue(t, value)&lt;br /&gt;
	-- Returns true if value equals a value in the array t. Otherwise&lt;br /&gt;
	-- returns false.&lt;br /&gt;
	for i, arrayValue in ipairs(t) do&lt;br /&gt;
		if value == arrayValue 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;
function p.getPageObject(page)&lt;br /&gt;
	-- Get the page object, passing the function through pcall in case of&lt;br /&gt;
	-- errors, e.g. being over the expensive function count limit.&lt;br /&gt;
	if page then&lt;br /&gt;
		local success, pageObject = pcall(mw.title.new, page)&lt;br /&gt;
		if success then&lt;br /&gt;
			return pageObject&lt;br /&gt;
		else&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return mw.title.getCurrentTitle()&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Provided for backward compatibility with other modules&lt;br /&gt;
function p.getParamMappings()&lt;br /&gt;
	return mappings&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getNamespace(args)&lt;br /&gt;
	-- This function gets the namespace name from the page object.&lt;br /&gt;
	local page = fetchValue(args, argKeys.demopage)&lt;br /&gt;
	if page == &amp;#039;&amp;#039; then&lt;br /&gt;
		page = nil&lt;br /&gt;
	end&lt;br /&gt;
	local demospace = fetchValue(args, argKeys.demospace)&lt;br /&gt;
	if demospace == &amp;#039;&amp;#039; then&lt;br /&gt;
		demospace = nil&lt;br /&gt;
	end&lt;br /&gt;
	local subjectns = fetchValue(args, argKeys.subjectns)&lt;br /&gt;
	local ret&lt;br /&gt;
	if demospace then&lt;br /&gt;
		-- Handle &amp;quot;demospace = main&amp;quot; properly.&lt;br /&gt;
		if equalsArrayValue(argKeys.main, ustringLower(demospace)) then&lt;br /&gt;
			ret = mw.site.namespaces[0].name&lt;br /&gt;
		else&lt;br /&gt;
			ret = demospace&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		local pageObject = p.getPageObject(page)&lt;br /&gt;
		if pageObject then&lt;br /&gt;
			if pageObject.isTalkPage then&lt;br /&gt;
				-- Get the subject namespace if the option is set,&lt;br /&gt;
				-- otherwise use &amp;quot;talk&amp;quot;.&lt;br /&gt;
				if yesno(subjectns) then&lt;br /&gt;
					ret = mw.site.namespaces[pageObject.namespace].subject.name&lt;br /&gt;
				else&lt;br /&gt;
					ret = &amp;#039;talk&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				ret = pageObject.nsText&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return nil -- return nil if the page object doesn&amp;#039;t exist.&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	ret = ret:gsub(&amp;#039;_&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
	return ustringLower(ret)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	-- Check the parameters stored in the mappings table for any matches.&lt;br /&gt;
	local namespace = getNamespace(args) or &amp;#039;other&amp;#039; -- &amp;quot;other&amp;quot; avoids nil table keys&lt;br /&gt;
	local params = mappings[namespace] or {}&lt;br /&gt;
	local ret = fetchValue(args, params)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- If there were no matches, return parameters for other namespaces.&lt;br /&gt;
	-- This happens if there was no text specified for the namespace that&lt;br /&gt;
	-- was detected or if the demospace parameter is not a valid&lt;br /&gt;
	-- namespace. Note that the parameter for the detected namespace must be&lt;br /&gt;
	-- completely absent for this to happen, not merely blank.&lt;br /&gt;
	--]]&lt;br /&gt;
	if ret == nil then&lt;br /&gt;
		ret = fetchValue(args, argKeys.other)&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	mArguments = require(&amp;#039;Module:Arguments&amp;#039;)&lt;br /&gt;
	local args = mArguments.getArgs(frame, {removeBlanks = false})&lt;br /&gt;
	local ret = p._main(args)&lt;br /&gt;
	return ret or &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.table(frame)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Create a wikitable of all subject namespace parameters, for&lt;br /&gt;
	-- documentation purposes. The talk parameter is optional, in case it&lt;br /&gt;
	-- needs to be excluded in the documentation.&lt;br /&gt;
	--]]&lt;br /&gt;
	&lt;br /&gt;
	-- Load modules and initialise variables.&lt;br /&gt;
	mTableTools = require(&amp;#039;Module:TableTools&amp;#039;)&lt;br /&gt;
	local namespaces = mw.site.namespaces&lt;br /&gt;
	local cfg = data.cfg&lt;br /&gt;
	local useTalk = type(frame) == &amp;#039;table&amp;#039; &lt;br /&gt;
		and type(frame.args) == &amp;#039;table&amp;#039; &lt;br /&gt;
		and yesno(frame.args.talk) -- Whether to use the talk parameter.&lt;br /&gt;
	&lt;br /&gt;
	-- Get the header names.&lt;br /&gt;
	local function checkValue(value, default)&lt;br /&gt;
		if type(value) == &amp;#039;string&amp;#039; then&lt;br /&gt;
			return value&lt;br /&gt;
		else&lt;br /&gt;
			return default&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local nsHeader = checkValue(cfg.wikitableNamespaceHeader, &amp;#039;Namespace&amp;#039;)&lt;br /&gt;
	local aliasesHeader = checkValue(cfg.wikitableAliasesHeader, &amp;#039;Aliases&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Put the namespaces in order.&lt;br /&gt;
	local mappingsOrdered = {}&lt;br /&gt;
	for nsname, params in pairs(mappings) do&lt;br /&gt;
		if useTalk or nsname ~= &amp;#039;talk&amp;#039; then&lt;br /&gt;
			local nsid = namespaces[nsname].id&lt;br /&gt;
			-- Add 1, as the array must start with 1; nsid 0 would be lost otherwise.&lt;br /&gt;
			nsid = nsid + 1 &lt;br /&gt;
			mappingsOrdered[nsid] = params&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	mappingsOrdered = mTableTools.compressSparseArray(mappingsOrdered)&lt;br /&gt;
&lt;br /&gt;
	-- Build the table.&lt;br /&gt;
	local ret = &amp;#039;{| class=&amp;quot;wikitable&amp;quot;&amp;#039;&lt;br /&gt;
		.. &amp;#039;\n|-&amp;#039;&lt;br /&gt;
		.. &amp;#039;\n! &amp;#039; .. nsHeader&lt;br /&gt;
		.. &amp;#039;\n! &amp;#039; .. aliasesHeader&lt;br /&gt;
	for i, params in ipairs(mappingsOrdered) do&lt;br /&gt;
		for j, param in ipairs(params) do&lt;br /&gt;
			if j == 1 then&lt;br /&gt;
				ret = ret .. &amp;#039;\n|-&amp;#039;&lt;br /&gt;
					.. &amp;#039;\n| &amp;lt;code&amp;gt;&amp;#039; .. param .. &amp;#039;&amp;lt;/code&amp;gt;&amp;#039;&lt;br /&gt;
					.. &amp;#039;\n| &amp;#039;&lt;br /&gt;
			elseif j == 2 then&lt;br /&gt;
				ret = ret .. &amp;#039;&amp;lt;code&amp;gt;&amp;#039; .. param .. &amp;#039;&amp;lt;/code&amp;gt;&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				ret = ret .. &amp;#039;, &amp;lt;code&amp;gt;&amp;#039; .. param .. &amp;#039;&amp;lt;/code&amp;gt;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	ret = ret .. &amp;#039;\n|-&amp;#039;&lt;br /&gt;
		.. &amp;#039;\n|}&amp;#039;&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:43:45 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:Hatnote list</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Hatnote_list&amp;diff=1919&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Hatnote_list&amp;diff=1919&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;-------------------------------------------------------------------------------- --                           Module:Hatnote list                              -- --                                                                            -- -- This module produces and formats lists for use in hatnotes. In particular, -- -- it implements the for-see list, i.e. lists of &amp;quot;For X, see Y&amp;quot; statements,   -- -- as used in {{about}}, {{redirect}}, and their variants. Also introd...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--------------------------------------------------------------------------------&lt;br /&gt;
--                           Module:Hatnote list                              --&lt;br /&gt;
--                                                                            --&lt;br /&gt;
-- This module produces and formats lists for use in hatnotes. In particular, --&lt;br /&gt;
-- it implements the for-see list, i.e. lists of &amp;quot;For X, see Y&amp;quot; statements,   --&lt;br /&gt;
-- as used in {{about}}, {{redirect}}, and their variants. Also introduced    --&lt;br /&gt;
-- are andList &amp;amp; orList helpers for formatting lists with those conjunctions. --&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local mArguments --initialize lazily&lt;br /&gt;
local mFormatLink = require(&amp;#039;Module:Format link&amp;#039;)&lt;br /&gt;
local mHatnote = require(&amp;#039;Module:Hatnote&amp;#039;)&lt;br /&gt;
local libraryUtil = require(&amp;#039;libraryUtil&amp;#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- List stringification helper functions&lt;br /&gt;
--&lt;br /&gt;
-- These functions are used for stringifying lists, usually page lists inside&lt;br /&gt;
-- the &amp;quot;Y&amp;quot; portion of &amp;quot;For X, see Y&amp;quot; for-see items.&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--default options table used across the list stringification functions&lt;br /&gt;
local stringifyListDefaultOptions = {&lt;br /&gt;
	conjunction = &amp;quot;and&amp;quot;,&lt;br /&gt;
	separator = &amp;quot;,&amp;quot;,&lt;br /&gt;
	altSeparator = &amp;quot;;&amp;quot;,&lt;br /&gt;
	space = &amp;quot; &amp;quot;,&lt;br /&gt;
	formatted = false&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--Searches display text only&lt;br /&gt;
local function searchDisp(haystack, needle)&lt;br /&gt;
	return string.find(&lt;br /&gt;
		string.sub(haystack, (string.find(haystack, &amp;#039;|&amp;#039;) or 0) + 1), needle&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Stringifies a list generically; probably shouldn&amp;#039;t be used directly&lt;br /&gt;
local function stringifyList(list, options)&lt;br /&gt;
	-- Type-checks, defaults, and a shortcut&lt;br /&gt;
	checkType(&amp;quot;stringifyList&amp;quot;, 1, list, &amp;quot;table&amp;quot;)&lt;br /&gt;
	if #list == 0 then return nil end&lt;br /&gt;
	checkType(&amp;quot;stringifyList&amp;quot;, 2, options, &amp;quot;table&amp;quot;, true)&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	for k, v in pairs(stringifyListDefaultOptions) do&lt;br /&gt;
		if options[k] == nil then options[k] = v end&lt;br /&gt;
	end&lt;br /&gt;
	local s = options.space&lt;br /&gt;
	-- Format the list if requested&lt;br /&gt;
	if options.formatted then&lt;br /&gt;
		list = mFormatLink.formatPages(&lt;br /&gt;
			{categorizeMissing = mHatnote.missingTargetCat}, list&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	-- Set the separator; if any item contains it, use the alternate separator&lt;br /&gt;
	local separator = options.separator&lt;br /&gt;
	for k, v in pairs(list) do&lt;br /&gt;
		if searchDisp(v, separator) then&lt;br /&gt;
			separator = options.altSeparator&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Set the conjunction, apply Oxford comma, and force a comma if #1 has &amp;quot;§&amp;quot;&lt;br /&gt;
	local conjunction = s .. options.conjunction .. s&lt;br /&gt;
	if #list == 2 and searchDisp(list[1], &amp;quot;§&amp;quot;) or #list &amp;gt; 2 then&lt;br /&gt;
		conjunction = separator .. conjunction&lt;br /&gt;
	end&lt;br /&gt;
	-- Return the formatted string&lt;br /&gt;
	return mw.text.listToText(list, separator .. s, conjunction)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--DRY function&lt;br /&gt;
function p.conjList (conj, list, fmt)&lt;br /&gt;
	return stringifyList(list, {conjunction = conj, formatted = fmt})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Stringifies lists with &amp;quot;and&amp;quot; or &amp;quot;or&amp;quot;&lt;br /&gt;
function p.andList (...) return p.conjList(&amp;quot;and&amp;quot;, ...) end&lt;br /&gt;
function p.orList (...) return p.conjList(&amp;quot;or&amp;quot;, ...) end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- For see&lt;br /&gt;
--&lt;br /&gt;
-- Makes a &amp;quot;For X, see [[Y]].&amp;quot; list from raw parameters. Intended for the&lt;br /&gt;
-- {{about}} and {{redirect}} templates and their variants.&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--default options table used across the forSee family of functions&lt;br /&gt;
local forSeeDefaultOptions = {&lt;br /&gt;
	andKeyword = &amp;#039;and&amp;#039;,&lt;br /&gt;
	title = mw.title.getCurrentTitle().text,&lt;br /&gt;
	otherText = &amp;#039;other uses&amp;#039;,&lt;br /&gt;
	forSeeForm = &amp;#039;For %s, see %s.&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--Collapses duplicate punctuation at end of string, ignoring italics and links&lt;br /&gt;
local function punctuationCollapse (text)&lt;br /&gt;
 	return text:match(&amp;quot;[.?!](&amp;#039;?)%1(%]?)%2%.$&amp;quot;) and text:sub(1, -2) or text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Structures arguments into a table for stringification, &amp;amp; options&lt;br /&gt;
function p.forSeeArgsToTable (args, from, options)&lt;br /&gt;
	-- Type-checks and defaults&lt;br /&gt;
	checkType(&amp;quot;forSeeArgsToTable&amp;quot;, 1, args, &amp;#039;table&amp;#039;)&lt;br /&gt;
	checkType(&amp;quot;forSeeArgsToTable&amp;quot;, 2, from, &amp;#039;number&amp;#039;, true)&lt;br /&gt;
	from = from or 1&lt;br /&gt;
	checkType(&amp;quot;forSeeArgsToTable&amp;quot;, 3, options, &amp;#039;table&amp;#039;, true)&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	for k, v in pairs(forSeeDefaultOptions) do&lt;br /&gt;
		if options[k] == nil then options[k] = v end&lt;br /&gt;
	end&lt;br /&gt;
	-- maxArg&amp;#039;s gotten manually because getArgs() and table.maxn aren&amp;#039;t friends&lt;br /&gt;
	local maxArg = 0&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == &amp;#039;number&amp;#039; and k &amp;gt; maxArg then maxArg = k end&lt;br /&gt;
	end&lt;br /&gt;
	-- Structure the data out from the parameter list:&lt;br /&gt;
	-- * forTable is the wrapper table, with forRow rows&lt;br /&gt;
	-- * Rows are tables of a &amp;quot;use&amp;quot; string &amp;amp; a &amp;quot;pages&amp;quot; table of pagename strings&lt;br /&gt;
	-- * Blanks are left empty for defaulting elsewhere, but can terminate list&lt;br /&gt;
	local forTable = {}&lt;br /&gt;
	local i = from&lt;br /&gt;
	local terminated = false&lt;br /&gt;
	-- If there is extra text, and no arguments are given, give nil value&lt;br /&gt;
	-- to not produce default of &amp;quot;For other uses, see foo (disambiguation)&amp;quot;&lt;br /&gt;
	if options.extratext and i &amp;gt; maxArg then return nil end&lt;br /&gt;
	-- Loop to generate rows&lt;br /&gt;
	repeat&lt;br /&gt;
		-- New empty row&lt;br /&gt;
		local forRow = {}&lt;br /&gt;
		-- On blank use, assume list&amp;#039;s ended &amp;amp; break at end of this loop&lt;br /&gt;
		forRow.use = args[i]&lt;br /&gt;
		if not args[i] then terminated = true end&lt;br /&gt;
		-- New empty list of pages&lt;br /&gt;
		forRow.pages = {}&lt;br /&gt;
		-- Insert first pages item if present&lt;br /&gt;
		table.insert(forRow.pages, args[i + 1])&lt;br /&gt;
		-- If the param after next is &amp;quot;and&amp;quot;, do inner loop to collect params&lt;br /&gt;
		-- until the &amp;quot;and&amp;quot;&amp;#039;s stop. Blanks are ignored: &amp;quot;1|and||and|3&amp;quot; → {1, 3}&lt;br /&gt;
		while args[i + 2] == options.andKeyword do&lt;br /&gt;
			if args[i + 3] then&lt;br /&gt;
				table.insert(forRow.pages, args[i + 3])&lt;br /&gt;
			end&lt;br /&gt;
			-- Increment to next &amp;quot;and&amp;quot;&lt;br /&gt;
			i = i + 2&lt;br /&gt;
		end&lt;br /&gt;
		-- Increment to next use&lt;br /&gt;
		i = i + 2&lt;br /&gt;
		-- Append the row&lt;br /&gt;
		table.insert(forTable, forRow)&lt;br /&gt;
	until terminated or i &amp;gt; maxArg&lt;br /&gt;
&lt;br /&gt;
	return forTable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Stringifies a table as formatted by forSeeArgsToTable&lt;br /&gt;
function p.forSeeTableToString (forSeeTable, options)&lt;br /&gt;
	-- Type-checks and defaults&lt;br /&gt;
	checkType(&amp;quot;forSeeTableToString&amp;quot;, 1, forSeeTable, &amp;quot;table&amp;quot;, true)&lt;br /&gt;
	checkType(&amp;quot;forSeeTableToString&amp;quot;, 2, options, &amp;quot;table&amp;quot;, true)&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	for k, v in pairs(forSeeDefaultOptions) do&lt;br /&gt;
		if options[k] == nil then options[k] = v end&lt;br /&gt;
	end&lt;br /&gt;
	-- Stringify each for-see item into a list&lt;br /&gt;
	local strList = {}&lt;br /&gt;
	if forSeeTable then&lt;br /&gt;
		for k, v in pairs(forSeeTable) do&lt;br /&gt;
			local useStr = v.use or options.otherText&lt;br /&gt;
			local pagesStr =&lt;br /&gt;
				p.andList(v.pages, true) or&lt;br /&gt;
				mFormatLink._formatLink{&lt;br /&gt;
					categorizeMissing = mHatnote.missingTargetCat,&lt;br /&gt;
					link = mHatnote.disambiguate(options.title)&lt;br /&gt;
				}&lt;br /&gt;
			local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr)&lt;br /&gt;
			forSeeStr = punctuationCollapse(forSeeStr)&lt;br /&gt;
			table.insert(strList, forSeeStr)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if options.extratext then table.insert(strList, punctuationCollapse(options.extratext..&amp;#039;.&amp;#039;)) end&lt;br /&gt;
	-- Return the concatenated list&lt;br /&gt;
	return table.concat(strList, &amp;#039; &amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Produces a &amp;quot;For X, see [[Y]]&amp;quot; string from arguments. Expects index gaps&lt;br /&gt;
-- but not blank/whitespace values. Ignores named args and args &amp;lt; &amp;quot;from&amp;quot;.&lt;br /&gt;
function p._forSee (args, from, options)&lt;br /&gt;
	local forSeeTable = p.forSeeArgsToTable(args, from, options)&lt;br /&gt;
	return p.forSeeTableToString(forSeeTable, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- As _forSee, but uses the frame.&lt;br /&gt;
function p.forSee (frame, from, options)&lt;br /&gt;
	mArguments = require(&amp;#039;Module:Arguments&amp;#039;)&lt;br /&gt;
	return p._forSee(mArguments.getArgs(frame), from, options)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:43:26 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:Format link</title>
			<link>https://feministwiki.org/w/index.php?title=Module:Format_link&amp;diff=1918&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:Format_link&amp;diff=1918&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;-------------------------------------------------------------------------------- -- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with &amp;quot; § &amp;quot; as a separator rather than the standard MediaWiki &amp;quot;#&amp;quot;. Used in -- the {{format link}} template. -------------------------------------------------------------------------------- local libraryUtil = require(...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--------------------------------------------------------------------------------&lt;br /&gt;
-- Format link&lt;br /&gt;
--&lt;br /&gt;
-- Makes a wikilink from the given link and display values. Links are escaped&lt;br /&gt;
-- with colons if necessary, and links to sections are detected and displayed&lt;br /&gt;
-- with &amp;quot; § &amp;quot; as a separator rather than the standard MediaWiki &amp;quot;#&amp;quot;. Used in&lt;br /&gt;
-- the {{format link}} template.&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
local libraryUtil = require(&amp;#039;libraryUtil&amp;#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg&lt;br /&gt;
local mArguments -- lazily initialise [[Module:Arguments]]&lt;br /&gt;
local mError -- lazily initialise [[Module:Error]]&lt;br /&gt;
local yesno -- lazily initialise [[Module:Yesno]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function getArgs(frame)&lt;br /&gt;
	-- Fetches the arguments from the parent frame. Whitespace is trimmed and&lt;br /&gt;
	-- blanks are removed.&lt;br /&gt;
	mArguments = require(&amp;#039;Module:Arguments&amp;#039;)&lt;br /&gt;
	return mArguments.getArgs(frame, {parentOnly = true})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function removeInitialColon(s)&lt;br /&gt;
	-- Removes the initial colon from a string, if present.&lt;br /&gt;
	return s:match(&amp;#039;^:?(.*)&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function maybeItalicize(s, shouldItalicize)&lt;br /&gt;
	-- Italicize s if s is a string and the shouldItalicize parameter is true.&lt;br /&gt;
	if s and shouldItalicize then&lt;br /&gt;
		return &amp;#039;&amp;lt;i&amp;gt;&amp;#039; .. s .. &amp;#039;&amp;lt;/i&amp;gt;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function parseLink(link)&lt;br /&gt;
	-- Parse a link and return a table with the link&amp;#039;s components.&lt;br /&gt;
	-- These components are:&lt;br /&gt;
	-- - link: the link, stripped of any initial colon (always present)&lt;br /&gt;
	-- - page: the page name (may be nil)&lt;br /&gt;
	-- - section: the section name (may be nil)&lt;br /&gt;
	-- - display: the display text, if manually entered after a pipe (may be nil)&lt;br /&gt;
	link = removeInitialColon(link)&lt;br /&gt;
&lt;br /&gt;
	-- Find whether a faux display value has been added with the {{!}} magic&lt;br /&gt;
	-- word.&lt;br /&gt;
	local prePipe, display = link:match(&amp;#039;^(.-)|(.*)$&amp;#039;)&lt;br /&gt;
	link = prePipe or link&lt;br /&gt;
&lt;br /&gt;
	-- Find the page, if it exists.&lt;br /&gt;
	-- For links like [[#Bar]], the page will be nil.&lt;br /&gt;
	local preHash, postHash = link:match(&amp;#039;^(.-)#(.*)$&amp;#039;)&lt;br /&gt;
	local page&lt;br /&gt;
	if not preHash then&lt;br /&gt;
		-- We have a link like [[Foo]].&lt;br /&gt;
		page = link&lt;br /&gt;
	elseif preHash ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		-- We have a link like [[Foo#Bar]].&lt;br /&gt;
		page = preHash&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Find the section, if it exists.&lt;br /&gt;
	local section&lt;br /&gt;
	if postHash and postHash ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		section = postHash&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return {&lt;br /&gt;
		link = link,&lt;br /&gt;
		page = page,&lt;br /&gt;
		section = section,&lt;br /&gt;
		display = display,&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatDisplay(parsed, options)&lt;br /&gt;
	-- Formats a display string based on a parsed link table (matching the&lt;br /&gt;
	-- output of parseLink) and an options table (matching the input options for&lt;br /&gt;
	-- _formatLink).&lt;br /&gt;
	local page = maybeItalicize(parsed.page, options.italicizePage)&lt;br /&gt;
	local section = maybeItalicize(parsed.section, options.italicizeSection)&lt;br /&gt;
	if (not section) then&lt;br /&gt;
		return page&lt;br /&gt;
	elseif (not page) then&lt;br /&gt;
		return mw.ustring.format(&amp;#039;§&amp;amp;nbsp;%s&amp;#039;, section)&lt;br /&gt;
	else&lt;br /&gt;
		return mw.ustring.format(&amp;#039;%s §&amp;amp;nbsp;%s&amp;#039;, page, section)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function missingArgError(target)&lt;br /&gt;
	mError = require(&amp;#039;Module:Error&amp;#039;)&lt;br /&gt;
	return mError.error{message =&lt;br /&gt;
		&amp;#039;Error: no link or target specified! ([[&amp;#039; .. target .. &amp;#039;#Errors|help]])&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Main functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.formatLink(frame)&lt;br /&gt;
	-- The formatLink export function, for use in templates.&lt;br /&gt;
	yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	local link = args[1] or args.link&lt;br /&gt;
	local target = args[3] or args.target&lt;br /&gt;
	if not (link or target) then&lt;br /&gt;
		return missingArgError(&amp;#039;Template:Format link&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return p._formatLink{&lt;br /&gt;
		link = link,&lt;br /&gt;
		display = args[2] or args.display,&lt;br /&gt;
		target = target,&lt;br /&gt;
		italicizePage = yesno(args.italicizepage),&lt;br /&gt;
		italicizeSection = yesno(args.italicizesection),&lt;br /&gt;
		categorizeMissing = args.categorizemissing&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._formatLink(options)&lt;br /&gt;
	-- The formatLink export function, for use in modules.&lt;br /&gt;
	checkType(&amp;#039;_formatLink&amp;#039;, 1, options, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local function check(key, expectedType) --for brevity&lt;br /&gt;
		checkTypeForNamedArg(&lt;br /&gt;
			&amp;#039;_formatLink&amp;#039;, key, options[key], expectedType or &amp;#039;string&amp;#039;, true&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	check(&amp;#039;link&amp;#039;)&lt;br /&gt;
	check(&amp;#039;display&amp;#039;)&lt;br /&gt;
	check(&amp;#039;target&amp;#039;)&lt;br /&gt;
	check(&amp;#039;italicizePage&amp;#039;, &amp;#039;boolean&amp;#039;)&lt;br /&gt;
	check(&amp;#039;italicizeSection&amp;#039;, &amp;#039;boolean&amp;#039;)&lt;br /&gt;
	check(&amp;#039;categorizeMissing&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Normalize link and target and check that at least one is present&lt;br /&gt;
	if options.link == &amp;#039;&amp;#039; then options.link = nil end&lt;br /&gt;
	if options.target == &amp;#039;&amp;#039; then options.target = nil end&lt;br /&gt;
	if not (options.link or options.target) then&lt;br /&gt;
		return missingArgError(&amp;#039;Module:Format link&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local parsed = parseLink(options.link)&lt;br /&gt;
	local display = options.display or parsed.display&lt;br /&gt;
	local catMissing = options.categorizeMissing&lt;br /&gt;
	local category = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	-- Find the display text&lt;br /&gt;
	if not display then display = formatDisplay(parsed, options) end&lt;br /&gt;
&lt;br /&gt;
	-- Handle the target option if present&lt;br /&gt;
	if options.target then&lt;br /&gt;
		local parsedTarget = parseLink(options.target)&lt;br /&gt;
		parsed.link = parsedTarget.link&lt;br /&gt;
		parsed.page = parsedTarget.page&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Test if page exists if a diagnostic category is specified&lt;br /&gt;
	if catMissing and (mw.ustring.len(catMissing) &amp;gt; 0) then&lt;br /&gt;
		local title = nil&lt;br /&gt;
		if parsed.page then title = mw.title.new(parsed.page) end&lt;br /&gt;
		if title and (not title.isExternal) then&lt;br /&gt;
			local success, exists = pcall(function() return title.exists end)&lt;br /&gt;
			if success and not exists then&lt;br /&gt;
				category = mw.ustring.format(&amp;#039;[[Category:%s]]&amp;#039;, catMissing)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Prepend colon if appropriate&lt;br /&gt;
	local colon = parsed.page and &amp;quot;:&amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	-- Format the result as a link&lt;br /&gt;
	if parsed.link == display then&lt;br /&gt;
		return mw.ustring.format(&amp;#039;[[%s%s]]%s&amp;#039;, colon, parsed.link, category)&lt;br /&gt;
	else&lt;br /&gt;
		return mw.ustring.format(&amp;#039;[[%s%s|%s]]%s&amp;#039;, colon, parsed.link, display, category)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Derived convenience functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.formatPages(options, pages)&lt;br /&gt;
	-- Formats an array of pages using formatLink and the given options table,&lt;br /&gt;
	-- and returns it as an array. Nil values are not allowed.&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for i, page in ipairs(pages) do&lt;br /&gt;
		ret[i] = p._formatLink{&lt;br /&gt;
			link = page,&lt;br /&gt;
			categorizeMissing = options.categorizeMissing,&lt;br /&gt;
			italicizePage = options.italicizePage,&lt;br /&gt;
			italicizeSection = options.italicizeSection&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:43:06 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Module:For</title>
			<link>https://feministwiki.org/w/index.php?title=Module:For&amp;diff=1917&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Module:For&amp;diff=1917&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;local mArguments --initialize lazily local mHatlist = require(&amp;#039;Module:Hatnote list&amp;#039;) local mHatnote = require(&amp;#039;Module:Hatnote&amp;#039;) local yesNo = require(&amp;#039;Module:Yesno&amp;#039;) local p = {}  --Implements {{For}} from the frame --uses capitalized &amp;quot;For&amp;quot; to avoid collision with Lua reserved word &amp;quot;for&amp;quot; function p.For (frame) 	mArguments = require(&amp;#039;Module:Arguments&amp;#039;) 	return p._For(mArguments.getArgs(frame)) end  --Implements {{For}} but takes a manual arguments table function p._For (a...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local mArguments --initialize lazily&lt;br /&gt;
local mHatlist = require(&amp;#039;Module:Hatnote list&amp;#039;)&lt;br /&gt;
local mHatnote = require(&amp;#039;Module:Hatnote&amp;#039;)&lt;br /&gt;
local yesNo = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--Implements {{For}} from the frame&lt;br /&gt;
--uses capitalized &amp;quot;For&amp;quot; to avoid collision with Lua reserved word &amp;quot;for&amp;quot;&lt;br /&gt;
function p.For (frame)&lt;br /&gt;
	mArguments = require(&amp;#039;Module:Arguments&amp;#039;)&lt;br /&gt;
	return p._For(mArguments.getArgs(frame))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Implements {{For}} but takes a manual arguments table&lt;br /&gt;
function p._For (args)&lt;br /&gt;
	local use = args[1]&lt;br /&gt;
	if (not use) then&lt;br /&gt;
		return mHatnote.makeWikitextError(&lt;br /&gt;
			&amp;#039;no context parameter provided. Use {{other uses}} for &amp;quot;other uses&amp;quot; hatnotes.&amp;#039;,&lt;br /&gt;
			&amp;#039;Template:For#Errors&amp;#039;,&lt;br /&gt;
			args.category&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	local pages = {}&lt;br /&gt;
	function two (a, b) return a, b, 1 end --lets us run ipairs from 2&lt;br /&gt;
	for k, v in two(ipairs(args)) do table.insert(pages, v) end&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	local skipCat = title.isTalkPage or title.namespace == 2 --don&amp;#039;t categorise talk pages and userspace&lt;br /&gt;
	local oddCat = skipCat and &amp;#039;&amp;#039; or &amp;#039;[[Category:Hatnote templates using unusual parameters]]&amp;#039;&lt;br /&gt;
	local category = yesNo(args.category)&lt;br /&gt;
	return mHatnote._hatnote(&lt;br /&gt;
		mHatlist.forSeeTableToString({{use = use, pages = pages}}),&lt;br /&gt;
		{selfref = args.selfref}&lt;br /&gt;
	) .. (&lt;br /&gt;
			(use == &amp;#039;other uses&amp;#039;) and ((category == true) or (category == nil)) and&lt;br /&gt;
			oddCat or &amp;#039;&amp;#039;&lt;br /&gt;
		)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:42:47 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			
		</item>
		<item>
			<title>Template:String handling templates</title>
			<link>https://feministwiki.org/w/index.php?title=Template:String_handling_templates&amp;diff=1916&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:String_handling_templates&amp;diff=1916&amp;oldid=0</guid>
			<description>&lt;p&gt;Redirected page to &lt;a href=&quot;/wiki/Template:String-handling_templates&quot; title=&quot;Template:String-handling templates&quot;&gt;Template:String-handling templates&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#redirect [[Template:String-handling templates]]&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:42:26 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:String_handling_templates</comments>
		</item>
		<item>
			<title>Template:String-handling templates</title>
			<link>https://feministwiki.org/w/index.php?title=Template:String-handling_templates&amp;diff=1915&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:String-handling_templates&amp;diff=1915&amp;oldid=0</guid>
			<description>&lt;p&gt;Created page with &amp;quot;{{#invoke:Navbox with collapsible groups|navbox | name = String-handling templates | state = {{{state|expanded}}} | bodyclass = plainlist | title = String-handling templates &lt;a href=&quot;/w/index.php?title=Help:Manipulating_strings&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Help:Manipulating strings (page does not exist)&quot; rel=&quot;nofollow&quot;&gt;(help page)&lt;/a&gt; | selected = {{{selected|{{{expanded|{{{1|}}}}}}}}}  &amp;lt;!---------------------- Trimming -------------------------&amp;gt; | abbr1 = sub | sect1 = Substring (select chunk of string by its position) | content1 =  {{Aligned table |fullwidth=on |style=text-align: left; |...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#invoke:Navbox with collapsible groups|navbox&lt;br /&gt;
| name = String-handling templates&lt;br /&gt;
| state = {{{state|expanded}}}&lt;br /&gt;
| bodyclass = plainlist&lt;br /&gt;
| title = String-handling templates [[Help:Manipulating_strings|(help page)]]&lt;br /&gt;
| selected = {{{selected|{{{expanded|{{{1|}}}}}}}}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!---------------------- Trimming -------------------------&amp;gt;&lt;br /&gt;
| abbr1 = sub&lt;br /&gt;
| sect1 = Substring (select chunk of string by its position)&lt;br /&gt;
| content1 =  {{Aligned table |fullwidth=on |style=text-align: left; |col1width=50%;&lt;br /&gt;
  | {{Aligned table |style=padding-right: 2em;&lt;br /&gt;
    |col1style=width: 12em; text-align: right; padding-right: 0.75em;&lt;br /&gt;
    | {{tl|str sub new}} | Select a substring based on starting and ending index counted in either direction.&lt;br /&gt;
    | {{tl|str left}}      | Keep the first N characters of a string, or duplicate it to N characters.&lt;br /&gt;
    | {{tl|str crop}}      | Return all but the last N characters of a string.&lt;br /&gt;
    | {{tl|str index}}     | Return the N-th character of a string.&lt;br /&gt;
    }}&lt;br /&gt;
  | {{Aligned table&lt;br /&gt;
    |col1style=width: 12em; text-align: right; padding-right: 0.75em;&lt;br /&gt;
    | {{tl|str right}}     | Return substring starting at N-th character to end of string.&lt;br /&gt;
    | {{tl|str rightc}}    | Return the last N characters of a string; or a given value if empty.&lt;br /&gt;
    | {{tl|str sub old}}   | Return substring of given length starting at N-th character.&lt;br /&gt;
}} }}&lt;br /&gt;
&lt;br /&gt;
| abbr2 = trim&lt;br /&gt;
| sect2 = Trimming (select/remove chunk of string by character type)&lt;br /&gt;
| content2 =&lt;br /&gt;
{{Aligned table |fullwidth=on |style=text-align: left; |col1width=50%;&lt;br /&gt;
    | {{Aligned table |style=padding-right: 2em;&lt;br /&gt;
       |col1style=width: 12em; text-align: right; padding-right: 0.75em;&lt;br /&gt;
       | {{tl|trim}}                | Trim any leading or trailing whitespace&lt;br /&gt;
       | {{tl|str letter/trim}}     | Trim down to the beginning letters.&lt;br /&gt;
       | {{tl|str number/trim}}     | Trim down to the beginning numbers.&lt;br /&gt;
       | {{tl|trim brackets}}       | Trim any leading or trailing square brackets.&lt;br /&gt;
       | {{tl|trim quotes}}         | Trim leading or trailing matching quotes.&lt;br /&gt;
       | {{tl|trim leading}}        | Trim up to six instances of specified &amp;lt;prefix&amp;gt;.&lt;br /&gt;
      }}&lt;br /&gt;
    | {{Aligned table&lt;br /&gt;
       |col1style=width: 12em; text-align: right; padding-right: 0.75em;&lt;br /&gt;
       | {{tl|string split}}        | Extract a short string from a long string.&lt;br /&gt;
       | {{tl|first word}}          | Trim down to the first space.&lt;br /&gt;
       | {{tl|remove first word}}   | Remove anything before the first space.&lt;br /&gt;
       | {{tl|last word}}           | Trim down from the last space.&lt;br /&gt;
       | {{tl|remove last word}}    | Remove anything after the last space.&lt;br /&gt;
}} }}&lt;br /&gt;
&lt;br /&gt;
| abbr3 = specific&lt;br /&gt;
| group3 = Select/remove specific item from string&lt;br /&gt;
| content3 =&lt;br /&gt;
{{Aligned table |fullwidth=on |style=text-align:left; |col1width=50%;&lt;br /&gt;
    | {{Aligned table |style=padding-right: 2em;&lt;br /&gt;
       |col1style=width: 12em; text-align: right; padding-right: 0.75em;&lt;br /&gt;
       | {{tl|delink}}, {{tl|trim brackets}} | Removes wikilink brackets (wikicode); &amp;#039;&amp;#039;all&amp;#039;&amp;#039; or &amp;#039;&amp;#039;outer only&amp;#039;&amp;#039;.&lt;br /&gt;
       | {{tl|Plain text}}          | Removes wikicode (formatting and brackets)&lt;br /&gt;
       | {{tl|PAGENAMEBASE}}        | Trim off any parenthesis text at the end of a string (disambiguation).&lt;br /&gt;
       | {{tl|title disambig text}} | Returns text in parentheses at the end of a string (disambiguation).&lt;br /&gt;
      }}&lt;br /&gt;
    | {{Aligned table&lt;br /&gt;
       |col1style=width: 12em; text-align: right; padding-right: 0.75em;&lt;br /&gt;
       | {{tl|title year}}          | Returns the 3-or-4-digit year from a pagename, if any.&lt;br /&gt;
       | {{tl|title decade}}        | Returns the 4-digit decade from a pagename (e.g. &amp;quot;1740&amp;quot; from &amp;quot;Foo 1740s bar&amp;quot;), if any.&lt;br /&gt;
       | {{tl|title number}}        | Returns any number from a pagename.&lt;br /&gt;
       | {{tl|WikiProjectbasename}} | Removes &amp;quot;WikiProject&amp;quot; from a pagename.&lt;br /&gt;
   }} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----------- Insertion, replacement, length --------------&amp;gt;&lt;br /&gt;
| abbr4 = IRL&lt;br /&gt;
| sect4 = Insertion, replacement, and length&lt;br /&gt;
| content4 =&lt;br /&gt;
 {{Aligned table |style=margin: 0 auto 0; text-align: left;&lt;br /&gt;
  |  &amp;lt;!---(Insertion, replacement)---&amp;gt;&lt;br /&gt;
    {{Aligned table |style=padding-right: 2em;&lt;br /&gt;
     |col1style=text-align: right; padding-right: 0.75em;&lt;br /&gt;
     | {{tl|loop}}          | Repeat character string a specified number of times.&lt;br /&gt;
     | {{tl|replace}}       | Returns the string, after replacing &amp;#039;&amp;#039;all&amp;#039;&amp;#039; occurrences of a specified string with another string.&lt;br /&gt;
     | {{tl|str rep}}       | Returns the string, after replacing the first occurrence of a specified string with another string.&lt;br /&gt;
     | {{tl|digits}}        | Returns the string, after removing all characters that are not digits 0–9&lt;br /&gt;
     | {{tl|Nowiki}}        | Displays wikitext as plain text.&lt;br /&gt;
    }}&lt;br /&gt;
  |  &amp;lt;!---(Length)---&amp;gt;&lt;br /&gt;
    {{Aligned table&lt;br /&gt;
     |col1style=text-align: right; padding-right: 0.75em;&lt;br /&gt;
     | {{tl|str len}}       | Returns a string&amp;#039;s length.&lt;br /&gt;
     | {{tl|str ≥ len}}     | Check if a string is &amp;quot;longer or equally long&amp;quot; or &amp;quot;shorter&amp;quot; than a given length.&lt;br /&gt;
     | {{tl|str ≤ len}}     | Check if a string is &amp;quot;shorter or equally long&amp;quot; or &amp;quot;longer&amp;quot; than a given length.&lt;br /&gt;
     | {{tl|str ≠ len}}     | Check if a string is &amp;quot;not equal&amp;quot; or &amp;quot;equal&amp;quot; to a given length.&lt;br /&gt;
 }} }}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!----------------- Analysis, technical -------------------&amp;gt;&lt;br /&gt;
| abbr5 = anlys/tech&lt;br /&gt;
| sect5 = Analysis and searching&lt;br /&gt;
| content5 =&lt;br /&gt;
 {{Aligned table |style=margin: 0 auto 0; text-align: left;&lt;br /&gt;
  |  &amp;lt;!---(Analysis)---&amp;gt;&lt;br /&gt;
    {{Aligned table |style=padding-right: 2em;&lt;br /&gt;
     |col1style=text-align: right; padding-right: 0.75em;&lt;br /&gt;
     | {{tl|str startswith}}&amp;lt;br&amp;gt;{{tl|str endswith}}  | Check if a string starts or ends with a given string.&lt;br /&gt;
     | {{tl|str find}}, {{tl|strfind short}} |style2.2=vertical-align:middle;| Returns the numerical location of a given string in a string.&lt;br /&gt;
     | {{tl|str count}}     | Count the number of occurrences of a pattern within a string.&lt;br /&gt;
     | {{tl|string count in page}} | Count the number of occurrences of a string within a given page&amp;#039;s wikitext.&lt;br /&gt;
    }}&lt;br /&gt;
  |  &amp;lt;!---(Analysis cont&amp;#039;d)---&amp;gt;&lt;br /&gt;
    {{Aligned table&lt;br /&gt;
     |col1style=text-align: right; padding-right: 0.75em;&lt;br /&gt;
     | {{tl|Array}}         | Array item manipulation and retrieval.&lt;br /&gt;
     | {{tl|a or an}}       | Takes a noun and produces the appropriate indefinite article, based on whether the first letter is a vowel.&lt;br /&gt;
     | {{tl|in string}}     | Returns optional string when given string is not found&lt;br /&gt;
     | {{tl|Isnumeric}}     | Returns number when true, blank when not numeric.&lt;br /&gt;
     | {{tl|str letter}}    | Returns the number of letters that begin a string.&lt;br /&gt;
     | {{tl|str number}}    | Returns the number of numbers that begin a string.&lt;br /&gt;
 }} }}&lt;br /&gt;
|state1=&amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&amp;lt;!-- show everything on this template&amp;#039;s page --&amp;gt;&lt;br /&gt;
|state2=&amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|state3=&amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|state4=&amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|state5=&amp;lt;noinclude&amp;gt;expanded&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|state6=expanded&lt;br /&gt;
|group6=Modules and built-in functions&lt;br /&gt;
|list6={{div col|style=text-align:left}}&lt;br /&gt;
* [[:Module:String]], [[:Module:String2]], [[:Module:Ustring]], [[Module:Text]], [[:Template:Navbox wikitext-handling templates|wikitext handling]]: modules that together contain most necessary string functions.&lt;br /&gt;
* [[mw:Help:Magic words|Magic words]]: About &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{padleft:&amp;amp;#124;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{lc:&amp;amp;#124;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;,  &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{formatnum:&amp;amp;#124;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; etc.&lt;br /&gt;
* [[mw:Help:Extension:ParserFunctions|ParserFunctions]]: About &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#titleparts:&amp;amp;#124;}}, {{#expr:&amp;amp;#124;}}, {{#ifeq:&amp;amp;#124;}}, &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; etc.{{div col end}}&lt;br /&gt;
&amp;lt;!----------------------- below ---------------------------&amp;gt;&lt;br /&gt;
| belowclass = hlist&lt;br /&gt;
| below =&lt;br /&gt;
* [[:Category:String manipulation templates]] &lt;br /&gt;
** [[:c:Category:String manipulation templates|Commons]]&lt;br /&gt;
** [[:mw:Category:String manipulation templates|MediaWiki]]&lt;br /&gt;
** [[:m:Category:String manipulation templates|Meta-Wiki]]&lt;br /&gt;
** [[:d:Category:String manipulation templates|Wikidata]]&lt;br /&gt;
* [[:Category:Modules that manipulate strings]]&lt;br /&gt;
| tracking = no &amp;lt;!--(keep all these string templates (by /doc pages) out of the tracking category)--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:42:06 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:String-handling_templates</comments>
		</item>
		<item>
			<title>Template:Pf</title>
			<link>https://feministwiki.org/w/index.php?title=Template:Pf&amp;diff=1914&amp;oldid=0</link>
			<guid isPermaLink="false">https://feministwiki.org/w/index.php?title=Template:Pf&amp;diff=1914&amp;oldid=0</guid>
			<description>&lt;p&gt;Redirected page to &lt;a href=&quot;/wiki/Template:ParserFunction&quot; title=&quot;Template:ParserFunction&quot;&gt;Template:ParserFunction&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#REDIRECT [[Template:ParserFunction]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
}}&lt;/div&gt;</description>
			<pubDate>Tue, 22 Sep 2026 17:41:48 GMT</pubDate>
			<dc:creator>Minervaproject</dc:creator>
			<comments>https://feministwiki.org/wiki/Template_talk:Pf</comments>
		</item>
</channel></rss>