<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://meta.wikioasis.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Itsboyhappy</id>
	<title>WikiOasis Meta - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://meta.wikioasis.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Itsboyhappy"/>
	<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Special:Contributions/Itsboyhappy"/>
	<updated>2026-05-24T21:50:41Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Meta:Requests_for_permissions?diff=487</id>
		<title>Meta:Requests for permissions</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Meta:Requests_for_permissions?diff=487"/>
		<updated>2024-10-31T15:51:36Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: /* Questions for candidate */ reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;box-shadow: 0 0 0.2em #999; padding: 0.8rem; border-radius: .2rem; width: auto&amp;quot;&amp;gt;&lt;br /&gt;
{| style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| class=&amp;quot;shortcut&amp;quot; style=&amp;quot;background: rgb(58,28,113); background: linear-gradient(180deg, rgb(54,80,143) 0%, rgb(0,80,180) 50%, rgb(54,80,143) 100%); display: revert !important;&amp;quot; | &amp;lt;div style=&amp;quot;font-size: 180%; color: white; text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size:170%;&amp;quot;&amp;gt;&#039;&#039;&#039;Looking to apply for a meta permission?&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-top:0.1em; padding-bottom:0.0em; font-size:100%;&amp;quot;&amp;gt;Type your username in the box below and select &amp;quot;Create Request&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding-top:0.0em; padding-bottom:0.1em; font-size:70%;&amp;quot;&amp;gt;You can request the following permissions for Meta on this page: Rollbacker, Administrator, Interface Administrator, and Wiki Creator.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;inputbox&amp;gt;&lt;br /&gt;
type=commenttitle&lt;br /&gt;
buttonlabel=Create Request &lt;br /&gt;
summary= Add new topic&lt;br /&gt;
page=Meta:Requests for permissions&lt;br /&gt;
preload=Template:RfP-preload&lt;br /&gt;
&amp;lt;/inputbox&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Zippybonzo (Wiki Creator) ==&lt;br /&gt;
&lt;br /&gt;
{{Userlinks|Zippybonzo}} &amp;lt;br&amp;gt;&lt;br /&gt;
Permission: &amp;lt;!--Meta Rollback, Administrator, Interface Administrator, or Wiki Creator.--&amp;gt; Wiki Creator&amp;lt;br&amp;gt; &lt;br /&gt;
Reason: &amp;lt;!--INSERT STATEMENT HERE--&amp;gt; While technically I can create wikis through the sysadmin toolset, I&#039;d rather officialise it so that I can create wikis in the capacity of a Wiki Creator, rather than just for technical reasons as part of my sysadmin role. [[User:Zippybonzo|Zippybonzo]] ([[User talk:Zippybonzo|talk]]) 10:29, 31 October 2024 (UTC) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Questions for candidate ===&lt;br /&gt;
&lt;br /&gt;
=== Support ===&lt;br /&gt;
# {{Support}} Yes beside system administrator it would be more official getting this. [[User:TheOriginalOne|TheOriginalOne]] ([[User talk:TheOriginalOne|talk]]) 10:35, 31 October 2024 (UTC)&lt;br /&gt;
# {{support}} I liked the catch of the spelling mistake on the “frictional” wiki. No concerns. [[User:Globe|Globe]] ([[User talk:Globe|talk]]) 10:40, 31 October 2024 (UTC)&lt;br /&gt;
# {{support}} Zippybonzo was steward on other wikifarm and he knows WC policies and access. [[User:AlPaD|AlPaD]] ([[User talk:AlPaD|talk]]) 13:59, 31 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Abstain ===&lt;br /&gt;
&lt;br /&gt;
=== Oppose ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Itsboyhappy (Wiki creator)  ==&lt;br /&gt;
&lt;br /&gt;
{{Userlinks|Itsboyhappy}} &amp;lt;br&amp;gt;&lt;br /&gt;
Permission:Wiki Creators &amp;lt;br&amp;gt;&lt;br /&gt;
Reason: Hi, I&#039;m here for requesting for Wiki Creators privileges and I like to create wikis upon on request by new editors and I will not be abuse this privileges in any conditions, so, plz give me opportunity to prove it.Happy editing! [[User:Itsboyhappy|Itsboyhappy]] ([[User talk:Itsboyhappy|talk]]) 08:02, 31 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Questions for candidate ===&lt;br /&gt;
# Could you let me know what actions you would take for the following requests (i.e approve, decline, mark on hold):&lt;br /&gt;
## &#039;&#039;&#039;Site name:&#039;&#039;&#039; BirdWiki, &#039;&#039;&#039;DBname:&#039;&#039;&#039; birdwiki, &#039;&#039;&#039;Comments:&#039;&#039;&#039; This wiki will house everything about birds, including care guides, etc.&lt;br /&gt;
&#039;&#039;&#039;Answer&#039;&#039;&#039; -: &lt;br /&gt;
(1) Accept the request because the user who requested it explains the purpose and it is correct according to our content policy. &lt;br /&gt;
## &#039;&#039;&#039;Site name:&#039;&#039;&#039; Valerant, &#039;&#039;&#039;DBname:&#039;&#039;&#039; subdomainwiki, &#039;&#039;&#039;Comments:&#039;&#039;&#039; This wiki be about valerant and has looking for game.&lt;br /&gt;
&#039;&#039;&#039;Answer&#039;&#039;&#039; -:&lt;br /&gt;
(2) Decline the request because there is no game which is valerent, there is valorant, and it can be a typo but it shows that the user needing the wiki do not provide clear explanation.&lt;br /&gt;
## &#039;&#039;&#039;Site name:&#039;&#039;&#039; XXX, &#039;&#039;&#039;DBname:&#039;&#039;&#039; xxxwiki, &#039;&#039;&#039;Comments:&#039;&#039;&#039; This wiki will be about NSFW and include lots of pictures.&lt;br /&gt;
&#039;&#039;&#039;Answer&#039;&#039;&#039; -:&lt;br /&gt;
(3) Decline the request: NSFW Content is prohibited by the content policy&lt;br /&gt;
## &#039;&#039;&#039;Site name:&#039;&#039;&#039; notes, &#039;&#039;&#039;DBname:&#039;&#039;&#039; noteswiki, &#039;&#039;&#039;Comments:&#039;&#039;&#039; This is a private wiki for all my notes.&lt;br /&gt;
#: Thanks in advance! [[User:Zippybonzo|Zippybonzo]] ([[User talk:Zippybonzo|talk]]) 15:21, 31 October 2024 (UTC)&lt;br /&gt;
&#039;&#039;&#039;Answer&#039;&#039;&#039;-:&lt;br /&gt;
(4) Decline the request : Private wiki is not allowed as per our content policy.&lt;br /&gt;
Happy editing [[User:Itsboyhappy|Itsboyhappy]] ([[User talk:Itsboyhappy|talk]]) 15:51, 31 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Support ===&lt;br /&gt;
#{{support}} While there may be concerns about your English-speaking abilities, our community embraces everyone. There&#039;s a possibility that a user who shares your language might request a wiki, and your fluency in those particular languages could be a valuable asset to us. [[User:TheAstorPastor|TheAstorPastor]] ([[User talk:TheAstorPastor|talk]]) 13:30, 31 October 2024 (UTC)&lt;br /&gt;
#: Yes, but English fluency is important for communication and understanding the interface. [[User:Zippybonzo|Zippybonzo]] ([[User talk:Zippybonzo|talk]]) 14:13, 31 October 2024 (UTC)&lt;br /&gt;
# {{support}} User is very trusted on other wikis, I believe that he can help as wiki creator. [[User:AlPaD|AlPaD]] ([[User talk:AlPaD|talk]]) 14:03, 31 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Abstain ===&lt;br /&gt;
&lt;br /&gt;
=== Oppose ===&lt;br /&gt;
# {{oppose|weak}} I have concerns about your fluency with english, and the fact you requested a wiki with 3 grammatical errors raises major concerns for me. [[User:Zippybonzo|Zippybonzo]] ([[User talk:Zippybonzo|talk]]) 11:29, 31 October 2024 (UTC)&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Meta:Community_portal?diff=485</id>
		<title>Meta:Community portal</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Meta:Community_portal?diff=485"/>
		<updated>2024-10-31T14:55:05Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: /* Support for lifting the ban */ reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Adding links ==&lt;br /&gt;
Please include important links in the main menu on the left side (you can edit MediaWiki:Sidebar as an IA), as this will provide easy access to them.&amp;amp;nbsp;[[User:TheAstorPastor|TheAstorPastor]] ([[User talk:TheAstorPastor|talk]]) 13:44, 31 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Appeal to ban at Discord ==&lt;br /&gt;
Greetings everyone I, TheAstorPastor, am writing this to appeal the ban that was recently imposed on me at the official Discord server by Zippybonzo. The ban was issued after I shared screenshots of a random conversation in the official Discord server, which I had no connection to.&lt;br /&gt;
&lt;br /&gt;
Initially, I was banned without a clear explanation, and when I enquired about the reason, I was presented with two screenshots (which I have emailed to staffwikioasis@gmail.com; if allowed by the stewards, I would post them here too). Upon reviewing them, I clarified that it wasn’t me involved in the conversation but rather someone impersonating me using my profile picture and name. Despite my explanation, Zippybonzo remained unconvinced and stated that the screenshots came from a &amp;quot;trusted source.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
I want to emphasize that I have maintained a good standing in various communities, including TestWiki. I acknowledge that I was previously banned from Wikipedia for sockpuppetry, a very serious mistake on my part. However, I also believe that my contributions there were valuable, and I plan to appeal to the Wikipedia community in November to rectify that situation.&lt;br /&gt;
&lt;br /&gt;
I kindly request that you reconsider my ban from the Discord server of Wikioasis. I value being part of this community and would appreciate the opportunity to clarify any misunderstandings regarding this incident. Thank you for your time and consideration. [[User:TheAstorPastor|TheAstorPastor]] ([[User talk:TheAstorPastor|talk]]) 13:59, 31 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Support for lifting the ban&#039;&#039;&#039; ===&lt;br /&gt;
{{support}} [[User:AlPaD|AlPaD]] ([[User talk:AlPaD|talk]]) 14:36, 31 October 2024 (UTC)&lt;br /&gt;
*{{support}} [[User:Itsboyhappy|Itsboyhappy]] ([[User talk:Itsboyhappy|talk]]) 14:55, 31 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Oppose lifting the ban&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
=== Abstention ===&lt;br /&gt;
* {{Abstain}} as banning moderator. [[User:Zippybonzo|Zippybonzo]] ([[User talk:Zippybonzo|talk]]) 14:04, 31 October 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
=== Discussion ===&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:Documentation/i18n?diff=331</id>
		<title>Module:Documentation/i18n</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:Documentation/i18n?diff=331"/>
		<updated>2024-10-31T07:14:42Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: Itsboyhappy moved page Module:Documentation/i18n to Module:Documentation/i18n/sandbox: need to move sadbox, creating redirect &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;return require [[Module:Documentation/i18n/sandbox]]&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:Documentation/i18n/sandbox?diff=330</id>
		<title>Module:Documentation/i18n/sandbox</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:Documentation/i18n/sandbox?diff=330"/>
		<updated>2024-10-31T07:14:42Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: Itsboyhappy moved page Module:Documentation/i18n to Module:Documentation/i18n/sandbox: need to move sadbox, creating redirect &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>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Documentation?diff=329</id>
		<title>Template:Documentation</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Documentation?diff=329"/>
		<updated>2024-10-31T07:12:22Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}&amp;lt;noinclude&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Mono/styles.css?diff=328</id>
		<title>Template:Mono/styles.css</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Mono/styles.css?diff=328"/>
		<updated>2024-10-31T07:10:13Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp-template}} */&lt;br /&gt;
.monospaced {&lt;br /&gt;
	/* &amp;quot;monospace, monospace&amp;quot; per [[WP:MONO]] */&lt;br /&gt;
	font-family: monospace, monospace;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Ifsubst?diff=327</id>
		<title>Template:Ifsubst</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Ifsubst?diff=327"/>
		<updated>2024-10-31T07:08:58Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ safesubst:&amp;lt;noinclude/&amp;gt;#if:{{{demo|}}}&lt;br /&gt;
|{{ safesubst:&amp;lt;noinclude/&amp;gt;#ifeq:{{{demo}}} |no&lt;br /&gt;
 |{{{no|{{{2|}}}}}}&lt;br /&gt;
 |{{{yes|{{{1|}}}}}}&lt;br /&gt;
}}&lt;br /&gt;
|{{ safesubst:&amp;lt;noinclude/&amp;gt;#ifeq:{{ safesubst:&amp;lt;noinclude/&amp;gt;NAMESPACE}}|{{NAMESPACE}}&lt;br /&gt;
 |{{{no|{{{2|}}}}}}&lt;br /&gt;
 |{{{yes|{{{1|}}}}}}&lt;br /&gt;
}}}}&amp;lt;noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Mono?diff=326</id>
		<title>Template:Mono</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Mono?diff=326"/>
		<updated>2024-10-31T07:08:17Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;ifsubst|1=|2=&amp;lt;templatestyles src=&amp;quot;Mono/styles.css&amp;quot; /&amp;gt;}}&amp;lt;span class=&amp;quot;monospaced&amp;quot;&amp;gt;{{{2|{{{1}}}}}}&amp;lt;/span&amp;gt;&amp;lt;noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Tnull?diff=325</id>
		<title>Template:Tnull</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Tnull?diff=325"/>
		<updated>2024-10-31T07:07:27Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#Invoke:Template link general|main|nolink=yes|code=yes}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Clear?diff=324</id>
		<title>Template:Clear</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Clear?diff=324"/>
		<updated>2024-10-31T07:06:19Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;clear:{{{1|both}}};&amp;quot; class={{{class|}}}&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Their?diff=323</id>
		<title>Template:Their</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Their?diff=323"/>
		<updated>2024-10-31T07:05:02Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{gender:{{{1}}}|his|her|their}}&amp;lt;noinclude&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:User_talk_other?diff=322</id>
		<title>Template:User talk other</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:User_talk_other?diff=322"/>
		<updated>2024-10-31T07:02:58Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SAFESUBST:&amp;lt;noinclude /&amp;gt;#switch:&lt;br /&gt;
  &amp;lt;noinclude&amp;gt;&amp;lt;!--If no or empty &amp;quot;demospace&amp;quot; parameter then detect namespace--&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
  {{SAFESUBST:&amp;lt;noinclude /&amp;gt;#if:{{{demospace|}}}&lt;br /&gt;
  | {{SAFESUBST:&amp;lt;noinclude /&amp;gt;lc: {{{demospace}}} }}&amp;lt;noinclude&amp;gt;&amp;lt;!--Use lower case &amp;quot;demospace&amp;quot;--&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
  | {{SAFESUBST:&amp;lt;noinclude /&amp;gt;#ifeq:{{SAFESUBST:&amp;lt;noinclude /&amp;gt;NAMESPACE}}|{{SAFESUBST:&amp;lt;noinclude /&amp;gt;ns:User talk}}&lt;br /&gt;
    | user talk&lt;br /&gt;
    | other&lt;br /&gt;
    }}&lt;br /&gt;
  }}&lt;br /&gt;
