<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://map-wiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Raccoondad</id>
	<title>MAP Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://map-wiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Raccoondad"/>
	<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php/Special:Contributions/Raccoondad"/>
	<updated>2026-05-27T20:50:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Note/doc&amp;diff=704</id>
		<title>Template:Note/doc</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Note/doc&amp;diff=704"/>
		<updated>2025-07-07T00:18:08Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation subpage}}&lt;br /&gt;
&amp;lt;!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata --&amp;gt;&lt;br /&gt;
{{TemplateData header|editlinks=1|docpage=Note/doc}}&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;format&amp;quot;: &amp;quot;block&amp;quot;,&lt;br /&gt;
	&amp;quot;description&amp;quot;: {&lt;br /&gt;
		&amp;quot;en&amp;quot;: &amp;quot;Show a note in a box (e.g. a top-of-the-page warning).&amp;quot;,&lt;br /&gt;
		&amp;quot;es&amp;quot;: &amp;quot;Muestra una nota en un recuadro (p. ej. un aviso en la parte superior de la página).&amp;quot;,&lt;br /&gt;
		&amp;quot;cs&amp;quot;: &amp;quot;Zobrazí poznámku v poli (např. upozornění v horní části stránky)&amp;quot;,&lt;br /&gt;
		&amp;quot;tr&amp;quot;: &amp;quot;Bir kutuda bir not gösterin (ör. sayfanın üstü uyarısı).&amp;quot;,&lt;br /&gt;
		&amp;quot;fr&amp;quot;: &amp;quot;Affiche une note dans une boîte (exemple : un avertissement en haut de la page).&amp;quot;,&lt;br /&gt;
		&amp;quot;pt-br&amp;quot;: &amp;quot;Exibe uma nota em uma caixa (como um aviso no topo de uma página).&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;params&amp;quot;: {&lt;br /&gt;
		&amp;quot;inline&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Inline formatting&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;Formato en una sola línea&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;format une ligne&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Inline formátování&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;Satır içi biçimlendirme&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Formatação em linha&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Show the template without line breaks before and after it.&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;Muestra la plantilla sin saltos de línea antes y después de ésta.&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;affiche le modèle sans les sauts de ligne, ni avant, ni après.&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Zobrazí šablonu bez zalomení řádků před a za ní.&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;Şablonu, öncesinde ve sonrasında satır kesmeleri olmadan gösterin.&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Exibe a predefinição sem quebras de linha antes ou após.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;default&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;0&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;0&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;autovalue&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;boolean&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;type&amp;quot;: {&lt;br /&gt;
			&amp;quot;aliases&amp;quot;: [&lt;br /&gt;
				&amp;quot;2&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Type&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;Tipo&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;type de boîte&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Typ&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;Tür&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Tipo&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;One of “info”, “reminder”, “warn”, or “error”. This setting affects the color and icon.&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;Uno de los siguientes: “info”, “reminder”, “warn”, o “error”. Este ajuste afecta al color y al icono.&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;une des valeurs suggérées. Modifie la couleur de la boîte et l&#039;icône associée.&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Jedna z možností “info”, “reminder”, “warn”, or “error” (informace, připomenutí, upozornění nebo chyba). Toto nastavení má vliv na barvu a ikonu.&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;“info”, “reminder”, “warn” veya “error” değerlerden biri. Bu ayar, rengi ve simgeyi etkiler.&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Disponíveis: “info” (informação), “reminder” (lembrete), “warn” (aviso) e “error” (erro). Essa configuração afeta a cor e o ícone.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;suggestedvalues&amp;quot;: [&lt;br /&gt;
				&amp;quot;info&amp;quot;,&lt;br /&gt;
				&amp;quot;reminder&amp;quot;,&lt;br /&gt;
				&amp;quot;warn&amp;quot;,&lt;br /&gt;
				&amp;quot;error&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;default&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;info&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;info&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;text&amp;quot;: {&lt;br /&gt;
			&amp;quot;aliases&amp;quot;: [&lt;br /&gt;
				&amp;quot;1&amp;quot;,&lt;br /&gt;
				&amp;quot;content&amp;quot;&lt;br /&gt;
			],&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Text&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;Texto&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;texte affiché&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Text&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;Metin&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Texto&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Informative note.&amp;quot;,&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;Nota informativa.&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;note d&#039;information&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Informativní poznámka.&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;Bilgilendirecek not.&amp;quot;,&lt;br /&gt;
				&amp;quot;pt-br&amp;quot;: &amp;quot;Nota informativa.&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;content&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: true,&lt;br /&gt;
			&amp;quot;example&amp;quot;: {&lt;br /&gt;
				&amp;quot;es&amp;quot;: &amp;quot;Texto de la nota.&amp;quot;,&lt;br /&gt;
				&amp;quot;fr&amp;quot;: &amp;quot;Texte de la note.&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;paramOrder&amp;quot;: [&lt;br /&gt;
		&amp;quot;inline&amp;quot;,&lt;br /&gt;
		&amp;quot;type&amp;quot;,&lt;br /&gt;
		&amp;quot;text&amp;quot;&lt;br /&gt;
	]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- Categories below this line; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
[[Category:Notice templates{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Module:Effective_protection_level&amp;diff=702</id>
		<title>Module:Effective protection level</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Module:Effective_protection_level&amp;diff=702"/>
		<updated>2025-07-07T00:18:08Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Returns the permission required to perform a given action on a given title.&lt;br /&gt;
-- If no title is specified, the title of the page being displayed is used.&lt;br /&gt;
function p._main(action, pagename)&lt;br /&gt;
	local title&lt;br /&gt;
	if type(pagename) == &#039;table&#039; and pagename.prefixedText then&lt;br /&gt;
		title = pagename&lt;br /&gt;
	elseif pagename then&lt;br /&gt;
		title = mw.title.new(pagename)&lt;br /&gt;
	else&lt;br /&gt;
		title = mw.title.getCurrentTitle()&lt;br /&gt;
	end&lt;br /&gt;
	pagename = title.prefixedText&lt;br /&gt;
	if action ~= &#039;edit&#039; and action ~= &#039;move&#039; and action ~= &#039;create&#039; and action ~= &#039;upload&#039; then&lt;br /&gt;
		error( &#039;First parameter must be one of edit, move, create, upload&#039;, 2 )&lt;br /&gt;
	end&lt;br /&gt;
	if title.namespace == 8 then -- MediaWiki namespace&lt;br /&gt;
		if title.contentModel == &#039;javascript&#039; or title.contentModel == &#039;css&#039; then -- site JS or CSS page&lt;br /&gt;
			return &#039;interfaceadmin&#039;&lt;br /&gt;
		else -- any non-JS/CSS MediaWiki page&lt;br /&gt;
			return &#039;sysop&#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif title.namespace == 2 and title.isSubpage then&lt;br /&gt;
		if title.contentModel == &#039;javascript&#039; or title.contentModel == &#039;css&#039; then -- user JS or CSS page&lt;br /&gt;
			return &#039;interfaceadmin&#039;&lt;br /&gt;
		elseif title.contentModel == &#039;json&#039; then -- user JSON page&lt;br /&gt;
			return &#039;sysop&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local level = title.protectionLevels[action] and title.protectionLevels[action][1]&lt;br /&gt;
	if level == &#039;sysop&#039; or level == &#039;editprotected&#039; then&lt;br /&gt;
		return &#039;sysop&#039;&lt;br /&gt;
	elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page&lt;br /&gt;
		return &#039;sysop&#039;&lt;br /&gt;
	elseif action == &#039;move&#039; then&lt;br /&gt;
		local blacklistentry = mw.ext.TitleBlacklist.test(&#039;edit&#039;, pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move.&lt;br /&gt;
		if blacklistentry and not blacklistentry.params.autoconfirmed then&lt;br /&gt;
			return &#039;sysop&#039;&lt;br /&gt;
		elseif title.namespace == 6 then&lt;br /&gt;
			return &#039;sysop&#039;&lt;br /&gt;
		else&lt;br /&gt;
			return &#039;autoconfirmed&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename)&lt;br /&gt;
	if blacklistentry then&lt;br /&gt;
		if not blacklistentry.params.autoconfirmed then&lt;br /&gt;
			return &#039;sysop&#039;&lt;br /&gt;
		else&lt;br /&gt;
			return &#039;autoconfirmed&#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif level == &#039;editsemiprotected&#039; then -- create-semiprotected pages return this for some reason&lt;br /&gt;
		return &#039;autoconfirmed&#039;&lt;br /&gt;
	elseif level then&lt;br /&gt;
		return level&lt;br /&gt;
	elseif action == &#039;upload&#039; then&lt;br /&gt;
		return &#039;uploader&#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;*&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
setmetatable(p, { __index = function(t, k)&lt;br /&gt;
	return function(frame)&lt;br /&gt;
		return t._main(k, frame.args[1])&lt;br /&gt;
	end&lt;br /&gt;
end })&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Module_other&amp;diff=700</id>
		<title>Template:Module other</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Module_other&amp;diff=700"/>
		<updated>2025-07-07T00:18:08Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:&lt;br /&gt;
  &amp;lt;!--If no or empty &amp;quot;demospace&amp;quot; parameter then detect namespace--&amp;gt;&lt;br /&gt;
  {{#if:{{{demospace|}}}&lt;br /&gt;
  | {{lc: {{{demospace}}} }}    &amp;lt;!--Use lower case &amp;quot;demospace&amp;quot;--&amp;gt;&lt;br /&gt;
  | {{#ifeq:{{NAMESPACE}}|{{ns:Module}}&lt;br /&gt;
    | module&lt;br /&gt;
    | other&lt;br /&gt;
    }}&lt;br /&gt;
  }}&lt;br /&gt;
| module = {{{1|}}}&lt;br /&gt;
| other&lt;br /&gt;
| #default = {{{2|}}}&lt;br /&gt;
}}&amp;lt;!--End switch--&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Pp-template&amp;diff=698</id>
		<title>Template:Pp-template</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Pp-template&amp;diff=698"/>
		<updated>2025-07-07T00:18:08Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch:{{#invoke:Effective protection level|edit|{{FULLPAGENAME}}}}&lt;br /&gt;
|*=[[Category:Pages with incorrect protection templates]]&lt;br /&gt;
|autoconfirmed={{#tag:indicator|[[File:Semi-protection-shackle-keyhole.svg|20px|link=Project:Protected page|alt=Permanently protected {{module other|module|template}}|This high-risk {{module other|module|template}} is permanently semi-protected to prevent vandalism]]|name=&amp;quot;pp-default&amp;quot;}}[[Category:{{module other|Modules subject to page protection|Semi-protected templates}}|{{PAGENAME}}]]&lt;br /&gt;
|sysop={{#tag:indicator|[[File:Full-protection-shackle-keyhole.svg|20px|link=Project:Protected page|alt=Permanently protected {{module other|module|template}}|This high-risk {{module other|module|template}} is permanently protected to prevent vandalism]]|name=&amp;quot;pp-default&amp;quot;}}[[Category:{{module other|Modules subject to page protection|Fully protected templates}}|{{PAGENAME}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Tl&amp;diff=696</id>
		<title>Template:Tl</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Tl&amp;diff=696"/>
		<updated>2025-07-07T00:18:08Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{((}}{{ll|Template:{{{1}}}|nsp=0}}{{))}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:))&amp;diff=694</id>
		<title>Template:))</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:))&amp;diff=694"/>
		<updated>2025-07-07T00:18:08Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:((&amp;diff=692</id>
		<title>Template:((</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:((&amp;diff=692"/>
		<updated>2025-07-07T00:18:07Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Note/en&amp;diff=690</id>
		<title>Template:Note/en</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Note/en&amp;diff=690"/>
		<updated>2025-07-07T00:18:07Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#if: {{{1|{{{content|{{{text|{{{demo|&amp;lt;noinclude&amp;gt;demo&amp;lt;/noinclude&amp;gt;}}}}}}}}}}}} | &amp;lt;templatestyles src=&amp;quot;Note/styles.css&amp;quot; /&amp;gt;&amp;lt;div role=&amp;quot;note&amp;quot; class=&amp;quot;note note-{{#switch: {{{2|{{{type|}}}}}}&lt;br /&gt;
    |gotcha=error&lt;br /&gt;
    |warning=warn&lt;br /&gt;
    |notice=info&lt;br /&gt;
    |=info&lt;br /&gt;
    |#default={{{2|{{{type|}}}}}}&lt;br /&gt;
    }} {{#ifeq:{{{inline|}}}|1|note-inline}}&amp;quot;&amp;gt;{{{1|{{{content|{{{text}}}}}}}}}&amp;lt;/div&amp;gt;&lt;br /&gt;
  | [[File:OOjs UI icon lightbulb-yellow.svg|18px|alt=Note|link=]]&amp;amp;nbsp;&#039;&#039;&#039;Note:&#039;&#039;&#039; }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
== Usage ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Note|text=Foo}}&lt;br /&gt;
{{Note|type=info|text=Foo}}&lt;br /&gt;
{{Note|type=reminder|text=Foo}}&lt;br /&gt;
{{Note|type=reminder|text=Multiple&amp;lt;br&amp;gt;lines&amp;lt;br&amp;gt;of&amp;lt;br&amp;gt;text}}&lt;br /&gt;
{{Note|type=warn|text=Foo}}&lt;br /&gt;
{{Note|type=error|text=Foo}}&lt;br /&gt;
{{Note}} Loose test&lt;br /&gt;
&lt;br /&gt;
* Text {{Note|inline=1|text=Foo}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|text=Foo}}&lt;br /&gt;
{{Note|type=info|text=Foo}}&lt;br /&gt;
{{Note|type=reminder|text=Foo}}&lt;br /&gt;
{{Note|type=reminder|text=Multiple&amp;lt;br&amp;gt;lines&amp;lt;br&amp;gt;of&amp;lt;br&amp;gt;text}}&lt;br /&gt;
{{Note|type=warn|text=Foo}}&lt;br /&gt;
{{Note|type=error|text=Foo}}&lt;br /&gt;
{{Note}} Loose test&lt;br /&gt;
&lt;br /&gt;
* Text {{Note|inline=1|text=Foo}}&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
{{Note/doc}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* {{tl|warn}}, shortcut for this template with &amp;lt;code&amp;gt;type=warning&amp;lt;/code&amp;gt;.&lt;br /&gt;
* {{tl|mbox}}, and in particular the namespace-agnostic {{tl|ombox}}, which by default resembles a typical &amp;quot;info&amp;quot; template.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Templates{{#translation:}}|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Module:Documentation/styles.css&amp;diff=688</id>
		<title>Module:Documentation/styles.css</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Module:Documentation/styles.css&amp;diff=688"/>
		<updated>2025-07-07T00:18:07Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.ts-doc-sandbox .mbox-image	{&lt;br /&gt;
	padding:.75em 0 .75em .75em;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.ts-doc-doc {&lt;br /&gt;
	clear: both;&lt;br /&gt;
	background-color: #eaf3ff;&lt;br /&gt;
	color: var(--color-base, #202122);&lt;br /&gt;
	border: 1px solid #a3caff;&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	border-top-left-radius: 2px;&lt;br /&gt;
	border-top-right-radius: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header {&lt;br /&gt;
	background-color: #cbd6f6;&lt;br /&gt;
	color: var(--color-base, #202122);&lt;br /&gt;
	padding: .642857em 1em .5em;&lt;br /&gt;
	border-top-left-radius: 2px;&lt;br /&gt;
	border-top-right-radius: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-heading {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding-left: 30px;&lt;br /&gt;
	background: center left / 24px 24px no-repeat;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	background-image: url( //upload.wikimedia.org/wikipedia/commons/f/fb/OOjs_UI_icon_puzzle-ltr.svg );&lt;br /&gt;
	height: 24px;&lt;br /&gt;
	line-height: 24px;&lt;br /&gt;
	font-size: 13px;&lt;br /&gt;
	font-weight: 600;&lt;br /&gt;
	letter-spacing: 1px;&lt;br /&gt;
	text-transform: uppercase;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header .ts-tlinks-tlinks {&lt;br /&gt;
	line-height: 24px;&lt;br /&gt;
	margin-left: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header .ts-tlinks-tlinks a {&lt;br /&gt;
	color: var(--color-progressive, #36c);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header .ts-tlinks-tlinks a:active {&lt;br /&gt;
	color: var(--color-progressive--active, #233566);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header .ts-tlinks-tlinks a:visited {&lt;br /&gt;
	color: var(--color-visited, #6a60b0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header .ts-tlinks-tlinks a:visited:active {&lt;br /&gt;
	color: var(--color-visited--active, #233566);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-content {&lt;br /&gt;
	padding: .214286em 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-content:after {&lt;br /&gt;
	content: &#039;&#039;;&lt;br /&gt;
	clear: both;&lt;br /&gt;
	display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-content &amp;gt; :first-child {&lt;br /&gt;
	margin-top: .5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-content &amp;gt; :last-child {&lt;br /&gt;
	margin-bottom: .5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-footer {&lt;br /&gt;
	background-color: #eaf3ff;&lt;br /&gt;
	color: var(--color-base, #202122);&lt;br /&gt;
	border: 1px solid #a3caff;&lt;br /&gt;
	padding: .214286em 1em;&lt;br /&gt;
	margin-top: .214286em;&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	border-bottom-left-radius: 2px;&lt;br /&gt;
	border-bottom-right-radius: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media all and (min-width: 720px) { &lt;br /&gt;
	.ts-doc-header .ts-tlinks-tlinks {&lt;br /&gt;
		float: right;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html.skin-theme-clientpref-night .ts-doc-header {&lt;br /&gt;
	background-color: #3056a9;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html.skin-theme-clientpref-night .ts-doc-heading {&lt;br /&gt;
	background-image: url( &#039;//upload.wikimedia.org/wikipedia/commons/d/d3/OOjs_UI_icon_puzzle-ltr-invert.svg&#039; );	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html.skin-theme-clientpref-night .ts-doc-doc,&lt;br /&gt;
html.skin-theme-clientpref-night .ts-doc-footer {&lt;br /&gt;
	background-color: #1b223d;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (prefers-color-scheme: dark) {&lt;br /&gt;
	html.skin-theme-clientpref-os .ts-doc-header {&lt;br /&gt;
		background-color: #3056a9;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-os .ts-doc-heading {&lt;br /&gt;
		background-image: url( &#039;//upload.wikimedia.org/wikipedia/commons/d/d3/OOjs_UI_icon_puzzle-ltr-invert.svg&#039; );	&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-os .ts-doc-doc,&lt;br /&gt;
	html.skin-theme-clientpref-os .ts-doc-footer {&lt;br /&gt;
		background-color: #1b223d;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Module:Navbar/styles.css&amp;diff=686</id>
		<title>Module:Navbar/styles.css</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Module:Navbar/styles.css&amp;diff=686"/>
		<updated>2025-07-07T00:18:07Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/** {{Shared Template Warning}}&lt;br /&gt;
 * This TemplateStyles page is separately used for [[Template:Navbar]]&lt;br /&gt;
 * because of course there are two versions of the same template.&lt;br /&gt;
 * Be careful when adjusting styles accordingly.&lt;br /&gt;
 */&lt;br /&gt;
.navbar {&lt;br /&gt;
	display: inline;&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
	font-weight: normal;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar ul {&lt;br /&gt;
	display: inline;&lt;br /&gt;
	white-space: nowrap;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbar li {&lt;br /&gt;
	word-spacing: -0.125em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Navbar styling when nested in navbox */&lt;br /&gt;
.navbox .navbar {&lt;br /&gt;
	display: block;&lt;br /&gt;
	font-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navbox-title .navbar {&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	float: left;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	text-align: left;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	margin-right: 0.5em;&lt;br /&gt;
	width: 6em;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Sandbox_other&amp;diff=684</id>
		<title>Template:Sandbox other</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Sandbox_other&amp;diff=684"/>
		<updated>2025-07-07T00:18:07Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{SUBPAGENAME}}|sandbox|doc={{{1|}}}|#default={{{2|}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Navbar/en&amp;diff=682</id>
		<title>Template:Navbar/en</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Navbar/en&amp;diff=682"/>
		<updated>2025-07-07T00:18:07Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;templatestyles src=&amp;quot;Module:Navbar/styles.css&amp;quot;/&amp;gt;&amp;lt;span class=&amp;quot;noprint plainlinks navbar&amp;quot; style=&amp;quot;{{{style|}}}&amp;quot;&amp;gt;&amp;lt;small&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{mini|}}}{{{plain|}}}|&amp;lt;!--nothing--&amp;gt;|&amp;lt;!--else:&lt;br /&gt;
--&amp;gt;&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot;&amp;gt;{{#if:{{{text|}}}|{{{text}}}|This box:}} &amp;lt;/span&amp;gt;}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{brackets|}}}|&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;/span&amp;gt;}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;span style=&amp;quot;white-space:nowrap;word-spacing:-.12em;&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;[[{{transclude|{{{1}}}}}|&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot; title=&amp;quot;View this template&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{mini|}}}|v|view}}&amp;lt;/span&amp;gt;]]&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot;&amp;gt;&amp;amp;#32;&amp;lt;b&amp;gt;&amp;amp;middot;&amp;lt;/b&amp;gt;&amp;amp;#32;&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;[{{fullurl:{{&amp;lt;noinclude&amp;gt;&amp;lt;nowiki/&amp;gt;&amp;lt;/noinclude&amp;gt;TALKPAGENAME:{{transclude|{{{1}}}}}}}}} &amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot; title=&amp;quot;Discuss this template&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{mini|}}}|d|talk}}&amp;lt;/span&amp;gt;]&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{noedit|}}}|&amp;lt;!--nothing--&amp;gt;|&amp;lt;!--else:&lt;br /&gt;
--&amp;gt;&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot;&amp;gt;&amp;amp;#32;&amp;lt;b&amp;gt;&amp;amp;middot;&amp;lt;/b&amp;gt;&amp;amp;#32;&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;[{{fullurl:{{transclude|{{{1}}}}}|action=edit}} &amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot; title=&amp;quot;Edit this template&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{mini|}}}|e|edit}}&amp;lt;/span&amp;gt;]}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{brackets|}}}|&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot;&amp;gt;&amp;amp;#93;&amp;lt;/span&amp;gt;}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
{{Uses TemplateStyles|Module:Navbar/styles.css}}&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
When one of the following examples is placed inside a given [[Special:MyLanguage/Help:Templates|template]], it adds navbar navigational functionality:&lt;br /&gt;
&lt;br /&gt;
: {{tlx|Navbar|Navbar|mini{{=}}1}}&lt;br /&gt;
: {{tlx|Navbar|Navbar|plain{{=}}1}}&lt;br /&gt;
: {{tlx|Navbar|Navbar|fontstyle{{=}}color:green}}&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{subst:PAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; will be substituted with the template&#039;s name when parsed by the servers.&lt;br /&gt;
For example, {{tlx|Navbar|navbar/doc}} gives:&lt;br /&gt;
&lt;br /&gt;
{{Navbar|navbar/doc}}&lt;br /&gt;
&lt;br /&gt;
=== Font-size ===&lt;br /&gt;
Font-size is &amp;lt;code&amp;gt;88%&amp;lt;/code&amp;gt; when used in a navbar, and &amp;lt;code&amp;gt;100%&amp;lt;/code&amp;gt; when nested in a navbox.&lt;br /&gt;
In the navbar, the weight is &amp;quot;&amp;lt;code&amp;gt;normal&amp;lt;/code&amp;gt;&amp;quot;; when nested in navbox, it takes on the outer setting.&lt;br /&gt;
The middot is bold.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
=== Required parameters ===&lt;br /&gt;
* {{tlx|Navbar|&#039;&#039;template name&#039;&#039;}} — the template name is required.&lt;br /&gt;
&lt;br /&gt;
=== Optional parameters ===&lt;br /&gt;
{{(}}{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Options&lt;br /&gt;
! Parameters&lt;br /&gt;
! Produces...&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} Basic&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;template name&#039;&#039;}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} Different text&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;template name&#039;&#039;|3=text{{=}}This template:}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc|text=This template:}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} Without &amp;quot;This box:&amp;quot; text&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;template name&#039;&#039;|3=plain{{=}}1}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc|plain=1}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} Short version&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;template name&#039;&#039;|3=mini{{=}}1}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc|mini=1}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} With a color option&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;template name&#039;&#039;|3=fontstyle{{=}}color:green}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc|fontstyle=color:green}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} With brackets&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;template name&#039;&#039;|3=brackets{{=}}1}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc|brackets=1}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} Custom namespace&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;namespaced template name&#039;&#039;|3=plain{{=}}1|4=brackets{{=}}1}}&lt;br /&gt;
{{!}} {{navbar|User:Example|plain=1|brackets=1}}&lt;br /&gt;
{{!}}{{)}}&lt;br /&gt;
&lt;br /&gt;
== TemplateData ==&lt;br /&gt;
{{Navbar/doc}}&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
Navbar is contained within a {{tag|div}} in order to accommodate a horizontal unnumbered list.&lt;br /&gt;
This means it cannot be placed inside a {{tag|span}} or other inline element, because Tidy will &#039;fix&#039; situations where it finds block elements inside inline elements.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- PLEASE ADD METADATA TO THE &amp;lt;includeonly&amp;gt; SECTION HERE ---&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Formatting templates{{#translation:}}]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Navbar&amp;diff=680</id>
		<title>Template:Navbar</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Navbar&amp;diff=680"/>
		<updated>2025-07-07T00:18:07Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;templatestyles src=&amp;quot;Module:Navbar/styles.css&amp;quot;/&amp;gt;&amp;lt;span class=&amp;quot;noprint plainlinks navbar&amp;quot; style=&amp;quot;{{{style|}}}&amp;quot;&amp;gt;&amp;lt;small&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{mini|}}}{{{plain|}}}|&amp;lt;!--nothing--&amp;gt;|&amp;lt;!--else:&lt;br /&gt;
--&amp;gt;&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot;&amp;gt;{{#if:{{{text|}}}|{{{text}}}|&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; This box:&amp;lt;/translate&amp;gt;}} &amp;lt;/span&amp;gt;}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{brackets|}}}|&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;/span&amp;gt;}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;span style=&amp;quot;white-space:nowrap;word-spacing:-.12em;&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;[[{{transclude|{{{1}}}}}|&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot; title=&amp;quot;&amp;lt;translate nowrap&amp;gt;&amp;lt;!--T:2--&amp;gt; View this template&amp;lt;/translate&amp;gt;&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{mini|}}}|&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt; v&amp;lt;/translate&amp;gt;|&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; view&amp;lt;/translate&amp;gt;}}&amp;lt;/span&amp;gt;]]&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot;&amp;gt;&amp;amp;#32;&amp;lt;b&amp;gt;&amp;amp;middot;&amp;lt;/b&amp;gt;&amp;amp;#32;&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;[{{fullurl:{{&amp;lt;noinclude&amp;gt;&amp;lt;nowiki/&amp;gt;&amp;lt;/noinclude&amp;gt;TALKPAGENAME:{{transclude|{{{1}}}}}}}}} &amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot; title=&amp;quot;&amp;lt;translate nowrap&amp;gt;&amp;lt;!--T:9--&amp;gt; Discuss this template&amp;lt;/translate&amp;gt;&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{mini|}}}|&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; d&amp;lt;/translate&amp;gt;|&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt; talk&amp;lt;/translate&amp;gt;}}&amp;lt;/span&amp;gt;]&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{noedit|}}}|&amp;lt;!--nothing--&amp;gt;|&amp;lt;!--else:&lt;br /&gt;
--&amp;gt;&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot;&amp;gt;&amp;amp;#32;&amp;lt;b&amp;gt;&amp;amp;middot;&amp;lt;/b&amp;gt;&amp;amp;#32;&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;[{{fullurl:{{transclude|{{{1}}}}}|action=edit}} &amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot; title=&amp;quot;&amp;lt;translate nowrap&amp;gt;&amp;lt;!--T:10--&amp;gt; Edit this template&amp;lt;/translate&amp;gt;&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{mini|}}}|&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt; e&amp;lt;/translate&amp;gt;|&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; edit&amp;lt;/translate&amp;gt;}}&amp;lt;/span&amp;gt;]}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;{{#if:{{{brackets|}}}|&amp;lt;span style=&amp;quot;{{{fontstyle|}}}&amp;quot;&amp;gt;&amp;amp;#93;&amp;lt;/span&amp;gt;}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
{{Uses TemplateStyles|Module:Navbar/styles.css}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage == &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== General === &amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
When one of the following examples is placed inside a given [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Help:Templates&amp;lt;/tvar&amp;gt;|template]], it adds navbar navigational functionality:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: {{tlx|Navbar|Navbar|mini{{=}}1}}&lt;br /&gt;
: {{tlx|Navbar|Navbar|plain{{=}}1}}&lt;br /&gt;
: {{tlx|Navbar|Navbar|fontstyle{{=}}color:green}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt; The &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{subst:PAGENAME}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; will be substituted with the template&#039;s name when parsed by the servers.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; For example, &amp;lt;tvar name=1&amp;gt;{{tlx|Navbar|navbar/doc}}&amp;lt;/tvar&amp;gt; gives:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Navbar|navbar/doc}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Font-size === &amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt; Font-size is &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;88%&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; when used in a navbar, and &amp;lt;tvar name=2&amp;gt;&amp;lt;code&amp;gt;100%&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; when nested in a navbox.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt; In the navbar, the weight is &amp;quot;&amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;normal&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;quot;; when nested in navbox, it takes on the outer setting.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt; The middot is bold.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Examples == &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Required parameters === &amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tlx|Navbar|&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt; template name&amp;lt;/translate&amp;gt;&#039;&#039;}} — &amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt; the template name is required.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Optional parameters === &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{(}}{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt; Options&amp;lt;/translate&amp;gt;&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; Parameters&amp;lt;/translate&amp;gt;&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt; Produces...&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; Basic&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt; template name&amp;lt;/translate&amp;gt;&#039;&#039;}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; Different text&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt; template name&amp;lt;/translate&amp;gt;&#039;&#039;|3=text{{=}}&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; This template:&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc|text=&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; This template:&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt; Without &amp;quot;This box:&amp;quot; text&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt; template name&amp;lt;/translate&amp;gt;&#039;&#039;|3=plain{{=}}1}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc|plain=1}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt; Short version&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt; template name&amp;lt;/translate&amp;gt;&#039;&#039;|3=mini{{=}}1}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc|mini=1}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt; With a color option&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt; template name&amp;lt;/translate&amp;gt;&#039;&#039;|3=fontstyle{{=}}color:green}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc|fontstyle=color:green}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt; With brackets&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt; template name&amp;lt;/translate&amp;gt;&#039;&#039;|3=brackets{{=}}1}}&lt;br /&gt;
{{!}} {{navbar|navbar/doc|brackets=1}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} &amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt; Custom namespace&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}} {{tlx|Navbar|2=&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt; namespaced template name&amp;lt;/translate&amp;gt;&#039;&#039;|3=plain{{=}}1|4=brackets{{=}}1}}&lt;br /&gt;
{{!}} {{navbar|User:Example|plain=1|brackets=1}}&lt;br /&gt;
{{!}}{{)}}&lt;br /&gt;
&lt;br /&gt;
== TemplateData ==&lt;br /&gt;
{{Navbar/doc}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Notes == &amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:43--&amp;gt; Navbar is contained within a &amp;lt;tvar name=1&amp;gt;{{tag|div}}&amp;lt;/tvar&amp;gt; in order to accommodate a horizontal unnumbered list.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:44--&amp;gt; This means it cannot be placed inside a &amp;lt;tvar name=1&amp;gt;{{tag|span}}&amp;lt;/tvar&amp;gt; or other inline element, because Tidy will &#039;fix&#039; situations where it finds block elements inside inline elements.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--- PLEASE ADD METADATA TO THE &amp;lt;includeonly&amp;gt; SECTION HERE ---&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Formatting templates{{#translation:}}]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Transclude&amp;diff=678</id>
		<title>Template:Transclude</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Transclude&amp;diff=678"/>
		<updated>2025-07-07T00:18:06Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;{{#switch: {{NAMESPACE: {{{1}}} }}&lt;br /&gt;
 |#default = {{FULLPAGENAME: {{{1}}} }} &amp;lt;!-- leading namespace prefix, eg &amp;quot;Template:Foo&amp;quot; --&amp;gt;&lt;br /&gt;
 |{{ns:0}} = &lt;br /&gt;
    {{#ifeq: {{NAMESPACE: {{{1}}} }} | {{NAMESPACE: Template{{{1}}} }}&lt;br /&gt;
      | Template:{{{1}}}            &amp;lt;!-- no leading colon, eg &amp;quot;Foo&amp;quot; --&amp;gt;&lt;br /&gt;
      | {{PAGENAME: {{{1}}} }}      &amp;lt;!-- leading colon, eg &amp;quot;:Foo&amp;quot;, so we want the article --&amp;gt;&lt;br /&gt;
    }}&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Yesno&amp;diff=676</id>
		<title>Template:Yesno</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Yesno&amp;diff=676"/>
		<updated>2025-07-07T00:18:06Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#switch: {{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;lc: {{{1|¬}}} }}&lt;br /&gt;
 |no&lt;br /&gt;
 |n&lt;br /&gt;
 |false&lt;br /&gt;
 |0        = {{{no|&amp;lt;!-- null --&amp;gt;}}}&lt;br /&gt;
 |         = {{{blank|{{{no|&amp;lt;!-- null --&amp;gt;}}}}}}&lt;br /&gt;
 |¬        = {{{¬|}}}&lt;br /&gt;
 |yes&lt;br /&gt;
 |y&lt;br /&gt;
 |true&lt;br /&gt;
 |1        = {{{yes|yes}}}&lt;br /&gt;
 |#default = {{{def|{{{yes|yes}}}}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:TemplateData_header/en&amp;diff=674</id>
		<title>Template:TemplateData header/en</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:TemplateData_header/en&amp;diff=674"/>
		<updated>2025-07-07T00:18:06Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#switch:&lt;br /&gt;
|=&lt;br /&gt;
&amp;lt;div class=&amp;quot;templatedata-header&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{yesno|{{{editlinks|}}}}}&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{#ifexpr:&amp;lt;!--&lt;br /&gt;
		--&amp;gt;{{#if:{{{docpage|}}}&amp;lt;!--&lt;br /&gt;
			--&amp;gt;|{{#ifeq:{{FULLPAGENAME}}|{{transclude|{{{docpage}}}}}|0|1}}&amp;lt;!--&lt;br /&gt;
			--&amp;gt;|not{{IsDocSubpage|false=0}}&amp;lt;!--&lt;br /&gt;
		--&amp;gt;}}&amp;lt;!--&lt;br /&gt;
		--&amp;gt;|{{Navbar|{{{docpage|{{BASEPAGENAME}}/doc}}}|plain=1|brackets=1|style=float:{{dir|{{PAGELANGUAGE}}|left|right}};}}&amp;lt;!--&lt;br /&gt;
	--&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&lt;br /&gt;
{{#if:{{{noheader|}}}||This is the [[Special:MyLanguage/Help:TemplateData|TemplateData]] documentation for this template used by [[Special:MyLanguage/VisualEditor|VisualEditor]] and other tools.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{{1|{{BASEPAGENAME}}}}}&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox|&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{#if:{{IsDocSubpage|false=}}&amp;lt;!--&lt;br /&gt;
		--&amp;gt;|[[Category:TemplateData documentation{{#translation:}}]]&amp;lt;!--&lt;br /&gt;
		--&amp;gt;|[[Category:Templates using TemplateData{{#translation:}}]]&amp;lt;!--&lt;br /&gt;
	--&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
| #default=&lt;br /&gt;
  {{#invoke:Template translation|renderTranslatedTemplate|template=Template:TemplateData header|noshift=1|uselang={{#if:{{pagelang}}|{{pagelang}}|{{int:lang}}}}}}&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
&lt;br /&gt;
Inserts a brief header for the template data section.&lt;br /&gt;
Adds the /doc subpage to {{ll|Category:TemplateData documentation}} and the template page to {{ll|Category:Templates using TemplateData}}.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
{{#tag:syntaxhighlight|&lt;br /&gt;
==TemplateData== or ==Parameters== or ==Usage==&lt;br /&gt;
{{((}}TemplateData header{{))}}&lt;br /&gt;
{{^(}}templatedata{{)^}}{&lt;br /&gt;
...&lt;br /&gt;
}{{^(}}/templatedata{{)^}}&lt;br /&gt;
|lang=html&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Use {{tmpl|0=&amp;lt;code&amp;gt;{{((}}TemplateData header{{!}}$1{{))}}&amp;lt;/code&amp;gt;|Template name}} to display a name for the template other than the default, which is {{ll|Help:Magic words#Variables|&amp;lt;nowiki&amp;gt;{{BASEPAGENAME}}&amp;lt;/nowiki&amp;gt;}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&amp;lt;dd&amp;gt;&lt;br /&gt;
{{TemplateData header|Template name}}&lt;br /&gt;
&amp;lt;/dd&amp;gt;&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TemplateData header|noheader=1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; to omit the first sentence of the header text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&amp;lt;dd&amp;gt;&lt;br /&gt;
{{TemplateData header|noheader=1}}&lt;br /&gt;
&amp;lt;/dd&amp;gt;&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
{{TemplateData header/doc}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:TemplateData_header&amp;diff=672</id>
		<title>Template:TemplateData header</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:TemplateData_header&amp;diff=672"/>
		<updated>2025-07-07T00:18:06Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#switch:&amp;lt;translate&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
|=&lt;br /&gt;
&amp;lt;div class=&amp;quot;templatedata-header&amp;quot;&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{yesno|{{{editlinks|}}}}}&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{#ifexpr:&amp;lt;!--&lt;br /&gt;
		--&amp;gt;{{#if:{{{docpage|}}}&amp;lt;!--&lt;br /&gt;
			--&amp;gt;|{{#ifeq:{{FULLPAGENAME}}|{{transclude|{{{docpage}}}}}|0|1}}&amp;lt;!--&lt;br /&gt;
			--&amp;gt;|not{{IsDocSubpage|false=0}}&amp;lt;!--&lt;br /&gt;
		--&amp;gt;}}&amp;lt;!--&lt;br /&gt;
		--&amp;gt;|{{Navbar|{{{docpage|{{BASEPAGENAME}}/doc}}}|plain=1|brackets=1|style=float:{{dir|{{PAGELANGUAGE}}|left|right}};}}&amp;lt;!--&lt;br /&gt;
	--&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&lt;br /&gt;
{{#if:{{{noheader|}}}||&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; This is the [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Help:TemplateData&amp;lt;/tvar&amp;gt;|TemplateData]] documentation for this template used by [[&amp;lt;tvar name=2&amp;gt;Special:MyLanguage/VisualEditor&amp;lt;/tvar&amp;gt;|VisualEditor]] and other tools.&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;{{{1|{{BASEPAGENAME}}}}}&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;includeonly&amp;gt;{{#ifeq:{{SUBPAGENAME}}|sandbox|&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{#if:{{IsDocSubpage|false=}}&amp;lt;!--&lt;br /&gt;
		--&amp;gt;|[[Category:TemplateData documentation{{#translation:}}]]&amp;lt;!--&lt;br /&gt;
		--&amp;gt;|[[Category:Templates using TemplateData{{#translation:}}]]&amp;lt;!--&lt;br /&gt;
	--&amp;gt;}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
| #default=&lt;br /&gt;
  {{#invoke:Template translation|renderTranslatedTemplate|template=Template:TemplateData header|noshift=1|uselang={{#if:{{pagelang}}|{{pagelang}}|{{int:lang}}}}}}&lt;br /&gt;
}}&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt; Inserts a brief header for the template data section.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; Adds the &amp;lt;tvar name=1&amp;gt;/doc&amp;lt;/tvar&amp;gt; subpage to &amp;lt;tvar name=2&amp;gt;{{ll|Category:TemplateData documentation}}&amp;lt;/tvar&amp;gt; and the template page to &amp;lt;tvar name=3&amp;gt;{{ll|Category:Templates using TemplateData}}&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{#tag:syntaxhighlight|&lt;br /&gt;
==TemplateData== or ==Parameters== or ==Usage==&lt;br /&gt;
{{((}}TemplateData header{{))}}&lt;br /&gt;
{{^(}}templatedata{{)^}}{&lt;br /&gt;
...&lt;br /&gt;
}{{^(}}/templatedata{{)^}}&lt;br /&gt;
|lang=html&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Use {{&amp;lt;tvar name=1&amp;gt;tmpl|0=&amp;lt;code&amp;gt;{{((}}TemplateData header{{!}}$1{{))}}&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;|Template name}} to display a name for the template other than the default, which is &amp;lt;tvar name=&amp;quot;2&amp;quot;&amp;gt;{{ll|Help:Magic words#Variables|&amp;lt;nowiki&amp;gt;{{BASEPAGENAME}}&amp;lt;/nowiki&amp;gt;}}&amp;lt;/tvar&amp;gt;.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&amp;lt;dd&amp;gt;&lt;br /&gt;
{{TemplateData header|Template name}}&lt;br /&gt;
&amp;lt;/dd&amp;gt;&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Use &amp;lt;tvar name=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{TemplateData header|noheader=1}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt; to omit the first sentence of the header text.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&amp;lt;dd&amp;gt;&lt;br /&gt;
{{TemplateData header|noheader=1}}&lt;br /&gt;
&amp;lt;/dd&amp;gt;&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Parameters== &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{TemplateData header/doc}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:IsDocSubpage&amp;diff=670</id>
		<title>Template:IsDocSubpage</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:IsDocSubpage&amp;diff=670"/>
		<updated>2025-07-07T00:18:06Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#ifexpr: (&lt;br /&gt;
	{{#ifeq:{{lc:{{SUBPAGENAME}}}}|{{lc:{{{override|doc}}}}}|1|0}} or (&lt;br /&gt;
		{{#ifeq:{{lc:{{#titleparts:{{FULLPAGENAME}}|-1|-2}}}}|{{lc:{{{override|doc}}}}}|1|0}}&lt;br /&gt;
		and {{#if:{{#translation:}}|1|0}}&lt;br /&gt;
	)&lt;br /&gt;
)&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{{true|1}}}&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{{false|}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;/includeonly&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage and interwikis in Wikidata, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Documentation_subpage/en&amp;diff=668</id>
		<title>Template:Documentation subpage/en</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Documentation_subpage/en&amp;diff=668"/>
		<updated>2025-07-07T00:18:06Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#switch:&lt;br /&gt;
| =&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
 --&amp;gt;{{#if:{{IsDocSubpage|override={{{override|doc}}}|false=}}&lt;br /&gt;
     | &amp;lt;!--(this template has been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#ifeq:{{{doc-notice|show}}} |show&lt;br /&gt;
          | {{Mbox&lt;br /&gt;
             | type = notice&lt;br /&gt;
             | style = margin-bottom:1.0em;&lt;br /&gt;
             | image = [[File:OOjs UI icon book-ltr.svg|40px|alt=|class=skin-invert]]&lt;br /&gt;
             | text =&lt;br /&gt;
&#039;&#039;&#039;This is a [[w:Wikipedia:Template documentation|documentation]] [[Special:MyLanguage/Help:Subpages|subpage]] for {{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}.&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{text2|}}}{{{text1|}}}&lt;br /&gt;
  |It contains usage information, [[Special:MyLanguage/Help:Categories|categories]] and other content that is not part of the original {{{text2|{{{text1}}}}}}.&lt;br /&gt;
  |It contains usage information, [[Special:MyLanguage/Help:Categories|categories]] and other content that is not part of the original {{SUBJECTSPACE}} page.&lt;br /&gt;
  }}&lt;br /&gt;
            }}&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#if:{{{inhibit|}}} |&amp;lt;!--(don&#039;t categorize)--&amp;gt;&lt;br /&gt;
          |   &amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
               --&amp;gt;{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}&lt;br /&gt;
                   | [[Category:{{#switch:{{SUBJECTSPACE}}&lt;br /&gt;
                           | Template | Project = Template&lt;br /&gt;
                           | Module   = Module&lt;br /&gt;
                           | User     = User&lt;br /&gt;
                           | #default = MediaWiki&lt;br /&gt;
                       }} documentation pages{{#translation:}}]]&lt;br /&gt;
                   | [[Category:Documentation subpages without corresponding pages{{#translation:}}]]&lt;br /&gt;
                  }}&amp;lt;!--&lt;br /&gt;
           --&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
(completing initial #ifeq: at start of template:)&lt;br /&gt;
--&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
     | &amp;lt;!--(this template has not been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
    }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
| #default=&lt;br /&gt;
  {{#invoke:Template translation|renderTranslatedTemplate|template=Template:Documentation subpage|noshift=1|uselang={{int:lang}}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Use this template on Template Documentation subpage (/doc).&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*{{tl|Documentation}}&lt;br /&gt;
*{{tl|tl}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Documentation_subpage&amp;diff=666</id>
		<title>Template:Documentation subpage</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Documentation_subpage&amp;diff=666"/>
		<updated>2025-07-07T00:18:06Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#switch:&amp;lt;translate&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
| =&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
 --&amp;gt;{{#if:{{IsDocSubpage|override={{{override|doc}}}|false=}}&lt;br /&gt;
     | &amp;lt;!--(this template has been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#ifeq:{{{doc-notice|show}}} |show&lt;br /&gt;
          | {{Mbox&lt;br /&gt;
             | type = notice&lt;br /&gt;
             | style = margin-bottom:1.0em;&lt;br /&gt;
             | image = [[File:OOjs UI icon book-ltr.svg|40px|alt=|class=skin-invert]]&lt;br /&gt;
             | text =&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; This is a [[w:Wikipedia:Template documentation|documentation]] [[&amp;lt;tvar name=2&amp;gt;Special:MyLanguage/Help:Subpages&amp;lt;/tvar&amp;gt;|subpage]] for &amp;lt;tvar name=1&amp;gt;{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&#039;&#039;&#039;&amp;lt;br /&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{text2|}}}{{{text1|}}}&lt;br /&gt;
  |&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; It contains usage information, [[&amp;lt;tvar name=7&amp;gt;Special:MyLanguage/Help:Categories&amp;lt;/tvar&amp;gt;|categories]] and other content that is not part of the original &amp;lt;tvar name=1&amp;gt;{{{text2|{{{text1}}}}}}&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
  |&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt; It contains usage information, [[&amp;lt;tvar name=7&amp;gt;Special:MyLanguage/Help:Categories&amp;lt;/tvar&amp;gt;|categories]] and other content that is not part of the original &amp;lt;tvar name=1&amp;gt;{{SUBJECTSPACE}}&amp;lt;/tvar&amp;gt; page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
  }}&lt;br /&gt;
            }}&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#if:{{{inhibit|}}} |&amp;lt;!--(don&#039;t categorize)--&amp;gt;&lt;br /&gt;
          |   &amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
               --&amp;gt;{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}&lt;br /&gt;
                   | [[Category:{{#switch:{{SUBJECTSPACE}}&lt;br /&gt;
                           | Template | Project = Template&lt;br /&gt;
                           | Module   = Module&lt;br /&gt;
                           | User     = User&lt;br /&gt;
                           | #default = MediaWiki&lt;br /&gt;
                       }} documentation pages{{#translation:}}]]&lt;br /&gt;
                   | [[Category:Documentation subpages without corresponding pages{{#translation:}}]]&lt;br /&gt;
                  }}&amp;lt;!--&lt;br /&gt;
           --&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
(completing initial #ifeq: at start of template:)&lt;br /&gt;
--&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
     | &amp;lt;!--(this template has not been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
    }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
| #default=&lt;br /&gt;
  {{#invoke:Template translation|renderTranslatedTemplate|template=Template:Documentation subpage|noshift=1|uselang={{int:lang}}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage == &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Use this template on Template Documentation subpage (/doc).&lt;br /&gt;
&lt;br /&gt;
== See also == &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*{{tl|Documentation}}&lt;br /&gt;
*{{tl|tl}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Documentation/en&amp;diff=664</id>
		<title>Template:Documentation/en</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Documentation/en&amp;diff=664"/>
		<updated>2025-07-07T00:18:05Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
{{Lua|Module:Documentation}}&lt;br /&gt;
This template automatically displays a documentation box like the one you are seeing now, of which the content is sometimes transcluded from another page.&lt;br /&gt;
It is intended for pages which are [[Special:MyLanguage/Help:Transclusion|transcluded]] in other pages, i.e. templates, whether in the template namespace or not.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Customising display ===&lt;br /&gt;
&lt;br /&gt;
Overrides exist to customise the output in special cases:&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;documentation{{!}}&#039;&#039;&#039;heading&#039;&#039;&#039;=&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt; - change the text of the &amp;quot;documentation&amp;quot; heading. If this is set to blank, the entire heading line (including the first [edit] link) will also disappear.&lt;br /&gt;
&lt;br /&gt;
== Rationale ==&lt;br /&gt;
This template allows any page to use any documentation page, and makes it possible to protect templates while allowing anyone to edit the template&#039;s documentation and categories.&lt;br /&gt;
It also reduces server resources by circumventing a [[w:Wikipedia:Template limits|technical limitation of templates]] (see a [[:en:Special:Diff/69888944|developer&#039;s explanation]]).&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[w:Template:Documentation subpage]]&lt;br /&gt;
* {{tim|Documentation}}&lt;br /&gt;
* [[w:Wikipedia:Template documentation]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Formatting templates{{#translation:}}|Template documentation]]&lt;br /&gt;
[[Category:Template documentation{{#translation:}}| ]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#if:{{{content|}}}|&lt;br /&gt;
[[Category:Template documentation pages{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Documentation&amp;diff=662</id>
		<title>Template:Documentation</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Documentation&amp;diff=662"/>
		<updated>2025-07-07T00:18:05Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
{{Lua|Module:Documentation}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt; This template automatically displays a documentation box like the one you are seeing now, of which the content is sometimes transcluded from another page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; It is intended for pages which are [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Help:Transclusion&amp;lt;/tvar&amp;gt;|transcluded]] in other pages, i.e. templates, whether in the template namespace or not.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Customising display === &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Overrides exist to customise the output in special cases:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;documentation{{!}}&#039;&#039;&#039;heading&#039;&#039;&#039;=&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt; - &amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; change the text of the &amp;quot;documentation&amp;quot; heading.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt; If this is set to blank, the entire heading line (including the first [edit] link) will also disappear.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Rationale == &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt; This template allows any page to use any documentation page, and makes it possible to protect templates while allowing anyone to edit the template&#039;s documentation and categories.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; It also reduces server resources by circumventing a [[w:Wikipedia:Template limits|technical limitation of templates]] (see a [[&amp;lt;tvar name=1&amp;gt;:en:Special:Diff/69888944&amp;lt;/tvar&amp;gt;|developer&#039;s explanation]]).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== See also == &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt; [[w:Template:Documentation subpage]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tim|Documentation}}&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; [[w:Wikipedia:Template documentation]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Formatting templates{{#translation:}}|Template documentation]]&lt;br /&gt;
[[Category:Template documentation{{#translation:}}| ]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#if:{{{content|}}}|&lt;br /&gt;
[[Category:Template documentation pages{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Dir&amp;diff=660</id>
		<title>Template:Dir</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Dir&amp;diff=660"/>
		<updated>2025-07-07T00:18:05Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#ifeq:{{#dir:{{{lang|{{{1|{{int:lang}}}}}}}}}}|rtl|{{{2|{{{rtl|rtl}}}}}}|{{{3|{{{ltr|ltr}}}}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Localized_link&amp;diff=658</id>
		<title>Template:Localized link</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Localized_link&amp;diff=658"/>
		<updated>2025-07-07T00:18:05Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: The whole damn thing this time (I think)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifeq:{{FULLPAGENAME:{{{1}}}}}|{{FULLPAGENAME:{{translatable}}}}&amp;lt;!--self link (including translation pages)--&amp;gt;&lt;br /&gt;
  |&amp;lt;b&amp;gt;&lt;br /&gt;
}}&amp;lt;!----&amp;gt;[[Special:MyLanguage/{{{1}}}|{{#if:{{{2|}}}&lt;br /&gt;
|{{{2}}}&lt;br /&gt;
|{{{2|{{#ifexist:Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page display title/{{PAGELANGUAGE}}&amp;lt;!--if the source page, PAGELANGUAGE returns en--&amp;gt;&lt;br /&gt;
  |{{#ifexpr:{{#if:{{{nsp|}}}|1|0}} and {{NAMESPACENUMBER:{{{1}}}}}!=0&lt;br /&gt;
    |{{#ifeq:{{PAGELANGUAGE}}|en&lt;br /&gt;
      |{{PAGENAME:{{{1}}}}}&lt;br /&gt;
      |&amp;lt;!-- check whether the string is not empty --&amp;gt;&amp;lt;!--&lt;br /&gt;
    --&amp;gt;{{#if:{{PAGENAME:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} }} }}&lt;br /&gt;
         |{{#ifeq:{{#invoke:string|find|{{PAGENAME:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} }} }}|:}}|0&lt;br /&gt;
           |{{PAGENAME:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} }} }}&lt;br /&gt;
           | {{#invoke:string|match|{{PAGENAME:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} }} }}|:(.*)}}&lt;br /&gt;
         }}&lt;br /&gt;
         |&amp;lt;!-- pass parameter to, e.g., &amp;quot;Template:LC zh&amp;quot;; check whether the string is not empty --&amp;gt;&amp;lt;!--&lt;br /&gt;
       --&amp;gt;{{#if:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} | nsp = 0 }}&lt;br /&gt;
           |{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} | nsp = 0 }}&lt;br /&gt;
           |{{{1}}}&lt;br /&gt;
        }}&lt;br /&gt;
      }}&lt;br /&gt;
    }}&lt;br /&gt;
    |{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} }}&lt;br /&gt;
  }}&lt;br /&gt;
  &amp;lt;!--if the translation page does not exist (or called from the source page), output as is--&amp;gt;&lt;br /&gt;
  |{{#if:{{{nsp|}}}&lt;br /&gt;
    |{{#if:{{PAGENAME:{{{1}}}}}&lt;br /&gt;
      |{{PAGENAME:{{{1}}}}}&lt;br /&gt;
      |{{{1}}}&lt;br /&gt;
    }}&lt;br /&gt;
    |{{{1}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&amp;lt;!--#ifexist--&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}&amp;lt;!--{{{2|--&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;!--#if:{{{2|}}}--&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;]]&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifeq:{{FULLPAGENAME:{{{1}}}}}|{{FULLPAGENAME:{{translatable}}}}&amp;lt;!--self link (including translation pages)--&amp;gt;&lt;br /&gt;
  |&amp;lt;/b&amp;gt;&lt;br /&gt;
}}&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;[[:{{{1}}}| ]]&amp;lt;/span&amp;gt;&amp;lt;!-- T63547 --&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
{{tsh|ll|LL}}&lt;br /&gt;
{{High-use|35000}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Purpose == &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; This helper template can be used to link to [[&amp;lt;tvar name=1&amp;gt;Special:LanguageStats&amp;lt;/tvar&amp;gt;|translatable pages]] in the user&#039;s language.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; It uses the special page prefix &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;Special:MyLanguage/&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;, which checks if there is a translated version of a page in the user&#039;s language, and links to it if there is one, and links to a fallback language where available, or the default wiki language version (English in MediaWiki) if there isn&#039;t.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
It should be used in translated pages, so that they link to the right page even if there is no translated page in that language.&lt;br /&gt;
&lt;br /&gt;
== Usage == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{Localized link/doc}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
If the &amp;quot;&amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;nsp&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;quot; parameter is not defined, as link text this displays the full pagename (including the namespace); otherwise — if the &amp;quot;&amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;nsp&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;quot; parameter is defined to any value the link text displays the short pagename (without the namespace).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
When linking to a section within a page, the section is not displayed in the link text.&lt;br /&gt;
&lt;br /&gt;
=== Examples of simple usage === &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{(}}{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; Use&amp;lt;/translate&amp;gt;&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; Becomes&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Communication}}&lt;br /&gt;
{{!}} {{ll|Communication}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Communication|コミュニケーション}}&lt;br /&gt;
{{!}} {{ll|Communication|コミュニケーション}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Project:About}}&lt;br /&gt;
{{!}} {{ll|Project:About}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Project:About#See_also}}&lt;br /&gt;
{{!}} {{ll|Project:About#See_also}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Project:About|nsp{{=}}0}}&lt;br /&gt;
{{!}} {{ll|Project:About|nsp=0}}&lt;br /&gt;
{{!}}{{)}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage in translatable pages == &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
On pages prepared for translation with the &amp;lt;tvar name=1&amp;gt;{{ll|Extension:Translate|nsp=0}}&amp;lt;/tvar&amp;gt; extension, this template may be used in three ways.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; Substitute this template, then embed the wikilink target in a &amp;lt;tvar name=1&amp;gt;{{#tag:syntaxhighlight|{{^(}}tvar name=id{{)^}}...{{^(}}/tvar{{)^}}|lang=html|inline=1}}&amp;lt;/tvar&amp;gt;, separate from the translatable text of the link.&amp;lt;/translate&amp;gt;&lt;br /&gt;
#: &amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; For example:&amp;lt;/translate&amp;gt; {{#tag:syntaxhighlight|Learn more {{{{^(}}tvar name=1{{)^}}ll|Communication{{^(}}/tvar{{)^}}|about communication}}.|lang=html|inline=1}}&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; If link text is the same as the name of the target page, all of the code could also be embedded into &amp;lt;tvar name=1&amp;gt;{{tag|tvar|open}}&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
#: &amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt; For example:&amp;lt;/translate&amp;gt; {{#tag:syntaxhighlight|Learn more about {{^(}}tvar name=1{{)^}}&amp;lt;nowiki&amp;gt;{{ll|Communication}}&amp;lt;/nowiki&amp;gt;{{^(}}/tvar{{)^}}.|lang=html|inline=1}}&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; For standalone links, such as in a list or table, translate only the link text if it differs from the name of the target page.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; This is useful for bulleted lists of links, e.g. in the &amp;quot;See also:&amp;quot; sections.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt; Make sure to include the parameter name when adding translate tags inside template syntax.&amp;lt;/translate&amp;gt;&lt;br /&gt;
#: &amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; For example:&amp;lt;/translate&amp;gt;&lt;br /&gt;
::: {{#tag:syntaxhighlight|* {{((}}ll{{!}}Project:About{{))}}|lang=html|inline=1}}&lt;br /&gt;
::: {{#tag:syntaxhighlight|* {{((}}ll{{!}}Communication{{!}}2={{^(}}translate{{)^}}About communication{{^(}}/translate{{)^}}{{))}}|lang=html|inline=1}}&lt;br /&gt;
&lt;br /&gt;
== Test cases ==&lt;br /&gt;
{{Localized link/testcases}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== See also == &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Template:Localized link/messagedoc]] — &amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt; should be used for message documentation in translatable pages that use this template.&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tl|Translatable template}} - &amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt; alias &amp;lt;tvar name=1&amp;gt;{{tl|TNT}}&amp;lt;/tvar&amp;gt; or &amp;lt;tvar name=2&amp;gt;{{tl|tnt}}&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tl|Translatable template name}} - &amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt; alias &amp;lt;tvar name=1&amp;gt;{{tl|TNTN}}&amp;lt;/tvar&amp;gt; or &amp;lt;tvar name=2&amp;gt;{{tl|tntn}}&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tl|Page language link}} - &amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt; alias &amp;lt;tvar name=1&amp;gt;{{tl|pll}}&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt; - &amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt; add a link from a translatable page to another translatable page in the same language&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Internationalization templates{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Note/styles.css&amp;diff=656</id>
		<title>Template:Note/styles.css</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Note/styles.css&amp;diff=656"/>
		<updated>2025-07-07T00:15:45Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: Please god work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.note {&lt;br /&gt;
	background-position: left 7px top 50%;&lt;br /&gt;
	padding: 0.5em 0.5em 0.5em 40px;&lt;br /&gt;
	margin: 0.5em 0;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
	background-color: #f8f9fa;&lt;br /&gt;
	color: #333;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	border: 1px solid #ddd;&lt;br /&gt;
}&lt;br /&gt;
.note-inline {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.note-info {&lt;br /&gt;
	background-color: #eaf3ff;&lt;br /&gt;
	color: #333;&lt;br /&gt;
	/* [[File:OOjs_UI_icon_information-progressive.svg]] */&lt;br /&gt;
	background-image: url(https://upload.wikimedia.org/wikipedia/commons/e/ec/OOjs_UI_icon_information-progressive.svg);&lt;br /&gt;
	background-size: 25px;&lt;br /&gt;
	border-color: #a3caff;&lt;br /&gt;
	padding-left: 40px;&lt;br /&gt;
	min-height: 25px;&lt;br /&gt;
}&lt;br /&gt;
.note-reminder {&lt;br /&gt;
	background-color: #fff9ea;&lt;br /&gt;
	color: #333;&lt;br /&gt;
	/* [[File:OOjs_UI_icon_lightbulb-yellow.svg]] */&lt;br /&gt;
	background-image: url(https://upload.wikimedia.org/wikipedia/commons/a/a8/OOjs_UI_icon_lightbulb-yellow.svg);&lt;br /&gt;
	background-size: 25px;&lt;br /&gt;
	border-color: #fc3;&lt;br /&gt;
	min-height: 25px;&lt;br /&gt;
}&lt;br /&gt;
.note-warn {&lt;br /&gt;
	background-color: #fff9ea;&lt;br /&gt;
	color: #333;&lt;br /&gt;
	/* [[File:OOjs_UI_icon_alert-warning.svg]] */&lt;br /&gt;
	background-image: url(https://upload.wikimedia.org/wikipedia/commons/3/3b/OOjs_UI_icon_alert-warning.svg);&lt;br /&gt;
	background-size: 25px;&lt;br /&gt;
	border-color: #fc3;&lt;br /&gt;
	min-height: 25px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.note-error {&lt;br /&gt;
	background-color: #fee7e6;&lt;br /&gt;
	color: #333;&lt;br /&gt;
	/* [[File:OOjs_UI_icon_notice-destructive.svg]] */&lt;br /&gt;
	background-image: url(https://upload.wikimedia.org/wikipedia/commons/b/bf/OOjs_UI_icon_notice-destructive.svg);&lt;br /&gt;
	background-size: 25px;&lt;br /&gt;
	border-color: #c33;&lt;br /&gt;
	min-height: 25px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
	html.skin-theme-clientpref-night .note {&lt;br /&gt;
		background-color: transparent;&lt;br /&gt;
	    color: inherit;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (prefers-color-scheme: dark) {&lt;br /&gt;
    /* automatic mode */&lt;br /&gt;
	html.skin-theme-clientpref-os .note {&lt;br /&gt;
		background-color: transparent;&lt;br /&gt;
    	color: inherit;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Note&amp;diff=654</id>
		<title>Template:Note</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Note&amp;diff=654"/>
		<updated>2025-07-07T00:00:45Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported: Template for notes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;{{#if: {{{1|{{{content|{{{text|{{{demo|&amp;lt;noinclude&amp;gt;demo&amp;lt;/noinclude&amp;gt;}}}}}}}}}}}} | &amp;lt;templatestyles src=&amp;quot;Note/styles.css&amp;quot; /&amp;gt;&amp;lt;div role=&amp;quot;note&amp;quot; class=&amp;quot;note note-{{#switch: {{{2|{{{type|}}}}}}&lt;br /&gt;
    |gotcha=error&lt;br /&gt;
    |warning=warn&lt;br /&gt;
    |notice=info&lt;br /&gt;
    |=info&lt;br /&gt;
    |#default={{{2|{{{type|}}}}}}&lt;br /&gt;
    }} {{#ifeq:{{{inline|}}}|1|note-inline}}&amp;quot;&amp;gt;{{{1|{{{content|{{{text}}}}}}}}}&amp;lt;/div&amp;gt;&lt;br /&gt;
  | [[File:OOjs UI icon lightbulb-yellow.svg|18px|alt=&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; Note&amp;lt;/translate&amp;gt;|link=]]&amp;amp;nbsp;&#039;&#039;&#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt; Note:&amp;lt;/translate&amp;gt;&#039;&#039;&#039; }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage == &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Note|text=Foo}}&lt;br /&gt;
{{Note|type=info|text=Foo}}&lt;br /&gt;
{{Note|type=reminder|text=Foo}}&lt;br /&gt;
{{Note|type=reminder|text=Multiple&amp;lt;br&amp;gt;lines&amp;lt;br&amp;gt;of&amp;lt;br&amp;gt;text}}&lt;br /&gt;
{{Note|type=warn|text=Foo}}&lt;br /&gt;
{{Note|type=error|text=Foo}}&lt;br /&gt;
{{Note}} &amp;lt;translate nowrap&amp;gt;&amp;lt;!--T:6--&amp;gt; Loose test&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Text {{Note|inline=1|text=Foo}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|text=Foo}}&lt;br /&gt;
{{Note|type=info|text=Foo}}&lt;br /&gt;
{{Note|type=reminder|text=Foo}}&lt;br /&gt;
{{Note|type=reminder|text=Multiple&amp;lt;br&amp;gt;lines&amp;lt;br&amp;gt;of&amp;lt;br&amp;gt;text}}&lt;br /&gt;
{{Note|type=warn|text=Foo}}&lt;br /&gt;
{{Note|type=error|text=Foo}}&lt;br /&gt;
{{Note}} &amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; Loose test&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Text {{Note|inline=1|text=Foo}}&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
{{Note/doc}}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* {{tl|warn}}, shortcut for this template with &amp;lt;code&amp;gt;type=warning&amp;lt;/code&amp;gt;.&lt;br /&gt;
* {{tl|mbox}}, and in particular the namespace-agnostic {{tl|ombox}}, which by default resembles a typical &amp;quot;info&amp;quot; template.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Templates{{#translation:}}|{{PAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=User:Raccoondad&amp;diff=458</id>
		<title>User:Raccoondad</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=User:Raccoondad&amp;diff=458"/>
		<updated>2024-06-05T01:56:56Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Main system admin for MAP Wiki and other [http://pedohelp.info Pedofur] services.&lt;br /&gt;
&lt;br /&gt;
[[File:Raccoondad-pride.png|400px|frameless|left|Art by Cinnamit]]&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=File:Raccoondad-pride.png&amp;diff=457</id>
		<title>File:Raccoondad-pride.png</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=File:Raccoondad-pride.png&amp;diff=457"/>
		<updated>2024-06-05T01:52:04Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: Art by Cinnamit, for Raccoondad user page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Art by Cinnamit, for Raccoondad user page&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=MAP_Wiki:General_disclaimer&amp;diff=309</id>
		<title>MAP Wiki:General disclaimer</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=MAP_Wiki:General_disclaimer&amp;diff=309"/>
		<updated>2024-05-06T20:02:46Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: Created page with &amp;quot;By uploading your content to MAP Wiki you agree that you withdraw certain copyright protections per our license.  MAP Wiki attempts to give accurate and unbiased information. As such the morality of some of these subjects are kept vague. We hope that you can use your own judgement in judging what is right and wrong.  Please keep in mind our project leader, lead administrator, and many of our contributors have a strong anti contact stance. We as individuals have our own s...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By uploading your content to MAP Wiki you agree that you withdraw certain copyright protections per our license.&lt;br /&gt;
&lt;br /&gt;
MAP Wiki attempts to give accurate and unbiased information. As such the morality of some of these subjects are kept vague. We hope that you can use your own judgement in judging what is right and wrong.&lt;br /&gt;
&lt;br /&gt;
Please keep in mind our project leader, lead administrator, and many of our contributors have a strong anti contact stance.&lt;br /&gt;
We as individuals have our own stances, however we have all compromised to make MAP wiki as an archive of information as unbiased as possible.&lt;br /&gt;
&lt;br /&gt;
MAP wiki wishes to be a place where information can be archived that is useful for any kind of person regardless of contact stance.&lt;br /&gt;
&lt;br /&gt;
MAP Wiki is a service by the Pedofur project, which attempts to give free services to the MAP and abuse survivor community.&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Pedofur&amp;diff=308</id>
		<title>Pedofur</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Pedofur&amp;diff=308"/>
		<updated>2024-05-06T20:00:15Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: Created page with &amp;quot;Pedofur is a service ran by me, Raccoondad, that hosts websites I find to be beneficial to MAP activism, child abuse prevention, and victim support.  Services hosted under pedofur aren&amp;#039;t exactly &amp;#039;ran&amp;#039; by me. Many platforms are designed for specific people/communities in mind and I may not give as much input compared to something like the original pedofur website (which is directly written by me)  I still do moderate these platforms and its best to contact me with adminis...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pedofur is a service ran by me, Raccoondad, that hosts websites I find to be beneficial to MAP activism, child abuse prevention, and victim support.&lt;br /&gt;
&lt;br /&gt;
Services hosted under pedofur aren&#039;t exactly &#039;ran&#039; by me. Many platforms are designed for specific people/communities in mind and I may not give as much input compared to something like the original pedofur website (which is directly written by me)&lt;br /&gt;
&lt;br /&gt;
I still do moderate these platforms and its best to contact me with administration problems.&lt;br /&gt;
&lt;br /&gt;
I am willing to help host free of charge, however I have semi-strict policies:&lt;br /&gt;
* The hosted service needs to have some kind of beneficial service to MAP activism, child abuse prevention, or victim support. Such as:&lt;br /&gt;
** A website that helps digest information about MAPs to non-MAPs for people who wish to come out to family or friends&lt;br /&gt;
** A website that details how domestically abused children and teens can find shelters, transportation, and protection services in their areas&lt;br /&gt;
** A website that allows for child abuse victims to give accounts of their abuse and how they cope with their trauma&lt;br /&gt;
&lt;br /&gt;
* You should have some kind of credibility, I may deny hosting if I cannot trust you.&lt;br /&gt;
&lt;br /&gt;
== Things I won&#039;t host ==&lt;br /&gt;
&lt;br /&gt;
* Anything I find creepy, immoral, offensive, abusive, or illegal. Yes I will define these however I want.&lt;br /&gt;
&lt;br /&gt;
* Anonymous user generated content based services. I don&#039;t like hosting or moderating them. Its too much for me and its out of the scope of pedofur. Abuse is very easy on these services and I would rather have a controlled environment with what is hosted under pedofur.&lt;br /&gt;
&lt;br /&gt;
* Services that are not English-centric...maybe. It really depends on a lot of factors. RU MAP Wiki was accepted since I had a trusted moderator. I simply just cannot moderate a platform or website as effectively when its not in English.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
I may reject a service proposal for a variety of factors. Such as lack of funds, lack of time on my end (I am a single person currently, with some support), discomfort with the proposal, it violating one of my rules, or other reasons.&lt;br /&gt;
&lt;br /&gt;
I expect that if the service is a platform like Mediawiki that you do you part in making sure to only allow trusted users to join and to moderate their actions. I take this very seriously.&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=MAP_Wiki:About&amp;diff=307</id>
		<title>MAP Wiki:About</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=MAP_Wiki:About&amp;diff=307"/>
		<updated>2024-05-06T15:06:11Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: I may work on this more, not sure what to put here but wanted something&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MAP Wiki is a service ran by [[User:Lecter|Lecter]] and [[User:raccoondad|Raccoondad]] that attempts to archive information related to minor attracted people. Social media is known to remove information related to the subject, MAP Wiki attempts to be a safe place for such topics.&lt;br /&gt;
&lt;br /&gt;
To avoid spam and abuse, edits can only be made by trusted contribtors.&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=User:Raccoondad&amp;diff=303</id>
		<title>User:Raccoondad</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=User:Raccoondad&amp;diff=303"/>
		<updated>2024-05-06T04:40:57Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: Created page with &amp;quot;Main system admin for MAP Wiki and other [http://pedohelp.info Pedofur] services&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Main system admin for MAP Wiki and other [http://pedohelp.info Pedofur] services&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Main_Page&amp;diff=302</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Main_Page&amp;diff=302"/>
		<updated>2024-05-06T04:14:01Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: Created page with &amp;quot;== Welcome to MAP Wiki ==  MAP Wiki is a resource for maps, allies, and other interested people. Its main purpose is preserving information about minor attraction, defining map terminology and describing relevant figures and events. Social media have been notorious for deleting and erasing knowledge collected by map activists, so it’s time to put what we learned somewhere more permanent, for it to be accessed by new people in the community. There are only a few pages h...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Welcome to MAP Wiki ==&lt;br /&gt;
&lt;br /&gt;
MAP Wiki is a resource for maps, allies, and other interested people. Its main purpose is preserving information about minor attraction, defining map terminology and describing relevant figures and events.&lt;br /&gt;
Social media have been notorious for deleting and erasing knowledge collected by map activists, so it’s time to put what we learned somewhere more permanent, for it to be accessed by new people in the community. There are only a few pages here now, but we welcome new contributors.&lt;br /&gt;
This Wiki is officially neutral on inner political disagreements of the map community and does not take sides in contact discourse and similar matters.&lt;br /&gt;
&lt;br /&gt;
{{Clickable button 2|All Pages|url=https://map-wiki.com/index.php/Special:AllPages}} {{Clickable button 2|Major categories|url=https://map-wiki.com/index.php/Category:Major_categories}} {{Clickable button 2|All files|url=https://map-wiki.com/index.php/Special:ListFiles}}&lt;br /&gt;
&lt;br /&gt;
If you are a MAP in need of help and support, [https://www.mapresources.info/ follow this link]&lt;br /&gt;
&lt;br /&gt;
This wiki is an open-source service that operates under the Creative Commons license. This means that the content created and published on the wiki is available to anyone to use, distribute, and modify as long as they adhere to the license&#039;s terms and conditions.&lt;br /&gt;
&lt;br /&gt;
[[File:CL sun symbol.png|500px]]&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=CSA_obsessive-compulsive_disorder&amp;diff=49</id>
		<title>CSA obsessive-compulsive disorder</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=CSA_obsessive-compulsive_disorder&amp;diff=49"/>
		<updated>2024-04-29T21:59:08Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Child sexual abuse obsessive-compulsive disorder&#039;&#039;&#039;, more commonly referred to as &amp;quot;pedophilia obsessive-compulsive disorder&amp;quot; or &amp;quot;POCD&amp;quot;, is a type of OCD, centered around intrusive thoughts and compulsions about sexual or mostly sexual harm to children.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= OCD Overview =&lt;br /&gt;
OCD is a neurological disorder, associated with genetic and environmental factors. A mutation in a human serotonin transporter gene (hSERT) has been pointed out as one of its possible causes&amp;lt;ref&amp;gt;[https://beyondocd.org/ocd-facts/what-causes-ocd What Causes OCD?] BeyondOCD.org.&amp;lt;/ref&amp;gt;, that’s why most of the medication, frequently prescribed for this disorder, belongs to a class of antidepressants called selective serotonin reuptake inhibitors (SSRIs). Other methods of treatment for OCD include cognitive-behavioral therapy, specifically its subtype, exposure and response prevention (ERP) therapy&amp;lt;ref&amp;gt;[https://www.verywellmind.com/ocd-treatments-2510626 Treatments for Obsessive-Compulsive Disorder], Verywellmind.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
OCD most commonly manifests as a combination of obsessive intrusive thoughts (unwanted ideas or images, appearing in one&#039;s mind) and compulsions (actions one feels an urge to perform in order to soothe the intrusive thoughts).&lt;br /&gt;
OCD is sometimes classified by the nature and topic of obsessions and compulsions:&lt;br /&gt;
cleaning (contamination obsessions and cleaning compulsions);&lt;br /&gt;
doubt (compulsive checking and self reassurance);&lt;br /&gt;
symmetry (symmetry obsessions and repeating, ordering, and counting compulsions);&lt;br /&gt;
forbidden or taboo thoughts (aggressive, sexual, and religious obsessions)&amp;lt;ref&amp;gt;[https://icd.who.int/browse11/l-m/en%23/http://id.who.int/icd/entity/1582741816 6B20 Obsessive-compulsive disorder], ICD-11.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
It is important to know that OCD can present differently throughout one&#039;s life, and it is possible to have obsessions and compulsions from several categories, subsequently or at the same time. OCD subtypes are not independent diagnoses.&lt;br /&gt;
&lt;br /&gt;
= Child Sexual Abuse Obsessive-Compulsive Disorder Overview =&lt;br /&gt;
CSA OCD/POCD belongs to the fourth category of OCD.&lt;br /&gt;
&lt;br /&gt;
=== Typical Obsessions ===&lt;br /&gt;
&lt;br /&gt;
* thoughts about sexual abuse of a child;&lt;br /&gt;
* thoughts about a naked child;&lt;br /&gt;
* thoughts of having sexually abused or molested a child in the past and fear that one may be in denial or has forgotten, blacked out and erased the memory;&lt;br /&gt;
* unwanted arousal sensations even with mere thoughts of a child&#039;s company.&lt;br /&gt;
&lt;br /&gt;
=== Typical Compulsions ===&lt;br /&gt;
&lt;br /&gt;
* avoidance of children;&lt;br /&gt;
* avoidance of activities that may include interactions with children;&lt;br /&gt;
* avoidance of reading articles or watching shows that mention child sexual abuse or minor attraction;&lt;br /&gt;
* doubt and suspicion towards one&#039;s own behavior around children;&lt;br /&gt;
* constantly asking for advice and reassurance from trusted loved ones regarding self-doubt and guilt&amp;lt;ref&amp;gt;[https://archive.ph/o/Fa8Va/https://www.gatewayocd.com/pedophilia-ocd-symptoms-and-treatment/ Pedophilia OCD – Symptoms and Treatment], The Gateway Institute.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Some people suffer additional intrusive thoughts about bringing nonsexual harm to children. This type of OCD is treated by the same methods as any other type of OCD.&lt;br /&gt;
It is also important to note that OCD-induced fears do not necessarily reflect what one considers to be harmful to children. For instance, a person can be afraid of experiencing arousal in presence of a child without actually believing this arousal would be noticeable/harmful. OCD is irrational at its core, and the mind fixates on worst case scenarios.&lt;br /&gt;
&lt;br /&gt;
= Alternative Terminology =&lt;br /&gt;
Since typical intrusive thoughts, characterizing this disorder, do not concern pedophilia as a type of attraction, but CSA, renaming from &amp;quot;pedophilia obsessive-compulsive disorder&amp;quot; to &amp;quot;child sexual abuse obsessive-compulsive disorder&amp;quot; makes most sense. However, it is possible that some people suffer from genuine intrusive thoughts about pedophilia as an identity, without any thoughts about CSA (even though such cases are not yet recorded). It is possible to reserve the term &amp;quot;POCD&amp;quot; for this situation, bringing its meaning closer to homosexual OCD and other sexual orientation OCD types&amp;lt;ref&amp;gt;[https://www.sheppardpratt.org/news-views/story/sexual-orientation-ocd-a-k-a-so-ocd-or-hocd/ Sexual Orientation OCD (a.k.a. SO-OCD or HOCD)], Sheppard Pratt.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= CSA OCD And The Map Community = &lt;br /&gt;
=== Mapmisia Of People With CSA OCD ===&lt;br /&gt;
As the more common name of this disorder, &amp;quot;POCD&amp;quot;, might hint, many people experiencing it equate their thoughts of child abuse with pedophilia. &amp;quot;You are not a pedophile&amp;quot; is a common affirmation&amp;lt;ref&amp;gt;[https://www.tumblr.com/pocdvivor/622001988501159936/you-are-not-a-pedophile-you-will-not-become-a?source=share pocdsurvivor], Tumblr.&amp;lt;/ref&amp;gt;, and articles, written by and for people with this OCD type often claim that maps groom and sexually abuse children&amp;lt;ref&amp;gt;[https://www.ocdtypes.com/pocd-ocd.php Pedophilic OCD], OCD Types, New England OCD Institute.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Multiple people with CSA OCD choose to relieve their stress by verbal violence towards maps and accuse maps of worsening their symptoms.&lt;br /&gt;
&lt;br /&gt;
=== Ableism Of Maps ===&lt;br /&gt;
After negative interactions, some maps adopt ableist attitudes towards people with CSA OCD:&lt;br /&gt;
&lt;br /&gt;
* Mistrust and suspicion towards everyone with this disorder. Some maps automatically consider any person with CAOCD to be a mapmisiac.&lt;br /&gt;
* Denial of CSA OCD&#039;s existence, equating it to internalized mapmisia. Poor understanding of OCD leads maps to believe this condition is just sexual fantasies about children.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:300px; border:5px;&amp;quot;&lt;br /&gt;
|[[Image:POCD.png|100px|]]&lt;br /&gt;
|}&lt;br /&gt;
An anti-POCD graphic from Newgon&lt;br /&gt;
&lt;br /&gt;
=== Map/CSA OCD Unity ===&lt;br /&gt;
Many on both sides also choose to become allies. Both are extremely stigmatized groups and both may need access to the same mental health resources, because actual maps with internalized mapmisia might need to hear that they are not doomed to rape, and, according to anecdotal evidence, people with CSAOCD experience milder symptoms in an environment where attraction to children is not seen as scary and scandalous.&lt;br /&gt;
In addition to that, contrary to popular belief, a map can experience CSA OCD. Maps who already have OCD are an underreported risk group for this disorder. OCD intrusive thoughts and compulsions can include both children outside of a map&#039;s age of attraction and inside.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=File:POCD.png&amp;diff=48</id>
		<title>File:POCD.png</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=File:POCD.png&amp;diff=48"/>
		<updated>2024-04-29T21:41:17Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=CSA_obsessive-compulsive_disorder&amp;diff=47</id>
		<title>CSA obsessive-compulsive disorder</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=CSA_obsessive-compulsive_disorder&amp;diff=47"/>
		<updated>2024-04-29T21:33:07Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Child sexual abuse obsessive-compulsive disorder&amp;#039;&amp;#039;&amp;#039;, more commonly referred to as &amp;quot;pedophilia obsessive-compulsive disorder&amp;quot; or &amp;quot;POCD&amp;quot;, is a type of OCD, centered around intrusive thoughts and compulsions about sexual or mostly sexual harm to children.  __TOC__  = OCD Overview = OCD is a neurological disorder, associated with genetic and environmental factors. A mutation in a human serotonin transporter gene (hSERT) has been pointed out as one of its possible causes&amp;lt;r...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Child sexual abuse obsessive-compulsive disorder&#039;&#039;&#039;, more commonly referred to as &amp;quot;pedophilia obsessive-compulsive disorder&amp;quot; or &amp;quot;POCD&amp;quot;, is a type of OCD, centered around intrusive thoughts and compulsions about sexual or mostly sexual harm to children.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= OCD Overview =&lt;br /&gt;
OCD is a neurological disorder, associated with genetic and environmental factors. A mutation in a human serotonin transporter gene (hSERT) has been pointed out as one of its possible causes&amp;lt;ref&amp;gt;[https://beyondocd.org/ocd-facts/what-causes-ocd What Causes OCD?] BeyondOCD.org.&amp;lt;/ref&amp;gt;, that’s why most of the medication, frequently prescribed for this disorder, belongs to a class of antidepressants called selective serotonin reuptake inhibitors (SSRIs). Other methods of treatment for OCD include cognitive-behavioral therapy, specifically its subtype, exposure and response prevention (ERP) therapy&amp;lt;ref&amp;gt;[https://www.verywellmind.com/ocd-treatments-2510626 Treatments for Obsessive-Compulsive Disorder], Verywellmind.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
OCD most commonly manifests as a combination of obsessive intrusive thoughts (unwanted ideas or images, appearing in one&#039;s mind) and compulsions (actions one feels an urge to perform in order to soothe the intrusive thoughts).&lt;br /&gt;
OCD is sometimes classified by the nature and topic of obsessions and compulsions:&lt;br /&gt;
cleaning (contamination obsessions and cleaning compulsions);&lt;br /&gt;
doubt (compulsive checking and self reassurance);&lt;br /&gt;
symmetry (symmetry obsessions and repeating, ordering, and counting compulsions);&lt;br /&gt;
forbidden or taboo thoughts (aggressive, sexual, and religious obsessions)&amp;lt;ref&amp;gt;[https://icd.who.int/browse11/l-m/en%23/http://id.who.int/icd/entity/1582741816 6B20 Obsessive-compulsive disorder], ICD-11.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
It is important to know that OCD can present differently throughout one&#039;s life, and it is possible to have obsessions and compulsions from several categories, subsequently or at the same time. OCD subtypes are not independent diagnoses.&lt;br /&gt;
&lt;br /&gt;
= Child Sexual Abuse Obsessive-Compulsive Disorder Overview =&lt;br /&gt;
CSA OCD/POCD belongs to the fourth category of OCD.&lt;br /&gt;
&lt;br /&gt;
=== Typical Obsessions ===&lt;br /&gt;
&lt;br /&gt;
* thoughts about sexual abuse of a child;&lt;br /&gt;
* thoughts about a naked child;&lt;br /&gt;
* thoughts of having sexually abused or molested a child in the past and fear that one may be in denial or has forgotten, blacked out and erased the memory;&lt;br /&gt;
* unwanted arousal sensations even with mere thoughts of a child&#039;s company.&lt;br /&gt;
&lt;br /&gt;
=== Typical Compulsions ===&lt;br /&gt;
&lt;br /&gt;
* avoidance of children;&lt;br /&gt;
* avoidance of activities that may include interactions with children;&lt;br /&gt;
* avoidance of reading articles or watching shows that mention child sexual abuse or minor attraction;&lt;br /&gt;
* doubt and suspicion towards one&#039;s own behavior around children;&lt;br /&gt;
* constantly asking for advice and reassurance from trusted loved ones regarding self-doubt and guilt&amp;lt;ref&amp;gt;[https://archive.ph/o/Fa8Va/https://www.gatewayocd.com/pedophilia-ocd-symptoms-and-treatment/ Pedophilia OCD – Symptoms and Treatment], The Gateway Institute.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Some people suffer additional intrusive thoughts about bringing nonsexual harm to children. This type of OCD is treated by the same methods as any other type of OCD.&lt;br /&gt;
It is also important to note that OCD-induced fears do not necessarily reflect what one considers to be harmful to children. For instance, a person can be afraid of experiencing arousal in presence of a child without actually believing this arousal would be noticeable/harmful. OCD is irrational at its core, and the mind fixates on worst case scenarios.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Psychopathia_sexualis_by_Dr._Friedrich_S._Krauss_(German_text)&amp;diff=46</id>
		<title>Psychopathia sexualis by Dr. Friedrich S. Krauss (German text)</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Psychopathia_sexualis_by_Dr._Friedrich_S._Krauss_(German_text)&amp;diff=46"/>
		<updated>2024-04-29T21:17:11Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: Created page with &amp;quot;This is the original German text of Psychopathia sexualis by Dr. Friedrich S. Krauss, which contains the first known mention of the word &amp;quot;paraphilia&amp;quot; that he coined. The original article was published in Wiener Klinische Rundschau, Volume 17, on August 2, 1903 and can be accessed through multiple archives of varying quality&amp;lt;ref&amp;gt;[https://babel.hathitrust.org/cgi/pt?id=mdp.39015012313329&amp;amp;view=1up&amp;amp;seq=716 Psychopathia sexualis by Dr. Friedrich S. Krauss] via HathiTrust.&amp;lt;/re...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the original German text of Psychopathia sexualis by Dr. Friedrich S. Krauss, which contains the first known mention of the word &amp;quot;paraphilia&amp;quot; that he coined. The original article was published in Wiener Klinische Rundschau, Volume 17, on August 2, 1903 and can be accessed through multiple archives of varying quality&amp;lt;ref&amp;gt;[https://babel.hathitrust.org/cgi/pt?id=mdp.39015012313329&amp;amp;view=1up&amp;amp;seq=716 Psychopathia sexualis by Dr. Friedrich S. Krauss] via HathiTrust.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://archive.org/details/wiener-klinische-rundschau17/page/1660/mode/2up Psychopathia sexualis by Dr. Friedrich S. Krauss] via Archive.org.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
For an English translation, see [[Psychopathia sexualis by Dr. Friedrich S. Krauss (English text)]].&lt;br /&gt;
&lt;br /&gt;
= Psychopathia sexualis. =&lt;br /&gt;
&lt;br /&gt;
=== Ein Bericht von Dr. Friedrich S. Krauss. ===&lt;br /&gt;
&lt;br /&gt;
Wir Menschen unterscheiden uns von den anderen Geschöpfen gar sehr zu unserem Nachteile durch einen Hang zum Mystizismus. Unsere Wissenschaft steckt noch arg im Glauben, oder vielmehr, wo uns der innere Zusammenhang zwischen Ursache und Wirkung nicht klar wird, schaffen wir gern einen Glauben, geben ihn für Erkenntnis und Wissenschaft aus und identifizieren uns mitunter damit so stark, daß wir jeden, der unseren Glauben nicht für bare Münze annimmt, als einen Beleidiger unserer Größe, als einen Lästerer und unwissenschaftlichen Menschen betrachten.&lt;br /&gt;
Die Anhänger v. Krafft-Ebings und des verworrenen Cesare Lombroso dürften leicht geneigt sein, z. B. einen Dr. Iwan Bloch zu verketzern. Das ist wieder so einer, der an keine Autoritäten glaubt und bei dem der Schwur kein Beweismittel ist. Er begnügt sich bloß damit, die Erscheinungswelt nach allen Richtungen hin zu durchforschen, um ein möglichst großes Tatsachenmaterial aufzusammeln und es so zu ordnen, daß die Dinge einander von selber erklären. Er zählt zu jenen, die überzeugt sind, daß wir nicht mehr wissen können, als uns die Natur selber lehrt, und daß es schon etwas Großes ist, die Natur zu begreifen. Nach dieser Methode es ist die der Ethnologen und Folkloristen mußte er zu einem Umstürzler werden. Er räumt mit Köhlerglauben auf und schafft keinen neuen dazu. Auf diese Weise brachte er ein Werk(1) zustande, das der Ethnologie gewaltigen Vorschub leistet und wohl geeignet ist, auch den Aerzten ungemein viel zu nützen, indem es ihre Perspektive für die Betrachtung allgemein menschlicher Triebe und Neigungen aufs höchste erweitert. Bloch ist einer von jenen Aerzten, die in einem Atem mit einem Max Bartels und Max Höfler zu nennen sind. Sie fassen nicht bloß den kranken oder erkrankenden Menschen, sondern den Menschen als Menschen ins Auge und sie wissen, daß das Licht das Wesentliche ist, nicht der Schatten. Ist einmal die Scheu vor dem Neuerer überwunden, so wird Dr. Blochs Werk in der Bibliothek eines jeden Arztes sowie eines jeden Folkloristen zu finden sein; denn der Gegenstand, den es behandelt, ist der wichtigste im Menschendasein, der Geschlechtstrieb nämlich.&lt;br /&gt;
Die Bezeichnung “Psychopathia sexualis” enthält schon ein fertiges Urteil in sich, und darum taugt sie nicht gut für wissenschaftliche Arbeiten. Richtig wäre dagegen eine Wendung wie: Der die Zeugung ausschließende geschlechtliche Verkehr. v. Krafft-Ebing nannte bald einen, der nicht aufs Kindermachen ausging und seine Wollust auf dem nicht alltäglichen Begattungswege befriedigte, pervers, so wie Lombroso für jeden, der nicht nach dem italienischen Strafgesetze tadellos sein Leben abwickelt, den entehrenden Namen eines Verbrechers bereithält. Ins Triviale übersetzt, ist dies der Standpunkt einer gewissen Wiener “Schriftstellerin”, einer glücklicherweise ziemlich unbekannten Schwätzerin. Stolpert mal ein Kolporteur mit seiner Bürde in ein verrufenes Nachtcafé hinein, so sind die Schriftsteller, deren Bücher er feilbietet, unmoralische Gesellen, die sie, die Frau X. Y. Z., aus der Literatur hinausbugsieren möchte. Liest man das Gewäsche dieses oder gleichgearteter Weiber, so begreift man es, daß so viele Männer die Frau nur als ein Sexualwesen betrachten mögen, und endlich versteht man auch die bei manchen feinfühligen Männern krankhaft gesteigerte Abneigung gegen jeden Verkehr mit dem Weibe. Dieses gewiß nicht nebensächliche Moment übersah Dr. Bloch in seiner Aetiologie.&lt;br /&gt;
Das Werk gliedert sich in zwei einander stilistisch nicht ganz gleiche Teile, von denen der zweite sorgfältiger als der erste ausgefeilt ist. So wenig bei rein wissenschaftlichen Werken das Literarische in die Wagschale fällt, so muß ich doch hier darauf hinweisen; denn Bloch ist auch ein Meister der Darstellungskunst gleich einem Hyrt und die Lektüre seiner Schriften, z. B. des Werkes über den Ursprung der Syphilis (2), gewährt einem auch eine ästhetische Befriedigung.&lt;br /&gt;
In der Aetiologie wuchs der riesige Stoff dem Autor förmlich über den Kopf. Vermochte er ihn auch wissenschaftlich aufzuarbeiten, formell bezwang er ihn nicht ganz befriedigend. In Wirklichkeit bildet jeder Band für sich nur je ein Kapitel, das fast willkürlich durch Sternchen in Unterabteilungen getrennt ist, deren Anordnung vielleicht nicht immer einwandfrei ist. Doch darauf fällt bei einem mit so trefflichen Registern versehenen Werke gewiß kein Schwergewicht. Die schöne Einleitung Professor Eulenburgs ist für den Protektor ebenso ehrenvoll als für den Schützling, das Buch, dem sie als Empfehlung dienen soll; denn sie enthält das Einbekenntnis eines durch seine soziale Stellung ausgezeichneten Forschers, “daß (Dr. Bloch) nicht von dem einseitigen oder voreingenommenen Standpunkte des Mediziners und Medizinhistorikers, sondern mit dem freieren und weiteren Blicke des Anthropologen und Ethnologen und auch mit dem ganzen dazugehörigen gelehrten Rüstzeug ausgestattet an die Sache herantrat”.&lt;br /&gt;
Der erste Band behandelt das graue Altertum und die Ubiquität der sexuellen Perversionen und deren Abhängigkeit. von Kultur, Nervosität und Degeneration, gibt eine Kritik der Anschauungen über die Aetiologie der sexuellen Anomalien (Heredität und Erworbensein), eine Kritik der Lehre von den angeborenen sexuellen Perversionen. Der Hauptteil des Bandes ist der Aetiologie der Geschlechtsverirrungen bei gesunden Menschen und der speziellen Aetiologie der Homosexualität gewidmet, der zweite Band der speziellen Aetiologie der sadistischen und masochistischen Phänomene und der speziellen Aetiologie der komplizierten sexuellen Perversitäten und Perversionen.&lt;br /&gt;
Bei einem Werke, worin es sich um die Mannigfaltigkeit des stärksten Naturtriebes in der Spiegelung des Völkergedankens handelt, kann man bei der Fülle der dargebotenen Mitteilungen unmöglich auf Einzelheiten des Tatsachenmaterials eingehen; denn jeder Leser dieser Fachzeitschrift ist wohl in der Lage, sowohl aus der ihm bekannten Literatur, als auch aus seinen Erfahrungen heraus den Stoff zu vermehren und im besonderen zu ergänzen. Es ist förderlicher, die Gesichtspunkte der Betrachtung und die Forschungsergebnisse des Verf. hier in nuce zu wiederholen, um zur Weiterarbeit anzuregen. Erlangt Dr. Blochs Arbeit die ihr nach meinem Dafürhalten gebührende Würdigung in ärztlichen Kreisen sowie unter Volksforschern, so leitet sie gewiß eine neue Epoche auf dem behandelten Sondergebiete ein.&lt;br /&gt;
Von prinzipieller Wichtigkeit ist Blochs Bemerkung: “Im großen und ganzen besteht der Satz zu Recht, daß der Geschlechtstrieb als rein physische Funktion weder ein Vergleiehungsobjekt, noch ein Unterscheidungsmerkmal zwischen primitiven und zivilisierten Menschen bilden kann.” Das ist insofern richtig, als dem Ethnologen nirgends in der Welt wirklich primitive Menschen in gesellschaftlichen Gruppen begegnen. Alle Menschentribus der Oekumene sind bereits nach der einen Richtung hin zivilisiert und wir müssen gegebenenfalls die Vergleiehungsobjekte in der nichtmenschlichen Tierwelt suchen. Das Wort “Kultur” ist daher in der nachfolgenden Ausführung Blochs störend und der Gedanke wäre anders klarer und bestimmter auszudrücken: “Das Wesen des Geschlechtstriebes und seiner Anomalien ist eben unabhängig von aller Kultur und weist bei primitiven und zivilisierten Völkern dieselben Züge auf; es ist unabhängig von den mit der Kultur verknüpften körperlichen und geistigen Schädigungen, von der Degeneration im anthropologischen und pathologischen Sinne. Kultur und Degeneration kommen. nur als begünstigende, frequenzvermehrende Einflüsse in Betracht.” Unanfechtbar ist die Feststellung Blochs: “Daneben gibt es eine große Zahl von äußeren Faktoren, welche mit der Kultur, der Degeneration, der degenerativen Vererbung nichts zu tun haben, deren Einflüsse aber für die Entstehung sexueller Anomalien bei primitiven und hochstehenden Völkern von größter Bedeutung sind.”&lt;br /&gt;
Dr. Bloch unterscheidet im ganzen zwei Gruppen sexueller Perversionen, die angeborenen, bezw. die seit frühester Kindheit bestehenden, und die im späteren Leben erworbenen. Letztere zerfallen wiederum in diejenigen geschlechtlichen Verirrungen, die durch Krankheiten bedingt sind, und jene, die bei Gesunden vorkommen. Bloch stellt in seiner Schrift nur die ätiologischen Verhältnisse der letztgenannten Gruppe dar, d. h. die Ursachen der Entwicklung sexueller Perversionen bei sonst gesunden Menschen. An dem Ausdrucke “sexuelle Perversion” setze ich das Gleiche aus wie an “Psychopathia sexualis”. Auch hier verbirgt das Wort von vornherein eine Verurteilung, die zumindest in wissenschaftlicher Diskussion nicht vorangestellt werden soll, um das Urteil nicht zu beeinflussen. Ich möchte als Ersatz für beide Termini einen anderen vorschlagen, u. zw, wieder einen griechischen, Paraphilie (παράφιλία), für den ich zwar keinen Beleg aus dem alten griechischen Sprachgebrauche kenne, der aber analog dem Worte παράνοια (Unverstand, Torheit, Wahnsinn) gebildet ist und schlicht eine von der gewöhnlichen Liebe abweichende Form andeutet, die dem Wesen der wahren Liebe nicht entspricht, deren Zweck die Befruchtung des Weibes am Ende sein muß. Das Beiwort lautete darnach paraphiletisch (παραφιλητος). Ich will mich im folgenden dieser Neubildungen bedienen, die auch den Vorzug haben, daß sie uns jedesmal ein Wort ersparen.&lt;br /&gt;
In der großen Mehrzahl der Fälle, sagt Bloch, ergibt die ärztliche Untersuchung keinerlei Indizien für das Vorhandensein einer krankhaften Grundlage der geschlechtlichen Abnormität. Einzelne geringfügige Symptome oder gar bloße “Nervosität”, die ja heute so überaus in allen Schichten des Volkes verbreitet ist, genügen gewiß nicht, um paraphiletische Akte oder Zustände als “krankhaft” hinzustellen. Es besteht vielmehr kein Zweifel, daß alle Paraphilien auch bei geistig und körperlich gesunden. Menschen auftreten können, die in jeder Beziehung als “zurechnungsfähig” betrachtet werden müssen.&lt;br /&gt;
Es steht damit wie mit der Ekstase im Verhältnisse zur klaren Vernunft, worüber uns Thomas Achelis auch vom Standpunkte der Ethnologie dankenswerteste Aufklärungen gewährt (3). Auch die Paraphilic zeigt sich als eine besondere Art von Ekstase in geschlechtlicher Beziehung, und der Zusammenhang beider Erscheinungen, die zwar von verschiedenen Geistesrichtungen ausgehen, ist klar erweislich, wofür sich Andeutungen auch bei Bloch finden.&lt;br /&gt;
Nach seiner Auffassung liegt die Erklärung für das häufigere Vorkommen der Homosexualität und anderer Paraphilien der Vita sexualis in südlichen Gegenden einzig und allein in dem Umstande, daß in diesen Regionen das frühere Auftreten und die größere Intensität der Libido häufiger das Bedürfnis nach Reizsteigerungen in deren Befriedigung zur Folge haben muß. Als Ethnolog kann ich ihm hierin nicht unbedingt beipflichten. Weil sich in südlichen Ländern unter milderen Klimaten die Paraphilien mehr in der Oeffentlichkeit abspielen und augenfälliger sind, erwecken sie den Anschein häufigeren Vorkommens, während dem Nordländer erstens die Gelegenheiten zur Stillung seiner paraphiletischen Wünsche nicht so günstig sind, wobei noch in Rechnung zu ziehen ist, daß die stark bekleideten Nordländer an ihrem Gewande auch ein nicht zu unterschätzendes Schutzmittel gegen die Unternehmungen der Paraphiletiker besitzen. Die sinnliche Begier ist bei allen Menschengruppen gleichmäßig vorhanden, nur machen die einen aus der Not eine Tugend und die Tugend wird zur Gewohnheit, zur Sitte und endlich zum Rechtsbrauch, doch nicht überall. Das lehrt uns das Volksleben der Burjäten. Diese Leutchen haben nur nicht das unendliche Glück gehabt, in ihrer Mitte die höchste Blüte der Kultur, d. h. gelehrttuende Skribenten gedeihen zu sehen, sonst wären auf sie dieselben Worte anwendbar, die Bloch für die Inder hat, wie folgt: “Aus dem näheren Studium des indischen Liebeslebens ergibt sich mit Evidenz, daß von den Indern das Raffinement und die Unzucht im Geschlechtsverkehre planmäßig ausgebildet und als ein religiöses Gebot bezeichnet wurden, ohne daß von irgendwelchen angeborenen oder krankhaften Zuständen, sogenannter ‘Psychopathia sexualis’ im Sinne Krafft-Ebings, die Rede sein kann. Zahlreiche, in ihrer Art einzig dastehende Lehrbücher der Liebeskunst lehren mit der Begründung der Notwendigkeit alle Arten der geschlechtlichen Verirrungen, Sadismus in Form von Kratzen, Beißen und Flagellieren (inklusive Morsus genitalium!), Anwendung von Stimulantien zur Vergrößerung des Penis, zur Erweiterung oder Verengerung der Vulva” u. s. w.&lt;br /&gt;
Eulenburg hat die von Lombroso und Ferrero aufgestellte Theorie von der geringeren Sensibilität des Weibes gründlich widerlegt. Wenn man R. Günther und Ed. Carpenter (dessen Gewäsch wir nun auch deutsch zu genießen bekamen) anhört, wäre das Weib sogar nahezu geschlechtlich indifferent. Bloch meint dagegen, es wäre “doch nicht zu leugnen, daß im allgemeinen der Mann ein mächtigeres sexuales Triebleben besitzt als das Weib. Das sinnliche Verlangen äußert sich früher und kräftiger beim Manne, während das unberührte mannbare Weib viel leichter dem sich regenden dunklen Drange nach geschlechtlicher Vereinigung mit dem Manne Widerstand leisten kann.” Nein, sie kann es nicht! Was sie in unserer Kulturgesellschaft im Zaume hält, ist lediglich die Angst vor den Folgen einer Hingabe an den Mann. Die Folklore lehrt uns ja unwiderleglich, daß das Weib den Mann verführt. Wenn ich irgend etwas mit meinem Buche “Streifzüge im Bereiche der Frauenschönheit” (Leipzig 1903) erwiesen habe, so ist es, wie ich glaube, die größere Schlauheit und Uebermächtigkeit des Weibes über den Mann in geschlechtlichen Dingen. O. Effertz’ Auslassung über Venerie und Erotik, die Bloch zu seinen Gunsten zitiert, hält einer Prüfung nicht Stich, weil Wortspielereien folkloristischen Tatsachen gegenüber ohne Beweiskraft sind. Zehn Seiten später sieht dies Bloch in einer Anmerkung selber richtig ein: “Man verkenne auch nicht, daß häufig nur eine scheinbare sexuelle Anästhesie vorhanden ist, vielmehr die dem Weibe eigentümliche Zurückhaltung im Geschlechtsverkehre als solche gedeutet wird.” Gerade diese “Zurückhaltung” ist dem Weibe nicht eigentümlich, sondern nur die Wirkung eines auf das Weib ausgeübten gesellschaftlichen Zwanges innerhalb unseres Kulturkreises, und selbst da darf man nicht ohneweiters verallgemeinern.&lt;br /&gt;
Einen grundlegenden Gedanken spricht Bloch (auf Seite 69 f.) aus, wo er auf den Kulturmenschen zu reden kommt: “Eine reichere soziale Gliederung, ein komplizierteres Geistesleben, eine bestimmtere Gestaltung ethischer Auffassungen reflektieren stets auch auf die Sexualphantasie, können diese in einem bestimmten Sinne verändern und auf Abwege führen. Es gibt keine physische Aeußerung des Sexualtriebes, die nicht unter Umständen allein einer sehr lebhaften oder irregeleiteten Phantasie entsprungen sein könnte.” Das ist wahr, doch nicht allein auf die Kulturmenschen anwendbar. Wir haben noch einige andere Sorgen und Aufgaben im Leben, als bloß den Geschlechtstrieb zu befriedigen, während sich die Phantasie kulturarmer Menschen mehr auf das Punctum puncti konzentrieren kann. Wäre der Geschlechtsgenuß das höchste Menschenglück, wir wären dank unserer Kultur stark im Nachteile. In Bezug auf Phantasie sind wir es auch tatsächlich, und darum ist unser Maß an Lebensglück geringer, aber an Unglück größer.&lt;br /&gt;
Nur in einer Hinsicht sind wir Kulturmenschen mit unserer Phantasie auf gleicher Stufe mit den kulturärmsten Menschengruppen verblieben, dort nämlich, wo Sexualleben mit Religion verknüpft ist. “So allein können wir uns,” sagt Bloch, “die Entwicklung einer riesenhaften sexuell kasuistischen Literatur in der Theologie und ihrem Zweige, der Pastoralmedizin, erklären. Das Verständnis für diese Tatsachen ermöglichen nicht die erbitterten, von konfessionellem Vorurteile diktierten Tiraden der Kulturhistoriker, sondern nur die Darlegungen des Arztes und Anthropologen, der diese Dinge im großen Zusammenhange betrachtet und die Beziehungen zwischen Religion und Geschlechtsleben als allgemein menschliche erkannt hat und nicht als künstliche Produkte irgendeiner bestimmten Geistesrichtung auffaßt.”&lt;br /&gt;
Im zweiten Teile verficht Bloch im Anschlusse an die Ethnologie die Meinung, daß die meisten geschlechtlichen Verirrungen gar nicht in den Bereich des Arztes fallen; den Kern der algolagnistischen Erscheinungen bilde die Freude am fremden oder eigenen Schmerze, d. h. die gegen andere oder gegen sich selbst gerichtete Grausamkeit. Er findet es auffällig, daß schwache, zarte Personen, besonders Frauen, häufig grausame Neigungen bekunden, die man von ihnen nicht erwartet hätte. Seine Erklärung, die Grausamkeit entspränge vorübergehend der Idee einer Superiorität, damit die den schwachen Individuen eigene Furcht dadurch überwunden werde, ist hübsch, doch nicht ausreichend. Er vergaß dabei hervorzuheben, daß unsere Erziehung leider hauptsächlich auf der Pflege und Ausbildung grausamer Anlagen beruht und daß wir Europäer unter allen Menschengruppen dieses Planeten die Ehre, die allergrausamsten zu sein, für uns in Anspruch nehmen können, und daß man uns fortwährend lehrt, darin unseren Stolz und unsere Ueberlegenheit zu suchen. Was Wunder, wenn dann auch schwache, zarte Personen ihren Anteil an der vermeintlichen Lust und Kraft genießen wollen?! Unsere herrliche, prächtig gefügte gesellschaftliche Ordnung fußt auf Stärkung des Starken und Schwächung des Schwachen. Wenn sich die Weiber organisieren, entsteht eine Gynäkokratie im großen Stile, die Geschichte im kleinen heißt man Masochismus. Einer muß den anderen knechten; knechtet der Mann die Frau, so stoßen wir daran nicht an; wenn sich aber das Weib zu fühlen beginnt, schreien wir wehvoll auf; denn die Welt steht sonst nimmer lang.&lt;br /&gt;
Die Möglichkeit einer Verkörperung der gesamten Paraphilie in einem einzigen Individuum gilt Bloch als der beste Beweis für das Erworhensein der Paraphilien, da ja eine Annahme des “Angeborenseins” sämtlicher geschlechtlicher Abnormitäten bei derselben Person unhaltbar wäre.&lt;br /&gt;
Angeboren ist die Anlage oder das Talent , den Paraphiletiker macht erst die Gelegenheit . Man sollte es kaum für möglich halten - wieviel Schlechtigkeit wenn dieser Ausdruck statthaft ist - dem Menschenkinde angeboren worden . Darüber gibt uns reichen Aufschluß die Pädologie, deren Vertreter (z. B. O. Chrishman, der Amerikaner) so weit gehen, die Kinder als eine besondere Menschentierart zu bezeichnen. wird kaum fehlgehen, die Kinder als die ersten Urheber von Paraphilien hinzustellen, oder zumindest, die Erwachsenen können von Kindern noch zulernen. Man muß sich Blochs Kernsatz merken: “Die Ungeheuerlichkeit des Aktes ist durchaus kein Kriterium für seinen psychopathischen Ursprung”; ferner: “Man darf aus der Tatsache, daß Kranke eine Paraphilie haben, nicht den Schluß ziehen, daß Paraphilie immer mit Krankheit verknüpft sein muß, zumal wenn man sich an die unzweifelhaft feststehende Tatsache erinnert, daß sich der gesunde Mensch an geschlechtliche Verirrungen derart gewöhnen kann, daß sie als Paraphilien imponieren, ohne deshalb die geistige Gesundheit des Betreffenden im geringsten zu tangieren.”&lt;br /&gt;
Als endgiltige, letzte Ursache aller Paraphilien betrachtet Bloch zum Schlusse seines Werkes “das dem Genus Homo eigentümliche geschlechtliche Variations bedürfnis, das als eine physiologische Erscheinung aufzufassen ist und dessen Steigerung zum geschlechtlichen Reizhunger die schwersten Paraphilien erzeugen kann”. Dieses Gesetz bilde die Grundlage einer jeden Philosophie des Geschlechtslebens. Aus ihm gehe mit Deutlichkeit hervor, daß die Prostitution als ein bloßes Produkt dieses sexuellen Variationsbedürfnisses und als Ersatz der ursprünglich aus letzterem hervorgegangenen Promiskuität unausrottbar sei, falls man nicht eine andere Möglichkeit der Befriedigung dieses Variationsbedürfnisses finde, welche die Gefahren der Prostitution beseitigen und doch jener immer wieder durchbrechenden Neigung Befriedigung gewähren könne.&lt;br /&gt;
Hier ist der Ausdruck “Prostitution” in einer sehr engen oder konventionellen Bedeutung aufzufassen. Ist doch im Durchschnitte die bei uns übliche Ehe auch nur eine Form der Prostitution des Weibes oder des Mannes oder beider gleichzeitig. Für das Variationsbedürfnis ist durch die Institution der Ehe mit ihrer unausrottbaren Verlogenheit genügend vorgesorgt. Die Prostitution ist kein wirklicher Gegensatz zur Ehe, sondern nur eine Zeitehe mit kurzer, gegenüber der Dauerehe mit endloser Reue. Es gibt zwar auch glückliche Ehen, wie es ja auch Leute gibt, die in der Lotterie große Summen gewonnen haben wollten.&lt;br /&gt;
In einer Ermahnung zur Mäßigung in Liebessachen klingt Blochs Werk aus. Das liest sich wie eine Predigt, die weder schadet, noch nützt; an der Philie und Paraphilie ändert dies nichts. Der Leser wird sich dabei auch nicht aufhalten, sondern lieber das Werk von neuem vornehmen; denn es bietet soviel an kostbaren Anregungen, daß man damit innerhalb des Rahmens eines Berichtes nicht fertig werden kann. Mit Nachdruck aufmerksam machen wollte ich die Aerzte auf eine Leistung, aus deren Studium sich ihnen erweiterte Perspektiven eröffnen, und ich hoffe, daß sie in nicht zu ferner Zukunft das Zusammengehen mit den Folkloristen und Ethnologen zur Förderung der Wissenschaft freudig begrüßen werden. Der jährlich tagende Naturforscher- und Aerztekongreß hat bereits eine eigene Sektion für Ethnologie eingeführt, nur melden sich die Ethnologen nicht zu Vorträgen. Es genügt nicht, die Zulassung von Ethnologen zu erklären, als ob sich die Ethnologen um eine solche Ehre reißen würden. Sie sind nicht so ehrgeizig und halten sich darum ferne.&lt;br /&gt;
&lt;br /&gt;
(1) Beiträge zur Aetiologie der Psychopathia sexualis. Von Dr. med. Iwan Bloch , Arzt für Haut- und Sexualleiden in Berlin . Mit einer Vorrede von Prof. Dr. Albert Eulenburg in Berlin . Erster Teil , Dresden . H. R. Dohrn 1902. Zweiter Teil , ebenda 1903.&lt;br /&gt;
(2) Der Ursprung der Syphilis . Eine medizinische und kulturgeschichtliche Untersuchung von Dr. med. Iwan Bloch Erste Abteilung. Jena, Gustav Fischer 1901 .&lt;br /&gt;
(3) Die Ekstase Von Prof. Dr. Thomas Achelis. I. B. der Kulturprobleme der Gegenwart. Herausgegeben von Leo Berg, Berlin, Johannes Räde, 1902.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Psychopathia_sexualis_by_Dr._Friedrich_S._Krauss_(English_text)&amp;diff=45</id>
		<title>Psychopathia sexualis by Dr. Friedrich S. Krauss (English text)</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Psychopathia_sexualis_by_Dr._Friedrich_S._Krauss_(English_text)&amp;diff=45"/>
		<updated>2024-04-29T21:05:53Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: Created page with &amp;quot;This is a translation of Psychopathia sexualis by Dr. Friedrich S. Krauss, which contains the first known mention of the word &amp;quot;paraphilia&amp;quot; that he coined. The original article was published in Wiener Klinische Rundschau, Volume 17, on August 2, 1903. The translation was made by Death.  = Psychopathia sexualis. =  === A report by Dr. Friedrich S Krauss. ===  We humans differ from other creatures by a tendency towards mysticism, very much to our detriment. Our science is s...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a translation of Psychopathia sexualis by Dr. Friedrich S. Krauss, which contains the first known mention of the word &amp;quot;paraphilia&amp;quot; that he coined. The original article was published in Wiener Klinische Rundschau, Volume 17, on August 2, 1903. The translation was made by Death.&lt;br /&gt;
&lt;br /&gt;
= Psychopathia sexualis. =&lt;br /&gt;
&lt;br /&gt;
=== A report by Dr. Friedrich S Krauss. ===&lt;br /&gt;
&lt;br /&gt;
We humans differ from other creatures by a tendency towards mysticism, very much to our detriment. Our science is still badly stuck in belief. Or rather, where the inner connection between cause and effect is not clear to us, we like to create a belief, pass it off as knowledge and science and sometimes identify ourselves with it so strongly that we regard anyone who doesn’t take our faith at face value as insulting our greatness, as a blasphemer and an unscientific man.&lt;br /&gt;
The followers of Krafft-Ebings and the confused Cesare Lombroso could easily be inclined to slander someone like Iwan Bloch, for example. He’s one of those people who don’t believe in authority and for whom an oath isn’t evidence. He is content merely to research the phenomenal world in all directions in order to collect as much factual material as possible and to arrange it in such a way that things explain one another of their own accord. He is one of those who are convinced that we cannot know more than nature teaches us and that understanding nature is already a big deal. According to this method, which is that of the ethnologists and folklorists, he had to become a revolutionary. He does away with Köhler-esque beliefs and does not create new ones in their place. In this way he brought about a work(1) that gives enormous advances to ethnology and is well suited to being of immense use to doctors as well, as it broadens their perspective for the consideration of general human instincts and inclinations to the highest degree. Bloch is one of those doctors who can be mentioned in the same breath as Max Bartels and Max Höfler. They don&#039;t just focus on the sick or infected person, but on the person as a person, and they know that the essential thing is the light, not the shadow. Once the fear of the innovator has been overcome, Dr. Bloch&#039;s work will be found in the library of every doctor and folklorist; for the subject which it treats is the most important in human existence, namely the sexual impulse.&lt;br /&gt;
The term &amp;quot;psychopathia sexualis&amp;quot; already contains a ready judgment in itself, and therefore isn’t suitable for scientific work. On the other hand, a phrase like “sexual intercourse that excludes procreation” would be correct. Von Krafft-Ebing soon called someone who did not set out to make children and satisfied his lust in uncommon ways of copulation perverse, just as Lombroso has the dishonorable name of a criminal ready for anyone who does not conduct his life impeccably according to Italian law. Translated into the trivial, this is the point of view of a certain Viennese “author”, a fortunately relatively unknown chatterbox. If a book seller stumbles into a notorious night café with his burden, the writers whose books he is selling are immoral fellows whom she, Mrs. X.Y.Z., would like to steer out of literature &amp;lt;ref&amp;gt;What or who is meant by the previous two sentences is unclear.&amp;lt;/ref&amp;gt;. If one reads the gossip of this or similar women, one understands that so many men like to regard the woman only as a sex object, and finally one also understands the morbidly increased aversion of many sensitive men to any intercourse with women. This certainly not incidental element was overlooked by Dr. Bloch in his Aetiology.&lt;br /&gt;
The work is divided into two stylistically not entirely identical parts, the second of which is more carefully polished than the first. Even though the literary isn’t of much importance in purely scientific works, I must point this out here; for Bloch is also a master of the art of depiction similar to Hyrt and the reading of his writings, e.g. the work on the origin of syphilis(2), also gives one an aesthetic satisfaction.&lt;br /&gt;
In regard to etiology, the huge amount of material positively outgrew the author. Even if he was able to work on it scientifically, he did not stylistically conquer it in a completely satisfactory manner. In reality, each volume constitutes only one chapter, separated almost arbitrarily by asterisks into subsections, the ordering of which may not always be perfect. But in a work provided with such excellent registers, this is certainly not very important. Professor Eulenburg&#039;s beautiful introduction is just as honorable for the mentor as it is for the protégé, the book to which it is intended to serve as a recommendation; because it contains the admission of a researcher distinguished by his social position, “that (Dr. Bloch) approached the topic not from the one-sided or biased point of view of the physician or medical historian, but with the freer and broader view of the anthropologist and ethnologist, equipped with all of the tools related to this position”.&lt;br /&gt;
The first volume deals with the antiquity and the ubiquity of sexual perversions and their dependence on culture, nervousness, and degeneration. It also gives a critique of the views on the etiology of sexual anomalies (heredity and acquisition) and a critique of the doctrine of innate sexual perversions. The main part of the volume is devoted to the etiology of sexual aberrations in healthy people and the special etiology of homosexuality, the second volume to the special etiology of sadistic and masochistic phenomena and the special etiology of complicated sexual perversities and perversions.&lt;br /&gt;
In a work dealing with the diversity of the strongest instincts of nature in the reflection of national thought, it is impossible to go into the details of the factual material given the wealth of information presented; because every reader of this specialist journal is in a position to increase and in particular to supplement the material both from the literature known to them and from their own experiences. It is more beneficial to summarize the author&#039;s points of view and research here in order to stimulate further work. Should Dr. Bloch&#039;s work get the recognition I think it deserves in medical circles and among folk researchers, it will certainly herald a new epoch in the special area it deals with.&lt;br /&gt;
Of principal importance is Bloch&#039;s remark: &amp;quot;On the whole it is correct to say that the sex drive, as a purely physical function, can constitute neither an object of comparison nor a distinguishing feature between primitive and civilized man.&amp;quot; This is correct insofar as the ethnologist does not encounter truly primitive people in social groups anywhere in the world. All human tribes of ecumenism are already civilized in one direction and we may have to look for objects of comparison in the non-human animal world. Therefore, the word &amp;quot;culture&amp;quot; is troublesome in Bloch&#039;s subsequent explanation and the thought could be expressed differently and more clearly: &amp;quot;The nature of the sexual drive and its anomalies is independent of all culture and shows the same traits in primitive and civilized peoples; it is independent of the physical and mental damage associated with culture, of degeneration in the anthropological and pathological sense. Culture and degeneration can only be considered as facilitating, frequency-increasing influences.” Bloch&#039;s statement is indisputable: &amp;quot;In addition, there are a large number of external factors which have nothing to do with culture, degeneration and degenerative heredity, but whose influences are of the greatest importance for the development of sexual anomalies in primitive and civilized peoples.&lt;br /&gt;
In general, Dr Bloch distinguishes between two groups of sexual perversions, the ones that are inborn or exist from infancy and those developed later in life. The latter, in turn, are divided into those sexual aberrations which are caused by diseases and those which occur in healthy people. In his work, Bloch presents only the etiological conditions of the latter group, i. e. the causes of the development of sexual perversions in otherwise healthy people. I have the same objection to the expression “sexual perversion” as to “psychopathia sexualis”. Here, too, the word conceals a condemnation from the outset, which should not be put in front of scientific discussions at least, so as not to influence the conclusion. As a replacement for both terms I would like to suggest another, again a Greek one, paraphilia (παράφιλία), for which I know of no evidence from the old Greek usage, but which is formed similar to the word παράνοια (ignorance, foolishness, madness) and simply indicates a form deviating from ordinary love and not corresponding to the nature of correct love, the purpose of which must be the fertilization of the woman. The epithet would then be paraphiletic (παραφιλητος). In the following I want to make use of this new term, which has the additional advantage of saving us a word each time.&lt;br /&gt;
In the great majority of cases, says Bloch, medical examination yields no evidence whatsoever of the existence of a pathological basis for sexual abnormality. Individual minor symptoms or even mere &amp;quot;nervousness&amp;quot;, which is so widespread today in all classes of the population, are certainly not enough to describe paraphiletic acts or conditions as &amp;quot;morbid&amp;quot;. Rather, there is no doubt that all paraphilias can also occur in mentally and physically healthy people who must be considered to be of &amp;quot;sound mind&amp;quot; in every respect.&lt;br /&gt;
As with ecstasy, it stands in relation to clear reason, about which Thomas Achelis thankfully gives us explanations from the standpoint of ethnology as well(3). Paraphilia also shows itself to be a special kind of ecstasy in sexual relations, and the connection between the two phenomena, which indeed emanate from different schools of thought, is clearly demonstrable, which Bloch also hints at.&lt;br /&gt;
In his opinion, the explanation for the more frequent occurrence of homosexuality and other paraphilias of the vita sexualis in southern regions lies solely in the fact that in these regions, the earlier occurrence and the greater intensity of the libido has to lead to a more frequent need for increased stimulation in its gratification. As an ethnologist, I cannot necessarily agree with him on this point. Because of the warmer climate in southern countries, paraphilias more often take place in public and are more conspicuous, making it seem like they occur more frequently, while the northerner has less opportunities to satisfy his paraphiletic desires, bearing in mind that the heavily clad northerners also have a means of protection against the activities of paraphiletics, the protection that should not be underestimated. The sensual desire is equally present in all groups of people, only some make a virtue out of necessity and this virtue becomes habit, custom, and finally a tradition - but not everywhere. This is what the Buryat folk life teaches us. These people simply weren’t in the infinitely lucky position to have in their midst the peak of culture, i. e. to see scholarly scribes thrive, otherwise the same words that Bloch has for the Indians would apply to them, as follows: “A closer study of the Indian love life shows with evidence that refinement and fornication in sexual intercourse were systematically developed by the Indians and were described as a religious commandment, with no indication of any congenital or pathological conditions, so-called &#039;psychopathia sexualis&#039; in the sense of Krafft-Ebing. Numerous, one of a kind textbooks on the art of love teach, on the grounds of necessity, all kinds of sexual aberrations, sadism in the form of scratching, biting and flagellating (including morsus genitalium!), use of stimulants to enlarge the penis, to widen or narrow the vagina” etc.&lt;br /&gt;
Eulenburg has thoroughly refuted the theory put forward by Lombroso and Ferrero that women are less sensitive. If you listen to R. Günther and Ed. Carpenter (whose twaddle we now also get to enjoy in German), the woman would even be almost sexually indifferent. Bloch, on the other hand, thinks that “it cannot be denied that in general, men have more powerful sexual drives than women. The sensual desire expresses itself earlier and more vigorously in the man, while the untouched nubile woman can much more easily resist the stirring dark urge for sexual union with the man.” No, she can&#039;t! The only thing that restrains her in our cultural society is the fear of the consequences of giving herself to men. Folklore irrefutably teaches us that it’s woman who seduces man. If I have proved anything with my book &amp;quot;Streifzüge im Bereiche der Frauenschönheit&amp;quot; (Leipzig 1903), then that it is, I believe, the greater intelligence and superiority of woman over man in sexual matters. O. Effertz&#039;s disquisition on venerie and eroticism, which Bloch quotes in his favour, does not stand up to scrutiny because wordplay is irrelevant to folkloric facts. Ten pages later, Bloch himself admits to this in a comment: &amp;quot;One should also not fail to recognize that there is often only an apparent sexual anesthesia, which is an interpretation based on woman’s typical reluctance to engage in coitus.&amp;quot; Precisely this “reluctance” is not typical to women, but only the effect of social compulsion exerted on women within our culture, and even here one should not generalize without further ado.&lt;br /&gt;
Bloch expresses a fundamental thought (on page 69 f.), where he speaks on the topic of civilization: “A richer social structure, a more complicated spiritual life, a more specific formation of ethical views always also reflect on the sexual fantasy and can, in a certain sense, change it and lead it astray. There is no physical manifestation of the sexual impulse that could not possibly have sprung from a very vivid or misguided imagination alone.” This is true, but not only applicable to civilized people. We have plenty of other concerns and responsibilities in life than just satisfying the sex drive, while the imagination of uncultured people can focus more on the punctum puncti. If the pleasure of sex was the peak of human happiness, we would be at a great disadvantage thanks to our culture. Which we indeed are in terms of imagination, and that’s why we have a lesser degree of happiness, and a higher one of unhappiness.&lt;br /&gt;
Us cultured people with our imagination have remained on the same level as the poorest cultured groups of people only in one respect, namely where sex life is connected to religion. “Only in this way can we,” says Bloch, “explain the development of a gigantic literature on sexual casuistics in theology and its branch, pastoral medicine. These facts can not be understood by the bitter tirades of cultural historians, dictated by religious prejudices, but only by the explanations of doctors and anthropologists, who consider these things in the broader context and have recognized the relations between religion and sex life as universally human and not as artificial products of any particular school of thought.&amp;quot;&lt;br /&gt;
In the second part, following the ethnology, Bloch defends the opinion that most sexual aberrations do not fall within the area of responsibility of the doctor; the core of the algolagnistic phenomena is the joy in someone else&#039;s or one&#039;s own pain, i.e. cruelty directed at others or at oneself. He finds it notable that weak, delicate people, especially women, often display cruel tendencies which one would not have expected of them. His explanation that cruelty springs temporarily from the idea of superiority, so that the fear inherent in weak individuals may thereby be overcome, is nice, but not sufficient. He forgot to point out that unfortunately our upbringing is mainly based on the cultivation and training of cruel tendencies and that we Europeans can claim the honor of being the most cruel of all groups of people on this planet, and that we are constantly being taught to find pride and superiority in this. No wonder then that weak, delicate people also want to enjoy their share of the supposed pleasure and strength. Our glorious, magnificently constructed social order is based on strengthening the strong and weakening the weak. If women were to organize themselves, a gynecocracy would arise on a grand scale, on a small scale it is called masochism. One must enslave the other; if man enslaves woman, we do not stumble; but when woman begins to feel herself, we cry out in sorrow; because otherwise the world wouldn’t stand for long.&lt;br /&gt;
The possibility of the entire spectrum of paraphilias being embodied in a single individual is considered by Bloch to be the best proof of the existence of the development of paraphilias, since it would be untenable to assume that all sexual abnormalities were &amp;quot;congenital&amp;quot; in the same person.&lt;br /&gt;
What’s innate is the disposition or the aptitude, but only opportunity creates a paraphiletic. One would hardly think it possible -- how much wickedness, if that expression is permissible -- has been innate in the human child. Pedology gives us plenty of information about this; its representatives (e.g. O. Chrishman, the American) go so far as to describe children as a special kind of human-animal species. It would hardly be wrong to portray children as the first originators of paraphilias, or at least adults can still learn from children. One must keep Bloch&#039;s core thesis in mind: &amp;quot;The monstrosity of the act is by no means a criterion for its psychopathic origin&amp;quot;; Furthermore: “The fact that sick people have paraphilias must not lead one to the conclusion that paraphilia always has to be related to sickness, especially when one remembers the undoubted fact that healthy people can become so accustomed to sexual aberrations that they appear like paraphilias without affecting the mental health of the person in the slightest.&amp;quot;&lt;br /&gt;
At the end of his work, Bloch considers “the sexual need for variation peculiar to the genus homo, which is to be understood as a physiological phenomenon and the increase of which to a hunger for sexual stimulus can produce the most severe paraphilias” as the final, definite cause of all paraphilias. This law forms the basis of every philosophy of sexual life. It clearly shows that prostitution, as a mere product of this need for sexual variety and as a substitute for the promiscuity that originally arose from the latter, is ineradicable if one does not find another way of satisfying this need for variation, which eliminates the dangers of prostitution and could still grant satisfaction to these tendencies that break through again and again.&lt;br /&gt;
Here the term &amp;quot;prostitution&amp;quot; is to be taken in a very narrow or conventional sense. On the average, the marriage that is customary among us is also just a kind of prostitution of the woman or the man or both at the same time. The institution of marriage, with its ineradicable mendacity, sufficiently provides for the need for variation. Prostitution and marriage aren’t opposed to each other, as prostitution is just a temporary marriage with short regrets, as opposed to permanent marriages with endless regrets. Of course there are also happy marriages, just as there are people who have supposedly won large sums of money in the lottery.&lt;br /&gt;
Bloch&#039;s work ends in an exhortation to moderation in matters of love. This comes off as moralizing which neither harms nor helps; it does not change anything about philia and paraphilia. Nor will the reader linger, but would rather go back to reread the work; for it offers so many valuable suggestions that it cannot be dealt with within the framework of one report. I empathetically wanted to draw the doctors&#039; attention to an achievement whose study will open up broader perspectives for them, and I hope that in the not too distant future they will happily welcome collaboration with folklorists and ethnologists in order to advance science. The annual congress of natural scientists and physicians has already introduced its own section for ethnology, only the ethnologists do not register for lectures. It is not enough to declare the admission of ethnologists, as if ethnologists would vie for such an honor. They are not that ambitious and therefore keep their distance.&lt;br /&gt;
(1) Beiträge zur Aetiologie der Psychopathia sexualis. By Dr. med. Iwan Bloch, doctor for skin and sexual diseases in Berlin. With a preface by Prof. Dr. Albert Eulenburg in Berlin. First part, Dresden. H. R. Dohrn 1902. Second part, ibid. 1903.&lt;br /&gt;
(2) Der Ursprung der Syphilis. A medical and cultural-historical study by Dr. med. Iwan Bloch. First Part. Jena, Gustav Fischer 1901.&lt;br /&gt;
3) Die Ekstase by Prof. Dr. Thomas Achelis. I. B. the cultural problems of the present. Edited by Leo Berg, Berlin, Johannes Räde, 1902.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=File:CL_sun_symbol.png&amp;diff=42</id>
		<title>File:CL sun symbol.png</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=File:CL_sun_symbol.png&amp;diff=42"/>
		<updated>2024-04-24T23:38:37Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Module:Documentation/i18n&amp;diff=41</id>
		<title>Module:Documentation/i18n</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Module:Documentation/i18n&amp;diff=41"/>
		<updated>2024-04-24T23:23:19Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local format = require(&#039;Module:TNT&#039;).format&lt;br /&gt;
local i18n = {}&lt;br /&gt;
&lt;br /&gt;
i18n[&#039;cfg-error-msg-type&#039;] = format(&#039;I18n/Documentation&#039;, &#039;cfg-error-msg-type&#039;)&lt;br /&gt;
i18n[&#039;cfg-error-msg-empty&#039;] = format(&#039;I18n/Documentation&#039;, &#039;cfg-error-msg-empty&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;template-namespace-heading&#039;]&lt;br /&gt;
-- The heading shown in the template namespace.&lt;br /&gt;
i18n[&#039;template-namespace-heading&#039;] = format(&#039;I18n/Documentation&#039;, &#039;template-namespace-heading&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;module-namespace-heading&#039;]&lt;br /&gt;
-- The heading shown in the module namespace.&lt;br /&gt;
i18n[&#039;module-namespace-heading&#039;] = format(&#039;I18n/Documentation&#039;, &#039;module-namespace-heading&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;file-namespace-heading&#039;]&lt;br /&gt;
-- The heading shown in the file namespace.&lt;br /&gt;
i18n[&#039;file-namespace-heading&#039;] = format(&#039;I18n/Documentation&#039;, &#039;file-namespace-heading&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;other-namespaces-heading&#039;]&lt;br /&gt;
-- The heading shown in other namespaces.&lt;br /&gt;
i18n[&#039;other-namespaces-heading&#039;] = format(&#039;I18n/Documentation&#039;, &#039;other-namespaces-heading&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;view-link-display&#039;]&lt;br /&gt;
-- The text to display for &amp;quot;view&amp;quot; links.&lt;br /&gt;
i18n[&#039;view-link-display&#039;] = format(&#039;I18n/Documentation&#039;, &#039;view-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;edit-link-display&#039;]&lt;br /&gt;
-- The text to display for &amp;quot;edit&amp;quot; links.&lt;br /&gt;
i18n[&#039;edit-link-display&#039;] = format(&#039;I18n/Documentation&#039;, &#039;edit-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;history-link-display&#039;]&lt;br /&gt;
-- The text to display for &amp;quot;history&amp;quot; links.&lt;br /&gt;
i18n[&#039;history-link-display&#039;] = format(&#039;I18n/Documentation&#039;, &#039;history-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;purge-link-display&#039;]&lt;br /&gt;
-- The text to display for &amp;quot;purge&amp;quot; links.&lt;br /&gt;
i18n[&#039;purge-link-display&#039;] = format(&#039;I18n/Documentation&#039;, &#039;purge-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;create-link-display&#039;]&lt;br /&gt;
-- The text to display for &amp;quot;create&amp;quot; links.&lt;br /&gt;
i18n[&#039;create-link-display&#039;] = format(&#039;I18n/Documentation&#039;, &#039;create-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
return i18n&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Module:TNT&amp;diff=39</id>
		<title>Module:TNT</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Module:TNT&amp;diff=39"/>
		<updated>2024-04-24T23:23:18Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--&lt;br /&gt;
-- INTRO:   (!!! DO NOT RENAME THIS PAGE !!!)&lt;br /&gt;
--    This module allows any template or module to be copy/pasted between&lt;br /&gt;
--    wikis without any translation changes. All translation text is stored&lt;br /&gt;
--    in the global  Data:*.tab  pages on Commons, and used everywhere.&lt;br /&gt;
--&lt;br /&gt;
-- SEE:   https://www.mediawiki.org/wiki/Multilingual_Templates_and_Modules&lt;br /&gt;
--&lt;br /&gt;
-- ATTENTION:&lt;br /&gt;
--    Please do NOT rename this module - it has to be identical on all wikis.&lt;br /&gt;
--    This code is maintained at https://www.mediawiki.org/wiki/Module:TNT&lt;br /&gt;
--    Please do not modify it anywhere else, as it may get copied and override your changes.&lt;br /&gt;
--    Suggestions can be made at https://www.mediawiki.org/wiki/Module_talk:TNT&lt;br /&gt;
--&lt;br /&gt;
-- DESCRIPTION:&lt;br /&gt;
--    The &amp;quot;msg&amp;quot; function uses a Commons dataset to translate a message&lt;br /&gt;
--    with a given key (e.g. source-table), plus optional arguments&lt;br /&gt;
--    to the wiki markup in the current content language.&lt;br /&gt;
--    Use lang=xx to set language.  Example:&lt;br /&gt;
--&lt;br /&gt;
--    {{#invoke:TNT | msg&lt;br /&gt;
--     | I18n/Template:Graphs.tab  &amp;lt;!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab --&amp;gt;&lt;br /&gt;
--     | source-table              &amp;lt;!-- uses a translation message with id = &amp;quot;source-table&amp;quot; --&amp;gt;&lt;br /&gt;
--     | param1 }}                 &amp;lt;!-- optional parameter --&amp;gt;&lt;br /&gt;
--&lt;br /&gt;
--&lt;br /&gt;
--    The &amp;quot;doc&amp;quot; function will generate the &amp;lt;templatedata&amp;gt; parameter documentation for templates.&lt;br /&gt;
--    This way all template parameters can be stored and localized in a single Commons dataset.&lt;br /&gt;
--    NOTE: &amp;quot;doc&amp;quot; assumes that all documentation is located in Data:Templatedata/* on Commons.&lt;br /&gt;
--&lt;br /&gt;
--    {{#invoke:TNT | doc | Graph:Lines }}&lt;br /&gt;
--        uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab&lt;br /&gt;
--        if the current page is Template:Graph:Lines/doc&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local i18nDataset = &#039;I18n/Module:TNT.tab&#039;&lt;br /&gt;
&lt;br /&gt;
-- Forward declaration of the local functions&lt;br /&gt;
local sanitizeDataset, loadData, link, formatMessage&lt;br /&gt;
&lt;br /&gt;
function p.msg(frame)&lt;br /&gt;
	local dataset, id&lt;br /&gt;
	local params = {}&lt;br /&gt;
	local lang = nil&lt;br /&gt;
	for k, v in pairs(frame.args) do&lt;br /&gt;
		if k == 1 then&lt;br /&gt;
			dataset = mw.text.trim(v)&lt;br /&gt;
		elseif k == 2 then&lt;br /&gt;
			id = mw.text.trim(v)&lt;br /&gt;
		elseif type(k) == &#039;number&#039; then&lt;br /&gt;
			params[k - 2] = mw.text.trim(v)&lt;br /&gt;
		elseif k == &#039;lang&#039; and v ~= &#039;_&#039; then&lt;br /&gt;
			lang = mw.text.trim(v)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return formatMessage(dataset, id, params, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Identical to p.msg() above, but used from other lua modules&lt;br /&gt;
-- Parameters:  name of dataset, message key, optional arguments&lt;br /&gt;
-- Example with 2 params:  format(&#039;I18n/Module:TNT&#039;, &#039;error_bad_msgkey&#039;, &#039;my-key&#039;, &#039;my-dataset&#039;)&lt;br /&gt;
function p.format(dataset, key, ...)&lt;br /&gt;
	local checkType = require(&#039;libraryUtil&#039;).checkType&lt;br /&gt;
	checkType(&#039;format&#039;, 1, dataset, &#039;string&#039;)&lt;br /&gt;
	checkType(&#039;format&#039;, 2, key, &#039;string&#039;)&lt;br /&gt;
	return formatMessage(dataset, key, {...})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Identical to p.msg() above, but used from other lua modules with the language param&lt;br /&gt;
-- Parameters:  language code, name of dataset, message key, optional arguments&lt;br /&gt;
-- Example with 2 params:  formatInLanguage(&#039;es&#039;, I18n/Module:TNT&#039;, &#039;error_bad_msgkey&#039;, &#039;my-key&#039;, &#039;my-dataset&#039;)&lt;br /&gt;
function p.formatInLanguage(lang, dataset, key, ...)&lt;br /&gt;
	local checkType = require(&#039;libraryUtil&#039;).checkType&lt;br /&gt;
	checkType(&#039;formatInLanguage&#039;, 1, lang, &#039;string&#039;)&lt;br /&gt;
	checkType(&#039;formatInLanguage&#039;, 2, dataset, &#039;string&#039;)&lt;br /&gt;
	checkType(&#039;formatInLanguage&#039;, 3, key, &#039;string&#039;)&lt;br /&gt;
	return formatMessage(dataset, key, {...}, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Obsolete function that adds a &#039;c:&#039; prefix to the first param.&lt;br /&gt;
-- &amp;quot;Sandbox/Sample.tab&amp;quot; -&amp;gt; &#039;c:Data:Sandbox/Sample.tab&#039;&lt;br /&gt;
function p.link(frame)&lt;br /&gt;
	return link(frame.args[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.doc(frame)&lt;br /&gt;
	local dataset = &#039;Templatedata/&#039; .. sanitizeDataset(frame.args[1])&lt;br /&gt;
	return frame:extensionTag(&#039;templatedata&#039;, p.getTemplateData(dataset)) ..&lt;br /&gt;
		   formatMessage(i18nDataset, &#039;edit_doc&#039;, {link(dataset)})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getTemplateData(dataset)&lt;br /&gt;
	-- TODO: add &#039;_&#039; parameter once lua starts reindexing properly for &amp;quot;all&amp;quot; languages&lt;br /&gt;
	local data = loadData(dataset)&lt;br /&gt;
	local names = {}&lt;br /&gt;
	for _, field in ipairs(data.schema.fields) do&lt;br /&gt;
		table.insert(names, field.name)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local numOnly = true&lt;br /&gt;
	local params = {}&lt;br /&gt;
	local paramOrder = {}&lt;br /&gt;
	for _, row in ipairs(data.data) do&lt;br /&gt;
		local newVal = {}&lt;br /&gt;
		local name = nil&lt;br /&gt;
		for pos, columnName in ipairs(names) do&lt;br /&gt;
			if columnName == &#039;name&#039; then&lt;br /&gt;
				name = row[pos]&lt;br /&gt;
			else&lt;br /&gt;
				newVal[columnName] = row[pos]&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if name then&lt;br /&gt;
			if (&lt;br /&gt;
				(type(name) ~= &amp;quot;number&amp;quot;)&lt;br /&gt;
				and (&lt;br /&gt;
					(type(name) ~= &amp;quot;string&amp;quot;)&lt;br /&gt;
					or not string.match(name, &amp;quot;^%d+$&amp;quot;)&lt;br /&gt;
				)&lt;br /&gt;
			) then&lt;br /&gt;
				numOnly = false&lt;br /&gt;
			end&lt;br /&gt;
			params[name] = newVal&lt;br /&gt;
			table.insert(paramOrder, name)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Work around json encoding treating {&amp;quot;1&amp;quot;:{...}} as an [{...}]&lt;br /&gt;
	if numOnly then&lt;br /&gt;
		params[&#039;zzz123&#039;]=&#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local json = mw.text.jsonEncode({&lt;br /&gt;
		params=params,&lt;br /&gt;
		paramOrder=paramOrder,&lt;br /&gt;
		description=data.description,&lt;br /&gt;
	})&lt;br /&gt;
&lt;br /&gt;
	if numOnly then&lt;br /&gt;
		json = string.gsub(json,&#039;&amp;quot;zzz123&amp;quot;:&amp;quot;&amp;quot;,?&#039;, &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return json&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Local functions&lt;br /&gt;
&lt;br /&gt;
sanitizeDataset = function(dataset)&lt;br /&gt;
	if not dataset then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	dataset = mw.text.trim(dataset)&lt;br /&gt;
	if dataset == &#039;&#039; then&lt;br /&gt;
		return nil&lt;br /&gt;
	elseif string.sub(dataset,-4) ~= &#039;.tab&#039; then&lt;br /&gt;
		return dataset .. &#039;.tab&#039;&lt;br /&gt;
	else&lt;br /&gt;
		return dataset&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
loadData = function(dataset, lang)&lt;br /&gt;
	dataset = sanitizeDataset(dataset)&lt;br /&gt;
	if not dataset then&lt;br /&gt;
		error(formatMessage(i18nDataset, &#039;error_no_dataset&#039;, {}))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Give helpful error to thirdparties who try and copy this module.&lt;br /&gt;
	if not mw.ext or not mw.ext.data or not mw.ext.data.get then&lt;br /&gt;
		error(string.format([[&#039;&#039;&#039;Missing JsonConfig extension, or not properly configured;&lt;br /&gt;
Cannot load https://commons.wikimedia.org/wiki/Data:%s.&lt;br /&gt;
See https://www.mediawiki.org/wiki/Extension:JsonConfig#Supporting_Wikimedia_templates&#039;&#039;&#039;]], dataset))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local data = mw.ext.data.get(dataset, lang)&lt;br /&gt;
&lt;br /&gt;
	if data == false then&lt;br /&gt;
		if dataset == i18nDataset then&lt;br /&gt;
			-- Prevent cyclical calls&lt;br /&gt;
			error(&#039;Missing Commons dataset &#039; .. i18nDataset)&lt;br /&gt;
		else&lt;br /&gt;
			error(formatMessage(i18nDataset, &#039;error_bad_dataset&#039;, {link(dataset)}))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Given a dataset name, convert it to a title with the &#039;commons:data:&#039; prefix&lt;br /&gt;
link = function(dataset)&lt;br /&gt;
	return &#039;c:Data:&#039; .. mw.text.trim(dataset or &#039;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
formatMessage = function(dataset, key, params, lang)&lt;br /&gt;
	for _, row in pairs(loadData(dataset, lang).data) do&lt;br /&gt;
		local id, msg = unpack(row)&lt;br /&gt;
		if id == key then&lt;br /&gt;
			local result = mw.message.newRawMessage(msg, unpack(params or {}))&lt;br /&gt;
			return result:plain()&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if dataset == i18nDataset then&lt;br /&gt;
		-- Prevent cyclical calls&lt;br /&gt;
		error(&#039;Invalid message key &amp;quot;&#039; .. key .. &#039;&amp;quot;&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		error(formatMessage(i18nDataset, &#039;error_bad_msgkey&#039;, {key, link(dataset)}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Module:Documentation/config&amp;diff=37</id>
		<title>Module:Documentation/config</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Module:Documentation/config&amp;diff=37"/>
		<updated>2024-04-24T23:23:17Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;----------------------------------------------------------------------------------------------------&lt;br /&gt;
--&lt;br /&gt;
--                               Configuration for Module:Documentation&lt;br /&gt;
--&lt;br /&gt;
-- Here you can set the values of the parameters and messages used in Module:Documentation to&lt;br /&gt;
-- localise it to your wiki and your language. Unless specified otherwise, values given here&lt;br /&gt;
-- should be string values.&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local _format = require(&#039;Module:TNT&#039;).format&lt;br /&gt;
local function format(id)&lt;br /&gt;
	return _format(&#039;I18n/Documentation&#039;, id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local cfg = {} -- Do not edit this line.&lt;br /&gt;
&lt;br /&gt;
cfg[&#039;templatestyles-scr&#039;] = &#039;Module:Documentation/styles.css&#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Protection template configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;protection-template&#039;]&lt;br /&gt;
-- The name of the template that displays the protection icon (a padlock on enwiki).&lt;br /&gt;
cfg[&#039;protection-template&#039;] = &#039;pp-template&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;protection-reason-edit&#039;]&lt;br /&gt;
-- The protection reason for edit-protected templates to pass to&lt;br /&gt;
-- [[Module:Protection banner]].&lt;br /&gt;
cfg[&#039;protection-reason-edit&#039;] = &#039;template&#039;&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&#039;protection-template-args&#039;]&lt;br /&gt;
-- Any arguments to send to the protection template. This should be a Lua table.&lt;br /&gt;
-- For example, if the protection template is &amp;quot;pp-template&amp;quot;, and the wikitext template invocation&lt;br /&gt;
-- looks like &amp;quot;{{pp-template|docusage=yes}}&amp;quot;, then this table should look like &amp;quot;{docusage = &#039;yes&#039;}&amp;quot;.&lt;br /&gt;
 --]]&lt;br /&gt;
 cfg[&#039;protection-template-args&#039;] = {docusage = &#039;yes&#039;}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Sandbox notice configuration&lt;br /&gt;
--&lt;br /&gt;
-- On sandbox pages the module can display a template notifying users that the current page is a&lt;br /&gt;
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a&lt;br /&gt;
-- sandbox or not based on the value of cfg[&#039;sandbox-subpage&#039;]. The following settings configure the&lt;br /&gt;
-- messages that the notices contains.&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;sandbox-notice-image&#039;]&lt;br /&gt;
-- The image displayed in the sandbox notice.&lt;br /&gt;
cfg[&#039;sandbox-notice-image&#039;] = &#039;[[File:Edit In Sandbox Icon - Color.svg|40px|alt=|link=]]&#039;&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&#039;sandbox-notice-pagetype-template&#039;]&lt;br /&gt;
-- cfg[&#039;sandbox-notice-pagetype-module&#039;]&lt;br /&gt;
-- cfg[&#039;sandbox-notice-pagetype-other&#039;]&lt;br /&gt;
-- The page type of the sandbox page. The message that is displayed depends on the current subject&lt;br /&gt;
-- namespace. This message is used in either cfg[&#039;sandbox-notice-blurb&#039;] or&lt;br /&gt;
-- cfg[&#039;sandbox-notice-diff-blurb&#039;].&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&#039;sandbox-notice-pagetype-template&#039;] = format(&#039;sandbox-notice-pagetype-template&#039;)&lt;br /&gt;
cfg[&#039;sandbox-notice-pagetype-module&#039;] = format(&#039;sandbox-notice-pagetype-module&#039;)&lt;br /&gt;
cfg[&#039;sandbox-notice-pagetype-other&#039;] = format(&#039;sandbox-notice-pagetype-other&#039;)&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&#039;sandbox-notice-blurb&#039;]&lt;br /&gt;
-- cfg[&#039;sandbox-notice-diff-blurb&#039;]&lt;br /&gt;
-- cfg[&#039;sandbox-notice-diff-display&#039;]&lt;br /&gt;
-- Either cfg[&#039;sandbox-notice-blurb&#039;] or cfg[&#039;sandbox-notice-diff-blurb&#039;] is the opening sentence&lt;br /&gt;
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page&lt;br /&gt;
-- type, which is either cfg[&#039;sandbox-notice-pagetype-template&#039;],&lt;br /&gt;
-- cfg[&#039;sandbox-notice-pagetype-module&#039;] or cfg[&#039;sandbox-notice-pagetype-other&#039;] depending what&lt;br /&gt;
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between&lt;br /&gt;
-- the sandbox and the main template. The display value of the diff link is set by &lt;br /&gt;
-- cfg[&#039;sandbox-notice-compare-link-display&#039;].&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&#039;sandbox-notice-blurb&#039;] = format(&#039;sandbox-notice-blurb&#039;)&lt;br /&gt;
cfg[&#039;sandbox-notice-diff-blurb&#039;] = format(&#039;sandbox-notice-diff-blurb&#039;)&lt;br /&gt;
cfg[&#039;sandbox-notice-compare-link-display&#039;] = format(&#039;sandbox-notice-compare-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&#039;sandbox-notice-testcases-blurb&#039;]&lt;br /&gt;
-- cfg[&#039;sandbox-notice-testcases-link-display&#039;]&lt;br /&gt;
-- cfg[&#039;sandbox-notice-testcases-run-blurb&#039;]&lt;br /&gt;
-- cfg[&#039;sandbox-notice-testcases-run-link-display&#039;]&lt;br /&gt;
-- cfg[&#039;sandbox-notice-testcases-blurb&#039;] is a sentence notifying the user that there is a test cases page&lt;br /&gt;
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.&lt;br /&gt;
-- cfg[&#039;sandbox-notice-testcases-link-display&#039;] is the display value for that link.&lt;br /&gt;
-- cfg[&#039;sandbox-notice-testcases-run-blurb&#039;] is a sentence notifying the user that there is a test cases page&lt;br /&gt;
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test&lt;br /&gt;
-- cases page, and $2 is a link to the page to run it.&lt;br /&gt;
-- cfg[&#039;sandbox-notice-testcases-run-link-display&#039;] is the display value for the link to run the test&lt;br /&gt;
-- cases.&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&#039;sandbox-notice-testcases-blurb&#039;] = format(&#039;sandbox-notice-testcases-blurb&#039;)&lt;br /&gt;
cfg[&#039;sandbox-notice-testcases-link-display&#039;] = format(&#039;sandbox-notice-testcases-link-display&#039;)&lt;br /&gt;
cfg[&#039;sandbox-notice-testcases-run-blurb&#039;] = format(&#039;sandbox-notice-testcases-run-blurb&#039;)&lt;br /&gt;
cfg[&#039;sandbox-notice-testcases-run-link-display&#039;] = format(&#039;sandbox-notice-testcases-run-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;sandbox-category&#039;]&lt;br /&gt;
-- A category to add to all template sandboxes.&lt;br /&gt;
cfg[&#039;sandbox-category&#039;] = &#039;Template sandboxes&#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Start box configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;documentation-icon-wikitext&#039;]&lt;br /&gt;
-- The wikitext for the icon shown at the top of the template.&lt;br /&gt;
cfg[&#039;documentation-icon-wikitext&#039;] = &#039;[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=Documentation icon]]&#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Link box (end box) configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;transcluded-from-blurb&#039;]&lt;br /&gt;
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.&lt;br /&gt;
cfg[&#039;transcluded-from-blurb&#039;] = format(&#039;transcluded-from-blurb&#039;)&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&#039;create-module-doc-blurb&#039;]&lt;br /&gt;
-- Notice displayed in the module namespace when the documentation subpage does not exist.&lt;br /&gt;
-- $1 is a link to create the documentation page with the preload cfg[&#039;module-preload&#039;] and the&lt;br /&gt;
-- display cfg[&#039;create-link-display&#039;].&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&#039;create-module-doc-blurb&#039;] = format(&#039;create-module-doc-blurb&#039;)&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Experiment blurb configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&#039;experiment-blurb-template&#039;]&lt;br /&gt;
-- cfg[&#039;experiment-blurb-module&#039;]&lt;br /&gt;
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.&lt;br /&gt;
-- It is only shown in the template and module namespaces. With the default English settings, it&lt;br /&gt;
-- might look like this:&lt;br /&gt;
--&lt;br /&gt;
-- Editors can experiment in this template&#039;s sandbox (edit | diff) and testcases (edit) pages.&lt;br /&gt;
--&lt;br /&gt;
-- In this example, &amp;quot;sandbox&amp;quot;, &amp;quot;edit&amp;quot;, &amp;quot;diff&amp;quot;, &amp;quot;testcases&amp;quot;, and &amp;quot;edit&amp;quot; would all be links.&lt;br /&gt;
--&lt;br /&gt;
-- There are two versions, cfg[&#039;experiment-blurb-template&#039;] and cfg[&#039;experiment-blurb-module&#039;], depending&lt;br /&gt;
-- on what namespace we are in.&lt;br /&gt;
-- &lt;br /&gt;
-- Parameters:&lt;br /&gt;
--&lt;br /&gt;
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:&lt;br /&gt;
--&lt;br /&gt;
--     cfg[&#039;sandbox-link-display&#039;] (cfg[&#039;sandbox-edit-link-display&#039;] | cfg[&#039;compare-link-display&#039;])&lt;br /&gt;
-- &lt;br /&gt;
-- If the sandbox doesn&#039;t exist, it is in the format:&lt;br /&gt;
--&lt;br /&gt;
--     cfg[&#039;sandbox-link-display&#039;] (cfg[&#039;sandbox-create-link-display&#039;] | cfg[&#039;mirror-link-display&#039;])&lt;br /&gt;
-- &lt;br /&gt;
-- The link for cfg[&#039;sandbox-create-link-display&#039;] link preloads the page with cfg[&#039;template-sandbox-preload&#039;]&lt;br /&gt;
-- or cfg[&#039;module-sandbox-preload&#039;], depending on the current namespace. The link for cfg[&#039;mirror-link-display&#039;]&lt;br /&gt;
-- loads a default edit summary of cfg[&#039;mirror-edit-summary&#039;].&lt;br /&gt;
--&lt;br /&gt;
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:&lt;br /&gt;
--&lt;br /&gt;
--     cfg[&#039;testcases-link-display&#039;] (cfg[&#039;testcases-edit-link-display&#039;])&lt;br /&gt;
--&lt;br /&gt;
-- If the test cases page doesn&#039;t exist, it is in the format:&lt;br /&gt;
-- &lt;br /&gt;
--     cfg[&#039;testcases-link-display&#039;] (cfg[&#039;testcases-create-link-display&#039;])&lt;br /&gt;
--&lt;br /&gt;
-- If the test cases page doesn&#039;t exist, the link for cfg[&#039;testcases-create-link-display&#039;] preloads the&lt;br /&gt;
-- page with cfg[&#039;template-testcases-preload&#039;] or cfg[&#039;module-testcases-preload&#039;], depending on the current&lt;br /&gt;
-- namespace.&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&#039;experiment-blurb-template&#039;] = format(&#039;experiment-blurb-template&#039;)&lt;br /&gt;
cfg[&#039;experiment-blurb-module&#039;] = format(&#039;experiment-blurb-module&#039;)&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Sandbox link configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;sandbox-subpage&#039;]&lt;br /&gt;
-- The name of the template subpage typically used for sandboxes.&lt;br /&gt;
cfg[&#039;sandbox-subpage&#039;] = &#039;sandbox&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;template-sandbox-preload&#039;]&lt;br /&gt;
-- Preload file for template sandbox pages.&lt;br /&gt;
cfg[&#039;template-sandbox-preload&#039;] = &#039;Template:Documentation/preload-sandbox&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;module-sandbox-preload&#039;]&lt;br /&gt;
-- Preload file for Lua module sandbox pages.&lt;br /&gt;
cfg[&#039;module-sandbox-preload&#039;] = &#039;Template:Documentation/preload-module-sandbox&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;sandbox-link-display&#039;]&lt;br /&gt;
-- The text to display for &amp;quot;sandbox&amp;quot; links.&lt;br /&gt;
cfg[&#039;sandbox-link-display&#039;] = format(&#039;sandbox-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;sandbox-edit-link-display&#039;]&lt;br /&gt;
-- The text to display for sandbox &amp;quot;edit&amp;quot; links.&lt;br /&gt;
cfg[&#039;sandbox-edit-link-display&#039;] = format(&#039;sandbox-edit-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;sandbox-create-link-display&#039;]&lt;br /&gt;
-- The text to display for sandbox &amp;quot;create&amp;quot; links.&lt;br /&gt;
cfg[&#039;sandbox-create-link-display&#039;] = format(&#039;sandbox-create-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;compare-link-display&#039;]&lt;br /&gt;
-- The text to display for &amp;quot;compare&amp;quot; links.&lt;br /&gt;
cfg[&#039;compare-link-display&#039;] = format(&#039;compare-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;mirror-edit-summary&#039;]&lt;br /&gt;
-- The default edit summary to use when a user clicks the &amp;quot;mirror&amp;quot; link. $1 is a wikilink to the&lt;br /&gt;
-- template page.&lt;br /&gt;
cfg[&#039;mirror-edit-summary&#039;] = &#039;Create sandbox version of $1&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;mirror-link-display&#039;]&lt;br /&gt;
-- The text to display for &amp;quot;mirror&amp;quot; links.&lt;br /&gt;
cfg[&#039;mirror-link-display&#039;] = format(&#039;mirror-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;mirror-link-preload&#039;]&lt;br /&gt;
-- The page to preload when a user clicks the &amp;quot;mirror&amp;quot; link.&lt;br /&gt;
cfg[&#039;mirror-link-preload&#039;] = &#039;Template:Documentation/mirror&#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Test cases link configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;testcases-subpage&#039;]&lt;br /&gt;
-- The name of the template subpage typically used for test cases.&lt;br /&gt;
cfg[&#039;testcases-subpage&#039;] = &#039;testcases&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;template-testcases-preload&#039;]&lt;br /&gt;
-- Preload file for template test cases pages.&lt;br /&gt;
cfg[&#039;template-testcases-preload&#039;] = &#039;Template:Documentation/preload-testcases&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;module-testcases-preload&#039;]&lt;br /&gt;
-- Preload file for Lua module test cases pages.&lt;br /&gt;
cfg[&#039;module-testcases-preload&#039;] = &#039;Template:Documentation/preload-module-testcases&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;testcases-link-display&#039;]&lt;br /&gt;
-- The text to display for &amp;quot;testcases&amp;quot; links.&lt;br /&gt;
cfg[&#039;testcases-link-display&#039;] = format(&#039;testcases-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;testcases-edit-link-display&#039;]&lt;br /&gt;
-- The text to display for test cases &amp;quot;edit&amp;quot; links.&lt;br /&gt;
cfg[&#039;testcases-edit-link-display&#039;] = format(&#039;testcases-edit-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;testcases-create-link-display&#039;]&lt;br /&gt;
-- The text to display for test cases &amp;quot;create&amp;quot; links.&lt;br /&gt;
cfg[&#039;testcases-create-link-display&#039;] = format(&#039;testcases-create-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Add categories blurb configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&#039;add-categories-blurb&#039;]&lt;br /&gt;
-- Text to direct users to add categories to the /doc subpage. Not used if the &amp;quot;content&amp;quot; or&lt;br /&gt;
-- &amp;quot;docname fed&amp;quot; arguments are set, as then it is not clear where to add the categories. $1 is a&lt;br /&gt;
-- link to the /doc subpage with a display value of cfg[&#039;doc-link-display&#039;].&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&#039;add-categories-blurb&#039;] = format(&#039;add-categories-blurb&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;doc-link-display&#039;]&lt;br /&gt;
-- The text to display when linking to the /doc subpage.&lt;br /&gt;
cfg[&#039;doc-link-display&#039;] = &#039;/doc&#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Subpages link configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&#039;subpages-blurb&#039;]&lt;br /&gt;
-- The &amp;quot;Subpages of this template&amp;quot; blurb. $1 is a link to the main template&#039;s subpages with a&lt;br /&gt;
-- display value of cfg[&#039;subpages-link-display&#039;]. In the English version this blurb is simply&lt;br /&gt;
-- the link followed by a period, and the link display provides the actual text.&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&#039;subpages-blurb&#039;] = format(&#039;subpages-blurb&#039;)&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&#039;subpages-link-display&#039;]&lt;br /&gt;
-- The text to display for the &amp;quot;subpages of this page&amp;quot; link. $1 is cfg[&#039;template-pagetype&#039;],&lt;br /&gt;
-- cfg[&#039;module-pagetype&#039;] or cfg[&#039;default-pagetype&#039;], depending on whether the current page is in&lt;br /&gt;
-- the template namespace, the module namespace, or another namespace.&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&#039;subpages-link-display&#039;] = format(&#039;subpages-link-display&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;template-pagetype&#039;]&lt;br /&gt;
-- The pagetype to display for template pages.&lt;br /&gt;
cfg[&#039;template-pagetype&#039;] = format(&#039;template-pagetype&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;module-pagetype&#039;]&lt;br /&gt;
-- The pagetype to display for Lua module pages.&lt;br /&gt;
cfg[&#039;module-pagetype&#039;] = format(&#039;module-pagetype&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;default-pagetype&#039;]&lt;br /&gt;
-- The pagetype to display for pages other than templates or Lua modules.&lt;br /&gt;
cfg[&#039;default-pagetype&#039;] = format(&#039;default-pagetype&#039;)&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Doc link configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;doc-subpage&#039;]&lt;br /&gt;
-- The name of the subpage typically used for documentation pages.&lt;br /&gt;
cfg[&#039;doc-subpage&#039;] = &#039;doc&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;file-docpage-preload&#039;]&lt;br /&gt;
-- Preload file for documentation page in the file namespace.&lt;br /&gt;
cfg[&#039;file-docpage-preload&#039;] = &#039;Template:Documentation/preload-filespace&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;docpage-preload&#039;]&lt;br /&gt;
-- Preload file for template documentation pages in all namespaces.&lt;br /&gt;
cfg[&#039;docpage-preload&#039;] = &#039;Template:Documentation/preload&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;module-preload&#039;]&lt;br /&gt;
-- Preload file for Lua module documentation pages.&lt;br /&gt;
cfg[&#039;module-preload&#039;] = &#039;Template:Documentation/preload-module-doc&#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Print version configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;print-subpage&#039;]&lt;br /&gt;
-- The name of the template subpage used for print versions.&lt;br /&gt;
cfg[&#039;print-subpage&#039;] = &#039;Print&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;print-link-display&#039;]&lt;br /&gt;
-- The text to display when linking to the /Print subpage.&lt;br /&gt;
cfg[&#039;print-link-display&#039;] = &#039;/Print&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;print-blurb&#039;]&lt;br /&gt;
-- Text to display if a /Print subpage exists. $1 is a link to the subpage with a display value of cfg[&#039;print-link-display&#039;].&lt;br /&gt;
cfg[&#039;print-blurb&#039;] = format(&#039;print-blurb&#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;display-print-category&#039;]&lt;br /&gt;
-- Set to true to enable output of cfg[&#039;print-category&#039;] if a /Print subpage exists.&lt;br /&gt;
-- This should be a boolean value (either true or false).&lt;br /&gt;
cfg[&#039;display-print-category&#039;] = true&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;print-category&#039;]&lt;br /&gt;
-- Category to output if cfg[&#039;display-print-category&#039;] is set to true, and a /Print subpage exists.&lt;br /&gt;
cfg[&#039;print-category&#039;] = &#039;Templates with print versions&#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- HTML and CSS configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;main-div-id&#039;]&lt;br /&gt;
-- The &amp;quot;id&amp;quot; attribute of the main HTML &amp;quot;div&amp;quot; tag.&lt;br /&gt;
cfg[&#039;main-div-id&#039;] = &#039;template-documentation&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;main-div-classes&#039;]&lt;br /&gt;
-- The CSS classes added to the main HTML &amp;quot;div&amp;quot; tag.&lt;br /&gt;
cfg[&#039;main-div-class&#039;] = &#039;ts-doc-doc&#039;&lt;br /&gt;
cfg[&#039;header-div-class&#039;] = &#039;ts-doc-header&#039;&lt;br /&gt;
cfg[&#039;heading-div-class&#039;] = &#039;ts-doc-heading&#039;&lt;br /&gt;
cfg[&#039;content-div-class&#039;] = &#039;ts-doc-content&#039;&lt;br /&gt;
cfg[&#039;footer-div-class&#039;] = &#039;ts-doc-footer plainlinks&#039;&lt;br /&gt;
&lt;br /&gt;
cfg[&#039;sandbox-class&#039;] = &#039;ts-doc-sandbox&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;start-box-linkclasses&#039;]&lt;br /&gt;
-- The CSS classes used for the [view][edit][history] or [create] links in the start box.&lt;br /&gt;
cfg[&#039;start-box-linkclasses&#039;] = &#039;ts-tlinks-tlinks mw-editsection-like plainlinks&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;start-box-link-id&#039;]&lt;br /&gt;
-- The HTML &amp;quot;id&amp;quot; attribute for the links in the start box.&lt;br /&gt;
cfg[&#039;start-box-link-id&#039;] = &#039;doc_editlinks&#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Tracking category configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;display-strange-usage-category&#039;]&lt;br /&gt;
-- Set to true to enable output of cfg[&#039;strange-usage-category&#039;] if the module is used on a /doc subpage&lt;br /&gt;
-- or a /testcases subpage. This should be a boolean value (either true or false).&lt;br /&gt;
cfg[&#039;display-strange-usage-category&#039;] = false&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;strange-usage-category&#039;]&lt;br /&gt;
-- Category to output if cfg[&#039;display-strange-usage-category&#039;] is set to true and the module is used on a&lt;br /&gt;
-- /doc subpage or a /testcases subpage.&lt;br /&gt;
cfg[&#039;strange-usage-category&#039;] = &#039;Pages with strange ((documentation)) usage&#039;&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- End configuration&lt;br /&gt;
--&lt;br /&gt;
-- Don&#039;t edit anything below this line.&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
return cfg&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Module:Documentation&amp;diff=35</id>
		<title>Module:Documentation</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Module:Documentation&amp;diff=35"/>
		<updated>2024-04-24T23:23:17Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module implements {{documentation}}.&lt;br /&gt;
&lt;br /&gt;
-- Get required modules.&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local messageBox = require(&#039;Module:Message box&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Get the config table.&lt;br /&gt;
local cfg = mw.loadData(&#039;Module:Documentation/config&#039;)&lt;br /&gt;
local i18n = mw.loadData(&#039;Module:Documentation/i18n&#039;)&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Often-used functions.&lt;br /&gt;
local ugsub = mw.ustring.gsub&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--&lt;br /&gt;
-- These are defined as local functions, but are made available in the p&lt;br /&gt;
-- table for testing purposes.&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function message(cfgKey, valArray, expectType)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Gets a message from the cfg table and formats it if appropriate.&lt;br /&gt;
	-- The function raises an error if the value from the cfg table is not&lt;br /&gt;
	-- of the type expectType. The default type for expectType is &#039;string&#039;.&lt;br /&gt;
	-- If the table valArray is present, strings such as $1, $2 etc. in the&lt;br /&gt;
	-- message are substituted with values from the table keys [1], [2] etc.&lt;br /&gt;
	-- For example, if the message &amp;quot;foo-message&amp;quot; had the value &#039;Foo $2 bar $1.&#039;,&lt;br /&gt;
	-- message(&#039;foo-message&#039;, {&#039;baz&#039;, &#039;qux&#039;}) would return &amp;quot;Foo qux bar baz.&amp;quot;&lt;br /&gt;
	--]]&lt;br /&gt;
	local msg = cfg[cfgKey]&lt;br /&gt;
	expectType = expectType or &#039;string&#039;&lt;br /&gt;
	if type(msg) ~= expectType then&lt;br /&gt;
		error(require(&#039;Module:TNT&#039;).format(&#039;I18n/Documentation&#039;, &#039;cfg-error-msg-type&#039;, cfgKey, expectType, type(msg)), 2)&lt;br /&gt;
	end&lt;br /&gt;
	if not valArray then&lt;br /&gt;
		return msg&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function getMessageVal(match)&lt;br /&gt;
		match = tonumber(match)&lt;br /&gt;
		return valArray[match] or error(require(&#039;Module:TNT&#039;).format(&#039;I18n/Documentation&#039;, &#039;cfg-error-msg-empty&#039;, &#039;$&#039; .. match, cfgKey), 4)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local ret = ugsub(msg, &#039;$([1-9][0-9]*)&#039;, getMessageVal)&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.message = message&lt;br /&gt;
&lt;br /&gt;
local function makeWikilink(page, display)&lt;br /&gt;
	if display then&lt;br /&gt;
		return mw.ustring.format(&#039;[[%s|%s]]&#039;, page, display)&lt;br /&gt;
	else&lt;br /&gt;
		return mw.ustring.format(&#039;[[%s]]&#039;, page)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.makeWikilink = makeWikilink&lt;br /&gt;
&lt;br /&gt;
local function makeCategoryLink(cat, sort)&lt;br /&gt;
	local catns = mw.site.namespaces[14].name&lt;br /&gt;
	return makeWikilink(catns .. &#039;:&#039; .. cat, sort)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.makeCategoryLink = makeCategoryLink&lt;br /&gt;
&lt;br /&gt;
local function makeUrlLink(url, display)&lt;br /&gt;
	return mw.ustring.format(&#039;[%s %s]&#039;, url, display)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.makeUrlLink = makeUrlLink&lt;br /&gt;
&lt;br /&gt;
local function makeToolbar(...)&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	local lim = select(&#039;#&#039;, ...)&lt;br /&gt;
	if lim &amp;lt; 1 then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	for i = 1, lim do&lt;br /&gt;
		ret[#ret + 1] = select(i, ...)&lt;br /&gt;
	end&lt;br /&gt;
	return &#039;&amp;lt;small style=&amp;quot;font-style: normal;&amp;quot;&amp;gt;(&#039; .. table.concat(ret, &#039; &amp;amp;#124; &#039;) .. &#039;)&amp;lt;/small&amp;gt;&#039;&lt;br /&gt;
end	&lt;br /&gt;
&lt;br /&gt;
p.makeToolbar = makeToolbar&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- Argument processing&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunc(funcName)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = getArgs(frame, {&lt;br /&gt;
			valueFunc = function (key, value)&lt;br /&gt;
				if type(value) == &#039;string&#039; then&lt;br /&gt;
					value = value:match(&#039;^%s*(.-)%s*$&#039;) -- Remove whitespace.&lt;br /&gt;
					if key == &#039;heading&#039; or value ~= &#039;&#039; then&lt;br /&gt;
						return value&lt;br /&gt;
					else&lt;br /&gt;
						return nil&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					return value&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		})&lt;br /&gt;
		return p[funcName](args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- Load TemplateStyles&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
p.main = function(frame)&lt;br /&gt;
	local parent = frame.getParent(frame)&lt;br /&gt;
	local output = p._main(parent.args)&lt;br /&gt;
	return frame:extensionTag{ name=&#039;templatestyles&#039;, args = { src= message(&#039;templatestyles-scr&#039;) } } .. output&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- Main function&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- This function defines logic flow for the module.&lt;br /&gt;
	-- @args - table of arguments passed by the user&lt;br /&gt;
	-- &lt;br /&gt;
	-- Messages:&lt;br /&gt;
	-- &#039;main-div-id&#039; --&amp;gt; &#039;template-documentation&#039;&lt;br /&gt;
	-- &#039;main-div-classes&#039; --&amp;gt; &#039;template-documentation iezoomfix&#039;&lt;br /&gt;
	--]]&lt;br /&gt;
	local env = p.getEnvironment(args)&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
	root&lt;br /&gt;
		:wikitext(p._getModuleWikitext(args, env))&lt;br /&gt;
		:wikitext(p.protectionTemplate(env))&lt;br /&gt;
		:wikitext(p.sandboxNotice(args, env))&lt;br /&gt;
		 -- This div tag is from {{documentation/start box}}, but moving it here&lt;br /&gt;
		 -- so that we don&#039;t have to worry about unclosed tags.&lt;br /&gt;
		:tag(&#039;div&#039;)&lt;br /&gt;
			:attr(&#039;id&#039;, message(&#039;main-div-id&#039;))&lt;br /&gt;
			:addClass(message(&#039;main-div-class&#039;))&lt;br /&gt;
			:wikitext(p._startBox(args, env))&lt;br /&gt;
			:wikitext(p._content(args, env))&lt;br /&gt;
			:done()&lt;br /&gt;
		:wikitext(p._endBox(args, env))&lt;br /&gt;
		:wikitext(p.addTrackingCategories(env))&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- Environment settings&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.getEnvironment(args)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Returns a table with information about the environment, including title objects and other namespace- or&lt;br /&gt;
	-- path-related data.&lt;br /&gt;
	-- @args - table of arguments passed by the user&lt;br /&gt;
	--&lt;br /&gt;
	-- Title objects include:&lt;br /&gt;
	-- env.title - the page we are making documentation for (usually the current title)&lt;br /&gt;
	-- env.templateTitle - the template (or module, file, etc.)&lt;br /&gt;
	-- env.docTitle - the /doc subpage.&lt;br /&gt;
	-- env.sandboxTitle - the /sandbox subpage.&lt;br /&gt;
	-- env.testcasesTitle - the /testcases subpage.&lt;br /&gt;
	-- env.printTitle - the print version of the template, located at the /Print subpage.&lt;br /&gt;
	--&lt;br /&gt;
	-- Data includes:&lt;br /&gt;
	-- env.protectionLevels - the protection levels table of the title object.&lt;br /&gt;
	-- env.subjectSpace - the number of the title&#039;s subject namespace.&lt;br /&gt;
	-- env.docSpace - the number of the namespace the title puts its documentation in.&lt;br /&gt;
	-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.&lt;br /&gt;
	-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.&lt;br /&gt;
	-- &lt;br /&gt;
	-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value&lt;br /&gt;
	-- returned will be nil.&lt;br /&gt;
	--]]&lt;br /&gt;
	&lt;br /&gt;
	local env, envFuncs = {}, {}&lt;br /&gt;
&lt;br /&gt;
	-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value&lt;br /&gt;
	-- returned by that function is memoized in the env table so that we don&#039;t call any of the functions&lt;br /&gt;
	-- more than once. (Nils won&#039;t be memoized.)&lt;br /&gt;
	setmetatable(env, {&lt;br /&gt;
		__index = function (t, key)&lt;br /&gt;
			local envFunc = envFuncs[key]&lt;br /&gt;
			if envFunc then&lt;br /&gt;
				local success, val = pcall(envFunc)&lt;br /&gt;
				if success then&lt;br /&gt;
					env[key] = val -- Memoise the value.&lt;br /&gt;
					return val&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	})	&lt;br /&gt;
&lt;br /&gt;
	function envFuncs.title()&lt;br /&gt;
		-- The title object for the current page, or a test page passed with args.page.&lt;br /&gt;
		local title&lt;br /&gt;
		local titleArg = args.page&lt;br /&gt;
		if titleArg then&lt;br /&gt;
			title = mw.title.new(titleArg)&lt;br /&gt;
		else&lt;br /&gt;
			title = mw.title.getCurrentTitle()&lt;br /&gt;
		end&lt;br /&gt;
		return title&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	function envFuncs.templateTitle()&lt;br /&gt;
		--[[&lt;br /&gt;
		-- The template (or module, etc.) title object.&lt;br /&gt;
		-- Messages:&lt;br /&gt;
		-- &#039;sandbox-subpage&#039; --&amp;gt; &#039;sandbox&#039;&lt;br /&gt;
		-- &#039;testcases-subpage&#039; --&amp;gt; &#039;testcases&#039;&lt;br /&gt;
		--]]&lt;br /&gt;
		local subjectSpace = env.subjectSpace&lt;br /&gt;
		local title = env.title&lt;br /&gt;
		local subpage = title.subpageText&lt;br /&gt;
		if subpage == message(&#039;sandbox-subpage&#039;) or subpage == message(&#039;testcases-subpage&#039;) then&lt;br /&gt;
			return mw.title.makeTitle(subjectSpace, title.baseText)&lt;br /&gt;
		else&lt;br /&gt;
			return mw.title.makeTitle(subjectSpace, title.text)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	function envFuncs.docTitle()&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Title object of the /doc subpage.&lt;br /&gt;
		-- Messages:&lt;br /&gt;
		-- &#039;doc-subpage&#039; --&amp;gt; &#039;doc&#039;&lt;br /&gt;
		--]]&lt;br /&gt;
		local title = env.title&lt;br /&gt;
		local docname = args[1] -- User-specified doc page.&lt;br /&gt;
		local docpage&lt;br /&gt;
		if docname then&lt;br /&gt;
			docpage = docname&lt;br /&gt;
		else&lt;br /&gt;
			docpage = env.docpageBase .. &#039;/&#039; .. message(&#039;doc-subpage&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		return mw.title.new(docpage)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	function envFuncs.sandboxTitle()&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Title object for the /sandbox subpage.&lt;br /&gt;
		-- Messages:&lt;br /&gt;
		-- &#039;sandbox-subpage&#039; --&amp;gt; &#039;sandbox&#039;&lt;br /&gt;
		--]]&lt;br /&gt;
		return mw.title.new(env.docpageBase .. &#039;/&#039; .. message(&#039;sandbox-subpage&#039;))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	function envFuncs.testcasesTitle()&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Title object for the /testcases subpage.&lt;br /&gt;
		-- Messages:&lt;br /&gt;
		-- &#039;testcases-subpage&#039; --&amp;gt; &#039;testcases&#039;&lt;br /&gt;
		--]]&lt;br /&gt;
		return mw.title.new(env.docpageBase .. &#039;/&#039; .. message(&#039;testcases-subpage&#039;))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	function envFuncs.printTitle()&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Title object for the /Print subpage.&lt;br /&gt;
		-- Messages:&lt;br /&gt;
		-- &#039;print-subpage&#039; --&amp;gt; &#039;Print&#039;&lt;br /&gt;
		--]]&lt;br /&gt;
		return env.templateTitle:subPageTitle(message(&#039;print-subpage&#039;))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	function envFuncs.protectionLevels()&lt;br /&gt;
		-- The protection levels table of the title object.&lt;br /&gt;
		return env.title.protectionLevels&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	function envFuncs.subjectSpace()&lt;br /&gt;
		-- The subject namespace number.&lt;br /&gt;
		return mw.site.namespaces[env.title.namespace].subject.id&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	function envFuncs.docSpace()&lt;br /&gt;
		-- The documentation namespace number. For most namespaces this is the same as the&lt;br /&gt;
		-- subject namespace. However, pages in the Article, File, MediaWiki or Category&lt;br /&gt;
		-- namespaces must have their /doc, /sandbox and /testcases pages in talk space.&lt;br /&gt;
		local subjectSpace = env.subjectSpace&lt;br /&gt;
		if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then&lt;br /&gt;
			return subjectSpace + 1&lt;br /&gt;
		else&lt;br /&gt;
			return subjectSpace&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	function envFuncs.docpageBase()&lt;br /&gt;
		-- The base page of the /doc, /sandbox, and /testcases subpages.&lt;br /&gt;
		-- For some namespaces this is the talk page, rather than the template page.&lt;br /&gt;
		local templateTitle = env.templateTitle&lt;br /&gt;
		local docSpace = env.docSpace&lt;br /&gt;
		local docSpaceText = mw.site.namespaces[docSpace].name&lt;br /&gt;
		-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.&lt;br /&gt;
		return docSpaceText .. &#039;:&#039; .. templateTitle.text&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	function envFuncs.compareUrl()&lt;br /&gt;
		-- Diff link between the sandbox and the main template using [[Special:ComparePages]].&lt;br /&gt;
		local templateTitle = env.templateTitle&lt;br /&gt;
		local sandboxTitle = env.sandboxTitle&lt;br /&gt;
		if templateTitle.exists and sandboxTitle.exists then&lt;br /&gt;
			local compareUrl = mw.uri.fullUrl(&lt;br /&gt;
				&#039;Special:ComparePages&#039;,&lt;br /&gt;
				{page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}&lt;br /&gt;
			)&lt;br /&gt;
			return tostring(compareUrl)&lt;br /&gt;
		else&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	end		&lt;br /&gt;
&lt;br /&gt;
	return env&lt;br /&gt;
end	&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- Auxiliary templates&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
p.getModuleWikitext = makeInvokeFunc(&#039;_getModuleWikitext&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._getModuleWikitext(args, env)&lt;br /&gt;
	local currentTitle = mw.title.getCurrentTitle()&lt;br /&gt;
	if currentTitle.contentModel ~= &#039;Scribunto&#039; then return end&lt;br /&gt;
	pcall(require, currentTitle.prefixedText) -- if it fails, we don&#039;t care&lt;br /&gt;
	local moduleWikitext =  package.loaded[&amp;quot;Module:Module wikitext&amp;quot;]&lt;br /&gt;
	if moduleWikitext then&lt;br /&gt;
		return moduleWikitext.main()&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.sandboxNotice(args, env)&lt;br /&gt;
	--[=[&lt;br /&gt;
	-- Generates a sandbox notice for display above sandbox pages.&lt;br /&gt;
	-- @args - a table of arguments passed by the user&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	-- &lt;br /&gt;
	-- Messages:&lt;br /&gt;
	-- &#039;sandbox-notice-image&#039; --&amp;gt; &#039;[[Image:Sandbox.svg|50px|alt=|link=]]&#039;&lt;br /&gt;
	-- &#039;sandbox-notice-blurb&#039; --&amp;gt; &#039;This is the $1 for $2.&#039;&lt;br /&gt;
	-- &#039;sandbox-notice-diff-blurb&#039; --&amp;gt; &#039;This is the $1 for $2 ($3).&#039;&lt;br /&gt;
	-- &#039;sandbox-notice-pagetype-template&#039; --&amp;gt; &#039;[[w:Wikipedia:Template test cases|template sandbox]] page&#039;&lt;br /&gt;
	-- &#039;sandbox-notice-pagetype-module&#039; --&amp;gt; &#039;[[w:Wikipedia:Template test cases|module sandbox]] page&#039;&lt;br /&gt;
	-- &#039;sandbox-notice-pagetype-other&#039; --&amp;gt; &#039;sandbox page&#039;&lt;br /&gt;
	-- &#039;sandbox-notice-compare-link-display&#039; --&amp;gt; &#039;diff&#039;&lt;br /&gt;
	-- &#039;sandbox-notice-testcases-blurb&#039; --&amp;gt; &#039;See also the companion subpage for $1.&#039;&lt;br /&gt;
	-- &#039;sandbox-notice-testcases-link-display&#039; --&amp;gt; &#039;test cases&#039;&lt;br /&gt;
	-- &#039;sandbox-category&#039; --&amp;gt; &#039;Template sandboxes&#039;&lt;br /&gt;
	--]=]&lt;br /&gt;
	local title = env.title&lt;br /&gt;
	local sandboxTitle = env.sandboxTitle&lt;br /&gt;
	local templateTitle = env.templateTitle&lt;br /&gt;
	local subjectSpace = env.subjectSpace&lt;br /&gt;
	if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	-- Build the table of arguments to pass to {{ombox}}. We need just two fields, &amp;quot;image&amp;quot; and &amp;quot;text&amp;quot;.&lt;br /&gt;
	local omargs = {}&lt;br /&gt;
	omargs.image = message(&#039;sandbox-notice-image&#039;)&lt;br /&gt;
	-- Get the text. We start with the opening blurb, which is something like&lt;br /&gt;
	-- &amp;quot;This is the template sandbox for [[Template:Foo]] (diff).&amp;quot;&lt;br /&gt;
	local text = &#039;&#039;&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	local isPreviewing = frame:preprocess(&#039;{{REVISIONID}}&#039;) == &#039;&#039; -- True if the page is being previewed.&lt;br /&gt;
	local pagetype&lt;br /&gt;
	if subjectSpace == 10 then&lt;br /&gt;
		pagetype = message(&#039;sandbox-notice-pagetype-template&#039;)&lt;br /&gt;
	elseif subjectSpace == 828 then&lt;br /&gt;
		pagetype = message(&#039;sandbox-notice-pagetype-module&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		pagetype = message(&#039;sandbox-notice-pagetype-other&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	local templateLink = makeWikilink(templateTitle.prefixedText)&lt;br /&gt;
	local compareUrl = env.compareUrl&lt;br /&gt;
	if isPreviewing or not compareUrl then&lt;br /&gt;
		text = text .. message(&#039;sandbox-notice-blurb&#039;, {pagetype, templateLink})&lt;br /&gt;
	else&lt;br /&gt;
		local compareDisplay = message(&#039;sandbox-notice-compare-link-display&#039;)&lt;br /&gt;
		local compareLink = makeUrlLink(compareUrl, compareDisplay)&lt;br /&gt;
		text = text .. message(&#039;sandbox-notice-diff-blurb&#039;, {pagetype, templateLink, compareLink})&lt;br /&gt;
	end&lt;br /&gt;
	-- Get the test cases page blurb if the page exists. This is something like&lt;br /&gt;
	-- &amp;quot;See also the companion subpage for [[Template:Foo/testcases|test cases]].&amp;quot;&lt;br /&gt;
	local testcasesTitle = env.testcasesTitle&lt;br /&gt;
	if testcasesTitle and testcasesTitle.exists then&lt;br /&gt;
		if testcasesTitle.contentModel == &amp;quot;Scribunto&amp;quot; then&lt;br /&gt;
			local testcasesLinkDisplay = message(&#039;sandbox-notice-testcases-link-display&#039;)&lt;br /&gt;
			local testcasesRunLinkDisplay = message(&#039;sandbox-notice-testcases-run-link-display&#039;)&lt;br /&gt;
			local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)&lt;br /&gt;
			local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)&lt;br /&gt;
			text = text .. &#039;&amp;lt;br /&amp;gt;&#039; .. message(&#039;sandbox-notice-testcases-run-blurb&#039;, {testcasesLink, testcasesRunLink})&lt;br /&gt;
		else&lt;br /&gt;
			local testcasesLinkDisplay = message(&#039;sandbox-notice-testcases-link-display&#039;)&lt;br /&gt;
			local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)&lt;br /&gt;
			text = text .. &#039;&amp;lt;br /&amp;gt;&#039; .. message(&#039;sandbox-notice-testcases-blurb&#039;, {testcasesLink})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Add the sandbox to the sandbox category.&lt;br /&gt;
	text = text .. makeCategoryLink(message(&#039;sandbox-category&#039;))&lt;br /&gt;
	omargs.text = text&lt;br /&gt;
	omargs.class = message(&#039;sandbox-class&#039;)&lt;br /&gt;
	local ret = &#039;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
	ret = ret .. messageBox.main(&#039;ombox&#039;, omargs)&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.protectionTemplate(env)&lt;br /&gt;
	-- Generates the padlock icon in the top right.&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	-- Messages:&lt;br /&gt;
	-- &#039;protection-template&#039; --&amp;gt; &#039;pp-template&#039;&lt;br /&gt;
	-- &#039;protection-template-args&#039; --&amp;gt; {docusage = &#039;yes&#039;}&lt;br /&gt;
	local title = env.title&lt;br /&gt;
	local protectionLevels&lt;br /&gt;
	local protectionTemplate = message(&#039;protection-template&#039;)&lt;br /&gt;
	local namespace = title.namespace&lt;br /&gt;
	if not (protectionTemplate and (namespace == 10 or namespace == 828)) then&lt;br /&gt;
		-- Don&#039;t display the protection template if we are not in the template or module namespaces.&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	protectionLevels = env.protectionLevels&lt;br /&gt;
	if not protectionLevels then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local editLevels = protectionLevels.edit&lt;br /&gt;
	local moveLevels = protectionLevels.move&lt;br /&gt;
	if moveLevels and moveLevels[1] == &#039;sysop&#039; or editLevels and editLevels[1] then&lt;br /&gt;
		-- The page is full-move protected, or full, template, or semi-protected.&lt;br /&gt;
		local frame = mw.getCurrentFrame()&lt;br /&gt;
		return frame:expandTemplate{title = protectionTemplate, args = message(&#039;protection-template-args&#039;, nil, &#039;table&#039;)}&lt;br /&gt;
	else&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- Start box&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
p.startBox = makeInvokeFunc(&#039;_startBox&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._startBox(args, env)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- This function generates the start box.&lt;br /&gt;
	-- @args - a table of arguments passed by the user&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	-- &lt;br /&gt;
	-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make&lt;br /&gt;
	-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox&lt;br /&gt;
	-- which generate the box HTML.&lt;br /&gt;
	--]]&lt;br /&gt;
	env = env or p.getEnvironment(args)&lt;br /&gt;
	local links&lt;br /&gt;
	local content = args.content&lt;br /&gt;
	if not content then&lt;br /&gt;
		-- No need to include the links if the documentation is on the template page itself.&lt;br /&gt;
		local linksData = p.makeStartBoxLinksData(args, env)&lt;br /&gt;
		if linksData then&lt;br /&gt;
			links = p.renderStartBoxLinks(linksData)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Generate the start box html.&lt;br /&gt;
	local data = p.makeStartBoxData(args, env, links)&lt;br /&gt;
	if data then&lt;br /&gt;
		return p.renderStartBox(data)&lt;br /&gt;
	else&lt;br /&gt;
		-- User specified no heading.&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeStartBoxLinksData(args, env)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Does initial processing of data to make the [view] [edit] [history] [purge] links.&lt;br /&gt;
	-- @args - a table of arguments passed by the user&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	-- &lt;br /&gt;
	-- Messages:&lt;br /&gt;
	-- &#039;view-link-display&#039; --&amp;gt; &#039;view&#039;&lt;br /&gt;
	-- &#039;edit-link-display&#039; --&amp;gt; &#039;edit&#039;&lt;br /&gt;
	-- &#039;history-link-display&#039; --&amp;gt; &#039;history&#039;&lt;br /&gt;
	-- &#039;purge-link-display&#039; --&amp;gt; &#039;purge&#039;&lt;br /&gt;
	-- &#039;file-docpage-preload&#039; --&amp;gt; &#039;Template:Documentation/preload-filespace&#039;&lt;br /&gt;
	-- &#039;module-preload&#039; --&amp;gt; &#039;Template:Documentation/preload-module-doc&#039;&lt;br /&gt;
	-- &#039;docpage-preload&#039; --&amp;gt; &#039;Template:Documentation/preload&#039;&lt;br /&gt;
	-- &#039;create-link-display&#039; --&amp;gt; &#039;create&#039;&lt;br /&gt;
	--]]&lt;br /&gt;
	local subjectSpace = env.subjectSpace&lt;br /&gt;
	local title = env.title&lt;br /&gt;
	local docTitle = env.docTitle&lt;br /&gt;
	if not title or not docTitle then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	if docTitle.isRedirect then &lt;br /&gt;
		docTitle = docTitle.redirectTarget&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local data = {}&lt;br /&gt;
	data.title = title&lt;br /&gt;
	data.docTitle = docTitle&lt;br /&gt;
	-- View, display, edit, and purge links if /doc exists.&lt;br /&gt;
	data.viewLinkDisplay = i18n[&#039;view-link-display&#039;]&lt;br /&gt;
	data.editLinkDisplay = i18n[&#039;edit-link-display&#039;]&lt;br /&gt;
	data.historyLinkDisplay = i18n[&#039;history-link-display&#039;]&lt;br /&gt;
	data.purgeLinkDisplay = i18n[&#039;purge-link-display&#039;]&lt;br /&gt;
	-- Create link if /doc doesn&#039;t exist.&lt;br /&gt;
	local preload = args.preload&lt;br /&gt;
	if not preload then&lt;br /&gt;
		if subjectSpace == 6 then -- File namespace&lt;br /&gt;
			preload = message(&#039;file-docpage-preload&#039;)&lt;br /&gt;
		elseif subjectSpace == 828 then -- Module namespace&lt;br /&gt;
			preload = message(&#039;module-preload&#039;)&lt;br /&gt;
		else&lt;br /&gt;
			preload = message(&#039;docpage-preload&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	data.preload = preload&lt;br /&gt;
	data.createLinkDisplay = i18n[&#039;create-link-display&#039;]&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderStartBoxLinks(data)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Generates the [view][edit][history][purge] or [create] links from the data table.&lt;br /&gt;
	-- @data - a table of data generated by p.makeStartBoxLinksData&lt;br /&gt;
	--]]&lt;br /&gt;
	&lt;br /&gt;
	local function escapeBrackets(s)&lt;br /&gt;
		-- Escapes square brackets with HTML entities.&lt;br /&gt;
		s = s:gsub(&#039;%[&#039;, &#039;&amp;amp;#91;&#039;) -- Replace square brackets with HTML entities.&lt;br /&gt;
		s = s:gsub(&#039;%]&#039;, &#039;&amp;amp;#93;&#039;)&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local ret&lt;br /&gt;
	local docTitle = data.docTitle&lt;br /&gt;
	local title = data.title&lt;br /&gt;
	if docTitle.exists then&lt;br /&gt;
		local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)&lt;br /&gt;
		local editLink = makeUrlLink(docTitle:fullUrl{action = &#039;edit&#039;}, data.editLinkDisplay)&lt;br /&gt;
		local historyLink = makeUrlLink(docTitle:fullUrl{action = &#039;history&#039;}, data.historyLinkDisplay)&lt;br /&gt;
		local purgeLink = makeUrlLink(title:fullUrl{action = &#039;purge&#039;}, data.purgeLinkDisplay)&lt;br /&gt;
		ret = &#039;[%s] [%s] [%s] [%s]&#039;&lt;br /&gt;
		ret = escapeBrackets(ret)&lt;br /&gt;
		ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)&lt;br /&gt;
	else&lt;br /&gt;
		local createLink = makeUrlLink(docTitle:fullUrl{action = &#039;edit&#039;, preload = data.preload}, data.createLinkDisplay)&lt;br /&gt;
		ret = &#039;[%s]&#039;&lt;br /&gt;
		ret = escapeBrackets(ret)&lt;br /&gt;
		ret = mw.ustring.format(ret, createLink)&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeStartBoxData(args, env, links)&lt;br /&gt;
	--[=[&lt;br /&gt;
	-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.&lt;br /&gt;
	-- @args - a table of arguments passed by the user&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	-- @links - a string containing the [view][edit][history][purge] links - could be nil if there&#039;s an error.&lt;br /&gt;
	--&lt;br /&gt;
	-- Messages:&lt;br /&gt;
	-- &#039;documentation-icon-wikitext&#039; --&amp;gt; &#039;[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=Documentation icon]]&#039;&lt;br /&gt;
	-- &#039;template-namespace-heading&#039; --&amp;gt; &#039;Template documentation&#039;&lt;br /&gt;
	-- &#039;module-namespace-heading&#039; --&amp;gt; &#039;Module documentation&#039;&lt;br /&gt;
	-- &#039;file-namespace-heading&#039; --&amp;gt; &#039;Summary&#039;&lt;br /&gt;
	-- &#039;other-namespaces-heading&#039; --&amp;gt; &#039;Documentation&#039;&lt;br /&gt;
	-- &#039;start-box-linkclasses&#039; --&amp;gt; &#039;mw-editsection-like plainlinks&#039;&lt;br /&gt;
	-- &#039;start-box-link-id&#039; --&amp;gt; &#039;doc_editlinks&#039;&lt;br /&gt;
	-- &#039;testcases-create-link-display&#039; --&amp;gt; &#039;create&#039;&lt;br /&gt;
	--]=]&lt;br /&gt;
	local subjectSpace = env.subjectSpace&lt;br /&gt;
	if not subjectSpace then&lt;br /&gt;
		-- Default to an &amp;quot;other namespaces&amp;quot; namespace, so that we get at least some output&lt;br /&gt;
		-- if an error occurs.&lt;br /&gt;
		subjectSpace = 2&lt;br /&gt;
	end&lt;br /&gt;
	local data = {}&lt;br /&gt;
	&lt;br /&gt;
	-- Heading&lt;br /&gt;
	local heading = args.heading -- Blank values are not removed.&lt;br /&gt;
	if heading == &#039;&#039; then&lt;br /&gt;
		-- Don&#039;t display the start box if the heading arg is defined but blank.&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	if heading then&lt;br /&gt;
		data.heading = heading&lt;br /&gt;
	elseif subjectSpace == 10 then -- Template namespace&lt;br /&gt;
		data.heading = i18n[&#039;template-namespace-heading&#039;]&lt;br /&gt;
	elseif subjectSpace == 828 then -- Module namespace&lt;br /&gt;
		data.heading = i18n[&#039;module-namespace-heading&#039;]&lt;br /&gt;
	elseif subjectSpace == 6 then -- File namespace&lt;br /&gt;
		data.heading = i18n[&#039;file-namespace-heading&#039;]&lt;br /&gt;
	else&lt;br /&gt;
		data.heading = i18n[&#039;other-namespaces-heading&#039;]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Data for the [view][edit][history][purge] or [create] links.&lt;br /&gt;
	if links then&lt;br /&gt;
		data.linksClass = message(&#039;start-box-linkclasses&#039;)&lt;br /&gt;
		data.linksId = message(&#039;start-box-link-id&#039;)&lt;br /&gt;
		data.links = links&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderStartBox(data)&lt;br /&gt;
	-- Renders the start box html.&lt;br /&gt;
	-- @data - a table of data generated by p.makeStartBoxData.&lt;br /&gt;
	local sbox = mw.html.create(&#039;div&#039;)&lt;br /&gt;
	sbox&lt;br /&gt;
		:addClass(message(&#039;header-div-class&#039;))&lt;br /&gt;
		:tag(&#039;div&#039;)&lt;br /&gt;
			:addClass(message(&#039;heading-div-class&#039;))&lt;br /&gt;
			:wikitext(data.heading)&lt;br /&gt;
	local links = data.links&lt;br /&gt;
	if links then&lt;br /&gt;
		sbox&lt;br /&gt;
			:tag(&#039;div&#039;)&lt;br /&gt;
				:addClass(data.linksClass)&lt;br /&gt;
				:attr(&#039;id&#039;, data.linksId)&lt;br /&gt;
				:wikitext(links)&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(sbox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- Documentation content&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
p.content = makeInvokeFunc(&#039;_content&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._content(args, env)&lt;br /&gt;
	-- Displays the documentation contents&lt;br /&gt;
	-- @args - a table of arguments passed by the user&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	env = env or p.getEnvironment(args)&lt;br /&gt;
	local docTitle = env.docTitle&lt;br /&gt;
	local content = args.content&lt;br /&gt;
	if not content and docTitle and docTitle.exists then&lt;br /&gt;
		content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle}&lt;br /&gt;
	end&lt;br /&gt;
	-- The line breaks below are necessary so that &amp;quot;=== Headings ===&amp;quot; at the start and end&lt;br /&gt;
	-- of docs are interpreted correctly.&lt;br /&gt;
	local cbox = mw.html.create(&#039;div&#039;)&lt;br /&gt;
	cbox&lt;br /&gt;
		:addClass(message(&#039;content-div-class&#039;))&lt;br /&gt;
		:wikitext(&#039;\n&#039; .. (content or &#039;&#039;) .. &#039;\n&#039;)&lt;br /&gt;
	return tostring(cbox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.contentTitle = makeInvokeFunc(&#039;_contentTitle&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._contentTitle(args, env)&lt;br /&gt;
	env = env or p.getEnvironment(args)&lt;br /&gt;
	local docTitle = env.docTitle&lt;br /&gt;
	if not args.content and docTitle and docTitle.exists then&lt;br /&gt;
		return docTitle.prefixedText&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- End box&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
p.endBox = makeInvokeFunc(&#039;_endBox&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._endBox(args, env)&lt;br /&gt;
	--[=[&lt;br /&gt;
	-- This function generates the end box (also known as the link box).&lt;br /&gt;
	-- @args - a table of arguments passed by the user&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	--]=]&lt;br /&gt;
	&lt;br /&gt;
	-- Get environment data.&lt;br /&gt;
	env = env or p.getEnvironment(args)&lt;br /&gt;
	local subjectSpace = env.subjectSpace&lt;br /&gt;
	local docTitle = env.docTitle&lt;br /&gt;
	if not subjectSpace or not docTitle then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
		&lt;br /&gt;
	-- Check whether we should output the end box at all. Add the end&lt;br /&gt;
	-- box by default if the documentation exists or if we are in the&lt;br /&gt;
	-- user, module or template namespaces.&lt;br /&gt;
	local linkBox = args[&#039;link box&#039;]&lt;br /&gt;
	if linkBox == &#039;off&#039;&lt;br /&gt;
		or not (&lt;br /&gt;
			docTitle.exists&lt;br /&gt;
			or subjectSpace == 2&lt;br /&gt;
			or subjectSpace == 828&lt;br /&gt;
			or subjectSpace == 10&lt;br /&gt;
		)&lt;br /&gt;
	then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Assemble the footer text field.&lt;br /&gt;
	local text = &#039;&#039;&lt;br /&gt;
	if linkBox then&lt;br /&gt;
		text = text .. linkBox&lt;br /&gt;
	else&lt;br /&gt;
		text = text .. (p.makeDocPageBlurb(args, env) or &#039;&#039;) -- &amp;quot;This documentation is transcluded from [[Foo]].&amp;quot; &lt;br /&gt;
		if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then&lt;br /&gt;
			-- We are in the user, template or module namespaces.&lt;br /&gt;
			-- Add sandbox and testcases links.&lt;br /&gt;
			-- &amp;quot;Editors can experiment in this template&#039;s sandbox and testcases pages.&amp;quot;&lt;br /&gt;
			text = text .. (p.makeExperimentBlurb(args, env) or &#039;&#039;)&lt;br /&gt;
			text = text .. &#039;&amp;lt;br /&amp;gt;&#039;&lt;br /&gt;
			if not args.content and not args[1] then&lt;br /&gt;
				-- &amp;quot;Please add categories to the /doc subpage.&amp;quot;&lt;br /&gt;
				-- Don&#039;t show this message with inline docs or with an explicitly specified doc page,&lt;br /&gt;
				-- as then it is unclear where to add the categories.&lt;br /&gt;
				text = text .. (p.makeCategoriesBlurb(args, env) or &#039;&#039;)&lt;br /&gt;
			end&lt;br /&gt;
			text = text .. &#039; &#039; .. (p.makeSubpagesBlurb(args, env) or &#039;&#039;) --&amp;quot;Subpages of this template&amp;quot;&lt;br /&gt;
			local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates.&lt;br /&gt;
			if printBlurb then&lt;br /&gt;
				text = text .. &#039;&amp;lt;br /&amp;gt;&#039; .. printBlurb&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local ebox = mw.html.create(&#039;div&#039;)&lt;br /&gt;
	ebox&lt;br /&gt;
		:addClass(message(&#039;footer-div-class&#039;))&lt;br /&gt;
		:wikitext(text)&lt;br /&gt;
	return tostring(ebox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeDocPageBlurb(args, env)&lt;br /&gt;
	--[=[&lt;br /&gt;
	-- Makes the blurb &amp;quot;This documentation is transcluded from [[Template:Foo]] (edit, history)&amp;quot;.&lt;br /&gt;
	-- @args - a table of arguments passed by the user&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	-- &lt;br /&gt;
	-- Messages:&lt;br /&gt;
	-- &#039;edit-link-display&#039; --&amp;gt; &#039;edit&#039;&lt;br /&gt;
	-- &#039;history-link-display&#039; --&amp;gt; &#039;history&#039;&lt;br /&gt;
	-- &#039;transcluded-from-blurb&#039; --&amp;gt; &lt;br /&gt;
	-- &#039;The above [[w:Wikipedia:Template documentation|documentation]] &lt;br /&gt;
	-- is [[w:Wikipedia:Transclusion|transcluded]] from $1.&#039;&lt;br /&gt;
	-- &#039;module-preload&#039; --&amp;gt; &#039;Template:Documentation/preload-module-doc&#039;&lt;br /&gt;
	-- &#039;create-link-display&#039; --&amp;gt; &#039;create&#039;&lt;br /&gt;
	-- &#039;create-module-doc-blurb&#039; --&amp;gt;&lt;br /&gt;
	-- &#039;You might want to $1 a documentation page for this [[w:Wikipedia:Lua|Scribunto module]].&#039;&lt;br /&gt;
	--]=]&lt;br /&gt;
	local docTitle = env.docTitle&lt;br /&gt;
	if not docTitle or args.content then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local ret&lt;br /&gt;
	if docTitle.exists then&lt;br /&gt;
		-- /doc exists; link to it.&lt;br /&gt;
		local docLink = makeWikilink(docTitle.prefixedText)&lt;br /&gt;
		local editUrl = docTitle:fullUrl{action = &#039;edit&#039;}&lt;br /&gt;
		local editDisplay = i18n[&#039;edit-link-display&#039;]&lt;br /&gt;
		local editLink = makeUrlLink(editUrl, editDisplay)&lt;br /&gt;
		local historyUrl = docTitle:fullUrl{action = &#039;history&#039;}&lt;br /&gt;
		local historyDisplay = i18n[&#039;history-link-display&#039;]&lt;br /&gt;
		local historyLink = makeUrlLink(historyUrl, historyDisplay)&lt;br /&gt;
		ret = message(&#039;transcluded-from-blurb&#039;, {docLink})&lt;br /&gt;
			.. &#039; &#039;&lt;br /&gt;
			.. makeToolbar(editLink, historyLink)&lt;br /&gt;
			.. &#039;&amp;lt;br /&amp;gt;&#039;&lt;br /&gt;
	elseif env.subjectSpace == 828 then&lt;br /&gt;
		-- /doc does not exist; ask to create it.&lt;br /&gt;
		local createUrl = docTitle:fullUrl{action = &#039;edit&#039;, preload = message(&#039;module-preload&#039;)}&lt;br /&gt;
		local createDisplay = i18n[&#039;create-link-display&#039;]&lt;br /&gt;
		local createLink = makeUrlLink(createUrl, createDisplay)&lt;br /&gt;
		ret = message(&#039;create-module-doc-blurb&#039;, {createLink})&lt;br /&gt;
			.. &#039;&amp;lt;br /&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeExperimentBlurb(args, env)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Renders the text &amp;quot;Editors can experiment in this template&#039;s sandbox (edit | diff) and testcases (edit) pages.&amp;quot;&lt;br /&gt;
	-- @args - a table of arguments passed by the user&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	-- &lt;br /&gt;
	-- Messages:&lt;br /&gt;
	-- &#039;sandbox-link-display&#039; --&amp;gt; &#039;sandbox&#039;&lt;br /&gt;
	-- &#039;sandbox-edit-link-display&#039; --&amp;gt; &#039;edit&#039;&lt;br /&gt;
	-- &#039;compare-link-display&#039; --&amp;gt; &#039;diff&#039;&lt;br /&gt;
	-- &#039;module-sandbox-preload&#039; --&amp;gt; &#039;Template:Documentation/preload-module-sandbox&#039;&lt;br /&gt;
	-- &#039;template-sandbox-preload&#039; --&amp;gt; &#039;Template:Documentation/preload-sandbox&#039;&lt;br /&gt;
	-- &#039;sandbox-create-link-display&#039; --&amp;gt; &#039;create&#039;&lt;br /&gt;
	-- &#039;mirror-edit-summary&#039; --&amp;gt; &#039;Create sandbox version of $1&#039;&lt;br /&gt;
	-- &#039;mirror-link-display&#039; --&amp;gt; &#039;mirror&#039;&lt;br /&gt;
	-- &#039;mirror-link-preload&#039; --&amp;gt; &#039;Template:Documentation/mirror&#039;&lt;br /&gt;
	-- &#039;sandbox-link-display&#039; --&amp;gt; &#039;sandbox&#039;&lt;br /&gt;
	-- &#039;testcases-link-display&#039; --&amp;gt; &#039;testcases&#039;&lt;br /&gt;
	-- &#039;testcases-edit-link-display&#039;--&amp;gt; &#039;edit&#039;&lt;br /&gt;
	-- &#039;template-sandbox-preload&#039; --&amp;gt; &#039;Template:Documentation/preload-sandbox&#039;&lt;br /&gt;
	-- &#039;testcases-create-link-display&#039; --&amp;gt; &#039;create&#039;&lt;br /&gt;
	-- &#039;testcases-link-display&#039; --&amp;gt; &#039;testcases&#039;&lt;br /&gt;
	-- &#039;testcases-edit-link-display&#039; --&amp;gt; &#039;edit&#039;&lt;br /&gt;
	-- &#039;module-testcases-preload&#039; --&amp;gt; &#039;Template:Documentation/preload-module-testcases&#039;&lt;br /&gt;
	-- &#039;template-testcases-preload&#039; --&amp;gt; &#039;Template:Documentation/preload-testcases&#039;&lt;br /&gt;
	-- &#039;experiment-blurb-module&#039; --&amp;gt; &#039;Editors can experiment in this module&#039;s $1 and $2 pages.&#039;&lt;br /&gt;
	-- &#039;experiment-blurb-template&#039; --&amp;gt; &#039;Editors can experiment in this template&#039;s $1 and $2 pages.&#039;&lt;br /&gt;
	--]]&lt;br /&gt;
	local subjectSpace = env.subjectSpace&lt;br /&gt;
	local templateTitle = env.templateTitle&lt;br /&gt;
	local sandboxTitle = env.sandboxTitle&lt;br /&gt;
	local testcasesTitle = env.testcasesTitle&lt;br /&gt;
	local templatePage = templateTitle.prefixedText&lt;br /&gt;
	if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	-- Make links.&lt;br /&gt;
	local sandboxLinks, testcasesLinks&lt;br /&gt;
	if sandboxTitle.exists then&lt;br /&gt;
		local sandboxPage = sandboxTitle.prefixedText&lt;br /&gt;
		local sandboxDisplay = message(&#039;sandbox-link-display&#039;)&lt;br /&gt;
		local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)&lt;br /&gt;
		local sandboxEditUrl = sandboxTitle:fullUrl{action = &#039;edit&#039;}&lt;br /&gt;
		local sandboxEditDisplay = message(&#039;sandbox-edit-link-display&#039;)&lt;br /&gt;
		local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)&lt;br /&gt;
		local compareUrl = env.compareUrl&lt;br /&gt;
		local compareLink&lt;br /&gt;
		if compareUrl then&lt;br /&gt;
			local compareDisplay = message(&#039;compare-link-display&#039;)&lt;br /&gt;
			compareLink = makeUrlLink(compareUrl, compareDisplay)&lt;br /&gt;
		end&lt;br /&gt;
		sandboxLinks = sandboxLink .. &#039; &#039; .. makeToolbar(sandboxEditLink, compareLink)&lt;br /&gt;
	else&lt;br /&gt;
		local sandboxPreload&lt;br /&gt;
		if subjectSpace == 828 then&lt;br /&gt;
			sandboxPreload = message(&#039;module-sandbox-preload&#039;)&lt;br /&gt;
		else&lt;br /&gt;
			sandboxPreload = message(&#039;template-sandbox-preload&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		local sandboxCreateUrl = sandboxTitle:fullUrl{action = &#039;edit&#039;, preload = sandboxPreload}&lt;br /&gt;
		local sandboxCreateDisplay = message(&#039;sandbox-create-link-display&#039;)&lt;br /&gt;
		local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)&lt;br /&gt;
		local mirrorSummary = message(&#039;mirror-edit-summary&#039;, {makeWikilink(templatePage)})&lt;br /&gt;
		local mirrorPreload = message(&#039;mirror-link-preload&#039;)&lt;br /&gt;
		local mirrorUrl = sandboxTitle:fullUrl{action = &#039;edit&#039;, preload = mirrorPreload, summary = mirrorSummary}&lt;br /&gt;
		local mirrorDisplay = message(&#039;mirror-link-display&#039;)&lt;br /&gt;
		local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)&lt;br /&gt;
		sandboxLinks = message(&#039;sandbox-link-display&#039;) .. &#039; &#039; .. makeToolbar(sandboxCreateLink, mirrorLink)&lt;br /&gt;
	end&lt;br /&gt;
	if testcasesTitle.exists then&lt;br /&gt;
		local testcasesPage = testcasesTitle.prefixedText&lt;br /&gt;
		local testcasesDisplay = message(&#039;testcases-link-display&#039;)&lt;br /&gt;
		local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)&lt;br /&gt;
		local testcasesEditUrl = testcasesTitle:fullUrl{action = &#039;edit&#039;}&lt;br /&gt;
		local testcasesEditDisplay = message(&#039;testcases-edit-link-display&#039;)&lt;br /&gt;
		local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)&lt;br /&gt;
		testcasesLinks = testcasesLink .. &#039; &#039; .. makeToolbar(testcasesEditLink)&lt;br /&gt;
	else&lt;br /&gt;
		local testcasesPreload&lt;br /&gt;
		if subjectSpace == 828 then&lt;br /&gt;
			testcasesPreload = message(&#039;module-testcases-preload&#039;)&lt;br /&gt;
		else&lt;br /&gt;
			testcasesPreload = message(&#039;template-testcases-preload&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		local testcasesCreateUrl = testcasesTitle:fullUrl{action = &#039;edit&#039;, preload = testcasesPreload}&lt;br /&gt;
		local testcasesCreateDisplay = message(&#039;testcases-create-link-display&#039;)&lt;br /&gt;
		local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)&lt;br /&gt;
		testcasesLinks = message(&#039;testcases-link-display&#039;) .. &#039; &#039; .. makeToolbar(testcasesCreateLink)&lt;br /&gt;
	end&lt;br /&gt;
	local messageName&lt;br /&gt;
	if subjectSpace == 828 then&lt;br /&gt;
		messageName = &#039;experiment-blurb-module&#039;&lt;br /&gt;
	else&lt;br /&gt;
		messageName = &#039;experiment-blurb-template&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return message(messageName, {sandboxLinks, testcasesLinks})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeCategoriesBlurb(args, env)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Generates the text &amp;quot;Please add categories to the /doc subpage.&amp;quot;&lt;br /&gt;
	-- @args - a table of arguments passed by the user&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	-- Messages:&lt;br /&gt;
	-- &#039;doc-link-display&#039; --&amp;gt; &#039;/doc&#039;&lt;br /&gt;
	-- &#039;add-categories-blurb&#039; --&amp;gt; &#039;Please add categories to the $1 subpage.&#039;&lt;br /&gt;
	--]]&lt;br /&gt;
	local docTitle = env.docTitle&lt;br /&gt;
	if not docTitle then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local docPathLink = makeWikilink(docTitle.prefixedText, message(&#039;doc-link-display&#039;))&lt;br /&gt;
	return message(&#039;add-categories-blurb&#039;, {docPathLink})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeSubpagesBlurb(args, env)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Generates the &amp;quot;Subpages of this template&amp;quot; link.&lt;br /&gt;
	-- @args - a table of arguments passed by the user&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	&lt;br /&gt;
	-- Messages:&lt;br /&gt;
	-- &#039;template-pagetype&#039; --&amp;gt; &#039;template&#039;&lt;br /&gt;
	-- &#039;module-pagetype&#039; --&amp;gt; &#039;module&#039;&lt;br /&gt;
	-- &#039;default-pagetype&#039; --&amp;gt; &#039;page&#039;&lt;br /&gt;
	-- &#039;subpages-link-display&#039; --&amp;gt; &#039;Subpages of this $1&#039;&lt;br /&gt;
	--]]&lt;br /&gt;
	local subjectSpace = env.subjectSpace&lt;br /&gt;
	local templateTitle = env.templateTitle&lt;br /&gt;
	if not subjectSpace or not templateTitle then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local pagetype&lt;br /&gt;
	if subjectSpace == 10 then&lt;br /&gt;
		pagetype = message(&#039;template-pagetype&#039;)&lt;br /&gt;
	elseif subjectSpace == 828 then&lt;br /&gt;
		pagetype = message(&#039;module-pagetype&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		pagetype = message(&#039;default-pagetype&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	local subpagesLink = makeWikilink(&lt;br /&gt;
		&#039;Special:PrefixIndex/&#039; .. templateTitle.prefixedText .. &#039;/&#039;,&lt;br /&gt;
		message(&#039;subpages-link-display&#039;, {pagetype})&lt;br /&gt;
	)&lt;br /&gt;
	return message(&#039;subpages-blurb&#039;, {subpagesLink})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makePrintBlurb(args, env)&lt;br /&gt;
	--[=[&lt;br /&gt;
	-- Generates the blurb displayed when there is a print version of the template available.&lt;br /&gt;
	-- @args - a table of arguments passed by the user&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	--&lt;br /&gt;
	-- Messages:&lt;br /&gt;
	-- &#039;print-link-display&#039; --&amp;gt; &#039;/Print&#039;&lt;br /&gt;
	-- &#039;print-blurb&#039; --&amp;gt; &#039;A [[Help:Books/for experts#Improving the book layout|print version]]&#039;&lt;br /&gt;
	--		.. &#039; of this template exists at $1.&#039;&lt;br /&gt;
	--		.. &#039; If you make a change to this template, please update the print version as well.&#039;&lt;br /&gt;
	-- &#039;display-print-category&#039; --&amp;gt; true&lt;br /&gt;
	-- &#039;print-category&#039; --&amp;gt; &#039;Templates with print versions&#039;&lt;br /&gt;
	--]=]&lt;br /&gt;
	local printTitle = env.printTitle&lt;br /&gt;
	if not printTitle then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local ret&lt;br /&gt;
	if printTitle.exists then&lt;br /&gt;
		local printLink = makeWikilink(printTitle.prefixedText, message(&#039;print-link-display&#039;))&lt;br /&gt;
		ret = message(&#039;print-blurb&#039;, {printLink})&lt;br /&gt;
		local displayPrintCategory = message(&#039;display-print-category&#039;, nil, &#039;boolean&#039;)&lt;br /&gt;
		if displayPrintCategory then&lt;br /&gt;
			ret = ret .. makeCategoryLink(message(&#039;print-category&#039;))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- Tracking categories&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.addTrackingCategories(env)&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Check if {{documentation}} is transcluded on a /doc or /testcases page.&lt;br /&gt;
	-- @env - environment table containing title objects, etc., generated with p.getEnvironment&lt;br /&gt;
	&lt;br /&gt;
	-- Messages:&lt;br /&gt;
	-- &#039;display-strange-usage-category&#039; --&amp;gt; true&lt;br /&gt;
	-- &#039;doc-subpage&#039; --&amp;gt; &#039;doc&#039;&lt;br /&gt;
	-- &#039;testcases-subpage&#039; --&amp;gt; &#039;testcases&#039;&lt;br /&gt;
	-- &#039;strange-usage-category&#039; --&amp;gt; &#039;Wikipedia pages with strange ((documentation)) usage&#039;&lt;br /&gt;
	-- &lt;br /&gt;
	-- /testcases pages in the module namespace are not categorised, as they may have&lt;br /&gt;
	-- {{documentation}} transcluded automatically.&lt;br /&gt;
	--]]&lt;br /&gt;
	local title = env.title&lt;br /&gt;
	local subjectSpace = env.subjectSpace&lt;br /&gt;
	if not title or not subjectSpace then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local subpage = title.subpageText&lt;br /&gt;
	local ret = &#039;&#039;&lt;br /&gt;
	if message(&#039;display-strange-usage-category&#039;, nil, &#039;boolean&#039;)&lt;br /&gt;
		and (&lt;br /&gt;
			subpage == message(&#039;doc-subpage&#039;)&lt;br /&gt;
			or subjectSpace ~= 828 and subpage == message(&#039;testcases-subpage&#039;)&lt;br /&gt;
		)&lt;br /&gt;
	then&lt;br /&gt;
		ret = ret .. makeCategoryLink(message(&#039;strange-usage-category&#039;))&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:IsDocSubpage&amp;diff=33</id>
		<title>Template:IsDocSubpage</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:IsDocSubpage&amp;diff=33"/>
		<updated>2024-04-24T23:23:16Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#ifexpr: (&lt;br /&gt;
	{{#ifeq:{{lc:{{SUBPAGENAME}}}}|{{lc:{{{override|doc}}}}}|1|0}} or (&lt;br /&gt;
		{{#ifeq:{{lc:{{#titleparts:{{FULLPAGENAME}}|-1|-2}}}}|{{lc:{{{override|doc}}}}}|1|0}}&lt;br /&gt;
		and {{#if:{{#translation:}}|1|0}}&lt;br /&gt;
	)&lt;br /&gt;
)&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{{true|1}}}&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{{false|}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;/includeonly&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage and interwikis in Wikidata, not here! --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Translatable/en&amp;diff=31</id>
		<title>Template:Translatable/en</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Translatable/en&amp;diff=31"/>
		<updated>2024-04-24T23:23:16Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#ifeq:{{pagelang|{{{1|{{FULLPAGENAME}}}}}}}|&lt;br /&gt;
|{{{1|{{FULLPAGENAME}}}}}&lt;br /&gt;
|{{#invoke:String|sub|{{{1|{{FULLPAGENAME}}}}}&lt;br /&gt;
  |1&lt;br /&gt;
  |{{#expr:{{#invoke:String|len|{{{1|{{FULLPAGENAME}}}}}}}-{{#invoke:String|len|{{pagelang|{{{1|{{FULLPAGENAME}}}}}}}}}-1}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
{{Lua|Module:String}}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
* {{tlx|translatable}}&lt;br /&gt;
{{translatable}}&lt;br /&gt;
* {{tlx|translatable|2=Page name}}&lt;br /&gt;
{{translatable|1=Page name}}&lt;br /&gt;
* {{tlx|translatable|2=Page name/{{PAGELANGUAGE}} }}&lt;br /&gt;
{{translatable|1=Page name/{{PAGELANGUAGE}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Internationalization templates{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Localized_link/en&amp;diff=29</id>
		<title>Template:Localized link/en</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Localized_link/en&amp;diff=29"/>
		<updated>2024-04-24T23:23:16Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifeq:{{FULLPAGENAME:{{{1}}}}}|{{FULLPAGENAME:{{translatable}}}}&amp;lt;!--self link (including translation pages)--&amp;gt;&lt;br /&gt;
  |&amp;lt;b&amp;gt;&lt;br /&gt;
}}[[Special:MyLanguage/{{{1}}}|{{#if:{{{2|}}}&lt;br /&gt;
|{{{2}}}&lt;br /&gt;
|{{{2|{{#ifexist:Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page display title/{{PAGELANGUAGE}}&amp;lt;!--if the source page, PAGELANGUAGE returns en--&amp;gt;&lt;br /&gt;
  |{{#if:{{{nsp|}}}&lt;br /&gt;
    |{{#if:{{PAGENAME:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} | nsp = 0 }} }}&lt;br /&gt;
      |{{PAGENAME:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} | nsp = 0 }} }}&lt;br /&gt;
      |{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} | nsp = 0 }}&lt;br /&gt;
    }}&lt;br /&gt;
    |{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} }}&lt;br /&gt;
  }}&lt;br /&gt;
  &amp;lt;!--if the translation page does not exist (or called from the source page), output as is--&amp;gt;&lt;br /&gt;
  |{{#if:{{{nsp|}}}&lt;br /&gt;
    |{{#if:{{PAGENAME:{{{1}}}}}&lt;br /&gt;
      |{{PAGENAME:{{{1}}}}}&lt;br /&gt;
      |{{{1}}}&lt;br /&gt;
    }}&lt;br /&gt;
    |{{{1}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&amp;lt;!--#ifexist--&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}&amp;lt;!--{{{2|--&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;!--#if:{{{2|}}}--&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;]]&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifeq:{{FULLPAGENAME:{{{1}}}}}|{{FULLPAGENAME:{{translatable}}}}&amp;lt;!--self link (including translation pages)--&amp;gt;&lt;br /&gt;
  |&amp;lt;/b&amp;gt;&lt;br /&gt;
}}&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;[[:{{{1}}}| ]]&amp;lt;/span&amp;gt;&amp;lt;!-- T63547 --&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
{{tsh|ll|LL}}&lt;br /&gt;
{{High-use|35000}}&lt;br /&gt;
&lt;br /&gt;
== Purpose ==&lt;br /&gt;
This helper template can be used to link to [[Special:LanguageStats|translatable pages]] in the user&#039;s language.&lt;br /&gt;
It uses the special page prefix &amp;lt;code&amp;gt;Special:MyLanguage/&amp;lt;/code&amp;gt;, which checks if there is a translated version of a page in the user&#039;s language, and links to it if there is one, and links to a fallback language where available, or the default wiki language version (English in MediaWiki) if there isn&#039;t.&lt;br /&gt;
&lt;br /&gt;
It should be used in translated pages, so that they link to the right page even if there is no translated page in that language.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
{{Localized link/doc}}&lt;br /&gt;
&lt;br /&gt;
If the &amp;quot;&amp;lt;code&amp;gt;nsp&amp;lt;/code&amp;gt;&amp;quot; parameter is not defined, as link text this displays the full pagename (including the namespace); otherwise — if the &amp;quot;&amp;lt;code&amp;gt;nsp&amp;lt;/code&amp;gt;&amp;quot; parameter is defined to any value the link text displays the short pagename (without the namespace).&lt;br /&gt;
&lt;br /&gt;
=== Examples of simple usage ===&lt;br /&gt;
{{(}}{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
! Use&lt;br /&gt;
! Becomes&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Communication}}&lt;br /&gt;
{{!}} {{ll|Communication}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Communication|コミュニケーション}}&lt;br /&gt;
{{!}} {{ll|Communication|コミュニケーション}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Project:About}}&lt;br /&gt;
{{!}} {{ll|Project:About}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Project:About|nsp{{=}}0}}&lt;br /&gt;
{{!}} {{ll|Project:About|nsp=0}}&lt;br /&gt;
{{!}}{{)}}&lt;br /&gt;
&lt;br /&gt;
== Usage in translatable pages ==&lt;br /&gt;
&lt;br /&gt;
On pages prepared for translation with the {{ll|Extension:Translate|nsp=0}} extension, this template may be used in three ways.&lt;br /&gt;
&lt;br /&gt;
# Substitute this template, then embed the wikilink target in a {{#tag:syntaxhighlight|{{^(}}tvar name=id{{)^}}...{{^(}}/tvar{{)^}}|lang=html|inline=1}}, separate from the translatable text of the link.&lt;br /&gt;
#: For example, instead of &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ll|Communication|About communication}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, the translation markup in the translatable page will be {{#tag:syntaxhighlight|[[{{^(}}tvar name=1{{)^}}Special:MyLanguage/Communication{{^(}}/tvar{{)^}}|About communication]]|lang=html|inline=1}}.&lt;br /&gt;
# Alternatively, exclude this code from the translatable section.&lt;br /&gt;
#: For example, for &amp;lt;code&amp;gt;some text &amp;lt;nowiki&amp;gt;{{ll|Communication|About communication}}&amp;lt;/nowiki&amp;gt; some text&amp;lt;/code&amp;gt;, the translation markup in the translatable page will be:&lt;br /&gt;
#: {{#tag:syntaxhighlight|{{^(}}translate{{)^}}some text{{^(}}/translate{{)^}} {{((}}ll{{!}}Communication{{!}}2={{^(}}translate{{)^}}About communication{{^(}}/translate{{)^}}{{))}} {{^(}}translate{{)^}}some text{{^(}}/translate{{)^}}|lang=html|inline=1}}&lt;br /&gt;
#: This is useful for bulleted lists of links, e.g. in the &amp;quot;See also:&amp;quot; sections.&lt;br /&gt;
# If link text is the same as the name of the target page, all of the code could also be embedded into {{tag|tvar|open}}.&lt;br /&gt;
#: For example, instead of {{Tlx|ll|Communication}}, the wikicode in the translatable page will be {{#tag:syntaxhighlight|{{^(}}tvar name=1{{)^}}{{((}}ll{{!}}Communication{{))}}{{^(}}/tvar{{)^}}|lang=html|inline=1}}.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Template:Localized link/messagedoc]] — should be used for message documentation in translatable pages that use this template.&lt;br /&gt;
* {{tl|Translatable template}} - alias {{tl|TNT}} or {{tl|tnt}}&lt;br /&gt;
* {{tl|Translatable template name}} - alias {{tl|TNTN}} or {{tl|tntn}}&lt;br /&gt;
* {{tl|Page language link}} - alias {{tl|pll}} - add a link from a translatable page to another translatable page in the same language&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Internationalization templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Documentation/en&amp;diff=27</id>
		<title>Template:Documentation/en</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Documentation/en&amp;diff=27"/>
		<updated>2024-04-24T23:23:13Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
{{Lua|Module:Documentation}}&lt;br /&gt;
This template automatically displays a documentation box like the one you are seeing now, of which the content is sometimes transcluded from another page.&lt;br /&gt;
It is intended for pages which are [[Special:MyLanguage/Help:Transclusion|transcluded]] in other pages, i.e. templates, whether in the template namespace or not.&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
&lt;br /&gt;
===Customising display===&lt;br /&gt;
&lt;br /&gt;
Overrides exist to customise the output in special cases:&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;documentation{{!}}&#039;&#039;&#039;heading&#039;&#039;&#039;=&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt; - change the text of the &amp;quot;documentation&amp;quot; heading. If this is set to blank, the entire heading line (including the first [edit] link) will also disappear.&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
This template allows any page to use any documentation page, and makes it possible to protect templates while allowing anyone to edit the template&#039;s documentation and categories.&lt;br /&gt;
It also reduces server resources by circumventing a [[w:Wikipedia:Template limits|technical limitation of templates]] (see a [[:en:Special:Diff/69888944|developer&#039;s explanation]]).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[w:Template:Documentation subpage]]&lt;br /&gt;
* {{tim|Documentation}}&lt;br /&gt;
* [[w:Wikipedia:Template documentation]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Formatting templates{{#translation:}}|Template documentation]]&lt;br /&gt;
[[Category:Template documentation{{#translation:}}| ]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#if:{{{content|}}}|&lt;br /&gt;
[[Category:Template documentation pages{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Template:Documentation&amp;diff=25</id>
		<title>Template:Documentation</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Template:Documentation&amp;diff=25"/>
		<updated>2024-04-24T23:23:13Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
{{Lua|Module:Documentation}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt; This template automatically displays a documentation box like the one you are seeing now, of which the content is sometimes transcluded from another page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; It is intended for pages which are [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Help:Transclusion&amp;lt;/tvar&amp;gt;|transcluded]] in other pages, i.e. templates, whether in the template namespace or not.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Usage== &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Customising display=== &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Overrides exist to customise the output in special cases:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;documentation{{!}}&#039;&#039;&#039;heading&#039;&#039;&#039;=&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt; - &amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; change the text of the &amp;quot;documentation&amp;quot; heading.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt; If this is set to blank, the entire heading line (including the first [edit] link) will also disappear.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Rationale== &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt; This template allows any page to use any documentation page, and makes it possible to protect templates while allowing anyone to edit the template&#039;s documentation and categories.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; It also reduces server resources by circumventing a [[w:Wikipedia:Template limits|technical limitation of templates]] (see a [[&amp;lt;tvar name=1&amp;gt;:en:Special:Diff/69888944&amp;lt;/tvar&amp;gt;|developer&#039;s explanation]]).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==See also== &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt; [[w:Template:Documentation subpage]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tim|Documentation}}&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; [[w:Wikipedia:Template documentation]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Formatting templates{{#translation:}}|Template documentation]]&lt;br /&gt;
[[Category:Template documentation{{#translation:}}| ]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#if:{{{content|}}}|&lt;br /&gt;
[[Category:Template documentation pages{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Module:Message_box/configuration&amp;diff=23</id>
		<title>Module:Message box/configuration</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Module:Message_box/configuration&amp;diff=23"/>
		<updated>2024-04-24T23:23:13Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--------------------------------------------------------------------------------&lt;br /&gt;
--                          Message box configuration                         --&lt;br /&gt;
--                                                                            --&lt;br /&gt;
-- This module contains configuration data for [[Module:Message box]].        --&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	ambox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &#039;ambox-speedy&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon clock-destructive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;ambox-delete&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon alert-destructive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			warning = { -- alias for content&lt;br /&gt;
				class = &#039;ambox-content&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon notice-warning.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;ambox-content&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon notice-warning.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &#039;ambox-style&#039;,&lt;br /&gt;
				image = &#039;Edit-clear.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &#039;ambox-move&#039;,&lt;br /&gt;
				image = &#039;Merge-split-transwiki default.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &#039;ambox-protection&#039;,&lt;br /&gt;
				image = &#039;Semi-protection-shackle-keyhole.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;ambox-notice&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon information-progressive.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default                     = &#039;notice&#039;,&lt;br /&gt;
		allowBlankParams            = {&#039;talk&#039;, &#039;sect&#039;, &#039;date&#039;, &#039;issue&#039;, &#039;fix&#039;, &#039;subst&#039;, &#039;hidden&#039;},&lt;br /&gt;
		allowSmall                  = true,&lt;br /&gt;
		smallParam                  = &#039;left&#039;,&lt;br /&gt;
		smallClass                  = &#039;mbox-small-left&#039;,&lt;br /&gt;
		substCheck                  = true,&lt;br /&gt;
		classes                     = {&#039;metadata&#039;, &#039;plainlinks&#039;, &#039;ambox&#039;},&lt;br /&gt;
		imageEmptyCell              = true,&lt;br /&gt;
		imageCheckBlank             = true,&lt;br /&gt;
		imageSmallSize              = &#039;20x20px&#039;,&lt;br /&gt;
		imageCellDiv                = true,&lt;br /&gt;
		useCollapsibleTextFields    = true,&lt;br /&gt;
		imageRightNone              = true,&lt;br /&gt;
		sectionDefault              = &#039;article&#039;,&lt;br /&gt;
		allowMainspaceCategories    = true,&lt;br /&gt;
		templateCategory            = &#039;Article message templates&#039;,&lt;br /&gt;
	        templateCategoryRequireName = true,&lt;br /&gt;
		templateErrorCategory       = nil,&lt;br /&gt;
		templateErrorParamsToCheck  = {&#039;issue&#039;, &#039;fix&#039;, &#039;subst&#039;}&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	cmbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &#039;cmbox-speedy&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon clock-destructive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;cmbox-delete&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon alert-destructive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;cmbox-content&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon notice-warning.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &#039;cmbox-style&#039;,&lt;br /&gt;
				image = &#039;Edit-clear.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &#039;cmbox-move&#039;,&lt;br /&gt;
				image = &#039;Merge-split-transwiki default.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &#039;cmbox-protection&#039;,&lt;br /&gt;
				image = &#039;Semi-protection-shackle-keyhole.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;cmbox-notice&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon information-progressive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			caution = {&lt;br /&gt;
				class = &#039;cmbox-style&#039;,&lt;br /&gt;
				image = &#039;Ambox warning yellow.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &#039;notice&#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&#039;plainlinks&#039;, &#039;cmbox&#039;},&lt;br /&gt;
		imageEmptyCell       = true&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	fmbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			warning = {&lt;br /&gt;
				class = &#039;fmbox-warning&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon clock-destructive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			editnotice = {&lt;br /&gt;
				class = &#039;fmbox-editnotice&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon information-progressive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			system = {&lt;br /&gt;
				class = &#039;fmbox-system&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon information-progressive.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &#039;system&#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&#039;plainlinks&#039;, &#039;fmbox&#039;},&lt;br /&gt;
		imageEmptyCell       = false,&lt;br /&gt;
		imageRightNone       = false&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	imbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &#039;imbox-speedy&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon clock-destructive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;imbox-delete&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon alert-destructive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;imbox-content&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon notice-warning.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &#039;imbox-style&#039;,&lt;br /&gt;
				image = &#039;Edit-clear.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &#039;imbox-move&#039;,&lt;br /&gt;
				image = &#039;Merge-split-transwiki default.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &#039;imbox-protection&#039;,&lt;br /&gt;
				image = &#039;Semi-protection-shackle-keyhole.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			license = {&lt;br /&gt;
				class = &#039;imbox-license licensetpl&#039;,&lt;br /&gt;
				image = &#039;Imbox-license.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			featured = {&lt;br /&gt;
				class = &#039;imbox-featured&#039;,&lt;br /&gt;
				image = &#039;Cscr-featured.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;imbox-notice&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon information-progressive.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &#039;notice&#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&#039;imbox&#039;},&lt;br /&gt;
		usePlainlinksParam   = true,&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		below                = true,&lt;br /&gt;
		templateCategory     = &#039;File message boxes&#039;&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	ombox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &#039;ombox-speedy&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon clock-destructive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;ombox-delete&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon alert-destructive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			warning = { -- alias for content&lt;br /&gt;
				class = &#039;ombox-content&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon notice-warning.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;ombox-content&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon notice-warning.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &#039;ombox-style&#039;,&lt;br /&gt;
				image = &#039;Edit-clear.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &#039;ombox-move&#039;,&lt;br /&gt;
				image = &#039;Merge-split-transwiki default.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &#039;ombox-protection&#039;,&lt;br /&gt;
				image = &#039;Semi-protection-shackle-keyhole.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;ombox-notice&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon information-progressive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			critical = {&lt;br /&gt;
				class = &#039;mbox-critical&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon clock-destructive.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &#039;notice&#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&#039;plainlinks&#039;, &#039;ombox&#039;},&lt;br /&gt;
		allowSmall           = true,&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		imageRightNone       = true&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	tmbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &#039;tmbox-speedy&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon clock-destructive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;tmbox-delete&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon alert-destructive.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;tmbox-content&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon notice-warning.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &#039;tmbox-style&#039;,&lt;br /&gt;
				image = &#039;Edit-clear.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &#039;tmbox-move&#039;,&lt;br /&gt;
				image = &#039;Merge-split-transwiki default.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &#039;tmbox-protection&#039;,&lt;br /&gt;
				image = &#039;Semi-protection-shackle-keyhole.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;tmbox-notice&#039;,&lt;br /&gt;
				image = &#039;OOjs UI icon information-progressive.svg&#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &#039;notice&#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&#039;plainlinks&#039;, &#039;tmbox&#039;},&lt;br /&gt;
		allowSmall           = true,&lt;br /&gt;
		imageRightNone       = true,&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		imageEmptyCellStyle  = true,&lt;br /&gt;
		templateCategory     = &#039;Talk message boxes&#039;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
	<entry>
		<id>https://map-wiki.com/index.php?title=Module:Arguments&amp;diff=21</id>
		<title>Module:Arguments</title>
		<link rel="alternate" type="text/html" href="https://map-wiki.com/index.php?title=Module:Arguments&amp;diff=21"/>
		<updated>2024-04-24T23:23:12Z</updated>

		<summary type="html">&lt;p&gt;Raccoondad: 1 revision imported&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module provides easy processing of arguments passed to Scribunto from&lt;br /&gt;
-- #invoke. It is intended for use by other Lua modules, and should not be&lt;br /&gt;
-- called from #invoke directly.&lt;br /&gt;
&lt;br /&gt;
local libraryUtil = require(&#039;libraryUtil&#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
&lt;br /&gt;
local arguments = {}&lt;br /&gt;
&lt;br /&gt;
-- Generate four different tidyVal functions, so that we don&#039;t have to check the&lt;br /&gt;
-- options every time we call it.&lt;br /&gt;
&lt;br /&gt;
local function tidyValDefault(key, val)&lt;br /&gt;
	if type(val) == &#039;string&#039; then&lt;br /&gt;
		val = val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
		if val == &#039;&#039; then&lt;br /&gt;
			return nil&lt;br /&gt;
		else&lt;br /&gt;
			return val&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValTrimOnly(key, val)&lt;br /&gt;
	if type(val) == &#039;string&#039; then&lt;br /&gt;
		return val:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValRemoveBlanksOnly(key, val)&lt;br /&gt;
	if type(val) == &#039;string&#039; then&lt;br /&gt;
		if val:find(&#039;%S&#039;) then&lt;br /&gt;
			return val&lt;br /&gt;
		else&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValNoChange(key, val)&lt;br /&gt;
	return val&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function matchesTitle(given, title)&lt;br /&gt;
	local tp = type( given )&lt;br /&gt;
	return (tp == &#039;string&#039; or tp == &#039;number&#039;) and mw.title.new( given ).prefixedText == title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local translate_mt = { __index = function(t, k) return k end }&lt;br /&gt;
&lt;br /&gt;
function arguments.getArgs(frame, options)&lt;br /&gt;
	checkType(&#039;getArgs&#039;, 1, frame, &#039;table&#039;, true)&lt;br /&gt;
	checkType(&#039;getArgs&#039;, 2, options, &#039;table&#039;, true)&lt;br /&gt;
	frame = frame or {}&lt;br /&gt;
	options = options or {}&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Set up argument translation.&lt;br /&gt;
	--]]&lt;br /&gt;
	options.translate = options.translate or {}&lt;br /&gt;
	if getmetatable(options.translate) == nil then&lt;br /&gt;
		setmetatable(options.translate, translate_mt)&lt;br /&gt;
	end&lt;br /&gt;
	if options.backtranslate == nil then&lt;br /&gt;
		options.backtranslate = {}&lt;br /&gt;
		for k,v in pairs(options.translate) do&lt;br /&gt;
			options.backtranslate[v] = k&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if options.backtranslate and getmetatable(options.backtranslate) == nil then&lt;br /&gt;
		setmetatable(options.backtranslate, {&lt;br /&gt;
			__index = function(t, k)&lt;br /&gt;
				if options.translate[k] ~= k then&lt;br /&gt;
					return nil&lt;br /&gt;
				else&lt;br /&gt;
					return k&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Get the argument tables. If we were passed a valid frame object, get the&lt;br /&gt;
	-- frame arguments (fargs) and the parent frame arguments (pargs), depending&lt;br /&gt;
	-- on the options set and on the parent frame&#039;s availability. If we weren&#039;t&lt;br /&gt;
	-- passed a valid frame object, we are being called from another Lua module&lt;br /&gt;
	-- or from the debug console, so assume that we were passed a table of args&lt;br /&gt;
	-- directly, and assign it to a new variable (luaArgs).&lt;br /&gt;
	--]]&lt;br /&gt;
	local fargs, pargs, luaArgs&lt;br /&gt;
	if type(frame.args) == &#039;table&#039; and type(frame.getParent) == &#039;function&#039; then&lt;br /&gt;
		if options.wrappers then&lt;br /&gt;
			--[[&lt;br /&gt;
			-- The wrappers option makes Module:Arguments look up arguments in&lt;br /&gt;
			-- either the frame argument table or the parent argument table, but&lt;br /&gt;
			-- not both. This means that users can use either the #invoke syntax&lt;br /&gt;
			-- or a wrapper template without the loss of performance associated&lt;br /&gt;
			-- with looking arguments up in both the frame and the parent frame.&lt;br /&gt;
			-- Module:Arguments will look up arguments in the parent frame&lt;br /&gt;
			-- if it finds the parent frame&#039;s title in options.wrapper;&lt;br /&gt;
			-- otherwise it will look up arguments in the frame object passed&lt;br /&gt;
			-- to getArgs.&lt;br /&gt;
			--]]&lt;br /&gt;
			local parent = frame:getParent()&lt;br /&gt;
			if not parent then&lt;br /&gt;
				fargs = frame.args&lt;br /&gt;
			else&lt;br /&gt;
				local title = parent:getTitle():gsub(&#039;/sandbox$&#039;, &#039;&#039;)&lt;br /&gt;
				local found = false&lt;br /&gt;
				if matchesTitle(options.wrappers, title) then&lt;br /&gt;
					found = true&lt;br /&gt;
				elseif type(options.wrappers) == &#039;table&#039; then&lt;br /&gt;
					for _,v in pairs(options.wrappers) do&lt;br /&gt;
						if matchesTitle(v, title) then&lt;br /&gt;
							found = true&lt;br /&gt;
							break&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				-- We test for false specifically here so that nil (the default) acts like true.&lt;br /&gt;
				if found or options.frameOnly == false then&lt;br /&gt;
					pargs = parent.args&lt;br /&gt;
				end&lt;br /&gt;
				if not found or options.parentOnly == false then&lt;br /&gt;
					fargs = frame.args&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- options.wrapper isn&#039;t set, so check the other options.&lt;br /&gt;
			if not options.parentOnly then&lt;br /&gt;
				fargs = frame.args&lt;br /&gt;
			end&lt;br /&gt;
			if not options.frameOnly then&lt;br /&gt;
				local parent = frame:getParent()&lt;br /&gt;
				pargs = parent and parent.args or nil&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if options.parentFirst then&lt;br /&gt;
			fargs, pargs = pargs, fargs&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		luaArgs = frame&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the order of precedence of the argument tables. If the variables are&lt;br /&gt;
	-- nil, nothing will be added to the table, which is how we avoid clashes&lt;br /&gt;
	-- between the frame/parent args and the Lua args.&lt;br /&gt;
	local argTables = {fargs}&lt;br /&gt;
	argTables[#argTables + 1] = pargs&lt;br /&gt;
	argTables[#argTables + 1] = luaArgs&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Generate the tidyVal function. If it has been specified by the user, we&lt;br /&gt;
	-- use that; if not, we choose one of four functions depending on the&lt;br /&gt;
	-- options chosen. This is so that we don&#039;t have to call the options table&lt;br /&gt;
	-- every time the function is called.&lt;br /&gt;
	--]]&lt;br /&gt;
	local tidyVal = options.valueFunc&lt;br /&gt;
	if tidyVal then&lt;br /&gt;
		if type(tidyVal) ~= &#039;function&#039; then&lt;br /&gt;
			error(&lt;br /&gt;
				&amp;quot;bad value assigned to option &#039;valueFunc&#039;&amp;quot;&lt;br /&gt;
					.. &#039;(function expected, got &#039;&lt;br /&gt;
					.. type(tidyVal)&lt;br /&gt;
					.. &#039;)&#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	elseif options.trim ~= false then&lt;br /&gt;
		if options.removeBlanks ~= false then&lt;br /&gt;
			tidyVal = tidyValDefault&lt;br /&gt;
		else&lt;br /&gt;
			tidyVal = tidyValTrimOnly&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if options.removeBlanks ~= false then&lt;br /&gt;
			tidyVal = tidyValRemoveBlanksOnly&lt;br /&gt;
		else&lt;br /&gt;
			tidyVal = tidyValNoChange&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Set up the args, metaArgs and nilArgs tables. args will be the one&lt;br /&gt;
	-- accessed from functions, and metaArgs will hold the actual arguments. Nil&lt;br /&gt;
	-- arguments are memoized in nilArgs, and the metatable connects all of them&lt;br /&gt;
	-- together.&lt;br /&gt;
	--]]&lt;br /&gt;
	local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}&lt;br /&gt;
	setmetatable(args, metatable)&lt;br /&gt;
&lt;br /&gt;
	local function mergeArgs(tables)&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Accepts multiple tables as input and merges their keys and values&lt;br /&gt;
		-- into one table. If a value is already present it is not overwritten;&lt;br /&gt;
		-- tables listed earlier have precedence. We are also memoizing nil&lt;br /&gt;
		-- values, which can be overwritten if they are &#039;s&#039; (soft).&lt;br /&gt;
		--]]&lt;br /&gt;
		for _, t in ipairs(tables) do&lt;br /&gt;
			for key, val in pairs(t) do&lt;br /&gt;
				if metaArgs[key] == nil and nilArgs[key] ~= &#039;h&#039; then&lt;br /&gt;
					local tidiedVal = tidyVal(key, val)&lt;br /&gt;
					if tidiedVal == nil then&lt;br /&gt;
						nilArgs[key] = &#039;s&#039;&lt;br /&gt;
					else&lt;br /&gt;
						metaArgs[key] = tidiedVal&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Define metatable behaviour. Arguments are memoized in the metaArgs table,&lt;br /&gt;
	-- and are only fetched from the argument tables once. Fetching arguments&lt;br /&gt;
	-- from the argument tables is the most resource-intensive step in this&lt;br /&gt;
	-- module, so we try and avoid it where possible. For this reason, nil&lt;br /&gt;
	-- arguments are also memoized, in the nilArgs table. Also, we keep a record&lt;br /&gt;
	-- in the metatable of when pairs and ipairs have been called, so we do not&lt;br /&gt;
	-- run pairs and ipairs on the argument tables more than once. We also do&lt;br /&gt;
	-- not run ipairs on fargs and pargs if pairs has already been run, as all&lt;br /&gt;
	-- the arguments will already have been copied over.&lt;br /&gt;
	--]]&lt;br /&gt;
&lt;br /&gt;
	metatable.__index = function (t, key)&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Fetches an argument when the args table is indexed. First we check&lt;br /&gt;
		-- to see if the value is memoized, and if not we try and fetch it from&lt;br /&gt;
		-- the argument tables. When we check memoization, we need to check&lt;br /&gt;
		-- metaArgs before nilArgs, as both can be non-nil at the same time.&lt;br /&gt;
		-- If the argument is not present in metaArgs, we also check whether&lt;br /&gt;
		-- pairs has been run yet. If pairs has already been run, we return nil.&lt;br /&gt;
		-- This is because all the arguments will have already been copied into&lt;br /&gt;
		-- metaArgs by the mergeArgs function, meaning that any other arguments&lt;br /&gt;
		-- must be nil.&lt;br /&gt;
		--]]&lt;br /&gt;
		if type(key) == &#039;string&#039; then&lt;br /&gt;
			key = options.translate[key]&lt;br /&gt;
		end&lt;br /&gt;
		local val = metaArgs[key]&lt;br /&gt;
		if val ~= nil then&lt;br /&gt;
			return val&lt;br /&gt;
		elseif metatable.donePairs or nilArgs[key] then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		for _, argTable in ipairs(argTables) do&lt;br /&gt;
			local argTableVal = tidyVal(key, argTable[key])&lt;br /&gt;
			if argTableVal ~= nil then&lt;br /&gt;
				metaArgs[key] = argTableVal&lt;br /&gt;
				return argTableVal&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		nilArgs[key] = &#039;h&#039;&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__newindex = function (t, key, val)&lt;br /&gt;
		-- This function is called when a module tries to add a new value to the&lt;br /&gt;
		-- args table, or tries to change an existing value.&lt;br /&gt;
		if type(key) == &#039;string&#039; then&lt;br /&gt;
			key = options.translate[key]&lt;br /&gt;
		end&lt;br /&gt;
		if options.readOnly then&lt;br /&gt;
			error(&lt;br /&gt;
				&#039;could not write to argument table key &amp;quot;&#039;&lt;br /&gt;
					.. tostring(key)&lt;br /&gt;
					.. &#039;&amp;quot;; the table is read-only&#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		elseif options.noOverwrite and args[key] ~= nil then&lt;br /&gt;
			error(&lt;br /&gt;
				&#039;could not write to argument table key &amp;quot;&#039;&lt;br /&gt;
					.. tostring(key)&lt;br /&gt;
					.. &#039;&amp;quot;; overwriting existing arguments is not permitted&#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		elseif val == nil then&lt;br /&gt;
			--[[&lt;br /&gt;
			-- If the argument is to be overwritten with nil, we need to erase&lt;br /&gt;
			-- the value in metaArgs, so that __index, __pairs and __ipairs do&lt;br /&gt;
			-- not use a previous existing value, if present; and we also need&lt;br /&gt;
			-- to memoize the nil in nilArgs, so that the value isn&#039;t looked&lt;br /&gt;
			-- up in the argument tables if it is accessed again.&lt;br /&gt;
			--]]&lt;br /&gt;
			metaArgs[key] = nil&lt;br /&gt;
			nilArgs[key] = &#039;h&#039;&lt;br /&gt;
		else&lt;br /&gt;
			metaArgs[key] = val&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function translatenext(invariant)&lt;br /&gt;
		local k, v = next(invariant.t, invariant.k)&lt;br /&gt;
		invariant.k = k&lt;br /&gt;
		if k == nil then&lt;br /&gt;
			return nil&lt;br /&gt;
		elseif type(k) ~= &#039;string&#039; or not options.backtranslate then&lt;br /&gt;
			return k, v&lt;br /&gt;
		else&lt;br /&gt;
			local backtranslate = options.backtranslate[k]&lt;br /&gt;
			if backtranslate == nil then&lt;br /&gt;
				-- Skip this one. This is a tail call, so this won&#039;t cause stack overflow&lt;br /&gt;
				return translatenext(invariant)&lt;br /&gt;
			else&lt;br /&gt;
				return backtranslate, v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__pairs = function ()&lt;br /&gt;
		-- Called when pairs is run on the args table.&lt;br /&gt;
		if not metatable.donePairs then&lt;br /&gt;
			mergeArgs(argTables)&lt;br /&gt;
			metatable.donePairs = true&lt;br /&gt;
		end&lt;br /&gt;
		return translatenext, { t = metaArgs }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function inext(t, i)&lt;br /&gt;
		-- This uses our __index metamethod&lt;br /&gt;
		local v = t[i + 1]&lt;br /&gt;
		if v ~= nil then&lt;br /&gt;
			return i + 1, v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__ipairs = function (t)&lt;br /&gt;
		-- Called when ipairs is run on the args table.&lt;br /&gt;
		return inext, t, 0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return arguments&lt;/div&gt;</summary>
		<author><name>Raccoondad</name></author>
	</entry>
</feed>