<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.foxopedia.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jterlecki</id>
	<title>Foxopedia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.foxopedia.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jterlecki"/>
	<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php/Special:Contributions/Jterlecki"/>
	<updated>2026-04-30T14:05:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Data:CS1/Identifier_limits.tab&amp;diff=1294</id>
		<title>Data:CS1/Identifier limits.tab</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Data:CS1/Identifier_limits.tab&amp;diff=1294"/>
		<updated>2025-08-12T03:25:53Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: Created page with &amp;quot;{     &amp;quot;license&amp;quot;: &amp;quot;CC0-1.0&amp;quot;,     &amp;quot;description&amp;quot;: {         &amp;quot;en&amp;quot;: &amp;quot;Limit values for Citation Style 1 and 2 identifier error checking&amp;quot;     },     &amp;quot;sources&amp;quot;: &amp;quot;For help, see documentation; ask at :en:Help talk:Citation Style 1&amp;quot;,     &amp;quot;schema&amp;quot;: {         &amp;quot;fields&amp;quot;: [             {                 &amp;quot;name&amp;quot;: &amp;quot;identifier&amp;quot;,                 &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,                 &amp;quot;title&amp;quot;: {                     &amp;quot;en&amp;quot;: &amp;quot;Identifier&amp;quot;                 }...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
    &amp;quot;license&amp;quot;: &amp;quot;CC0-1.0&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: {&lt;br /&gt;
        &amp;quot;en&amp;quot;: &amp;quot;Limit values for Citation Style 1 and 2 identifier error checking&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;sources&amp;quot;: &amp;quot;For help, see [[Data talk:CS1/Identifier limits.tab|documentation]]; ask at [[:en:Help talk:Citation Style 1]]&amp;quot;,&lt;br /&gt;
    &amp;quot;schema&amp;quot;: {&lt;br /&gt;
        &amp;quot;fields&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;name&amp;quot;: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
                &amp;quot;title&amp;quot;: {&lt;br /&gt;
                    &amp;quot;en&amp;quot;: &amp;quot;Identifier&amp;quot;&lt;br /&gt;
                }&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;name&amp;quot;: &amp;quot;limit&amp;quot;,&lt;br /&gt;
                &amp;quot;type&amp;quot;: &amp;quot;number&amp;quot;,&lt;br /&gt;
                &amp;quot;title&amp;quot;: {&lt;br /&gt;
                    &amp;quot;en&amp;quot;: &amp;quot;Identifier limit value&amp;quot;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;data&amp;quot;: [&lt;br /&gt;
        [&lt;br /&gt;
            &amp;quot;OCLC&amp;quot;,&lt;br /&gt;
            10820000000&lt;br /&gt;
        ],&lt;br /&gt;
        [&lt;br /&gt;
            &amp;quot;OSTI&amp;quot;,&lt;br /&gt;
            23010000&lt;br /&gt;
        ],&lt;br /&gt;
        [&lt;br /&gt;
            &amp;quot;PMC&amp;quot;,&lt;br /&gt;
            12500000&lt;br /&gt;
        ],&lt;br /&gt;
        [&lt;br /&gt;
            &amp;quot;PMID&amp;quot;,&lt;br /&gt;
            40900000&lt;br /&gt;
        ],&lt;br /&gt;
        [&lt;br /&gt;
            &amp;quot;RFC&amp;quot;,&lt;br /&gt;
            9300&lt;br /&gt;
        ],&lt;br /&gt;
        [&lt;br /&gt;
            &amp;quot;SSRN&amp;quot;,&lt;br /&gt;
            5400000&lt;br /&gt;
        ],&lt;br /&gt;
        [&lt;br /&gt;
            &amp;quot;S2CID&amp;quot;,&lt;br /&gt;
            280000000&lt;br /&gt;
        ]&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:User/JsonProbe&amp;diff=1293</id>
		<title>Module:User/JsonProbe</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:User/JsonProbe&amp;diff=1293"/>
		<updated>2025-08-12T03:20:36Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function hasLuaJson()&lt;br /&gt;
	return type(mw.ext) == &#039;table&#039;&lt;br /&gt;
		and type(mw.ext.data) == &#039;table&#039;&lt;br /&gt;
		and type(mw.ext.data.get) == &#039;function&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.run()&lt;br /&gt;
	if hasLuaJson() then&lt;br /&gt;
		return &#039;JsonConfig Lua: OK&#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;JsonConfig Lua: MISSING (no mw.ext.data.get)&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.fetch()&lt;br /&gt;
  local function hasLuaJson()&lt;br /&gt;
    return type(mw.ext) == &#039;table&#039;&lt;br /&gt;
      and type(mw.ext.data) == &#039;table&#039;&lt;br /&gt;
      and type(mw.ext.data.get) == &#039;function&#039;&lt;br /&gt;
  end&lt;br /&gt;
  if not hasLuaJson() then&lt;br /&gt;
    return &#039;JsonConfig Lua: MISSING (no mw.ext.data.get)&#039;&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  -- Try both space and underscore versions, WITH the Data: namespace&lt;br /&gt;
  local names = {&lt;br /&gt;
    &#039;Data:CS1/Identifier limits.tab&#039;,&lt;br /&gt;
    &#039;Data:CS1/Identifier_limits.tab&#039;,&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  local ok, res&lt;br /&gt;
  for _, name in ipairs(names) do&lt;br /&gt;
    ok, res = pcall(function() return mw.ext.data.get(name) end)&lt;br /&gt;
    if ok and type(res) == &#039;table&#039; and type(res.data) == &#039;table&#039; then&lt;br /&gt;
      return &#039;Commons Data reachable: rows=&#039; .. tostring(#res.data) .. &#039; (&#039; .. name .. &#039;)&#039;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if not ok then&lt;br /&gt;
    return &#039;pcall error: &#039; .. tostring(res)&lt;br /&gt;
  end&lt;br /&gt;
  return &#039;mw.ext.data.get returned non-table; likely no access to remote Data:&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=User:Jterlecki&amp;diff=1292</id>
		<title>User:Jterlecki</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=User:Jterlecki&amp;diff=1292"/>
		<updated>2025-08-12T03:19:01Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:User/JsonProbe|run}}&lt;br /&gt;
{{#invoke:User/JsonProbe|fetch}}&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:User/JsonProbe&amp;diff=1291</id>
		<title>Module:User/JsonProbe</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:User/JsonProbe&amp;diff=1291"/>
		<updated>2025-08-12T03:18:44Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local function hasLuaJson()&lt;br /&gt;
	return type(mw.ext) == &#039;table&#039;&lt;br /&gt;
		and type(mw.ext.data) == &#039;table&#039;&lt;br /&gt;
		and type(mw.ext.data.get) == &#039;function&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.run()&lt;br /&gt;
	if hasLuaJson() then&lt;br /&gt;
		return &#039;JsonConfig Lua: OK&#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;JsonConfig Lua: MISSING (no mw.ext.data.get)&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.fetch()&lt;br /&gt;
	if not hasLuaJson() then&lt;br /&gt;
		return &#039;JsonConfig Lua: MISSING (no mw.ext.data.get)&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Try both title forms (spaces vs underscores)&lt;br /&gt;
	local name1 = &#039;CS1/Identifier limits.tab&#039;&lt;br /&gt;
	local name2 = &#039;CS1/Identifier_limits.tab&#039;&lt;br /&gt;
&lt;br /&gt;
	local function tryGet(name)&lt;br /&gt;
		return pcall(function()&lt;br /&gt;
			return mw.ext.data.get(name)&lt;br /&gt;
		end)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- First attempt&lt;br /&gt;
	local ok, res = tryGet(name1)&lt;br /&gt;
	if not ok or type(res) ~= &#039;table&#039; or type(res.data) ~= &#039;table&#039; then&lt;br /&gt;
		-- Second attempt&lt;br /&gt;
		ok, res = tryGet(name2)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not ok then&lt;br /&gt;
		return &#039;pcall error: &#039; .. tostring(res)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if type(res) == &#039;table&#039; and type(res.data) == &#039;table&#039; then&lt;br /&gt;
		return &#039;Commons Data reachable: rows=&#039; .. tostring(#res.data)&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;mw.ext.data.get returned type: &#039; .. tostring(type(res))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=User:Jterlecki&amp;diff=1290</id>
		<title>User:Jterlecki</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=User:Jterlecki&amp;diff=1290"/>
		<updated>2025-08-12T03:16:43Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: Created page with &amp;quot;{{#invoke:User/JsonProbe|run}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:User/JsonProbe|run}}&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:User/JsonProbe&amp;diff=1289</id>
		<title>Module:User/JsonProbe</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:User/JsonProbe&amp;diff=1289"/>
		<updated>2025-08-12T03:16:06Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: Created page with &amp;quot;local p = {} function p.run()   if type(mw.ext) == &amp;#039;table&amp;#039; and type(mw.ext.data) == &amp;#039;table&amp;#039; and type(mw.ext.data.get) == &amp;#039;function&amp;#039; then     return &amp;#039;JsonConfig Lua: OK&amp;#039;   else     return &amp;#039;JsonConfig Lua: MISSING&amp;#039;   end end return p&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
function p.run()&lt;br /&gt;
  if type(mw.ext) == &#039;table&#039; and type(mw.ext.data) == &#039;table&#039; and type(mw.ext.data.get) == &#039;function&#039; then&lt;br /&gt;
    return &#039;JsonConfig Lua: OK&#039;&lt;br /&gt;
  else&lt;br /&gt;
    return &#039;JsonConfig Lua: MISSING&#039;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:Citation/CS1/Suggestions/doc&amp;diff=1288</id>
		<title>Module:Citation/CS1/Suggestions/doc</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:Citation/CS1/Suggestions/doc&amp;diff=1288"/>
		<updated>2025-08-12T03:01:22Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#lst:Module:Citation/CS1/doc|header}}&lt;br /&gt;
&lt;br /&gt;
This is a list of suggested alternatives to use when an unknown parameter is &lt;br /&gt;
encountered by a citation template.  When an unknown parameter is found within&lt;br /&gt;
a citation template an error message is generated, and when possible the&lt;br /&gt;
software makes a suggestion for what the user may have meant by consulting this&lt;br /&gt;
list of common mistakes and typos.&lt;br /&gt;
&lt;br /&gt;
Each entry takes the form:&lt;br /&gt;
[&#039;bad input parameter&#039;] = &#039;suggested parameter to use&#039;&lt;br /&gt;
&lt;br /&gt;
The bad input parameter will have been transformed to lower case before&lt;br /&gt;
checking this list, so all input forms on this list should be written in lowercase.&lt;br /&gt;
&lt;br /&gt;
{{#lst:Module:Citation/CS1/doc|module_components_table}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Module documentation pages]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Pp-template&amp;diff=1286</id>
		<title>Template:Pp-template</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Pp-template&amp;diff=1286"/>
		<updated>2025-08-12T03:01:22Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Protection banner|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;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:Catalog_lookup_link&amp;diff=1284</id>
		<title>Module:Catalog lookup link</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:Catalog_lookup_link&amp;diff=1284"/>
		<updated>2025-08-12T03:01:22Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&lt;br /&gt;
|1=, |2=, |3=, |4=, |5=, |6=, |7=, |8=, |9=: Optional unnamed parameters for 0 to 9 items to be listed.&lt;br /&gt;
	Whitespace is trimmed off both ends and the strings are urlencoded as if they were query strings.&lt;br /&gt;
|article-link=: Optional Wikipedia article name to link to.&lt;br /&gt;
|article-name=: Optional alternative text to be displayed for |article-link= link in front of catalog link.&lt;br /&gt;
	If not specified, |article-link= is used for display as well. If both parameters are not specified, the prefix is omitted completely.&lt;br /&gt;
|article-suffix=: Optional symbol to be displayed after article name or link (f.e. &amp;quot;:&amp;quot;; omitted, if not defined).&lt;br /&gt;
|link-prefix=: Optional prefix portion of url to external catalog item(s).&lt;br /&gt;
|link-suffix=: Optional suffix portion of url to external catalog item(s).&lt;br /&gt;
|item-prefix=: Optional text displayed in front of each external link (omitted, if not defined)&lt;br /&gt;
|item-suffix=: Optional text displayed immediately after each external link (omitted, if not defined)&lt;br /&gt;
|list-separator=: Optional alternative separator displayed between list items (default: &amp;quot;, &amp;quot;, if not specified). Whitespace must be encoded.&lt;br /&gt;
|list-leadout=: Optional alternative leadout text displayed between the last two list items (f.e. &amp;quot;and&amp;quot;, &amp;quot;or&amp;quot;, &amp;quot;as well as&amp;quot;, etc., default is the |list-separator= or &amp;quot;, &amp;quot;.)&lt;br /&gt;
|leadout-suffix=: Optional alternative suffix text of the leadout (see |list-leadout=) displayed between the last two list items.&lt;br /&gt;
	This gets added in front of the last list item instead of the default whitespace which is added without this parameter.&lt;br /&gt;
	This may be necessary if |list-separator= is used not only to define the list separator but also parts of the item prefix&lt;br /&gt;
	(except for the first one). (At present, this is used only to cope with format oddities of the {{MR}} template.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
new parameters that support access icons:&lt;br /&gt;
|allowed_icons= – comma-separated list of keywords: free, limited, registration, subscription, none, all (default; &#039;all&#039; implied when this parameter empty or omitted)&lt;br /&gt;
	the icons specified in the following parameters are checked agains the list in |allowed-icons=; not in the list? not displayed&lt;br /&gt;
|url-access-all= – applies specified icon to all items in the list; accepted keywords: free, limited, registration, subscription;&lt;br /&gt;
|url-accessn= – applies specified icon to item n of the list (the nth positional parameter); accepted keywords: free, limited, registration, subscription;&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
require(&#039;strict&#039;);&lt;br /&gt;
local getArgs = require (&#039;Module:Arguments&#039;).getArgs;&lt;br /&gt;
local lock_icons = {															--icon classes are defined in Module:Citation/CS1/styles.css&lt;br /&gt;
	[&#039;free&#039;] = {&#039;id-lock-free&#039;, &#039;Freely accessible&#039;},&lt;br /&gt;
	[&#039;registration&#039;] = {&#039;id-lock-registration&#039;, &#039;Free registration required&#039;},&lt;br /&gt;
	[&#039;limited&#039;] = {&#039;id-lock-limited&#039;, &#039;Free access subject to limited trial, subscription normally required&#039;},&lt;br /&gt;
	[&#039;subscription&#039;] = {&#039;id-lock-subscription&#039;, &#039;Paid subscription required&#039;},&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; I S _ S E T &amp;gt;------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Returns true if argument is set; false otherwise. Argument is &#039;set&#039; when it exists (not nil) or when it is not an empty string.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function is_set( var )&lt;br /&gt;
	return not (var == nil or var == &#039;&#039;);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[-------------------------&amp;lt; M A K E _ L A B E L &amp;gt;----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Makes a wikilinked or plain text label from arguments; when both link and display text is provided, makes a&lt;br /&gt;
wikilink in the form [[L|D]]; if only link is provided, makes a wikilinked label in the form [[L]]; if only display&lt;br /&gt;
is provided, makes a plain-text label; if neither are provided makes a label from suffix, returns an empty string else.&lt;br /&gt;
&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
local function make_label (link, display, suffix)&lt;br /&gt;
local label = &#039;&#039;;&lt;br /&gt;
	if is_set (link) then&lt;br /&gt;
		if is_set (display) then&lt;br /&gt;
			label = table.concat ({&#039;[[&#039;, link, &#039;|&#039;, display, &#039;]]&#039;});			-- make [[L|D]] wikilinked label&lt;br /&gt;
		else&lt;br /&gt;
			label = table.concat ({&#039;[[&#039;, link, &#039;]]&#039;});							-- make [[L]] wikilinked label&lt;br /&gt;
		end&lt;br /&gt;
	elseif is_set (display) then&lt;br /&gt;
		label = display;														-- plain-text label&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if is_set (label) then														&lt;br /&gt;
		return table.concat ({label, suffix, &#039;&amp;amp;nbsp;&#039;});						-- assemble the complete label&lt;br /&gt;
	else&lt;br /&gt;
		return suffix;															-- no space after suffix if no label&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; I C O N _ I N D E X _ G E T &amp;gt;--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
returns index into lock_icons[] if value assigned to |url-access= or |url-access-all= is a valid icon selector&lt;br /&gt;
(free, limited, registration, subscription)&lt;br /&gt;
&lt;br /&gt;
icon selection may be limited to a subset of the icons with:&lt;br /&gt;
	|allow_icons=&amp;lt;comma-separated list of allowed icons&amp;gt;&lt;br /&gt;
&amp;lt;comma-separated list of allowed icons&amp;gt; may be any of the keywords: free, limited, registration, subscription, none, all&lt;br /&gt;
&lt;br /&gt;
keyword &#039;all&#039; is default condition; &#039;all&#039; is implied when |allowed=icons= is empty or omitted&lt;br /&gt;
&lt;br /&gt;
keyword &#039;none&#039; for use with identifiers where icons are inappropriate (isbn, issn, oclc)&lt;br /&gt;
&lt;br /&gt;
Templates using this module should set:&lt;br /&gt;
	|allow_icons=free for most identifiers;&lt;br /&gt;
	|allow_icons=none for isbn, issn, oclc, etc&lt;br /&gt;
&lt;br /&gt;
|url-access= is alias of |url-access1=&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function icon_index_get (args, k)&lt;br /&gt;
	local icon;&lt;br /&gt;
	local param_name = (1 == k and is_set (args[&#039;url-access&#039;]) and &#039;url-access&#039;) or table.concat ({&#039;url-access&#039;, k});	-- make an enumerated parameter name&lt;br /&gt;
&lt;br /&gt;
	if is_set (args[&#039;url-access-all&#039;]) and lock_icons[args[&#039;url-access-all&#039;]] then	-- if set and valid&lt;br /&gt;
		icon = args[&#039;url-access-all&#039;];											-- tentatively &lt;br /&gt;
&lt;br /&gt;
	elseif is_set (args[param_name]) and lock_icons[args[param_name]] then		-- if set and valid&lt;br /&gt;
		icon = args[param_name];												-- tentatively&lt;br /&gt;
&lt;br /&gt;
	else&lt;br /&gt;
		return nil;																-- neither |url-access-all= nor |url-accessn= set so return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args[&#039;allow_icons&#039;] and args[&#039;allow_icons&#039;]:find (&#039;none&#039;) then			-- if &#039;none&#039; keyword is present&lt;br /&gt;
		return nil;																-- icons display not allowed&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not is_set (args[&#039;allow_icons&#039;]) or args[&#039;allow_icons&#039;]:find (&#039;all&#039;) or args[&#039;allow_icons&#039;]:find (icon) then	--if all allowed or specified icon is allowed&lt;br /&gt;
		return icon;															-- return selected icon as index into icon table&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; M A I N &amp;gt;----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Template entrypoint to this module; arguments come primarily from the parent frame though in templates that use&lt;br /&gt;
this module, |allowed-icons= is typically set, if needed, in the {{#invoke:}}.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function main (frame)&lt;br /&gt;
	local args = getArgs (frame);&lt;br /&gt;
	local out_text = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
	if is_set(args[1]) then&lt;br /&gt;
		local result = {};&lt;br /&gt;
		local label;&lt;br /&gt;
		&lt;br /&gt;
		local article_suffix = args[&#039;article-suffix&#039;] or args[&#039;article-postfix&#039;] or &#039;&#039;;&lt;br /&gt;
		local link_prefix = args[&#039;link-prefix&#039;] or &#039;&#039;;&lt;br /&gt;
		local link_suffix = args[&#039;link-suffix&#039;] or args[&#039;link-postfix&#039;] or &#039;&#039;;&lt;br /&gt;
		local item_prefix = args[&#039;item-prefix&#039;] or &#039;&#039;;&lt;br /&gt;
		local item_suffix = args[&#039;item-suffix&#039;] or args[&#039;item-postfix&#039;] or &#039;&#039;;&lt;br /&gt;
		local list_separator = args[&#039;list-separator&#039;] or &#039;, &#039;;&lt;br /&gt;
		local leadout_suffix = args[&#039;leadout-suffix&#039;] or args[&#039;leadout-postfix&#039;] or &#039; &#039;;&lt;br /&gt;
		local list_leadout;&lt;br /&gt;
&lt;br /&gt;
		local icon_index;&lt;br /&gt;
		&lt;br /&gt;
		if is_set (args[&#039;list-leadout&#039;]) then&lt;br /&gt;
			list_leadout = table.concat ({&lt;br /&gt;
				mw.ustring.gsub (args[&#039;list-leadout&#039;], &#039;^(%a)&#039;, &#039; %1&#039;),			-- insert leading space if first character is a letter&lt;br /&gt;
				leadout_suffix,&lt;br /&gt;
			});&lt;br /&gt;
		else&lt;br /&gt;
			list_leadout = &#039;&#039;;&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		label = make_label (args[&#039;article-link&#039;], args[&#039;article-name&#039;], article_suffix);&lt;br /&gt;
&lt;br /&gt;
		for k, item in ipairs (args) do											-- for each of the positional parameters&lt;br /&gt;
			item = mw.text.trim (item);											-- remove extraneous whitespace&lt;br /&gt;
			if is_set (link_prefix) then										-- if there is link prefix...&lt;br /&gt;
				item = table.concat ({											-- create an external link item&lt;br /&gt;
					&#039;[&#039;,														-- open ext link markup&lt;br /&gt;
					link_prefix,												-- url prefix&lt;br /&gt;
					mw.uri.encode (item),										-- item is part of url&lt;br /&gt;
					link_suffix,												-- url suffix&lt;br /&gt;
					&#039; &#039;,														-- required space between url and label&lt;br /&gt;
					item_prefix,												-- label prefix&lt;br /&gt;
					item,														-- item as label&lt;br /&gt;
					item_suffix,												-- item suffix&lt;br /&gt;
					&#039;]&#039;															-- close ext link markup&lt;br /&gt;
				});&lt;br /&gt;
&lt;br /&gt;
				icon_index = icon_index_get (args, k);							-- set if icon specified and allowed for this item; nil else&lt;br /&gt;
				if icon_index then&lt;br /&gt;
					item = table.concat ({										-- add access icon markup to this item&lt;br /&gt;
						&#039;&amp;lt;span class=&amp;quot;&#039;,										-- open the opening span tag; icon classes are defined in Module:Citation/CS1/styles.css&lt;br /&gt;
						lock_icons[icon_index][1],								-- add the appropriate lock icon class&lt;br /&gt;
						&#039;&amp;quot; title=&amp;quot;&#039;,											-- and the title attribute&lt;br /&gt;
						lock_icons[icon_index][2],								-- for an appropriate tool tip&lt;br /&gt;
						&#039;&amp;quot;&amp;gt;&#039;,													-- close the opening span tag&lt;br /&gt;
						item,&lt;br /&gt;
						&#039;&amp;lt;/span&amp;gt;&#039;,												-- and close the span&lt;br /&gt;
					});&lt;br /&gt;
				end	&lt;br /&gt;
			else&lt;br /&gt;
				item = table.concat ({											-- create an unlinked item&lt;br /&gt;
					item_prefix,												-- label prefix&lt;br /&gt;
					item,														-- item as label&lt;br /&gt;
					item_suffix,												-- item suffix&lt;br /&gt;
				});&lt;br /&gt;
			end&lt;br /&gt;
	&lt;br /&gt;
			table.insert (result, item);										-- add the item to the result list&lt;br /&gt;
		end&lt;br /&gt;
	&lt;br /&gt;
		out_text = frame:callParserFunction(&#039;#tag&#039;, {&#039;templatestyles&#039;, &#039;&#039;, src=table.concat({&lt;br /&gt;
			&#039;Module:Citation/CS1&#039;,&lt;br /&gt;
			mw.ustring.match(frame:getTitle(), &#039;/sandbox$&#039;) or &#039;&#039;,&lt;br /&gt;
			&#039;/styles.css&#039;,&lt;br /&gt;
		})});&lt;br /&gt;
		if is_set (args[&#039;list-leadout&#039;]) then&lt;br /&gt;
			out_text = table.concat ({out_text, label, mw.text.listToText (result, list_separator, list_leadout)});&lt;br /&gt;
		else&lt;br /&gt;
			out_text = table.concat ({out_text, label, table.concat (result, list_separator)});&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
	end	--is_set (args[1])&lt;br /&gt;
&lt;br /&gt;
	return out_text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {main = main};&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Catalog_lookup_link&amp;diff=1282</id>
		<title>Template:Catalog lookup link</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Catalog_lookup_link&amp;diff=1282"/>
		<updated>2025-08-12T03:01:22Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Catalog lookup link|main}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:Citation/CS1/COinS/doc&amp;diff=1280</id>
		<title>Module:Citation/CS1/COinS/doc</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:Citation/CS1/COinS/doc&amp;diff=1280"/>
		<updated>2025-08-12T03:01:22Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#lst:Module:Citation/CS1/doc|header}}&lt;br /&gt;
This page contains various functions render a cs1|2 template&#039;s metadata.&lt;br /&gt;
&lt;br /&gt;
{{#lst:Module:Citation/CS1/doc|module_components_table}}&lt;br /&gt;
&lt;br /&gt;
Other documentation:&lt;br /&gt;
* [[Module talk:Citation/CS1/COinS]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Module documentation pages]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:Citation/CS1/Whitelist/doc&amp;diff=1278</id>
		<title>Module:Citation/CS1/Whitelist/doc</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:Citation/CS1/Whitelist/doc&amp;diff=1278"/>
		<updated>2025-08-12T03:01:22Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#lst:Module:Citation/CS1/doc|header}}&lt;br /&gt;
&lt;br /&gt;
This module contains a list of all parameters that [[Module:Citation/CS1]] knows about. Each parameter is assigned a state.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;true&#039;&#039;&#039;: These parameters are valid and supported parameters&lt;br /&gt;
* &#039;&#039;&#039;false&#039;&#039;&#039;: These parameters are deprecated but still supported&lt;br /&gt;
* &#039;&#039;&#039;{{&#039;}}tracked{{&#039;}}&#039;&#039;&#039;: These parameters are valid and supported parameters tracked in an eponymous properties category.&lt;br /&gt;
* &#039;&#039;&#039;nil&#039;&#039;&#039;: Parameters not present are not supported, or no longer supported.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;basic_arguments&amp;lt;/code&amp;gt; table is supported by all templates.&lt;br /&gt;
&lt;br /&gt;
{{#lst:Module:Citation/CS1/doc|module_components_table}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Module documentation pages]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:Transclusion_count&amp;diff=1276</id>
		<title>Module:Transclusion count</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:Transclusion_count&amp;diff=1276"/>
		<updated>2025-08-12T03:01:21Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p._fetch(args)&lt;br /&gt;
	local template = nil&lt;br /&gt;
	local return_value = nil&lt;br /&gt;
&lt;br /&gt;
	-- Use demo parameter if it exists, otherwise use current template name&lt;br /&gt;
	local namespace = mw.title.getCurrentTitle().namespace&lt;br /&gt;
	if args[&amp;quot;demo&amp;quot;] and args[&amp;quot;demo&amp;quot;] ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		template = mw.ustring.gsub(args[&amp;quot;demo&amp;quot;],&amp;quot;^[Tt]emplate:&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	elseif namespace == 10 then -- Template namespace&lt;br /&gt;
		template = mw.title.getCurrentTitle().text&lt;br /&gt;
	elseif namespace == 828 then -- Module namespace&lt;br /&gt;
		template = (mw.site.namespaces[828].name .. &amp;quot;:&amp;quot; .. mw.title.getCurrentTitle().text)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- If in template or module namespace, look up count in /data&lt;br /&gt;
	if template ~= nil then&lt;br /&gt;
		namespace = mw.title.new(template, &amp;quot;Template&amp;quot;).namespace&lt;br /&gt;
		if namespace == 10 or namespace == 828 then&lt;br /&gt;
			template =  mw.ustring.gsub(template, &amp;quot;/doc$&amp;quot;, &amp;quot;&amp;quot;) -- strip /doc from end&lt;br /&gt;
			template =  mw.ustring.gsub(template, &amp;quot;/sandbox$&amp;quot;, &amp;quot;&amp;quot;) -- strip /sandbox from end&lt;br /&gt;
			local index = mw.ustring.sub(mw.title.new(template).text,1,1)&lt;br /&gt;
			local status, data = pcall(function ()&lt;br /&gt;
				return(mw.loadData(&#039;Module:Transclusion_count/data/&#039; .. (mw.ustring.find(index, &amp;quot;%a&amp;quot;) and index or &amp;quot;other&amp;quot;)))&lt;br /&gt;
			end)&lt;br /&gt;
			if status then&lt;br /&gt;
				return_value = tonumber(data[mw.ustring.gsub(template, &amp;quot; &amp;quot;, &amp;quot;_&amp;quot;)])&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- If database value doesn&#039;t exist, use value passed to template&lt;br /&gt;
	if return_value == nil and args[1] ~= nil then&lt;br /&gt;
		local arg1=mw.ustring.match(args[1], &#039;[%d,]+&#039;)&lt;br /&gt;
		if arg1 and arg1 ~= &#039;&#039; then&lt;br /&gt;
			return_value = tonumber(mw.getCurrentFrame():callParserFunction(&#039;formatnum&#039;, arg1, &#039;R&#039;))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return return_value	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.fetch(frame)&lt;br /&gt;
	return p._fetch(frame.args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]]&lt;br /&gt;
function p.tabulate()&lt;br /&gt;
	local list = {}&lt;br /&gt;
	for i = 65, 91 do&lt;br /&gt;
		local data = mw.loadData(&#039;Module:Transclusion count/data/&#039; .. ((i == 91) and &#039;other&#039; or string.char(i)))&lt;br /&gt;
		for name, count in pairs(data) do&lt;br /&gt;
			local title = mw.title.new(name, &amp;quot;Template&amp;quot;)&lt;br /&gt;
			table.insert(list, {title, count})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(list, function(a, b)&lt;br /&gt;
		return (a[2] == b[2]) and (a[1] &amp;lt; b[1]) or (a[2] &amp;gt; b[2])&lt;br /&gt;
	end)&lt;br /&gt;
	local lang = mw.getContentLanguage();&lt;br /&gt;
	for i = 1, #list do&lt;br /&gt;
		local protLevel = &amp;quot;&amp;quot;&lt;br /&gt;
		local title = list[i][1]&lt;br /&gt;
		if i &amp;lt; 400 then&lt;br /&gt;
			-- Stop at 400 to avoid breaching the expensive parser function call limit&lt;br /&gt;
			protLevel = title.protectionLevels.edit[1] or &amp;quot;(unprotected)&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		list[i] = (&#039;|-\n| %d || [[%s]] || %s || %s \n&#039;):format(i, title.fullText:gsub(&#039;_&#039;, &#039; &#039;), lang:formatNum(list[i][2]), protLevel)&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(list)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:String&amp;diff=1274</id>
		<title>Module:String</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:String&amp;diff=1274"/>
		<updated>2025-08-12T03:01:21Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[&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,&lt;br /&gt;
unnamed parameters, or a mixture.  If named parameters are used, Mediawiki will&lt;br /&gt;
automatically remove any leading or trailing whitespace from the parameter.&lt;br /&gt;
Depending on the intended use, it may be advantageous to either preserve or&lt;br /&gt;
remove such whitespace.&lt;br /&gt;
&lt;br /&gt;
Global options&lt;br /&gt;
    ignore_errors: If set to &#039;true&#039; or 1, any error condition will result in&lt;br /&gt;
        an empty string being returned rather than an error message.&lt;br /&gt;
&lt;br /&gt;
    error_category: If an error occurs, specifies the name of a category to&lt;br /&gt;
        include with the error message.  The default category is&lt;br /&gt;
        [Category:Errors reported by Module String].&lt;br /&gt;
&lt;br /&gt;
    no_category: If set to &#039;true&#039; or 1, no category will be added if an error&lt;br /&gt;
        is generated.&lt;br /&gt;
&lt;br /&gt;
Unit tests for this module are available at Module:String/tests.&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local str = {}&lt;br /&gt;
&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;
{{#invoke:String|len|target_string|}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|len|s=target_string}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string whose length to report&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the target string.&lt;br /&gt;
]]&lt;br /&gt;
function str.len( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;s&#039;} )&lt;br /&gt;
	local s = new_args[&#039;s&#039;] or &#039;&#039;&lt;br /&gt;
	return mw.ustring.len( s )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
sub&lt;br /&gt;
&lt;br /&gt;
This function returns a substring of the target string at specified indices.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|sub|target_string|start_index|end_index}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string to return a subset of&lt;br /&gt;
    i: The first index of the substring to return, defaults to 1.&lt;br /&gt;
    j: 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&lt;br /&gt;
is a negative value, it is interpreted the same as selecting a character by&lt;br /&gt;
counting from the end of the string.  Hence, a value of -1 is the same as&lt;br /&gt;
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&lt;br /&gt;
reported.&lt;br /&gt;
]]&lt;br /&gt;
function str.sub( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, { &#039;s&#039;, &#039;i&#039;, &#039;j&#039; } )&lt;br /&gt;
	local s = new_args[&#039;s&#039;] or &#039;&#039;&lt;br /&gt;
	local i = tonumber( new_args[&#039;i&#039;] ) or 1&lt;br /&gt;
	local j = tonumber( new_args[&#039;j&#039;] ) or -1&lt;br /&gt;
&lt;br /&gt;
	local len = mw.ustring.len( s )&lt;br /&gt;
&lt;br /&gt;
	-- Convert negatives for range checking&lt;br /&gt;
	if i &amp;lt; 0 then&lt;br /&gt;
		i = len + i + 1&lt;br /&gt;
	end&lt;br /&gt;
	if j &amp;lt; 0 then&lt;br /&gt;
		j = len + j + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if i &amp;gt; len or j &amp;gt; len or i &amp;lt; 1 or j &amp;lt; 1 then&lt;br /&gt;
		return str._error( &#039;String subset index out of range&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	if j &amp;lt; i then&lt;br /&gt;
		return str._error( &#039;String subset indices out of order&#039; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mw.ustring.sub( s, i, j )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
This function implements that features of {{str sub old}} and is kept in order&lt;br /&gt;
to maintain these older templates.&lt;br /&gt;
]]&lt;br /&gt;
function str.sublength( frame )&lt;br /&gt;
	local i = tonumber( frame.args.i ) or 0&lt;br /&gt;
	local len = tonumber( frame.args.len )&lt;br /&gt;
	return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) )&lt;br /&gt;
end&lt;br /&gt;
&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&lt;br /&gt;
specified pattern. It is exported for use in other modules&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
strmatch = require(&amp;quot;Module:String&amp;quot;)._match&lt;br /&gt;
sresult = strmatch( s, pattern, start, match, plain, nomatch )&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string to search&lt;br /&gt;
    pattern: The pattern or string to find within the string&lt;br /&gt;
    start: The index within the source string to start the search.  The first&lt;br /&gt;
        character of the string has index 1.  Defaults to 1.&lt;br /&gt;
    match: In some cases it may be possible to make multiple matches on a single&lt;br /&gt;
        string.  This specifies which match to return, where the first match is&lt;br /&gt;
        match= 1.  If a negative number is specified then a match is returned&lt;br /&gt;
        counting from the last match.  Hence match = -1 is the same as requesting&lt;br /&gt;
        the last match.  Defaults to 1.&lt;br /&gt;
    plain: A flag indicating that the pattern should be understood as plain&lt;br /&gt;
        text.  Defaults to false.&lt;br /&gt;
    nomatch: If no match is found, output the &amp;quot;nomatch&amp;quot; value rather than an error.&lt;br /&gt;
&lt;br /&gt;
For information on constructing Lua patterns, a form of [regular expression], see:&lt;br /&gt;
&lt;br /&gt;
* http://www.lua.org/manual/5.1/manual.html#5.4.1&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
-- This sub-routine is exported for use in other modules&lt;br /&gt;
function str._match( s, pattern, start, match_index, plain_flag, nomatch )&lt;br /&gt;
	if s == &#039;&#039; then&lt;br /&gt;
		return str._error( &#039;Target string is empty&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	if pattern == &#039;&#039; then&lt;br /&gt;
		return str._error( &#039;Pattern string is empty&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	start = tonumber(start) or 1&lt;br /&gt;
	if math.abs(start) &amp;lt; 1 or math.abs(start) &amp;gt; mw.ustring.len( s ) then&lt;br /&gt;
		return str._error( &#039;Requested start is out of range&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	if match_index == 0 then&lt;br /&gt;
		return str._error( &#039;Match index is out of range&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	if plain_flag then&lt;br /&gt;
		pattern = str._escapePattern( pattern )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result&lt;br /&gt;
	if match_index == 1 then&lt;br /&gt;
		-- Find first match is simple case&lt;br /&gt;
		result = mw.ustring.match( s, pattern, start )&lt;br /&gt;
	else&lt;br /&gt;
		if start &amp;gt; 1 then&lt;br /&gt;
			s = mw.ustring.sub( s, start )&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local iterator = mw.ustring.gmatch(s, pattern)&lt;br /&gt;
		if match_index &amp;gt; 0 then&lt;br /&gt;
			-- Forward search&lt;br /&gt;
			for w in iterator do&lt;br /&gt;
				match_index = match_index - 1&lt;br /&gt;
				if match_index == 0 then&lt;br /&gt;
					result = w&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- Reverse search&lt;br /&gt;
			local result_table = {}&lt;br /&gt;
			local count = 1&lt;br /&gt;
			for w in iterator do&lt;br /&gt;
				result_table[count] = w&lt;br /&gt;
				count = count + 1&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			result = result_table[ count + match_index ]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if result == nil then&lt;br /&gt;
		if nomatch == nil then&lt;br /&gt;
			return str._error( &#039;Match not found&#039; )&lt;br /&gt;
		else&lt;br /&gt;
			return nomatch&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&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&lt;br /&gt;
specified pattern.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|match|s=source_string|pattern=pattern_string|start=start_index&lt;br /&gt;
    |match=match_number|plain=plain_flag|nomatch=nomatch_output}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    s: The string to search&lt;br /&gt;
    pattern: The pattern or string to find within the string&lt;br /&gt;
    start: The index within the source string to start the search.  The first&lt;br /&gt;
        character of the string has index 1.  Defaults to 1.&lt;br /&gt;
    match: In some cases it may be possible to make multiple matches on a single&lt;br /&gt;
        string.  This specifies which match to return, where the first match is&lt;br /&gt;
        match= 1.  If a negative number is specified then a match is returned&lt;br /&gt;
        counting from the last match.  Hence match = -1 is the same as requesting&lt;br /&gt;
        the last match.  Defaults to 1.&lt;br /&gt;
    plain: A flag indicating that the pattern should be understood as plain&lt;br /&gt;
        text.  Defaults to false.&lt;br /&gt;
    nomatch: If no match is found, output the &amp;quot;nomatch&amp;quot; value rather than an error.&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from each string.  In some circumstances this is desirable, in&lt;br /&gt;
other cases one may want to preserve the whitespace.&lt;br /&gt;
&lt;br /&gt;
If the match_number or start_index are out of range for the string being queried, then&lt;br /&gt;
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&lt;br /&gt;
an empty string will be returned on any failure.&lt;br /&gt;
&lt;br /&gt;
For information on constructing Lua patterns, a form of [regular expression], see:&lt;br /&gt;
&lt;br /&gt;
* http://www.lua.org/manual/5.1/manual.html#5.4.1&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns&lt;br /&gt;
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
-- This is the entry point for #invoke:String|match&lt;br /&gt;
function str.match( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;s&#039;, &#039;pattern&#039;, &#039;start&#039;, &#039;match&#039;, &#039;plain&#039;, &#039;nomatch&#039;} )&lt;br /&gt;
	local s = new_args[&#039;s&#039;] or &#039;&#039;&lt;br /&gt;
	local start = tonumber( new_args[&#039;start&#039;] ) or 1&lt;br /&gt;
	local plain_flag = str._getBoolean( new_args[&#039;plain&#039;] or false )&lt;br /&gt;
	local pattern = new_args[&#039;pattern&#039;] or &#039;&#039;&lt;br /&gt;
	local match_index = math.floor( tonumber(new_args[&#039;match&#039;]) or 1 )&lt;br /&gt;
	local nomatch = new_args[&#039;nomatch&#039;]&lt;br /&gt;
&lt;br /&gt;
	return str._match( s, pattern, start, match_index, plain_flag, nomatch )&lt;br /&gt;
end&lt;br /&gt;
&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;
{{#invoke:String|pos|target_string|index_value}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|pos|target=target_string|pos=index_value}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    target: The string to search&lt;br /&gt;
    pos: The index for the character to return&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the target string.  In some circumstances this is desirable, in&lt;br /&gt;
other cases one may want to preserve the whitespace.&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;
function str.pos( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;target&#039;, &#039;pos&#039;} )&lt;br /&gt;
	local target_str = new_args[&#039;target&#039;] or &#039;&#039;&lt;br /&gt;
	local pos = tonumber( new_args[&#039;pos&#039;] ) or 0&lt;br /&gt;
&lt;br /&gt;
	if pos == 0 or math.abs(pos) &amp;gt; mw.ustring.len( target_str ) then&lt;br /&gt;
		return str._error( &#039;String index out of range&#039; )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return mw.ustring.sub( target_str, pos, pos )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
str_find&lt;br /&gt;
&lt;br /&gt;
This function duplicates the behavior of {{str_find}}, including all of its quirks.&lt;br /&gt;
This is provided in order to support existing templates, but is NOT RECOMMENDED for&lt;br /&gt;
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,&lt;br /&gt;
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&lt;br /&gt;
value of &amp;quot;1&amp;quot;, which is generally unexpected behavior, and must be accounted for&lt;br /&gt;
separatetly.&lt;br /&gt;
]]&lt;br /&gt;
function str.str_find( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;source&#039;, &#039;target&#039;} )&lt;br /&gt;
	local source_str = new_args[&#039;source&#039;] or &#039;&#039;&lt;br /&gt;
	local target_str = new_args[&#039;target&#039;] or &#039;&#039;&lt;br /&gt;
&lt;br /&gt;
	if target_str == &#039;&#039; then&lt;br /&gt;
		return 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local start = mw.ustring.find( source_str, target_str, 1, true )&lt;br /&gt;
	if start == nil then&lt;br /&gt;
		start = -1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return start&lt;br /&gt;
end&lt;br /&gt;
&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&lt;br /&gt;
string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    source: The string to search&lt;br /&gt;
    target: The string or pattern to find within source&lt;br /&gt;
    start: The index within the source string to start the search, defaults to 1&lt;br /&gt;
    plain: Boolean flag indicating that target should be understood as plain&lt;br /&gt;
        text and not as a Lua style regular expression, defaults to true&lt;br /&gt;
&lt;br /&gt;
If invoked using named parameters, Mediawiki will automatically remove any leading or&lt;br /&gt;
trailing whitespace from the parameter.  In some circumstances this is desirable, in&lt;br /&gt;
other cases one may want to preserve the whitespace.&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&lt;br /&gt;
within &amp;quot;source&amp;quot;.  Indices are 1-based.  If &amp;quot;target&amp;quot; is not found, then this&lt;br /&gt;
function returns 0.  If either &amp;quot;source&amp;quot; or &amp;quot;target&amp;quot; are missing / empty, this&lt;br /&gt;
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;
function str.find( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;source&#039;, &#039;target&#039;, &#039;start&#039;, &#039;plain&#039; } )&lt;br /&gt;
	local source_str = new_args[&#039;source&#039;] or &#039;&#039;&lt;br /&gt;
	local pattern = new_args[&#039;target&#039;] or &#039;&#039;&lt;br /&gt;
	local start_pos = tonumber(new_args[&#039;start&#039;]) or 1&lt;br /&gt;
	local plain = new_args[&#039;plain&#039;] or true&lt;br /&gt;
&lt;br /&gt;
	if source_str == &#039;&#039; or pattern == &#039;&#039; then&lt;br /&gt;
		return 0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	plain = str._getBoolean( plain )&lt;br /&gt;
&lt;br /&gt;
	local start = mw.ustring.find( source_str, pattern, start_pos, plain )&lt;br /&gt;
	if start == nil then&lt;br /&gt;
		start = 0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return start&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
replace&lt;br /&gt;
&lt;br /&gt;
This function allows one to replace a target string or pattern within another&lt;br /&gt;
string.&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}&lt;br /&gt;
OR&lt;br /&gt;
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|&lt;br /&gt;
   count=replacement_count|plain=plain_flag}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    source: The string to search&lt;br /&gt;
    pattern: The string or pattern to find within source&lt;br /&gt;
    replace: The replacement text&lt;br /&gt;
    count: The number of occurences to replace, defaults to all.&lt;br /&gt;
    plain: Boolean flag indicating that pattern should be understood as plain&lt;br /&gt;
        text and not as a Lua style regular expression, defaults to true&lt;br /&gt;
]]&lt;br /&gt;
function str.replace( frame )&lt;br /&gt;
	local new_args = str._getParameters( frame.args, {&#039;source&#039;, &#039;pattern&#039;, &#039;replace&#039;, &#039;count&#039;, &#039;plain&#039; } )&lt;br /&gt;
	local source_str = new_args[&#039;source&#039;] or &#039;&#039;&lt;br /&gt;
	local pattern = new_args[&#039;pattern&#039;] or &#039;&#039;&lt;br /&gt;
	local replace = new_args[&#039;replace&#039;] or &#039;&#039;&lt;br /&gt;
	local count = tonumber( new_args[&#039;count&#039;] )&lt;br /&gt;
	local plain = new_args[&#039;plain&#039;] or true&lt;br /&gt;
&lt;br /&gt;
	if source_str == &#039;&#039; or pattern == &#039;&#039; then&lt;br /&gt;
		return source_str&lt;br /&gt;
	end&lt;br /&gt;
	plain = str._getBoolean( plain )&lt;br /&gt;
&lt;br /&gt;
	if plain then&lt;br /&gt;
		pattern = str._escapePattern( pattern )&lt;br /&gt;
		replace = string.gsub( replace, &amp;quot;%%&amp;quot;, &amp;quot;%%%%&amp;quot; ) --Only need to escape replacement sequences.&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result&lt;br /&gt;
&lt;br /&gt;
	if count ~= nil then&lt;br /&gt;
		result = mw.ustring.gsub( source_str, pattern, replace, count )&lt;br /&gt;
	else&lt;br /&gt;
		result = mw.ustring.gsub( source_str, pattern, replace )&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    simple function to pipe string.rep to templates.&lt;br /&gt;
]]&lt;br /&gt;
function str.rep( frame )&lt;br /&gt;
	local repetitions = tonumber( frame.args[2] )&lt;br /&gt;
	if not repetitions then&lt;br /&gt;
		return str._error( &#039;function rep expects a number as second parameter, received &amp;quot;&#039; .. ( frame.args[2] or &#039;&#039; ) .. &#039;&amp;quot;&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	return string.rep( frame.args[1] or &#039;&#039;, repetitions )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
escapePattern&lt;br /&gt;
&lt;br /&gt;
This function escapes special characters from a Lua string pattern. See [1]&lt;br /&gt;
for details on how patterns work.&lt;br /&gt;
&lt;br /&gt;
[1] https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|escapePattern|pattern_string}}&lt;br /&gt;
&lt;br /&gt;
Parameters&lt;br /&gt;
    pattern_string: The pattern string to escape.&lt;br /&gt;
]]&lt;br /&gt;
function str.escapePattern( frame )&lt;br /&gt;
	local pattern_str = frame.args[1]&lt;br /&gt;
	if not pattern_str then&lt;br /&gt;
		return str._error( &#039;No pattern string specified&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	local result = str._escapePattern( pattern_str )&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
count&lt;br /&gt;
This function counts the number of occurrences of one string in another.&lt;br /&gt;
]]&lt;br /&gt;
function str.count(frame)&lt;br /&gt;
	local args = str._getParameters(frame.args, {&#039;source&#039;, &#039;pattern&#039;, &#039;plain&#039;})&lt;br /&gt;
	local source = args.source or &#039;&#039;&lt;br /&gt;
	local pattern = args.pattern or &#039;&#039;&lt;br /&gt;
	local plain = str._getBoolean(args.plain or true)&lt;br /&gt;
	if plain then&lt;br /&gt;
		pattern = str._escapePattern(pattern)&lt;br /&gt;
	end&lt;br /&gt;
	local _, count = mw.ustring.gsub(source, pattern, &#039;&#039;)&lt;br /&gt;
	return count&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
endswith&lt;br /&gt;
This function determines whether a string ends with another string.&lt;br /&gt;
]]&lt;br /&gt;
function str.endswith(frame)&lt;br /&gt;
	local args = str._getParameters(frame.args, {&#039;source&#039;, &#039;pattern&#039;})&lt;br /&gt;
	local source = args.source or &#039;&#039;&lt;br /&gt;
	local pattern = args.pattern or &#039;&#039;&lt;br /&gt;
	if pattern == &#039;&#039; then&lt;br /&gt;
		-- All strings end with the empty string.&lt;br /&gt;
		return &amp;quot;yes&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if mw.ustring.sub(source, -mw.ustring.len(pattern), -1) == pattern then&lt;br /&gt;
		return &amp;quot;yes&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
join&lt;br /&gt;
&lt;br /&gt;
Join all non empty arguments together; the first argument is the separator.&lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:String|join|sep|one|two|three}}&lt;br /&gt;
]]&lt;br /&gt;
function str.join(frame)&lt;br /&gt;
	local args = {}&lt;br /&gt;
	local sep&lt;br /&gt;
	for _, v in ipairs( frame.args ) do&lt;br /&gt;
		if sep then&lt;br /&gt;
			if v ~= &#039;&#039; then&lt;br /&gt;
				table.insert(args, v)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			sep = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat( args, sep or &#039;&#039; )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- findpagetext returns the position of a piece of text in a page&lt;br /&gt;
-- First positional parameter or |text is the search text&lt;br /&gt;
-- Optional parameter |title is the page title, defaults to current page&lt;br /&gt;
-- Optional parameter |plain is either true for plain search (default) or false for Lua pattern search&lt;br /&gt;
-- Optional parameter |nomatch is the return value when no match is found; default is nil&lt;br /&gt;
function str._findpagetext(args)&lt;br /&gt;
	-- process parameters&lt;br /&gt;
	local nomatch = args.nomatch or &amp;quot;&amp;quot;&lt;br /&gt;
	if nomatch == &amp;quot;&amp;quot; then nomatch = nil end&lt;br /&gt;
	--&lt;br /&gt;
	local text = mw.text.trim(args[1] or args.text or &amp;quot;&amp;quot;)&lt;br /&gt;
	if text == &amp;quot;&amp;quot; then return nil end&lt;br /&gt;
	--&lt;br /&gt;
	local title = args.title or &amp;quot;&amp;quot;&lt;br /&gt;
	local titleobj&lt;br /&gt;
	if title == &amp;quot;&amp;quot; then&lt;br /&gt;
		titleobj = mw.title.getCurrentTitle()&lt;br /&gt;
	else&lt;br /&gt;
		titleobj = mw.title.new(title)&lt;br /&gt;
	end&lt;br /&gt;
	--&lt;br /&gt;
	local plain = args.plain or &amp;quot;&amp;quot;&lt;br /&gt;
	if plain:sub(1, 1) == &amp;quot;f&amp;quot; then plain = false else plain = true end&lt;br /&gt;
	-- get the page content and look for &#039;text&#039; - return position or nomatch&lt;br /&gt;
	local content = titleobj and titleobj:getContent()&lt;br /&gt;
	return content and mw.ustring.find(content, text, 1, plain) or nomatch&lt;br /&gt;
end&lt;br /&gt;
function str.findpagetext(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local pargs = frame:getParent().args&lt;br /&gt;
	for k, v in pairs(pargs) do&lt;br /&gt;
		args[k] = v&lt;br /&gt;
	end&lt;br /&gt;
	if not (args[1] or args.text) then return nil end&lt;br /&gt;
	-- just the first value&lt;br /&gt;
	return (str._findpagetext(args))&lt;br /&gt;
end&lt;br /&gt;
--[[&lt;br /&gt;
Helper function that populates the argument list given that user may need to use a mix of&lt;br /&gt;
named and unnamed parameters.  This is relevant because named parameters are not&lt;br /&gt;
identical to unnamed parameters due to string trimming, and when dealing with strings&lt;br /&gt;
we sometimes want to either preserve or remove that whitespace depending on the application.&lt;br /&gt;
]]&lt;br /&gt;
function str._getParameters( frame_args, arg_list )&lt;br /&gt;
	local new_args = {}&lt;br /&gt;
	local index = 1&lt;br /&gt;
	local value&lt;br /&gt;
&lt;br /&gt;
	for _, arg in ipairs( arg_list ) do&lt;br /&gt;
		value = frame_args[arg]&lt;br /&gt;
		if value == nil then&lt;br /&gt;
			value = frame_args[index]&lt;br /&gt;
			index = index + 1&lt;br /&gt;
		end&lt;br /&gt;
		new_args[arg] = value&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return new_args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function to handle error messages.&lt;br /&gt;
]]&lt;br /&gt;
function str._error( error_str )&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	local error_category = frame.args.error_category or &#039;Errors reported by Module String&#039;&lt;br /&gt;
	local ignore_errors = frame.args.ignore_errors or false&lt;br /&gt;
	local no_category = frame.args.no_category or false&lt;br /&gt;
&lt;br /&gt;
	if str._getBoolean(ignore_errors) then&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local error_str = &#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;String Module Error: &#039; .. error_str .. &#039;&amp;lt;/strong&amp;gt;&#039;&lt;br /&gt;
	if error_category ~= &#039;&#039; and not str._getBoolean( no_category ) then&lt;br /&gt;
		error_str = &#039;[[Category:&#039; .. error_category .. &#039;]]&#039; .. error_str&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return error_str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper Function to interpret boolean strings&lt;br /&gt;
]]&lt;br /&gt;
function str._getBoolean( boolean_str )&lt;br /&gt;
	local boolean_value&lt;br /&gt;
&lt;br /&gt;
	if type( boolean_str ) == &#039;string&#039; then&lt;br /&gt;
		boolean_str = boolean_str:lower()&lt;br /&gt;
		if boolean_str == &#039;false&#039; or boolean_str == &#039;no&#039; or boolean_str == &#039;0&#039;&lt;br /&gt;
				or boolean_str == &#039;&#039; then&lt;br /&gt;
			boolean_value = false&lt;br /&gt;
		else&lt;br /&gt;
			boolean_value = true&lt;br /&gt;
		end&lt;br /&gt;
	elseif type( boolean_str ) == &#039;boolean&#039; then&lt;br /&gt;
		boolean_value = boolean_str&lt;br /&gt;
	else&lt;br /&gt;
		error( &#039;No boolean value found&#039; )&lt;br /&gt;
	end&lt;br /&gt;
	return boolean_value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Helper function that escapes all pattern characters so that they will be treated&lt;br /&gt;
as plain text.&lt;br /&gt;
]]&lt;br /&gt;
function str._escapePattern( pattern_str )&lt;br /&gt;
	return ( string.gsub( pattern_str, &amp;quot;[%(%)%.%%%+%-%*%?%[%^%$%]]&amp;quot;, &amp;quot;%%%0&amp;quot; ) )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return str&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:Citation/CS1/Suggestions&amp;diff=1272</id>
		<title>Module:Citation/CS1/Suggestions</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:Citation/CS1/Suggestions&amp;diff=1272"/>
		<updated>2025-08-12T03:01:21Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Please insert new suggestions in alphabetical order&lt;br /&gt;
-- The form is [&#039;incorrect&#039;] = &#039;correct&#039;,&lt;br /&gt;
&lt;br /&gt;
suggestions = {&lt;br /&gt;
	[&#039;ASIN-TLD&#039;] = &#039;asin-tld&#039;,													-- old parameter name&lt;br /&gt;
	[&#039;abruf&#039;] = &#039;access-date&#039;,													-- German&lt;br /&gt;
	[&#039;abruf-verborgen&#039;] = &#039;access-date&#039;,										-- German&lt;br /&gt;
	[&#039;accessmonth&#039;] = &#039;access-date&#039;,&lt;br /&gt;
	[&#039;accesso&#039;] = &#039;access-date&#039;,												-- Italian&lt;br /&gt;
	[&#039;accessyear&#039;] = &#039;access-date&#039;,&lt;br /&gt;
	[&#039;acessodata&#039;] = &#039;access-date&#039;,												-- Brazilian Portuguese&lt;br /&gt;
	[&#039;ad&#039;] = &#039;first&#039;,															-- Turkish&lt;br /&gt;
	[&#039;address&#039;] = &#039;location&#039;,&lt;br /&gt;
	[&#039;anno&#039;] = &#039;date&#039;,															-- Italian&lt;br /&gt;
	[&#039;annoaccesso&#039;] = &#039;access-date&#039;,											-- Italian&lt;br /&gt;
	[&#039;annodiaccesso&#039;] = &#039;access-date&#039;,											-- Italian&lt;br /&gt;
	[&#039;annooriginale&#039;] = &#039;orig-date&#039;,											-- Italian&lt;br /&gt;
	[&#039;année&#039;] = &#039;date&#039;,															-- French&lt;br /&gt;
	[&#039;apellido&#039;] = &#039;last&#039;,														-- Spanish&lt;br /&gt;
	[&#039;apellidos&#039;] = &#039;last&#039;,														-- Spanish&lt;br /&gt;
	[&#039;archiv-datum&#039;] = &#039;archive-date&#039;,											-- German&lt;br /&gt;
	[&#039;archiv-url&#039;] = &#039;archive-url&#039;,												-- German&lt;br /&gt;
	[&#039;archive date&#039;] = &#039;archive-date&#039;,                                          -- misspelling&lt;br /&gt;
	[&#039;archive url&#039;] = &#039;archive-url&#039;,											-- misspelling&lt;br /&gt;
	[&#039;archive-link&#039;] = &#039;archive-url&#039;,	                                        -- old parameter name&lt;br /&gt;
    [&#039;archiv-url&#039;] = &#039;archive-url&#039;,												-- German	&lt;br /&gt;
    [&#039;arkivdatum&#039;] = &#039;archive-date&#039;,											-- Swedish, Norwegian&lt;br /&gt;
    [&#039;arkivurl&#039;] = &#039;archive-url&#039;,											    -- Swedish, Norwegian	&lt;br /&gt;
    [&#039;artist&#039;] = &#039;others&#039;,&lt;br /&gt;
	[&#039;arşiv-tarihi&#039;] = &#039;archive-date&#039;,											-- Turkish&lt;br /&gt;
	[&#039;arşiv-url&#039;] = &#039;archive-url&#039;,												-- Turkish&lt;br /&gt;
	[&#039;arşivtarihi&#039;] = &#039;archive-date&#039;,											-- Turkish&lt;br /&gt;
	[&#039;arşivurl&#039;] = &#039;archive-url&#039;,												-- Turkish&lt;br /&gt;
	[&#039;auflage&#039;] = &#039;edition&#039;,													-- German&lt;br /&gt;
	[&#039;auteur&#039;] = &#039;author&#039;,														-- French&lt;br /&gt;
	[&#039;auther&#039;] = &#039;author&#039;,                                                      -- misspelling&lt;br /&gt;
	[&#039;author link&#039;] = &#039;author-link&#039;,											-- Polish&lt;br /&gt;
	[&#039;authorfirst&#039;] = &#039;author-first&#039;,											-- old parameter name&lt;br /&gt;
	[&#039;authorgiven&#039;] = &#039;author-given&#039;,											-- old parameter name&lt;br /&gt;
	[&#039;authorlast&#039;] = &#039;author-last&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;authormask&#039;] = &#039;author-mask&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;authorsurname&#039;] = &#039;author-surname&#039;,										-- old parameter name&lt;br /&gt;
	[&#039;autor&#039;] = &#039;author&#039;,														-- Spanish, German (singular and plural)&lt;br /&gt;
	[&#039;autore&#039;] = &#039;author&#039;,														-- Italian&lt;br /&gt;
	[&#039;autthor&#039;] = &#039;author&#039;,                                                     -- misspelling&lt;br /&gt;
	[&#039;ay&#039;] = &#039;month&#039;,															-- Turkish&lt;br /&gt;
	[&#039;año&#039;] = &#039;date&#039;,															-- Spanish&lt;br /&gt;
	[&#039;año-original&#039;] = &#039;orig-date&#039;,												-- Spanish&lt;br /&gt;
	[&#039;añoacceso&#039;] = &#039;access-date&#039;,												-- Spanish&lt;br /&gt;
	[&#039;añooriginal&#039;] = &#039;orig-date&#039;,												-- Spanish&lt;br /&gt;
	[&#039;band&#039;] = &#039;volume&#039;,														-- German&lt;br /&gt;
	[&#039;bandreihe&#039;] = &#039;volume&#039;,													-- German&lt;br /&gt;
	[&#039;baskı&#039;] = &#039;edition&#039;,														-- Turkish&lt;br /&gt;
	[&#039;başlık&#039;] = &#039;title&#039;,														-- Turkish&lt;br /&gt;
	[&#039;began&#039;] = &#039;date&#039;,															-- old parameter name (cite serial only); or orig-date=&lt;br /&gt;
	[&#039;booktitle&#039;] = &#039;book-title&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;ch&#039;] = &#039;language&#039;,														-- German (as &#039;language=de-CH&#039;)&lt;br /&gt;
	[&#039;chapter_title&#039;] = &#039;chapter&#039;,&lt;br /&gt;
	[&#039;chapterurl&#039;] = &#039;chapter-url&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;cid&#039;] = &#039;ref&#039;,															-- Italian&lt;br /&gt;
	[&#039;cilt&#039;] = &#039;volume&#039;,														-- Turkish&lt;br /&gt;
	[&#039;cita&#039;] = &#039;quote&#039;,															-- Spanish&lt;br /&gt;
	[&#039;citazione&#039;] = &#039;quote&#039;,													-- Italian&lt;br /&gt;
	[&#039;città&#039;] = &#039;location&#039;,														-- Italian&lt;br /&gt;
	[&#039;city&#039;] = &#039;location&#039;,														-- old parameter name (cite serial only)&lt;br /&gt;
	[&#039;coauthor&#039;] = &#039;author&#039;,&lt;br /&gt;
	[&#039;coauthors&#039;] = &#039;author&#039;,&lt;br /&gt;
	[&#039;coautores&#039;] = &#039;author&#039;,													-- Spanish&lt;br /&gt;
	[&#039;coautori&#039;] = &#039;author&#039;,													-- Italian&lt;br /&gt;
	[&#039;cognome&#039;] = &#039;last&#039;,														-- Italian&lt;br /&gt;
	[&#039;conferenceurl&#039;] = &#039;conference-url&#039;,										-- old parameter name&lt;br /&gt;
	[&#039;consulté le&#039;] = &#039;access-date&#039;,											-- French&lt;br /&gt;
	[&#039;contributionurl&#039;] = &#039;contribution-url&#039;,									-- old parameter name&lt;br /&gt;
	[&#039;curatore&#039;] = &#039;publisher&#039;,													-- Italian&lt;br /&gt;
	[&#039;czasopismo&#039;] = &#039;journal&#039;,													-- Polish&lt;br /&gt;
	[&#039;data dostępu&#039;] = &#039;access-date&#039;,											-- Polish&lt;br /&gt;
	[&#039;data&#039;] = &#039;date&#039;,															-- Polish, Italian&lt;br /&gt;
	[&#039;dataaccesso&#039;] = &#039;access-date&#039;,											-- Italian&lt;br /&gt;
	[&#039;dataarchivio&#039;] = &#039;archive-date&#039;,											-- Italian&lt;br /&gt;
	[&#039;datum&#039;] = &#039;date&#039;,															-- German, Swedish&lt;br /&gt;
	[&#039;dead-url&#039;] = &#039;url-status&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;deadlink&#039;] = &#039;url-status&#039;,                                                -- old parameter name&lt;br /&gt;
	[&#039;deadurl&#039;] = &#039;url-status&#039;,													-- old parameter name&lt;br /&gt;
	[&#039;dergi&#039;] = &#039;work&#039;,															-- Turkish&lt;br /&gt;
	[&#039;dil&#039;] = &#039;language&#039;,														-- Turkish&lt;br /&gt;
	[&#039;displayauthors&#039;] = &#039;display-authors&#039;,										-- old parameter name&lt;br /&gt;
	[&#039;displayeditors&#039;] = &#039;display-editors&#039;,										-- old parameter name&lt;br /&gt;
	[&#039;distributor&#039;] = &#039;publisher&#039;,&lt;br /&gt;
	[&#039;dnb&#039;] = &#039;id&#039;,																-- German (as &#039;id={{DNB-IDN|...}}&#039;)&lt;br /&gt;
	[&#039;doi-broken&#039;] = &#039;doi-broken-date&#039;,											-- old parameter alias&lt;br /&gt;
	[&#039;doi-inactive&#039;] = &#039;doi-broken-date&#039;,										-- invalid name found in mainspace&lt;br /&gt;
	[&#039;doi-inactive-date&#039;] = &#039;doi-broken-date&#039;,									-- old parameter alias&lt;br /&gt;
	[&#039;doi_brokendate&#039;] = &#039;doi-broken-date&#039;,										-- old parameter alias&lt;br /&gt;
	[&#039;doi_inactivedate&#039;] = &#039;doi-inactive-date&#039;,									-- old parameter alias&lt;br /&gt;
	[&#039;doibroken&#039;] = &#039;doi-broken-date&#039;,											-- invalid name found in mainspace&lt;br /&gt;
	[&#039;doiinactive&#039;] = &#039;doi-broken-date&#039;,										-- invalid name found in mainspace&lt;br /&gt;
	[&#039;e-print&#039;] = &#039;eprint&#039;,														-- misspelling&lt;br /&gt;
	-- [&#039;ed&#039;] = &#039;edition&#039;,														-- avoid suggestion as in English this could be short for editor or edition&lt;br /&gt;
	-- [&#039;editora&#039;] = &#039;publisher&#039;,												-- can be either editor or publisher&lt;br /&gt;
	-- [&#039;editore&#039;] = &#039;agency&#039;,													-- can be either publisher or agency&lt;br /&gt;
	-- [&#039;editori&#039;] = &#039;editor&#039;,													-- can be either editor or publisher&lt;br /&gt;
	-- [&#039;editorial&#039;] = &#039;publisher&#039;,												-- can be either publisher or work&lt;br /&gt;
	[&#039;editoin&#039;] = &#039;edition&#039;,													-- misspelling&lt;br /&gt;
	[&#039;editon&#039;] = &#039;edition&#039;,														-- misspelling&lt;br /&gt;
	[&#039;editorfirst&#039;] = &#039;editor-first&#039;,											-- old parameter name&lt;br /&gt;
	[&#039;editorgiven&#039;] = &#039;editor-given&#039;,											-- old parameter name&lt;br /&gt;
	[&#039;editorlast&#039;] = &#039;editor-last&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;editorlink&#039;] = &#039;editor-link&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;editormask&#039;] = &#039;editor-mask&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;editors&#039;] = &#039;editor&#039;,														-- old parameter name (can be emulated using multiple singular |editor= params)&lt;br /&gt;
	[&#039;editorsurname&#039;] = &#039;editor-surname&#039;,										-- old parameter name&lt;br /&gt;
	[&#039;edizione&#039;] = &#039;edition&#039;,													-- Italian&lt;br /&gt;
	[&#039;embargo&#039;] = &#039;pmc-embargo-date&#039;,											-- old parameter name&lt;br /&gt;
	[&#039;ended&#039;] = &#039;date&#039;,															-- old parameter name (cite serial only)&lt;br /&gt;
	[&#039;en ligne le&#039;] = &#039;archive-date&#039;,											-- French&lt;br /&gt;
	[&#039;encyclopædia&#039;] = &#039;encyclopedia&#039;,&lt;br /&gt;
	[&#039;enlaceautor&#039;] = &#039;author-link&#039;,											-- Spanish&lt;br /&gt;
	[&#039;enlaceroto&#039;] = &#039;url-status&#039;,												-- Spanish&lt;br /&gt;
	[&#039;episodelink&#039;] = &#039;episode-link&#039;,											-- old parameter name&lt;br /&gt;
	[&#039;erişimtarihi&#039;] = &#039;access-date&#039;,											-- Turkish&lt;br /&gt;
	[&#039;eser&#039;] = &#039;work&#039;,															-- Turkish&lt;br /&gt;
	[&#039;family&#039;] = &#039;surname&#039;,														-- misguess&lt;br /&gt;
	[&#039;fecha&#039;] = &#039;date&#039;,															-- Spanish&lt;br /&gt;
	[&#039;fechaacceso&#039;] = &#039;access-date&#039;,											-- Spanish&lt;br /&gt;
	[&#039;fechaarchivo&#039;] = &#039;archive-date&#039;,											-- Spanish&lt;br /&gt;
	[&#039;filetype&#039;] = &#039;format&#039;,&lt;br /&gt;
	[&#039;foramt&#039;] = &#039;format&#039;,														-- misspelling&lt;br /&gt;
	[&#039;fore-name&#039;] = &#039;given&#039;,													-- misguess/misspelling&lt;br /&gt;
	[&#039;forename&#039;] = &#039;given&#039;,														-- misguess&lt;br /&gt;
	[&#039;författare&#039;] = &#039;author&#039;,                                                  -- Swedish, Norwegian&lt;br /&gt;
    [&#039;formato&#039;] = &#039;format&#039;,														-- Spanish, Italian, Polish&lt;br /&gt;
	[&#039;frist&#039;] = &#039;first&#039;,														-- misspelling&lt;br /&gt;
	[&#039;fundstelle&#039;] = &#039;at&#039;,														-- German&lt;br /&gt;
	[&#039;gazete&#039;] = &#039;work&#039;,														-- Turkish&lt;br /&gt;
	[&#039;giornale&#039;] = &#039;journal&#039;,													-- Italian&lt;br /&gt;
    [&#039;hämtdatum&#039;] = &#039;access-date&#039;,											    -- Swedish	&lt;br /&gt;
    [&#039;herausgeber&#039;] = &#039;editor&#039;,													-- German (singular and plural)&lt;br /&gt;
	[&#039;hrsg&#039;] = &#039;publisher&#039;,														-- German&lt;br /&gt;
	[&#039;hrsgreihe&#039;] = &#039;editor&#039;,													-- German&lt;br /&gt;
	[&#039;idioma&#039;] = &#039;language&#039;,													-- Spanish&lt;br /&gt;
	[&#039;ignore-isbn-error&#039;] = &#039;isbn&#039;,												-- old parameter (can be fully emulated using ((syntax)))&lt;br /&gt;
	[&#039;ignoreisbnerror&#039;] = &#039;isbn&#039;,												-- old parameter alias (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))&lt;br /&gt;
	[&#039;imię&#039;] = &#039;first&#039;,															-- Polish&lt;br /&gt;
	[&#039;in-set&#039;] = &#039;inset&#039;,														-- misspelling&lt;br /&gt;
	[&#039;interviewerlink&#039;] = &#039;interviewer-link&#039;,									-- old parameter alias&lt;br /&gt;
	[&#039;interviewermask&#039;] = &#039;interviewer-mask&#039;,									-- old parameter alias&lt;br /&gt;
	[&#039;isbndefekt&#039;] = &#039;isbn&#039;,													-- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))&lt;br /&gt;
	[&#039;isbnformalfalsch&#039;] = &#039;isbn&#039;,												-- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))&lt;br /&gt;
	[&#039;isbnistformalfalsch&#039;] = &#039;isbn&#039;,											-- German (suggest |isbn as |ignore-isbn-error is deprecated), not a direct replacement, but can be fully emulated using ((syntax))&lt;br /&gt;
	[&#039;isnb&#039;] = &#039;isbn&#039;,															-- misspelling&lt;br /&gt;
	[&#039;issnformalfalsch&#039;] = &#039;issn&#039;,												-- German (can be fully emulated using ((syntax)))&lt;br /&gt;
	[&#039;jahr&#039;] = &#039;date&#039;,															-- German&lt;br /&gt;
	[&#039;jahrea&#039;] = &#039;orig-date&#039;,													-- German (not a direct replacement, but can be emulated)&lt;br /&gt;
	[&#039;kapitel&#039;] = &#039;chapter&#039;,													-- German&lt;br /&gt;
	[&#039;langauge&#039;] = &#039;language&#039;,													-- misspelling&lt;br /&gt;
	[&#039;langue&#039;] = &#039;language&#039;,													-- French&lt;br /&gt;
	[&#039;last-author-amp&#039;] = &#039;name-list-style&#039;,									-- old parameter name (as |name-list-style=amp)&lt;br /&gt;
	[&#039;lastauthoramp&#039;] = &#039;name-list-style&#039;,										-- old parameter name (as |name-list-style=amp)&lt;br /&gt;
	[&#039;lieu&#039;] = &#039;location&#039;,														-- French&lt;br /&gt;
	[&#039;lingua&#039;] = &#039;language&#039;,													-- Italian&lt;br /&gt;
	[&#039;lire en ligne&#039;] = &#039;url&#039;,													-- French&lt;br /&gt;
	[&#039;lizenznummer&#039;] = &#039;id&#039;,													-- German (as &#039;id=License No. ...&#039;)&lt;br /&gt;
&lt;br /&gt;
	[&#039;loaction&#039;] = &#039;location&#039;,													-- misspelling&lt;br /&gt;
	[&#039;local&#039;] = &#039;location&#039;,														-- Brazilian Portuguese&lt;br /&gt;
	[&#039;locatoin&#039;] = &#039;location&#039;,													-- misspelling&lt;br /&gt;
	[&#039;lugar&#039;] = &#039;location&#039;,														-- Spanish&lt;br /&gt;
	[&#039;mailinglist&#039;] = &#039;mailing-list&#039;,											-- old parameter name&lt;br /&gt;
	[&#039;mapurl&#039;] = &#039;map-url&#039;,														-- old parameter name&lt;br /&gt;
	[&#039;mes&#039;] = &#039;date&#039;,															-- Spanish (not a direct replacement)&lt;br /&gt;
	[&#039;mese&#039;] = &#039;date&#039;,															-- Italian (not a direct replacement)&lt;br /&gt;
	[&#039;miejsce&#039;] = &#039;location&#039;,													-- Polish&lt;br /&gt;
	[&#039;miesiąc&#039;] = &#039;date&#039;,														-- Polish&lt;br /&gt;
	[&#039;mois&#039;] = &#039;date&#039;,															-- French&lt;br /&gt;
	[&#039;monat&#039;] = &#039;date&#039;,															-- German&lt;br /&gt;
--	[&#039;name&#039;] = &#039;author&#039;,														-- &#039;name&#039; is often erroneously used for &#039;title&#039; and &#039;work&#039; as well, so no suggestion is better than a wrong suggestion&lt;br /&gt;
	[&#039;name-list-format&#039;] = &#039;name-list-style&#039;,									-- old parameter name (as |name-list-style=amp)&lt;br /&gt;
	[&#039;nazwisko&#039;] = &#039;last&#039;,														-- Polish&lt;br /&gt;
	[&#039;nespaper&#039;] = &#039;newspaper&#039;,													-- misspelling&lt;br /&gt;
	[&#039;net-work&#039;] = &#039;network&#039;,													-- misspelling&lt;br /&gt;
	[&#039;newpaper&#039;] = &#039;newspaper&#039;,													-- misspelling&lt;br /&gt;
	[&#039;news&#039;] = &#039;newspaper&#039;,&lt;br /&gt;
	[&#039;news-group&#039;] = &#039;newsgroup&#039;,												-- misspelling&lt;br /&gt;
	[&#039;news-paper&#039;] = &#039;newspaper&#039;,												-- misspelling&lt;br /&gt;
	[&#039;no-cat&#039;] = &#039;no-tracking&#039;,													-- old parameter&lt;br /&gt;
	[&#039;nocat&#039;] = &#039;no-tracking&#039;,													-- old parameter&lt;br /&gt;
	[&#039;nom&#039;] = &#039;last&#039;,															-- French&lt;br /&gt;
	[&#039;nombre&#039;] = &#039;first&#039;,														-- Spanish&lt;br /&gt;
	[&#039;nome&#039;] = &#039;first&#039;,															-- Italian&lt;br /&gt;
	[&#039;nopp&#039;] = &#039;no-pp&#039;,															-- old parameter name&lt;br /&gt;
	[&#039;notracking&#039;] = &#039;no-tracking&#039;,												-- old parameter&lt;br /&gt;
	[&#039;numero&#039;] = &#039;number&#039;,														-- Italian, Spanish&lt;br /&gt;
	[&#039;nummer&#039;] = &#039;number&#039;,														-- German&lt;br /&gt;
	[&#039;nummerreihe&#039;] = &#039;number&#039;,													-- German&lt;br /&gt;
	[&#039;obra&#039;] = &#039;work&#039;,															-- Spanish&lt;br /&gt;
	[&#039;odpowiedzialność&#039;] = &#039;agency&#039;,											-- Polish&lt;br /&gt;
	[&#039;offline&#039;] = &#039;url-status&#039;,													-- German (as &#039;url-status=dead&#039;)&lt;br /&gt;
	[&#039;online&#039;] = &#039;url&#039;,															-- German (not a direct replacement, but can be emulated)&lt;br /&gt;
	[&#039;opera&#039;] = &#039;work&#039;,															-- Italian&lt;br /&gt;
	[&#039;opublikowany&#039;] = &#039;agency&#039;,												-- Polish&lt;br /&gt;
	[&#039;origdate&#039;] = &#039;orig-date&#039;,													-- misspelling&lt;br /&gt;
	[&#039;originaljahr&#039;] = &#039;orig-date&#039;,												-- German&lt;br /&gt;
	[&#039;originalort&#039;] = &#039;publication-place&#039;,										-- German&lt;br /&gt;
	[&#039;originalsprache&#039;] = &#039;language&#039;,											-- German&lt;br /&gt;
	[&#039;originaltitel&#039;] = &#039;title&#039;,												-- German (if &#039;originaltitel&#039; is specified, any possible contents of &#039;title&#039; should be put in &#039;trans-title&#039;)&lt;br /&gt;
	[&#039;ort&#039;] = &#039;publication-place&#039;,												-- German&lt;br /&gt;
	[&#039;ortea&#039;] = &#039;publication-place&#039;,											-- German (not a direct replacement, but can be emulated)&lt;br /&gt;
	[&#039;other&#039;] = &#039;others&#039;,&lt;br /&gt;
	[&#039;oznaczenie&#039;] = &#039;agency&#039;,													-- Polish&lt;br /&gt;
	[&#039;pagees&#039;] = &#039;pages&#039;,														-- misspelling&lt;br /&gt;
	[&#039;pagina&#039;] = &#039;page&#039;,														-- Italian&lt;br /&gt;
	[&#039;pagina&#039;] = &#039;pages&#039;,														-- Italian&lt;br /&gt;
	[&#039;pagine&#039;] = &#039;pages&#039;,														-- Italian&lt;br /&gt;
	[&#039;pagine&#039;] = &#039;pages&#039;,														-- Italian&lt;br /&gt;
	[&#039;passage&#039;] = &#039;pages&#039;,														-- French&lt;br /&gt;
	[&#039;periodico&#039;] = &#039;magazine&#039;,													-- Spanish&lt;br /&gt;
	[&#039;plublisher&#039;] = &#039;publisher&#039;,												-- misspelling&lt;br /&gt;
	[&#039;pmcid&#039;] = &#039;pmc&#039;,&lt;br /&gt;
	[&#039;post-script&#039;] = &#039;postscript&#039;,												-- misspelling&lt;br /&gt;
	[&#039;praca&#039;] = &#039;work&#039;,															-- Polish&lt;br /&gt;
	[&#039;primero&#039;] = &#039;first&#039;,														-- Spanish&lt;br /&gt;
	[&#039;prénom&#039;] = &#039;first&#039;,														-- French&lt;br /&gt;
	[&#039;prénom1&#039;] = &#039;first1&#039;,														-- French&lt;br /&gt;
	[&#039;ps&#039;] = &#039;postscript&#039;,&lt;br /&gt;
	[&#039;pub&#039;] = &#039;publisher&#039;,&lt;br /&gt;
	-- [&#039;pubblicazione&#039;] = &#039;magazine&#039;,											-- could be any kind of work&lt;br /&gt;
	-- [&#039;publicación&#039;] = &#039;journal&#039;,												-- could be any kind of work&lt;br /&gt;
	[&#039;publicationdate&#039;] = &#039;publication-date&#039;,									-- old parameter name&lt;br /&gt;
	-- [&#039;published&#039;] = &#039;publisher&#039;,												-- could be date, location, or name of publisher&lt;br /&gt;
	[&#039;publicationplace&#039;] = &#039;publication-place&#039;,									-- old parameter name&lt;br /&gt;
	[&#039;pulbication-place&#039;] = &#039;publication-place&#039;,								-- misspelling&lt;br /&gt;
	[&#039;página&#039;] = &#039;page&#039;,														-- Spanish&lt;br /&gt;
	[&#039;páginas&#039;] = &#039;pages&#039;,														-- Spanish&lt;br /&gt;
	[&#039;périodique&#039;] = &#039;publisher&#039;,												-- French&lt;br /&gt;
	[&#039;registration&#039;] = &#039;url-access&#039;,											-- old parameter name&lt;br /&gt;
	[&#039;reihe&#039;] = &#039;series&#039;,														-- German&lt;br /&gt;
	[&#039;retrieved&#039;] = &#039;access-date&#039;,                                              -- old parameter name&lt;br /&gt;
	[&#039;richiestasottoscrizione&#039;] = &#039;url-access&#039;,									-- Italian (as |url-access=subscription)&lt;br /&gt;
	[&#039;rivista&#039;] = &#039;magazine&#039;,                                                   -- Italian&lt;br /&gt;
    [&#039;rok&#039;] = &#039;date&#039;,															-- Polish&lt;br /&gt;
	[&#039;rubrik&#039;] = &#039;title&#039;,                                                       -- Swedish&lt;br /&gt;
    [&#039;sammelwerk&#039;] = &#039;work&#039;,													-- German&lt;br /&gt;
	[&#039;sayfa&#039;] = &#039;page&#039;,															-- Turkish&lt;br /&gt;
	[&#039;sayfalar&#039;] = &#039;pages&#039;,														-- Turkish&lt;br /&gt;
	[&#039;sayı&#039;] = &#039;issue&#039;,															-- Turkish&lt;br /&gt;
	[&#039;script-post&#039;] = &#039;postscript&#039;,												-- misspelling&lt;br /&gt;
	[&#039;script-trans&#039;] = &#039;transcript&#039;,											-- misspelling&lt;br /&gt;
	[&#039;season&#039;] = &#039;date&#039;,														-- old parameter name (cite serial only)&lt;br /&gt;
	[&#039;sectionurl&#039;] = &#039;section-url&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;seiten&#039;] = &#039;pages&#039;,														-- German&lt;br /&gt;
	[&#039;seria&#039;] = &#039;series&#039;,														-- Spanish, Polish&lt;br /&gt;
	[&#039;serie&#039;] = &#039;series&#039;,														-- Italian&lt;br /&gt;
	[&#039;série&#039;] = &#039;series&#039;,														-- French&lt;br /&gt;
	[&#039;serieslink&#039;] = &#039;series-link&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;seriesno&#039;] = &#039;series-number&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;service&#039;] = &#039;agency&#039;,&lt;br /&gt;
	[&#039;sitioweb&#039;] = &#039;website&#039;,													-- Spanish&lt;br /&gt;
	[&#039;sito&#039;] = &#039;website&#039;,														-- Italian&lt;br /&gt;
	[&#039;soyadı&#039;] = &#039;last&#039;,														-- Turkish&lt;br /&gt;
	[&#039;spalten&#039;] = &#039;at&#039;,															-- German (not a direct replacement, but can be emulated)&lt;br /&gt;
	[&#039;sprache&#039;] = &#039;language&#039;,													-- German&lt;br /&gt;
	[&#039;språk&#039;] = &#039;language&#039;,                                                     -- Swedish, Norwegian&lt;br /&gt;
    [&#039;stron&#039;] = &#039;page&#039;,															-- Polish&lt;br /&gt;
	[&#039;strony&#039;] = &#039;pages&#039;,														-- Polish&lt;br /&gt;
	[&#039;subjectlink&#039;] = &#039;subject-link&#039;,											-- old parameter name&lt;br /&gt;
	[&#039;subscription&#039;] = &#039;url-access&#039;,											-- old parameter name (emulated as |url-access=subscription)&lt;br /&gt;
	[&#039;sur-name&#039;] = &#039;surname&#039;,													-- misspelling&lt;br /&gt;
	[&#039;suscripción&#039;] = &#039;url-access&#039;,												-- Spanish, Polish (as |url-access=subscription)&lt;br /&gt;
	[&#039;tag&#039;] = &#039;date&#039;,															-- German&lt;br /&gt;
	[&#039;tarih&#039;] = &#039;date&#039;,															-- Turkish&lt;br /&gt;
	[&#039;template doc demo&#039;] = &#039;no-tracking&#039;,										-- old parameter alias&lt;br /&gt;
	[&#039;tidning&#039;] = &#039;work&#039;,                                                       -- Swedish&lt;br /&gt;
    [&#039;tile&#039;] = &#039;title&#039;,															-- misspelling&lt;br /&gt;
	[&#039;timecaption&#039;] = &#039;time-caption&#039;,											-- old parameter name&lt;br /&gt;
	[&#039;titlelink&#039;] = &#039;title-link&#039;,												-- old parameter name&lt;br /&gt;
	[&#039;tipo&#039;] = &#039;type&#039;,															-- Italian&lt;br /&gt;
	[&#039;tite&#039;] = &#039;title&#039;,															-- misspelling&lt;br /&gt;
	[&#039;titel&#039;] = &#039;title&#039;,														-- German&lt;br /&gt;
	[&#039;titel-p&#039;] = &#039;title&#039;,														-- German (&#039;postscript=none&#039; should be added as well)&lt;br /&gt;
	[&#039;titelerg&#039;] = &#039;contribution&#039;,												-- German (not a direct replacement, but can be emulated)&lt;br /&gt;
	[&#039;titled&#039;] = &#039;title&#039;,														-- Brazilian Portuguese&lt;br /&gt;
	[&#039;titolo&#039;] = &#039;title&#039;,														-- Italian&lt;br /&gt;
	[&#039;titre&#039;] = &#039;title&#039;,														-- French&lt;br /&gt;
	[&#039;trans-script&#039;] = &#039;transcript&#039;,											-- misspelling&lt;br /&gt;
	[&#039;trans_chapter&#039;] = &#039;trans-chapter&#039;,										-- old parameter alias&lt;br /&gt;
	[&#039;trans_title&#039;] = &#039;trans-title&#039;,											-- old parameter alias&lt;br /&gt;
	[&#039;transchapter&#039;] = &#039;trans-chapter&#039;,&lt;br /&gt;
	[&#039;transcripturl&#039;] = &#039;transcript-url&#039;,										-- old parameter name&lt;br /&gt;
	[&#039;transscript&#039;] = &#039;transcript&#039;,												-- misspelling&lt;br /&gt;
	[&#039;transscript-format&#039;] = &#039;transcript-format&#039;,								-- misspelling&lt;br /&gt;
	[&#039;transscript-url&#039;] = &#039;transcript-url&#039;,										-- misspelling&lt;br /&gt;
	[&#039;transscripturl&#039;] = &#039;transcript-url&#039;,										-- misspelling&lt;br /&gt;
	[&#039;transtitle&#039;] = &#039;trans-title&#039;,&lt;br /&gt;
	[&#039;typ&#039;] = &#039;author-mask&#039;,													-- German (not a direct replacement, but the only valid argument &#039;typ=wl&#039; can be emulated using &#039;author-mask&#039;)&lt;br /&gt;
	[&#039;tytuł&#039;] = &#039;title&#039;,														-- Polish&lt;br /&gt;
	[&#039;títle&#039;] = &#039;title&#039;,&lt;br /&gt;
	[&#039;título&#039;] = &#039;title&#039;,														-- Spanish&lt;br /&gt;
	[&#039;ubicación&#039;] = &#039;location&#039;,													-- Spanish&lt;br /&gt;
	[&#039;urlarchivio&#039;] = &#039;archive-url&#039;,											-- Italian&lt;br /&gt;
	[&#039;urlarchivo&#039;] = &#039;archive-url&#039;,												-- Spanish&lt;br /&gt;
	[&#039;urlmorto&#039;] = &#039;url-status&#039;,												-- Italian&lt;br /&gt;
	[&#039;urn&#039;] = &#039;id&#039;,																-- German (as &#039;id={{URN|...}}&#039;)&lt;br /&gt;
	[&#039;v-authors&#039;] = &#039;vauthors&#039;,													-- misspelling&lt;br /&gt;
	[&#039;v-editors&#039;] = &#039;veditors&#039;,													-- misspelling&lt;br /&gt;
	[&#039;verlag&#039;] = &#039;publisher&#039;,													-- German&lt;br /&gt;
	[&#039;verlagea&#039;] = &#039;publisher&#039;,													-- German (not a direct replacement, but can be emulated)&lt;br /&gt;
	[&#039;vol&#039;] = &#039;volume&#039;,&lt;br /&gt;
	[&#039;volumen&#039;] = &#039;volume&#039;,														-- Spanish&lt;br /&gt;
	[&#039;werk&#039;] = &#039;work&#039;,															-- German&lt;br /&gt;
	[&#039;werkerg&#039;] = &#039;contribution&#039;,												-- German (not a direct replacement, but can be emulated)&lt;br /&gt;
	[&#039;wkautore&#039;] = &#039;author-link&#039;,												-- Italian&lt;br /&gt;
	[&#039;wolumin&#039;] = &#039;volume&#039;,														-- Polish&lt;br /&gt;
	[&#039;wydanie&#039;] = &#039;number&#039;,														-- Polish&lt;br /&gt;
	[&#039;wydawca&#039;] = &#039;publisher&#039;,													-- French&lt;br /&gt;
	[&#039;yardımcıyazarlar&#039;] = &#039;author&#039;,											-- Turkish&lt;br /&gt;
	[&#039;yayımcı&#039;] = &#039;publisher&#039;,													-- Turkish&lt;br /&gt;
	[&#039;yayıncı&#039;] = &#039;publisher&#039;,													-- Turkish&lt;br /&gt;
	[&#039;yazar&#039;] = &#039;author&#039;,														-- Turkish&lt;br /&gt;
	[&#039;yazarbağı&#039;] = &#039;author-link&#039;,												-- Turkish&lt;br /&gt;
	[&#039;yer&#039;] = &#039;location&#039;,														-- Turkish&lt;br /&gt;
	[&#039;yıl&#039;] = &#039;date&#039;,															-- Turkish&lt;br /&gt;
	[&#039;zaprezentowany&#039;] = &#039;publisher&#039;,											-- French&lt;br /&gt;
	[&#039;zdb&#039;] = &#039;id&#039;,																-- German (as &#039;id={{ZDB|...}}&#039;)&lt;br /&gt;
	[&#039;zitat&#039;] = &#039;quote&#039;,														-- German&lt;br /&gt;
	[&#039;zugriff&#039;] = &#039;access-date&#039;,												-- German&lt;br /&gt;
	[&#039;éditeur&#039;] = &#039;editor&#039;,														-- French&lt;br /&gt;
	[&#039;ölüurl&#039;] = &#039;url-status&#039;,													-- Turkish&lt;br /&gt;
	[&#039;übersetzer&#039;] = &#039;translator&#039;,												-- German (singular and plural)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; P A T T E R N S &amp;gt;--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Here we use Lua patterns to make suggestions.  The form is&lt;br /&gt;
&lt;br /&gt;
	[&#039;pattern&#039;] = &#039;correct&#039;,&lt;br /&gt;
&lt;br /&gt;
Lua patterns are not REGEX though they are similar.  The escape character is &#039;%&#039;, not &#039;\&#039;.&lt;br /&gt;
For more information about Lua patterns, see: Extension:Scribunto/Lua_reference_manual#Patterns&lt;br /&gt;
&lt;br /&gt;
Patterns should probably always include the &#039;^&#039; and &#039;$&#039; anchor assertions to prevent a partial&lt;br /&gt;
match from incorrectly suggesting the wrong parameter name.  For instance, the pattern &#039;a[utho]+r&#039;&lt;br /&gt;
matches &#039;author&#039; in the no-longer-supported parameter |author-separator= so the code suggests&lt;br /&gt;
&#039;|author=&#039;; the same pattern also matches the no-longer-supported parameter |separator= (returning &#039;ator&#039;)&lt;br /&gt;
so again, the code suggests &#039;|author=&#039;.&lt;br /&gt;
&lt;br /&gt;
One capture is supported, typically the enumerator from an enumerated parameter (the &#039;6&#039; in |author6=, etc.)&lt;br /&gt;
The value from the capture replaces $1 in the &#039;correct&#039; value.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local patterns = {&lt;br /&gt;
	[&#039;^ac+es+ ?d?a?t?e?$&#039;] = &#039;access-date&#039;,										-- misspelling&lt;br /&gt;
	[&#039;^apellido[s]?(%d+)$&#039;] = &#039;last$1&#039;,											-- Spanish, enumerated&lt;br /&gt;
	[&#039;^a[utho]+r$&#039;] = &#039;author&#039;,													-- misspelling&lt;br /&gt;
	[&#039;^a[utho]+r(%d+)$&#039;] = &#039;author$1&#039;,											-- misspelling, enumerated&lt;br /&gt;
	[&#039;^author link(%d+)$&#039;] = &#039;author-link$1&#039;,									-- Polish, enumerated&lt;br /&gt;
	[&#039;^autor[e]?(%d+)$&#039;] = &#039;author$1&#039;,											-- Italian/Spanish/German, enumerated&lt;br /&gt;
	[&#039;^authorfirst(%d+)$&#039;] = &#039;author-first$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^author(%d+)first$&#039;] = &#039;author-first$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^authorgiven(%d+)$&#039;] = &#039;author-given$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^author(%d+)given$&#039;] = &#039;author-given$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^authorlast(%d+)$&#039;] = &#039;author-last$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^author(%d+)last$&#039;] = &#039;author-last$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^authormask(%d+)$&#039;] = &#039;author-mask$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^author(%d+)mask$&#039;] = &#039;author-mask$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^authorsurname(%d+)$&#039;] = &#039;author-surname$1&#039;,								-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^author(%d+)surname$&#039;] = &#039;author-surname$1&#039;,								-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^cognome(%d+)$&#039;] = &#039;last$1&#039;,												-- Italian, enumerated&lt;br /&gt;
	[&#039;^editorfirst(%d+)$&#039;] = &#039;editor-first$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^editor(%d+)first$&#039;] = &#039;editor-first$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^editorgiven(%d+)$&#039;] = &#039;editor-given$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^editor(%d+)given$&#039;] = &#039;editor-given$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^editorlast(%d+)$&#039;] = &#039;editor-last$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^editor(%d+)last$&#039;] = &#039;editor-last$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^editorlink(%d+)$&#039;] = &#039;editor-link$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^editor(%d+)link$&#039;] = &#039;editor-link$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^editormask(%d+)$&#039;] = &#039;editor-mask$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^editor(%d+)mask$&#039;] = &#039;editor-mask$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^editorsurname(%d+)$&#039;] = &#039;editor-surname$1&#039;,								-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^editor(%d+)surname$&#039;] = &#039;editor-surname$1&#039;,								-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^enlaceautore(%d+)$&#039;] = &#039;author-link$1&#039;,									-- Spanish, enumerated&lt;br /&gt;
	[&#039;^first (%d+)$&#039;] = &#039;first$1&#039;,												-- enumerated&lt;br /&gt;
	[&#039;^last (%d+)$&#039;] = &#039;last$1&#039;,												-- enumerated&lt;br /&gt;
	[&#039;^nom[e]?(%d+)$&#039;] = &#039;last$1&#039;,												-- Italian/French, enumerated&lt;br /&gt;
	[&#039;^nombre(%d+)$&#039;] = &#039;first$1&#039;,												-- Spanish, enumerated&lt;br /&gt;
	[&#039;^primero(%d+)$&#039;] = &#039;first$1&#039;,												-- Spanish, enumerated&lt;br /&gt;
	[&#039;^pu[blish]+ers?$&#039;] = &#039;publisher&#039;,											-- misspelling&lt;br /&gt;
	[&#039;^subjectlink(%d+)$&#039;] = &#039;subject-link$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^subject(%d+)link$&#039;] = &#039;subject-link$1&#039;,									-- old parameter name, enumerated&lt;br /&gt;
	[&#039;^wkautore(%d+)$&#039;] = &#039;author-link$1&#039;,										-- Italian, enumerated&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
return {suggestions = suggestions, patterns=patterns};&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Fox_Friends_Sanctuary_Inc&amp;diff=1270</id>
		<title>Fox Friends Sanctuary Inc</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Fox_Friends_Sanctuary_Inc&amp;diff=1270"/>
		<updated>2025-08-12T02:54:23Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox organization&lt;br /&gt;
| name           = Fox Friends Sanctuary INC&lt;br /&gt;
| image          = Fox-friends-sanctuary.webp&lt;br /&gt;
| type           = 501(c)(3) Nonprofit exotic animal sanctuary&lt;br /&gt;
| formation      = 2017&lt;br /&gt;
| founder        = Kristen N. Lewis&lt;br /&gt;
| headquarters   = Lake City, Florida, United States&lt;br /&gt;
| region_served  = Florida, United States&lt;br /&gt;
| purpose        = Rescue and sanctuary for foxes, providing lifelong care&lt;br /&gt;
| status         = Active nonprofit organization&lt;br /&gt;
| website        = https://www.foxfriendssanctuary.org&lt;br /&gt;
| donation page  = &amp;lt;!-- Optional: link to donate if available --&amp;gt;&lt;br /&gt;
| director       = Kristen N. Lewis (President)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fox Friends Sanctuary INC&#039;&#039;&#039; is a 501(c)(3) nonprofit exotic animal rescue and sanctuary based in Lake City, Florida, United States. The organization specializes in rescues and provides lifelong care and sanctuary for foxes of all species, particularly those unable to be released back into the wild. It operates under Florida’s nonprofit regulations and maintains sustainable practices in fox welfare and environmental stewardship.{{cite web |title=About Us |url=https://www.foxfriendssanctuary.org/about |publisher=Fox Friends Sanctuary INC |access-date=9 August 2025}} It is committed to creating safe, low-stress environments for foxes, including those with minimal human exposure, and collaborates with other fox rescues nationwide to assist with placement and care.{{cite web |title=Entity Detail (Florida Division of Corporations) |url=https://search.sunbiz.org/Inquiry/CorporationSearch/SearchResultDetail?inquirytype=EntityName&amp;amp;directionType=Initial&amp;amp;searchNameOrder=FOXFRIENDSSANCTUARY%20N170000125230&amp;amp;aggregateId=domnp-n17000012523-91056312-3e1a-4341-85a1-0206bf45cd0d&amp;amp;searchTerm=FOXFRIENDSSANCTUARY&amp;amp;listNameOrder=FOXFRIENDSSANCTUARY%20N170000125230 |publisher=Florida Department of State, Division of Corporations |access-date=9 August 2025}}&lt;br /&gt;
&lt;br /&gt;
== History and Governance ==&lt;br /&gt;
Fox Friends Sanctuary INC was incorporated on December 19, 2017, and became effective on December 20, 2017. It is registered under EIN 82-3754456. Kristen N. Lewis serves as President, supported by a leadership team that includes Bethzaida Oyola (Director), Barbara A. Lewis (Director), Josiah Laverdure (Vice-President), and Nicholas Hall (Director). The sanctuary’s annual reports are filed annually with the Florida Division of Corporations.{{cite web |title=Entity Detail (Florida Division of Corporations) |url=https://search.sunbiz.org/Inquiry/corporationsearch/SearchResultDetail?aggregateId=domnp-n17000012523-91056312-3e1a-4341-85a1-0206bf45cd0d&amp;amp;inquirytype=EntityName&amp;amp;listNameOrder=FOXFRIENDSSANCTUARY+N170000125230 |publisher=Florida Department of State, Division of Corporations |access-date=9 August 2025}}&lt;br /&gt;
&lt;br /&gt;
== Operations and Mission ==&lt;br /&gt;
The sanctuary is not open to the general public to minimize stress for resident foxes. It focuses on providing safe, enriching, and permanent homes for foxes, including those that have had little previous human contact or who have experienced trauma. Fox Friends Sanctuary also maintains partnerships with other rescues across the United States to facilitate placements and share best practices in fox care.{{cite web |title=About Us |url=https://www.foxfriendssanctuary.org/about |publisher=Fox Friends Sanctuary INC |access-date=9 August 2025}}&lt;br /&gt;
&lt;br /&gt;
== Support and Outreach ==&lt;br /&gt;
Supporters can contribute through platforms like Amazon and Chewy wishlists, as well as direct donations via PayPal. The organization maintains a presence on social media to share updates, educational resources, and stories of fox residents.{{cite web |title=Home |url=https://www.foxfriendssanctuary.org/ |publisher=Fox Friends Sanctuary INC |access-date=9 August 2025}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[List of animal sanctuaries]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.foxfriendssanctuary.org Official website]&lt;br /&gt;
* [https://www.facebook.com/foxfriendssanctuary Facebook]&lt;br /&gt;
&lt;br /&gt;
[[Category:Wildlife rehabilitation centers in the United States]]&lt;br /&gt;
[[Category:Animal sanctuaries in Florida]]&lt;br /&gt;
[[Category:Foxes]]&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Module_link_expanded&amp;diff=1269</id>
		<title>Template:Module link expanded</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Module_link_expanded&amp;diff=1269"/>
		<updated>2025-08-11T02:36:46Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&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|&#039;&#039;function&#039;&#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;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:Check_for_unknown_parameters/doc&amp;diff=1267</id>
		<title>Module:Check for unknown parameters/doc</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:Check_for_unknown_parameters/doc&amp;diff=1267"/>
		<updated>2025-08-11T02:36:46Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Used in system}}&lt;br /&gt;
{{Module rating|p}}&lt;br /&gt;
{{cascade-protected template|page=module}}&lt;br /&gt;
{{Lua|Module:If preview|noprotcat=yes}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Module:Check for unknown parameters&#039;&#039;&#039; is used to check for uses of unknown parameters in a template or module. It may be appended to a template at the end or called directly from a module.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
=== From a template ===&lt;br /&gt;
To sort entries into a tracking category by parameter, use:&lt;br /&gt;
* {{mlx|Check for unknown parameters|check|unknown{{=}}&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[Category:Some tracking category|_VALUE_]]|arg1|arg2|arg3|argN}}&lt;br /&gt;
&lt;br /&gt;
To sort the entries into a tracking category by parameter with a preview error message, use:&lt;br /&gt;
* {{mlx|Check for unknown parameters|check|unknown{{=}}&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[Category:Some tracking category|_VALUE_]]|preview{{=}}unknown parameter &amp;quot;_VALUE_&amp;quot;|arg1|arg2|...|argN}}&lt;br /&gt;
&lt;br /&gt;
For an explicit red error message, use:&lt;br /&gt;
* {{mlx|Check for unknown parameters|check|unknown{{=}}&amp;amp;lt;span class{{=}}&amp;quot;error&amp;quot;&amp;gt;Sorry, I don&#039;t recognize _VALUE_&amp;amp;lt;/span&amp;gt;|arg1|arg2|...|argN}}&lt;br /&gt;
&lt;br /&gt;
To use Lua patterns, use:&lt;br /&gt;
* {{mlx|Check for unknown parameters|check|unknown{{=}}&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[Category:Some tracking category|_VALUE_]]|preview{{=}}unknown parameter &amp;quot;_VALUE_&amp;quot;|arg1|arg2|...|argN|regexp1{{=}}header[%d]+|regexp2{{=}}date[1-9]}}&lt;br /&gt;
&lt;br /&gt;
===From a module===&lt;br /&gt;
To call from a module, use:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local checkForUnknownParameters = require(&amp;quot;Module:Check for unknown parameters&amp;quot;)&lt;br /&gt;
local result = checkForUnknownParameters._check(validArgs, args)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where the first set of args are the module args below and the second set of args are the parameters that are checked.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
* &amp;lt;code&amp;gt;arg1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;arg2&amp;lt;/code&amp;gt;, ..., &amp;lt;code&amp;gt;argN&amp;lt;/code&amp;gt;, are the known parameters.&lt;br /&gt;
* Unnamed (positional) parameters can be added too: &amp;lt;code&amp;gt;|1|2|arg1|arg2|...&amp;lt;/code&amp;gt;.&lt;br /&gt;
* [[:mw:Extension:Scribunto/Lua reference manual#Patterns|Lua patterns]] (similar to [[regular expression]]s) usage with parameters is also supported (such as: {{para|regexp1|header[%d]+}}, {{para|regexp2|date[1-9]}}, {{para|regexp3|data[%d]+[abc]?}}). This is useful when there are many known parameters which use a systematic pattern.&lt;br /&gt;
* {{para|unknown}} – what happens when an unknown parameter is used. Typically use either a tracking category to place pages that use unknown parameters, or an error.&lt;br /&gt;
* {{para|preview}} – the text to be displayed when in preview mode and an unknown parameter is used.&lt;br /&gt;
* The &amp;lt;code&amp;gt;_VALUE_&amp;lt;/code&amp;gt; keyword, if used, will be changed to the name of the parameter. This is useful for either sorting the entries in a tracking category, or for provide more explicit information.&lt;br /&gt;
* {{para|ignoreblank|1}} – by default, the module makes no distinction between a defined-but-blank parameter and a non-blank parameter. That is, both unlisted {{Para|foo|x}} and {{Para|foo}} are reported. To only track non-blank parameters use {{para|ignoreblank|1}}.&lt;br /&gt;
* {{para|showblankpositional|1}} – by default, the module ignores blank positional parameters. That is, an unlisted {{para|2}} is ignored. To {{em|include}} blank positional parameters in the tracking use {{para|showblankpositional|1}}.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;wikitext&amp;quot;&amp;gt;&lt;br /&gt;
{{Infobox&lt;br /&gt;
| above = {{{name|}}}&lt;br /&gt;
&lt;br /&gt;
| label1 = Height&lt;br /&gt;
| data1 = {{{height|}}}&lt;br /&gt;
&lt;br /&gt;
| label2 = Weight&lt;br /&gt;
| data2 = {{{weight|}}}&lt;br /&gt;
&lt;br /&gt;
| label3 = Website&lt;br /&gt;
| data3 = {{{website|}}}&lt;br /&gt;
}}&amp;lt;!-- &lt;br /&gt;
  end infobox, start tracking&lt;br /&gt;
--&amp;gt;{{#invoke:Check for unknown parameters|check&lt;br /&gt;
| unknown = {{Main other|[[Category:Some tracking category|_VALUE_]]}}&lt;br /&gt;
| preview = unknown parameter &amp;quot;_VALUE_&amp;quot; | height | name | website | weight &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Call from within Lua code==&lt;br /&gt;
See the end of [[Module:Rugby box]] for a simple example or [[Module:Infobox3cols]] or [[Module:Flag]] for more complicated examples. &lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* {{Clc|Unknown parameters}} (category page can have header {{tl|Unknown parameters category}})&lt;br /&gt;
* [[Module:Params]] – for complex operations involving parameters&lt;br /&gt;
* [[Template:Checks for unknown parameters]] – adds documentation to templates using this module&lt;br /&gt;
* [[Module:Check for deprecated parameters]] – similar module that checks for deprecated parameters&lt;br /&gt;
* [[Module:Check for clobbered parameters]] – module that checks for conflicting parameters&lt;br /&gt;
* [[Module:TemplatePar]] – similar function (originally from dewiki)&lt;br /&gt;
* [[Template:Parameters]] and [[Module:Parameters]] – generates a list of parameter names for a given template&lt;br /&gt;
* [[Project:TemplateData]] based template parameter validation&lt;br /&gt;
* [[Module:Parameter validation]] checks a lot more&lt;br /&gt;
* [[User:Bamyers99/TemplateParametersTool]] - A tool for checking usage of template parameters&lt;br /&gt;
&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- Categories go here and interwikis go in Wikidata. --&amp;gt;&lt;br /&gt;
[[Category:Modules that add a tracking category]]&lt;br /&gt;
[[Category:Template metamodules]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Module documentation pages]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Mlx&amp;diff=1265</id>
		<title>Template:Mlx</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Mlx&amp;diff=1265"/>
		<updated>2025-08-11T02:36:46Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&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;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Used_in_system&amp;diff=1263</id>
		<title>Template:Used in system</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Used_in_system&amp;diff=1263"/>
		<updated>2025-08-11T02:36:45Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:High-use|main|1=|2={{{2|}}}|system={{#if:{{{1|}}}|{{{1}}}|in system messages}}&amp;lt;noinclude&amp;gt;|nocat=true&amp;lt;/noinclude&amp;gt;}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:Separated_entries&amp;diff=1261</id>
		<title>Module:Separated entries</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:Separated_entries&amp;diff=1261"/>
		<updated>2025-08-11T02:36:45Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module takes positional parameters as input and concatenates them with&lt;br /&gt;
-- an optional separator. The final separator (the &amp;quot;conjunction&amp;quot;) can be&lt;br /&gt;
-- specified independently, enabling natural-language lists like&lt;br /&gt;
-- &amp;quot;foo, bar, baz and qux&amp;quot;. The starting parameter can also be specified.&lt;br /&gt;
&lt;br /&gt;
local compressSparseArray = require(&#039;Module:TableTools&#039;).compressSparseArray&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local dataPlural = args.dataPlural&lt;br /&gt;
	local separator = args.separator&lt;br /&gt;
		-- Decode (convert to Unicode) HTML escape sequences, such as &amp;quot;&amp;amp;#32;&amp;quot; for space.&lt;br /&gt;
		and mw.text.decode(args.separator) or &#039;&#039;&lt;br /&gt;
	local conjunction = args.conjunction and mw.text.decode(args.conjunction) or separator&lt;br /&gt;
	-- Discard values before the starting parameter.&lt;br /&gt;
	local start = tonumber(args.start)&lt;br /&gt;
	if start then&lt;br /&gt;
		for i = 1, start - 1 do args[i] = nil end&lt;br /&gt;
	end&lt;br /&gt;
	-- Discard named parameters.&lt;br /&gt;
	local values = compressSparseArray(args)&lt;br /&gt;
	local result = mw.text.listToText(values, separator, conjunction)&lt;br /&gt;
	if dataPlural and #values &amp;gt; 0 and (#separator &amp;gt; 0 or #conjunction &amp;gt; 0) then&lt;br /&gt;
		-- flag to [[Module:Detect singular]] whether this is a list with &amp;gt;1 element&lt;br /&gt;
		result = result..&#039;&amp;lt;span style=&amp;quot;display:none&amp;quot; data-plural=&amp;quot;&#039;..(#values &amp;gt; 1 and &#039;1&#039; or &#039;0&#039;)..&#039;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunction(separator, conjunction, first)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = require(&#039;Module:Arguments&#039;).getArgs(frame)&lt;br /&gt;
		args.separator = separator or args.separator&lt;br /&gt;
		args.conjunction = conjunction or args.conjunction&lt;br /&gt;
		args.first = first or args.first&lt;br /&gt;
		return p._main(args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.main = makeInvokeFunction()&lt;br /&gt;
p.br = makeInvokeFunction(&#039;&amp;lt;br /&amp;gt;&#039;)&lt;br /&gt;
p.comma = makeInvokeFunction(mw.message.new(&#039;comma-separator&#039;):plain())&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:R_protected/full&amp;diff=1259</id>
		<title>Template:R protected/full</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:R_protected/full&amp;diff=1259"/>
		<updated>2025-08-11T02:36:45Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{pp|small=yes|category=no}}{{Redirect template&lt;br /&gt;
  |id=R fully protected&lt;br /&gt;
  |name=[[:Category:Wikipedia fully protected redirects|Fully protected]]&lt;br /&gt;
  |from=a title that is fully protected from editing for any of several possible reasons. It may have been protected by an administrator, or it may be on the [[Wikipedia:Cascade-protected items/content|Cascade-protected list]], or both&lt;br /&gt;
  |info=** &#039;&#039;&#039;Please do not replace these redirected links&#039;&#039;&#039; with links directly to the target page unless expressly advised to do so below or elsewhere on this page, or if the change is supported by a policy or guideline.&lt;br /&gt;
  |all category=&amp;lt;!--for automatic namespace detection--&amp;gt;&lt;br /&gt;
}}{{#ifeq:{{{nocat|}}}|true||{{#ifeq:{{FULLPAGENAME}}|Template:R protected/full||{{#ifeq: {{SUBPAGENAME}}|sandbox||{{#switch: {{PROTECTIONLEVEL:move}}&lt;br /&gt;
   |sysop=[[Category:Wikipedia fully protected redirects]]&lt;br /&gt;
   |templateeditor=[[Category:Wikipedia template-protected redirects]]&lt;br /&gt;
   |extendedconfirmed=[[Category:Wikipedia extended-protected redirects]]&lt;br /&gt;
 }}{{#switch: {{PROTECTIONLEVEL:edit}}&lt;br /&gt;
   |sysop=[[Category:Wikipedia fully protected redirects]]&lt;br /&gt;
   |templateeditor|extendedconfirmed|autoconfirmed|#default=[[Category:Wikipedia pages with incorrect protection templates]]&lt;br /&gt;
}}}}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- Place categories on /doc subpage; interwikis go to Wikidata. --&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:CS1/doc&amp;diff=1257</id>
		<title>Module:CS1/doc</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:CS1/doc&amp;diff=1257"/>
		<updated>2025-08-11T02:36:45Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Module:Citation/CS1/doc]]&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:RedirectData&amp;diff=1255</id>
		<title>Module:RedirectData</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:RedirectData&amp;diff=1255"/>
		<updated>2025-08-11T02:36:45Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.getRedirectToNamespace(frame)&lt;br /&gt;
	titleObject = mw.title.getCurrentTitle() -- check if this is a redirect&lt;br /&gt;
	if titleObject.redirectTarget then&lt;br /&gt;
		targetNamespace = titleObject.redirectTarget.nsText&lt;br /&gt;
		return targetNamespace&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;Notaredirect&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getTalkPage(frame) -- this is code written to check for the criteria to apply {{R to talk page}} - essentially, whether the redirect is outside of, and going into, a talk namespace&lt;br /&gt;
	titleObject = mw.title.getCurrentTitle() -- check if this is a redirect&lt;br /&gt;
	if titleObject.redirectTarget then&lt;br /&gt;
		if not titleObject.isTalkPage then -- the current page is NOT a talk page&lt;br /&gt;
			if titleObject.redirectTarget.isTalkPage then -- the target page IS a talk page&lt;br /&gt;
				return &amp;quot;Yes&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return &amp;quot;No&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;Notaredirect&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getSubpageStatus(frame)&lt;br /&gt;
	titleObject = mw.title.getCurrentTitle()&lt;br /&gt;
	if titleObject.redirectTarget then -- check if this is a redirect&lt;br /&gt;
		pageIsSubpage = titleObject.isSubpage&lt;br /&gt;
		targetIsSubpage = titleObject.redirectTarget.isSubpage&lt;br /&gt;
		if (pageIsSubpage or targetIsSubpage) then&lt;br /&gt;
			if (pageIsSubpage and targetIsSubpage) then&lt;br /&gt;
				return &amp;quot;Both&amp;quot; -- both are subpages, return three&lt;br /&gt;
			elseif pageIsSubpage then&lt;br /&gt;
				return &amp;quot;Onlypage&amp;quot; -- just the page is a subpage, target isn&#039;t, return one&lt;br /&gt;
			else&lt;br /&gt;
				return &amp;quot;Onlytarget&amp;quot; -- just the target is a subpage, the page isn&#039;t, return two&lt;br /&gt;
			end&lt;br /&gt;
		else -- neither page nor target is a subpage, return zero&lt;br /&gt;
			return &amp;quot;Neither&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;Notaredirect&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.toDisambig(frame) -- this checks if the page title contains (disambiguation), as well as if it&#039;s a talkpage&lt;br /&gt;
	titleObject = mw.title.getCurrentTitle()&lt;br /&gt;
	if titleObject.redirectTarget then -- check if this is a redirect&lt;br /&gt;
		if string.match(titleObject.text, &amp;quot;(disambiguation)&amp;quot;) then -- title contains (disambiguation)&lt;br /&gt;
			if titleObject.isTalkPage then -- this is a talk page ({{R from unnecessary disambiguation}})&lt;br /&gt;
				return &amp;quot;Talk&amp;quot;&lt;br /&gt;
			else -- this is not a talkpage ({{R to disambiguation page}})&lt;br /&gt;
				return &amp;quot;Article&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		else -- title does not contain &amp;quot;(disambiguation)&amp;quot;&lt;br /&gt;
			return &amp;quot;No&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;Notaredirect&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:R_to_subpage&amp;diff=1253</id>
		<title>Template:R to subpage</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:R_to_subpage&amp;diff=1253"/>
		<updated>2025-08-11T02:36:45Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{This is a redirect/rcat}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{Redirect template&lt;br /&gt;
  |id=R to subpage&lt;br /&gt;
  |name=To a subpage&lt;br /&gt;
  |to=a subpage&lt;br /&gt;
  |info=In a page title, a [[Wikipedia:Subpages|subpage]] name appears after a [[slash (punctuation)|forward slash]] (/); for example, &amp;quot;Wikipedia:Technical move requests&amp;quot; redirects to [[Wikipedia:Requested moves/Technical requests]], which is a subpage of [[Wikipedia:Requested moves]].  Please note that not every page title with &amp;quot;/&amp;quot; in its title is a subpage.  See this template&#039;s [[Template:R to subpage/doc|documentation]] for details.&lt;br /&gt;
  |all category=Redirects to subpages&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- Place categories on /doc subpage; interwikis go to Wikidata. --&amp;gt;&lt;br /&gt;
{{Documentation}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:R_from_shortcut&amp;diff=1251</id>
		<title>Template:R from shortcut</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:R_from_shortcut&amp;diff=1251"/>
		<updated>2025-08-11T02:36:45Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template:This is a redirect/rcat|from shortcut}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#switch:{{#invoke:RedirectData|getRedirectToNamespace}}&lt;br /&gt;
|Template=&lt;br /&gt;
{{Redirect template&lt;br /&gt;
  |id=R from template shortcut&lt;br /&gt;
  |name=From a template shortcut&lt;br /&gt;
  |from=a [[Wikipedia:Shortcut|shortcut]] page name &#039;&#039;&#039;in &#039;&#039;any&#039;&#039; [[WP:namespace|namespace]]&#039;&#039;&#039;&lt;br /&gt;
  |to=a page in [[WP:template namespace|template namespace]]&lt;br /&gt;
  |info=**Shortcuts are [[wikilink]]ed on community pages, talk pages, and edit summaries, but not in [[wp:mainspace|mainspace]] articles. [[WP:Transclusion|Transclusions]] in mainspace are common and do not need to be &amp;quot;[[WP:NOTBROKEN|fixed]]&amp;quot;.&lt;br /&gt;
  |all category=Redirects from template shortcuts&lt;br /&gt;
  |printworthy=no&lt;br /&gt;
}}&lt;br /&gt;
|#default=&lt;br /&gt;
{{Redirect template&lt;br /&gt;
  |id=R from shortcut&lt;br /&gt;
  |name=From a shortcut&lt;br /&gt;
  |from=a [[Wikipedia:Shortcut|shortcut]] in any namespace&lt;br /&gt;
  |to=a page in any namespace{{#if:{{{of|}}}{{{for|}}}|. The referent of this shortcut is: {{{of|{{{for}}}}}}}}&lt;br /&gt;
  |info=**Shortcuts are [[wikilink]]ed on community pages, talk pages, and edit summaries, but not in [[wp:mainspace|mainspace]] articles.&lt;br /&gt;
  |all category=Redirects from shortcuts&lt;br /&gt;
  |printworthy=no&lt;br /&gt;
}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- Place categories on /doc subpage; interwikis go to Wikidata. --&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:R_protected&amp;diff=1249</id>
		<title>Template:R protected</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:R_protected&amp;diff=1249"/>
		<updated>2025-08-11T02:36:45Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch:{{{protlevel|{{#invoke:effective protection level|edit|1={{{title|{{FULLPAGENAME}}}}}}}}}}&lt;br /&gt;
|sysop={{R protected/full|nocat={{{nocat|}}}}}{{pp-protected|small=yes|category={{#ifeq:{{{nocat|}}}|true|no|yes}}}}&lt;br /&gt;
|templateeditor={{R protected/template|nocat={{{nocat|}}}}}{{pp-template|small=yes|category={{#ifeq:{{{nocat|}}}|true|no|yes}}}}&lt;br /&gt;
|extendedconfirmed={{R protected/excon|nocat={{{nocat|}}}}}{{pp-extended|small=yes|category={{#ifeq:{{{nocat|}}}|true|no|yes}}}}&lt;br /&gt;
|autoconfirmed={{R protected/semi|nocat={{{nocat|}}}}}{{pp-semi|small=yes|category={{#ifeq:{{{nocat|}}}|true|no|yes}}}}&lt;br /&gt;
|#default=&amp;lt;!-- Show nothing --&amp;gt;{{#ifeq:{{{nocat|}}}|true||[[Category:Wikipedia pages with incorrect protection templates]]}}&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;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Pp-protected&amp;diff=1247</id>
		<title>Template:Pp-protected</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Pp-protected&amp;diff=1247"/>
		<updated>2025-08-11T02:36:44Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Protection padlock]]&lt;br /&gt;
&lt;br /&gt;
{{Rcat shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
{{R from long name}}&lt;br /&gt;
{{R with history}}&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Top icon protection templates]]&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Pp-move&amp;diff=1245</id>
		<title>Template:Pp-move</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Pp-move&amp;diff=1245"/>
		<updated>2025-08-11T02:36:44Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#invoke:Protection banner|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;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Rcat_shell&amp;diff=1243</id>
		<title>Template:Rcat shell</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Rcat_shell&amp;diff=1243"/>
		<updated>2025-08-11T02:36:44Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Redirect category shell]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from high-use template}}&lt;br /&gt;
{{R to redirect template}}&lt;br /&gt;
{{R from template shortcut}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:Redirect_template&amp;diff=1241</id>
		<title>Module:Redirect template</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:Redirect_template&amp;diff=1241"/>
		<updated>2025-08-11T02:36:44Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;require(&#039;strict&#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- key is beginning of arg name. value is table with namespace number and link&lt;br /&gt;
-- alternatively, a function taking the namespace number and returning a validity&lt;br /&gt;
-- can be used&lt;br /&gt;
local namespaceCategories = {&lt;br /&gt;
	all = { function() return true end },&lt;br /&gt;
	main = { 0, &#039;[[WP:Mainspace|main]]&#039; },&lt;br /&gt;
	help = { 12, &#039;[[WP:Help namespace|help]]&#039; },&lt;br /&gt;
	portal = { 100, &#039;[[WP:Portal|portal]]&#039; },&lt;br /&gt;
	mos = { 126, &#039;[[WP:MOS namespace|MOS]]&#039; },&lt;br /&gt;
	talk = { function(n) return n &amp;gt; 0 and n%2 == 1 end, &#039;[[Help:Talk pages|talk]]&#039; },&lt;br /&gt;
	template = { 10, &#039;[[WP:Template namespace|template]]&#039; },&lt;br /&gt;
	wikipedia = { 4, &#039;[[WP:Project namespace|Wikipedia project]]&#039; },&lt;br /&gt;
	category = { 14, &#039;[[WP:Categorization|category]]&#039; },&lt;br /&gt;
	user = { 2, &#039;[[WP:User pages|user]]&#039; },&lt;br /&gt;
	draft = { 118, &#039;[[WP:Drafts|draft]]&#039; },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- remove whitespaces from beginning and end of args&lt;br /&gt;
local function valueFunc(key, val)&lt;br /&gt;
	if type(val) == &#039;string&#039; then&lt;br /&gt;
		val = val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
		if val == &#039;&#039; then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return val&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getPrettyName(args)&lt;br /&gt;
	for k in pairs(namespaceCategories) do&lt;br /&gt;
		if args[k .. &#039; category&#039;] then&lt;br /&gt;
			return string.format(&amp;quot;&#039;&#039;&#039;[[:Category:%s|%s]]&#039;&#039;&#039;: &amp;quot;, args[k .. &#039; category&#039;], args.name)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return string.format(&amp;quot;&#039;&#039;&#039;%s&#039;&#039;&#039;: &amp;quot;, args.name)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {wrappers = &#039;Template:Redirect template&#039;, valueFunc = valueFunc})&lt;br /&gt;
	local namespace = mw.title.getCurrentTitle().namespace&lt;br /&gt;
&lt;br /&gt;
	--- XXX: this is a HORRIBLE HACK. kill it with fire as soon as https://phabricator.wikimedia.org/T14974 is fixed&lt;br /&gt;
	--- [[phab:T14974]] was previously known as [[bugzilla:12974]] https://bugzilla.wikimedia.org/show_bug.cgi?id=12974&lt;br /&gt;
	local beCompatibleWithBug14974 = args.info and (args.info:find(&#039;^[:;#*]&#039;, 1) == 1 or args.info:find(&#039;{|&#039;, 1, true) == 1) and &#039;\n&#039; or &#039; &#039;&lt;br /&gt;
	&lt;br /&gt;
	local content = string.format(&#039;\n&amp;lt;div class=&amp;quot;rcat %s&amp;quot;&amp;gt;\n*%sThis is a redirect%s%s.%s%s\n&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
		args.id and (&#039;rcat-&#039; .. string.gsub(args.id, &#039; &#039;, &#039;_&#039;)) or &#039;&#039;,&lt;br /&gt;
		args.name and getPrettyName(args) or &#039;&#039;,&lt;br /&gt;
		args.from and (&#039; from &#039; .. args.from) or &#039;&#039;,&lt;br /&gt;
		args.to and (&#039; to &#039; .. args.to) or &#039;&#039;,&lt;br /&gt;
		args.info and beCompatibleWithBug14974 or &#039;&#039;,&lt;br /&gt;
		args.info or &#039;&#039;&lt;br /&gt;
	)&lt;br /&gt;
	&lt;br /&gt;
	for k,v in pairs(namespaceCategories) do&lt;br /&gt;
		if args[k .. &#039; category&#039;] then&lt;br /&gt;
			if type(v[1]) == &#039;function&#039; and v[1](namespace) or v[1] == namespace then&lt;br /&gt;
				if args.sortkey then&lt;br /&gt;
					content = content .. string.format(&#039;[[Category:%s|%s]]&#039;, args[k .. &#039; category&#039;], args.sortkey)&lt;br /&gt;
					else&lt;br /&gt;
						content = content .. string.format(&#039;[[Category:%s]]&#039;, args[k .. &#039; category&#039;])&lt;br /&gt;
				end&lt;br /&gt;
			elseif args[&#039;other category&#039;] then&lt;br /&gt;
				if args.sortkey then&lt;br /&gt;
					content = content .. string.format(&#039;[[Category:%s|%s]]&#039;, args[&#039;other category&#039;], args.sortkey)&lt;br /&gt;
					else&lt;br /&gt;
						content = content .. string.format(&#039;[[Category:%s]]&#039;, args[&#039;other category&#039;])&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				content = content .. frame:expandTemplate{title = &#039;Incorrect redirect template&#039;, args = {v[2]}}&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if namespace == 0 then&lt;br /&gt;
		local yesno = require(&#039;Module:Yesno&#039;)&lt;br /&gt;
		if yesno(args.printworthy) == true then&lt;br /&gt;
			return content .. &#039;[[Category:Printworthy redirects]]&#039;&lt;br /&gt;
		elseif yesno(args.printworthy) == false then&lt;br /&gt;
			return content .. &#039;[[Category:Unprintworthy redirects]]&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return content&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Redirect_template&amp;diff=1239</id>
		<title>Template:Redirect template</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Redirect_template&amp;diff=1239"/>
		<updated>2025-08-11T02:36:44Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Redirect template|main}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Talk_other&amp;diff=1237</id>
		<title>Template:Talk other</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Talk_other&amp;diff=1237"/>
		<updated>2025-08-11T02:36:44Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:&lt;br /&gt;
  &amp;lt;!--If no or empty &amp;quot;demospace&amp;quot; parameter then detect namespace--&amp;gt;&lt;br /&gt;
  {{#if:{{{demospace|}}} &lt;br /&gt;
  | {{lc: {{{demospace}}} }}    &amp;lt;!--Use lower case &amp;quot;demospace&amp;quot;--&amp;gt;&lt;br /&gt;
  | {{#ifeq:{{NAMESPACE}}|{{TALKSPACE}}&lt;br /&gt;
    | talk&lt;br /&gt;
    | other&lt;br /&gt;
    }} &lt;br /&gt;
  }}&lt;br /&gt;
| talk     = {{{1|}}}&lt;br /&gt;
| other&lt;br /&gt;
| #default = {{{2|}}}&lt;br /&gt;
}}&amp;lt;!--End switch--&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Redirect_category_shell&amp;diff=1235</id>
		<title>Template:Redirect category shell</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Redirect_category_shell&amp;diff=1235"/>
		<updated>2025-08-11T02:36:44Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NONEWSECTIONLINK__{{Mbox&lt;br /&gt;
| name  = Redirect category shell&lt;br /&gt;
| type  = move &lt;br /&gt;
| image = none&lt;br /&gt;
| style = margin-top: 1.1em; border: solid 1px darkblue; border-left-width: 0.5em;&lt;br /&gt;
| textstyle = padding-top: 0.9em; padding-bottom: 0.9em;&lt;br /&gt;
| text  = &#039;&#039;&#039;This {{Talk other|talk page|page}} is a [[Wikipedia:Redirect|redirect]]. &amp;lt;small&amp;gt;The following [[Wikipedia:Categorizing redirects|categories]] are used to track and monitor this redirect:&amp;lt;/small&amp;gt;&#039;&#039;&#039;{{#if:{{{h|}}}&lt;br /&gt;
 |{{block indent|1= &#039;&#039;{{{h}}}&#039;&#039;}}&lt;br /&gt;
 }}&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
  Automatically detect protected redirects:&lt;br /&gt;
--&amp;gt;&amp;lt;includeonly&amp;gt;{{#switch: {{PROTECTIONLEVEL:move}}&lt;br /&gt;
   |sysop|templateeditor|extendedconfirmed={{pp-move|small=yes|catonly=no}}&lt;br /&gt;
 }}{{#switch: {{PROTECTIONLEVEL:edit}}&lt;br /&gt;
   |sysop&lt;br /&gt;
   |templateeditor&lt;br /&gt;
   |extendedconfirmed&lt;br /&gt;
   |autoconfirmed={{pp-protected|small=yes}}{{R protected}}&lt;br /&gt;
   | &amp;lt;!--Not protected, or only semi-move-protected--&amp;gt;&lt;br /&gt;
 }}&amp;lt;/includeonly&amp;gt;{{#if: {{{1|}}}||&amp;lt;includeonly&amp;gt;&lt;br /&gt;
* {{red|&#039;&#039;&#039;Important – Please Read! {{maroon|This template should {{em|not}} be applied without parameters by bot nor by any automated or semi-automated process. It should {{em|not}} be used without parameters {{em|unless you want to learn how to categorize redirects}}. For editors who want to learn how to categorize redirects, this template is a {{em|learning tool}}. {{em|Only}} those editors who intend to return to the redirect to learn which rcats to use should apply this template without parameters, or with an empty first parameter!}}&#039;&#039;&#039;}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Manifold sort&#039;&#039;&#039;:  If help is needed to determine appropriate categories, then this redirect populates &#039;&#039;&#039;{{Cat|Miscellaneous redirects}}&#039;&#039;&#039;.  Monitors of that category will check this redirect and add or remove [[Wikipedia:Categorizing redirects|rcats]] as needed.{{#ifeq: {{lc:{{{nocat|false}}}}} | false |{{{category|&amp;lt;includeonly&amp;gt;[[Category:Miscellaneous redirects]]&amp;lt;/includeonly&amp;gt;}}}}}&lt;br /&gt;
}}&lt;br /&gt;
{{#if: {{{2|}}}|{{{2}}}|{{{1|}}}}}{{#if: {{{1|}}}{{{2|}}}||{{#ifeq: {{ROOTPAGENAME}}|Redirect category shell||[[Category:Redirect category shell without parameters]]}}}}&lt;br /&gt;
&#039;&#039;&amp;lt;small&amp;gt;When appropriate, [[Wikipedia:Protection policy|protection levels]] are automatically sensed, described and categorized.&amp;lt;/small&amp;gt;&#039;&#039;&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:Cite/config&amp;diff=1233</id>
		<title>Module:Cite/config</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:Cite/config&amp;diff=1233"/>
		<updated>2025-08-11T02:36:43Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[--------------------------&amp;lt; S E T T I N G S &amp;gt;--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
settings definitions for i18n; translate only the rvalues&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local settings_t = {&lt;br /&gt;
	err_category = &#039;CS1 errors: cite module&#039;,									-- name of category that lists article with Module:Cite errors&lt;br /&gt;
	help = &#039;help&#039;,																-- help link display text for error messages&lt;br /&gt;
	help_text_link = &#039;Help:CS1 errors#module_cite&#039;,								-- help text for error messages can be found on this page&lt;br /&gt;
	&lt;br /&gt;
	unknown_name = &#039;unknown template name: $1&#039;,									-- error message; $1 is lowercase value extracted from invoke function name&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; K N O W N _ T E M P L A T E S _ T &amp;gt;--------------------------------------------&lt;br /&gt;
&lt;br /&gt;
list of all known cs1|2 templates by their lowercase names.&lt;br /&gt;
&lt;br /&gt;
key is lowercase template name&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local known_templates_t = {&lt;br /&gt;
	[&#039;arxiv&#039;] = true,&lt;br /&gt;
	[&#039;av media&#039;] = true,&lt;br /&gt;
	[&#039;av media notes&#039;] = true,&lt;br /&gt;
	[&#039;biorxiv&#039;] = true,&lt;br /&gt;
	[&#039;book&#039;] = true,&lt;br /&gt;
	[&#039;citation&#039;] = true,&lt;br /&gt;
	[&#039;citeseerx&#039;] = true,&lt;br /&gt;
	[&#039;conference&#039;] = true,&lt;br /&gt;
	[&#039;document&#039;] = true,&lt;br /&gt;
	[&#039;encyclopedia&#039;] = true,&lt;br /&gt;
	[&#039;episode&#039;] = true,&lt;br /&gt;
	[&#039;interview&#039;] = true,&lt;br /&gt;
	[&#039;journal&#039;] = true,&lt;br /&gt;
	[&#039;magazine&#039;] = true,&lt;br /&gt;
	[&#039;mailing list&#039;] = true,&lt;br /&gt;
	[&#039;map&#039;] = true,&lt;br /&gt;
	[&#039;medrxiv&#039;] = true,&lt;br /&gt;
	[&#039;news&#039;] = true,&lt;br /&gt;
	[&#039;newsgroup&#039;] = true,&lt;br /&gt;
	[&#039;podcast&#039;] = true,&lt;br /&gt;
	[&#039;press release&#039;] = true,&lt;br /&gt;
	[&#039;report&#039;] = true,&lt;br /&gt;
	[&#039;serial&#039;] = true,&lt;br /&gt;
	[&#039;sign&#039;] = true,&lt;br /&gt;
	[&#039;speech&#039;] = true,&lt;br /&gt;
	[&#039;ssrn&#039;] = true,&lt;br /&gt;
	[&#039;tech report&#039;] = true,&lt;br /&gt;
	[&#039;thesis&#039;] = true,&lt;br /&gt;
	[&#039;web&#039;] = true,&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; C I T A T I O N _ C L A S S E S _ T &amp;gt;-----------------------------------------&lt;br /&gt;
&lt;br /&gt;
|CitationClass= in the cs1|2 templates gets the lowercase template name except for these for which the canonical&lt;br /&gt;
template name has multiple words (and the oddity that is class=&amp;quot;encyclopaedia&amp;quot; – really ought to fix that in&lt;br /&gt;
Module:Citation/CS1)&lt;br /&gt;
&lt;br /&gt;
key is lowercase canonical template name&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local citation_classes_t = {&lt;br /&gt;
	[&#039;av media&#039;] = &#039;audio-visual&#039;,&lt;br /&gt;
	[&#039;av media notes&#039;] = &#039;AV-media-notes&#039;,&lt;br /&gt;
	[&#039;encyclopedia&#039;] = &#039;encyclopaedia&#039;,&lt;br /&gt;
	[&#039;mailing list&#039;] = &#039;mailinglist&#039;,&lt;br /&gt;
	[&#039;press release&#039;] = &#039;pressrelease&#039;,&lt;br /&gt;
	[&#039;tech report&#039;] = &#039;techreport&#039;,&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; E X P O R T S &amp;gt;----------------------------------------------------------------&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	citation_classes_t = citation_classes_t,&lt;br /&gt;
	error_messages_t = error_messages_t,&lt;br /&gt;
	known_templates_t = known_templates_t,&lt;br /&gt;
	settings_t = settings_t,&lt;br /&gt;
	}&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Module:Cite&amp;diff=1231</id>
		<title>Module:Cite</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Module:Cite&amp;diff=1231"/>
		<updated>2025-08-11T02:36:43Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;require (&#039;strict&#039;);&lt;br /&gt;
&lt;br /&gt;
local cfg = mw.loadData (&#039;Module:Cite/config&#039;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; S U B S T I T U T E &amp;gt;----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Substitutes $1, $2, etc in &amp;lt;message&amp;gt; with data from &amp;lt;data_t&amp;gt;. Returns plain-text substituted string when&lt;br /&gt;
&amp;lt;data_t&amp;gt; not nil; returns &amp;lt;message&amp;gt; else.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function substitute (message, data_t)&lt;br /&gt;
	return data_t and mw.message.newRawMessage (message, data_t):plain() or message;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; M A K E _ E R R O R _ M S G &amp;gt;--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Assembles an error message from module name, message text, help link, and error category.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function make_error_msg (frame, msg)&lt;br /&gt;
	local module_name = frame:getTitle();										-- get the module name for prefix and help-link label&lt;br /&gt;
	local namespace = mw.title.getCurrentTitle().namespace;						-- used for categorization&lt;br /&gt;
&lt;br /&gt;
	local category_link = (0 == namespace) and substitute (&#039;[[Category:$1]]&#039;, {cfg.settings_t.err_category}) or &#039;&#039;;&lt;br /&gt;
	return substitute (&#039;&amp;lt;span style=&amp;quot;color:#d33&amp;quot;&amp;gt;Error: &amp;amp;#x7B;{[[$1|#invoke:$2]]}}: $3 ([[:$4|$5]])&amp;lt;/span&amp;gt;$6&#039;,&lt;br /&gt;
		{&lt;br /&gt;
		module_name,															-- the module name with namespace&lt;br /&gt;
		module_name:gsub (&#039;Module:&#039;, &#039;&#039;),										-- the module name without namespace&lt;br /&gt;
		msg,																	-- the error message&lt;br /&gt;
		cfg.settings_t.help_text_link,											-- help wikilink to text at help page&lt;br /&gt;
		cfg.settings_t.help,													-- help wikilink display text&lt;br /&gt;
		category_link															-- link to error category (for main namespace errors only)&lt;br /&gt;
		})&lt;br /&gt;
end&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; C I T E &amp;gt;---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Function to call Module:Citation/CS1/sandbox with appropriate parameters.  For use when an article exceeds the&lt;br /&gt;
post-expand include size limit.&lt;br /&gt;
&lt;br /&gt;
	{{#invoke:cite|book|title=Title}}&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function cite (frame, template)&lt;br /&gt;
	local args_t = require (&#039;Module:Arguments&#039;).getArgs (frame, {frameOnly=true});&lt;br /&gt;
&lt;br /&gt;
	template = template:lower();												-- lowercase for table indexes&lt;br /&gt;
	&lt;br /&gt;
	if not cfg.known_templates_t[template] then									-- do we recognize this template name?&lt;br /&gt;
		return make_error_msg (frame, substitute (cfg.settings_t.unknown_name, {template}));	-- nope; abandon with error message&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local config_t = {[&#039;CitationClass&#039;] = cfg.citation_classes_t[template] or template};	-- set CitationClass value&lt;br /&gt;
	return require (&#039;Module:Citation/CS1&#039;)._citation (nil, args_t, config_t);	-- go render the citation&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; E X P O R T S &amp;gt;---------------------------------------------------------------&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
return setmetatable({}, {__index =												-- returns an empty TABLE whose metatable has the __index set so that, for any given KEY, it returns&lt;br /&gt;
	function(_, template)														-- this anonymous function called as function(TABLE, KEY)&lt;br /&gt;
		return function (frame) return cite (frame, template) end;				-- which in turn returns a function that calls cite() with the KEY name&lt;br /&gt;
	end&lt;br /&gt;
})&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template_talk:CS1_config&amp;diff=1229</id>
		<title>Template talk:CS1 config</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template_talk:CS1_config&amp;diff=1229"/>
		<updated>2025-08-11T02:36:43Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Help talk:Citation Style 1]]&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Color/styles.css&amp;diff=1227</id>
		<title>Template:Color/styles.css</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Color/styles.css&amp;diff=1227"/>
		<updated>2025-08-11T02:36:43Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp-template}} */&lt;br /&gt;
/* [[phab:T360683]]: This stylesheet removes the function of this template in&lt;br /&gt;
 * dark mode&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
    html.skin-theme-clientpref-night div:not(.notheme) &amp;gt; .tmp-color,&lt;br /&gt;
	html.skin-theme-clientpref-night p &amp;gt; .tmp-color,&lt;br /&gt;
	html.skin-theme-clientpref-night table:not(.notheme) .tmp-color {&lt;br /&gt;
	   color: inherit !important;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and ( prefers-color-scheme: dark) {&lt;br /&gt;
    /* automatic mode */&lt;br /&gt;
    html.skin-theme-clientpref-os div:not(.notheme) &amp;gt; .tmp-color,&lt;br /&gt;
    html.skin-theme-clientpref-os p &amp;gt; .tmp-color,&lt;br /&gt;
    html.skin-theme-clientpref-os table:not(.notheme) .tmp-color {&lt;br /&gt;
      color: inherit !important;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:CS1_config/doc&amp;diff=1225</id>
		<title>Template:CS1 config/doc</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:CS1_config/doc&amp;diff=1225"/>
		<updated>2025-08-11T02:36:43Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation subpage}}&lt;br /&gt;
{{High-use}}&lt;br /&gt;
&amp;lt;!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). --&amp;gt;&lt;br /&gt;
{{csdoc|lua}}&lt;br /&gt;
For [[MOS:CONSISTENT|consistency]] within articles, this template sets certain parameters for all [[WP:CS1|CS1]] and [[WP:CS2|CS2]] [[Wikipedia:Citing sources|reference citation]] templates on a page.&amp;lt;ref name=&amp;quot;covered-templates&amp;quot; /&amp;gt; [[Module:Citation/CS1]] generates widely-used [[Wikipedia:Citation templates|citation templates]] like {{tl|cite book}}, {{tl|cite journal}}, and {{tl|cite web}}. This Module checks the article for {{tl|CS1 config}}.  When found, Module:Citation/CS1 extracts the settings parameters and their assigned values and applies those settings to all CS1 and CS2 templates in the article.&amp;lt;ref&amp;gt;The CS1 config template produces no output of its own.&amp;lt;/ref&amp;gt; This provides stylistic consistency in the rendered output without editing every template in the article. For example, instead of adding {{para|mode|cs1}} to each {{tl|Citation}} template on a page using mostly CS1 templates, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{CS1 config|mode=cs1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; can be added once to the article and will have the same effect.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
Determine which of the available settings are desired and place this template in the article.  For editor convenience, this template should probably be placed adjacent to {{tlx|use dmy dates}} or {{tlx|use mdy dates}} (if present).&lt;br /&gt;
&lt;br /&gt;
As an example, if you want all cs1|2 templates in the article to render as if they were {{tld|citation}} templates (cs2) and to have all namelists in these templates include an ampersand between the last two names in each list, you might write:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{cs1 config |name-list-style=amp |mode=cs2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Settings parameters==&lt;br /&gt;
{{tld|CS1 config}} supports these settings parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Supported settings parameters&lt;br /&gt;
|-&lt;br /&gt;
! Parameters !! Acceptable values&lt;br /&gt;
|-&lt;br /&gt;
| {{para|display-authors}} || rowspan=&amp;quot;5&amp;quot; | numeric values only&lt;br /&gt;
|-&lt;br /&gt;
| {{para|display-contributors}}&lt;br /&gt;
|-&lt;br /&gt;
| {{para|display-editors}}&lt;br /&gt;
|-&lt;br /&gt;
| {{para|display-interviewers}}&lt;br /&gt;
|-&lt;br /&gt;
| {{para|display-translators}}&lt;br /&gt;
|-&lt;br /&gt;
| {{para|mode}} || &amp;lt;code&amp;gt;cs1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cs2&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{para|name-list-style}} || &amp;lt;code&amp;gt;amp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ampersand&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;serial&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vanc&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Mode==&lt;br /&gt;
The commonly-used citation templates on Wikipedia have two style modes.&amp;lt;ref name=&amp;quot;covered-templates&amp;quot;&amp;gt;This covers all templates that directly invoke [[Module:Citation/CS1]], including the CS1 templates {{tl|cite web}}, {{tl|cite news}}, {{tl|cite book}}, {{tl|cite journal}}, {{tl|cite magazine}}, and so on. It includes the general purpose CS2 template {{tl|Citation}}. It also includes templates are wrappers for these templates like {{tl|cite CE1913}}, {{tl|cite Google Maps}}, {{tl|cite tweet}}, or {{tl|cite ADB}}. There are some templates with &amp;quot;cite xxx&amp;quot; names, like {{tl|cite patent}}, that are technically unrelated, do not invoke Module:Citation/CS1, and will be unaffected by any parameters of {{tl|cs1 config}}.&amp;lt;/ref&amp;gt; These modes change how the citation is punctuated when it&#039;s rendered. Use {{para|mode|cs1}} to choose [[Help:Citation Style 1|Citation Style 1]]. CS1 primarily uses a [[full stop]] to separate elements. Use {{para|mode|cs2}} to choose [[Help:Citation Style 2|Citation Style 2]]. CS2 primarily uses the comma as a separator.&lt;br /&gt;
&lt;br /&gt;
=== CS1 ===&lt;br /&gt;
{{para|mode|cs1}}&lt;br /&gt;
&lt;br /&gt;
* {{xt|{{cite book |mode=cs1 |last=Bloggs |first=Joe |author-link=Joe Bloggs |date=1974 |title=Book of Bloggs}}}}&lt;br /&gt;
* Full stops, also known as periods, separate the individual elements of the rendered citation. &lt;br /&gt;
* A full stop comes at the end of the rendered citation.&lt;br /&gt;
&lt;br /&gt;
=== CS2 ===&lt;br /&gt;
{{para|mode|cs2}}&lt;br /&gt;
&lt;br /&gt;
* {{xt|{{cite book |mode=cs2 |last=Bloggs |first=Joe |author-link=Joe Bloggs |date=1974 |title=Book of Bloggs}}}}&lt;br /&gt;
* Commas separate the individual elements of the rendered citation. &lt;br /&gt;
* No terminal punctuation comes at the end of the rendered citation.&lt;br /&gt;
&lt;br /&gt;
If a template [[Module:Template wrapper/doc|wraps]] another citation template and sets its mode, then it should use [[Module:Citation mode]] to obey {{para|mode}}. See {{tl|cite gnis2}} for an example.&lt;br /&gt;
&lt;br /&gt;
== Name list style ==&lt;br /&gt;
Use {{para|name-list-style}} to change how the list of authors is formatted.&lt;br /&gt;
&lt;br /&gt;
=== Ampersand ===&lt;br /&gt;
{{para|name-list-style|amp}}, {{para|name-list-style|ampersand}}, or {{para|name-list-style|&amp;amp;}}&lt;br /&gt;
&lt;br /&gt;
* {{xt|{{cite book |name-list-style=amp |last1=Bloggs |first1=Joe |author-link1=Joe Bloggs |last2=Smith |first2=John |last3=Smythe |first3=Jim |title=1000 Acres |date=1990}}}}&lt;br /&gt;
* Inserts an ampersand ({{xt|&amp;amp;}}) between the last two names in a name list when there are multiple authors.&lt;br /&gt;
&lt;br /&gt;
=== Conjunction &amp;quot;and&amp;quot; ===&lt;br /&gt;
{{para|name-list-style|and}} or {{para|name-list-style|serial}}&lt;br /&gt;
&lt;br /&gt;
* {{xt|{{cite book |name-list-style=and |last1=Bloggs |first1=Joe |author-link1=Joe Bloggs |last2=Smith |first2=John |last3=Smythe |first3=Jim |title=1000 Acres |date=1990}}}}&lt;br /&gt;
* Inserts the conjunction &amp;quot;{{xt|and}}&amp;quot; between the last two names of a name list when there are multiple authors.&lt;br /&gt;
&lt;br /&gt;
=== Vancouver style ===&lt;br /&gt;
{{para|name-list-style|vanc}}&lt;br /&gt;
&lt;br /&gt;
* {{xt|{{cite book |name-list-style=vanc |last1=Bloggs |first1=Joe |author-link1=Joe Bloggs |last2=Smith |first2=John |last3=Smythe |first3=Jim |title=1000 Acres |date=1990}}}}&lt;br /&gt;
* Abbreviates first names as done in the [[Vancouver system|Vancouver style]].&lt;br /&gt;
* Uses neither an ampersand nor the conjunction &amp;quot;and&amp;quot;.&lt;br /&gt;
* Only applies when using the separate {{para|first}} type parameters for first names.&lt;br /&gt;
* Vancouver style [[Help:CS1_errors#vancouver|restricts author or editor names to the Latin alphabet]].&lt;br /&gt;
&lt;br /&gt;
==Caveats==&lt;br /&gt;
None of the {{para|display-authors}}, {{para|display-contributors}}, {{para|display-editors}}, {{para|display-interviewers}}, and {{para|display-translators}} will accept the &amp;lt;code&amp;gt;etal&amp;lt;/code&amp;gt; keyword.  Were they to do so, &#039;et al.&#039; would be attached to every name list that correctly has only one name.  For example, we do not want &#039;Darwin, Charles; et al.&#039; for &#039;&#039;[[On the Origin of Species]]&#039;&#039; because there are no other authors whose names have been omitted.&lt;br /&gt;
&lt;br /&gt;
When {{tld|CS1 config}} has a setting parameter that matches a setting parameter in a cs1|2 template (regardless of the assigned values), Module:Citation/CS1 will add a {{color|#3a3|CS1 maint: overridden setting}} message and [[:Category:CS1 maint: overridden setting|category]]. CS1 templates which set a default {{para|mode}} in the Template [[WP:namespace|namespace]] should do so with [[Module:Citation mode]] so that the default may be overridden by {{tl|CS1 config}} without producing this error.&lt;br /&gt;
&lt;br /&gt;
This template is ignored when used in the Template namespace.&lt;br /&gt;
&lt;br /&gt;
==Error handling==&lt;br /&gt;
For technical reasons, errors occurring in this template ({{para|display-authors|etal}} for example) cannot be annotated.  When such errors occur, Module:Citation/CS1 ignores the malformed setting.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&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:Templates with no visible output]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Tld&amp;diff=1223</id>
		<title>Template:Tld</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Tld&amp;diff=1223"/>
		<updated>2025-08-11T02:36:42Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:Template link code]]&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Template_link_code&amp;diff=1221</id>
		<title>Template:Template link code</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Template_link_code&amp;diff=1221"/>
		<updated>2025-08-11T02:36:42Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#Invoke:Template link general|main|nolink=yes|code=yes|nowrap=yes}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|1=Template:Tlg/doc&lt;br /&gt;
|content = {{tlg/doc|tlc}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Color&amp;diff=1219</id>
		<title>Template:Color</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Color&amp;diff=1219"/>
		<updated>2025-08-11T02:36:42Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;ifsubst|1=&amp;lt;span|2=&amp;lt;templatestyles src=&amp;quot;Template:Color/styles.css&amp;quot; /&amp;gt;&amp;lt;span class=&amp;quot;tmp-color&amp;quot;}} style=&amp;quot;color:{{{1|}}}&amp;quot;&amp;gt;{{{2|{{{1|}}}}}}&amp;lt;includeonly&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;!-- PLEASE ADD THIS TEMPLATE&#039;S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Preferences/section&amp;diff=1217</id>
		<title>Template:Preferences/section</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Preferences/section&amp;diff=1217"/>
		<updated>2025-08-11T02:36:42Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{{1}}}/{{{2}}}&lt;br /&gt;
|User profile/User profile=[[Special:Preferences#mw-prefsection-personal|{{int:prefs-personal}}]]&lt;br /&gt;
|User profile/Basic information=[[Special:Preferences#mw-prefsection-personal-info|{{int:prefs-info}}]]&lt;br /&gt;
|User profile/Internationalisation=[[Special:Preferences#mw-prefsection-personal-i18n|{{int:prefs-i18n}}]]&lt;br /&gt;
|User profile/Signature=[[Special:Preferences#mw-prefsection-personal-signature|{{int:prefs-signature}}]]&lt;br /&gt;
|User profile/Email options=[[Special:Preferences#mw-prefsection-personal-email|{{int:prefs-email}}]]&lt;br /&gt;
|User profile/User page=[[Special:Preferences#mw-prefsection-personal-userpage|{{int:prefs-userpage}}]]&lt;br /&gt;
|User profile/Newcomer editor features=[[Special:Preferences#mw-prefsection-personal-homepage|{{int:prefs-homepage}}]]&lt;br /&gt;
&lt;br /&gt;
|Appearance/Appearance=[[Special:Preferences#mw-prefsection-rendering|{{int:prefs-rendering}}]]&lt;br /&gt;
|Appearance/Skin=[[Special:Preferences#mw-prefsection-rendering-skin|{{int:prefs-skin}}]]&lt;br /&gt;
|Appearance/Skin preferences=[[Special:Preferences#mw-prefsection-rendering-skin-skin-prefs|{{int:prefs-skin-prefs}}]]&lt;br /&gt;
|Appearance/Reading preferences=[[Special:Preferences#mw-prefsection-rendering-reading|{{int:prefs-reading}}]]&lt;br /&gt;
|Appearance/Date format=[[Special:Preferences#mw-prefsection-rendering-dateformat|{{int:prefs-dateformat}}]]&lt;br /&gt;
|Appearance/Time offset=[[Special:Preferences#mw-prefsection-rendering-timeoffset|{{int:prefs-timeoffset}}]]&lt;br /&gt;
|Appearance/Files=[[Special:Preferences#mw-prefsection-rendering-files|{{int:prefs-files}}]]&lt;br /&gt;
|Appearance/Diffs=[[Special:Preferences#mw-prefsection-rendering-diffs|{{int:prefs-diffs}}]]&lt;br /&gt;
|Appearance/Advanced options=[[Special:Preferences#mw-prefsection-rendering-advancedrendering|{{int:prefs-advancedrendering}}]]&lt;br /&gt;
|Appearance/Math=[[Special:Preferences#mw-prefsection-rendering-math|{{int:prefs-math}}]]&lt;br /&gt;
|Appearance/Languages=[[Special:Preferences#mw-prefsection-rendering-languages|{{int:prefs-languages}}]]&lt;br /&gt;
&lt;br /&gt;
|Editing/Editing=[[Special:Preferences#mw-prefsection-editing|{{int:prefs-editing}}]]&lt;br /&gt;
|Editing/General options=[[Special:Preferences#mw-prefsection-editing-advancedediting|{{int:prefs-advancedediting}}]]&lt;br /&gt;
|Editing/Editor=[[Special:Preferences#mw-prefsection-editing-editor|{{int:prefs-editor}}]]&lt;br /&gt;
|Editing/Preview=[[Special:Preferences#mw-prefsection-editing-preview|{{int:prefs-preview}}]]&lt;br /&gt;
|Editing/Accessibility=[[Special:Preferences#mw-prefsection-editing-accessibility|{{int:prefs-accessibility}}]]&lt;br /&gt;
|Editing/Discussion pages=[[Special:Preferences#mw-prefsection-editing-discussion|{{int:prefs-discussion}}]]&lt;br /&gt;
|Editing/Developer tools=[[Special:Preferences#mw-prefsection-editing-developertools|{{int:prefs-developertools}}]]&lt;br /&gt;
&lt;br /&gt;
|Recent changes/Recent changes=[[Special:Preferences#mw-prefsection-rc|{{int:prefs-rc}}]]&lt;br /&gt;
|Recent changes/Display options=[[Special:Preferences#mw-prefsection-rc-displayrc|{{int:prefs-displayrc}}]]&lt;br /&gt;
|Recent changes/Advanced options=[[Special:Preferences#mw-prefsection-rc-advancedrc|{{int:prefs-advancedrc}}]]&lt;br /&gt;
|Recent changes/Changes shown=[[Special:Preferences#mw-prefsection-rc-changesrc|{{int:prefs-changesrc}}]]&lt;br /&gt;
|Recent changes/Pending changes=[[Special:Preferences#mw-prefsection-rc-flaggedrevs-ui|{{int:prefs-flaggedrevs-ui}}]]&lt;br /&gt;
|Recent changes/Revision scoring on Recent changes and Related changes=[[Special:Preferences#mw-prefsection-rc-ores-rc|{{int:prefs-ores-rc}}]]&lt;br /&gt;
&lt;br /&gt;
|Watchlist/Watchlist=[[Special:Preferences#mw-prefsection-watchlist|{{int:prefs-watchlist}}]]&lt;br /&gt;
|Watchlist/Edit watchlist=[[Special:Preferences#mw-prefsection-watchlist-editwatchlist|{{int:prefs-editwatchlist}}]]&lt;br /&gt;
|Watchlist/Display options=[[Special:Preferences#mw-prefsection-watchlist-displaywatchlist|{{int:prefs-displaywatchlist}}]]&lt;br /&gt;
|Watchlist/Advanced options=[[Special:Preferences#mw-prefsection-watchlist-advancedwatchlist|{{int:prefs-advancedwatchlist}}]]&lt;br /&gt;
|Watchlist/Changes shown=[[Special:Preferences#mw-prefsection-watchlist-changeswatchlist|{{int:prefs-changeswatchlist}}]]&lt;br /&gt;
|Watchlist/Watched pages=[[Special:Preferences#mw-prefsection-watchlist-pageswatchlist|{{int:prefs-pageswatchlist}}]]&lt;br /&gt;
|Watchlist/Token=[[Special:Preferences#mw-prefsection-watchlist-tokenwatchlist|{{int:prefs-tokenwatchlist}}]]&lt;br /&gt;
|Watchlist/Revision scoring on Watchlist and Contributions=[[Special:Preferences#mw-prefsection-watchlist-ores-wl|{{int:prefs-ores-wl}}]]&lt;br /&gt;
&lt;br /&gt;
|Search/Search=[[Special:Preferences#mw-prefsection-searchoptions|{{int:prefs-searchoptions}}]]&lt;br /&gt;
|Search/General=[[Special:Preferences#mw-prefsection-searchoptions-searchmisc|{{int:prefs-searchmisc}}]]&lt;br /&gt;
|Search/Search completion=[[Special:Preferences#mw-prefsection-searchoptions-completion|{{int:prefs-completion}}]]&lt;br /&gt;
|Search/Advanced Search=[[Special:Preferences#mw-prefsection-searchoptions-advancedsearch|{{int:prefs-advancedsearch}}]]&lt;br /&gt;
&lt;br /&gt;
|Gadgets/Gadgets=[[Special:Preferences#mw-prefsection-gadgets|{{int:prefs-gadgets}}]]&lt;br /&gt;
|Gadgets/Browsing=[[Special:Preferences#mw-prefsection-gadgets-gadget-section-browsing|{{int:gadget-section-browsing}}]]&lt;br /&gt;
|Gadgets/Watchlist=[[Special:Preferences#mw-prefsection-gadgets-gadget-section-watchlist|{{int:gadget-section-watchlist}}]]&lt;br /&gt;
|Gadgets/Editing=[[Special:Preferences#mw-prefsection-gadgets-gadget-section-editing|{{int:gadget-section-editing}}]]&lt;br /&gt;
|Gadgets/Appearance=[[Special:Preferences#mw-prefsection-gadgets-gadget-section-appearance|{{int:gadget-section-appearance}}]]&lt;br /&gt;
|Gadgets/Advanced=[[Special:Preferences#mw-prefsection-gadgets-gadget-section-advanced|{{int:gadget-section-advanced}}]]&lt;br /&gt;
|Gadgets/Maintenance and administration=[[Special:Preferences#mw-prefsection-gadgets-gadget-section-maintenance|{{int:gadget-section-maintenance}}]]&lt;br /&gt;
|Gadgets/Testing and development=[[Special:Preferences#mw-prefsection-gadgets-gadget-section-test|{{int:gadget-section-test}}]]&lt;br /&gt;
|Gadgets/Template Gadgets=[[Special:Preferences#mw-prefsection-gadgets-gadget-section-template-gadgets|{{int:gadget-section-template-gadgets}}]]&lt;br /&gt;
|Gadgets/Utility modules=[[Special:Preferences#mw-prefsection-gadgets-gadget-section-modules|{{int:gadget-section-modules}}]]&lt;br /&gt;
&lt;br /&gt;
|Banners/Banners=[[Special:Preferences#mw-prefsection-centralnotice-banners|{{int:prefs-centralnotice-banners}}]]&lt;br /&gt;
|Banners/Banner types to display=[[Special:Preferences#mw-prefsection-centralnotice-banners-centralnotice-display-banner-types|{{int:prefs-centralnotice-display-banner-types}}]]&lt;br /&gt;
&lt;br /&gt;
|Beta features/Beta features=[[Special:Preferences#mw-prefsection-betafeatures|{{int:prefs-betafeatures}}]]&lt;br /&gt;
&lt;br /&gt;
|Notifications/Notifications=[[Special:Preferences#mw-prefsection-echo|{{int:prefs-echo}}]]&lt;br /&gt;
|Notifications/Email options=[[Special:Preferences#mw-prefsection-echo-emailsettings|{{int:prefs-emailsettings}}]]&lt;br /&gt;
|Notifications/Notify me about these events=[[Special:Preferences#mw-prefsection-echo-echosubscriptions|{{int:prefs-echosubscriptions}}]]&lt;br /&gt;
|Notifications/Cross-wiki notifications=[[Special:Preferences#mw-prefsection-echo-echocrosswiki|{{int:prefs-echocrosswiki}}]]&lt;br /&gt;
|Notifications/Muted users=[[Special:Preferences#mw-prefsection-echo-blocknotificationslist|{{int:prefs-blocknotificationslist}}]]&lt;br /&gt;
|Notifications/Muted pages for page link notifications=[[Special:Preferences#mw-prefsection-echo-mutedpageslist|{{int:prefs-mutedpageslist}}]]&lt;br /&gt;
&lt;br /&gt;
|#default = {{{2}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Markup/styles.css&amp;diff=1215</id>
		<title>Template:Markup/styles.css</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Markup/styles.css&amp;diff=1215"/>
		<updated>2025-08-11T02:36:42Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp-template|small=yes}} */&lt;br /&gt;
div.template-markup-wrapper &amp;gt; :first-child {&lt;br /&gt;
	margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
div.template-markup-wrapper &amp;gt; :last-child {&lt;br /&gt;
	margin-bottom: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.template-markup {&lt;br /&gt;
	margin:0;&lt;br /&gt;
	border:none;&lt;br /&gt;
	word-wrap:break-word;&lt;br /&gt;
	white-space:pre-wrap;	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
code.template-markup {&lt;br /&gt;
	padding:0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pre.template-markup {&lt;br /&gt;
	padding:2px 0 0;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:List-defined_references&amp;diff=1213</id>
		<title>Template:List-defined references</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:List-defined_references&amp;diff=1213"/>
		<updated>2025-08-11T02:36:42Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Help:Footnotes#WP:LDR|List-defined references]]&amp;lt;noinclude&amp;gt;{{tsh|Ldr}}&lt;br /&gt;
[[Category:Typing-aid templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Preferences&amp;diff=1211</id>
		<title>Template:Preferences</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Preferences&amp;diff=1211"/>
		<updated>2025-08-11T02:36:42Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span class=&amp;quot;example&amp;quot; style=&amp;quot;font-family: Georgia, serif;&amp;quot;&amp;gt;[[Special:Preferences|{{int:mypreferences}}]]{{#switch: {{lc:{{{1|}}}}}&lt;br /&gt;
|0&lt;br /&gt;
|user profile=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-personal|{{int:prefs-personal}}]]&lt;br /&gt;
|1&lt;br /&gt;
|appearance=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-rendering|{{int:prefs-rendering}}]]&lt;br /&gt;
|2&lt;br /&gt;
|date and time=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-datetime|Date and time]]&lt;br /&gt;
|3&lt;br /&gt;
|editing=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-editing|{{int:prefs-editing}}]]&lt;br /&gt;
|4&lt;br /&gt;
|recent changes=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-rc|{{int:prefs-rc}}]]&lt;br /&gt;
|5&lt;br /&gt;
|watchlist=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-watchlist|{{int:prefs-watchlist}}]]&lt;br /&gt;
|6&lt;br /&gt;
|search=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-searchoptions|{{int:prefs-searchoptions}}]]&lt;br /&gt;
|8&lt;br /&gt;
|pending changes=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-flaggedrevs|Pending changes]]&lt;br /&gt;
|9&lt;br /&gt;
|gadgets=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-gadgets|{{int:prefs-gadgets}}]]&lt;br /&gt;
|10&lt;br /&gt;
|notifications=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-echo|{{int:prefs-echo}}]]&lt;br /&gt;
|11&lt;br /&gt;
|beta|beta features=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-betafeatures|{{int:prefs-betafeatures}}]]&lt;br /&gt;
|7&lt;br /&gt;
|12&lt;br /&gt;
|misc=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-misc|Misc]]&lt;br /&gt;
|banners=&amp;amp;nbsp;→ [[Special:Preferences#mw-prefsection-centralnotice-banners|{{int:prefs-centralnotice-banners}}]]&lt;br /&gt;
&lt;br /&gt;
}}{{#if:{{{2|}}}|&amp;amp;nbsp;→ {{Preferences/section|{{{1}}}|{{{2}}}}}|}}{{#if:{{{3|}}}|&amp;amp;nbsp;= {{{3}}}|{{#if:{{{uncheck|}}}|&amp;amp;nbsp;→ {{nowrap|{{MediaWiki checkbox|no}} {{wrap|{{{uncheck}}}}}}}|{{#if:{{{check|}}}|&amp;amp;nbsp;→ {{nowrap|{{MediaWiki checkbox}} {{wrap|{{{check}}}}}}}|}}}}}}&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Fake_heading/styles.css&amp;diff=1209</id>
		<title>Template:Fake heading/styles.css</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Fake_heading/styles.css&amp;diff=1209"/>
		<updated>2025-08-11T02:36:42Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp-template}} */&lt;br /&gt;
.fake-heading {&lt;br /&gt;
	color: var(--color-emphasized, #000000);&lt;br /&gt;
	background: none;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
	padding-bottom: 0.17em;&lt;br /&gt;
	page-break-after: avoid;&lt;br /&gt;
	padding-top: 0.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.fake-heading.h1,&lt;br /&gt;
.fake-heading.h2 {&lt;br /&gt;
	border-bottom: 1px solid var(--border-color-base, #a2a9b1);&lt;br /&gt;
	margin-bottom: 0.25em;&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	font-family: &#039;Linux Libertine&#039;,&#039;Georgia&#039;,&#039;Times&#039;,&#039;Source Serif Pro&#039;,serif;&lt;br /&gt;
	line-height: 1.375;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-monobook .fake-heading.h1,&lt;br /&gt;
body.skin-monobook .fake-heading.h2 {&lt;br /&gt;
	font-family: inherit;&lt;br /&gt;
	line-height: inherit;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-timeless .fake-heading.h1,&lt;br /&gt;
body.skin-timeless .fake-heading.h2 {&lt;br /&gt;
	border-bottom: 3px solid #c8ccd1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.fake-heading.h1 {&lt;br /&gt;
	font-size: 1.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-timeless .fake-heading.h1 {&lt;br /&gt;
	font-size: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.fake-heading.h2 {&lt;br /&gt;
	font-size: 1.5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
body.skin-timeless .fake-heading.h2 {&lt;br /&gt;
	font-size: 1.8em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.fake-heading.h3,&lt;br /&gt;
.fake-heading.h4,&lt;br /&gt;
.fake-heading.h5,&lt;br /&gt;
.fake-heading.h6 {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	margin-top: 0.3em;&lt;br /&gt;
	margin-bottom: 0;&lt;br /&gt;
	padding-bottom: 0;&lt;br /&gt;
	line-height: 1.6;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.fake-heading.h3 {&lt;br /&gt;
	font-size: 1.2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.fake-heading.h4 {&lt;br /&gt;
	font-size: 100%;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Transwiki_guide&amp;diff=1207</id>
		<title>Template:Transwiki guide</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Transwiki_guide&amp;diff=1207"/>
		<updated>2025-08-11T02:36:42Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ombox&lt;br /&gt;
|style=border:#38C400 1px solid;&lt;br /&gt;
|image=[[File:Edit-copy purple-wikit.svg|48px|alt=|link=]]&lt;br /&gt;
|text={{{text|See {{#if:{{{1|}}}|[[{{{1}}}]]|[[{{FULLPAGENAME}}/Transwiki guide]]}} for help copying this {{#if: {{{type|}}}|{{{type}}}|{{#ifeq: {{NAMESPACE}}|Template|template|{{#ifeq: {{NAMESPACE}}|Module|module|project}}}}}} and modifying it for use on another wiki.}}}&lt;br /&gt;
|small={{{small|}}}&lt;br /&gt;
}}&amp;lt;includeonly&amp;gt;[[Category:Transwiki guide|{{{2|{{PAGENAME}}}}}]]&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;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Reflist/doc&amp;diff=1205</id>
		<title>Template:Reflist/doc</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Reflist/doc&amp;diff=1205"/>
		<updated>2025-08-11T02:36:42Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{pp|small=yes}}&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-use}}&lt;br /&gt;
{{cascade-protected template}}&lt;br /&gt;
{{notice|This page gives technical details for the {{tl|Reflist}} template. For a full overview of this template in use, see [[Help:Footnotes]].}}&lt;br /&gt;
{{Template shortcut|refs|rflist}}&lt;br /&gt;
{{Template redirect|Reference|Reference list|Footnotes}}&lt;br /&gt;
{{Transwiki guide |small=yes |text=See [[Template:Reflist/Transwiki guide|&#039;&#039;&#039;this information&#039;&#039;&#039;]] on copying this template and modifying it for use on another wiki.}}&lt;br /&gt;
{{Lua|Module:Check for unknown parameters}}&lt;br /&gt;
{{Uses TemplateStyles}}&lt;br /&gt;
This [[Wikipedia:Citation templates|citation template]] provides formatting and organizational features for [[Help:Footnotes|footnotes]]. It encapsulates the {{tag|references|s}} tag used by the {{cite.php}} MediaWiki extension to show the list of references as defined by {{tag|ref|o}} tags. It adds support for sizing the column width, groups and {{ldr}}.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
There are no &#039;&#039;required&#039;&#039; parameters; if none are supplied, a single-column list will be generated if there are fewer than 10 references in the list. If you have more than 10 references, it will use columns of 30em wide if your device allows this.&lt;br /&gt;
&lt;br /&gt;
Optional parameters are:&lt;br /&gt;
* Unnamed parameter (must be the first one if used): the minimum width for each column of references, typically in [[em (typography)#CSS|em]]s. Syntax (for example) {{para||30em}} with no space (i.e. not {{para||30 em}}). Note that this replaces &#039;&#039;&#039;colwidth&#039;&#039;&#039;—see [[#Obsolete parameters|§&amp;amp;nbsp;Obsolete parameters]].&lt;br /&gt;
* &#039;&#039;&#039;refs&#039;&#039;&#039;: used with {{ldr}}. This parameter is not compatible with [[Wikipedia:VisualEditor|VisualEditor]], but the equivalent syntax using {{tag|references}} is.&lt;br /&gt;
* &#039;&#039;&#039;group&#039;&#039;&#039;: identifies by name the subset of references to be rendered; the value should correspond to that used inline, e.g., {{tlx|Reflist|2=group=groupname}} renders all references with &#039;&#039;groupname&#039;&#039; as the group name ({{tag|ref|o|params=group=&amp;quot;groupname&amp;quot;}}). There are five pre-defined group names that style the list differently. See [[#Grouped references|§ Grouped references]] below.&lt;br /&gt;
* &#039;&#039;&#039;liststyle&#039;&#039;&#039;: specifies the style used when the reference list is rendered. The default is a numbered list. When set, it will override the style set by the {{para|group}} parameter, without affecting group functionality. See [[#List styles|§ List styles]] below.&lt;br /&gt;
{{anchor|Multiple uses}}&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
{{markup|title=Using only footnote-style references&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;Lorem ipsum.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Lorem ipsum.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{fake heading|sub=3|References}}&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{markup|title=Using only bibliographical style references (no direct references from the text)&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;Lorem ipsum. Lorem ipsum dolor sit amet.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Refbegin}}&lt;br /&gt;
* reference 1&lt;br /&gt;
* reference 2&lt;br /&gt;
{{Refend}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Lorem ipsum. Lorem ipsum dolor sit amet.&lt;br /&gt;
&lt;br /&gt;
{{fake heading|sub=3|References}}&lt;br /&gt;
{{Refbegin}}&lt;br /&gt;
* reference 1&lt;br /&gt;
* reference 2&lt;br /&gt;
{{Refend}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{markup|title=Using both footnote-style and bibliography-style references&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;Lorem ipsum.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
{{Refbegin}}&lt;br /&gt;
* reference 1&lt;br /&gt;
* reference 2&lt;br /&gt;
{{Refend}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Lorem ipsum.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{fake heading|sub=3|References}}&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
{{Refbegin}}&lt;br /&gt;
* reference 1&lt;br /&gt;
* reference 2&lt;br /&gt;
{{Refend}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Columns===&lt;br /&gt;
{{tlx|Reflist|30em}} (for example) instructs the browser to create as many columns as possible (of width at least 30&amp;amp;nbsp;[[Em (typography)|em]], in this example) given the width of the display window. ([http://www.w3.org/TR/CSS21/syndata.html#length-units Units supported are em, ex, in, cm, mm, pt, pc, px], but em is almost always used.) There must not be a space between the number and the unit. Percent is not supported.&lt;br /&gt;
&lt;br /&gt;
Choose a width appropriate to the typical width of the references:&lt;br /&gt;
* Automatic columns (default when no width is specified): Where there are only a few {{Fnote|lc=y}}; see, e.g., {{oldid|Silver State Arena|530211388#References|Silver State Arena (23:05, 28 December 2012)}}&lt;br /&gt;
* 30em: Where there are many footnotes plus a page-width Bibliography subsection: see, e.g., {{oldid|Ebola virus disease|819923970#References|Ebola virus disease (02:02, 12 January 2018)}}&lt;br /&gt;
* 20em: Where {{Sfnote|lc=y}} are used; see, e.g., {{oldid|NBR 224 and 420 Classes|442508215#Notes|NBR 224 and 420 Classes (13:32, 1 August 2011)}}.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
{{markup|title=15em wide columns (vary width of display window to see change in number of columns)&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;Lorem ipsum.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist|15em}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Lorem ipsum.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{fake heading|sub=3|References}}&lt;br /&gt;
{{Reflist|15em}}&amp;lt;!-- note 15em used here for illustration purposes because larger value won&#039;t columnize in the &amp;quot;renders as&amp;quot; part on many screens --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The syntax {{tlx|Reflist|2}} (for example), which specifies two columns of equal width &#039;&#039;regardless of the available display width&#039;&#039;, is deprecated. When you use 1 the template gives you a single column while 2 will pretend you specified 30em. When using higher column counts, it will pretend you specified 25em.&lt;br /&gt;
&lt;br /&gt;
===List-defined references===&lt;br /&gt;
{{Further|WP:LDR}}&lt;br /&gt;
&lt;br /&gt;
A list of references may be defined within {{tl|Reflist}} using the {{para|refs}} parameter, just like including named {{tag|ref|params=name=&amp;quot;...&amp;quot;}} elements inside the {{tag|references}} container.&lt;br /&gt;
&lt;br /&gt;
This syntax is &#039;&#039;&#039;not compatible&#039;&#039;&#039; with the [[Wikipedia:VisualEditor|VisualEditor]]; {{tag|references}} can be used instead.&lt;br /&gt;
&lt;br /&gt;
====Example====&lt;br /&gt;
{{markup&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;This is reference 1.&amp;lt;ref name=&amp;quot;refname1&amp;quot; /&amp;gt;&lt;br /&gt;
This is reference 2.&amp;lt;ref name=&amp;quot;refname2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist|refs=&lt;br /&gt;
&amp;lt;ref name=&amp;quot;refname1&amp;quot;&amp;gt;content1&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;refname2&amp;quot;&amp;gt;content2&amp;lt;/ref&amp;gt;&lt;br /&gt;
}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|This is reference 1.&amp;lt;ref name=&amp;quot;refname1&amp;quot; group=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
This is reference 2.&amp;lt;ref name=&amp;quot;refname2&amp;quot; group=&amp;quot;decimal&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{fake heading|sub=3|References}}&lt;br /&gt;
{{Reflist|group=decimal|refs=&lt;br /&gt;
&amp;lt;ref name=&amp;quot;refname1&amp;quot;&amp;gt;content1&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;refname2&amp;quot;&amp;gt;content2&amp;lt;/ref&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Grouped references===&lt;br /&gt;
{{further|WP:REFGROUP}}&lt;br /&gt;
&lt;br /&gt;
References can be grouped into separate sections (for explanatory notes, table references, and the like) via &amp;lt;code&amp;gt;group=&amp;lt;/code&amp;gt;:&lt;br /&gt;
:{{tag|ref|open|params=group=&amp;quot;&amp;lt;var&amp;gt;groupname&amp;lt;/var&amp;gt;&amp;quot;}}&lt;br /&gt;
where &amp;lt;var&amp;gt;groupname&amp;lt;/var&amp;gt; is (for example) &amp;lt;code&amp;gt;notes&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sources&amp;lt;/code&amp;gt;. The group name need not be enclosed in quotes; this differs from the footnote marker where quotes are required if the group name includes a space.&lt;br /&gt;
&lt;br /&gt;
Each group used in the article must have a matching reference list:&lt;br /&gt;
:{{tlx|Reflist|2=group=&amp;lt;var&amp;gt;groupname&amp;lt;/var&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
====Predefined groups====&lt;br /&gt;
{{further|H:PREGROUP}}&lt;br /&gt;
&lt;br /&gt;
There are predefined group names that automatically set the labels in the footnote markers and the reference list to other styles. Thus, setting &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{Reflist|group=lower-alpha}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; will set the group to &amp;lt;code&amp;gt;lower-alpha&amp;lt;/code&amp;gt; and will style the reference list with lower alpha characters. The matching footnote marker can be formed by {{tag|ref|params=group=&amp;quot;lower-alpha&amp;quot;}}. This is made easier by a series of templates to set the group/label styles for the footnote marker and the reference list:&lt;br /&gt;
{{#section:Help:Footnotes|pregrouptable}}&lt;br /&gt;
&lt;br /&gt;
===List styles===&lt;br /&gt;
{{for|technical details|Help:Cite link labels}}&lt;br /&gt;
&lt;br /&gt;
As noted in [[#Predefined groups|§ Predefined groups]], there are predefined groups that automatically add list styling. Using the listed templates is more convenient than using {{para|liststyle}}.&lt;br /&gt;
&lt;br /&gt;
Reference lists are by default numbered lists. By using the {{para|liststyle}} parameter, you can control how the list is rendered. For example, using {{para|liststyle|upper-roman}} will result in references being labeled with [[Roman numerals]] instead of decimal numbers. The parameter accepts any valid CSS value defined for &amp;lt;code&amp;gt;list-style-type&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
It is possible to use {{para|liststyle}} so that the labels for the footnote marker and the reference list marker differ. This should be used with care as it can be confusing to readers. For example:&lt;br /&gt;
&lt;br /&gt;
{{markup&lt;br /&gt;
|1=&amp;lt;nowiki&amp;gt;&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Reference&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Reflist|group=note|liststyle=lower-alpha}}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|2=&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Reference&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Reflist|group=note|liststyle=lower-alpha}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Interaction with images===&lt;br /&gt;
{{Reflist hide}}&lt;br /&gt;
In the unusual case of an image being placed to the left of a reference list, layout problems may occur on some browsers. This can be prevented by using the columns feature.&lt;br /&gt;
&lt;br /&gt;
==Technical details==&lt;br /&gt;
===Font size===&lt;br /&gt;
The font size should reduce to 90% for almost all browsers, but may appear to show at 100% for very old browsers, such as early versions of Internet Explorer.&amp;lt;ref group=&amp;quot;general&amp;quot; name=&amp;quot;fontsize&amp;quot; /&amp;gt; As of December 21, 2010, the standard {{tag|references|single}} tag has the same font styling. The smaller font may be disabled through {{myprefs|Gadgets|{{int:gadget-NoSmallFonts}}}}.&lt;br /&gt;
&lt;br /&gt;
===Browser support for columns===&lt;br /&gt;
{{CSS3 multiple column layout}}&lt;br /&gt;
&lt;br /&gt;
Multiple columns are generated by using [[Cascading Style Sheets|CSS]]. Almost all browsers should support the multi-column property and will show multiple columns with {{tl|Reflist}}.&amp;lt;ref group=&amp;quot;general&amp;quot; name=&amp;quot;stuffandnonsense&amp;quot; /&amp;gt;&amp;lt;ref group=&amp;quot;general&amp;quot; name=&amp;quot;w3org1&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;mdncols&amp;quot; group=&amp;quot;general&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These browsers &#039;&#039;&#039;support&#039;&#039;&#039; CSS columns:&lt;br /&gt;
* [[Gecko (software)|Gecko]]-based browsers such as [[Mozilla Firefox]]&lt;br /&gt;
* [[WebKit]] browsers such as [[Safari (web browser)|Safari]]&lt;br /&gt;
* [[Blink (browser engine)|Blink]]-based browsers such as [[Microsoft Edge]], [[Opera (web browser)|Opera]], and [[Google Chrome]]&lt;br /&gt;
* [[Internet Explorer]] from version 10 onward&lt;br /&gt;
&lt;br /&gt;
These browsers do &#039;&#039;&#039;not support&#039;&#039;&#039; CSS columns:&lt;br /&gt;
* Microsoft [[MSHTML]]-based browsers including Internet Explorer up to version 9&amp;lt;ref group=&amp;quot;general&amp;quot; name=&amp;quot;msdn&amp;quot; /&amp;gt;&lt;br /&gt;
* Very old [[Opera (web browser)|Opera]] through to version 11&lt;br /&gt;
&lt;br /&gt;
===Widows and orphans===&lt;br /&gt;
The use of columns can result in [[widows and orphans]], where a citation at the bottom of a column may be split to the top of the next column. [[MediaWiki:Common.css]] includes CSS rules to prevent list items from breaking between columns. Widows may still show in extreme circumstances, such as a reference list formatted in columns where only a single reference is defined.&lt;br /&gt;
&lt;br /&gt;
{{markup&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;Lorem ipsum.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist|10em}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|Lorem ipsum.&amp;lt;ref&amp;gt;Source name, access date, etc.&amp;lt;/ref&amp;gt;&lt;br /&gt;
Lorem ipsum dolor sit amet.&lt;br /&gt;
&lt;br /&gt;
{{fake heading|sub=3|References}}&lt;br /&gt;
{{Reflist|10em}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Customizing the view===&lt;br /&gt;
{{Further|Help:Reference display customization}}&lt;br /&gt;
&lt;br /&gt;
By editing your CSS, the personal appearance of the reference list can be customized. From [[Special:Preferences|Preferences]], select the Appearance tab, then on the selected skin select Custom CSS. After editing and saving, follow the instructions at the top of the page to purge. See [[Wikipedia:Skin#Customisation (advanced users)]] for more help.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Font size&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The font size for all reference lists defaults to 90% of the standard size. To change it, add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
ol.references,&lt;br /&gt;
.mw-parser-output div.reflist,&lt;br /&gt;
.mw-parser-output div.refbegin {&lt;br /&gt;
  font-size: 90%;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change 90% to the desired size.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Columns&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To disable columns, add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.references-column-width {&lt;br /&gt;
  column-width: auto !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Column dividers&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To add dividers (rules) between columns, add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.references-column-width {&lt;br /&gt;
  column-rule: 1px solid #aaa;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can alter the appearance of the dividers by changing the values.&lt;br /&gt;
&lt;br /&gt;
==Perennial suggestions==&lt;br /&gt;
&#039;&#039;&#039;Collapsing and scrolling&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There have been a number of requests to add functionality for a collapsible or [[WP:SCROLLING|scrolling]] reference list. These requests have not been fulfilled due to issues with readability, accessibility, and printing. The applicable guidelines are at [[MOS:SCROLL]]. Links between the inline cite and the reference list do not work when the reference list is enclosed in a collapsed box.&lt;br /&gt;
&lt;br /&gt;
To display the reference list in a scrollbox or collapsed per user, see [[Help:Reference display customization]].&lt;br /&gt;
&lt;br /&gt;
For discussion on previous attempts to do this with a template, see the discussions for [[Wikipedia:Templates for deletion/Log/2007 June 11#Template:Scrollref|Scrollref]] and [[Wikipedia:Templates for discussion/Log/2010 May 26#Template:Refbox|Refbox]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Including the section title&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There have been suggestions to include section header markup such as &amp;lt;code&amp;gt;==References==&amp;lt;/code&amp;gt;. This is inadvisable because:&lt;br /&gt;
* There is no standard section name {{crossreference|(see {{section link|WP:Manual of Style/Layout|Notes and references}})}}.&lt;br /&gt;
* When transcluded, the article will have an edit link that will confusingly open the template for editing.&lt;br /&gt;
&lt;br /&gt;
==Obsolete parameters==&lt;br /&gt;
These parameters are no longer in use:&lt;br /&gt;
* &#039;&#039;&#039;colwidth&#039;&#039;&#039;: Same as specifying a column-width for the first unnamed parameter. Replaced by width as unnamed first parameter.&lt;br /&gt;
&lt;br /&gt;
Articles using unsupported parameters are tracked in {{clc|Pages using reflist with unknown parameters}}.&lt;br /&gt;
&lt;br /&gt;
==Template data==&lt;br /&gt;
{{TemplateData header}}&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;description&amp;quot;: &amp;quot;This template displays the list of footnotes at the end of an article and provides additional formatting and organizing options. After hitting \&amp;quot;Apply changes\&amp;quot; and turning back to VE read mode, you will not see the references list. After hitting \&amp;quot;Publish page\&amp;quot; and turning back to normal read mode the reference list will reappear with the changes applied, see T53146.&amp;quot;,&lt;br /&gt;
	&amp;quot;params&amp;quot;: {&lt;br /&gt;
		&amp;quot;1&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Columns / Column width&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Two modes supported. First mode (deprecated): integer number of fixed columns into which the reference list is to be rendered.  Second mode: typographic unit of measurement such as &#039;em&#039;, specifying the width for the reference list columns, e.g. &#039;33em&#039;; spaced &#039;33&amp;amp;nbsp;em&#039; will not be recognized&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot; 1 if &amp;lt; 11 references; otherwise 30em&amp;quot;,&lt;br /&gt;
			&amp;quot;aliases&amp;quot;: [&lt;br /&gt;
				&amp;quot;colwidth&amp;quot;&lt;br /&gt;
			]&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;liststyle&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Liststyle&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Specifies the style used when the reference list is enumerated; accepts any valid CSS value defined for list-style-type&amp;quot;,&lt;br /&gt;
			&amp;quot;default&amp;quot;: &amp;quot;decimal&amp;quot;,&lt;br /&gt;
			&amp;quot;suggestedvalues&amp;quot;: [&lt;br /&gt;
				&amp;quot;none&amp;quot;,&lt;br /&gt;
				&amp;quot;disc&amp;quot;,&lt;br /&gt;
				&amp;quot;circle&amp;quot;,&lt;br /&gt;
				&amp;quot;square&amp;quot;,&lt;br /&gt;
				&amp;quot;decimal&amp;quot;,&lt;br /&gt;
				&amp;quot;decimal-leading-zero&amp;quot;,&lt;br /&gt;
				&amp;quot;lower-roman&amp;quot;,&lt;br /&gt;
				&amp;quot;upper-roman&amp;quot;,&lt;br /&gt;
				&amp;quot;lower-alpha&amp;quot;,&lt;br /&gt;
				&amp;quot;upper-alpha&amp;quot;,&lt;br /&gt;
				&amp;quot;lower-greek&amp;quot;,&lt;br /&gt;
				&amp;quot;armenian&amp;quot;,&lt;br /&gt;
				&amp;quot;georgian&amp;quot;&lt;br /&gt;
			]&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;group&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;Group&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Group is an identifier which restricts the references that are shown. Without this parameter, this template only shows references with no group identifier. With a group identifier specified, only references with a matching group identifier are handled. The rest are left alone.&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;refs&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: &amp;quot;List of references&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: false,&lt;br /&gt;
			&amp;quot;description&amp;quot;: &amp;quot;Provides a space to define named references for use in the article. References defined in this space are not shown unless used somewhere in the article.&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Limitations==&lt;br /&gt;
Do not use {{tl|Reflist}} or other templates or modules that use &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;{{#tag:references}}&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; in numbered or unnumbered lists if the list is inside an [[Span and div|HTML div tag]]. See [[Template talk:Reflist#Limitations|the talk page]] ([https://en.wikipedia.org/w/index.php?title=Template_talk:Reflist&amp;amp;oldid=942930696 permalink]) for examples and details.&lt;br /&gt;
&lt;br /&gt;
:{{no mark}} {{em dash}} &amp;lt;nowiki&amp;gt;:{{Reflist}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:{{no mark}} {{em dash}} &amp;lt;nowiki&amp;gt;*{{Reflist}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:{{no mark}} {{em dash}} &amp;lt;nowiki&amp;gt;#{{Reflist}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:{{yes check}} {{em dash}} &amp;lt;nowiki&amp;gt;{{Reflist}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Wikipedia:Citing sources]]&amp;amp;nbsp;– style guide for the citation of sources&lt;br /&gt;
* [[Wikipedia:Citation templates]]&amp;amp;nbsp;– templates for use with references&lt;br /&gt;
* [[Help:Shortened footnotes]]&lt;br /&gt;
* {{tl|Notelist}} and {{tl|efn}}&amp;amp;nbsp;– templates for use with footnotes&lt;br /&gt;
* {{tl|Refbegin}} and {{tl|Refend}}&amp;amp;nbsp;– format reference lists&lt;br /&gt;
* {{phab|T53260}} – Support editing {{tag|references|s}} tags to set multi-column display on/off&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Variants&#039;&#039;&#039;&lt;br /&gt;
* {{tl|Template reference list}}&amp;amp;nbsp;– version of reflist for use in templates&lt;br /&gt;
* {{tl|Reflist-talk}} and {{tl|Sources-talk}}&amp;amp;nbsp;– for use in talk page sections and other non-mainspace pages&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist|group=general|refs=&lt;br /&gt;
&amp;lt;ref group=&amp;quot;general&amp;quot; name=&amp;quot;fontsize&amp;quot;&amp;gt;See [[User:Edokter/fonttest]] for a comparison of font sizes for various browsers; see [https://en.wikipedia.org/w/index.php?title=Special%3ASearch&amp;amp;redirs=1&amp;amp;search=fonttest+prefix%3AMediaWiki+talk%3ACommon.css%2F&amp;amp;fulltext=Search&amp;amp;ns0=1 previous discussions] on changing the font size to resolve the IE issue.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref group=&amp;quot;general&amp;quot; name=&amp;quot;stuffandnonsense&amp;quot;&amp;gt;{{cite web |accessdate=November 24, 2006 |date=December 30, 2005 |title=CSS3 Multi-Column Thriller |url=http://www.stuffandnonsense.co.uk/archives/css3_multi-column_thriller.html}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ref group=&amp;quot;general&amp;quot; name=&amp;quot;w3org1&amp;quot;&amp;gt;{{cite web |url=http://www.w3.org/TR/css3-multicol/ |title=CSS3 module: Multi-column layout |publisher=[[World Wide Web Consortium|W3C]] |date=December 15, 2005 |accessdate=November 24, 2006}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref group=&amp;quot;general&amp;quot; name=&amp;quot;msdn&amp;quot;&amp;gt;{{cite web |url=https://docs.microsoft.com/en-us/previous-versions/cc351024(v=vs.85)#multi-column-layout |title=CSS Compatibility and Internet Explorer: Multi-column Layout |work=[[Microsoft Docs]] |publisher=[[Microsoft Developer Network]] |access-date=2021-03-19}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;mdncols&amp;quot; group=&amp;quot;general&amp;quot;&amp;gt;{{cite web |title=columns - CSS: Cascading Style Sheets {{!}} MDN |url=https://developer.mozilla.org/en-US/docs/Web/CSS/columns |website=[[MDN Web Docs]] |access-date=6 February 2024 |date=21 June 2023}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Wikipedia referencing}}&lt;br /&gt;
{{Wikipedia templates}}&lt;br /&gt;
{{Wikipedia technical help}}&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;
&lt;br /&gt;
[[Category:Footnote templates]]&lt;br /&gt;
[[Category:Reference list templates]]&lt;br /&gt;
[[Category:Templates that add a tracking category]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
	<entry>
		<id>https://www.foxopedia.org/index.php?title=Template:Ldr&amp;diff=1203</id>
		<title>Template:Ldr</title>
		<link rel="alternate" type="text/html" href="https://www.foxopedia.org/index.php?title=Template:Ldr&amp;diff=1203"/>
		<updated>2025-08-11T02:36:39Z</updated>

		<summary type="html">&lt;p&gt;Jterlecki: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Template:List-defined references]]&lt;br /&gt;
&lt;br /&gt;
{{Redirect category shell|&lt;br /&gt;
{{R from move}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jterlecki</name></author>
	</entry>
</feed>