| user talk = {{{1|}}}&lt;br /&gt;
| other&lt;br /&gt;
| #default = {{{2|}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&amp;lt;!--End switch--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Unblock?diff=321</id>
		<title>Template:Unblock</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Unblock?diff=321"/>
		<updated>2024-10-31T06:53:54Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{User talk other|demospace=&amp;lt;noinclude&amp;gt;user talk&amp;lt;/noinclude&amp;gt;|1=&amp;lt;span id=&amp;quot;rfu&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;user-block unblock user-unblock-request&amp;quot; style=&amp;quot;padding: 5px; margin-bottom: 0.5em; border: 1px solid #a9a9a9; background-color: #EBF4FF;&amp;quot;&amp;gt;&lt;br /&gt;
[[File:Appointment blue.svg|48px|left|link=|alt=]] &#039;&#039;&#039;This user is asking that {{their|{{BASEPAGENAME}}}} [[Wikipedia:Blocking policy|block]] be reviewed&#039;&#039;&#039;:&lt;br /&gt;
[[User:{{BASEPAGENAME}}|{{BASEPAGENAME}}]] &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;font-size:88%;&amp;quot;&amp;gt;([{{fullurl:Special:Log|type=block&amp;amp;page=User:{{BASEPAGENAMEE}}}} block log] • [{{fullurl:Special:BlockList|action=search&amp;amp;ip={{BASEPAGENAMEE}}}} active blocks] • [{{fullurl:Special:GlobalBlockList|ip={{BASEPAGENAMEE}}}} global blocks] • [[Special:Contributions/{{BASEPAGENAME}}|contribs]]&amp;lt;span class=&amp;quot;sysop-show&amp;quot;&amp;gt; • [[Special:DeletedContributions/{{BASEPAGENAME}}|deleted contribs]]&amp;lt;/span&amp;gt; • [{{fullurl:Special:AbuseLog|wpSearchUser={{BASEPAGENAMEE}}}} filter log] • [{{fullurl:Special:Log|type=newusers&amp;amp;user={{BASEPAGENAMEE}}}} creation log]&amp;lt;span class=&amp;quot;sysop-show&amp;quot;&amp;gt; • [[Special:BlockIP/{{BASEPAGENAME}}|change block settings]] • [{{fullurl:Special:BlockList|action=unblock&amp;amp;ip={{BASEPAGENAMEE}}}} unblock]&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;checkuser-show&amp;quot;&amp;gt; • [{{fullurl:Special:CheckUser|user={{BASEPAGENAMEE}}&amp;amp;reason={{urlencode:[[{{FULLPAGENAME}}]], unblock request}}}} checkuser] ([{{fullurl:Special:CheckUserLog|cuSearchType=target&amp;amp;cuSearch={{BASEPAGENAMEE}}}} log])&amp;lt;/span&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;Request reason&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-bottom: 1em; margin-left: 2em;&amp;quot;&amp;gt;&amp;lt;!-- PARSER FUNCTIONS START HERE&lt;br /&gt;
&lt;br /&gt;
Checks for no reason given&lt;br /&gt;
--&amp;gt;{{#if:{{{1|{{{reason&amp;lt;includeonly&amp;gt;|&amp;lt;/includeonly&amp;gt;}}}}}}|&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
Prints reason if it checks out&lt;br /&gt;
--&amp;gt;{{{1|{{{reason|}}}}}}|&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
Error message for no reason given&lt;br /&gt;
--&amp;gt;&amp;lt;span style=&amp;quot;color: #ba0000;&amp;quot;&amp;gt;&#039;&#039;&#039;Please provide a reason as to why you should be unblocked.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Change {{tnull|unblock}} to {{tnull|unblock&amp;amp;nbsp;|&amp;amp;nbsp;reason&amp;amp;#61;&#039;&#039;your reason here&#039;&#039; &amp;amp;#126;&amp;amp;#126;&amp;amp;#126;&amp;amp;#126;}}&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;!-- PARSER FUNCTIONS END HERE --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;:&lt;br /&gt;
* In some cases, you may not in fact be blocked, or your block has already expired. Please &#039;&#039;&#039;[[Special:BlockList/{{BASEPAGENAMEE}}|check the list of active blocks]]&#039;&#039;&#039;. If no block is listed, then you have been [[Wikipedia:Autoblock|autoblocked]] by the automated anti-vandalism systems. Please remove this request and follow these [[Template:Autoblock|instructions]] instead for quick attention by an administrator.&lt;br /&gt;
* Please read our [[WP:Guide to appealing blocks|guide to appealing blocks]] to make sure that your unblock request will help your case. You may change your request at any time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed sysop-show&amp;quot; style=&amp;quot;border: none;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;background-color: #D0E4FF; font-weight: bold; text-align: center&amp;quot;&amp;gt;&lt;br /&gt;
[[Wikipedia:Administrators|Administrator]] use only:&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot; style=&amp;quot;text-align: left;&amp;quot;&amp;gt;&lt;br /&gt;
If you ask the blocking administrator to comment on this request, replace this template with the following, replacing &amp;quot;{{mono|blocking administrator}}&amp;quot; with the name of the blocking admin:&lt;br /&gt;
&lt;br /&gt;
:{{tnull|Unblock on hold&amp;amp;nbsp;| 1&amp;amp;#61;&#039;&#039;blocking administrator&#039;&#039;&amp;amp;nbsp;| 2&amp;amp;#61;&#039;&#039;{{#tag:nowiki|{{{1|{{{reason|original unblock reason}}}}}}}}&#039;&#039;&amp;amp;nbsp;| 3 &amp;amp;#61; &amp;amp;#126;&amp;amp;#126;&amp;amp;#126;&amp;amp;#126;}}&lt;br /&gt;
&lt;br /&gt;
If you &#039;&#039;&#039;decline&#039;&#039;&#039; the unblock request, replace this template with the following code, substituting &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{subst:Decline reason here}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; with a specific rationale. Leaving the decline reason unchanged will result in display of a [[:Template:Decline reason here|default reason]], explaining why the request was declined.&lt;br /&gt;
&lt;br /&gt;
:{{tnull|unblock reviewed&amp;amp;nbsp;| 1&amp;amp;#61;&#039;&#039;{{#tag:nowiki|{{{1|{{{reason|original unblock reason}}}}}}}}&#039;&#039;&amp;amp;nbsp;| decline &amp;amp;#61; &#039;&#039;&amp;lt;nowiki&amp;gt;{{subst:Decline reason here}}&amp;lt;/nowiki&amp;gt;&#039;&#039; &amp;amp;#126;&amp;amp;#126;&amp;amp;#126;&amp;amp;#126;}}&lt;br /&gt;
&lt;br /&gt;
If you &#039;&#039;&#039;accept&#039;&#039;&#039; the unblock request, replace this template with the following, substituting &amp;lt;code&amp;gt;Accept reason here&amp;lt;/code&amp;gt; with your rationale:&lt;br /&gt;
&lt;br /&gt;
:{{tnull|unblock reviewed&amp;amp;nbsp;| 1&amp;amp;#61;&#039;&#039;{{#tag:nowiki|{{{1|{{{reason|original unblock reason}}}}}}}}&#039;&#039;&amp;amp;nbsp;| accept &amp;amp;#61; &#039;&#039;accept reason here&#039;&#039; &amp;amp;#126;&amp;amp;#126;&amp;amp;#126;&amp;amp;#126;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
{{{category|&amp;lt;includeonly&amp;gt;{{#ifexpr: ({{#time:U|{{REVISIONTIMESTAMP}}}} &amp;gt;= {{#time:U|{{{idletimestamp|20200101010101}}}}} - 20) and ({{#time:U|{{REVISIONTIMESTAMP}}}} &amp;lt;= {{#time:U|{{{idletimestamp|20200101010101}}}}} + 20) | [[Category:Requests for unblock awaiting response from the blocked user|{{BASEPAGENAME}}]] | [[Category:Requests for unblock|{{BASEPAGENAME}}]] }}&amp;lt;/includeonly&amp;gt;}}}|2={{#ifeq:{{NAMESPACE}}|{{ns:MediaWiki}}|unblock|{{Error|You are using this template in the wrong namespace. Use this template on [[Special:MyTalk|your talk page]] instead.}}[[Category:Pages with templates in the wrong namespace]]}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:Template_link_general?diff=320</id>
		<title>Module:Template link general</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:Template_link_general?diff=320"/>
		<updated>2024-10-31T06:50:39Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This implements Template:Tlg&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Is a string non-empty?&lt;br /&gt;
local function _ne(s) &lt;br /&gt;
	return s ~= nil and s ~= &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local nw = mw.text.nowiki&lt;br /&gt;
&lt;br /&gt;
local function addTemplate(s)&lt;br /&gt;
	local i, _ = s:find(&#039;:&#039;, 1, true)&lt;br /&gt;
	if i == nil then&lt;br /&gt;
		return &#039;Template:&#039; .. s&lt;br /&gt;
	end&lt;br /&gt;
	local ns = s:sub(1, i - 1)&lt;br /&gt;
	if ns == &#039;&#039; or mw.site.namespaces[ns] then&lt;br /&gt;
		return s&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;Template:&#039; .. s&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function trimTemplate(s)&lt;br /&gt;
	local needle = &#039;template:&#039;&lt;br /&gt;
	if s:sub(1, needle:len()):lower() == needle then&lt;br /&gt;
		return s:sub(needle:len() + 1)	&lt;br /&gt;
	else&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function linkTitle(args)&lt;br /&gt;
	if _ne(args.nolink) then&lt;br /&gt;
		return args[&#039;1&#039;]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local titleObj&lt;br /&gt;
	local titlePart = &#039;[[&#039;&lt;br /&gt;
	if args[&#039;1&#039;] then&lt;br /&gt;
		-- This handles :Page and other NS&lt;br /&gt;
		titleObj = mw.title.new(args[&#039;1&#039;], &#039;Template&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		titleObj = mw.title.getCurrentTitle()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	titlePart = titlePart .. (titleObj ~= nil and titleObj.fullText or&lt;br /&gt;
				addTemplate(args[&#039;1&#039;]))&lt;br /&gt;
	&lt;br /&gt;
	local textPart = args.alttext&lt;br /&gt;
	if not _ne(textPart) then&lt;br /&gt;
		if titleObj ~= nil then&lt;br /&gt;
			textPart = titleObj:inNamespace(&amp;quot;Template&amp;quot;) and args[&#039;1&#039;] or titleObj.fullText&lt;br /&gt;
		else&lt;br /&gt;
			-- redlink&lt;br /&gt;
			textPart = args[&#039;1&#039;]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if _ne(args.subst) then&lt;br /&gt;
		-- HACK: the ns thing above is probably broken&lt;br /&gt;
		textPart = &#039;subst:&#039; .. textPart&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if _ne(args.brace) then&lt;br /&gt;
		textPart = nw(&#039;{{&#039;) .. textPart .. nw(&#039;}}&#039;)&lt;br /&gt;
	elseif _ne(args.braceinside) then&lt;br /&gt;
		textPart = nw(&#039;{&#039;) .. textPart .. nw(&#039;}&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	titlePart = titlePart .. &#039;|&#039; .. textPart .. &#039;]]&#039;&lt;br /&gt;
	if _ne(args.braceinside) then&lt;br /&gt;
		titlePart = nw(&#039;{&#039;) .. titlePart .. nw(&#039;}&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return titlePart&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame, {&lt;br /&gt;
		trim = true,&lt;br /&gt;
		removeBlanks = false&lt;br /&gt;
	})&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname)&lt;br /&gt;
	local italic = _ne(args.italic) or _ne(args.italics)&lt;br /&gt;
	local dontBrace = _ne(args.brace) or _ne(args.braceinside)&lt;br /&gt;
	local code = _ne(args.code) or _ne(args.tt)&lt;br /&gt;
	local show_result = _ne(args._show_result)&lt;br /&gt;
	local expand = _ne(args._expand)&lt;br /&gt;
	&lt;br /&gt;
	-- Build the link part&lt;br /&gt;
	local titlePart = linkTitle(args)&lt;br /&gt;
	if bold then titlePart = &amp;quot;&#039;&#039;&#039;&amp;quot; .. titlePart .. &amp;quot;&#039;&#039;&#039;&amp;quot; end&lt;br /&gt;
	if _ne(args.nowrapname) then titlePart = &#039;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&#039; .. titlePart .. &#039;&amp;lt;/span&amp;gt;&#039; end&lt;br /&gt;
	&lt;br /&gt;
	-- Build the arguments&lt;br /&gt;
	local textPart = &amp;quot;&amp;quot;&lt;br /&gt;
	local textPartBuffer = &amp;quot;&amp;amp;#124;&amp;quot;&lt;br /&gt;
	local codeArguments = {}&lt;br /&gt;
	local codeArgumentsString = &amp;quot;&amp;quot;&lt;br /&gt;
	local i = 2&lt;br /&gt;
	local j = 1&lt;br /&gt;
	while args[i] do&lt;br /&gt;
		local val = args[i]&lt;br /&gt;
		if val ~= &amp;quot;&amp;quot; then&lt;br /&gt;
			if _ne(args.nowiki) then&lt;br /&gt;
				-- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will&lt;br /&gt;
				-- mangle the nowiki strip marker and result in literal UNIQ...QINU showing up&lt;br /&gt;
				val = nw(mw.text.unstripNoWiki(val))&lt;br /&gt;
			end&lt;br /&gt;
			local k, v = string.match(val, &amp;quot;(.*)=(.*)&amp;quot;)&lt;br /&gt;
			if not k then&lt;br /&gt;
				codeArguments[j] = val&lt;br /&gt;
				j = j + 1&lt;br /&gt;
			else&lt;br /&gt;
				codeArguments[k] = v&lt;br /&gt;
			end&lt;br /&gt;
			codeArgumentsString = codeArgumentsString .. textPartBuffer .. val&lt;br /&gt;
			if italic then&lt;br /&gt;
				val = &#039;&amp;lt;span style=&amp;quot;font-style:italic;&amp;quot;&amp;gt;&#039; .. val .. &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
			end&lt;br /&gt;
			textPart = textPart .. textPartBuffer .. val&lt;br /&gt;
		end&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- final wrap&lt;br /&gt;
	local ret = titlePart .. textPart&lt;br /&gt;
	if not dontBrace then ret = nw(&#039;{{&#039;) .. ret .. nw(&#039;}}&#039;) end&lt;br /&gt;
	if _ne(args.a) then ret = nw(&#039;*&#039;) .. &#039;&amp;amp;nbsp;&#039; .. ret end&lt;br /&gt;
	if _ne(args.kbd) then ret = &#039;&amp;lt;kbd&amp;gt;&#039; .. ret .. &#039;&amp;lt;/kbd&amp;gt;&#039; end&lt;br /&gt;
	if code then&lt;br /&gt;
		ret = &#039;&amp;lt;code&amp;gt;&#039; .. ret .. &#039;&amp;lt;/code&amp;gt;&#039;&lt;br /&gt;
	elseif _ne(args.plaincode) then&lt;br /&gt;
		ret = &#039;&amp;lt;code style=&amp;quot;border:none;background:transparent;&amp;quot;&amp;gt;&#039; .. ret .. &#039;&amp;lt;/code&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if _ne(args.nowrap) then ret = &#039;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;&#039; .. ret .. &#039;&amp;lt;/span&amp;gt;&#039; end&lt;br /&gt;
	&lt;br /&gt;
	--[[ Wrap as html?? &lt;br /&gt;
	local span = mw.html.create(&#039;span&#039;)&lt;br /&gt;
	span:wikitext(ret)&lt;br /&gt;
	--]]&lt;br /&gt;
	if _ne(args.debug) then ret = ret .. &#039;\n&amp;lt;pre&amp;gt;&#039; .. mw.text.encode(mw.dumpObject(args)) .. &#039;&amp;lt;/pre&amp;gt;&#039; end&lt;br /&gt;
&lt;br /&gt;
	if show_result then&lt;br /&gt;
		local result = mw.getCurrentFrame():expandTemplate{title = addTemplate(args[1]), args = codeArguments}&lt;br /&gt;
		ret = ret .. &amp;quot; → &amp;quot; .. result&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if expand then&lt;br /&gt;
		local query = mw.text.encode(&#039;{{&#039; .. addTemplate(args[1]) .. string.gsub(codeArgumentsString, textPartBuffer, &amp;quot;|&amp;quot;) .. &#039;}}&#039;)&lt;br /&gt;
		local url = mw.uri.fullUrl(&#039;special:ExpandTemplates&#039;, &#039;wpInput=&#039; .. query)&lt;br /&gt;
		mw.log()&lt;br /&gt;
		ret = ret .. &amp;quot; [&amp;quot; .. tostring(url) .. &amp;quot;]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Tlx?diff=319</id>
		<title>Template:Tlx</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Tlx?diff=319"/>
		<updated>2024-10-31T06:48:53Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#Invoke:Template link general|main|code=on}}&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Blocked_proxy?diff=318</id>
		<title>Template:Blocked proxy</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Blocked_proxy?diff=318"/>
		<updated>2024-10-31T06:46:49Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;user-block blocked-proxy&amp;quot; style=&amp;quot;margin-bottom: 0.5em; background-color: #ffefd5; border: 1px solid #AAA; padding: 0.7em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;[[File:Banned proxys.svg|50px|left]]&#039;&#039;&#039;The {{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{host|}}}| host &amp;lt;kbd&amp;gt;[http://samspade.org/whois?query={{{host}}} {{{host}}}]&amp;lt;/kbd&amp;gt; | [[w:IP address|IP address]]}} that you are currently using has been blocked {{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{indef|}}} |indefinitely}} because it is believed to be an [[w:Open proxy|open]] or [[w:Anonymizer|anonymizing]] proxy, such as a VPN service.&#039;&#039;&#039; To prevent abuse, [[:w:No open proxies policy|these proxies may be blocked]] from editing WikiOasis.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-top: 1px solid #AAA; clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
If you are using an open proxy or VPN service, you will need to disable it or turn it off in order to edit WikiOasis.&lt;br /&gt;
&lt;br /&gt;
If you believe you are not using an anonymizing proxy, the most likely cause is that another customer using your {{&amp;lt;includeonly&amp;gt;safesubst:&amp;lt;/includeonly&amp;gt;#if:{{{host|}}}|host|IP address}} who was previously assigned this IP address was running an open proxy. You may [[WikiOasis:Guide to appealing blocks|appeal this block]] by adding the following text on your [[w:Help:Talk pages|talk page]]: {{tlx|unblock|2=reason=Caught by an open proxy block but this host or IP is not an open proxy. My IP address is _______. &#039;&#039;Place any further information here.&#039;&#039; &amp;amp;#126;&amp;amp;#126;&amp;amp;#126;&amp;amp;#126;}}. &#039;&#039;&#039;You must fill in the blank with your IP address for this block to be investigated.&#039;&#039;&#039; Your IP address can be determined &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;&#039;&#039;&#039;[https://meta.miraheze.org/wiki/Wikipedia:Get_my_IP_address?withJS=MediaWiki:Get-my-ip.js here]&#039;&#039;&#039;&amp;lt;/span&amp;gt;. Alternatively, if you wish to keep your IP address private you can contact any active Administrator.&lt;br /&gt;
&lt;br /&gt;
More rarely, your network equipment or that of your service provider may be misconfigured or compromised by malicious software (such as a virus). For more information, see the [[:w:No open proxies policy|No open proxies policy]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;sysop-show&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;border:#707070 solid 1px;background-color:#ffe0e0;padding:2px&amp;quot;&amp;gt;&#039;&#039;&#039;Administrators:&#039;&#039;&#039;&amp;lt;/span&amp;gt; The [[WikiOasis:IP block exemption|IP block exemption]] user right should only be applied to allow users to edit using an open or anonymizing proxies in exceptional circumstances, and they should usually be directed to the functionaries team via email.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#if:{{{nocat|}}}||&lt;br /&gt;
{{#switch:{{NAMESPACE}}&lt;br /&gt;
| User&lt;br /&gt;
| User talk = {{{category|[[Category:Open proxies blocked on Wikipedia|{{{sortkey|{{PAGENAMEE}}}}}]]}}}&lt;br /&gt;
}}{{#if:{{{indef|}}}|[[Category:Indefinitely blocked IP addresses|{{{sortkey|{{PAGENAMEE}}}}}]]|}}&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;!-- Template:Blocked proxy --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Blocked?diff=317</id>
		<title>Template:Blocked</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Blocked?diff=317"/>
		<updated>2024-10-31T06:45:42Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{&amp;lt;includeonly&amp;gt;#ifeq:{{NAMESPACE}}|{{ns:3}}|{{&amp;lt;/includeonly&amp;gt;#switch:{{{1}}}&lt;br /&gt;
|indefinite=&amp;lt;div class=&amp;quot;notice&amp;quot; style=&amp;quot;background:#ffe0e0;border:1px solid#864;padding:0.5em;margin:0.5em auto;min-height:40px&amp;quot;&amp;gt;[[File:Stop x nuvola.svg|left|40px]]&#039;&#039;&#039;You have been &amp;lt;u&amp;gt;blocked&amp;lt;/u&amp;gt; from editing Miraheze Meta indefinitely as a result of your disruptive edit{{#if:{{{2|}}}|s to [[:{{{2}}}]]|s}}.&#039;&#039;&#039; You are free to post an [[Template:Unblock|unblock request]] at your talk page, but please note that [[w:WP:VANDALISM|vandalism]] (including page blanking or addition of random text), spam, deliberate misinformation, [[Privacy policy|privacy violations]], [[w:WP:NPA|personal attacks]], legal threats; and repeated, blatant violations of our policies will not be tolerated and abuse of unblock requests will result in TPA revocation.&amp;lt;/div&amp;gt;&lt;br /&gt;
|indef=&amp;lt;div class=&amp;quot;notice&amp;quot; style=&amp;quot;background:#ffe0e0;border:1px solid#864;padding:0.5em;margin:0.5em auto;min-height:40px&amp;quot;&amp;gt;[[File:Stop x nuvola.svg|left|40px]]&#039;&#039;&#039;You have been &amp;lt;u&amp;gt;blocked&amp;lt;/u&amp;gt; from editing Miraheze Meta indefinitely as a result of your disruptive edit{{#if:{{{2|}}}|s to [[:{{{2}}}]]|s}}.&#039;&#039;&#039; Please note that vandalism (including page blanking or addition of random text), spam, deliberate misinformation, privacy violations, personal attacks, legal threats; and repeated, blatant violations of our policies will not be tolerated.&amp;lt;/div&amp;gt;&lt;br /&gt;
|#default=&amp;lt;div class=&amp;quot;notice&amp;quot; style=&amp;quot;background:#ffefd5;border:1px solid#aaa;padding:0.5em;margin:0.5em auto;min-height:40px&amp;quot;&amp;gt;[[File:Stop x nuvola with clock.svg|left|40px]]&#039;&#039;&#039;You have been {{#if:{{{1|}}}||temporarily}} &amp;lt;u&amp;gt;blocked&amp;lt;/u&amp;gt; from editing {{#if:{{{1|}}}|for a period of {{{1}}}}} as a result of your disruptive edit{{#if:{{{2|}}}|s to [[:{{{2}}}]]|s}}.&#039;&#039;&#039; You are free to make constructive edits after the block has expired, but please note that [[w:WP:VANDALISM|vandalism]] (including page blanking or addition of random text), spam, deliberate misinformation, privacy violations, [[w:WP:NPA|personal attacks]], legal threats; and repeated, blatant violations of our policies will not be tolerated.&amp;lt;/div&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:Check_for_unknown_parameters?diff=217</id>
		<title>Module:Check for unknown parameters</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:Check_for_unknown_parameters?diff=217"/>
		<updated>2024-10-30T05:41:42Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module may be used to compare the arguments passed to the parent&lt;br /&gt;
-- with a list of arguments, returning a specified result if an argument is&lt;br /&gt;
-- not on the list&lt;br /&gt;
&lt;br /&gt;
require (&#039;strict&#039;);&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function trim(s)&lt;br /&gt;
	return s:match(&#039;^%s*(.-)%s*$&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isnotempty(s)&lt;br /&gt;
	return s and s:match(&#039;%S&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function clean(text)&lt;br /&gt;
	-- Return text cleaned for display and truncated if too long.&lt;br /&gt;
	-- Strip markers are replaced with dummy text representing the original wikitext.&lt;br /&gt;
	local pos, truncated&lt;br /&gt;
	local function truncate(text)&lt;br /&gt;
		if truncated then&lt;br /&gt;
			return &#039;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		if mw.ustring.len(text) &amp;gt; 25 then&lt;br /&gt;
			truncated = true&lt;br /&gt;
			text = mw.ustring.sub(text, 1, 25) .. &#039;...&#039;&lt;br /&gt;
		end&lt;br /&gt;
		return mw.text.nowiki(text)&lt;br /&gt;
	end&lt;br /&gt;
	local parts = {}&lt;br /&gt;
	for before, tag, remainder in text:gmatch(&#039;([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()&#039;) do&lt;br /&gt;
		pos = remainder&lt;br /&gt;
		table.insert(parts, truncate(before) .. &#039;&amp;amp;lt;&#039; .. tag .. &#039;&amp;amp;gt;...&amp;amp;lt;/&#039; .. tag .. &#039;&amp;amp;gt;&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(parts, truncate(text:sub(pos or 1)))&lt;br /&gt;
	return table.concat(parts)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._check(args, pargs)&lt;br /&gt;
	if type(args) ~= &amp;quot;table&amp;quot; or type(pargs) ~= &amp;quot;table&amp;quot; then&lt;br /&gt;
		-- TODO: error handling&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- create the list of known args, regular expressions, and the return string&lt;br /&gt;
	local knownargs = {}&lt;br /&gt;
	local regexps = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == &#039;number&#039; then&lt;br /&gt;
			v = trim(v)&lt;br /&gt;
			knownargs[v] = 1&lt;br /&gt;
		elseif k:find(&#039;^regexp[1-9][0-9]*$&#039;) then&lt;br /&gt;
			table.insert(regexps, &#039;^&#039; .. v .. &#039;$&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- loop over the parent args, and make sure they are on the list&lt;br /&gt;
	local ignoreblank = isnotempty(args[&#039;ignoreblank&#039;])&lt;br /&gt;
	local showblankpos = isnotempty(args[&#039;showblankpositional&#039;])&lt;br /&gt;
	local values = {}&lt;br /&gt;
	for k, v in pairs(pargs) do&lt;br /&gt;
		if type(k) == &#039;string&#039; and knownargs[k] == nil then&lt;br /&gt;
			local knownflag = false&lt;br /&gt;
			for _, regexp in ipairs(regexps) do&lt;br /&gt;
				if mw.ustring.match(k, regexp) then&lt;br /&gt;
					knownflag = true&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not knownflag and ( not ignoreblank or isnotempty(v) )  then&lt;br /&gt;
				table.insert(values, clean(k))&lt;br /&gt;
			end&lt;br /&gt;
		elseif type(k) == &#039;number&#039; and knownargs[tostring(k)] == nil then&lt;br /&gt;
			local knownflag = false&lt;br /&gt;
			for _, regexp in ipairs(regexps) do&lt;br /&gt;
				if mw.ustring.match(tostring(k), regexp) then&lt;br /&gt;
					knownflag = true&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not knownflag and ( showblankpos or isnotempty(v) ) then&lt;br /&gt;
				table.insert(values, k .. &#039; = &#039; .. clean(v))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- add results to the output tables&lt;br /&gt;
	local res = {}&lt;br /&gt;
	if #values &amp;gt; 0 then&lt;br /&gt;
		local unknown_text = args[&#039;unknown&#039;] or &#039;Found _VALUE_, &#039;&lt;br /&gt;
&lt;br /&gt;
		if mw.getCurrentFrame():preprocess( &amp;quot;{{REVISIONID}}&amp;quot; ) == &amp;quot;&amp;quot; then&lt;br /&gt;
			local preview_text = args[&#039;preview&#039;]&lt;br /&gt;
			if isnotempty(preview_text) then&lt;br /&gt;
				preview_text = require(&#039;Module:If preview&#039;)._warning({preview_text})&lt;br /&gt;
			elseif preview_text == nil then&lt;br /&gt;
				preview_text = unknown_text&lt;br /&gt;
			end&lt;br /&gt;
			unknown_text = preview_text&lt;br /&gt;
		end&lt;br /&gt;
		for _, v in pairs(values) do&lt;br /&gt;
			-- Fix odd bug for | = which gets stripped to the empty string and&lt;br /&gt;
			-- breaks category links&lt;br /&gt;
			if v == &#039;&#039; then v = &#039; &#039; end&lt;br /&gt;
&lt;br /&gt;
			-- avoid error with v = &#039;example%2&#039; (&amp;quot;invalid capture index&amp;quot;)&lt;br /&gt;
			local r = unknown_text:gsub(&#039;_VALUE_&#039;, {_VALUE_ = v})&lt;br /&gt;
			table.insert(res, r)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(res)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.check(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local pargs = frame:getParent().args&lt;br /&gt;
	return p._check(args, pargs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Center?diff=216</id>
		<title>Template:Center</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Center?diff=216"/>
		<updated>2024-10-30T05:40:13Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;width:auto; margin-left:auto; margin-right:auto;{{safesubst&amp;lt;noinclude /&amp;gt;:#if: {{{style|}}} | {{{style}}};}}&amp;quot;&amp;gt;{{{1|[[Category:Pages using center with no arguments]]}}}&amp;lt;/div&amp;gt;&amp;lt;/includeonly&amp;gt;{{safesubst&amp;lt;noinclude /&amp;gt;:#invoke:Check for unknown parameters|check|unknown=[[Category:Pages using center with unknown parameters|_VALUE_{{PAGENAME}}]]|preview=Page using [[Template:Center]] with unknown parameter &amp;quot;_VALUE_&amp;quot;|ignoreblank=y| 1 | style }}&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Align?diff=215</id>
		<title>Template:Align</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Align?diff=215"/>
		<updated>2024-10-30T05:39:19Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{safesubst&amp;lt;noinclude/&amp;gt;:#switch: {{safesubst&amp;lt;noinclude/&amp;gt;:lc:{{{1|center}}}}}&lt;br /&gt;
|left = &amp;lt;div style=&amp;quot;float: left;{{safesubst&amp;lt;noinclude/&amp;gt;:#if: {{{style|}}} | {{{style}}};}}&amp;quot;&amp;gt;{{{2}}}&amp;lt;/div&amp;gt;&lt;br /&gt;
|right = &amp;lt;div style=&amp;quot;float: right;{{safesubst&amp;lt;noinclude/&amp;gt;:#if: {{{style|}}} | {{{style}}};}}&amp;quot;&amp;gt;{{{2}}}&amp;lt;/div&amp;gt;&lt;br /&gt;
|center = {{safesubst&amp;lt;noinclude/&amp;gt;:center|{{{2}}}|style={{{style|}}} }}&lt;br /&gt;
|#default = Error in [[Template:Align]]: the alignment setting &amp;quot;{{{1}}}&amp;quot; is invalid.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Terminate_sentence?diff=214</id>
		<title>Template:Terminate sentence</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Terminate_sentence?diff=214"/>
		<updated>2024-10-30T05:37:43Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{1}}}.{{#if:{{#invoke:text|sentenceTerminated|{{{1|}}}}}||{{{2|.}}}}}&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Terminate_sentence?diff=213</id>
		<title>Template:Terminate sentence</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Terminate_sentence?diff=213"/>
		<updated>2024-10-30T05:37:03Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{1}}}{{#if:{{#invoke:text|sentenceTerminated|{{{1|}}}}}||{{{2|.}}}}}&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Bracket?diff=212</id>
		<title>Template:Bracket</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Bracket?diff=212"/>
		<updated>2024-10-30T05:30:59Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;amp;#91;{{#if:{{{1|}}}|{{{1}}}&amp;amp;#93;}}&amp;lt;noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Strong?diff=211</id>
		<title>Template:Strong</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Strong?diff=211"/>
		<updated>2024-10-30T05:30:27Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong {{#if:{{{role|}}}|role=&amp;quot;{{{role}}}&amp;quot;}} {{#if:{{{class|}}}|class=&amp;quot;{{{class}}}&amp;quot;}} {{#if:{{{id|}}}|id=&amp;quot;{{{id}}}&amp;quot;}} {{#if:{{{style|}}}|style=&amp;quot;{{{style}}}&amp;quot;}} {{#if:{{{title|}}}|title=&amp;quot;{{{title}}}&amp;quot;}}&amp;gt;{{{1}}}&amp;lt;/strong&amp;gt;&amp;lt;noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Bracket?diff=210</id>
		<title>Template:Bracket</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Bracket?diff=210"/>
		<updated>2024-10-30T05:20:33Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;amp;#91;{{#if:{{{1|}}}|{{{1}}}&amp;amp;#93;}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage, interwikis to Wikidata, not here --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:TNT?diff=208</id>
		<title>Module:TNT</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:TNT?diff=208"/>
		<updated>2024-10-30T04:59:22Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&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;
			table.insert(params, 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 pairs(data.schema.fields) do&lt;br /&gt;
		table.insert(names, field.name)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local params = {}&lt;br /&gt;
	local paramOrder = {}&lt;br /&gt;
	for _, row in pairs(data.data) do&lt;br /&gt;
		local newVal = {}&lt;br /&gt;
		local name = nil&lt;br /&gt;
		for pos, val in pairs(row) do&lt;br /&gt;
			local columnName = names[pos]&lt;br /&gt;
			if columnName == &#039;name&#039; then&lt;br /&gt;
				name = val&lt;br /&gt;
			else&lt;br /&gt;
				newVal[columnName] = val&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if name then&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;
	params[&#039;zzz123&#039;]=&#039;&#039;&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;
	json = string.gsub(json,&#039;&amp;quot;zzz123&amp;quot;:&amp;quot;&amp;quot;,?&#039;, &amp;quot;&amp;quot;)&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(&#039;Missing JsonConfig extension; Cannot load https://commons.wikimedia.org/wiki/Data:&#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>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Terminate_sentence?diff=207</id>
		<title>Template:Terminate sentence</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Terminate_sentence?diff=207"/>
		<updated>2024-10-30T04:58:13Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{{1}}}{{#if:{{#invoke:text|sentenceTerminated|{{{1|}}}}}||{{{2|.}}}}}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:Documentation/i18n/sandbox?diff=206</id>
		<title>Module:Documentation/i18n/sandbox</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:Documentation/i18n/sandbox?diff=206"/>
		<updated>2024-10-30T04:55:43Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&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>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Strong?diff=205</id>
		<title>Template:Strong</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Strong?diff=205"/>
		<updated>2024-10-30T04:52:11Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong {{#if:{{{role|}}}|role=&amp;quot;{{{role}}}&amp;quot;}} {{#if:{{{class|}}}|class=&amp;quot;{{{class}}}&amp;quot;}} {{#if:{{{id|}}}|id=&amp;quot;{{{id}}}&amp;quot;}} {{#if:{{{style|}}}|style=&amp;quot;{{{style}}}&amp;quot;}} {{#if:{{{title|}}}|title=&amp;quot;{{{title}}}&amp;quot;}}&amp;gt;{{{1}}}&amp;lt;/strong&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Add cats and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/User:Itsboyhappy?diff=203</id>
		<title>User:Itsboyhappy</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/User:Itsboyhappy?diff=203"/>
		<updated>2024-10-30T04:51:13Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello!&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:Documentation/config?diff=202</id>
		<title>Module:Documentation/config</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:Documentation/config?diff=202"/>
		<updated>2024-10-30T04:50:36Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&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 cfg = {} -- Do not edit this line.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Protection template configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&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;
----------------------------------------------------------------------------------------------------&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:Sandbox.svg|50px|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;] = &#039;[[Wikipedia:Template test cases|template sandbox]] page&#039;&lt;br /&gt;
cfg[&#039;sandbox-notice-pagetype-module&#039;] = &#039;[[Wikipedia:Template test cases|module sandbox]] page&#039;&lt;br /&gt;
cfg[&#039;sandbox-notice-pagetype-other&#039;] = &#039;sandbox page&#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;] = &#039;This is the $1 for $2.&#039;&lt;br /&gt;
cfg[&#039;sandbox-notice-diff-blurb&#039;] = &#039;This is the $1 for $2 ($3).&#039;&lt;br /&gt;
cfg[&#039;sandbox-notice-compare-link-display&#039;] = &#039;diff&#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;] = &#039;See also the companion subpage for $1.&#039;&lt;br /&gt;
cfg[&#039;sandbox-notice-testcases-link-display&#039;] = &#039;test cases&#039;&lt;br /&gt;
cfg[&#039;sandbox-notice-testcases-run-blurb&#039;] = &#039;See also the companion subpage for $1 ($2).&#039;&lt;br /&gt;
cfg[&#039;sandbox-notice-testcases-run-link-display&#039;] = &#039;run&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;sandbox-category&#039;] - A category to add to all template sandboxes.&lt;br /&gt;
-- cfg[&#039;module-sandbox-category&#039;] - A category to add to all module sandboxes.&lt;br /&gt;
-- cfg[&#039;module-sandbox-category&#039;] - A category to add to all sandboxe not in templates or modules.&lt;br /&gt;
cfg[&#039;sandbox-category&#039;] = &#039;Template sandboxes&#039;&lt;br /&gt;
cfg[&#039;module-sandbox-category&#039;] = &#039;Module sandboxes&#039;&lt;br /&gt;
cfg[&#039;other-sandbox-category&#039;] = &#039;Sandboxes outside of template or module namespace&#039;&lt;br /&gt;
&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=]]&#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;
cfg[&#039;template-namespace-heading&#039;] = &#039;Template documentation&#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;
cfg[&#039;module-namespace-heading&#039;] = &#039;Module documentation&#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;
cfg[&#039;file-namespace-heading&#039;] = &#039;Summary&#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;
cfg[&#039;other-namespaces-heading&#039;] = &#039;Documentation&#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;
cfg[&#039;view-link-display&#039;] = &#039;view&#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;
cfg[&#039;edit-link-display&#039;] = &#039;edit&#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;
cfg[&#039;history-link-display&#039;] = &#039;history&#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;
cfg[&#039;purge-link-display&#039;] = &#039;purge&#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;
cfg[&#039;create-link-display&#039;] = &#039;create&#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;] = &#039;The above [[Wikipedia:Template documentation|documentation]] is [[Help:Transclusion|transcluded]] from $1.&#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;] = &#039;You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].&#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;] | cfg[&#039;testcases-run-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;] = &amp;quot;Editors can experiment in this template&#039;s $1 and $2 pages.&amp;quot;&lt;br /&gt;
cfg[&#039;experiment-blurb-module&#039;] = &amp;quot;Editors can experiment in this module&#039;s $1 and $2 pages.&amp;quot;&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;] = &#039;sandbox&#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;] = &#039;edit&#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;] = &#039;create&#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;] = &#039;diff&#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;] = &#039;mirror&#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;] = &#039;testcases&#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;] = &#039;edit&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;testcases-run-link-display&#039;]&lt;br /&gt;
-- The text to display for test cases &amp;quot;run&amp;quot; links.&lt;br /&gt;
cfg[&#039;testcases-run-link-display&#039;] = &#039;run&#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;] = &#039;create&#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;] = &#039;Add categories to the $1 subpage.&#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;] = &#039;$1.&#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;] = &#039;Subpages of this $1&#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;] = &#039;template&#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;] = &#039;module&#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;] = &#039;page&#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;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;
-- HTML and CSS configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;templatestyles&#039;]&lt;br /&gt;
-- The name of the TemplateStyles page where CSS is kept.&lt;br /&gt;
-- Sandbox CSS will be at Module:Documentation/sandbox/styles.css when needed.&lt;br /&gt;
cfg[&#039;templatestyles&#039;] = &#039;Module:Documentation/styles.css&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;container&#039;]&lt;br /&gt;
-- Class which can be used to set flex or grid CSS on the&lt;br /&gt;
-- two child divs documentation and documentation-metadata&lt;br /&gt;
cfg[&#039;container&#039;] = &#039;documentation-container&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;main-div-classes&#039;]&lt;br /&gt;
-- Classes added to the main HTML &amp;quot;div&amp;quot; tag.&lt;br /&gt;
cfg[&#039;main-div-classes&#039;] = &#039;documentation&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;main-div-heading-class&#039;]&lt;br /&gt;
-- Class for the main heading for templates and modules and assoc. talk spaces&lt;br /&gt;
cfg[&#039;main-div-heading-class&#039;] = &#039;documentation-heading&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;start-box-class&#039;]&lt;br /&gt;
-- Class for the start box&lt;br /&gt;
cfg[&#039;start-box-class&#039;] = &#039;documentation-startbox&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;start-box-link-classes&#039;]&lt;br /&gt;
-- Classes used for the [view][edit][history] or [create] links in the start box.&lt;br /&gt;
-- mw-editsection-like is per [[Wikipedia:Village pump (technical)/Archive 117]]&lt;br /&gt;
cfg[&#039;start-box-link-classes&#039;] = &#039;mw-editsection-like plainlinks&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;end-box-class&#039;]&lt;br /&gt;
-- Class for the end box.&lt;br /&gt;
cfg[&#039;end-box-class&#039;] = &#039;documentation-metadata&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;end-box-plainlinks&#039;]&lt;br /&gt;
-- Plainlinks&lt;br /&gt;
cfg[&#039;end-box-plainlinks&#039;] = &#039;plainlinks&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;toolbar-class&#039;]&lt;br /&gt;
-- Class added for toolbar links.&lt;br /&gt;
cfg[&#039;toolbar-class&#039;] = &#039;documentation-toolbar&#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&#039;clear&#039;]&lt;br /&gt;
-- Just used to clear things.&lt;br /&gt;
cfg[&#039;clear&#039;] = &#039;documentation-clear&#039;&lt;br /&gt;
&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;] = true&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;Wikipedia 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>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:Message_box/ombox.css?diff=201</id>
		<title>Module:Message box/ombox.css</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:Message_box/ombox.css?diff=201"/>
		<updated>2024-10-30T04:49:18Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* {{pp|small=y}} */&lt;br /&gt;
.ombox {&lt;br /&gt;
	margin: 4px 0;&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
	border: 1px solid #a2a9b1;    /* Default &amp;quot;notice&amp;quot; gray */&lt;br /&gt;
	background-color: var(--background-color-neutral-subtle, #f8f9fa);&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
    color: var(--color-base, #202122);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* For the &amp;quot;small=yes&amp;quot; option. */&lt;br /&gt;
.ombox.mbox-small {&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
	line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-speedy {&lt;br /&gt;
	border: 2px solid #b32424;    /* Red */&lt;br /&gt;
	background-color: #fee7e6;    /* Pink */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-delete {&lt;br /&gt;
	border: 2px solid #b32424;    /* Red */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-content {&lt;br /&gt;
	border: 1px solid #f28500;    /* Orange */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-style {&lt;br /&gt;
	border: 1px solid #fc3;       /* Yellow */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-move {&lt;br /&gt;
	border: 1px solid #9932cc;    /* Purple */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox-protection {&lt;br /&gt;
	border: 2px solid #a2a9b1;    /* Gray-gold */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox .mbox-text {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 0.25em 0.9em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox .mbox-image {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0 2px 0.9em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox .mbox-imageright {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	padding: 2px 0.9em 2px 0;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* An empty narrow cell */&lt;br /&gt;
.ombox .mbox-empty-cell {&lt;br /&gt;
	border: none;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	width: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ombox .mbox-invalid-type {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.ombox {&lt;br /&gt;
		margin: 4px 10%;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	.ombox.mbox-small {&lt;br /&gt;
		/* @noflip */&lt;br /&gt;
		clear: right;&lt;br /&gt;
		/* @noflip */&lt;br /&gt;
		float: right;&lt;br /&gt;
		/* @noflip */&lt;br /&gt;
		margin: 4px 0 4px 1em;&lt;br /&gt;
		width: 238px;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** T367463 */&lt;br /&gt;
body.skin--responsive table.ombox img {&lt;br /&gt;
	max-width: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
	html.skin-theme-clientpref-night .ombox-speedy {&lt;br /&gt;
		background-color: #310402;    /* Dark red, same hue/saturation as light */&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (prefers-color-scheme: dark) {&lt;br /&gt;
	html.skin-theme-clientpref-os .ombox-speedy {&lt;br /&gt;
		background-color: #310402; /* Dark red, same hue/saturation as light */&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:Message_box/configuration?diff=199</id>
		<title>Module:Message box/configuration</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:Message_box/configuration?diff=199"/>
		<updated>2024-10-30T04:47:59Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: Itsboyhappy moved page Module:Message box/configuration&amp;#039; not found to Module:Message box/configuration: Misspelled title&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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;ambox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;ambox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.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;Information icon4.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;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       = &#039;Article message templates with missing parameters&#039;,&lt;br /&gt;
		templateErrorParamsToCheck  = {&#039;issue&#039;, &#039;fix&#039;, &#039;subst&#039;},&lt;br /&gt;
		removalNotice               = &#039;&amp;lt;small&amp;gt;[[Help:Maintenance template removal|Learn how and when to remove this message]]&amp;lt;/small&amp;gt;&#039;,&lt;br /&gt;
		templatestyles              = &#039;Module:Message box/ambox.css&#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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;cmbox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;cmbox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.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;Information icon4.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;cmbox&#039;},&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		templatestyles       = &#039;Module:Message box/cmbox.css&#039;&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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			editnotice = {&lt;br /&gt;
				class = &#039;fmbox-editnotice&#039;,&lt;br /&gt;
				image = &#039;Information icon4.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			system = {&lt;br /&gt;
				class = &#039;fmbox-system&#039;,&lt;br /&gt;
				image = &#039;Information icon4.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;fmbox&#039;},&lt;br /&gt;
		imageEmptyCell       = false,&lt;br /&gt;
		imageRightNone       = false,&lt;br /&gt;
		templatestyles       = &#039;Module:Message box/fmbox.css&#039;&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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;imbox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;imbox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.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;
			[&amp;quot;license-related&amp;quot;] = {&lt;br /&gt;
				class = &#039;imbox-license&#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;
				imageNeedsLink = true&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;imbox-notice&#039;,&lt;br /&gt;
				image = &#039;Information icon4.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;
		imageEmptyCell       = true,&lt;br /&gt;
		below                = true,&lt;br /&gt;
		templateCategory     = &#039;File message boxes&#039;,&lt;br /&gt;
		templatestyles       = &#039;Module:Message box/imbox.css&#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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;ombox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;ombox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.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;Information icon4.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;ombox&#039;},&lt;br /&gt;
		allowSmall           = true,&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		imageRightNone       = true,&lt;br /&gt;
		templatestyles       = &#039;Module:Message box/ombox.css&#039;&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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;tmbox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;tmbox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.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;Information icon4.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;tmbox&#039;},&lt;br /&gt;
		allowSmall           = true,&lt;br /&gt;
		imageRightNone       = true,&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		templateCategory     = &#039;Talk message boxes&#039;,&lt;br /&gt;
		templatestyles       = &#039;Module:Message box/tmbox.css&#039;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:Message_box/configuration?diff=198</id>
		<title>Module:Message box/configuration</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:Message_box/configuration?diff=198"/>
		<updated>2024-10-30T04:45:18Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;ambox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;ambox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.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;Information icon4.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;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       = &#039;Article message templates with missing parameters&#039;,&lt;br /&gt;
		templateErrorParamsToCheck  = {&#039;issue&#039;, &#039;fix&#039;, &#039;subst&#039;},&lt;br /&gt;
		removalNotice               = &#039;&amp;lt;small&amp;gt;[[Help:Maintenance template removal|Learn how and when to remove this message]]&amp;lt;/small&amp;gt;&#039;,&lt;br /&gt;
		templatestyles              = &#039;Module:Message box/ambox.css&#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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;cmbox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;cmbox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.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;Information icon4.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;cmbox&#039;},&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		templatestyles       = &#039;Module:Message box/cmbox.css&#039;&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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			editnotice = {&lt;br /&gt;
				class = &#039;fmbox-editnotice&#039;,&lt;br /&gt;
				image = &#039;Information icon4.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			system = {&lt;br /&gt;
				class = &#039;fmbox-system&#039;,&lt;br /&gt;
				image = &#039;Information icon4.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;fmbox&#039;},&lt;br /&gt;
		imageEmptyCell       = false,&lt;br /&gt;
		imageRightNone       = false,&lt;br /&gt;
		templatestyles       = &#039;Module:Message box/fmbox.css&#039;&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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;imbox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;imbox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.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;
			[&amp;quot;license-related&amp;quot;] = {&lt;br /&gt;
				class = &#039;imbox-license&#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;
				imageNeedsLink = true&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &#039;imbox-notice&#039;,&lt;br /&gt;
				image = &#039;Information icon4.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;
		imageEmptyCell       = true,&lt;br /&gt;
		below                = true,&lt;br /&gt;
		templateCategory     = &#039;File message boxes&#039;,&lt;br /&gt;
		templatestyles       = &#039;Module:Message box/imbox.css&#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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;ombox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;ombox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.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;Information icon4.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;ombox&#039;},&lt;br /&gt;
		allowSmall           = true,&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		imageRightNone       = true,&lt;br /&gt;
		templatestyles       = &#039;Module:Message box/ombox.css&#039;&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;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &#039;tmbox-delete&#039;,&lt;br /&gt;
				image = &#039;Ambox warning pn.svg&#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &#039;tmbox-content&#039;,&lt;br /&gt;
				image = &#039;Ambox important.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;Information icon4.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;tmbox&#039;},&lt;br /&gt;
		allowSmall           = true,&lt;br /&gt;
		imageRightNone       = true,&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		templateCategory     = &#039;Talk message boxes&#039;,&lt;br /&gt;
		templatestyles       = &#039;Module:Message box/tmbox.css&#039;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:Yesno?diff=197</id>
		<title>Module:Yesno</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:Yesno?diff=197"/>
		<updated>2024-10-30T04:40:33Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Function allowing for consistent treatment of boolean-like wikitext input.&lt;br /&gt;
-- It works similarly to the template {{yesno}}.&lt;br /&gt;
&lt;br /&gt;
return function (val, default)&lt;br /&gt;
	-- If your wiki uses non-ascii characters for any of &amp;quot;yes&amp;quot;, &amp;quot;no&amp;quot;, etc., you&lt;br /&gt;
	-- should replace &amp;quot;val:lower()&amp;quot; with &amp;quot;mw.ustring.lower(val)&amp;quot; in the&lt;br /&gt;
	-- following line.&lt;br /&gt;
	val = type(val) == &#039;string&#039; and val:lower() or val&lt;br /&gt;
	if val == nil then&lt;br /&gt;
		return nil&lt;br /&gt;
	elseif val == true &lt;br /&gt;
		or val == &#039;yes&#039;&lt;br /&gt;
		or val == &#039;y&#039;&lt;br /&gt;
		or val == &#039;true&#039;&lt;br /&gt;
		or val == &#039;t&#039;&lt;br /&gt;
		or val == &#039;on&#039;&lt;br /&gt;
		or tonumber(val) == 1&lt;br /&gt;
	then&lt;br /&gt;
		return true&lt;br /&gt;
	elseif val == false&lt;br /&gt;
		or val == &#039;no&#039;&lt;br /&gt;
		or val == &#039;n&#039;&lt;br /&gt;
		or val == &#039;false&#039;&lt;br /&gt;
		or val == &#039;f&#039;&lt;br /&gt;
		or val == &#039;off&#039;&lt;br /&gt;
		or tonumber(val) == 0&lt;br /&gt;
	then&lt;br /&gt;
		return false&lt;br /&gt;
	else&lt;br /&gt;
		return default&lt;br /&gt;
	end&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Documentation?diff=196</id>
		<title>Template:Documentation</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Documentation?diff=196"/>
		<updated>2024-10-30T04:39:54Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Module:Message_box?diff=195</id>
		<title>Module:Message box</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Module:Message_box?diff=195"/>
		<updated>2024-10-30T04:39:13Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;require(&#039;strict&#039;)&lt;br /&gt;
local getArgs&lt;br /&gt;
local yesno = require(&#039;Module:Yesno&#039;)&lt;br /&gt;
local lang = mw.language.getContentLanguage()&lt;br /&gt;
&lt;br /&gt;
local CONFIG_MODULE = &#039;Module:Message box/configuration&#039;&lt;br /&gt;
local DEMOSPACES = {talk = &#039;tmbox&#039;, image = &#039;imbox&#039;, file = &#039;imbox&#039;, category = &#039;cmbox&#039;, article = &#039;ambox&#039;, main = &#039;ambox&#039;}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function getTitleObject(...)&lt;br /&gt;
	-- Get the title object, passing the function through pcall&lt;br /&gt;
	-- in case we are over the expensive function count limit.&lt;br /&gt;
	local success, title = pcall(mw.title.new, ...)&lt;br /&gt;
	if success then&lt;br /&gt;
		return title&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function union(t1, t2)&lt;br /&gt;
	-- Returns the union of two arrays.&lt;br /&gt;
	local vals = {}&lt;br /&gt;
	for i, v in ipairs(t1) do&lt;br /&gt;
		vals[v] = true&lt;br /&gt;
	end&lt;br /&gt;
	for i, v in ipairs(t2) do&lt;br /&gt;
		vals[v] = true&lt;br /&gt;
	end&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for k in pairs(vals) do&lt;br /&gt;
		table.insert(ret, k)&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(ret)&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getArgNums(args, prefix)&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		local num = mw.ustring.match(tostring(k), &#039;^&#039; .. prefix .. &#039;([1-9]%d*)$&#039;)&lt;br /&gt;
		if num then&lt;br /&gt;
			table.insert(nums, tonumber(num))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(nums)&lt;br /&gt;
	return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Box class definition&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local MessageBox = {}&lt;br /&gt;
MessageBox.__index = MessageBox&lt;br /&gt;
&lt;br /&gt;
function MessageBox.new(boxType, args, cfg)&lt;br /&gt;
	args = args or {}&lt;br /&gt;
	local obj = {}&lt;br /&gt;
&lt;br /&gt;
	-- Set the title object and the namespace.&lt;br /&gt;
	obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
	-- Set the config for our box type.&lt;br /&gt;
	obj.cfg = cfg[boxType]&lt;br /&gt;
	if not obj.cfg then&lt;br /&gt;
		local ns = obj.title.namespace&lt;br /&gt;
		-- boxType is &amp;quot;mbox&amp;quot; or invalid input&lt;br /&gt;
		if args.demospace and args.demospace ~= &#039;&#039; then&lt;br /&gt;
			-- implement demospace parameter of mbox&lt;br /&gt;
			local demospace = string.lower(args.demospace)&lt;br /&gt;
			if DEMOSPACES[demospace] then&lt;br /&gt;
				-- use template from DEMOSPACES&lt;br /&gt;
				obj.cfg = cfg[DEMOSPACES[demospace]]&lt;br /&gt;
			elseif string.find( demospace, &#039;talk&#039; ) then&lt;br /&gt;
				-- demo as a talk page&lt;br /&gt;
				obj.cfg = cfg.tmbox&lt;br /&gt;
			else&lt;br /&gt;
				-- default to ombox&lt;br /&gt;
				obj.cfg = cfg.ombox&lt;br /&gt;
			end&lt;br /&gt;
		elseif ns == 0 then&lt;br /&gt;
			obj.cfg = cfg.ambox -- main namespace&lt;br /&gt;
		elseif ns == 6 then&lt;br /&gt;
			obj.cfg = cfg.imbox -- file namespace&lt;br /&gt;
		elseif ns == 14 then&lt;br /&gt;
			obj.cfg = cfg.cmbox -- category namespace&lt;br /&gt;
		else&lt;br /&gt;
			local nsTable = mw.site.namespaces[ns]&lt;br /&gt;
			if nsTable and nsTable.isTalk then&lt;br /&gt;
				obj.cfg = cfg.tmbox -- any talk namespace&lt;br /&gt;
			else&lt;br /&gt;
				obj.cfg = cfg.ombox -- other namespaces or invalid input&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the arguments, and remove all blank arguments except for the ones&lt;br /&gt;
	-- listed in cfg.allowBlankParams.&lt;br /&gt;
	do&lt;br /&gt;
		local newArgs = {}&lt;br /&gt;
		for k, v in pairs(args) do&lt;br /&gt;
			if v ~= &#039;&#039; then&lt;br /&gt;
				newArgs[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		for i, param in ipairs(obj.cfg.allowBlankParams or {}) do&lt;br /&gt;
			newArgs[param] = args[param]&lt;br /&gt;
		end&lt;br /&gt;
		obj.args = newArgs&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Define internal data structure.&lt;br /&gt;
	obj.categories = {}&lt;br /&gt;
	obj.classes = {}&lt;br /&gt;
	-- For lazy loading of [[Module:Category handler]].&lt;br /&gt;
	obj.hasCategories = false&lt;br /&gt;
&lt;br /&gt;
	return setmetatable(obj, MessageBox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:addCat(ns, cat, sort)&lt;br /&gt;
	if not cat then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	if sort then&lt;br /&gt;
		cat = string.format(&#039;[[Category:%s|%s]]&#039;, cat, sort)&lt;br /&gt;
	else&lt;br /&gt;
		cat = string.format(&#039;[[Category:%s]]&#039;, cat)&lt;br /&gt;
	end&lt;br /&gt;
	self.hasCategories = true&lt;br /&gt;
	self.categories[ns] = self.categories[ns] or {}&lt;br /&gt;
	table.insert(self.categories[ns], cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:addClass(class)&lt;br /&gt;
	if not class then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(self.classes, class)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setParameters()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	-- Get type data.&lt;br /&gt;
	self.type = args.type&lt;br /&gt;
	local typeData = cfg.types[self.type]&lt;br /&gt;
	self.invalidTypeError = cfg.showInvalidTypeError&lt;br /&gt;
		and self.type&lt;br /&gt;
		and not typeData&lt;br /&gt;
	typeData = typeData or cfg.types[cfg.default]&lt;br /&gt;
	self.typeClass = typeData.class&lt;br /&gt;
	self.typeImage = typeData.image&lt;br /&gt;
	self.typeImageNeedsLink = typeData.imageNeedsLink&lt;br /&gt;
&lt;br /&gt;
	-- Find if the box has been wrongly substituted.&lt;br /&gt;
	self.isSubstituted = cfg.substCheck and args.subst == &#039;SUBST&#039;&lt;br /&gt;
&lt;br /&gt;
	-- Find whether we are using a small message box.&lt;br /&gt;
	self.isSmall = cfg.allowSmall and (&lt;br /&gt;
		cfg.smallParam and args.small == cfg.smallParam&lt;br /&gt;
		or not cfg.smallParam and yesno(args.small)&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
	-- Add attributes, classes and styles.&lt;br /&gt;
	self.id = args.id&lt;br /&gt;
	self.name = args.name&lt;br /&gt;
	if self.name then&lt;br /&gt;
		self:addClass(&#039;box-&#039; .. string.gsub(self.name,&#039; &#039;,&#039;_&#039;))&lt;br /&gt;
	end&lt;br /&gt;
	if yesno(args.plainlinks) ~= false then&lt;br /&gt;
		self:addClass(&#039;plainlinks&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	for _, class in ipairs(cfg.classes or {}) do&lt;br /&gt;
		self:addClass(class)&lt;br /&gt;
	end&lt;br /&gt;
	if self.isSmall then&lt;br /&gt;
		self:addClass(cfg.smallClass or &#039;mbox-small&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	self:addClass(self.typeClass)&lt;br /&gt;
	self:addClass(args.class)&lt;br /&gt;
	self.style = args.style&lt;br /&gt;
	self.attrs = args.attrs&lt;br /&gt;
&lt;br /&gt;
	-- Set text style.&lt;br /&gt;
	self.textstyle = args.textstyle&lt;br /&gt;
	&lt;br /&gt;
	-- Set image classes.&lt;br /&gt;
	self.imageRightClass = args.imagerightclass or args.imageclass&lt;br /&gt;
	self.imageLeftClass = args.imageleftclass or args.imageclass&lt;br /&gt;
&lt;br /&gt;
	-- Find if we are on the template page or not. This functionality is only&lt;br /&gt;
	-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory&lt;br /&gt;
	-- and cfg.templateCategoryRequireName are set.&lt;br /&gt;
	self.useCollapsibleTextFields = cfg.useCollapsibleTextFields&lt;br /&gt;
	if self.useCollapsibleTextFields&lt;br /&gt;
		or cfg.templateCategory&lt;br /&gt;
		and cfg.templateCategoryRequireName&lt;br /&gt;
	then&lt;br /&gt;
		if self.name then&lt;br /&gt;
			local templateName = mw.ustring.match(&lt;br /&gt;
				self.name,&lt;br /&gt;
				&#039;^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$&#039;&lt;br /&gt;
			) or self.name&lt;br /&gt;
			templateName = &#039;Template:&#039; .. templateName&lt;br /&gt;
			self.templateTitle = getTitleObject(templateName)&lt;br /&gt;
		end&lt;br /&gt;
		self.isTemplatePage = self.templateTitle&lt;br /&gt;
			and mw.title.equals(self.title, self.templateTitle)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Process data for collapsible text fields. At the moment these are only&lt;br /&gt;
	-- used in {{ambox}}.&lt;br /&gt;
	if self.useCollapsibleTextFields then&lt;br /&gt;
		-- Get the self.issue value.&lt;br /&gt;
		if self.isSmall and args.smalltext then&lt;br /&gt;
			self.issue = args.smalltext&lt;br /&gt;
		else&lt;br /&gt;
			local sect&lt;br /&gt;
			if args.sect == &#039;&#039; then&lt;br /&gt;
				sect = &#039;This &#039; .. (cfg.sectionDefault or &#039;page&#039;)&lt;br /&gt;
			elseif type(args.sect) == &#039;string&#039; then&lt;br /&gt;
				sect = &#039;This &#039; .. args.sect&lt;br /&gt;
			end&lt;br /&gt;
			local issue = args.issue&lt;br /&gt;
			issue = type(issue) == &#039;string&#039; and issue ~= &#039;&#039; and issue or nil&lt;br /&gt;
			local text = args.text&lt;br /&gt;
			text = type(text) == &#039;string&#039; and text or nil&lt;br /&gt;
			local issues = {}&lt;br /&gt;
			table.insert(issues, sect)&lt;br /&gt;
			table.insert(issues, issue)&lt;br /&gt;
			table.insert(issues, text)&lt;br /&gt;
			self.issue = table.concat(issues, &#039; &#039;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Get the self.talk value.&lt;br /&gt;
		local talk = args.talk&lt;br /&gt;
		-- Show talk links on the template page or template subpages if the talk&lt;br /&gt;
		-- parameter is blank.&lt;br /&gt;
		if talk == &#039;&#039;&lt;br /&gt;
			and self.templateTitle&lt;br /&gt;
			and (&lt;br /&gt;
				mw.title.equals(self.templateTitle, self.title)&lt;br /&gt;
				or self.title:isSubpageOf(self.templateTitle)&lt;br /&gt;
			)&lt;br /&gt;
		then&lt;br /&gt;
			talk = &#039;#&#039;&lt;br /&gt;
		elseif talk == &#039;&#039; then&lt;br /&gt;
			talk = nil&lt;br /&gt;
		end&lt;br /&gt;
		if talk then&lt;br /&gt;
			-- If the talk value is a talk page, make a link to that page. Else&lt;br /&gt;
			-- assume that it&#039;s a section heading, and make a link to the talk&lt;br /&gt;
			-- page of the current page with that section heading.&lt;br /&gt;
			local talkTitle = getTitleObject(talk)&lt;br /&gt;
			local talkArgIsTalkPage = true&lt;br /&gt;
			if not talkTitle or not talkTitle.isTalkPage then&lt;br /&gt;
				talkArgIsTalkPage = false&lt;br /&gt;
				talkTitle = getTitleObject(&lt;br /&gt;
					self.title.text,&lt;br /&gt;
					mw.site.namespaces[self.title.namespace].talk.id&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
			if talkTitle and talkTitle.exists then&lt;br /&gt;
                local talkText&lt;br /&gt;
                if self.isSmall then&lt;br /&gt;
                    local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. &#039;#&#039; .. talk)&lt;br /&gt;
                    talkText = string.format(&#039;([[%s|talk]])&#039;, talkLink)&lt;br /&gt;
                else&lt;br /&gt;
                    talkText = &#039;Relevant discussion may be found on&#039;&lt;br /&gt;
                    if talkArgIsTalkPage then&lt;br /&gt;
                        talkText = string.format(&lt;br /&gt;
                            &#039;%s [[%s|%s]].&#039;,&lt;br /&gt;
                            talkText,&lt;br /&gt;
                            talk,&lt;br /&gt;
                            talkTitle.prefixedText&lt;br /&gt;
                        )&lt;br /&gt;
                    else&lt;br /&gt;
                        talkText = string.format(&lt;br /&gt;
                            &#039;%s the [[%s#%s|talk page]].&#039;,&lt;br /&gt;
                            talkText,&lt;br /&gt;
                            talkTitle.prefixedText,&lt;br /&gt;
                            talk&lt;br /&gt;
                        )&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
				self.talk = talkText&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Get other values.&lt;br /&gt;
		self.fix = args.fix ~= &#039;&#039; and args.fix or nil&lt;br /&gt;
		local date&lt;br /&gt;
		if args.date and args.date ~= &#039;&#039; then&lt;br /&gt;
			date = args.date&lt;br /&gt;
		elseif args.date == &#039;&#039; and self.isTemplatePage then&lt;br /&gt;
			date = lang:formatDate(&#039;F Y&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		if date then&lt;br /&gt;
			self.date = string.format(&amp;quot; &amp;lt;span class=&#039;date-container&#039;&amp;gt;&amp;lt;i&amp;gt;(&amp;lt;span class=&#039;date&#039;&amp;gt;%s&amp;lt;/span&amp;gt;)&amp;lt;/i&amp;gt;&amp;lt;/span&amp;gt;&amp;quot;, date)&lt;br /&gt;
		end&lt;br /&gt;
		self.info = args.info&lt;br /&gt;
		if yesno(args.removalnotice) then&lt;br /&gt;
			self.removalNotice = cfg.removalNotice&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the non-collapsible text field. At the moment this is used by all box&lt;br /&gt;
	-- types other than ambox, and also by ambox when small=yes.&lt;br /&gt;
	if self.isSmall then&lt;br /&gt;
		self.text = args.smalltext or args.text&lt;br /&gt;
	else&lt;br /&gt;
		self.text = args.text&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the below row.&lt;br /&gt;
	self.below = cfg.below and args.below&lt;br /&gt;
&lt;br /&gt;
	-- General image settings.&lt;br /&gt;
	self.imageCellDiv = not self.isSmall and cfg.imageCellDiv&lt;br /&gt;
	self.imageEmptyCell = cfg.imageEmptyCell&lt;br /&gt;
&lt;br /&gt;
	-- Left image settings.&lt;br /&gt;
	local imageLeft = self.isSmall and args.smallimage or args.image&lt;br /&gt;
	if cfg.imageCheckBlank and imageLeft ~= &#039;blank&#039; and imageLeft ~= &#039;none&#039;&lt;br /&gt;
		or not cfg.imageCheckBlank and imageLeft ~= &#039;none&#039;&lt;br /&gt;
	then&lt;br /&gt;
		self.imageLeft = imageLeft&lt;br /&gt;
		if not imageLeft then&lt;br /&gt;
			local imageSize = self.isSmall&lt;br /&gt;
				and (cfg.imageSmallSize or &#039;30x30px&#039;)&lt;br /&gt;
				or &#039;40x40px&#039;&lt;br /&gt;
			self.imageLeft = string.format(&#039;[[File:%s|%s%s|alt=]]&#039;, self.typeImage&lt;br /&gt;
				or &#039;Information icon4.svg&#039;, imageSize, self.typeImageNeedsLink and &amp;quot;&amp;quot; or &amp;quot;|link=&amp;quot; )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Right image settings.&lt;br /&gt;
	local imageRight = self.isSmall and args.smallimageright or args.imageright&lt;br /&gt;
	if not (cfg.imageRightNone and imageRight == &#039;none&#039;) then&lt;br /&gt;
		self.imageRight = imageRight&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- set templatestyles&lt;br /&gt;
	self.base_templatestyles = cfg.templatestyles&lt;br /&gt;
	self.templatestyles = args.templatestyles&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setMainspaceCategories()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	if not cfg.allowMainspaceCategories then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for _, prefix in ipairs{&#039;cat&#039;, &#039;category&#039;, &#039;all&#039;} do&lt;br /&gt;
		args[prefix .. &#039;1&#039;] = args[prefix]&lt;br /&gt;
		nums = union(nums, getArgNums(args, prefix))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- The following is roughly equivalent to the old {{Ambox/category}}.&lt;br /&gt;
	local date = args.date&lt;br /&gt;
	date = type(date) == &#039;string&#039; and date&lt;br /&gt;
	local preposition = &#039;from&#039;&lt;br /&gt;
	for _, num in ipairs(nums) do&lt;br /&gt;
		local mainCat = args[&#039;cat&#039; .. tostring(num)]&lt;br /&gt;
			or args[&#039;category&#039; .. tostring(num)]&lt;br /&gt;
		local allCat = args[&#039;all&#039; .. tostring(num)]&lt;br /&gt;
		mainCat = type(mainCat) == &#039;string&#039; and mainCat&lt;br /&gt;
		allCat = type(allCat) == &#039;string&#039; and allCat&lt;br /&gt;
		if mainCat and date and date ~= &#039;&#039; then&lt;br /&gt;
			local catTitle = string.format(&#039;%s %s %s&#039;, mainCat, preposition, date)&lt;br /&gt;
			self:addCat(0, catTitle)&lt;br /&gt;
			catTitle = getTitleObject(&#039;Category:&#039; .. catTitle)&lt;br /&gt;
			if not catTitle or not catTitle.exists then&lt;br /&gt;
				self:addCat(0, &#039;Articles with invalid date parameter in template&#039;)&lt;br /&gt;
			end&lt;br /&gt;
		elseif mainCat and (not date or date == &#039;&#039;) then&lt;br /&gt;
			self:addCat(0, mainCat)&lt;br /&gt;
		end&lt;br /&gt;
		if allCat then&lt;br /&gt;
			self:addCat(0, allCat)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setTemplateCategories()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	-- Add template categories.&lt;br /&gt;
	if cfg.templateCategory then&lt;br /&gt;
		if cfg.templateCategoryRequireName then&lt;br /&gt;
			if self.isTemplatePage then&lt;br /&gt;
				self:addCat(10, cfg.templateCategory)&lt;br /&gt;
			end&lt;br /&gt;
		elseif not self.title.isSubpage then&lt;br /&gt;
			self:addCat(10, cfg.templateCategory)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add template error categories.&lt;br /&gt;
	if cfg.templateErrorCategory then&lt;br /&gt;
		local templateErrorCategory = cfg.templateErrorCategory&lt;br /&gt;
		local templateCat, templateSort&lt;br /&gt;
		if not self.name and not self.title.isSubpage then&lt;br /&gt;
			templateCat = templateErrorCategory&lt;br /&gt;
		elseif self.isTemplatePage then&lt;br /&gt;
			local paramsToCheck = cfg.templateErrorParamsToCheck or {}&lt;br /&gt;
			local count = 0&lt;br /&gt;
			for i, param in ipairs(paramsToCheck) do&lt;br /&gt;
				if not args[param] then&lt;br /&gt;
					count = count + 1&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if count &amp;gt; 0 then&lt;br /&gt;
				templateCat = templateErrorCategory&lt;br /&gt;
				templateSort = tostring(count)&lt;br /&gt;
			end&lt;br /&gt;
			if self.categoryNums and #self.categoryNums &amp;gt; 0 then&lt;br /&gt;
				templateCat = templateErrorCategory&lt;br /&gt;
				templateSort = &#039;C&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		self:addCat(10, templateCat, templateSort)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setAllNamespaceCategories()&lt;br /&gt;
	-- Set categories for all namespaces.&lt;br /&gt;
	if self.invalidTypeError then&lt;br /&gt;
		local allSort = (self.title.namespace == 0 and &#039;Main:&#039; or &#039;&#039;) .. self.title.prefixedText&lt;br /&gt;
		self:addCat(&#039;all&#039;, &#039;Wikipedia message box parameter needs fixing&#039;, allSort)&lt;br /&gt;
	end&lt;br /&gt;
	if self.isSubstituted then&lt;br /&gt;
		self:addCat(&#039;all&#039;, &#039;Pages with incorrectly substituted templates&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setCategories()&lt;br /&gt;
	if self.title.namespace == 0 then&lt;br /&gt;
		self:setMainspaceCategories()&lt;br /&gt;
	elseif self.title.namespace == 10 then&lt;br /&gt;
		self:setTemplateCategories()&lt;br /&gt;
	end&lt;br /&gt;
	self:setAllNamespaceCategories()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:renderCategories()&lt;br /&gt;
	if not self.hasCategories then&lt;br /&gt;
		-- No categories added, no need to pass them to Category handler so,&lt;br /&gt;
		-- if it was invoked, it would return the empty string.&lt;br /&gt;
		-- So we shortcut and return the empty string.&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	-- Convert category tables to strings and pass them through&lt;br /&gt;
	-- [[Module:Category handler]].&lt;br /&gt;
	return require(&#039;Module:Category handler&#039;)._main{&lt;br /&gt;
		main = table.concat(self.categories[0] or {}),&lt;br /&gt;
		template = table.concat(self.categories[10] or {}),&lt;br /&gt;
		all = table.concat(self.categories.all or {}),&lt;br /&gt;
		nocat = self.args.nocat,&lt;br /&gt;
		page = self.args.page&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:export()&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
	-- Add the subst check error.&lt;br /&gt;
	if self.isSubstituted and self.name then&lt;br /&gt;
		root:tag(&#039;b&#039;)&lt;br /&gt;
			:addClass(&#039;error&#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&#039;Template &amp;lt;code&amp;gt;%s[[Template:%s|%s]]%s&amp;lt;/code&amp;gt; has been incorrectly substituted.&#039;,&lt;br /&gt;
				mw.text.nowiki(&#039;{{&#039;), self.name, self.name, mw.text.nowiki(&#039;}}&#039;)&lt;br /&gt;
			))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	root:wikitext(frame:extensionTag{&lt;br /&gt;
		name = &#039;templatestyles&#039;,&lt;br /&gt;
		args = { src = self.base_templatestyles },&lt;br /&gt;
	})&lt;br /&gt;
	-- Add support for a single custom templatestyles sheet. Undocumented as&lt;br /&gt;
	-- need should be limited and many templates using mbox are substed; we&lt;br /&gt;
	-- don&#039;t want to spread templatestyles sheets around to arbitrary places&lt;br /&gt;
	if self.templatestyles then&lt;br /&gt;
		root:wikitext(frame:extensionTag{&lt;br /&gt;
			name = &#039;templatestyles&#039;,&lt;br /&gt;
			args = { src = self.templatestyles },&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Create the box table.&lt;br /&gt;
	local boxTable = root:tag(&#039;table&#039;)&lt;br /&gt;
	boxTable:attr(&#039;id&#039;, self.id or nil)&lt;br /&gt;
	for i, class in ipairs(self.classes or {}) do&lt;br /&gt;
		boxTable:addClass(class or nil)&lt;br /&gt;
	end&lt;br /&gt;
	boxTable&lt;br /&gt;
		:cssText(self.style or nil)&lt;br /&gt;
		:attr(&#039;role&#039;, &#039;presentation&#039;)&lt;br /&gt;
&lt;br /&gt;
	if self.attrs then&lt;br /&gt;
		boxTable:attr(self.attrs)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the left-hand image.&lt;br /&gt;
	local row = boxTable:tag(&#039;tr&#039;)&lt;br /&gt;
	if self.imageLeft then&lt;br /&gt;
		local imageLeftCell = row:tag(&#039;td&#039;):addClass(&#039;mbox-image&#039;)&lt;br /&gt;
		if self.imageCellDiv then&lt;br /&gt;
			-- If we are using a div, redefine imageLeftCell so that the image&lt;br /&gt;
			-- is inside it. Divs use style=&amp;quot;width: 52px;&amp;quot;, which limits the&lt;br /&gt;
			-- image width to 52px. If any images in a div are wider than that,&lt;br /&gt;
			-- they may overlap with the text or cause other display problems.&lt;br /&gt;
			imageLeftCell = imageLeftCell:tag(&#039;div&#039;):addClass(&#039;mbox-image-div&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		imageLeftCell&lt;br /&gt;
			:addClass(self.imageLeftClass)&lt;br /&gt;
			:wikitext(self.imageLeft or nil)&lt;br /&gt;
	elseif self.imageEmptyCell then&lt;br /&gt;
		-- Some message boxes define an empty cell if no image is specified, and&lt;br /&gt;
		-- some don&#039;t. The old template code in templates where empty cells are&lt;br /&gt;
		-- specified gives the following hint: &amp;quot;No image. Cell with some width&lt;br /&gt;
		-- or padding necessary for text cell to have 100% width.&amp;quot;&lt;br /&gt;
		row:tag(&#039;td&#039;)&lt;br /&gt;
			:addClass(&#039;mbox-empty-cell&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the text.&lt;br /&gt;
	local textCell = row:tag(&#039;td&#039;):addClass(&#039;mbox-text&#039;)&lt;br /&gt;
	if self.useCollapsibleTextFields then&lt;br /&gt;
		-- The message box uses advanced text parameters that allow things to be&lt;br /&gt;
		-- collapsible. At the moment, only ambox uses this.&lt;br /&gt;
		textCell:cssText(self.textstyle or nil)&lt;br /&gt;
		local textCellDiv = textCell:tag(&#039;div&#039;)&lt;br /&gt;
		textCellDiv&lt;br /&gt;
			:addClass(&#039;mbox-text-span&#039;)&lt;br /&gt;
			:wikitext(self.issue or nil)&lt;br /&gt;
		if (self.talk or self.fix) then&lt;br /&gt;
			textCellDiv:tag(&#039;span&#039;)&lt;br /&gt;
				:addClass(&#039;hide-when-compact&#039;)&lt;br /&gt;
				:wikitext(self.talk and (&#039; &#039; .. self.talk) or nil)&lt;br /&gt;
				:wikitext(self.fix and (&#039; &#039; .. self.fix) or nil)&lt;br /&gt;
		end&lt;br /&gt;
		textCellDiv:wikitext(self.date and (&#039; &#039; .. self.date) or nil)&lt;br /&gt;
		if self.info and not self.isSmall then&lt;br /&gt;
			textCellDiv&lt;br /&gt;
				:tag(&#039;span&#039;)&lt;br /&gt;
				:addClass(&#039;hide-when-compact&#039;)&lt;br /&gt;
				:wikitext(self.info and (&#039; &#039; .. self.info) or nil)&lt;br /&gt;
		end&lt;br /&gt;
		if self.removalNotice then&lt;br /&gt;
			textCellDiv:tag(&#039;span&#039;)&lt;br /&gt;
				:addClass(&#039;hide-when-compact&#039;)&lt;br /&gt;
				:tag(&#039;i&#039;)&lt;br /&gt;
					:wikitext(string.format(&amp;quot; (%s)&amp;quot;, self.removalNotice))&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- Default text formatting - anything goes.&lt;br /&gt;
		textCell&lt;br /&gt;
			:cssText(self.textstyle or nil)&lt;br /&gt;
			:wikitext(self.text or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the right-hand image.&lt;br /&gt;
	if self.imageRight then&lt;br /&gt;
		local imageRightCell = row:tag(&#039;td&#039;):addClass(&#039;mbox-imageright&#039;)&lt;br /&gt;
		if self.imageCellDiv then&lt;br /&gt;
			-- If we are using a div, redefine imageRightCell so that the image&lt;br /&gt;
			-- is inside it.&lt;br /&gt;
			imageRightCell = imageRightCell:tag(&#039;div&#039;):addClass(&#039;mbox-image-div&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		imageRightCell&lt;br /&gt;
			:addClass(self.imageRightClass)&lt;br /&gt;
			:wikitext(self.imageRight or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the below row.&lt;br /&gt;
	if self.below then&lt;br /&gt;
		boxTable:tag(&#039;tr&#039;)&lt;br /&gt;
			:tag(&#039;td&#039;)&lt;br /&gt;
				:attr(&#039;colspan&#039;, self.imageRight and &#039;3&#039; or &#039;2&#039;)&lt;br /&gt;
				:addClass(&#039;mbox-text&#039;)&lt;br /&gt;
				:cssText(self.textstyle or nil)&lt;br /&gt;
				:wikitext(self.below or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add error message for invalid type parameters.&lt;br /&gt;
	if self.invalidTypeError then&lt;br /&gt;
		root:tag(&#039;div&#039;)&lt;br /&gt;
			:addClass(&#039;mbox-invalid-type&#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&#039;This message box is using an invalid &amp;quot;type=%s&amp;quot; parameter and needs fixing.&#039;,&lt;br /&gt;
				self.type or &#039;&#039;&lt;br /&gt;
			))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add categories.&lt;br /&gt;
	root:wikitext(self:renderCategories() or nil)&lt;br /&gt;
&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Exports&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local p, mt = {}, {}&lt;br /&gt;
&lt;br /&gt;
function p._exportClasses()&lt;br /&gt;
	-- For testing.&lt;br /&gt;
	return {&lt;br /&gt;
		MessageBox = MessageBox&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(boxType, args, cfgTables)&lt;br /&gt;
	local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))&lt;br /&gt;
	box:setParameters()&lt;br /&gt;
	box:setCategories()&lt;br /&gt;
	return box:export()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function mt.__index(t, k)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		if not getArgs then&lt;br /&gt;
			getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
		end&lt;br /&gt;
		return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return setmetatable(p, mt)&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Mbox?diff=194</id>
		<title>Template:Mbox</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Mbox?diff=194"/>
		<updated>2024-10-30T04:38:35Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#invoke:Message box|mbox}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Documentation_subpage?diff=193</id>
		<title>Template:Documentation subpage</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Documentation_subpage?diff=193"/>
		<updated>2024-10-30T04:37:59Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
 --&amp;gt;{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}&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:Edit-copy green.svg|40px|alt=|link=]]&lt;br /&gt;
             | text =&lt;br /&gt;
{{strong|This is a [[Meta Wiki oasis:Template documentation|documentation]] [[Meta Wiki oasis:Subpages|subpage]]}} for {{terminate sentence|{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}}}&amp;lt;br /&amp;gt;It may contain usage information, [[Meta Wiki oasis:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}. &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}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]&lt;br /&gt;
                   | [[Category:Documentation subpages without corresponding pages]]&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;&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Done/See_also?diff=192</id>
		<title>Template:Done/See also</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Done/See_also?diff=192"/>
		<updated>2024-10-30T04:34:22Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--This is transcluded into all these templates&#039; /doc pages to save time.&lt;br /&gt;
--&amp;gt;{{Documentation subpage|override=see also|several templates {{bracket|[[Special:WhatLinksHere/Template:Done/See also|Details]]}}}}{{align|right|2=&#039;&#039;This list:&#039;&#039; {{navbar|Done/See also|plain=1}}}}&amp;lt;noinclude&amp;gt;__NOTOC__&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
===Inline icon templates by shape and color===&lt;br /&gt;
Any of the following inline, comment-level templates can be converted into {{tl|Resolved}}-style hatnotes by using {{tl|Resbox}} to put a box around the icon and text.&lt;br /&gt;
&lt;br /&gt;
{{col-float}}&lt;br /&gt;
{{Aligned table |style=&amp;lt;!--padding-top:1.5em;--&amp;gt;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Green check marks&#039;&#039;&#039;}} | &lt;br /&gt;
 | {{Implemented}}           | {{tlx|Implemented}}&lt;br /&gt;
 | {{PImplemented}}          | {{tlx|PImplemented}}&lt;br /&gt;
 | {{Resolved mark}}         | {{tlx|Resolved mark}}&lt;br /&gt;
 | {{Accepted}}              | {{tlx|Accepted}}&lt;br /&gt;
 | {{Agree}}                 | {{tlx|Agree}}&lt;br /&gt;
 | {{Approved}}              | {{tlx|Approved}}&lt;br /&gt;
 | {{Checked2}}              | {{tlx|Checked2}}&lt;br /&gt;
 | {{Verified}}              | {{tlx|Verified}}&lt;br /&gt;
 | {{Conditional yes}}       | {{tlx|Conditional yes}}&lt;br /&gt;
 | {{Confirmed}}             | {{tlx|Confirmed}}&lt;br /&gt;
 | {{Confirmed-nc}}          | {{tlx|Confirmed-nc}}&lt;br /&gt;
 | {{Tallyho}}               | {{tlx|Tallyho}}&lt;br /&gt;
 | {{Tick}}                  | {{tlx|Tick}}&lt;br /&gt;
 | {{Helped}}                | {{tlx|Helped}}&lt;br /&gt;
 | {{Done}}                  | {{tlx|Done}}&lt;br /&gt;
 | {{Edited2}}               | {{tlx|Edited2}}&lt;br /&gt;
 | {{Donetask}}              | {{tlx|Donetask}}&lt;br /&gt;
 | {{Unprod}}                | {{tlx|Unprod}}&lt;br /&gt;
 | {{Autp}}                  | {{tlx|Autp}}&lt;br /&gt;
 | {{Responded}}             | {{tlx|Responded}}&lt;br /&gt;
 | {{Sure}}                  | {{tlx|Sure}}&lt;br /&gt;
 | {{Revoked}}               | {{tlx|Revoked}}&lt;br /&gt;
 | {{Merge done}}            | {{tlx|Merge done}}&lt;br /&gt;
 | {{Marked}}                | {{tlx|Marked}}&lt;br /&gt;
 | {{Pass}}                  | {{tlx|Pass}}&lt;br /&gt;
 | {{Aye}}                   | {{tlx|Aye}}&lt;br /&gt;
 | {{Yes check}}             | {{tlx|Yes check}}&lt;br /&gt;
 | {{Y&amp;amp;}}                    | {{tlx|Y&amp;amp;}}&lt;br /&gt;
 | {{yeac}}                  | {{tlx|Yeac}}&lt;br /&gt;
 | {{yeag}}                  | {{tlx|Yeag}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Cross marks&#039;&#039;&#039;}} | &lt;br /&gt;
 | {{Xmark}}                 | {{tlx|Xmark}}&lt;br /&gt;
 | {{Expired}}               | {{tlx|Expired}}&lt;br /&gt;
 | {{Deleted}}               | {{tlx|Deleted}}&lt;br /&gt;
 | {{Not done}}              | {{tlx|Not done}}&lt;br /&gt;
 | {{Not done empty request}}| {{tlx|Not done empty request}}&lt;br /&gt;
 | {{Not done unclear}}      | {{tlx|Not done unclear}}&lt;br /&gt;
 | {{Not done not likely}}   | {{tlx|Not done not likely}}&lt;br /&gt;
 | {{Stale-small}}           | {{tlx|Stale-small}}&lt;br /&gt;
 | {{Smallrejected}}         | {{tlx|Smallrejected}}&lt;br /&gt;
 | {{X mark}}                | {{tlx|X mark}}&lt;br /&gt;
 | {{Nay}}                   | {{tlx|Nay}}&lt;br /&gt;
 | {{No mark}}               | {{tlx|No mark}}&lt;br /&gt;
 | {{Not done-t}}            | {{tlx|Not done-t}}&lt;br /&gt;
 | {{Fail}}                  | {{tlx|Fail}}&lt;br /&gt;
 | {{N&amp;amp;}}                    | {{tlx|N&amp;amp;}}&lt;br /&gt;
 | {{X mark-n}}              | {{tlx|X mark-n}}&lt;br /&gt;
 | {{Xed box}}               | {{tlx|Xed box}}&lt;br /&gt;
 | {{Cancelled}}             | {{tlx|Cancelled}}&lt;br /&gt;
 | {{Prohib}}                | {{tlx|Prohib}}&lt;br /&gt;
 | {{Deleted-image}}         | {{tlx|Deleted-image}}&lt;br /&gt;
 | {{Already declined}}      | {{tlx|Already declined}}&lt;br /&gt;
 | {{Opblocked}}             | {{tlx|Opblocked}}&lt;br /&gt;
 | {{User-blocked}}          | {{tlx|User-blocked}}&lt;br /&gt;
 | {{Notabug}}               | {{tlx|Notabug}}&lt;br /&gt;
 | {{Notfixed}}              | {{tlx|Notfixed}}&lt;br /&gt;
 | {{Won&#039;t fix}}             | {{tlx|Won&#039;t fix}}&lt;br /&gt;
 | {{Withdraw}}              | {{tlx|Withdraw}}&lt;br /&gt;
 | {{Nojoy}}                 | {{tlx|Nojoy}}&lt;br /&gt;
 | {{Unrelated}}             | {{tlx|Unrelated}}&lt;br /&gt;
 | {{Off-topic talk}}        | {{tlx|Off-topic talk}}&lt;br /&gt;
 | {{Nayc}}                  | {{tlx|Nayc}}&lt;br /&gt;
 | {{Nayg}}                  | {{tlx|Nayg}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Black check marks&#039;&#039;&#039;}} | &lt;br /&gt;
 | {{Already done}}          | {{tlx|Already done}}&lt;br /&gt;
 | {{Resolved1}}             | {{tlx|Resolved1}}&lt;br /&gt;
 | {{Check mark-n}}          | {{tlx|Check mark-n}}&lt;br /&gt;
 | {{Checked}}               | {{tlx|Checked}}&lt;br /&gt;
 | {{Checked box}}           | {{tlx|Checked box}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=&amp;lt;!--padding-top:1.5em;--&amp;gt;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Yellow check marks&#039;&#039;&#039;}} | &lt;br /&gt;
 | {{Half done}}             | {{tlx|Half done}}&lt;br /&gt;
 | {{Partly done}}           | {{tlx|Partly done}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Blue check marks&#039;&#039;&#039;}} | &lt;br /&gt;
 | {{Semi-done}}             | {{tlx|Semi-done}}&lt;br /&gt;
 | {{Go ahead}}              | {{tlx|Go ahead}}&lt;br /&gt;
 | {{Fixed}}                 | {{tlx|Fixed}}&lt;br /&gt;
 | {{Fixed by reporter}}     | {{tlx|Fixed by reporter}}&lt;br /&gt;
 | {{Bug pending}}           | {{tlx|Bug pending}}&lt;br /&gt;
 | {{Bug resolved}}          | {{tlx|Bug resolved}}&lt;br /&gt;
 | {{Blockedandtagged}}      | {{tlx|Blockedandtagged}}&lt;br /&gt;
 | {{Blockedwithouttags}}    | {{tlx|Blockedwithouttags}}&lt;br /&gt;
 | {{Socks tagged}}          | {{tlx|Socks tagged}}&lt;br /&gt;
 | {{No tags}}               | {{tlx|No tags}}&lt;br /&gt;
 | {{Ipbedone}}              | {{tlx|Ipbedone}}&lt;br /&gt;
 | {{IPblock}}               | {{tlx|IPblock}}&lt;br /&gt;
 | {{Pblock}}                | {{tlx|Pblock}}&lt;br /&gt;
 | {{Psblock}}               | {{tlx|Psblock}}&lt;br /&gt;
 | {{Rblock}}                | {{tlx|Rblock}}&lt;br /&gt;
 | {{Action and close}}      | {{tlx|Action and close}}&lt;br /&gt;
 | {{Blockedtaggedclosing}}  | {{tlx|Blockedtaggedclosing}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Minus sign&#039;&#039;&#039;}}  | &lt;br /&gt;
 | {{Close}}                 | {{tlx|Close}}&lt;br /&gt;
 | {{Denied}}                | {{tlx|Denied}}&lt;br /&gt;
 | {{Disagree}}              | {{tlx|Disagree}}&lt;br /&gt;
 | {{Unapproved}}            | {{tlx|Unapproved}}&lt;br /&gt;
 | {{NotBug}}                | {{tlx|NotBug}}&lt;br /&gt;
 | {{Duplicate bug}}         | {{tlx|Duplicate bug}}&lt;br /&gt;
 | {{Invalid}}               | {{tlx|Invalid}}&lt;br /&gt;
 | {{Declined}}              | {{tlx|Declined}}&lt;br /&gt;
 | {{No action}}             | {{tlx|No action}}&lt;br /&gt;
 | {{Nocomment}}             | {{tlx|Nocomment}}&lt;br /&gt;
 | {{Unnecessary}}           | {{tlx|Unnecessary}}&lt;br /&gt;
 | {{Nc}}                    | {{tlx|Nc}}&lt;br /&gt;
 | {{Removed}}               | {{tlx|Removed}}&lt;br /&gt;
 | {{Pulled}}                | {{tlx|Pulled}}&lt;br /&gt;
 | {{Closing without action}}| {{tlx|Closing without action}} &lt;br /&gt;
 | {{Failed-ga}}             | {{tlx|Failed-ga}} &lt;br /&gt;
}}&lt;br /&gt;
{{col-float-break}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Plus sign&#039;&#039;&#039;}}   | &lt;br /&gt;
 | {{Added}}                 | {{tlx|Added}}&lt;br /&gt;
 | {{Posted}}                | {{tlx|Posted}}&lt;br /&gt;
 | {{Works for me}}          | {{tlx|Works for me}}&lt;br /&gt;
 | {{Passed}}                | {{tlx|Passed}}&lt;br /&gt;
 | {{Likely}}                | {{tlx|Likely}}&lt;br /&gt;
 | {{Highly likely}}         | {{tlx|Highly likely}}&lt;br /&gt;
 | {{Endorse}}               | {{tlx|Endorse}}&lt;br /&gt;
 | {{Decline}}               | {{tlx|Decline}}&lt;br /&gt;
 | {{Decline-IP}}            | {{tlx|Decline-IP}}&lt;br /&gt;
 | {{Cu-endorsed}}           | {{tlx|Cu-endorsed}}&lt;br /&gt;
 | {{Cudecline}}             | {{tlx|Cudecline}}&lt;br /&gt;
 | {{Delisted}}              | {{tlx|Delisted}}&lt;br /&gt;
 | {{Inconclusive}}          | {{tlx|Inconclusive}}&lt;br /&gt;
 | {{N/A icon}}              | {{tlx|N/A icon}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Neutral sign&#039;&#039;&#039;}}| &lt;br /&gt;
 | {{Bug closed}}            | {{tlx|Bug closed}}&lt;br /&gt;
 | {{Bug new}}               | {{tlx|Bug new}}&lt;br /&gt;
 | {{GA2ndopinion}}          | {{tlx|GA2ndopinion}}&lt;br /&gt;
 | {{equc}}                  | {{tlx|equc}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=&amp;lt;!--width:11.0em;--&amp;gt;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Purple turn-right&#039;&#039;&#039;}} | &lt;br /&gt;
 | {{Deferred}}              | {{tlx|Deferred}}&lt;br /&gt;
 | {{Deferabusefilter}}      | {{tlx|Deferabusefilter}}&lt;br /&gt;
 | {{Deferblack}}            | {{tlx|Deferblack}}&lt;br /&gt;
 | {{Defermetablack}}        | {{tlx|Defermetablack}}&lt;br /&gt;
 | {{Deferspam}}             | {{tlx|Deferspam}}&lt;br /&gt;
 | {{Deferspambot}}          | {{tlx|Deferspambot}}&lt;br /&gt;
 | {{Deferwhite}}            | {{tlx|Deferwhite}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Simple clock&#039;&#039;&#039;}}| &lt;br /&gt;
 | {{PendingRequest}}        | {{tlx|PendingRequest}}&lt;br /&gt;
 | {{GAOnHold}}              | {{tlx|GAOnHold}}&lt;br /&gt;
 | {{On hold}}               | {{tlx|On hold}}&lt;br /&gt;
 | {{OnHoldUntil}}           | {{tlx|OnHoldUntil}}&lt;br /&gt;
 | {{cloc}}                  | {{tlx|cloc}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=&amp;lt;!--width:11.0em;--&amp;gt;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Clock&#039;&#039;&#039;}}       | &lt;br /&gt;
 | {{ProposalOnHold}}        | {{tlx|ProposalOnHold}}&lt;br /&gt;
 | {{Reviewing request}}     | {{tlx|Reviewing request}}&lt;br /&gt;
 | {{Awaitingadmin}}         | {{tlx|Awaitingadmin}}&lt;br /&gt;
 | {{Await}}                 | {{tlx|Await}}&lt;br /&gt;
 | {{Later}}                 | {{tlx|Later}}&lt;br /&gt;
 | {{Tobedone}}              | {{tlx|Tobedone}}&lt;br /&gt;
 | {{Discussing}}            | {{tlx|Discussing}}&lt;br /&gt;
 | {{Doing}}                 | {{tlx|Doing}}&lt;br /&gt;
 | {{Isdoing}}               | {{tlx|Isdoing}}&lt;br /&gt;
 | {{Started}}               | {{tlx|Started}}&lt;br /&gt;
 | {{In progress}}           | {{tlx|In progress}}&lt;br /&gt;
 | {{Checking}}              | {{tlx|Checking}}&lt;br /&gt;
 | {{Reviewing}}             | {{tlx|Reviewing}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=&amp;lt;!--padding-top:1.5em;--&amp;gt;padding-right:1.5em;&lt;br /&gt;
 |col1style=&amp;lt;!--width:11.0em;--&amp;gt;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Information mark&#039;&#039;&#039;}}   | &lt;br /&gt;
 | {{NeedsDiscussion}}       | {{tlx|NeedsDiscussion}}&lt;br /&gt;
 | {{A note}}                | {{tlx|A note}}&lt;br /&gt;
 | {{Administrator note}}    | {{tlx|Administrator note}}&lt;br /&gt;
 | {{Bug assigned}}          | {{tlx|Bug assigned}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Exclamation&#039;&#039;&#039;}} | &lt;br /&gt;
 | {{High priority}}         | {{tlx|High priority}}&lt;br /&gt;
 | {{N.b.}}                  | {{tlx|N.b.}}&lt;br /&gt;
 | {{Urgent}}                | {{tlx|Urgent}}&lt;br /&gt;
 | {{Investigating}}         | {{tlx|Investigating}}&lt;br /&gt;
 | {{Bang}}                  | {{tlx|Bang}}&lt;br /&gt;
 | {{Archive now}}           | {{tlx|Archive now}}&lt;br /&gt;
 | {{Bureaucrat note}}       | {{tlx|Bureaucrat note}}&lt;br /&gt;
 | {{CUnote}}                | {{tlx|CUnote}}&lt;br /&gt;
 | {{Bug acknowledged}}      | {{tlx|Bug acknowledged}} ({{tlx|Ack}})&lt;br /&gt;
 | {{Bug confirmed}}         | {{tlx|Bug confirmed}}&lt;br /&gt;
 | {{Comment}}               | {{tlx|Comment}}&lt;br /&gt;
 | {{Remind}}                | {{tlx|Remind}}&lt;br /&gt;
 | {{Remark}}                | {{tlx|Remark}}&lt;br /&gt;
 | {{Clerk note}}            | {{tlx|Clerk note}}&lt;br /&gt;
 | {{Clerk note bot}}        | {{tlx|Clerk note bot}}&lt;br /&gt;
 | {{Renamer note}}          | {{tlx|Renamer note}}&lt;br /&gt;
 | {{Coordinator-note}}      | {{tlx|Coordinator-note}}&lt;br /&gt;
 | {{Stale GAN}}             | {{tlx|Stale GAN}}&lt;br /&gt;
 | {{Warning sign}}          | {{tlx|Warning sign}}&lt;br /&gt;
 | {{Caution sign}}          | {{tlx|Caution sign}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:13.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Question mark&#039;&#039;&#039;}}| &lt;br /&gt;
 | {{Suggestion}}            | {{tlx|Suggestion}}&lt;br /&gt;
 | {{Maybe-t}}               | {{tlx|Maybe-t}}&lt;br /&gt;
 | {{Maybe-i}}               | {{tlx|Maybe-i}}&lt;br /&gt;
 | {{Qmark}}                 | {{tlx|Qmark}}&lt;br /&gt;
 | {{Question mark}}         | {{tlx|Question mark}}&lt;br /&gt;
 | {{InfoNeeded}}            | {{tlx|InfoNeeded}}&lt;br /&gt;
 | {{Not done for now}}      | {{tlx|Not done for now}} &lt;br /&gt;
 | {{Not sure}}              | {{tlx|Not sure}}&lt;br /&gt;
 | {{Not sure2}}             | {{tlx|Not sure2}}&lt;br /&gt;
 | {{Question}}              | {{tlx|Question}}&lt;br /&gt;
 | {{Question|label=foo}}    | {{tlx|Question|label{{=}}foo}}&lt;br /&gt;
 | {{MoreInfo|wrap=allow}}   | {{tlx|MoreInfo}}&lt;br /&gt;
 | {{Bug feedback}}          | {{tlx|Bug feedback}}&lt;br /&gt;
 | {{Idkc}}                  | {{tlx|Idkc}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Bulb&#039;&#039;&#039;}}        | &lt;br /&gt;
 | {{Bulb}}                  | {{tlx|Bulb}}&lt;br /&gt;
 | {{Bulb2}}                 | {{tlx|Bulb2}}&lt;br /&gt;
 | {{Idea}}                  | {{tlx|Idea}}&lt;br /&gt;
 | {{NewProposal}}           | {{tlx|NewProposal}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Smile&#039;&#039;&#039;}}       | &lt;br /&gt;
 | {{Thank you}}             | {{tlx|Thank you}}&lt;br /&gt;
 | {{Thank you very much}}   | {{tlx|Thank you very much}}&lt;br /&gt;
 | {{You&#039;re welcome}}        | {{tlx|You&#039;re welcome}}&lt;br /&gt;
 | {{Sorry}}                 | {{tlx|Sorry}}&lt;br /&gt;
 | {{Thank}}                 | {{tlx|Thank}}&lt;br /&gt;
 | {{WikiThanks}}            | {{tlx|WikiThanks}}&lt;br /&gt;
 | {{No problem}}            | {{tlx|No problem}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;&lt;br /&gt;
 |col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;&lt;br /&gt;
 |col2style=font-size:95%; |col2nowrap=on&lt;br /&gt;
 |style1.1=padding-left:none;&lt;br /&gt;
 | {{large|&#039;&#039;&#039;Thumb sign&#039;&#039;&#039;}}  | &lt;br /&gt;
 | {{Thumbs down}}           | {{tlx|Thumbs down}}&lt;br /&gt;
 | {{Thumbs up}}             | {{tlx|Thumbs up}}&lt;br /&gt;
 | {{(y)}}                   | {{tlx|(y)}}&lt;br /&gt;
 | {{(n)}}                   | {{tlx|(n)}}&lt;br /&gt;
 | {{Great}}                 | {{tlx|Great}}&lt;br /&gt;
 | {{Like}}                  | {{tlx|Like}}&lt;br /&gt;
 | {{Dislike}}               | {{tlx|Dislike}}&lt;br /&gt;
}}&lt;br /&gt;
{{col-float-end}}&lt;br /&gt;
&lt;br /&gt;
====Others====&lt;br /&gt;
{{div col |colwidth=40em}}&lt;br /&gt;
{{Aligned table&lt;br /&gt;
 | {{Awaiting}}              | {{tlx|Awaiting}}&lt;br /&gt;
 | {{Buttinsky}}             | {{tlx|Buttinsky}}&lt;br /&gt;
 | {{Commentvote}}           | {{tlx|Commentvote}}&lt;br /&gt;
 | {{Bug dupe}}              | {{tlx|Bug dupe}}&lt;br /&gt;
 | {{Clerk-Note-merged}}     | {{tlx|Clerk-Note-merged}}&lt;br /&gt;
 | {{NewBug}}                | {{tlx|NewBug}}&lt;br /&gt;
 | {{BugFixed}}              | {{tlx|BugFixed}}&lt;br /&gt;
 | {{DuplicateProposal}}     | {{tlx|DuplicateProposal}}&lt;br /&gt;
 | {{Justcurious}}           | {{tlx|Justcurious}}&lt;br /&gt;
 | {{ProposalOutOfScope}}    | {{tlx|ProposalOutOfScope}}&lt;br /&gt;
 | {{Moved to commons}}      | {{tlx|Moved to commons}}&lt;br /&gt;
 | {{Orz}}                   | {{tlx|Orz}}&lt;br /&gt;
 | {{Peanut}}                | {{tlx|Peanut}}&lt;br /&gt;
 | {{Possibly}}              | {{tlx|Possibly}}&lt;br /&gt;
 | {{Read}}                  | {{tlx|Read}}&lt;br /&gt;
 | {{Received}}              | {{tlx|Received}}&lt;br /&gt;
 | {{Redflag}}               | {{tlx|Redflag}}&lt;br /&gt;
 | {{Redundant symbol}}      | {{tlx|Redundant symbol}}&lt;br /&gt;
 | {{Reopened}}              | {{tlx|Reopened}}&lt;br /&gt;
 | {{Reply to|Example}}      | {{tlx|Reply to}}&lt;br /&gt;
 | {{Reverted}}              | {{tlx|Reverted}}&lt;br /&gt;
 | {{Rimshot}}               | {{tlx|Rimshot}}&lt;br /&gt;
 | {{Twomanrule}}            | {{tlx|Twomanrule}}&lt;br /&gt;
 | {{UnderReview}}           | {{tlx|UnderReview}}&lt;br /&gt;
 | {{Facepalm}}              | {{tlx|Facepalm}}&lt;br /&gt;
 | {{Scissors}}              | {{tlx|Scissors}}&lt;br /&gt;
 | {{Self-trout}}            | {{tlx|Self-trout}}&lt;br /&gt;
 | {{Self-whale}}            | {{tlx|Self-whale}}&lt;br /&gt;
 | {{Sent}}                  | {{tlx|Sent}}&lt;br /&gt;
 | {{Snow}}                  | {{tlx|Snow}}&lt;br /&gt;
 | {{SULcheck}}              | {{tlx|SULcheck}}&lt;br /&gt;
}}&lt;br /&gt;
{{Aligned table&lt;br /&gt;
 | {{ToDo}}                  | {{tlx|ToDo}}&lt;br /&gt;
 | {{Undone}}                | {{tlx|Undone}}&lt;br /&gt;
 | {{Uploaded}}              | {{tlx|Uploaded}}&lt;br /&gt;
 | {{Withdrawn}}             | {{tlx|Withdrawn}}&lt;br /&gt;
 | {{Working}}               | {{tlx|Working}}&lt;br /&gt;
 | {{WPcrystalball}}         | {{tlx|WPcrystalball}}&lt;br /&gt;
 | {{Completed}}             | {{tlx|Completed}}&lt;br /&gt;
 | {{Sblock}}                | {{tlx|Sblock}}&lt;br /&gt;
 | {{Possible}}              | {{tlx|Possible}}&lt;br /&gt;
 | {{Not possible}}          | {{tlx|Not possible}}&lt;br /&gt;
 | {{Possilikely}}           | {{tlx|Possilikely}}&lt;br /&gt;
 | {{Unlikely}}              | {{tlx|Unlikely}}&lt;br /&gt;
 | {{Replaced}}              | {{tlx|Replaced}}&lt;br /&gt;
 | {{Duck}}                  | {{tlx|Duck}}&lt;br /&gt;
 | {{Duck2}}                 | {{tlx|Duck2}}&lt;br /&gt;
 | {{Megaphoneduck}}         | {{tlx|Megaphoneduck}}&lt;br /&gt;
 | {{Megaphoneduck|ultimate}}| {{tlx|Megaphoneduck|ultimate}}&lt;br /&gt;
 | {{Clerk Request}}         | {{tlx|Clerk Request}}&lt;br /&gt;
 | {{Relisted}}              | {{tlx|Relisted}}&lt;br /&gt;
 | {{Nosleepers}}            | {{tlx|Nosleepers}}&lt;br /&gt;
 | {{Behaviour}}             | {{tlx|Behaviour}}&lt;br /&gt;
 | {{GlobalLocksRequested}}  | {{tlx|GlobalLocksRequested}}&lt;br /&gt;
 | {{StaleIP}}               | {{tlx|StaleIP}}&lt;br /&gt;
 | {{8ball}}                 | {{tlx|8ball}}&lt;br /&gt;
 | {{Crystalball}}           | {{tlx|Crystalball}}&lt;br /&gt;
 | {{Fishing}}               | {{tlx|Fishing}}&lt;br /&gt;
 | {{Pixiedust}}             | {{tlx|Pixiedust}}&lt;br /&gt;
 | {{Shrug}}                 | {{tlx|Shrug}}&lt;br /&gt;
 | {{Lenny}}                 | {{tlx|Lenny}}&lt;br /&gt;
 | {{Table flip}}            | {{tlx|Table flip}}&lt;br /&gt;
}}&lt;br /&gt;
{{div col end}}&lt;br /&gt;
&lt;br /&gt;
===Multi-sign templates===&lt;br /&gt;
The following templates implement several icons:&lt;br /&gt;
* {{tl|AIV}} – used by [[Wikipedia:Administrator intervention against vandalism]]&lt;br /&gt;
* {{tl|AN3}} - used by [[Wikipedia:Administrators&#039; noticeboard]] and its subpages&lt;br /&gt;
* {{tl|BOTREQ}} - used by [[Wikipedia:Bot requests]]&lt;br /&gt;
* {{tl|CPC}} - used by [[Wikipedia:Copyright problems]]&lt;br /&gt;
* {{tl|CUI}} - used by [[Wikipedia:CheckUser|CheckUsers]]&lt;br /&gt;
* {{tl|EFFP}} – used by [[Wikipedia:Edit filter/False positives]]&lt;br /&gt;
* {{tl|EFR}} – used by [[Wikipedia:Edit filter/Requested]]&lt;br /&gt;
* {{tl|EP}} – used for servicing requests in edit-protected areas&lt;br /&gt;
* {{tl|RFPP}} – used by [[Wikipedia:Requests for page protection]]&lt;br /&gt;
* {{tl|RFPC}}, {{tl|RFPNPR}}, {{tl|RFPPM}}, {{tl|RFPR}} – used by subpages of [[Wikipedia:Requests for permissions]]&lt;br /&gt;
* {{tl|UAA}} – used by [[Wiki:Usernames for administrator attention]]&lt;br /&gt;
* {{tl|UND}} – used by [[Wikipedia:Requests for undeletion]]&lt;br /&gt;
* {{tl|Smiley}} – used for informal communication purposes&lt;br /&gt;
* {{tl|Article history}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation see also templates]]&lt;br /&gt;
[[Category:Image with comment templates| ]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Not_done?diff=191</id>
		<title>Template:Not done</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Not_done?diff=191"/>
		<updated>2024-10-30T04:31:58Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;[[File:X mark.svg|18px|link=|alt=]]&amp;amp;nbsp;&#039;&#039;&#039;{{{1|Not done}}}&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;!--template:not done--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/Template:Done?diff=190</id>
		<title>Template:Done</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/Template:Done?diff=190"/>
		<updated>2024-10-30T04:30:04Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;[[File:Yes check.svg|18px|link=|alt=]]&#039;&#039;&#039;&amp;amp;nbsp;{{{1|Done}}}&#039;&#039;&#039;&amp;lt;/span&amp;gt;{{{{{|safesubst:}}}#if:{{{2|{{{note|{{{reason|}}}}}}}}}|&amp;amp;#58; {{{2|{{{note|{{{reason}}}}}}}}}}}&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
	<entry>
		<id>https://meta.wikioasis.org/wiki/User:Itsboyhappy/Discord?diff=104</id>
		<title>User:Itsboyhappy/Discord</title>
		<link rel="alternate" type="text/html" href="https://meta.wikioasis.org/wiki/User:Itsboyhappy/Discord?diff=104"/>
		<updated>2024-10-29T12:11:59Z</updated>

		<summary type="html">&lt;p&gt;Itsboyhappy: +&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Itsboyhappy&lt;/div&gt;</summary>
		<author><name>Itsboyhappy</name></author>
	</entry>
</feed>