<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linguifex.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sware</id>
	<title>Linguifex - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://linguifex.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sware"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/wiki/Special:Contributions/Sware"/>
	<updated>2026-07-02T06:58:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:D%C3%A3ter%C5%A1ke_terms_derived_from_Indo-European_languages&amp;diff=531088</id>
		<title>Category:Dãterške terms derived from Indo-European languages</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:D%C3%A3ter%C5%A1ke_terms_derived_from_Indo-European_languages&amp;diff=531088"/>
		<updated>2026-06-24T20:16:00Z</updated>

		<summary type="html">&lt;p&gt;Sware: Created page with &amp;quot;{{auto cat}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{auto cat}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Category:D%C3%A3ter%C5%A1ke_terms_derived_from_Proto-Indo-European&amp;diff=531087</id>
		<title>Category:Dãterške terms derived from Proto-Indo-European</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Category:D%C3%A3ter%C5%A1ke_terms_derived_from_Proto-Indo-European&amp;diff=531087"/>
		<updated>2026-06-24T20:15:57Z</updated>

		<summary type="html">&lt;p&gt;Sware: Created page with &amp;quot;{{auto cat}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{auto cat}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:%D0%BB%D0%B8%D1%86%D3%95%D1%8B&amp;diff=531086</id>
		<title>Contionary:лицӕы</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:%D0%BB%D0%B8%D1%86%D3%95%D1%8B&amp;diff=531086"/>
		<updated>2026-06-24T20:15:50Z</updated>

		<summary type="html">&lt;p&gt;Sware: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Dãterške==&lt;br /&gt;
===Alternate forms===&lt;br /&gt;
* {{alt|qdt|ыӕлиц}}&lt;br /&gt;
===Etymology===&lt;br /&gt;
From {{der|qdt|ine-pro|*léjdʰos|t=stone}}.&lt;br /&gt;
===Pronunciation===&lt;br /&gt;
*[[Guide:IPA|IPA]]&amp;lt;sup&amp;gt;([[Dãterške language|Dãterške]])&amp;lt;/sup&amp;gt;: /lɪt͡n̥əɨ/&lt;br /&gt;
===Adjective===&lt;br /&gt;
{{head|qdt|adjective|tr=lıcəy}}&lt;br /&gt;
# permanent, permanently, lasting forever&lt;br /&gt;
# solid, thick, solidly&lt;br /&gt;
#:{{ux|qdt|атомлицһа&#039;с &#039;&#039;&#039;лицӕы&#039;&#039;&#039; вң&#039;ьяшя.|Protons probably live &#039;&#039;&#039;forever&#039;&#039;&#039;.|inline=1}}&lt;br /&gt;
&lt;br /&gt;
===See also===&lt;br /&gt;
{{col|qdt|лицһа&amp;lt;t:hadron&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Contionary:suy%C3%A1saia&amp;diff=531085</id>
		<title>Contionary:suyásaia</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Contionary:suy%C3%A1saia&amp;diff=531085"/>
		<updated>2026-06-24T20:14:08Z</updated>

		<summary type="html">&lt;p&gt;Sware: /* Etymology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Knrawi==&lt;br /&gt;
{{wacag|xuyaxaia}}&lt;br /&gt;
===Etymology===&lt;br /&gt;
From {{der|knra|p=b|qsc|xuyaxaia}}&lt;br /&gt;
&lt;br /&gt;
===Pronunciation===&lt;br /&gt;
{{knra-ipa|x̟ʊɉa˥x̟aɪa|x̟ʊɉa˥x̟aja|xʊɰa˥xaja|s̺ʊɉä˥s̺äjä|xʲuɣa˥xʲaja|ʃuɰa˥ʃaja}}&lt;br /&gt;
&lt;br /&gt;
===Ideophone===&lt;br /&gt;
{{head|knra|ideophone}}&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;ideophone for happiness beyond words&#039;&#039;&lt;br /&gt;
#: {{ux|knra||}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:pollasena-roots/templates&amp;diff=531068</id>
		<title>Module:pollasena-roots/templates</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:pollasena-roots/templates&amp;diff=531068"/>
		<updated>2026-06-24T10:11:28Z</updated>

		<summary type="html">&lt;p&gt;Sware: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local m_pr = require(&amp;quot;Module:pollasena-roots&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local gsub = mw.ustring.gsub&lt;br /&gt;
&lt;br /&gt;
local export = {}&lt;br /&gt;
&lt;br /&gt;
local function concat_etymologies(args, etymologies)&lt;br /&gt;
	local str = table.concat(etymologies, &amp;quot;, &amp;quot;) .. &amp;quot;.&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	if not args.nocap then&lt;br /&gt;
		str = str:gsub(&amp;quot;^.&amp;quot;, mw.ustring.upper)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.qsc(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;sekh&amp;quot;, options = {}},&lt;br /&gt;
		{code = &amp;quot;wasc&amp;quot;, options = {optional = true, roots = true}}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;qsc&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.lyti_inh(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;lyti-mid&amp;quot;, options = {}},&lt;br /&gt;
		{code = &amp;quot;lyti-old&amp;quot;, options = {optional = true}},&lt;br /&gt;
		{code = &amp;quot;cel-pro&amp;quot;, options = {annotated = true, optional = true}},&lt;br /&gt;
		{code = &amp;quot;ine-pro&amp;quot;, options = {roots = true, optional = true}},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;lyti&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.lyti_loan(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	parent_args.borrowing = true&lt;br /&gt;
	local source_code = parent_args[1] or &amp;quot;und&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	local extra_params = {&lt;br /&gt;
		mid = {type = &amp;quot;boolean&amp;quot;},&lt;br /&gt;
		old = {type = &amp;quot;boolean&amp;quot;},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = source_code, options = {borrowed = true}},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if parent_args.mid or parent_args.old then&lt;br /&gt;
		table.insert(ancestor_codes, 1, {code = &amp;quot;lyti-mid&amp;quot;, options = {optional = not parent_args.mid}})&lt;br /&gt;
		if parent_args.old then&lt;br /&gt;
			table.insert(ancestor_codes, parent_args.mid and 2 or 1, {code = &amp;quot;lyti-old&amp;quot;, options = {optional = not parent_args.old}})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;lyti&amp;quot;, ancestor_codes, extra_params)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.gwax_wasc(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;wasc&amp;quot;, options = {roots = true}}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;gwax&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.gwax_nen(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	parent_args.nocat = true -- no custom categories for Nentammmi&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;nent-pro&amp;quot;, options = {roots = true}}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;gwax&amp;quot;, ancestor_codes)&lt;br /&gt;
&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.guim(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;ine-pro&amp;quot;, options = {roots = true}}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;guim&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.sekh(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;wasc&amp;quot;, options = {optional = true, roots = true}}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;sekh&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.hzlc(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;wasc&amp;quot;, options = {optional = true, roots = true}}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;hzlc&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.soky(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;qsc&amp;quot;, options = {}},&lt;br /&gt;
		{code = &amp;quot;sekh&amp;quot;, options = {optional = true}},&lt;br /&gt;
		{code = &amp;quot;wasc&amp;quot;, options = {optional = true, roots = true}}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;soky&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.azms(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;azms-old&amp;quot;, options = {optional = true}},&lt;br /&gt;
		{code = &amp;quot;arto-pro&amp;quot;, options = {optional = true}},&lt;br /&gt;
		{code = &amp;quot;mish-pro&amp;quot;, options = {optional = true}},&lt;br /&gt;
		{code = &amp;quot;ine-pro&amp;quot;, options = {optional = true, roots = true}}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;azms&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.snon(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;sdno&amp;quot;, options = {optional = true}},&lt;br /&gt;
		{code = &amp;quot;non&amp;quot;, options = {}},&lt;br /&gt;
		{code = &amp;quot;gem-pro&amp;quot;, options = {optional = true}},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;snon&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.tevo(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;chle-pro&amp;quot;, options = {}},&lt;br /&gt;
		{code = &amp;quot;ine-pro&amp;quot;, options = {optional = true}},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;tevo&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.mtev(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;tevo&amp;quot;, options = {}},&lt;br /&gt;
		{code = &amp;quot;chle-pro&amp;quot;, options = {}},&lt;br /&gt;
		{code = &amp;quot;ine-pro&amp;quot;, options = {optional = true}},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;mtev&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.sish(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;thld&amp;quot;, options = {}},&lt;br /&gt;
		{code = &amp;quot;chle-pro&amp;quot;, options = {}},&lt;br /&gt;
		{code = &amp;quot;ine-pro&amp;quot;, options = {optional = true}},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;sish&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.sego(frame)&lt;br /&gt;
	local parent_args = frame:getParent().args&lt;br /&gt;
	&lt;br /&gt;
	local ancestor_codes = {&lt;br /&gt;
		{code = &amp;quot;ine-pro&amp;quot;, options = {roots = true}},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local evolution, args, categories = m_pr.parse_args(parent_args, &amp;quot;sego&amp;quot;, ancestor_codes)&lt;br /&gt;
	&lt;br /&gt;
	return concat_etymologies(args, evolution) .. categories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!!/doc&amp;diff=531067</id>
		<title>Template:!!/doc</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!!/doc&amp;diff=531067"/>
		<updated>2026-06-24T10:07:49Z</updated>

		<summary type="html">&lt;p&gt;Sware: Sware moved page Template:!!/documentation to Template:!!/doc without leaving a redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:)!/documentation&amp;diff=531066</id>
		<title>Template:)!/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:)!/documentation&amp;diff=531066"/>
		<updated>2026-06-24T10:06:27Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!(/documentation&amp;diff=531064</id>
		<title>Template:!(/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!(/documentation&amp;diff=531064"/>
		<updated>2026-06-24T10:06:26Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:)%5E/documentation&amp;diff=531062</id>
		<title>Template:)^/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:)%5E/documentation&amp;diff=531062"/>
		<updated>2026-06-24T10:06:26Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:%5E(/documentation&amp;diff=531060</id>
		<title>Template:^(/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:%5E(/documentation&amp;diff=531060"/>
		<updated>2026-06-24T10:06:26Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:)))/documentation&amp;diff=531058</id>
		<title>Template:)))/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:)))/documentation&amp;diff=531058"/>
		<updated>2026-06-24T10:06:26Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:(((/documentation&amp;diff=531056</id>
		<title>Template:(((/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:(((/documentation&amp;diff=531056"/>
		<updated>2026-06-24T10:06:26Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:))/documentation&amp;diff=531054</id>
		<title>Template:))/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:))/documentation&amp;diff=531054"/>
		<updated>2026-06-24T10:06:25Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:((/documentation&amp;diff=531052</id>
		<title>Template:((/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:((/documentation&amp;diff=531052"/>
		<updated>2026-06-24T10:06:25Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:)/documentation&amp;diff=531050</id>
		<title>Template:)/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:)/documentation&amp;diff=531050"/>
		<updated>2026-06-24T10:06:25Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:))!/documentation&amp;diff=531048</id>
		<title>Template:))!/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:))!/documentation&amp;diff=531048"/>
		<updated>2026-06-24T10:06:25Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!((/documentation&amp;diff=531046</id>
		<title>Template:!((/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!((/documentation&amp;diff=531046"/>
		<updated>2026-06-24T10:06:25Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:%27/documentation&amp;diff=531044</id>
		<title>Template:&#039;/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:%27/documentation&amp;diff=531044"/>
		<updated>2026-06-24T10:06:25Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:(/documentation&amp;diff=531042</id>
		<title>Template:(/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:(/documentation&amp;diff=531042"/>
		<updated>2026-06-24T10:06:24Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!-/documentation&amp;diff=531040</id>
		<title>Template:!-/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!-/documentation&amp;diff=531040"/>
		<updated>2026-06-24T10:06:24Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!!/doc&amp;diff=531038</id>
		<title>Template:!!/doc</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!!/doc&amp;diff=531038"/>
		<updated>2026-06-24T10:06:24Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:(!/documentation&amp;diff=531036</id>
		<title>Template:(!/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:(!/documentation&amp;diff=531036"/>
		<updated>2026-06-24T10:06:24Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!)/documentation&amp;diff=531034</id>
		<title>Template:!)/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!)/documentation&amp;diff=531034"/>
		<updated>2026-06-24T10:06:24Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:Pipe/documentation&amp;diff=531032</id>
		<title>Template:Pipe/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:Pipe/documentation&amp;diff=531032"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!%2B/documentation&amp;diff=531030</id>
		<title>Template:!+/documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!%2B/documentation&amp;diff=531030"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:Wikitext_character_template_documentation&amp;diff=531028</id>
		<title>Template:Wikitext character template documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:Wikitext_character_template_documentation&amp;diff=531028"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{documentation subpage}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;/includeonly&amp;gt;This template simply displays &amp;lt;includeonly&amp;gt;&amp;lt;code&amp;gt;{{anchorencode:{{{{#ifeq:{{SUBPAGENAME}}|documentation|{{BASEPAGENAME}}|{{PAGENAME}}}} }}}}&amp;lt;/code&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&amp;lt;code&amp;gt;&amp;lt;var&amp;gt;char&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/noinclude&amp;gt;. It is used in cases where &amp;lt;includeonly&amp;gt;&amp;lt;code&amp;gt;{{anchorencode:{{{{#ifeq:{{SUBPAGENAME}}|documentation|{{BASEPAGENAME}}|{{PAGENAME}}}} }}}}&amp;lt;/code&amp;gt;&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&amp;lt;code&amp;gt;&amp;lt;var&amp;gt;char&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/noinclude&amp;gt; would otherwise be (undesirably) interpreted as {{w|Help:Wikitext|wikitext}}. It takes no parameters.&lt;br /&gt;
&lt;br /&gt;
===See also===&lt;br /&gt;
* {{tl|pipe}} → |&lt;br /&gt;
* {{tl|&#039;}} → {{&#039;}}&lt;br /&gt;
* {{tl|^(}} {{tl|)^}} → {{^(}} {{)^}}&lt;br /&gt;
* {{tl|!(}} {{tl|)!}} → {{!(}} {{)!}}&lt;br /&gt;
* {{tl|!((}} {{tl|))!}} → {{!((}} {{))!}}&lt;br /&gt;
* {{tl|(}} {{tl|)}} → {{(}} {{)}}&lt;br /&gt;
* {{tl|((}} {{tl|))}} → {{((}} {{))}}&lt;br /&gt;
* {{tl|(((}} {{tl|)))}} → {{(((}} {{)))}}&lt;br /&gt;
* {{tl|(!}} {{tl|!)}} → {{anchorencode:{{(!}}}} {{anchorencode:{{!)}}}}&amp;lt;!--Prevents these from being interpreted as table syntax.--&amp;gt;&lt;br /&gt;
* {{tl|1==}} → {{=}}&lt;br /&gt;
* {{tl|!}} → {{!}}&lt;br /&gt;
* {{tl|!!}} → {{!!}}&lt;br /&gt;
* {{tl|!+}} → {{!+}}&lt;br /&gt;
* {{tl|!-}} → {{!-}}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifeq:{{SUBPAGENAME}}|documentation||[[Category:Templates for generating characters used in wiki code|{{anchorencode:{{{{PAGENAME}} }}}}]]}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:Documentation_subpage&amp;diff=531026</id>
		<title>Template:Documentation subpage</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:Documentation_subpage&amp;diff=531026"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;!-- if not on a /documentation subpage, do nothing --&amp;gt;{{#ifeq:{{FULLPAGENAME}}|Template:documentation|&amp;lt;{{lc:}}!-- Dummy comment to prevent a newline from appearing --&amp;gt;|{{#ifeq:{{SUBPAGENAME}}|documentation|&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{maintenance box|grey&lt;br /&gt;
| documentation&lt;br /&gt;
| title = Documentation for [[{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]. &amp;lt;sup class=&amp;quot;plainlinks&amp;quot;&amp;gt;&amp;amp;#x5b;[{{fullurl:{{SUBJECTSPACE}}:{{BASEPAGENAME}}|action=edit}} edit]&amp;amp;#x5d;&amp;lt;/sup&amp;gt;&lt;br /&gt;
| image = [[File:Codex icon articles.svg|40px|alt=Documentation|class=skin-invert-image|link=]]&lt;br /&gt;
| text  = This page contains [[Help:Documenting templates and modules|usage information]], [[WT:Categorization|categories]], [[Help:Interwiki linking|interwiki links]] and other content describing the {{#switch:{{NAMESPACE}}|Module=module|#default=template}}.&lt;br /&gt;
}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}|[[Category:Documentation subpages]]|[[Category:Orphaned documentation subpages]]}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;|&amp;lt;{{lc:}}!-- Dummy comment to prevent a newline from appearing --&amp;gt;}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Module:documentation&amp;diff=531024</id>
		<title>Module:documentation</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:documentation&amp;diff=531024"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local export = {}&lt;br /&gt;
&lt;br /&gt;
local array_module = &amp;quot;Module:array&amp;quot;&lt;br /&gt;
local debug_track_module = &amp;quot;Module:debug/track&amp;quot;&lt;br /&gt;
local frame_module = &amp;quot;Module:frame&amp;quot;&lt;br /&gt;
local fun_is_callable_module = &amp;quot;Module:fun/isCallable&amp;quot;&lt;br /&gt;
local languages_module = &amp;quot;Module:languages&amp;quot;&lt;br /&gt;
local links_module = &amp;quot;Module:links&amp;quot;&lt;br /&gt;
local load_module = &amp;quot;Module:load&amp;quot;&lt;br /&gt;
local module_categorization_module = &amp;quot;Module:module categorization&amp;quot;&lt;br /&gt;
local number_list_show_module = &amp;quot;Module:number list/show&amp;quot;&lt;br /&gt;
local chemical_element_list_show_module = &amp;quot;Module:chemical element list/show&amp;quot;&lt;br /&gt;
local pages_module = &amp;quot;Module:pages&amp;quot;&lt;br /&gt;
local parameters_module = &amp;quot;Module:parameters&amp;quot;&lt;br /&gt;
local scripts_module = &amp;quot;Module:scripts&amp;quot;&lt;br /&gt;
local string_endswith_module = &amp;quot;Module:string/endswith&amp;quot;&lt;br /&gt;
local string_gline_module = &amp;quot;Module:string/gline&amp;quot;&lt;br /&gt;
local string_insert_module = &amp;quot;Module:string/insert&amp;quot;&lt;br /&gt;
local string_startswith_module = &amp;quot;Module:string/startswith&amp;quot;&lt;br /&gt;
local string_utilities_module = &amp;quot;Module:string utilities&amp;quot;&lt;br /&gt;
local template_parser_module = &amp;quot;Module:template parser&amp;quot;&lt;br /&gt;
local title_exists_module = &amp;quot;Module:title/exists&amp;quot;&lt;br /&gt;
local title_new_title_module = &amp;quot;Module:title/newTitle&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local concat = table.concat&lt;br /&gt;
local error = error&lt;br /&gt;
local full_url = mw.uri.fullUrl&lt;br /&gt;
local get_current_title = mw.title.getCurrentTitle&lt;br /&gt;
local insert = table.insert&lt;br /&gt;
local ipairs = ipairs&lt;br /&gt;
local list_to_text = mw.text.listToText&lt;br /&gt;
local new_message = mw.message.new&lt;br /&gt;
local pcall = pcall&lt;br /&gt;
local require = require&lt;br /&gt;
local tonumber = tonumber&lt;br /&gt;
local tostring = tostring&lt;br /&gt;
local type = type&lt;br /&gt;
local unpack = unpack or table.unpack -- Lua 5.2 compatibility&lt;br /&gt;
&lt;br /&gt;
local function Array(...)&lt;br /&gt;
	Array = require(array_module)&lt;br /&gt;
	return Array(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function categorize_module(...)&lt;br /&gt;
	categorize_module = require(module_categorization_module).categorize&lt;br /&gt;
	return categorize_module(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function debug_track(...)&lt;br /&gt;
	debug_track = require(debug_track_module)&lt;br /&gt;
	return debug_track(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function endswith(...)&lt;br /&gt;
	endswith = require(string_endswith_module)&lt;br /&gt;
	return endswith(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function expand_template(...)&lt;br /&gt;
	expand_template = require(frame_module).expandTemplate&lt;br /&gt;
	return expand_template(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function find_templates(...)&lt;br /&gt;
	find_templates = require(template_parser_module).find_templates&lt;br /&gt;
	return find_templates(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function full_link(...)&lt;br /&gt;
	full_link = require(links_module).full_link&lt;br /&gt;
	return full_link(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_lang(...)&lt;br /&gt;
	get_lang = require(languages_module).getByCode&lt;br /&gt;
	return get_lang(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_pagetype(...)&lt;br /&gt;
	get_pagetype = require(pages_module).get_pagetype&lt;br /&gt;
	return get_pagetype(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function get_script(...)&lt;br /&gt;
	get_script = require(scripts_module).getByCode&lt;br /&gt;
	return get_script(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function gline(...)&lt;br /&gt;
	gline = require(string_gline_module)&lt;br /&gt;
	return gline(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function is_callable(...)&lt;br /&gt;
	is_callable = require(fun_is_callable_module)&lt;br /&gt;
	return is_callable(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function is_documentation(...)&lt;br /&gt;
	is_documentation = require(pages_module).is_documentation&lt;br /&gt;
	return is_documentation(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function is_sandbox(...)&lt;br /&gt;
	is_sandbox = require(pages_module).is_sandbox&lt;br /&gt;
	return is_sandbox(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function new_title(...)&lt;br /&gt;
	new_title = require(title_new_title_module)&lt;br /&gt;
	return new_title(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function number_list_show_table(...)&lt;br /&gt;
	number_list_show_table = require(number_list_show_module).table&lt;br /&gt;
	return number_list_show_table(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function chemical_element_list_show_table(...)&lt;br /&gt;
	chemical_element_list_show_table = require(chemical_element_list_show_module).table&lt;br /&gt;
	return chemical_element_list_show_table(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function preprocess(...)&lt;br /&gt;
	preprocess = require(frame_module).preprocess&lt;br /&gt;
	return preprocess(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function process_params(...)&lt;br /&gt;
	process_params = require(parameters_module).process&lt;br /&gt;
	return process_params(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function safe_load_data(...)&lt;br /&gt;
	safe_load_data = require(load_module).safe_load_data&lt;br /&gt;
	return safe_load_data(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function split(...)&lt;br /&gt;
	split = require(string_utilities_module).split&lt;br /&gt;
	return split(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function startswith(...)&lt;br /&gt;
	startswith = require(string_startswith_module)&lt;br /&gt;
	return startswith(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function string_insert(...)&lt;br /&gt;
	string_insert = require(string_insert_module)&lt;br /&gt;
	return string_insert(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function title_exists(...)&lt;br /&gt;
	title_exists = require(title_exists_module)&lt;br /&gt;
	return title_exists(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function ugsub(...)&lt;br /&gt;
	ugsub = require(string_utilities_module).gsub&lt;br /&gt;
	return ugsub(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function umatch(...)&lt;br /&gt;
	umatch = require(string_utilities_module).match&lt;br /&gt;
	return umatch(...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local skins = {&lt;br /&gt;
	[&amp;quot;common&amp;quot;] = &amp;quot;&amp;quot;,&lt;br /&gt;
	[&amp;quot;vector&amp;quot;] = &amp;quot;Vector&amp;quot;,&lt;br /&gt;
	[&amp;quot;monobook&amp;quot;] = &amp;quot;Monobook&amp;quot;,&lt;br /&gt;
	[&amp;quot;cologneblue&amp;quot;] = &amp;quot;Cologne Blue&amp;quot;,&lt;br /&gt;
	[&amp;quot;modern&amp;quot;] = &amp;quot;Modern&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function track(page)&lt;br /&gt;
	debug_track(&amp;quot;documentation/&amp;quot; .. page)&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function compare_pages(page1, page2, text)&lt;br /&gt;
	return &amp;quot;[&amp;quot; .. tostring(&lt;br /&gt;
			full_url(&amp;quot;Special:ComparePages&amp;quot;, { page1 = page1, page2 = page2 }))&lt;br /&gt;
		.. &amp;quot; &amp;quot; .. text .. &amp;quot;]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Avoid transcluding [[Module:languages/cache]] everywhere.&lt;br /&gt;
local lang_cache = setmetatable({}, {&lt;br /&gt;
	__index = function(self, k)&lt;br /&gt;
		return require(&amp;quot;Module:languages/cache&amp;quot;)[k]&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
local function zh_link(word)&lt;br /&gt;
	return full_link {&lt;br /&gt;
		lang = lang_cache.zh,&lt;br /&gt;
		term = word&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function make_languages_data_documentation(title, cats, division)&lt;br /&gt;
	local doc_template, module_cat&lt;br /&gt;
	if endswith(division, &amp;quot;/extra&amp;quot;) then&lt;br /&gt;
		division = division:sub(1, -7)&lt;br /&gt;
		doc_template = &amp;quot;language extradata documentation&amp;quot;&lt;br /&gt;
		module_cat = &amp;quot;Language extra data modules&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		doc_template = &amp;quot;language data documentation&amp;quot;&lt;br /&gt;
		module_cat = &amp;quot;Language data modules&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local sort_key&lt;br /&gt;
	if division == &amp;quot;exceptional&amp;quot; then&lt;br /&gt;
		sort_key = &amp;quot;x&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		sort_key = division:gsub(&amp;quot;/&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	cats:insert(module_cat .. &amp;quot;|&amp;quot; .. sort_key)&lt;br /&gt;
	return {&lt;br /&gt;
		title = doc_template&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function make_Unicode_data_documentation(title, cats)&lt;br /&gt;
	local subpage, first_three_of_code_point&lt;br /&gt;
	= title.fullText:match(&amp;quot;^Module:Unicode data/([^/]+)/(%x%x%x)$&amp;quot;)&lt;br /&gt;
	if subpage == &amp;quot;names&amp;quot; or subpage == &amp;quot;images&amp;quot; or subpage == &amp;quot;emoji images&amp;quot; then&lt;br /&gt;
		local low, high =&lt;br /&gt;
			tonumber(first_three_of_code_point .. &amp;quot;000&amp;quot;, 16),&lt;br /&gt;
			tonumber(first_three_of_code_point .. &amp;quot;FFF&amp;quot;, 16)&lt;br /&gt;
		local text, text_type&lt;br /&gt;
		if subpage == &amp;quot;names&amp;quot; then&lt;br /&gt;
			text_type = &amp;quot;titles of images&amp;quot;&lt;br /&gt;
		elseif subpage == &amp;quot;images&amp;quot; then&lt;br /&gt;
			text_type = &amp;quot;titles of images&amp;quot;&lt;br /&gt;
		elseif subpage == &amp;quot;emoji images&amp;quot; then&lt;br /&gt;
			text_type = &amp;quot;emoji-style images&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		text = string.format(&lt;br /&gt;
			&amp;quot;This data module contains the &amp;quot; .. text_type .. &amp;quot; of &amp;quot; ..&lt;br /&gt;
			&amp;quot;[[wikt:Appendix:Unicode|Unicode]] code points within the range U+%04X to U+%04X.&amp;quot;,&lt;br /&gt;
			low, high)&lt;br /&gt;
		if subpage == &amp;quot;images&amp;quot; and safe_load_data(&amp;quot;Module:Unicode data/emoji images/&amp;quot; .. first_three_of_code_point) then&lt;br /&gt;
			text = text ..&lt;br /&gt;
				&amp;quot; This list includes the text variants of emojis. For the list of emoji variants of those characters, see [[Module:Unicode data/emoji images/&amp;quot; ..&lt;br /&gt;
				first_three_of_code_point .. &amp;quot;]].&amp;quot;&lt;br /&gt;
		elseif subpage == &amp;quot;emoji images&amp;quot; then&lt;br /&gt;
			text = text ..&lt;br /&gt;
				&amp;quot; For text-style images, see [[Module:Unicode data/images/&amp;quot; .. first_three_of_code_point .. &amp;quot;]].&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		return text&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function insert_lang_data_module_cats(cats, langcode, overall_data_module_cat)&lt;br /&gt;
	local lang = lang_cache[langcode]&lt;br /&gt;
	if lang then&lt;br /&gt;
		local langname&lt;br /&gt;
		if lang._fullCode then&lt;br /&gt;
			langname = lang_cache[lang._fullCode]:getCanonicalName()&lt;br /&gt;
		else&lt;br /&gt;
			langname = lang:getCanonicalName()&lt;br /&gt;
		end&lt;br /&gt;
		cats:insert(overall_data_module_cat .. &amp;quot;|&amp;quot; .. langname)&lt;br /&gt;
		cats:insert(langname .. &amp;quot; modules&amp;quot;)&lt;br /&gt;
		cats:insert(langname .. &amp;quot; data modules&amp;quot;)&lt;br /&gt;
		return lang, langname&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[&lt;br /&gt;
This provides categories and documentation for various data modules, so that [[Category:Uncategorized modules]] isn&#039;t&lt;br /&gt;
unnecessarily cluttered. It is a list of tables, each of which have the following possible fields:&lt;br /&gt;
&lt;br /&gt;
`regex` (required): A Lua pattern to match the module&#039;s title. If it matches, the data in this entry will be used.&lt;br /&gt;
	Any captures in the pattern can by referenced in the `cat` field using %1 for the first capture, %2 for the&lt;br /&gt;
	second, etc. (often used for creating the sortkey for the category). In addition, the captures are passed to the&lt;br /&gt;
	`process` function as the third and subsequent parameters.&lt;br /&gt;
&lt;br /&gt;
`process` (optional): This may be a function or a string. If it is a function, it is called as follows:&lt;br /&gt;
	   `process(TITLE, CATS, CAPTURE1, CAPTURE2, ...)`&lt;br /&gt;
	where:&lt;br /&gt;
	   * TITLE is a title object describing the module&#039;s title; see&lt;br /&gt;
		 [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Title_objects].&lt;br /&gt;
	   * CATS is an array object (see [[Module:array]]) of categories that the module will be added to.&lt;br /&gt;
	   * CAPTURE1, CAPTURE2, ... contain any captures in the `regex` field.&lt;br /&gt;
	The return value of `process` should either be a string (which will be used as the module&#039;s documentation), or a&lt;br /&gt;
	table specifying the name of a template to expand to get the documentation, along with the arguments to that&lt;br /&gt;
	template. In the latter format, the template name (bare, without the &amp;quot;Template:&amp;quot; prefix) should be in the `title`&lt;br /&gt;
	field, and any arguments should be in `args; in this case, the template name will be listed above the generated&lt;br /&gt;
	documentation as the source of the documentation, along with an edit button to edit the template&#039;s contents.&lt;br /&gt;
	If, however, the return value of the `process` function is a string, any template invocations will be expanded&lt;br /&gt;
	using frame:preprocess(), and [[Module:documentation]] will be listed as the source of the documentation.&lt;br /&gt;
&lt;br /&gt;
	If `process` itself is a string rather than a function, it should name a submodule under&lt;br /&gt;
	[[Module:documentation/functions/]] which returns a function, of the same type as described above. This submodule&lt;br /&gt;
	will be specified as the source of the documentation (unless it returns a table naming a template to expand to get&lt;br /&gt;
	the documentation, as described above).&lt;br /&gt;
&lt;br /&gt;
	If `process` is omitted entirely, the module will have no documentation.&lt;br /&gt;
&lt;br /&gt;
`cat` (optional): A string naming the category into which the module should be placed, or a list of such strings.&lt;br /&gt;
	Captures specified in `regex` may be referenced in this string using %1 for the first capture, %2 for the second,&lt;br /&gt;
	etc. It is also possible to add categories in the `process` function by inserting them into the passed-in CATS&lt;br /&gt;
	array (the second parameter).&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
local module_regex = {&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:languages/data/(3/%l/extra)$&amp;quot;,&lt;br /&gt;
		process = make_languages_data_documentation,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:languages/data/(3/%l)$&amp;quot;,&lt;br /&gt;
		process = make_languages_data_documentation,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:languages/data/(2/extra)$&amp;quot;,&lt;br /&gt;
		process = make_languages_data_documentation,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:languages/data/(2)$&amp;quot;,&lt;br /&gt;
		process = make_languages_data_documentation,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:languages/data/(exceptional/extra)$&amp;quot;,&lt;br /&gt;
		process = make_languages_data_documentation,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:languages/data/(exceptional)$&amp;quot;,&lt;br /&gt;
		process = make_languages_data_documentation,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:languages/.+$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Language and script modules&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:scripts/.+$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Language and script modules&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:data tables/data..?.?.?$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Reference module sharded data tables&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:zh/data/dial%-pron/.+$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Chinese dialectal pronunciation data modules&amp;quot;,&lt;br /&gt;
		process = &amp;quot;zh dial or syn&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:zh/data/dial%-syn/.+$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Chinese dialect synonyms data modules&amp;quot;,&lt;br /&gt;
		process = &amp;quot;zh dial or syn&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:zh/data/glyph%-data/.+$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Chinese historical character forms data modules&amp;quot;,&lt;br /&gt;
		process = function(title, cats)&lt;br /&gt;
			local character = title.fullText:match(&amp;quot;^Module:zh/data/glyph%-data/(.+)&amp;quot;)&lt;br /&gt;
			if character then&lt;br /&gt;
				return (&amp;quot;This module contains data on historical forms of the Chinese character %s.&amp;quot;)&lt;br /&gt;
					:format(zh_link(character))&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:zh/data/ltc%-pron/(.+)$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Middle Chinese pronunciation data modules|%1&amp;quot;,&lt;br /&gt;
		process = &amp;quot;zh data&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:zh/data/och%-pron%-BS/(.+)$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Old Chinese (Baxter-Sagart) pronunciation data modules|%1&amp;quot;,&lt;br /&gt;
		process = &amp;quot;zh data&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:zh/data/och%-pron%-ZS/(.+)$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Old Chinese (Zhengzhang) pronunciation data modules|%1&amp;quot;,&lt;br /&gt;
		process = &amp;quot;zh data&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		-- capture rest of zh/data submodules&lt;br /&gt;
		regex = &amp;quot;^Module:zh/data/(.+)$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Chinese data modules|%1&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:mul/guoxue%-data/cjk%-?(.*)$&amp;quot;,&lt;br /&gt;
		process = &amp;quot;guoxue-data&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:Unicode data/(.+)$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Unicode data modules|%1&amp;quot;,&lt;br /&gt;
		process = make_Unicode_data_documentation,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:number list/data/(.+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code)&lt;br /&gt;
			local lang = insert_lang_data_module_cats(cats, lang_code, &amp;quot;Number data modules&amp;quot;)&lt;br /&gt;
			if lang then&lt;br /&gt;
				return (&amp;quot;This module contains data on various types of numbers in %s.\n%s&amp;quot;)&lt;br /&gt;
					:format(lang:makeCategoryLink(), number_list_show_table() or &amp;quot;&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:chemical element list/data/(.+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code)&lt;br /&gt;
			local lang = insert_lang_data_module_cats(cats, lang_code, &amp;quot;Chemical element data modules&amp;quot;)&lt;br /&gt;
			if lang then&lt;br /&gt;
				return (&amp;quot;This module contains data on chemical elements in %s.\n%s&amp;quot;)&lt;br /&gt;
					:format(lang:makeCategoryLink(), chemical_element_list_show_table() or &amp;quot;&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
	},												&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:accel/(.+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats)&lt;br /&gt;
			local lang_code = title.subpageText&lt;br /&gt;
			local lang = lang_cache[lang_code]&lt;br /&gt;
			if lang then&lt;br /&gt;
				cats:insert(lang:getCanonicalName() .. &amp;quot; modules|accel&amp;quot;)&lt;br /&gt;
				cats:insert((&amp;quot;Accel submodules|%s&amp;quot;):format(lang:getCanonicalName()))&lt;br /&gt;
				return (&amp;quot;This module contains new entry creation rules for %s; see [[wikt:WT:ACCEL|WT:ACCEL]] for an overview, and [[Module:accel]] for information on creating new rules.&amp;quot;)&lt;br /&gt;
					:format(lang:makeCategoryLink())&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:inc%-ash/dial/data/(.+)$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Ashokan Prakrit modules|%1&amp;quot;,&lt;br /&gt;
		process = function(title, cats)&lt;br /&gt;
			local word = title.fullText:match(&amp;quot;^Module:inc%-ash/dial/data/(.+)$&amp;quot;)&lt;br /&gt;
			if word then&lt;br /&gt;
				local lang = lang_cache[&amp;quot;inc-ash&amp;quot;]&lt;br /&gt;
				return (&amp;quot;This module contains data on the pronunciation of %s in dialects of %s.&amp;quot;)&lt;br /&gt;
					:format(full_link({ term = word, lang = lang }, &amp;quot;term&amp;quot;),&lt;br /&gt;
						lang:makeCategoryLink())&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^.+%-translit$&amp;quot;,&lt;br /&gt;
		process = &amp;quot;translit&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:form of/lang%-data/(.+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code)&lt;br /&gt;
			local lang, langname = insert_lang_data_module_cats(cats, lang_code, &amp;quot;Language-specific form-of modules&amp;quot;)&lt;br /&gt;
			if lang then&lt;br /&gt;
				-- FIXME, display more info.&lt;br /&gt;
				return &amp;quot;This module contains language-specific form-of data (tags, shortcuts, base lemma params. etc.) for &amp;quot; ..&lt;br /&gt;
					langname .. &amp;quot;.&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:labels/data/lang/(.+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code)&lt;br /&gt;
			local lang = insert_lang_data_module_cats(cats, lang_code, &amp;quot;Language-specific label data modules&amp;quot;)&lt;br /&gt;
			if lang then&lt;br /&gt;
				return {&lt;br /&gt;
					title = &amp;quot;label language-specific data documentation&amp;quot;,&lt;br /&gt;
					args = { [1] = lang_code },&lt;br /&gt;
				}&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:category tree/lang/(.+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code)&lt;br /&gt;
			local lang, langname = insert_lang_data_module_cats(cats, lang_code, &amp;quot;Category tree data modules/lang&amp;quot;)&lt;br /&gt;
			if lang then&lt;br /&gt;
				return &amp;quot;This module handles generating the descriptions and categorization for &amp;quot; ..&lt;br /&gt;
					langname .. &amp;quot; category pages &amp;quot;&lt;br /&gt;
					.. &amp;quot;of the format \&amp;quot;&amp;quot; .. langname .. &amp;quot; LABEL\&amp;quot; where LABEL can be any text. Examples are &amp;quot;&lt;br /&gt;
					.. &amp;quot;[[:Category:Bulgarian conjugation 2.1 verbs]] and [[:Category:Russian velar-stem neuter-form nouns]]. &amp;quot;&lt;br /&gt;
					.. &amp;quot;This module is part of the category tree system, which is a general framework for generating the &amp;quot;&lt;br /&gt;
					.. &amp;quot;descriptions and categorization of category pages.\n\n&amp;quot;&lt;br /&gt;
					.. &amp;quot;For more information, see [[wikt:Module:category tree/lang/documentation|Module:category tree/lang/documentation]].\n\n&amp;quot;&lt;br /&gt;
					.. &amp;quot;&#039;&#039;&#039;NOTE:&#039;&#039;&#039; If you add a new language-specific module, you must add the language code to the &amp;quot;&lt;br /&gt;
					.. &amp;quot;list at the top of [[Module:category tree/lang]] in order for the module to be recognized.&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:category tree/topic/(.+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, submodule)&lt;br /&gt;
			cats:insert(&amp;quot;Category tree data modules/topic| &amp;quot;)&lt;br /&gt;
			return {&lt;br /&gt;
				title = &amp;quot;topic cat data submodule documentation&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
		end&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:category tree/(.+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, submodule)&lt;br /&gt;
			cats:insert(&amp;quot;Category tree data modules| &amp;quot;)&lt;br /&gt;
			return {&lt;br /&gt;
				title = &amp;quot;category tree data submodule documentation&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
		end&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:ja/data/(.+)$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Japanese data modules|%1&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:fi%-dialects/data/feature/Kettunen1940 ([0-9]+)$&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Finnish dialectal data atlas modules|%1&amp;quot;,&lt;br /&gt;
		process = function(title, cats, shard)&lt;br /&gt;
			return &amp;quot;This module contains shard &amp;quot; .. shard .. &amp;quot; of the online version of Lauri Kettunen&#039;s 1940 work &amp;quot; ..&lt;br /&gt;
				&amp;quot;&#039;&#039;Suomen murteet III A. Murrekartasto&#039;&#039; (\&amp;quot;Finnish dialects III A: Dialect atlas\&amp;quot;). &amp;quot; ..&lt;br /&gt;
				&amp;quot;It was imported and converted from urn:nbn:fi:csc-kata20151130145346403821, published by the &amp;quot; ..&lt;br /&gt;
				&amp;quot;&#039;&#039;Kotimaisten kielten keskus&#039;&#039; under the CC BY 4.0 license.&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:fi%-dialects/data/feature/(.+)&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Finnish dialectal data modules|%1&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:fi%-dialects/data/word/(.+)&amp;quot;,&lt;br /&gt;
		cat = &amp;quot;Finnish dialectal data modules|%1&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:Swadesh/data/([%l-]+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code)&lt;br /&gt;
			local lang, langname = insert_lang_data_module_cats(cats, lang_code, &amp;quot;Swadesh modules&amp;quot;)&lt;br /&gt;
			if lang then&lt;br /&gt;
				return &amp;quot;This module contains the [[wikt:Swadesh list|Swadesh list]] of basic vocabulary in &amp;quot; .. langname .. &amp;quot;.&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:Swadesh/data/([%l-]+)/([^/]*)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code, variety)&lt;br /&gt;
			local lang, langname = insert_lang_data_module_cats(cats, lang_code, &amp;quot;Swadesh modules&amp;quot;)&lt;br /&gt;
			if lang then&lt;br /&gt;
				local prefix = &amp;quot;This module contains the [[wikt:Swadesh list|Swadesh list]] of basic vocabulary in the &amp;quot;&lt;br /&gt;
				local etym_lang = get_lang(variety, nil, &amp;quot;allow etym&amp;quot;)&lt;br /&gt;
				if etym_lang then&lt;br /&gt;
					return (&amp;quot;%s %s variety of %s.&amp;quot;):format(prefix, etym_lang:getCanonicalName(), langname)&lt;br /&gt;
				end&lt;br /&gt;
				local script = get_script(variety)&lt;br /&gt;
				if script then&lt;br /&gt;
					return (&amp;quot;%s %s %s script.&amp;quot;):format(prefix, langname, script:getCanonicalName())&lt;br /&gt;
				end&lt;br /&gt;
				return (&amp;quot;%s %s variety of %s.&amp;quot;):format(prefix, variety, langname)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:typing%-aids&amp;quot;,&lt;br /&gt;
		process = function(title, cats)&lt;br /&gt;
			local data_suffix = title.fullText:match(&amp;quot;^Module:typing%-aids/data/(.+)$&amp;quot;)&lt;br /&gt;
			local sortkey&lt;br /&gt;
			if data_suffix then&lt;br /&gt;
				if data_suffix:find &amp;quot;^[%l-]+$&amp;quot; then&lt;br /&gt;
					local lang = get_lang(data_suffix)&lt;br /&gt;
					if lang then&lt;br /&gt;
						sortkey = lang:getCanonicalName()&lt;br /&gt;
						cats:insert(sortkey .. &amp;quot; data modules&amp;quot;)&lt;br /&gt;
					end&lt;br /&gt;
				elseif data_suffix:find &amp;quot;^%u%l%l%l$&amp;quot; then&lt;br /&gt;
					local script = get_script(data_suffix)&lt;br /&gt;
					if script then&lt;br /&gt;
						sortkey = script:getCanonicalName()&lt;br /&gt;
						cats:insert(script:getCategoryName())&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				cats:insert(&amp;quot;Character insertion data modules|&amp;quot; .. (sortkey or data_suffix))&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:R:([%l-]+):(.+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code, refname)&lt;br /&gt;
			local lang = lang_cache[lang_code]&lt;br /&gt;
			if lang then&lt;br /&gt;
				cats:insert(lang:getCanonicalName() .. &amp;quot; modules|&amp;quot; .. refname)&lt;br /&gt;
				cats:insert((&amp;quot;Reference modules|%s&amp;quot;):format(lang:getCanonicalName()))&lt;br /&gt;
				return &amp;quot;This module implements the reference template {{temp|R:&amp;quot; .. lang_code .. &amp;quot;:&amp;quot; .. refname .. &amp;quot;}}.&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:Quotations/([%l-]+)/?(.*)&amp;quot;,&lt;br /&gt;
		process = &amp;quot;Quotation&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:affix/lang%-data/([%l-]+)&amp;quot;,&lt;br /&gt;
		process = &amp;quot;affix lang-data&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:dialect synonyms/([%l-]+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code)&lt;br /&gt;
			local lang = lang_cache[lang_code]&lt;br /&gt;
			if lang then&lt;br /&gt;
				local langname = lang:getCanonicalName()&lt;br /&gt;
				cats:insert(&amp;quot;Dialect synonyms data modules|&amp;quot; .. langname)&lt;br /&gt;
				cats:insert(langname .. &amp;quot; dialect synonyms data modules| &amp;quot;)&lt;br /&gt;
				return &amp;quot;This module contains data on specific varieties of &amp;quot; .. langname .. &amp;quot;, for use by &amp;quot; ..&lt;br /&gt;
					&amp;quot;{{tl|dialect synonyms}}. The actual synonyms themselves are contained in submodules.\n\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;==== Language data module structure ====\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.title&amp;lt;/code&amp;gt; — optional; table title template (e.g. \&amp;quot;Regional synonyms of %s\&amp;quot;).\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.columns&amp;lt;/code&amp;gt; — optional; list of column headers for location hierarchy (e.g. {\&amp;quot;Dialect group\&amp;quot;, \&amp;quot;Dialect\&amp;quot;, \&amp;quot;Location\&amp;quot;}).\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.notes&amp;lt;/code&amp;gt; — optional; table of note keys to text.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.sources&amp;lt;/code&amp;gt; — optional; table of source keys to text.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.note_aliases&amp;lt;/code&amp;gt; — optional; alias map for notes.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.varieties&amp;lt;/code&amp;gt; — required; nested table of variety nodes. Each node must have &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt;; array part holds children. Node keys can include &amp;lt;code&amp;gt;text_display&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;color&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;wikidata&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;long&amp;lt;/code&amp;gt;, and language-specific keys (e.g. &amp;lt;code&amp;gt;persian&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;armenian&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;chinese&amp;lt;/code&amp;gt;).\n\n&amp;quot; ..&lt;br /&gt;
					expand_template({ title = &#039;dial syn&#039;, args = { lang_code, [&amp;quot;demo mode&amp;quot;] = &amp;quot;y&amp;quot; } })&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:dialect synonyms/([%l-]+)/([^/]+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code, term)&lt;br /&gt;
			local lang = lang_cache[lang_code]&lt;br /&gt;
			if lang then&lt;br /&gt;
				local langname = lang:getCanonicalName()&lt;br /&gt;
				cats:insert(&amp;quot;Dialect synonyms data modules|&amp;quot; .. langname)&lt;br /&gt;
				cats:insert(langname .. &amp;quot; dialect synonyms data modules|&amp;quot; .. term)&lt;br /&gt;
				return (&amp;quot;%s\n\n%s&amp;quot;):format(&lt;br /&gt;
					&amp;quot;==== Term/sense module structure ====\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.title&amp;lt;/code&amp;gt; — optional; custom table title (e.g. \&amp;quot;Realization of &#039;strong R&#039; between vowels\&amp;quot;). Overrides the language default.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.meaning&amp;lt;/code&amp;gt; — optional; meaning/gloss (alternative to &amp;lt;code&amp;gt;gloss&amp;lt;/code&amp;gt;).\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.gloss&amp;lt;/code&amp;gt; — optional; short meaning for the table.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.note&amp;lt;/code&amp;gt; — optional; single note key or string, or list of note keys.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.notes&amp;lt;/code&amp;gt; — optional; list of note keys.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.source&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;export.sources&amp;lt;/code&amp;gt; — optional; source keys.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.last_column&amp;lt;/code&amp;gt; — optional; label for the data column (default \&amp;quot;Words\&amp;quot;; e.g. \&amp;quot;Realization\&amp;quot;).\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.syns&amp;lt;/code&amp;gt; — required; table mapping variety/location names (keys from the language data module) to a list of term entries. Each entry can be a string or a table (e.g. &amp;lt;code&amp;gt;{ ipa = \&amp;quot;[ɽ]\&amp;quot; }&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;{ term = \&amp;quot;word\&amp;quot; }&amp;lt;/code&amp;gt;).\n\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;Example (custom title and data column, IPA realizations):\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;&amp;lt;pre&amp;gt;\nlocal export = {}\n\nexport.title = \&amp;quot;Realization of &#039;strong R&#039; between vowels\&amp;quot;\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;export.meaning = \&amp;quot;\&amp;quot;\nexport.note = \&amp;quot;realization of &#039;strong R&#039; between vowels\&amp;quot;\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;export.last_column = \&amp;quot;Realization\&amp;quot;\n\nexport.syns = {\n\t[\&amp;quot;ALERS-158\&amp;quot;] = { { ipa = \&amp;quot;[ɽ]\&amp;quot; } },\n\t[\&amp;quot;ALERS-175\&amp;quot;] = { { ipa = \&amp;quot;[x]\&amp;quot; } },\n}\n\nreturn export\n&amp;lt;/pre&amp;gt;\n\n&amp;quot;,&lt;br /&gt;
					expand_template({ title = &#039;dial syn&#039;, args = { lang_code, term } }))&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:dialect synonyms/([%l-]+)/([^/]+)/([^/]+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code, term, id)&lt;br /&gt;
			local lang = lang_cache[lang_code]&lt;br /&gt;
			if lang then&lt;br /&gt;
				local langname = lang:getCanonicalName()&lt;br /&gt;
				cats:insert(&amp;quot;Dialect synonyms data modules|&amp;quot; .. langname)&lt;br /&gt;
				cats:insert(langname .. &amp;quot; dialect synonyms data modules|&amp;quot; .. term)&lt;br /&gt;
				return (&amp;quot;%s\n\n%s&amp;quot;):format(&lt;br /&gt;
					&amp;quot;==== Term/sense module structure ====\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.title&amp;lt;/code&amp;gt; — optional; custom table title (e.g. \&amp;quot;Realization of &#039;strong R&#039; between vowels\&amp;quot;). Overrides the language default.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.meaning&amp;lt;/code&amp;gt; — optional; meaning/gloss (alternative to &amp;lt;code&amp;gt;gloss&amp;lt;/code&amp;gt;).\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.gloss&amp;lt;/code&amp;gt; — optional; short meaning for the table.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.note&amp;lt;/code&amp;gt; — optional; single note key or string, or list of note keys.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.notes&amp;lt;/code&amp;gt; — optional; list of note keys.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.source&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;export.sources&amp;lt;/code&amp;gt; — optional; source keys.\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.last_column&amp;lt;/code&amp;gt; — optional; label for the data column (default \&amp;quot;Words\&amp;quot;; e.g. \&amp;quot;Realization\&amp;quot;).\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;* &amp;lt;code&amp;gt;export.syns&amp;lt;/code&amp;gt; — required; table mapping variety/location names (keys from the language data module) to a list of term entries. Each entry can be a string or a table (e.g. &amp;lt;code&amp;gt;{ ipa = \&amp;quot;[ɽ]\&amp;quot; }&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;{ term = \&amp;quot;word\&amp;quot; }&amp;lt;/code&amp;gt;).\n\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;Example (custom title and data column, IPA realizations):\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;&amp;lt;pre&amp;gt;\nlocal export = {}\n\nexport.title = \&amp;quot;Realization of &#039;strong R&#039; between vowels\&amp;quot;\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;export.meaning = \&amp;quot;\&amp;quot;\nexport.note = \&amp;quot;realization of &#039;strong R&#039; between vowels\&amp;quot;\n&amp;quot; ..&lt;br /&gt;
					&amp;quot;export.last_column = \&amp;quot;Realization\&amp;quot;\n\nexport.syns = {\n\t[\&amp;quot;ALERS-158\&amp;quot;] = { { ipa = \&amp;quot;[ɽ]\&amp;quot; } },\n\t[\&amp;quot;ALERS-175\&amp;quot;] = { { ipa = \&amp;quot;[x]\&amp;quot; } },\n}\n\nreturn export\n&amp;lt;/pre&amp;gt;\n\n&amp;quot;,&lt;br /&gt;
					expand_template({ title = &#039;dial syn&#039;, args = { lang_code, term, id = id } }))&lt;br /&gt;
			end&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		regex = &amp;quot;^Module:bibliography/data/([%l-]+)$&amp;quot;,&lt;br /&gt;
		process = function(title, cats, lang_code)&lt;br /&gt;
			if lang_code == &amp;quot;preload&amp;quot; then&lt;br /&gt;
				return &#039;Used as a base model for other languages when the button &amp;quot;create new language submodule&amp;quot; is clicked.&#039;&lt;br /&gt;
			end&lt;br /&gt;
			local page = require(title.fullText).bib_page&lt;br /&gt;
			if not page then&lt;br /&gt;
				page = lang_cache[lang_code]:getCanonicalName()&lt;br /&gt;
				if page then&lt;br /&gt;
					cats:insert(page .. &amp;quot; modules&amp;quot;)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			cats:insert(&amp;quot;Reference modules&amp;quot;)&lt;br /&gt;
			return &amp;quot;This module holds bibliographical data for &amp;quot; ..&lt;br /&gt;
				page .. &amp;quot;. For the formatted bibliography see &#039;&#039;&#039;[[wikt:Appendix:Bibliography/&amp;quot; .. page .. &amp;quot;|Appendix:Bibliography/&amp;quot; .. page .. &amp;quot;]]&#039;&#039;&#039;.&amp;quot;&lt;br /&gt;
		end,&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function export.show(frame)&lt;br /&gt;
	local boolean_default_false = { type = &amp;quot;boolean&amp;quot;, default = false }&lt;br /&gt;
	local args = process_params(frame.args, {&lt;br /&gt;
		[&amp;quot;hr&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;for&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;from&amp;quot;] = true,&lt;br /&gt;
		[&amp;quot;allowondoc&amp;quot;] = boolean_default_false, -- Don&#039;t throw an error if used on a documentation subpage.&lt;br /&gt;
		[&amp;quot;notsubpage&amp;quot;] = boolean_default_false,&lt;br /&gt;
		[&amp;quot;nodoc&amp;quot;] = boolean_default_false,&lt;br /&gt;
		[&amp;quot;nolinks&amp;quot;] = boolean_default_false, -- suppress all &amp;quot;Useful links&amp;quot;&lt;br /&gt;
		[&amp;quot;nosandbox&amp;quot;] = boolean_default_false, -- supress sandbox&lt;br /&gt;
	})&lt;br /&gt;
&lt;br /&gt;
	local output = Array(&#039;\n&amp;lt;div class=&amp;quot;documentation&amp;quot; style=&amp;quot;display:block; clear:both&amp;quot;&amp;gt;\n&#039;)&lt;br /&gt;
	local cats = Array()&lt;br /&gt;
&lt;br /&gt;
	local nodoc = args.nodoc&lt;br /&gt;
&lt;br /&gt;
	if (not args.hr) or (args.hr == &amp;quot;above&amp;quot;) then&lt;br /&gt;
		output:insert(&amp;quot;----\n&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local title = args[&amp;quot;for&amp;quot;] and new_title(args[&amp;quot;for&amp;quot;]) or get_current_title()&lt;br /&gt;
	local doc_title = args.from ~= &amp;quot;-&amp;quot; and new_title(args.from or title.fullText .. &#039;/doc&#039;) or nil&lt;br /&gt;
	local contentModel = title.contentModel&lt;br /&gt;
	local pagetype, is_script_or_stylesheet = get_pagetype(title)&lt;br /&gt;
	local preload, fallback_docs, doc_content, old_doc_title, user_name, skin_name, needs_doc&lt;br /&gt;
	local doc_content_source = &amp;quot;Module:documentation&amp;quot;&lt;br /&gt;
	local auto_generated_cat_source&lt;br /&gt;
	local cats_auto_generated = false&lt;br /&gt;
&lt;br /&gt;
	if not args.allowondoc and is_documentation(title) then&lt;br /&gt;
		-- TODO: merge with {{documentation subpage}}, and choose behaviour based on the page type.&lt;br /&gt;
		error(&amp;quot;This template should not be used on a documentation page. Please use [[Template:documentation subpage]].&amp;quot;)&lt;br /&gt;
	elseif is_sandbox(title) then&lt;br /&gt;
		local sandbox_ns = title.nsText&lt;br /&gt;
		preload = (&amp;quot;Template:documentation/preload%s%sSandbox&amp;quot;):format(&lt;br /&gt;
			sandbox_ns == &amp;quot;Module&amp;quot; and sandbox_ns or &amp;quot;Template&amp;quot;,&lt;br /&gt;
			title.rootText:match(&amp;quot;^[Uu]ser:(.+)&amp;quot;) and &amp;quot;User&amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
		)&lt;br /&gt;
	elseif pagetype:match(&amp;quot;%f[%w]gadget%f[%W]&amp;quot;) then&lt;br /&gt;
		preload = &amp;quot;Template:documentation/preloadGadget&amp;quot;&lt;br /&gt;
	elseif pagetype:match(&amp;quot;%f[%w]script%f[%W]&amp;quot;) then -- .js&lt;br /&gt;
		if title.nsText == &amp;quot;MediaWiki&amp;quot; then&lt;br /&gt;
			preload = &amp;quot;Template:documentation/preloadMediaWikiJavaScript&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			preload = &amp;quot;Template:documentation/preloadTemplate&amp;quot; -- XXX&lt;br /&gt;
			if title.nsText == &amp;quot;User&amp;quot; then&lt;br /&gt;
				user_name = title.rootText&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		is_script_or_stylesheet = true&lt;br /&gt;
	elseif pagetype:match(&amp;quot;%f[%w]stylesheet%f[%W]&amp;quot;) then -- .css&lt;br /&gt;
		preload = &amp;quot;Template:documentation/preloadTemplate&amp;quot; -- XXX&lt;br /&gt;
		if title.nsText == &amp;quot;User&amp;quot; then&lt;br /&gt;
			user_name = title.rootText&lt;br /&gt;
		end&lt;br /&gt;
		is_script_or_stylesheet = true&lt;br /&gt;
	elseif contentModel == &amp;quot;Scribunto&amp;quot; then -- Exclude pages in Module: which aren&#039;t Scribunto.&lt;br /&gt;
		preload = &amp;quot;Template:documentation/preloadModule&amp;quot;&lt;br /&gt;
	elseif pagetype:match(&amp;quot;%f[%w]template%f[%W]&amp;quot;) or pagetype:match(&amp;quot;%f[%w]project%f[%W]&amp;quot;) then&lt;br /&gt;
		preload = &amp;quot;Template:documentation/preloadTemplate&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if doc_title and doc_title.isRedirect then&lt;br /&gt;
		old_doc_title = doc_title&lt;br /&gt;
		doc_title = doc_title.redirectTarget&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	output:insert(&amp;quot;&amp;lt;dl class=\&amp;quot;plainlinks\&amp;quot; style=\&amp;quot;font-size: smaller;\&amp;quot;&amp;gt;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	local function get_module_doc_and_cats(categories_only)&lt;br /&gt;
		cats_auto_generated = true&lt;br /&gt;
		local automatic_cats = nil&lt;br /&gt;
		if user_name then&lt;br /&gt;
			fallback_docs = &amp;quot;documentation/fallback/user module&amp;quot;&lt;br /&gt;
			automatic_cats = { &amp;quot;User sandbox modules&amp;quot; }&lt;br /&gt;
		else&lt;br /&gt;
			for _, data in ipairs(module_regex) do&lt;br /&gt;
				local captures = { umatch(title.fullText, data.regex) }&lt;br /&gt;
				if #captures &amp;gt; 0 then&lt;br /&gt;
					local cat, process_function&lt;br /&gt;
					if is_callable(data.process) then&lt;br /&gt;
						process_function = data.process&lt;br /&gt;
					elseif type(data.process) == &amp;quot;string&amp;quot; then&lt;br /&gt;
						doc_content_source = &amp;quot;Module:documentation/functions/&amp;quot; .. data.process&lt;br /&gt;
						process_function = require(doc_content_source)&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					if process_function then&lt;br /&gt;
						doc_content = process_function(title, cats, unpack(captures))&lt;br /&gt;
					end&lt;br /&gt;
					if type(doc_content) == &amp;quot;table&amp;quot; then&lt;br /&gt;
						doc_content_source = doc_content.title and &amp;quot;Template:&amp;quot; .. doc_content.title or doc_content_source&lt;br /&gt;
						doc_content = expand_template(doc_content)&lt;br /&gt;
					elseif doc_content ~= nil then&lt;br /&gt;
						doc_content = preprocess(doc_content)&lt;br /&gt;
					end&lt;br /&gt;
					cat = data.cat&lt;br /&gt;
&lt;br /&gt;
					if cat then&lt;br /&gt;
						if type(cat) == &amp;quot;string&amp;quot; then&lt;br /&gt;
							cat = { cat }&lt;br /&gt;
						end&lt;br /&gt;
						for _, c in ipairs(cat) do&lt;br /&gt;
							insert(cats, (ugsub(title.fullText, data.regex, c)))&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if title.subpageText == &amp;quot;templates&amp;quot; then&lt;br /&gt;
			cats:insert(&amp;quot;Template interface modules&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if automatic_cats then&lt;br /&gt;
			for _, c in ipairs(automatic_cats) do&lt;br /&gt;
				cats:insert(c)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if #cats == 0 then&lt;br /&gt;
			local auto_cats = categorize_module(frame, &amp;quot;return raw&amp;quot;, &amp;quot;noerror&amp;quot;)&lt;br /&gt;
			if #auto_cats &amp;gt; 0 then&lt;br /&gt;
				auto_generated_cat_source = &amp;quot;Module:module categorization&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			for _, category in ipairs(auto_cats) do&lt;br /&gt;
				cats:insert(category)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- meaning module is not in user’s sandbox or one of many datamodule boring series&lt;br /&gt;
		needs_doc = not categories_only and not (automatic_cats or doc_content or fallback_docs)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Override automatic documentation, if present.&lt;br /&gt;
	if doc_title and doc_title.exists then&lt;br /&gt;
		local cats_auto_generated_text = &amp;quot;&amp;quot;&lt;br /&gt;
		if contentModel == &amp;quot;Scribunto&amp;quot; then&lt;br /&gt;
			local doc_page_content = doc_title.content&lt;br /&gt;
			-- Track then do nothing if there are uses of includeonly. The&lt;br /&gt;
			-- pattern is slightly too permissive, but any false-positives are&lt;br /&gt;
			-- obvious typos that should be corrected.&lt;br /&gt;
			if doc_page_content:lower():match(&amp;quot;&amp;lt;/?includeonly%f[%s/&amp;gt;][^&amp;gt;]*&amp;gt;&amp;quot;) then&lt;br /&gt;
				track(&amp;quot;module-includeonly&amp;quot;)&lt;br /&gt;
			else&lt;br /&gt;
				-- Check for uses of {{module cat}}. find_templates treats the&lt;br /&gt;
				-- input as transcluded by default (i.e. it parses the wikitext&lt;br /&gt;
				-- which will be transcluded through to the module page).&lt;br /&gt;
				local module_cat&lt;br /&gt;
				for template in find_templates(doc_page_content) do&lt;br /&gt;
					if template:get_name() == &amp;quot;module cat&amp;quot; then&lt;br /&gt;
						module_cat = true&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if not module_cat then&lt;br /&gt;
					get_module_doc_and_cats(&amp;quot;categories only&amp;quot;)&lt;br /&gt;
					auto_generated_cat_source = auto_generated_cat_source or doc_content_source&lt;br /&gt;
					cats_auto_generated_text = &amp;quot; Categories were auto-generated by [[&amp;quot; ..&lt;br /&gt;
						auto_generated_cat_source .. &amp;quot;]]. &amp;lt;sup&amp;gt;[[&amp;quot; ..&lt;br /&gt;
						new_title(auto_generated_cat_source):fullUrl { action = &amp;quot;edit&amp;quot; } .. &amp;quot; edit]]&amp;lt;/sup&amp;gt;&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		output:insert(&lt;br /&gt;
			&amp;quot;&amp;lt;dd&amp;gt;&amp;lt;i style=\&amp;quot;font-size: larger;\&amp;quot;&amp;gt;The following &amp;quot; ..&lt;br /&gt;
			&amp;quot;[[wikt:Help:Documenting templates and modules|documentation]] is located at [[&amp;quot; ..&lt;br /&gt;
			doc_title.fullText .. &amp;quot;]]. &amp;quot; .. &amp;quot;&amp;lt;sup&amp;gt;[[&amp;quot; .. doc_title:fullUrl { action = &amp;quot;edit&amp;quot; } .. &amp;quot; edit]]&amp;lt;/sup&amp;gt;&amp;quot; ..&lt;br /&gt;
			cats_auto_generated_text .. &amp;quot;&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		if contentModel == &amp;quot;Scribunto&amp;quot; then&lt;br /&gt;
			get_module_doc_and_cats(false)&lt;br /&gt;
		elseif title.nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			--cats:insert(&amp;quot;Uncategorized templates&amp;quot;)&lt;br /&gt;
			needs_doc = not (fallback_docs or nodoc)&lt;br /&gt;
		elseif user_name and is_script_or_stylesheet then&lt;br /&gt;
			skin_name = skins[title.text:sub(#title.rootText + 1):match(&amp;quot;^/(%l+)%.[jc]ss?$&amp;quot;)]&lt;br /&gt;
			if skin_name then&lt;br /&gt;
				fallback_docs = &amp;quot;documentation/fallback/user &amp;quot; .. contentModel&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if doc_content then&lt;br /&gt;
			output:insert(&lt;br /&gt;
				&amp;quot;&amp;lt;dd&amp;gt;&amp;lt;i style=\&amp;quot;font-size: larger;\&amp;quot;&amp;gt;The following &amp;quot; ..&lt;br /&gt;
				&amp;quot;[[wikt:Help:Documenting templates and modules|documentation]] is &amp;quot; ..&lt;br /&gt;
				&amp;quot;generated by [[&amp;quot; .. doc_content_source .. &amp;quot;]]. &amp;lt;sup&amp;gt;[[&amp;quot; ..&lt;br /&gt;
				new_title(doc_content_source):fullUrl { action = &amp;quot;edit&amp;quot; } ..&lt;br /&gt;
				&amp;quot; edit]]&amp;lt;/sup&amp;gt; &amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&amp;quot;)&lt;br /&gt;
		elseif not nodoc then&lt;br /&gt;
			if doc_title then&lt;br /&gt;
				output:insert(&lt;br /&gt;
					&amp;quot;&amp;lt;dd&amp;gt;&amp;lt;i style=\&amp;quot;font-size: larger;\&amp;quot;&amp;gt;This &amp;quot; .. pagetype ..&lt;br /&gt;
					&amp;quot; lacks a [[wikt:Help:Documenting templates and modules|documentation subpage]]. &amp;quot; ..&lt;br /&gt;
					(fallback_docs and &amp;quot;You may &amp;quot; or &amp;quot;Please &amp;quot;) ..&lt;br /&gt;
					&amp;quot;[&amp;quot; .. doc_title:fullUrl { action = &amp;quot;edit&amp;quot;, preload = preload }&lt;br /&gt;
					.. &amp;quot; create it].&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;\n&amp;quot;)&lt;br /&gt;
			else&lt;br /&gt;
				output:insert(&lt;br /&gt;
					&amp;quot;&amp;lt;dd&amp;gt;&amp;lt;i style=\&amp;quot;font-size: larger; color: var(--wikt-palette-red-9,#FF0000);\&amp;quot;&amp;gt;Unable to auto-generate &amp;quot; ..&lt;br /&gt;
					&amp;quot;documentation for this &amp;quot; .. pagetype .. &amp;quot;.&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;\n&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if startswith(title.fullText, &amp;quot;MediaWiki:Gadget-&amp;quot;) then&lt;br /&gt;
		local is_gadget = false&lt;br /&gt;
		for line in gline(new_title(&amp;quot;MediaWiki:Gadgets-definition&amp;quot;).content) do&lt;br /&gt;
			local gadget, items = line:match(&amp;quot;^%*%s*(%a[%w_-]*)%[.-%]|(.+)$&amp;quot;)&lt;br /&gt;
			if not gadget then&lt;br /&gt;
				gadget, items = line:match(&amp;quot;^%*%s*(%a[%w_-]*)|(.+)$&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			if gadget then&lt;br /&gt;
				items = Array(split(items, &amp;quot;|&amp;quot;))&lt;br /&gt;
				for i, item in ipairs(items) do&lt;br /&gt;
					if title.fullText == (&amp;quot;MediaWiki:Gadget-&amp;quot; .. item) then&lt;br /&gt;
						is_gadget = true&lt;br /&gt;
&lt;br /&gt;
						output:insert(&amp;quot;&amp;lt;dd&amp;gt; &#039;&#039;This script is a part of the &amp;lt;code&amp;gt;&amp;quot;)&lt;br /&gt;
						output:insert(gadget)&lt;br /&gt;
						output:insert(&amp;quot;&amp;lt;/code&amp;gt; gadget ([&amp;quot;)&lt;br /&gt;
						output:insert(tostring(full_url(&amp;quot;MediaWiki:Gadgets-definition&amp;quot;, { action = &amp;quot;edit&amp;quot; })))&lt;br /&gt;
						output:insert(&amp;quot; edit definitions])&#039;&#039; &amp;lt;dl&amp;gt;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
						output:insert(&amp;quot;&amp;lt;dd&amp;gt; &#039;&#039;Description ([&amp;quot;)&lt;br /&gt;
						output:insert(tostring(full_url(&amp;quot;MediaWiki:Gadget-&amp;quot; .. gadget, { action = &amp;quot;edit&amp;quot; })))&lt;br /&gt;
						output:insert(&amp;quot; edit])&#039;&#039;: &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
						output:insert(preprocess(new_message(&#039;Gadget-&#039; .. gadget):plain()))&lt;br /&gt;
						output:insert(&amp;quot; &amp;lt;/dd&amp;gt;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
						items:remove(i)&lt;br /&gt;
						if #items &amp;gt; 0 then&lt;br /&gt;
							for j, item in ipairs(items) do&lt;br /&gt;
								items[j] = &#039;[[MediaWiki:Gadget-&#039; .. item .. &#039;|&#039; .. item .. &#039;]]&#039;&lt;br /&gt;
							end&lt;br /&gt;
							output:insert(&amp;quot;&amp;lt;dd&amp;gt; &#039;&#039;Other parts&#039;&#039;: &amp;quot;)&lt;br /&gt;
							output:insert(list_to_text(items))&lt;br /&gt;
							output:insert(&amp;quot;&amp;lt;/dd&amp;gt;&amp;quot;)&lt;br /&gt;
						end&lt;br /&gt;
&lt;br /&gt;
						output:insert(&amp;quot;&amp;lt;/dl&amp;gt;&amp;lt;/dd&amp;gt;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if not is_gadget then&lt;br /&gt;
			output:insert(&amp;quot;&amp;lt;dd&amp;gt; &#039;&#039;This script is not a part of any [&amp;quot;)&lt;br /&gt;
			output:insert(tostring(full_url(&amp;quot;Special:Gadgets&amp;quot;, { uselang = &amp;quot;en&amp;quot; })))&lt;br /&gt;
			output:insert(&#039; gadget] ([&#039;)&lt;br /&gt;
			output:insert(tostring(full_url(&amp;quot;MediaWiki:Gadgets-definition&amp;quot;, { action = &amp;quot;edit&amp;quot; })))&lt;br /&gt;
			output:insert(&#039; edit definitions]).&amp;lt;/dd&amp;gt;&#039;)&lt;br /&gt;
			-- else&lt;br /&gt;
			-- cats:insert(&amp;quot;Wiktionary gadgets&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if old_doc_title then&lt;br /&gt;
		output:insert(&amp;quot;&amp;lt;dd&amp;gt; &#039;&#039;Redirected from&#039;&#039; [&amp;quot;)&lt;br /&gt;
		output:insert(old_doc_title:fullUrl { redirect = &amp;quot;no&amp;quot; })&lt;br /&gt;
		output:insert(&amp;quot; &amp;quot;)&lt;br /&gt;
		output:insert(old_doc_title.fullText)&lt;br /&gt;
		output:insert(&amp;quot;] ([&amp;quot;)&lt;br /&gt;
		output:insert(old_doc_title:fullUrl { action = &amp;quot;edit&amp;quot; })&lt;br /&gt;
		output:insert(&amp;quot; edit]).&amp;lt;/dd&amp;gt;\n&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not args.nolinks then&lt;br /&gt;
		local links = Array()&lt;br /&gt;
&lt;br /&gt;
		if title.isSubpage and not args.notsubpage then&lt;br /&gt;
			links:insert(&amp;quot;[[:&amp;quot; .. title.nsText .. &amp;quot;:&amp;quot; .. title.rootText .. &amp;quot;|root page]]&amp;quot;)&lt;br /&gt;
			links:insert(&amp;quot;[[Special:PrefixIndex/&amp;quot; .. title.nsText .. &amp;quot;:&amp;quot; .. title.rootText .. &amp;quot;/|root page’s subpages]]&amp;quot;)&lt;br /&gt;
		else&lt;br /&gt;
			links:insert(&amp;quot;[[Special:PrefixIndex/&amp;quot; .. title.fullText .. &amp;quot;/|subpage list]]&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		links:insert(&lt;br /&gt;
			&amp;quot;[&amp;quot; ..&lt;br /&gt;
			tostring(full_url(&amp;quot;Special:WhatLinksHere/&amp;quot; .. title.fullText, { hidetrans = true, hideredirs = true })) ..&lt;br /&gt;
			&amp;quot; links]&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		if contentModel ~= &amp;quot;Scribunto&amp;quot; then&lt;br /&gt;
			links:insert(&lt;br /&gt;
				&amp;quot;[&amp;quot; ..&lt;br /&gt;
				tostring(full_url(&amp;quot;Special:WhatLinksHere/&amp;quot; .. title.fullText, { hidelinks = true, hidetrans = true })) ..&lt;br /&gt;
				&amp;quot; redirects]&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if is_script_or_stylesheet then&lt;br /&gt;
			if user_name then&lt;br /&gt;
				links:insert(&amp;quot;[[Special:MyPage&amp;quot; .. title.text:sub(#title.rootText + 1) .. &amp;quot;|your own]]&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			links:insert(&lt;br /&gt;
				&amp;quot;[&amp;quot; ..&lt;br /&gt;
				tostring(full_url(&amp;quot;Special:WhatLinksHere/&amp;quot; .. title.fullText, { hidelinks = true, hideredirs = true })) ..&lt;br /&gt;
				&amp;quot; transclusions]&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if contentModel == &amp;quot;Scribunto&amp;quot; then&lt;br /&gt;
			local is_testcases = title.isSubpage and title.subpageText == &amp;quot;testcases&amp;quot;&lt;br /&gt;
			local without_subpage = title.nsText .. &amp;quot;:&amp;quot; .. title.baseText&lt;br /&gt;
			if is_testcases then&lt;br /&gt;
				links:insert(&amp;quot;[[:&amp;quot; .. without_subpage .. &amp;quot;|tested module]]&amp;quot;)&lt;br /&gt;
			else&lt;br /&gt;
				links:insert(&amp;quot;[[&amp;quot; .. title.fullText .. &amp;quot;/testcases|testcases]]&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			if user_name then&lt;br /&gt;
				links:insert(&amp;quot;[[User:&amp;quot; .. user_name .. &amp;quot;|user page]]&amp;quot;)&lt;br /&gt;
				links:insert(&amp;quot;[[User talk:&amp;quot; .. user_name .. &amp;quot;|user talk page]]&amp;quot;)&lt;br /&gt;
				links:insert(&amp;quot;[[Special:PrefixIndex/User:&amp;quot; .. user_name .. &amp;quot;/|userspace]]&amp;quot;)&lt;br /&gt;
				-- If sandbox module, add a link to the module that this is a sandbox of.&lt;br /&gt;
				-- Exclude user sandbox modules like [[User:Dine2016/sandbox]].&lt;br /&gt;
			elseif title.text:find(&amp;quot;^sandbox%d*/&amp;quot;) or title.text:find(&amp;quot;/sandbox%d*%f[/%z]&amp;quot;) then&lt;br /&gt;
				cats:insert(&amp;quot;Sandbox modules&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
				-- Sandbox modules don’t really need documentation.&lt;br /&gt;
				needs_doc = false&lt;br /&gt;
&lt;br /&gt;
				-- Don&#039;t track user sandbox modules.&lt;br /&gt;
				local text_title = new_title(title.text)&lt;br /&gt;
				if not (text_title and text_title.nsText == &amp;quot;User&amp;quot;) then&lt;br /&gt;
					local diff&lt;br /&gt;
					local sandbox_of = title.text:match(&amp;quot;^(.*)/sandbox%d*%f[/%z]&amp;quot;)&lt;br /&gt;
					if sandbox_of then&lt;br /&gt;
						track(&amp;quot;sandbox to be moved&amp;quot;)&lt;br /&gt;
					else&lt;br /&gt;
						sandbox_of = title.text:match(&amp;quot;^sandbox%d*/(.*)$&amp;quot;)&lt;br /&gt;
					end&lt;br /&gt;
					if not sandbox_of then&lt;br /&gt;
						error((&amp;quot;Internal error: Something wrong, couldn&#039;t extract sandbox-of module from title &#039;%s&#039;&amp;quot;)&lt;br /&gt;
							:format(title.text))&lt;br /&gt;
					end&lt;br /&gt;
					sandbox_of = title.nsText .. &amp;quot;:&amp;quot; .. sandbox_of&lt;br /&gt;
					if title_exists(sandbox_of) then&lt;br /&gt;
						diff = &amp;quot; (&amp;quot; .. compare_pages(title.fullText, sandbox_of, &amp;quot;diff&amp;quot;) .. &amp;quot;)&amp;quot;&lt;br /&gt;
					else&lt;br /&gt;
						track(&amp;quot;no sandbox of&amp;quot;)&lt;br /&gt;
					end&lt;br /&gt;
&lt;br /&gt;
					links:insert(&amp;quot;[[:&amp;quot; .. sandbox_of .. &amp;quot;|sandbox of]]&amp;quot; .. (diff or &amp;quot;&amp;quot;))&lt;br /&gt;
				end&lt;br /&gt;
				-- If not a sandbox module, add link to sandbox module.&lt;br /&gt;
				-- Sometimes there are multiple sandboxes for a single module:&lt;br /&gt;
				-- [[Module:sandbox/sa-pronunc]],  [[Module:sandbox2/sa-pronunc]].&lt;br /&gt;
			else&lt;br /&gt;
				local sandbox_title&lt;br /&gt;
				local user_prefix, user_rest = title.text:match(&amp;quot;^(User:.-/)(.*)$&amp;quot;)&lt;br /&gt;
				if not user_prefix then&lt;br /&gt;
					user_prefix = &amp;quot;&amp;quot;&lt;br /&gt;
					user_rest = title.text&lt;br /&gt;
				end&lt;br /&gt;
				sandbox_title = title.nsText .. &amp;quot;:&amp;quot; .. user_prefix .. &amp;quot;sandbox/&amp;quot; .. user_rest&lt;br /&gt;
				local sandbox_link = &amp;quot;[[:&amp;quot; .. sandbox_title .. &amp;quot;|sandbox]]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
				local diff&lt;br /&gt;
				if title_exists(sandbox_title) then&lt;br /&gt;
					diff = &amp;quot; (&amp;quot; .. compare_pages(title.fullText, sandbox_title, &amp;quot;diff&amp;quot;) .. &amp;quot;)&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				links:insert(sandbox_link .. (diff or &amp;quot;&amp;quot;))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if title.nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			-- Error search: all(any namespace), hastemplate (show pages using the template), insource (show source code), incategory (any/specific error) -- [[mw:Help:CirrusSearch]], [[w:Help:Searching/Regex]]&lt;br /&gt;
			-- apparently same with/without: &amp;amp;profile=advanced&amp;amp;fulltext=1&lt;br /&gt;
			local errorq = &#039;searchengineselect=mediawiki&amp;amp;search=all: hastemplate:\&amp;quot;&#039; ..&lt;br /&gt;
				title.rootText .. &#039;\&amp;quot; insource:\&amp;quot;&#039; .. title.rootText .. &#039;\&amp;quot; incategory:&#039;&lt;br /&gt;
			local eincategory =&lt;br /&gt;
			&amp;quot;Pages_with_module_errors|ParserFunction_errors|DisplayTitle_errors|Pages_with_ISBN_errors|Pages_with_ISSN_errors|Pages_with_reference_errors|Pages_with_syntax_highlighting_errors|Pages_with_TemplateStyles_errors&amp;quot;&lt;br /&gt;
&lt;br /&gt;
			links:insert(&lt;br /&gt;
				&#039;[&#039; .. tostring(full_url(&#039;Special:Search&#039;, errorq .. eincategory)) .. &#039; errors]&#039;&lt;br /&gt;
				.. &#039; (&#039; ..&lt;br /&gt;
				&#039;[&#039; .. tostring(full_url(&#039;Special:Search&#039;, errorq .. &#039;ParserFunction_errors&#039;)) .. &#039; parser]&#039;&lt;br /&gt;
				.. &#039;/&#039; ..&lt;br /&gt;
				&#039;[&#039; .. tostring(full_url(&#039;Special:Search&#039;, errorq .. &#039;Pages_with_module_errors&#039;)) .. &#039; module]&#039;&lt;br /&gt;
				.. &#039;)&#039;&lt;br /&gt;
			)&lt;br /&gt;
&lt;br /&gt;
			if title.isSubpage and title.text:find(&amp;quot;/sandbox%d*%f[/%z]&amp;quot;) then -- This is a sandbox template.&lt;br /&gt;
				-- At the moment there are no user sandbox templates with subpage&lt;br /&gt;
				-- “/sandbox”.&lt;br /&gt;
				cats:insert(&amp;quot;Sandbox templates&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
				-- Sandbox templates don’t really need documentation.&lt;br /&gt;
				needs_doc = false&lt;br /&gt;
&lt;br /&gt;
				-- Will behave badly if “/sandbox” occurs twice in title!&lt;br /&gt;
				local sandbox_of = title.fullText:gsub(&amp;quot;/sandbox%d*%f[/%z]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
				local diff&lt;br /&gt;
				if title_exists(sandbox_of) then&lt;br /&gt;
					diff = &amp;quot; (&amp;quot; .. compare_pages(title.fullText, sandbox_of, &amp;quot;diff&amp;quot;) .. &amp;quot;)&amp;quot;&lt;br /&gt;
				else&lt;br /&gt;
					track(&amp;quot;no sandbox of&amp;quot;)&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				links:insert(&amp;quot;[[:&amp;quot; .. sandbox_of .. &amp;quot;|sandbox of]]&amp;quot; .. (diff or &amp;quot;&amp;quot;))&lt;br /&gt;
				-- This is a template that can have a sandbox.&lt;br /&gt;
			elseif not args.nosandbox then -- unless we tell it not to&lt;br /&gt;
				local sandbox_title = title.fullText .. &amp;quot;/sandbox&amp;quot;&lt;br /&gt;
&lt;br /&gt;
				local diff&lt;br /&gt;
				if title_exists(sandbox_title) then&lt;br /&gt;
					diff = &amp;quot; (&amp;quot; .. compare_pages(title.fullText, sandbox_title, &amp;quot;diff&amp;quot;) .. &amp;quot;)&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				links:insert(&amp;quot;[[:&amp;quot; .. sandbox_title .. &amp;quot;|sandbox]]&amp;quot; .. (diff or &amp;quot;&amp;quot;))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if #links &amp;gt; 0 then&lt;br /&gt;
			output:insert(&amp;quot;&amp;lt;dd&amp;gt; &#039;&#039;Useful links&#039;&#039;: &amp;quot; .. links:concat(&amp;quot; • &amp;quot;) .. &amp;quot;&amp;lt;/dd&amp;gt;&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	output:insert(&amp;quot;&amp;lt;/dl&amp;gt;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	-- Show error from [[Module:category tree/topic cat/data]] on its submodules&#039;&lt;br /&gt;
	-- documentation to, for instance, warn about duplicate labels.&lt;br /&gt;
	if startswith(title.fullText, &amp;quot;Module:category tree/topic/&amp;quot;) then&lt;br /&gt;
		local ok, err = pcall(require, &amp;quot;Module:category tree/topic/data&amp;quot;)&lt;br /&gt;
		if not ok then&lt;br /&gt;
			output:insert(&#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&#039; .. err .. &#039;&amp;lt;/span&amp;gt;\n\n&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if doc_title and doc_title.exists then&lt;br /&gt;
		-- Override automatic documentation, if present.&lt;br /&gt;
		doc_content = expand_template { title = doc_title.fullText }&lt;br /&gt;
	elseif not doc_content and fallback_docs then&lt;br /&gt;
		doc_content = expand_template {&lt;br /&gt;
			title = fallback_docs,&lt;br /&gt;
			args = {&lt;br /&gt;
				[&#039;user&#039;] = user_name,&lt;br /&gt;
				[&#039;page&#039;] = title.fullText,&lt;br /&gt;
				[&#039;skin name&#039;] = skin_name,&lt;br /&gt;
			},&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if doc_content then&lt;br /&gt;
		output:insert(doc_content)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	output:insert((&#039;\n&amp;lt;%s style=&amp;quot;clear: both;&amp;quot; /&amp;gt;&#039;):format(args.hr == &amp;quot;below&amp;quot; and &amp;quot;hr&amp;quot; or &amp;quot;br&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
	if cats_auto_generated and not cats[1] and (not doc_content or not doc_content:find(&amp;quot;%[%[Category:&amp;quot;)) then&lt;br /&gt;
		if contentModel == &amp;quot;Scribunto&amp;quot; then&lt;br /&gt;
			cats:insert(&amp;quot;Uncategorized modules&amp;quot;)&lt;br /&gt;
			-- elseif title.nsText == &amp;quot;Template&amp;quot; then&lt;br /&gt;
			-- cats:insert(&amp;quot;Uncategorized templates&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if needs_doc then&lt;br /&gt;
		cats:insert(&amp;quot;Templates and modules needing documentation&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for _, cat in ipairs(cats) do&lt;br /&gt;
		output:insert(&amp;quot;[[Category:&amp;quot; .. cat .. &amp;quot;]]&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	output:insert(&amp;quot;&amp;lt;/div&amp;gt;\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	return output:concat()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.module_auto_doc_table()&lt;br /&gt;
	local parts = {}&lt;br /&gt;
	local function ins(text)&lt;br /&gt;
		insert(parts, text)&lt;br /&gt;
	end&lt;br /&gt;
	ins(&#039;{|class=&amp;quot;wikitable&amp;quot;&#039;)&lt;br /&gt;
	ins(&amp;quot;! Regex !! Category !! Handling modules&amp;quot;)&lt;br /&gt;
	for _, spec in ipairs(module_regex) do&lt;br /&gt;
		local cat_text&lt;br /&gt;
		local cats = spec.cat&lt;br /&gt;
		if cats then&lt;br /&gt;
			local cat_parts = {}&lt;br /&gt;
			if type(cats) == &amp;quot;string&amp;quot; then&lt;br /&gt;
				cats = { cats }&lt;br /&gt;
			end&lt;br /&gt;
			for _, cat in ipairs(cats) do&lt;br /&gt;
				insert(cat_parts, (&amp;quot;&amp;lt;code&amp;gt;%s&amp;lt;/code&amp;gt;&amp;quot;):format((cat:gsub(&amp;quot;|&amp;quot;, &amp;quot;&amp;amp;#124;&amp;quot;))))&lt;br /&gt;
			end&lt;br /&gt;
			cat_text = concat(cat_parts, &amp;quot;, &amp;quot;)&lt;br /&gt;
		else&lt;br /&gt;
			cat_text = &amp;quot;&#039;&#039;(unspecified)&#039;&#039;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		ins(&amp;quot;|-&amp;quot;)&lt;br /&gt;
		ins((&amp;quot;| &amp;lt;code&amp;gt;%s&amp;lt;/code&amp;gt; || %s || %s&amp;quot;):format(spec.regex, cat_text,&lt;br /&gt;
			is_callable(spec.process) and &amp;quot;&#039;&#039;(handled internally)&#039;&#039;&amp;quot; or&lt;br /&gt;
			type(spec.process) == &amp;quot;string&amp;quot; and (&amp;quot;[[Module:documentation/functions/%s]]&amp;quot;):format(spec.process) or&lt;br /&gt;
			&amp;quot;&#039;&#039;(no documentation generator)&#039;&#039;&amp;quot;))&lt;br /&gt;
	end&lt;br /&gt;
	ins(&amp;quot;|}&amp;quot;)&lt;br /&gt;
	return concat(parts, &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Used by {{translit module documentation}}.&lt;br /&gt;
function export.translitModuleLangList(frame)&lt;br /&gt;
	local pagename, subpage&lt;br /&gt;
&lt;br /&gt;
	if frame.args[1] then&lt;br /&gt;
		pagename = frame.args[1]&lt;br /&gt;
	else&lt;br /&gt;
		local title = get_current_title()&lt;br /&gt;
		subpage = title.subpageText&lt;br /&gt;
		pagename = title.text&lt;br /&gt;
&lt;br /&gt;
		if subpage ~= pagename then&lt;br /&gt;
			pagename = title.rootText&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local translitModule = pagename&lt;br /&gt;
&lt;br /&gt;
	local languageObjects = require(&amp;quot;Module:languages/byTranslitModule&amp;quot;)(translitModule)&lt;br /&gt;
	local codeInPagename = pagename:match(&amp;quot;^([%l-]+)%-.*translit$&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	local categories = Array()&lt;br /&gt;
	local codeInPagenameInList = false&lt;br /&gt;
	if codeInPagename then&lt;br /&gt;
		if languageObjects[1] and subpage ~= &amp;quot;documentation&amp;quot; then&lt;br /&gt;
			local agreement = languageObjects[2] and &amp;quot;s&amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
			categories:insert(&amp;quot;[[Category:Transliteration modules used by &amp;quot; ..&lt;br /&gt;
				#languageObjects .. &amp;quot; language&amp;quot; .. agreement .. &amp;quot;]]&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		languageObjects = Array(languageObjects)&lt;br /&gt;
			:filter(&lt;br /&gt;
				function(lang)&lt;br /&gt;
					local result = lang:getCode() ~= codeInPagename&lt;br /&gt;
					codeInPagenameInList = codeInPagenameInList or result&lt;br /&gt;
					return result&lt;br /&gt;
				end)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if subpage ~= &amp;quot;documentation&amp;quot; then&lt;br /&gt;
		for script_code in pagename:gmatch(&amp;quot;%f[^-%z]%u%l%l%l%f[-]&amp;quot;) do&lt;br /&gt;
			local script = get_script(script_code)&lt;br /&gt;
			if script then&lt;br /&gt;
				categories:insert(&amp;quot;[[Category:&amp;quot; .. script:getCategoryName() .. &amp;quot;]]&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if subpage ~= &amp;quot;documentation&amp;quot; and not title_exists(&amp;quot;Module:&amp;quot; .. pagename .. &amp;quot;/testcases&amp;quot;) then&lt;br /&gt;
		categories:insert(&amp;quot;[[Category:Transliteration modules without a testcases subpage]]&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not languageObjects[1] then&lt;br /&gt;
		return categories:concat()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local langs = Array(languageObjects)&lt;br /&gt;
		:sort(&lt;br /&gt;
			function(lang1, lang2)&lt;br /&gt;
				return lang1:getCode() &amp;lt; lang2:getCode()&lt;br /&gt;
			end)&lt;br /&gt;
		-- This will not error because languageObjects is not empty.&lt;br /&gt;
		:map(languageObjects[1].makeCategoryLink)&lt;br /&gt;
		:serialCommaJoin()&lt;br /&gt;
&lt;br /&gt;
	return &amp;quot;It is &amp;quot; .. (codeInPagenameInList and &amp;quot;also&amp;quot; or &amp;quot;&amp;quot;) ..&lt;br /&gt;
		&amp;quot; used to transliterate &amp;quot; .. langs .. &amp;quot;.&amp;quot; .. categories:concat()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Used by {{strip diacritics module documentation}}.&lt;br /&gt;
function export.stripDiacriticsModuleLangList(frame)&lt;br /&gt;
	local pagename, subpage&lt;br /&gt;
&lt;br /&gt;
	if frame.args[1] then&lt;br /&gt;
		pagename = frame.args[1]&lt;br /&gt;
	else&lt;br /&gt;
		local title = get_current_title()&lt;br /&gt;
		subpage = title.subpageText&lt;br /&gt;
		pagename = title.text&lt;br /&gt;
&lt;br /&gt;
		if subpage ~= pagename then&lt;br /&gt;
			pagename = title.rootText&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local stripDiacriticsModule = pagename&lt;br /&gt;
&lt;br /&gt;
	local languageObjects = require(&amp;quot;Module:languages/byStripDiacriticsModule&amp;quot;)(stripDiacriticsModule)&lt;br /&gt;
	local codeInPagename = pagename:match(&amp;quot;^([%l-]+)%-.*stripdiacritics$&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	local categories = Array()&lt;br /&gt;
	local codeInPagenameInList = false&lt;br /&gt;
	if codeInPagename then&lt;br /&gt;
		if languageObjects[1] and subpage ~= &amp;quot;documentation&amp;quot; then&lt;br /&gt;
			local agreement = languageObjects[2] and &amp;quot;s&amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
			categories:insert(&amp;quot;[[Category:Diacritic-stripping modules used by &amp;quot; ..&lt;br /&gt;
				#languageObjects .. &amp;quot; language&amp;quot; .. agreement .. &amp;quot;]]&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		languageObjects = Array(languageObjects)&lt;br /&gt;
			:filter(&lt;br /&gt;
				function(lang)&lt;br /&gt;
					local result = lang:getCode() ~= codeInPagename&lt;br /&gt;
					codeInPagenameInList = codeInPagenameInList or result&lt;br /&gt;
					return result&lt;br /&gt;
				end)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if subpage ~= &amp;quot;documentation&amp;quot; then&lt;br /&gt;
		for script_code in pagename:gmatch(&amp;quot;%f[^-%z]%u%l%l%l%f[-]&amp;quot;) do&lt;br /&gt;
			local script = get_script(script_code)&lt;br /&gt;
			if script then&lt;br /&gt;
				categories:insert(&amp;quot;[[Category:&amp;quot; .. script:getCategoryName() .. &amp;quot;]]&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if subpage ~= &amp;quot;documentation&amp;quot; and not title_exists(&amp;quot;Module:&amp;quot; .. pagename .. &amp;quot;/testcases&amp;quot;) then&lt;br /&gt;
		categories:insert(&amp;quot;[[Category:Diacritic-stripping modules without a testcases subpage]]&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not languageObjects[1] then&lt;br /&gt;
		return categories:concat()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local langs = Array(languageObjects)&lt;br /&gt;
		:sort(&lt;br /&gt;
			function(lang1, lang2)&lt;br /&gt;
				return lang1:getCode() &amp;lt; lang2:getCode()&lt;br /&gt;
			end)&lt;br /&gt;
		-- This will not error because languageObjects is not empty.&lt;br /&gt;
		:map(languageObjects[1].makeCategoryLink)&lt;br /&gt;
		:serialCommaJoin()&lt;br /&gt;
&lt;br /&gt;
	return &amp;quot;It is &amp;quot; .. (codeInPagenameInList and &amp;quot;also&amp;quot; or &amp;quot;&amp;quot;) ..&lt;br /&gt;
		&amp;quot; used to strip diacritics for &amp;quot; .. langs .. &amp;quot;.&amp;quot; .. categories:concat()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Used by {{sortkey module documentation}}.&lt;br /&gt;
function export.sortkeyModuleLangList(frame)&lt;br /&gt;
	local pagename, subpage&lt;br /&gt;
&lt;br /&gt;
	if frame.args[1] then&lt;br /&gt;
		pagename = frame.args[1]&lt;br /&gt;
	else&lt;br /&gt;
		local title = get_current_title()&lt;br /&gt;
		subpage = title.subpageText&lt;br /&gt;
		pagename = title.text&lt;br /&gt;
&lt;br /&gt;
		if subpage ~= pagename then&lt;br /&gt;
			pagename = title.rootText&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local sortkeyModule = pagename&lt;br /&gt;
&lt;br /&gt;
	local languageObjects = require(&amp;quot;Module:languages/bySortkeyModule&amp;quot;)(sortkeyModule)&lt;br /&gt;
	local codeInPagename = pagename:match(&amp;quot;^([%l-]+)%-.*sortkey$&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	local categories = Array()&lt;br /&gt;
	local codeInPagenameInList = false&lt;br /&gt;
	if codeInPagename then&lt;br /&gt;
		if languageObjects[1] and subpage ~= &amp;quot;documentation&amp;quot; then&lt;br /&gt;
			local agreement = languageObjects[2] and &amp;quot;s&amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
			categories:insert(&amp;quot;[[Category:Sortkey-generating modules used by &amp;quot; ..&lt;br /&gt;
				#languageObjects .. &amp;quot; language&amp;quot; .. agreement .. &amp;quot;]]&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		languageObjects = Array(languageObjects)&lt;br /&gt;
			:filter(&lt;br /&gt;
				function(lang)&lt;br /&gt;
					local result = lang:getCode() ~= codeInPagename&lt;br /&gt;
					codeInPagenameInList = codeInPagenameInList or result&lt;br /&gt;
					return result&lt;br /&gt;
				end)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if subpage ~= &amp;quot;documentation&amp;quot; then&lt;br /&gt;
		for script_code in pagename:gmatch(&amp;quot;%f[^-%z]%u%l%l%l%f[-]&amp;quot;) do&lt;br /&gt;
			local script = get_script(script_code)&lt;br /&gt;
			if script then&lt;br /&gt;
				categories:insert(&amp;quot;[[Category:&amp;quot; .. script:getCategoryName() .. &amp;quot;]]&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if subpage ~= &amp;quot;documentation&amp;quot; and not title_exists(&amp;quot;Module:&amp;quot; .. pagename .. &amp;quot;/testcases&amp;quot;) then&lt;br /&gt;
		categories:insert(&amp;quot;[[Category:Sortkey-generating modules without a testcases subpage]]&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not languageObjects[1] then&lt;br /&gt;
		return categories:concat()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local langs = Array(languageObjects)&lt;br /&gt;
		:sort(&lt;br /&gt;
			function(lang1, lang2)&lt;br /&gt;
				return lang1:getCode() &amp;lt; lang2:getCode()&lt;br /&gt;
			end)&lt;br /&gt;
		-- This will not error because languageObjects is not empty.&lt;br /&gt;
		:map(languageObjects[1].makeCategoryLink)&lt;br /&gt;
		:serialCommaJoin()&lt;br /&gt;
&lt;br /&gt;
	return &amp;quot;It is &amp;quot; .. (codeInPagenameInList and &amp;quot;also&amp;quot; or &amp;quot;&amp;quot;) ..&lt;br /&gt;
		&amp;quot; used to sort &amp;quot; .. langs .. &amp;quot;.&amp;quot; .. categories:concat()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:W&amp;diff=531022</id>
		<title>Template:W</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:W&amp;diff=531022"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[w:{{safesubst:&amp;lt;noinclude/&amp;gt;#if:{{{lang|}}}|{{{lang}}}:}}{{{1|}}}|{{safesubst:&amp;lt;noinclude/&amp;gt;#if:{{{2|}}}|{{{2}}}|{{{1|}}}}}]]&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:)!&amp;diff=531020</id>
		<title>Template:)!</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:)!&amp;diff=531020"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;amp;#93;&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!(&amp;diff=531018</id>
		<title>Template:!(</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!(&amp;diff=531018"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;amp;#91;&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:)%5E&amp;diff=531016</id>
		<title>Template:)^</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:)%5E&amp;diff=531016"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;amp;gt;&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:%5E(&amp;diff=531014</id>
		<title>Template:^(</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:%5E(&amp;diff=531014"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;amp;lt;&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:)))&amp;diff=531012</id>
		<title>Template:)))</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:)))&amp;diff=531012"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;}}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:(((&amp;diff=531010</id>
		<title>Template:(((</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:(((&amp;diff=531010"/>
		<updated>2026-06-24T10:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{{&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:))&amp;diff=531008</id>
		<title>Template:))</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:))&amp;diff=531008"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;}}&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:((&amp;diff=531006</id>
		<title>Template:((</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:((&amp;diff=531006"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:)&amp;diff=531004</id>
		<title>Template:)</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:)&amp;diff=531004"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;}&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:))!&amp;diff=531002</id>
		<title>Template:))!</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:))!&amp;diff=531002"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;amp;#93;&amp;amp;#93;&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!((&amp;diff=531000</id>
		<title>Template:!((</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!((&amp;diff=531000"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;amp;#91;&amp;amp;#91;&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:%27&amp;diff=530998</id>
		<title>Template:&#039;</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:%27&amp;diff=530998"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;span&amp;gt;&#039;&amp;lt;/span&amp;gt;&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:(&amp;diff=530996</id>
		<title>Template:(</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:(&amp;diff=530996"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!-&amp;diff=530994</id>
		<title>Template:!-</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!-&amp;diff=530994"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;|-&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!!&amp;diff=530992</id>
		<title>Template:!!</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!!&amp;diff=530992"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;||&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:(!&amp;diff=530990</id>
		<title>Template:(!</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:(!&amp;diff=530990"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{|&amp;lt;/onlyinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!)&amp;diff=530988</id>
		<title>Template:!)</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!)&amp;diff=530988"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;|}&amp;lt;/onlyinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:Pipe&amp;diff=530986</id>
		<title>Template:Pipe</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:Pipe&amp;diff=530986"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;amp;#124;&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:!%2B&amp;diff=530984</id>
		<title>Template:!+</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:!%2B&amp;diff=530984"/>
		<updated>2026-06-24T10:06:22Z</updated>

		<summary type="html">&lt;p&gt;Sware: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;|+&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:)%5E/doc&amp;diff=530981</id>
		<title>Template:)^/doc</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:)%5E/doc&amp;diff=530981"/>
		<updated>2026-06-24T10:04:57Z</updated>

		<summary type="html">&lt;p&gt;Sware: Created page with &amp;quot;{{wikitext character template documentation}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{wikitext character template documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=Template:)%5E&amp;diff=530980</id>
		<title>Template:)^</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Template:)%5E&amp;diff=530980"/>
		<updated>2026-06-24T10:04:52Z</updated>

		<summary type="html">&lt;p&gt;Sware: Created page with &amp;quot;&amp;lt;onlyinclude&amp;gt;&amp;amp;gt;&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--  --&amp;gt;{{documentation}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;amp;gt;&amp;lt;/onlyinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{documentation}}&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
</feed>