<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>TAIchannelWiki  - 最近の更新 [ja]</title>
		<link>https://taiwiki.nekoch18.net/%E7%89%B9%E5%88%A5:%E6%9C%80%E8%BF%91%E3%81%AE%E6%9B%B4%E6%96%B0</link>
		<description>このフィードでこのウィキの最近の更新を追跡できます。</description>
		<language>ja</language>
		<generator>MediaWiki 1.43.6</generator>
		<lastBuildDate>Thu, 04 Jun 2026 01:00:38 GMT</lastBuildDate>
		<item>
			<title>利用者:DominiqueBayldon</title>
			<link>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:DominiqueBayldon</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:DominiqueBayldon</guid>
			<description>&lt;p&gt;利用者アカウント &lt;a href=&quot;/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:DominiqueBayldon&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;利用者:DominiqueBayldon (存在しないページ)&quot;&gt;&lt;bdi&gt;DominiqueBayldon&lt;/bdi&gt;&lt;/a&gt; が作成されました&lt;/p&gt;
</description>
			<pubDate>Wed, 03 Jun 2026 15:31:59 GMT</pubDate>
			<dc:creator>DominiqueBayldon</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:DominiqueBayldon</comments>
		</item>
		<item>
			<title>モジュール:TNT/config</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:TNT/config&amp;diff=2541&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:TNT/config&amp;diff=2541&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:TNT/config&quot; title=&quot;モジュール:TNT/config&quot;&gt;モジュール:TNT/config&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {};&lt;br /&gt;
&lt;br /&gt;
-- The tracking category name for global TemplateData pages located on Commons&lt;br /&gt;
-- under &amp;quot;Data:Templatedata/&amp;quot; instead of &amp;quot;Data:TemplateData/&amp;quot;,&lt;br /&gt;
-- defaults to `&amp;quot;Templates using legacy global TemplateData table name&amp;quot;`&lt;br /&gt;
-- when not set; set to `false` to disable all categorisation&lt;br /&gt;
p.legacyTemplateDataCategoryName = nil;&lt;br /&gt;
&lt;br /&gt;
-- Whether to add the language subtag to the template name using {{#translation:}},&lt;br /&gt;
-- defaults to `false`&lt;br /&gt;
p.translatableCategoryLink = true;&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:43 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:TNT/config</comments>
		</item>
		<item>
			<title>テンプレート:Nmbox/doc</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Nmbox/doc&amp;diff=2539&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Nmbox/doc&amp;diff=2539&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Nmbox/doc&quot; title=&quot;テンプレート:Nmbox/doc&quot;&gt;テンプレート:Nmbox/doc&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Languages|Template:Nmbox/doc}}&lt;br /&gt;
{{Documentation subpage}}&lt;br /&gt;
{{Uses TemplateStyles|Template:Nmbox/styles.css}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;description&amp;quot;: {&lt;br /&gt;
		&amp;quot;en&amp;quot;: &amp;quot;This is a meta-template for generating navigation boxes to go at the bottom of pages.&amp;quot;,&lt;br /&gt;
		&amp;quot;cs&amp;quot;: &amp;quot;Toto je meta-šablona pro generování navigačních polí, která se mají přesunout na konec stránek.&amp;quot;,&lt;br /&gt;
		&amp;quot;tr&amp;quot;: &amp;quot;Bu, sayfaların alt kısmına gitmek üzere gezinme kutuları oluşturmak için bir meta şablondur.&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	&amp;quot;format&amp;quot;: &amp;quot;block&amp;quot;,&lt;br /&gt;
	&amp;quot;params&amp;quot;: {&lt;br /&gt;
		&amp;quot;image&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Logo image&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Obrázek loga&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;Logo resmi&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;A logo image.&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Obrázek loga&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;Bir logo resmi&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;wiki-file-name&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;header&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Header&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Záhlaví&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;Başlık&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;A header notice.&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Upozornění v záhlaví.&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;Bir başlık uyarısı&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;wiki-page-name&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;text&amp;quot;: {&lt;br /&gt;
			&amp;quot;label&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Text&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Text&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;Metin&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;description&amp;quot;: {&lt;br /&gt;
				&amp;quot;en&amp;quot;: &amp;quot;Description notice.&amp;quot;,&lt;br /&gt;
				&amp;quot;cs&amp;quot;: &amp;quot;Upozornění s popisem.&amp;quot;,&lt;br /&gt;
				&amp;quot;tr&amp;quot;: &amp;quot;Açıklama uyarısı&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
			&amp;quot;type&amp;quot;: &amp;quot;content&amp;quot;,&lt;br /&gt;
			&amp;quot;required&amp;quot;: true&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{nmbox&lt;br /&gt;
 | image = [[File:Geographylogo.png|25px|Languages|link=]]&lt;br /&gt;
 | header = [[Project:Language policy|{{Languages/Title|{{SUBPAGENAME}}}}]]&amp;amp;nbsp;&lt;br /&gt;
 | text = Languages code&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{nmbox&lt;br /&gt;
 | image = [[File:Geographylogo.png|25px|Languages|link=]]&lt;br /&gt;
 | header = [[Project:Language policy|{{Languages/Title|{{SUBPAGENAME}}}}]]&amp;amp;nbsp;&lt;br /&gt;
 | text = Languages code&lt;br /&gt;
}}&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Mbox templates{{#translation:}}]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:43 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Nmbox/doc</comments>
		</item>
		<item>
			<title>テンプレート:Languages/Lang</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Languages/Lang&amp;diff=2537&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Languages/Lang&amp;diff=2537&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Languages/Lang&quot; title=&quot;テンプレート:Languages/Lang&quot;&gt;テンプレート:Languages/Lang&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#ifexist: {{#if:{{{2|}}}|{{{2}}}|{{translatable}}}}/{{{1|}}}&lt;br /&gt;
|&amp;amp;nbsp;• &amp;lt;bdi lang=&amp;quot;{{{1|}}}&amp;quot;&amp;gt;{{#if:{{{2|}}}&lt;br /&gt;
  |&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[{{fullurl:{{{2|}}}/{{{1|}}}}} {{#language:{{{1|}}}}}]&amp;lt;/span&amp;gt;&lt;br /&gt;
  |&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[{{fullurl:{{translatable}}/{{{1|}}}}} {{#language:{{{1|}}}}}]&amp;lt;/span&amp;gt;&lt;br /&gt;
  }}&amp;lt;/bdi&amp;gt;&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:43 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Languages/Lang</comments>
		</item>
		<item>
			<title>テンプレート:GetFallback</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:GetFallback&amp;diff=2535&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:GetFallback&amp;diff=2535&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:GetFallback&quot; title=&quot;テンプレート:GetFallback&quot;&gt;テンプレート:GetFallback&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#switch: {{Uselang|lang={{{1|}}}}}&lt;br /&gt;
| arz = ar&lt;br /&gt;
| be-x-old = be-tarask &amp;lt;!-- same language; be-x-old is used on be-x-old.wikipedia but be-tarask is the preferred code --&amp;gt;&lt;br /&gt;
| be-tarask = be-x-old&lt;br /&gt;
| crh-cyrl | crh-latn = crh&lt;br /&gt;
| als | bar | de-formal | de-at | de-ch | frr | ksh = de&lt;br /&gt;
| en-gb = en &lt;br /&gt;
| ckb | mzn | glk = fa&lt;br /&gt;
| mg | br | co | frp | ht | ty | wa = fr&lt;br /&gt;
| hif-deva | hif-latn = hif&lt;br /&gt;
| ike-cans | ike-latn = ike&lt;br /&gt;
| vec = it&lt;br /&gt;
| kk-arab | kk-cyrl | kk-latn | kk-cn | kk-kz | kk-tr = kk&lt;br /&gt;
| ku-latn | ku-arab = ku&lt;br /&gt;
| nds-nl | pdt = nds&lt;br /&gt;
| nds = nds-nl&lt;br /&gt;
| af | fy | li | nl-informal | vls | zea = nl&lt;br /&gt;
| szl | csb = pl&lt;br /&gt;
| pt-br = pt&lt;br /&gt;
| ruq-cyrl | ruq-grek | ruq-latn = ruq&lt;br /&gt;
| sr-ec | sr-el = sr&lt;br /&gt;
| tg-cyrl | tg-latn = tg&lt;br /&gt;
| tt-cyrl | tt-latn = tt&lt;br /&gt;
| gan | gan-hans | ii | wuu | za | zh | zh-cn | zh-my | zh-sg = zh-hans&lt;br /&gt;
| ami | cdo | gan-hant | hak | lzh | nan | pwn | szy | tay | trv | zh-classical | zh-hk | zh-min-nan | zh-mo | zh-tw = zh-hant&lt;br /&gt;
| #default = {{#if: {{{default|}}} | {{{default|}}} | en }}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:43 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:GetFallback</comments>
		</item>
		<item>
			<title>テンプレート:Uselang</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Uselang&amp;diff=2533&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Uselang&amp;diff=2533&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Uselang&quot; title=&quot;テンプレート:Uselang&quot;&gt;テンプレート:Uselang&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#if: {{{lang|}}} | {{{lang|}}} | {{int:Lang}} }}&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:43 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Uselang</comments>
		</item>
		<item>
			<title>テンプレート:LangSwitch</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:LangSwitch&amp;diff=2531&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:LangSwitch&amp;diff=2531&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:LangSwitch&quot; title=&quot;テンプレート:LangSwitch&quot;&gt;テンプレート:LangSwitch&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{{ &lt;br /&gt;
  {{#switch: {{{ {{Uselang|lang={{{lang|}}}}} |}}} &lt;br /&gt;
  | ~ = empty&lt;br /&gt;
  |   = {{#switch: {{{ {{GetFallback| {{Uselang|lang={{{lang|}}}}} |default=default}} |}}}&lt;br /&gt;
    | ~ = empty&lt;br /&gt;
    |   = {{#switch: {{{ {{GetFallback2| {{Uselang|lang={{{lang|}}}}} |default=default}} |}}}&lt;br /&gt;
      | ~        = empty&lt;br /&gt;
      |          = {{#if: {{{default|}}} | default | en }}&lt;br /&gt;
      | #default = {{GetFallback2| {{Uselang|lang={{{lang|}}}}} |default=default}}&lt;br /&gt;
      }}&lt;br /&gt;
    | #default = {{GetFallback| {{Uselang|lang={{{lang|}}}}} |default=default}}&lt;br /&gt;
    }}&lt;br /&gt;
  | #default = {{Uselang|lang={{{lang|}}}}}&lt;br /&gt;
  }} &lt;br /&gt;
|}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:43 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:LangSwitch</comments>
		</item>
		<item>
			<title>テンプレート:Languages/Title</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Languages/Title&amp;diff=2529&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Languages/Title&amp;diff=2529&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Languages/Title&quot; title=&quot;テンプレート:Languages/Title&quot;&gt;テンプレート:Languages/Title&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{LangSwitch|lang={{{1|}}}&lt;br /&gt;
|default={{int:tpt-languages-legend{{#if:{{{1|}}}|/{{{1}}} }} }}&lt;br /&gt;
|aln=Gjuha:&lt;br /&gt;
|am=ቋምቋ፦&lt;br /&gt;
|an=Idioma:&lt;br /&gt;
|ang=Sprǣc:&lt;br /&gt;
|ar=:اللغة&lt;br /&gt;
|arc=ܠܫܢܐ:&lt;br /&gt;
|arn=Dungun:&lt;br /&gt;
|arz=:اللغة&lt;br /&gt;
|avk=Ava:&lt;br /&gt;
|ay=Aru:&lt;br /&gt;
|az=Dil:&lt;br /&gt;
|bat-smg=Kalba:&lt;br /&gt;
|bcc=زبان:&lt;br /&gt;
|bcl=Tataramon:&lt;br /&gt;
|cdo=Ngṳ̄-ngiòng:&lt;br /&gt;
|ceb=Pinulongan:&lt;br /&gt;
|ch=Lengguahe:&lt;br /&gt;
|ckb-arab=زمان:&lt;br /&gt;
|co=Lingua :&lt;br /&gt;
|crh-cyrl=Тиль:&lt;br /&gt;
|crh-latn=Til:&lt;br /&gt;
|cu=ѩꙁꙑ́къ :&lt;br /&gt;
|cv=Чĕлхе:&lt;br /&gt;
|ext=Palra:&lt;br /&gt;
|fa=زبان:&lt;br /&gt;
|fo=Mál:&lt;br /&gt;
|frc=Langue :&lt;br /&gt;
|fy=Taal:&lt;br /&gt;
|ga=Teanga:&lt;br /&gt;
|gag=Dil:&lt;br /&gt;
|gan-hans=语言:&lt;br /&gt;
|gan-hant=語言:&lt;br /&gt;
|gn=Ñe&amp;#039;ẽ:&lt;br /&gt;
|got=Razda:&lt;br /&gt;
|grc=Γλῶσσα:&lt;br /&gt;
|gu=ભાષા:&lt;br /&gt;
|gv=Çhengey:&lt;br /&gt;
|hak=Ngî-ngièn:&lt;br /&gt;
|haw=Kou &amp;#039;ōlelo:&lt;br /&gt;
|he=שפה:&lt;br /&gt;
|hi=भाषा:&lt;br /&gt;
|hif-latn=Bhasa:&lt;br /&gt;
|hy=Լեզու.&lt;br /&gt;
|ie=Lingue:&lt;br /&gt;
|ilo=Lengguahe:&lt;br /&gt;
|ja=言語:&lt;br /&gt;
|ka=ენა:&lt;br /&gt;
|kaa=Til:&lt;br /&gt;
|kg=Ndinga:&lt;br /&gt;
|kiu=Zon:&lt;br /&gt;
|kk-arab=:ٴتىل&lt;br /&gt;
|kk-latn=Til:&lt;br /&gt;
|km=ភាសា៖&lt;br /&gt;
|kn=ಭಾಷೆ:&lt;br /&gt;
|kv=Кыв:&lt;br /&gt;
|kw=Yeth:&lt;br /&gt;
|la=Lingua:&lt;br /&gt;
|li=Taol:&lt;br /&gt;
|lij=Lengoa:&lt;br /&gt;
|loz=Zwa Siselect:&lt;br /&gt;
|lzh=語：&lt;br /&gt;
|mdf=Кяль:&lt;br /&gt;
|mg=fiteny:&lt;br /&gt;
|mhr=Йылме:&lt;br /&gt;
|ml=ഭാഷ:&lt;br /&gt;
|mn=Хэл:&lt;br /&gt;
|mwl=Lhéngua:&lt;br /&gt;
|my=ဘာသာ:&lt;br /&gt;
|nah=Tlahtōlli:&lt;br /&gt;
|nap=Lengua:&lt;br /&gt;
|nds=Spraak:&lt;br /&gt;
|nds-nl=Taal:&lt;br /&gt;
|ne=भाषा:&lt;br /&gt;
|new=भाषा:&lt;br /&gt;
|nso=Polelo:&lt;br /&gt;
|os=Æвзаг:&lt;br /&gt;
|pa=ਭਾਸ਼ਾ:&lt;br /&gt;
|pam=Amanu:&lt;br /&gt;
|pdt=Sproak:&lt;br /&gt;
|pnb=بولی:&lt;br /&gt;
|pnt=Γλώσσαν:&lt;br /&gt;
|prg=Bilā:&lt;br /&gt;
|ps=ژبه:&lt;br /&gt;
|qu=Rimay:&lt;br /&gt;
|sa=भाषा:&lt;br /&gt;
|sah=Омугун тыла:&lt;br /&gt;
|sc=Limba:&lt;br /&gt;
|sdc=Linga:&lt;br /&gt;
|se=Giella:&lt;br /&gt;
|sei=Itom:&lt;br /&gt;
|shi=tutlayt:&lt;br /&gt;
|si=භාෂාව:&lt;br /&gt;
|sli=Sproache:&lt;br /&gt;
|so=Luqada:&lt;br /&gt;
|sq=Gjuha:&lt;br /&gt;
|srn=Tongo:&lt;br /&gt;
|ss=Lúlwîmi:&lt;br /&gt;
|stq=Sproake:&lt;br /&gt;
|su=Basa:&lt;br /&gt;
|szl=Godka:&lt;br /&gt;
|ta=மொழி:&lt;br /&gt;
|te=భాష:&lt;br /&gt;
|tet=Lian:&lt;br /&gt;
|tg-cyrl=Забон:&lt;br /&gt;
|th=ภาษา:&lt;br /&gt;
|ti=ቋንቋ:&lt;br /&gt;
|tk=Dil:&lt;br /&gt;
|to=Lea:&lt;br /&gt;
|tyv=Дыл:&lt;br /&gt;
|ug-latn=Til:&lt;br /&gt;
|vec=Łéngua:&lt;br /&gt;
|vro=Kiil:&lt;br /&gt;
|wa=Lingaedje:&lt;br /&gt;
|war=Yinaknan:&lt;br /&gt;
|wo=Làkk:&lt;br /&gt;
|wuu=语言:&lt;br /&gt;
|xal=Келн:&lt;br /&gt;
|xh=Ulwimi:&lt;br /&gt;
|xmf=ნინა:&lt;br /&gt;
|yo=Èdè:&lt;br /&gt;
|yue=語言:&lt;br /&gt;
|zea=Taele:&lt;br /&gt;
|zu=Ulimi:&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;{{Documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:43 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Languages/Title</comments>
		</item>
		<item>
			<title>テンプレート:Languages</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Languages&amp;diff=2527&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Languages&amp;diff=2527&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Languages&quot; title=&quot;テンプレート:Languages&quot;&gt;テンプレート:Languages&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#ifeq:&amp;lt;languages exists/&amp;gt;|&amp;lt;languages/&amp;gt;|&amp;lt;languages/&amp;gt;|&lt;br /&gt;
&amp;lt;div style=&amp;quot;display: flow-root;&amp;quot;&amp;gt;{{nmbox&lt;br /&gt;
 | header = {{ll|Project:Language policy|{{int:tpt-languages-legend}}}}&lt;br /&gt;
 | text = &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[{{{1|:{{translatable}}}}}|English]]&amp;#039;&amp;#039;&amp;#039; {{Languages/Lang|af|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ar|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ast|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|az|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ba|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bcc|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|be|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|be-tarask|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bg|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|br|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bn|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bs|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ca|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ckb|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|cs|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|da|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|de|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|diq|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|el|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|eo|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|es|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fa|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|gl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|gu|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|he|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hu|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hy|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ia|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|id|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|io|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|it|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ja|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|jv|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ka|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|kk|{{{1|}}}|&lt;br /&gt;
}}&amp;lt;span class=&amp;quot;autonym&amp;quot;&amp;gt;{{Languages/Lang|km|{{{1|}}}|&lt;br /&gt;
}}&amp;lt;/span&amp;gt;{{Languages/Lang|ko|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ko-kp|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ksh|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|kw|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|la|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|map-bms|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|min|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|mk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ml|{{{1|}}}|&lt;br /&gt;
}}&amp;lt;span class=&amp;quot;autonym&amp;quot;&amp;gt;{{Languages/Lang|mr|{{{1|}}}|&lt;br /&gt;
}}&amp;lt;/span&amp;gt;{{Languages/Lang|ms|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|mwl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|nl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|no|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|oc|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|or|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pt|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pt-br|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ro|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ru|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sc|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|si|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|so|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sq|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sv|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|syl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ta|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|th|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|tr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|uk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|vi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|yi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|yue|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-hans|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-hant|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-tw|{{{1|}}}}}|&lt;br /&gt;
}}&amp;lt;/div&amp;gt;&amp;lt;!--/nmbox--&amp;gt;&amp;lt;includeonly&amp;gt;{{#if:{{Languages/Lang|af|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ar|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ast|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|az|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bcc|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|be|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|be-tarask|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bg|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|br|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bn|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|bs|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ca|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ckb|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|cs|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|da|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|de|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|diq|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|el|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|eo|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|es|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fa|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|fr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|gl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|gu|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|he|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hu|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|hy|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ia|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|id|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|io|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|it|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ja|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|jv|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ka|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|kk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|km|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ko|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ko-kp|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ksh|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|kw|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|la|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|map-bms|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|min|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|mk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ml|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|mr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ms|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|mwl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|nl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|no|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|oc|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|or|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pt|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|pt-br|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ro|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ru|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|si|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|so|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sq|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|sv|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|syl|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|ta|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|th|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|tr|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|uk|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|vi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|yi|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|yue|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-hans|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-hant|{{{1|}}}|&lt;br /&gt;
}}{{Languages/Lang|zh-tw|{{{1|}}}}}&lt;br /&gt;
||[[Category:Languages pages without translations]]}}&amp;lt;!--/#if--&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;[[Category:Languages pages]]&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#switch:{{PAGELANGUAGE}}&lt;br /&gt;
|en=&amp;lt;!--empty--&amp;gt;&lt;br /&gt;
|ku-latn=[[Category:Languages pages/ku]]&lt;br /&gt;
|zh-hans|zh-hant=[[Category:Languages pages/zh]]&lt;br /&gt;
|#default=[[Category:Languages pages{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;!--/#switch--&amp;gt;&amp;lt;/includeonly&amp;gt;}}&amp;lt;!--/#ifeq--&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:43 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Languages</comments>
		</item>
		<item>
			<title>モジュール:Effective protection level</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Effective_protection_level&amp;diff=2525&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Effective_protection_level&amp;diff=2525&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Effective_protection_level&quot; title=&quot;モジュール:Effective protection level&quot;&gt;モジュール:Effective protection level&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Returns the permission required to perform a given action on a given title.&lt;br /&gt;
-- If no title is specified, the title of the page being displayed is used.&lt;br /&gt;
function p._main(action, pagename)&lt;br /&gt;
	local title&lt;br /&gt;
	if type(pagename) == &amp;#039;table&amp;#039; and pagename.prefixedText then&lt;br /&gt;
		title = pagename&lt;br /&gt;
	elseif pagename then&lt;br /&gt;
		title = mw.title.new(pagename)&lt;br /&gt;
	else&lt;br /&gt;
		title = mw.title.getCurrentTitle()&lt;br /&gt;
	end&lt;br /&gt;
	pagename = title.prefixedText&lt;br /&gt;
	if action ~= &amp;#039;edit&amp;#039; and action ~= &amp;#039;move&amp;#039; and action ~= &amp;#039;create&amp;#039; and action ~= &amp;#039;upload&amp;#039; then&lt;br /&gt;
		error( &amp;#039;First parameter must be one of edit, move, create, upload&amp;#039;, 2 )&lt;br /&gt;
	end&lt;br /&gt;
	if title.namespace == 8 then -- MediaWiki namespace&lt;br /&gt;
		if title.contentModel == &amp;#039;javascript&amp;#039; or title.contentModel == &amp;#039;css&amp;#039; then -- site JS or CSS page&lt;br /&gt;
			return &amp;#039;interfaceadmin&amp;#039;&lt;br /&gt;
		else -- any non-JS/CSS MediaWiki page&lt;br /&gt;
			return &amp;#039;sysop&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif title.namespace == 2 and title.isSubpage then&lt;br /&gt;
		if title.contentModel == &amp;#039;javascript&amp;#039; or title.contentModel == &amp;#039;css&amp;#039; then -- user JS or CSS page&lt;br /&gt;
			return &amp;#039;interfaceadmin&amp;#039;&lt;br /&gt;
		elseif title.contentModel == &amp;#039;json&amp;#039; then -- user JSON page&lt;br /&gt;
			return &amp;#039;sysop&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local level = title.protectionLevels[action] and title.protectionLevels[action][1]&lt;br /&gt;
	if level == &amp;#039;sysop&amp;#039; or level == &amp;#039;editprotected&amp;#039; then&lt;br /&gt;
		return &amp;#039;sysop&amp;#039;&lt;br /&gt;
	elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page&lt;br /&gt;
		return &amp;#039;sysop&amp;#039;&lt;br /&gt;
	elseif action == &amp;#039;move&amp;#039; then&lt;br /&gt;
		local blacklistentry = mw.ext.TitleBlacklist.test(&amp;#039;edit&amp;#039;, pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move.&lt;br /&gt;
		if blacklistentry and not blacklistentry.params.autoconfirmed then&lt;br /&gt;
			return &amp;#039;sysop&amp;#039;&lt;br /&gt;
		elseif title.namespace == 6 then&lt;br /&gt;
			return &amp;#039;sysop&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;autoconfirmed&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename)&lt;br /&gt;
	if blacklistentry then&lt;br /&gt;
		if not blacklistentry.params.autoconfirmed then&lt;br /&gt;
			return &amp;#039;sysop&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;autoconfirmed&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif level == &amp;#039;editsemiprotected&amp;#039; then -- create-semiprotected pages return this for some reason&lt;br /&gt;
		return &amp;#039;autoconfirmed&amp;#039;&lt;br /&gt;
	elseif level then&lt;br /&gt;
		return level&lt;br /&gt;
	elseif action == &amp;#039;upload&amp;#039; then&lt;br /&gt;
		return &amp;#039;uploader&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;*&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
setmetatable(p, { __index = function(t, k)&lt;br /&gt;
	return function(frame)&lt;br /&gt;
		return t._main(k, frame.args[1])&lt;br /&gt;
	end&lt;br /&gt;
end })&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:43 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Effective_protection_level</comments>
		</item>
		<item>
			<title>テンプレート:Module other</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Module_other&amp;diff=2523&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Module_other&amp;diff=2523&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Module_other&quot; title=&quot;テンプレート:Module other&quot;&gt;テンプレート:Module other&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#switch:&lt;br /&gt;
  &amp;lt;!--If no or empty &amp;quot;demospace&amp;quot; parameter then detect namespace--&amp;gt;&lt;br /&gt;
  {{#if:{{{demospace|}}}&lt;br /&gt;
  | {{lc: {{{demospace}}} }}    &amp;lt;!--Use lower case &amp;quot;demospace&amp;quot;--&amp;gt;&lt;br /&gt;
  | {{#ifeq:{{NAMESPACE}}|{{ns:Module}}&lt;br /&gt;
    | module&lt;br /&gt;
    | other&lt;br /&gt;
    }}&lt;br /&gt;
  }}&lt;br /&gt;
| module = {{{1|}}}&lt;br /&gt;
| other&lt;br /&gt;
| #default = {{{2|}}}&lt;br /&gt;
}}&amp;lt;!--End switch--&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:43 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Module_other</comments>
		</item>
		<item>
			<title>テンプレート:Pp-template</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Pp-template&amp;diff=2521&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Pp-template&amp;diff=2521&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Pp-template&quot; title=&quot;テンプレート:Pp-template&quot;&gt;テンプレート:Pp-template&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#switch:{{#invoke:Effective protection level|edit|{{FULLPAGENAME}}}}&lt;br /&gt;
|*=[[Category:Pages with incorrect protection templates]]&lt;br /&gt;
|autoconfirmed={{#tag:indicator|[[File:Semi-protection-shackle-keyhole.svg|20px|link=Project:Protected page|alt=Permanently protected {{module other|module|template}}|This high-risk {{module other|module|template}} is permanently semi-protected to prevent vandalism]]|name=&amp;quot;pp-default&amp;quot;}}[[Category:{{module other|Modules subject to page protection|Semi-protected templates}}|{{PAGENAME}}]]&lt;br /&gt;
|sysop={{#tag:indicator|[[File:Full-protection-shackle-keyhole.svg|20px|link=Project:Protected page|alt=Permanently protected {{module other|module|template}}|This high-risk {{module other|module|template}} is permanently protected to prevent vandalism]]|name=&amp;quot;pp-default&amp;quot;}}[[Category:{{module other|Modules subject to page protection|Fully protected templates}}|{{PAGENAME}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:43 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Pp-template</comments>
		</item>
		<item>
			<title>テンプレート:Nmbox/styles.css</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Nmbox/styles.css&amp;diff=2519&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Nmbox/styles.css&amp;diff=2519&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Nmbox/styles.css&quot; title=&quot;テンプレート:Nmbox/styles.css&quot;&gt;テンプレート:Nmbox/styles.css&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;.nmbox {&lt;br /&gt;
	/* clear: both; */&lt;br /&gt;
	background: #f8f9fa;&lt;br /&gt;
	border: 1px solid var( --border-color-base, #a2a9b1 );&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
	margin: 2px 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
.nmbox * {&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
}&lt;br /&gt;
.nmbox-header {&lt;br /&gt;
	background: #eaecf0;&lt;br /&gt;
	padding: 4px 0.5em;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	white-space: nowrap&lt;br /&gt;
}&lt;br /&gt;
.nmbox .mbox-image {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding-right: 1em;&lt;br /&gt;
}&lt;br /&gt;
.nmbox-text {&lt;br /&gt;
	border-top: 1px solid var( --border-color-base, #a2a9b1 );&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	padding: 4px 0.5em;&lt;br /&gt;
}&lt;br /&gt;
@media screen and (min-width: 768px) {&lt;br /&gt;
	.nmbox-header {&lt;br /&gt;
		display: table-cell;&lt;br /&gt;
		border-right: 1px solid var( --border-color-base, #a2a9b1 );&lt;br /&gt;
		width: 1%;&lt;br /&gt;
	}&lt;br /&gt;
	.nmbox-text {&lt;br /&gt;
		border-top: none;&lt;br /&gt;
		display: table-cell;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
	html.skin-theme-clientpref-night .nmbox-header,&lt;br /&gt;
	html.skin-theme-clientpref-night  .nmbox {&lt;br /&gt;
	    background: transparent;&lt;br /&gt;
	    color: inherit;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (prefers-color-scheme: dark) {&lt;br /&gt;
    /* automatic mode */&lt;br /&gt;
    html.skin-theme-clientpref-os .nmbox-header,&lt;br /&gt;
    html.skin-theme-clientpref-os  .nmbox {&lt;br /&gt;
    	background: transparent;&lt;br /&gt;
    	color: inherit;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Nmbox/styles.css</comments>
		</item>
		<item>
			<title>モジュール:Documentation/styles.css</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation/styles.css&amp;diff=2517&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation/styles.css&amp;diff=2517&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation/styles.css&quot; title=&quot;モジュール:Documentation/styles.css&quot;&gt;モジュール:Documentation/styles.css&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;.ts-doc-sandbox .mbox-image	{&lt;br /&gt;
	padding:.75em 0 .75em .75em;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
.ts-doc-doc {&lt;br /&gt;
	clear: both;&lt;br /&gt;
	background-color: #eaf3ff;&lt;br /&gt;
	color: var(--color-base, #202122);&lt;br /&gt;
	border: 1px solid #a3caff;&lt;br /&gt;
	margin-top: 1em;&lt;br /&gt;
	border-top-left-radius: 2px;&lt;br /&gt;
	border-top-right-radius: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header {&lt;br /&gt;
	background-color: #cbd6f6;&lt;br /&gt;
	color: var(--color-base, #202122);&lt;br /&gt;
	padding: .642857em 1em .5em;&lt;br /&gt;
	border-top-left-radius: 2px;&lt;br /&gt;
	border-top-right-radius: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-heading {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding-left: 30px;&lt;br /&gt;
	background: center left / 24px 24px no-repeat;&lt;br /&gt;
	/* @noflip */&lt;br /&gt;
	background-image: url( //upload.wikimedia.org/wikipedia/commons/3/32/Codex_icon_puzzle_color-base.svg );&lt;br /&gt;
	height: 24px;&lt;br /&gt;
	line-height: 24px;&lt;br /&gt;
	font-size: 13px;&lt;br /&gt;
	font-weight: 600;&lt;br /&gt;
	letter-spacing: 1px;&lt;br /&gt;
	text-transform: uppercase;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header .ts-tlinks-tlinks {&lt;br /&gt;
	line-height: 24px;&lt;br /&gt;
	margin-left: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header .ts-tlinks-tlinks a {&lt;br /&gt;
	color: var(--color-progressive, #36c);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header .ts-tlinks-tlinks a:active {&lt;br /&gt;
	color: var(--color-progressive--active, #233566);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header .ts-tlinks-tlinks a:visited {&lt;br /&gt;
	color: var(--color-visited, #6a60b0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-header .ts-tlinks-tlinks a:visited:active {&lt;br /&gt;
	color: var(--color-visited--active, #233566);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-content {&lt;br /&gt;
	padding: .214286em 1em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-content:after {&lt;br /&gt;
	content: &amp;#039;&amp;#039;;&lt;br /&gt;
	clear: both;&lt;br /&gt;
	display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-content &amp;gt; :first-child {&lt;br /&gt;
	margin-top: .5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-content &amp;gt; :last-child {&lt;br /&gt;
	margin-bottom: .5em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.ts-doc-footer {&lt;br /&gt;
	background-color: #eaf3ff;&lt;br /&gt;
	color: var(--color-base, #202122);&lt;br /&gt;
	border: 1px solid #a3caff;&lt;br /&gt;
	padding: .214286em 1em;&lt;br /&gt;
	margin-top: .214286em;&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
	border-bottom-left-radius: 2px;&lt;br /&gt;
	border-bottom-right-radius: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media all and (min-width: 720px) { &lt;br /&gt;
	.ts-doc-header .ts-tlinks-tlinks {&lt;br /&gt;
		float: right;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html.skin-theme-clientpref-night .ts-doc-header {&lt;br /&gt;
	background-color: #233566;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html.skin-theme-clientpref-night .ts-doc-heading {&lt;br /&gt;
	background-image: url( &amp;#039;//upload.wikimedia.org/wikipedia/commons/d/d3/OOjs_UI_icon_puzzle-ltr-invert.svg&amp;#039; );	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html.skin-theme-clientpref-night .ts-doc-doc,&lt;br /&gt;
html.skin-theme-clientpref-night .ts-doc-footer {&lt;br /&gt;
	background-color: #1b223d;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (prefers-color-scheme: dark) {&lt;br /&gt;
	html.skin-theme-clientpref-os .ts-doc-header {&lt;br /&gt;
		background-color: #233566;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-os .ts-doc-heading {&lt;br /&gt;
		background-image: url( &amp;#039;//upload.wikimedia.org/wikipedia/commons/d/d3/OOjs_UI_icon_puzzle-ltr-invert.svg&amp;#039; );	&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	html.skin-theme-clientpref-os .ts-doc-doc,&lt;br /&gt;
	html.skin-theme-clientpref-os .ts-doc-footer {&lt;br /&gt;
		background-color: #1b223d;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Documentation/styles.css</comments>
		</item>
		<item>
			<title>モジュール:Message box/ombox.css</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Message_box/ombox.css&amp;diff=2515&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Message_box/ombox.css&amp;diff=2515&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Message_box/ombox.css&quot; title=&quot;モジュール:Message box/ombox.css&quot;&gt;モジュール:Message box/ombox.css&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * {{ombox}} (other pages message box) styles&lt;br /&gt;
 *&lt;br /&gt;
 * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css&lt;br /&gt;
 * @revision 2021-07-15&lt;br /&gt;
 */&lt;br /&gt;
table.ombox {&lt;br /&gt;
	margin: 4px 10%;&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
	/* Default &amp;quot;notice&amp;quot; gray */&lt;br /&gt;
	border: 1px solid #a2a9b1;&lt;br /&gt;
	background-color: #f8f9fa;&lt;br /&gt;
	color: #333;&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* An empty narrow cell */&lt;br /&gt;
.ombox td.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;
/* The message body cell(s) */&lt;br /&gt;
.ombox th.mbox-text,&lt;br /&gt;
.ombox td.mbox-text {&lt;br /&gt;
	border: none;&lt;br /&gt;
	/* 0.9em left/right */&lt;br /&gt;
	padding: 0.25em 0.9em;&lt;br /&gt;
	/* Make all mboxes the same width regardless of text length */&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The left image cell */&lt;br /&gt;
.ombox td.mbox-image {&lt;br /&gt;
	border: none;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 2px 0 2px 0.9em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The right image cell */&lt;br /&gt;
.ombox td.mbox-imageright {&lt;br /&gt;
	border: none;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 2px 0.9em 2px 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-notice {&lt;br /&gt;
	/* Gray */&lt;br /&gt;
	border-color: #a2a9b1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-speedy {&lt;br /&gt;
	/* Pink */&lt;br /&gt;
	background-color: #fee7e6;&lt;br /&gt;
	color: #333;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-speedy,&lt;br /&gt;
table.ombox-delete {&lt;br /&gt;
	/* Red */&lt;br /&gt;
	border-color: #b32424;&lt;br /&gt;
	border-width: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-content {&lt;br /&gt;
	/* Orange */&lt;br /&gt;
	border-color: #f28500;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-style {&lt;br /&gt;
	/* Yellow */&lt;br /&gt;
	border-color: #fc3;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-move {&lt;br /&gt;
	/* Purple */&lt;br /&gt;
	border-color: #9932cc;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
table.ombox-protection {&lt;br /&gt;
	/* Gray-gold */&lt;br /&gt;
	border-color: #a2a9b1;&lt;br /&gt;
	border-width: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * {{ombox|small=1}} styles&lt;br /&gt;
 *&lt;br /&gt;
 * These &amp;quot;.mbox-small&amp;quot; classes must be placed after all other&lt;br /&gt;
 * &amp;quot;.ombox&amp;quot; classes. &amp;quot;html body.mediawiki .ombox&amp;quot;&lt;br /&gt;
 * is so they apply only to other page message boxes.&lt;br /&gt;
 *&lt;br /&gt;
 * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-enwp-boxes.css&lt;br /&gt;
 * @revision 2021-07-15&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/* For the &amp;quot;small=yes&amp;quot; option. */&lt;br /&gt;
html body.mediawiki .ombox.mbox-small {&lt;br /&gt;
	clear: right;&lt;br /&gt;
	float: right;&lt;br /&gt;
	margin: 4px 0 4px 1em;&lt;br /&gt;
	box-sizing: border-box;&lt;br /&gt;
	width: 238px;&lt;br /&gt;
	font-size: 88%;&lt;br /&gt;
	line-height: 1.25em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen {&lt;br /&gt;
	html.skin-theme-clientpref-night table.ombox {&lt;br /&gt;
	    background-color: transparent;&lt;br /&gt;
	    color: inherit;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (prefers-color-scheme: dark) {&lt;br /&gt;
    /* automatic mode */&lt;br /&gt;
    html.skin-theme-clientpref-os table.ombox {&lt;br /&gt;
    	background-color: transparent;&lt;br /&gt;
    	color: inherit;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media screen and (max-width: 720px) {&lt;br /&gt;
  table.ombox {&lt;br /&gt;
	margin: 4px auto;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Message_box/ombox.css</comments>
		</item>
		<item>
			<title>モジュール:Uses TemplateStyles/config</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Uses_TemplateStyles/config&amp;diff=2513&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Uses_TemplateStyles/config&amp;diff=2513&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Uses_TemplateStyles/config&quot; title=&quot;モジュール:Uses TemplateStyles/config&quot;&gt;モジュール:Uses TemplateStyles/config&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local cfg = {} -- Don’t touch this line.&lt;br /&gt;
&lt;br /&gt;
-- Subpage blacklist: these subpages will not be categorized (except for the&lt;br /&gt;
-- error category, which is always added if there is an error).&lt;br /&gt;
-- For example “Template:Foo/doc” matches the `doc = true` rule, so it will have&lt;br /&gt;
-- no categories. “Template:Foo” and “Template:Foo/documentation” match no rules,&lt;br /&gt;
-- so they *will* have categories. All rules should be in the&lt;br /&gt;
--   [&amp;#039;&amp;lt;subpage name&amp;gt;&amp;#039;] = true,&lt;br /&gt;
-- format.&lt;br /&gt;
cfg[&amp;#039;subpage_blacklist&amp;#039;] = {&lt;br /&gt;
	[&amp;#039;doc&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;sandbox&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;sandbox2&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;testcases&amp;#039;] = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Sandbox title: if the stylesheet’s title is &amp;lt;template&amp;gt;/&amp;lt;stylesheet&amp;gt;.css, the&lt;br /&gt;
-- stylesheet’s sandbox is expected to be at &amp;lt;template&amp;gt;/&amp;lt;sandbox_title&amp;gt;/&amp;lt;stylesheet&amp;gt;.css&lt;br /&gt;
-- Set to nil to disable sandbox links.&lt;br /&gt;
cfg[&amp;#039;sandbox_title&amp;#039;] = &amp;#039;sandbox&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- Error category: this category is added if the module call contains errors&lt;br /&gt;
-- (e.g. no stylesheet listed). A category name without namespace, or nil&lt;br /&gt;
-- to disable categorization (not recommended).&lt;br /&gt;
cfg[&amp;#039;error_category&amp;#039;] = nil&lt;br /&gt;
&lt;br /&gt;
-- Default category: this category is added if no custom category is specified&lt;br /&gt;
-- in module/template call. A category name without namespace, or nil&lt;br /&gt;
-- to disable categorization.&lt;br /&gt;
cfg[&amp;#039;default_category&amp;#039;] = &amp;#039;Templates using TemplateStyles&amp;#039;&lt;br /&gt;
	.. mw.getCurrentFrame():callParserFunction(&amp;quot;#translation:&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-- Protection conflict category: this category is added if the protection level&lt;br /&gt;
-- of any stylesheet differs from the one of the template. A category name&lt;br /&gt;
-- without namespace, or nil to disable categorization (not recommended).&lt;br /&gt;
cfg[&amp;#039;protection_conflict_category&amp;#039;] = nil&lt;br /&gt;
&lt;br /&gt;
-- Padlock pattern: Lua pattern to search on protected stylesheets for, or nil&lt;br /&gt;
-- to disable padlock check.&lt;br /&gt;
cfg[&amp;#039;padlock_pattern&amp;#039;] = nil&lt;br /&gt;
&lt;br /&gt;
-- Missing padlock category: this category is added if a protected stylesheet&lt;br /&gt;
-- doesn’t contain any padlock template (specified by the above Lua pattern).&lt;br /&gt;
-- A category name without namespace (no nil allowed) if the pattern is not nil,&lt;br /&gt;
-- unused (and thus may be nil) otherwise.&lt;br /&gt;
cfg[&amp;#039;missing_padlock_category&amp;#039;] = nil&lt;br /&gt;
&lt;br /&gt;
return cfg -- Don’t touch this line.&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Uses_TemplateStyles/config</comments>
		</item>
		<item>
			<title>モジュール:TableTools</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:TableTools&amp;diff=2511&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:TableTools&amp;diff=2511&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:TableTools&quot; title=&quot;モジュール:TableTools&quot;&gt;モジュール:TableTools&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--                               TableTools                                       --&lt;br /&gt;
--                                                                                --&lt;br /&gt;
-- This module includes a number of functions for dealing with Lua tables.        --&lt;br /&gt;
-- It is a meta-module, meant to be called from other Lua modules, and should     --&lt;br /&gt;
-- not be called directly from #invoke.                                           --&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local libraryUtil = require(&amp;#039;libraryUtil&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Define often-used variables and functions.&lt;br /&gt;
local floor = math.floor&lt;br /&gt;
local infinity = math.huge&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
local checkTypeMulti = libraryUtil.checkTypeMulti&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- isPositiveInteger&lt;br /&gt;
--&lt;br /&gt;
-- This function returns true if the given value is a positive integer, and false&lt;br /&gt;
-- if not. Although it doesn&amp;#039;t operate on tables, it is included here as it is&lt;br /&gt;
-- useful for determining whether a given table key is in the array part or the&lt;br /&gt;
-- hash part of a table.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.isPositiveInteger(v)&lt;br /&gt;
	return type(v) == &amp;#039;number&amp;#039; and v &amp;gt;= 1 and floor(v) == v and v &amp;lt; infinity&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- isNan&lt;br /&gt;
--&lt;br /&gt;
-- This function returns true if the given number is a NaN value, and false&lt;br /&gt;
-- if not. Although it doesn&amp;#039;t operate on tables, it is included here as it is&lt;br /&gt;
-- useful for determining whether a value can be a valid table key. Lua will&lt;br /&gt;
-- generate an error if a NaN is used as a table key.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.isNan(v)&lt;br /&gt;
	return type(v) == &amp;#039;number&amp;#039; and tostring(v) == &amp;#039;-nan&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- shallowClone&lt;br /&gt;
--&lt;br /&gt;
-- This returns a clone of a table. The value returned is a new table, but all&lt;br /&gt;
-- subtables and functions are shared. Metamethods are respected, but the returned&lt;br /&gt;
-- table will have no metatable of its own.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.shallowClone(t)&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for k, v in pairs(t) do&lt;br /&gt;
		ret[k] = v&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- removeDuplicates&lt;br /&gt;
--&lt;br /&gt;
-- This removes duplicate values from an array. Non-positive-integer keys are&lt;br /&gt;
-- ignored. The earliest value is kept, and all subsequent duplicate values are&lt;br /&gt;
-- removed, but otherwise the array order is unchanged.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.removeDuplicates(t)&lt;br /&gt;
	checkType(&amp;#039;removeDuplicates&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local isNan = p.isNan&lt;br /&gt;
	local ret, exists = {}, {}&lt;br /&gt;
	for i, v in ipairs(t) do&lt;br /&gt;
		if isNan(v) then&lt;br /&gt;
			-- NaNs can&amp;#039;t be table keys, and they are also unique, so we don&amp;#039;t need to check existence.&lt;br /&gt;
			ret[#ret + 1] = v&lt;br /&gt;
		else&lt;br /&gt;
			if not exists[v] then&lt;br /&gt;
				ret[#ret + 1] = v&lt;br /&gt;
				exists[v] = true&lt;br /&gt;
			end&lt;br /&gt;
		end	&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end			&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- numKeys&lt;br /&gt;
--&lt;br /&gt;
-- This takes a table and returns an array containing the numbers of any numerical&lt;br /&gt;
-- keys that have non-nil values, sorted in numerical order.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.numKeys(t)&lt;br /&gt;
	checkType(&amp;#039;numKeys&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local isPositiveInteger = p.isPositiveInteger&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for k, v in pairs(t) do&lt;br /&gt;
		if isPositiveInteger(k) then&lt;br /&gt;
			nums[#nums + 1] = k&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;
------------------------------------------------------------------------------------&lt;br /&gt;
-- affixNums&lt;br /&gt;
--&lt;br /&gt;
-- This takes a table and returns an array containing the numbers of keys with the&lt;br /&gt;
-- specified prefix and suffix. For example, for the table&lt;br /&gt;
-- {a1 = &amp;#039;foo&amp;#039;, a3 = &amp;#039;bar&amp;#039;, a6 = &amp;#039;baz&amp;#039;} and the prefix &amp;quot;a&amp;quot;, affixNums will&lt;br /&gt;
-- return {1, 3, 6}.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.affixNums(t, prefix, suffix)&lt;br /&gt;
	checkType(&amp;#039;affixNums&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;affixNums&amp;#039;, 2, prefix, &amp;#039;string&amp;#039;, true)&lt;br /&gt;
	checkType(&amp;#039;affixNums&amp;#039;, 3, suffix, &amp;#039;string&amp;#039;, true)&lt;br /&gt;
&lt;br /&gt;
	local function cleanPattern(s)&lt;br /&gt;
		-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.&lt;br /&gt;
		return s:gsub(&amp;#039;([%(%)%%%.%[%]%*%+%-%?%^%$])&amp;#039;, &amp;#039;%%%1&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	prefix = prefix or &amp;#039;&amp;#039;&lt;br /&gt;
	suffix = suffix or &amp;#039;&amp;#039;&lt;br /&gt;
	prefix = cleanPattern(prefix)&lt;br /&gt;
	suffix = cleanPattern(suffix)&lt;br /&gt;
	local pattern = &amp;#039;^&amp;#039; .. prefix .. &amp;#039;([1-9]%d*)&amp;#039; .. suffix .. &amp;#039;$&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for k, v in pairs(t) do&lt;br /&gt;
		if type(k) == &amp;#039;string&amp;#039; then			&lt;br /&gt;
			local num = mw.ustring.match(k, pattern)&lt;br /&gt;
			if num then&lt;br /&gt;
				nums[#nums + 1] = tonumber(num)&lt;br /&gt;
			end&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;
------------------------------------------------------------------------------------&lt;br /&gt;
-- numData&lt;br /&gt;
--&lt;br /&gt;
-- Given a table with keys like (&amp;quot;foo1&amp;quot;, &amp;quot;bar1&amp;quot;, &amp;quot;foo2&amp;quot;, &amp;quot;baz2&amp;quot;), returns a table&lt;br /&gt;
-- of subtables in the format &lt;br /&gt;
-- { [1] = {foo = &amp;#039;text&amp;#039;, bar = &amp;#039;text&amp;#039;}, [2] = {foo = &amp;#039;text&amp;#039;, baz = &amp;#039;text&amp;#039;} }&lt;br /&gt;
-- Keys that don&amp;#039;t end with an integer are stored in a subtable named &amp;quot;other&amp;quot;.&lt;br /&gt;
-- The compress option compresses the table so that it can be iterated over with&lt;br /&gt;
-- ipairs.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.numData(t, compress)&lt;br /&gt;
	checkType(&amp;#039;numData&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;numData&amp;#039;, 2, compress, &amp;#039;boolean&amp;#039;, true)&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for k, v in pairs(t) do&lt;br /&gt;
		local prefix, num = mw.ustring.match(tostring(k), &amp;#039;^([^0-9]*)([1-9][0-9]*)$&amp;#039;)&lt;br /&gt;
		if num then&lt;br /&gt;
			num = tonumber(num)&lt;br /&gt;
			local subtable = ret[num] or {}&lt;br /&gt;
			if prefix == &amp;#039;&amp;#039; then&lt;br /&gt;
				-- Positional parameters match the blank string; put them at the start of the subtable instead.&lt;br /&gt;
				prefix = 1&lt;br /&gt;
			end&lt;br /&gt;
			subtable[prefix] = v&lt;br /&gt;
			ret[num] = subtable&lt;br /&gt;
		else&lt;br /&gt;
			local subtable = ret.other or {}&lt;br /&gt;
			subtable[k] = v&lt;br /&gt;
			ret.other = subtable&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if compress then&lt;br /&gt;
		local other = ret.other&lt;br /&gt;
		ret = p.compressSparseArray(ret)&lt;br /&gt;
		ret.other = other&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- compressSparseArray&lt;br /&gt;
--&lt;br /&gt;
-- This takes an array with one or more nil values, and removes the nil values&lt;br /&gt;
-- while preserving the order, so that the array can be safely traversed with&lt;br /&gt;
-- ipairs.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.compressSparseArray(t)&lt;br /&gt;
	checkType(&amp;#039;compressSparseArray&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	local nums = p.numKeys(t)&lt;br /&gt;
	for _, num in ipairs(nums) do&lt;br /&gt;
		ret[#ret + 1] = t[num]&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- sparseIpairs&lt;br /&gt;
--&lt;br /&gt;
-- This is an iterator for sparse arrays. It can be used like ipairs, but can&lt;br /&gt;
-- handle nil values.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
function p.sparseIpairs(t)&lt;br /&gt;
	checkType(&amp;#039;sparseIpairs&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local nums = p.numKeys(t)&lt;br /&gt;
	local i = 0&lt;br /&gt;
	local lim = #nums&lt;br /&gt;
	return function ()&lt;br /&gt;
		i = i + 1&lt;br /&gt;
		if i &amp;lt;= lim then&lt;br /&gt;
			local key = nums[i]&lt;br /&gt;
			return key, t[key]&lt;br /&gt;
		else&lt;br /&gt;
			return nil, nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
-- size&lt;br /&gt;
--&lt;br /&gt;
-- This returns the size of a key/value pair table. It will also work on arrays,&lt;br /&gt;
-- but for arrays it is more efficient to use the # operator.&lt;br /&gt;
------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
function p.size(t)&lt;br /&gt;
	checkType(&amp;#039;size&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local i = 0&lt;br /&gt;
	for k in pairs(t) do&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	return i&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function defaultKeySort(item1, item2)&lt;br /&gt;
	-- &amp;quot;number&amp;quot; &amp;lt; &amp;quot;string&amp;quot;, so numbers will be sorted before strings.&lt;br /&gt;
	local type1, type2 = type(item1), type(item2)&lt;br /&gt;
	if type1 ~= type2 then&lt;br /&gt;
		return type1 &amp;lt; type2&lt;br /&gt;
	else -- This will fail with table, boolean, function.&lt;br /&gt;
		return item1 &amp;lt; item2&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	Returns a list of the keys in a table, sorted using either a default&lt;br /&gt;
	comparison function or a custom keySort function.&lt;br /&gt;
]]&lt;br /&gt;
function p.keysToList(t, keySort, checked)&lt;br /&gt;
	if not checked then&lt;br /&gt;
		checkType(&amp;#039;keysToList&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
		checkTypeMulti(&amp;#039;keysToList&amp;#039;, 2, keySort, { &amp;#039;function&amp;#039;, &amp;#039;boolean&amp;#039;, &amp;#039;nil&amp;#039; })&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local list = {}&lt;br /&gt;
	local index = 1&lt;br /&gt;
	for key, value in pairs(t) do&lt;br /&gt;
		list[index] = key&lt;br /&gt;
		index = index + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if keySort ~= false then&lt;br /&gt;
		keySort = type(keySort) == &amp;#039;function&amp;#039; and keySort or defaultKeySort&lt;br /&gt;
		&lt;br /&gt;
		table.sort(list, keySort)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return list&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	Iterates through a table, with the keys sorted using the keysToList function.&lt;br /&gt;
	If there are only numerical keys, sparseIpairs is probably more efficient.&lt;br /&gt;
]]&lt;br /&gt;
function p.sortedPairs(t, keySort)&lt;br /&gt;
	checkType(&amp;#039;sortedPairs&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;sortedPairs&amp;#039;, 2, keySort, &amp;#039;function&amp;#039;, true)&lt;br /&gt;
	&lt;br /&gt;
	local list = p.keysToList(t, keySort, true)&lt;br /&gt;
	&lt;br /&gt;
	local i = 0&lt;br /&gt;
	return function()&lt;br /&gt;
		i = i + 1&lt;br /&gt;
		local key = list[i]&lt;br /&gt;
		if key ~= nil then&lt;br /&gt;
			return key, t[key]&lt;br /&gt;
		else&lt;br /&gt;
			return nil, nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	Returns true if all keys in the table are consecutive integers starting at 1.&lt;br /&gt;
--]]&lt;br /&gt;
function p.isArray(t)&lt;br /&gt;
	checkType(&amp;quot;isArray&amp;quot;, 1, t, &amp;quot;table&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local i = 0&lt;br /&gt;
	for k, v in pairs(t) do&lt;br /&gt;
		i = i + 1&lt;br /&gt;
		if t[i] == nil then&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- { &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot; } -&amp;gt; { a = 1, b = 2, c = 3 }&lt;br /&gt;
function p.invert(array)&lt;br /&gt;
	checkType(&amp;quot;invert&amp;quot;, 1, array, &amp;quot;table&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local map = {}&lt;br /&gt;
	for i, v in ipairs(array) do&lt;br /&gt;
		map[v] = i&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return map&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	{ &amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot; } -&amp;gt; { [&amp;quot;a&amp;quot;] = true, [&amp;quot;b&amp;quot;] = true, [&amp;quot;c&amp;quot;] = true }&lt;br /&gt;
--]]&lt;br /&gt;
function p.listToSet(t)&lt;br /&gt;
	checkType(&amp;quot;listToSet&amp;quot;, 1, t, &amp;quot;table&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local set = {}&lt;br /&gt;
	for _, item in ipairs(t) do&lt;br /&gt;
		set[item] = true&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return set&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	Recursive deep copy function.&lt;br /&gt;
	Preserves identities of subtables.&lt;br /&gt;
	&lt;br /&gt;
]]&lt;br /&gt;
local function _deepCopy(orig, includeMetatable, already_seen)&lt;br /&gt;
	-- Stores copies of tables indexed by the original table.&lt;br /&gt;
	already_seen = already_seen or {}&lt;br /&gt;
	&lt;br /&gt;
	local copy = already_seen[orig]&lt;br /&gt;
	if copy ~= nil then&lt;br /&gt;
		return copy&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if type(orig) == &amp;#039;table&amp;#039; then&lt;br /&gt;
		copy = {}&lt;br /&gt;
		for orig_key, orig_value in pairs(orig) do&lt;br /&gt;
			copy[deepcopy(orig_key, includeMetatable, already_seen)] = deepcopy(orig_value, includeMetatable, already_seen)&lt;br /&gt;
		end&lt;br /&gt;
		already_seen[orig] = copy&lt;br /&gt;
		&lt;br /&gt;
		if includeMetatable then&lt;br /&gt;
			local mt = getmetatable(orig)&lt;br /&gt;
			if mt ~= nil then&lt;br /&gt;
				local mt_copy = deepcopy(mt, includeMetatable, already_seen)&lt;br /&gt;
				setmetatable(copy, mt_copy)&lt;br /&gt;
				already_seen[mt] = mt_copy&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else -- number, string, boolean, etc&lt;br /&gt;
		copy = orig&lt;br /&gt;
	end&lt;br /&gt;
	return copy&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.deepCopy(orig, noMetatable, already_seen)&lt;br /&gt;
	checkType(&amp;quot;deepCopy&amp;quot;, 3, already_seen, &amp;quot;table&amp;quot;, true)&lt;br /&gt;
	&lt;br /&gt;
	return _deepCopy(orig, not noMetatable, already_seen)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	Concatenates all values in the table that are indexed by a number, in order.&lt;br /&gt;
	sparseConcat{ a, nil, c, d }  =&amp;gt;  &amp;quot;acd&amp;quot;&lt;br /&gt;
	sparseConcat{ nil, b, c, d }  =&amp;gt;  &amp;quot;bcd&amp;quot;&lt;br /&gt;
]]&lt;br /&gt;
function p.sparseConcat(t, sep, i, j)&lt;br /&gt;
	local list = {}&lt;br /&gt;
	&lt;br /&gt;
	local list_i = 0&lt;br /&gt;
	for _, v in p.sparseIpairs(t) do&lt;br /&gt;
		list_i = list_i + 1&lt;br /&gt;
		list[list_i] = v&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(list, sep, i, j)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- Finds the length of an array, or of a quasi-array with keys such&lt;br /&gt;
-- as &amp;quot;data1&amp;quot;, &amp;quot;data2&amp;quot;, etc., using an exponential search algorithm. &lt;br /&gt;
-- It is similar to the operator #, but may return&lt;br /&gt;
-- a different value when there are gaps in the array portion of the table.&lt;br /&gt;
-- Intended to be used on data loaded with mw.loadData. For other tables, use #.&lt;br /&gt;
-- Note: #frame.args in frame object always be set to 0, regardless of &lt;br /&gt;
-- the number of unnamed template parameters, so use this function for&lt;br /&gt;
-- frame.args.&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
function p.length(t, prefix)&lt;br /&gt;
	-- requiring module inline so that [[Module:Exponential search]]&lt;br /&gt;
	-- which is only needed by this one function&lt;br /&gt;
	-- doesn&amp;#039;t get millions of transclusions&lt;br /&gt;
	local expSearch = require(&amp;quot;Module:Exponential search&amp;quot;)&lt;br /&gt;
	checkType(&amp;#039;length&amp;#039;, 1, t, &amp;#039;table&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;length&amp;#039;, 2, prefix, &amp;#039;string&amp;#039;, true)&lt;br /&gt;
	return expSearch(function(i)&lt;br /&gt;
		local key&lt;br /&gt;
		if prefix then&lt;br /&gt;
			key = prefix .. tostring(i)&lt;br /&gt;
		else&lt;br /&gt;
			key = i&lt;br /&gt;
		end&lt;br /&gt;
		return t[key] ~= nil&lt;br /&gt;
	end) or 0&lt;br /&gt;
end&lt;br /&gt;
function p.inArray(arr, valueToFind)&lt;br /&gt;
	checkType(&amp;quot;inArray&amp;quot;, 1, arr, &amp;quot;table&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	-- if valueToFind is nil, error?&lt;br /&gt;
	&lt;br /&gt;
	for _, v in ipairs(arr) do&lt;br /&gt;
		if v == valueToFind then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:TableTools</comments>
		</item>
		<item>
			<title>モジュール:List</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:List&amp;diff=2509&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:List&amp;diff=2509&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:List&quot; title=&quot;モジュール:List&quot;&gt;モジュール:List&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local libUtil = require(&amp;#039;libraryUtil&amp;#039;)&lt;br /&gt;
local checkType = libUtil.checkType&lt;br /&gt;
local mTableTools = require(&amp;#039;Module:TableTools&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local listTypes = {&lt;br /&gt;
	[&amp;#039;bulleted&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;unbulleted&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;horizontal&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;ordered&amp;#039;] = true,&lt;br /&gt;
	[&amp;#039;horizontal_ordered&amp;#039;] = true&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function p.makeListData(listType, args)&lt;br /&gt;
	-- Constructs a data table to be passed to p.renderList.&lt;br /&gt;
	local data = {}&lt;br /&gt;
&lt;br /&gt;
	-- Classes and TemplateStyles&lt;br /&gt;
	data.classes = {}&lt;br /&gt;
	data.templatestyles = &amp;#039;&amp;#039;&lt;br /&gt;
	if listType == &amp;#039;horizontal&amp;#039; or listType == &amp;#039;horizontal_ordered&amp;#039; then&lt;br /&gt;
		table.insert(data.classes, &amp;#039;hlist&amp;#039;)&lt;br /&gt;
		data.templatestyles = mw.getCurrentFrame():extensionTag{&lt;br /&gt;
			name = &amp;#039;templatestyles&amp;#039;, args = { src = &amp;#039;Hlist/styles.css&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	elseif listType == &amp;#039;unbulleted&amp;#039; then&lt;br /&gt;
		table.insert(data.classes, &amp;#039;plainlist&amp;#039;)&lt;br /&gt;
		data.templatestyles = mw.getCurrentFrame():extensionTag{&lt;br /&gt;
			name = &amp;#039;templatestyles&amp;#039;, args = { src = &amp;#039;Plainlist/styles.css&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(data.classes, args.class)&lt;br /&gt;
&lt;br /&gt;
	-- Main div style&lt;br /&gt;
	data.style = args.style&lt;br /&gt;
&lt;br /&gt;
	-- Indent for horizontal lists&lt;br /&gt;
	if listType == &amp;#039;horizontal&amp;#039; or listType == &amp;#039;horizontal_ordered&amp;#039; then&lt;br /&gt;
		local indent = tonumber(args.indent)&lt;br /&gt;
		indent = indent and indent * 1.6 or 0&lt;br /&gt;
		if indent &amp;gt; 0 then&lt;br /&gt;
			data.marginLeft = indent .. &amp;#039;em&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- List style types for ordered lists&lt;br /&gt;
	-- This could be &amp;quot;1, 2, 3&amp;quot;, &amp;quot;a, b, c&amp;quot;, or a number of others. The list style&lt;br /&gt;
	-- type is either set by the &amp;quot;type&amp;quot; attribute or the &amp;quot;list-style-type&amp;quot; CSS&lt;br /&gt;
	-- property.&lt;br /&gt;
	if listType == &amp;#039;ordered&amp;#039; or listType == &amp;#039;horizontal_ordered&amp;#039; then &lt;br /&gt;
		data.listStyleType = args.list_style_type or args[&amp;#039;list-style-type&amp;#039;]&lt;br /&gt;
		data.type = args[&amp;#039;type&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
		-- Detect invalid type attributes and attempt to convert them to&lt;br /&gt;
		-- list-style-type CSS properties.&lt;br /&gt;
		if data.type &lt;br /&gt;
			and not data.listStyleType&lt;br /&gt;
			and not tostring(data.type):find(&amp;#039;^%s*[1AaIi]%s*$&amp;#039;)&lt;br /&gt;
		then&lt;br /&gt;
			data.listStyleType = data.type&lt;br /&gt;
			data.type = nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- List tag type&lt;br /&gt;
	if listType == &amp;#039;ordered&amp;#039; or listType == &amp;#039;horizontal_ordered&amp;#039; then&lt;br /&gt;
		data.listTag = &amp;#039;ol&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		data.listTag = &amp;#039;ul&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Start number for ordered lists&lt;br /&gt;
	data.start = args.start&lt;br /&gt;
	if listType == &amp;#039;horizontal_ordered&amp;#039; then&lt;br /&gt;
		-- Apply fix to get start numbers working with horizontal ordered lists.&lt;br /&gt;
		local startNum = tonumber(data.start)&lt;br /&gt;
		if startNum then&lt;br /&gt;
			data.counterReset = &amp;#039;listitem &amp;#039; .. tostring(startNum)&lt;br /&gt;
			data.counterIncrement = &amp;#039;listitem -1&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- List style&lt;br /&gt;
	 -- ul_style and ol_style are included for backwards compatibility. No&lt;br /&gt;
	 -- distinction is made for ordered or unordered lists.&lt;br /&gt;
	data.listStyle = args.list_style&lt;br /&gt;
&lt;br /&gt;
	-- List items&lt;br /&gt;
	-- li_style is included for backwards compatibility. item_style was included&lt;br /&gt;
	-- to be easier to understand for non-coders.&lt;br /&gt;
	data.itemStyle = args.item_style or args.li_style&lt;br /&gt;
	data.items = {}&lt;br /&gt;
	for _, num in ipairs(mTableTools.numKeys(args)) do&lt;br /&gt;
		local item = {}&lt;br /&gt;
		item.content = args[num]&lt;br /&gt;
		item.style = args[&amp;#039;item&amp;#039; .. tostring(num) .. &amp;#039;_style&amp;#039;]&lt;br /&gt;
			or args[&amp;#039;item_style&amp;#039; .. tostring(num)]&lt;br /&gt;
		item.value = args[&amp;#039;item&amp;#039; .. tostring(num) .. &amp;#039;_value&amp;#039;]&lt;br /&gt;
			or args[&amp;#039;item_value&amp;#039; .. tostring(num)]&lt;br /&gt;
		if item.value ~= nil then&lt;br /&gt;
			item.style = &amp;#039;counter-reset: listitem &amp;#039; .. item.value .. &amp;#039;;counter-increment: none;&amp;#039; .. ((item.style) or &amp;#039;&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(data.items, item)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderList(data)&lt;br /&gt;
	-- Renders the list HTML.&lt;br /&gt;
	&lt;br /&gt;
	-- Return the blank string if there are no list items.&lt;br /&gt;
	if type(data.items) ~= &amp;#039;table&amp;#039; or #data.items &amp;lt; 1 then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Render the main div tag.&lt;br /&gt;
	local root = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
	for _, class in ipairs(data.classes or {}) do&lt;br /&gt;
		root:addClass(class)&lt;br /&gt;
	end&lt;br /&gt;
	root:css{[&amp;#039;margin-left&amp;#039;] = data.marginLeft}&lt;br /&gt;
	if data.style then&lt;br /&gt;
		root:cssText(data.style)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Render the list tag.&lt;br /&gt;
	local list = root:tag(data.listTag or &amp;#039;ul&amp;#039;)&lt;br /&gt;
	list&lt;br /&gt;
		:attr{start = data.start, type = data.type}&lt;br /&gt;
		:css{&lt;br /&gt;
			[&amp;#039;counter-reset&amp;#039;] = data.counterReset,&lt;br /&gt;
			[&amp;#039;counter-increment&amp;#039;] = data.counterIncrement,&lt;br /&gt;
			[&amp;#039;list-style-type&amp;#039;] = data.listStyleType&lt;br /&gt;
		}&lt;br /&gt;
	if data.listStyle then&lt;br /&gt;
		list:cssText(data.listStyle)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Render the list items&lt;br /&gt;
	for _, t in ipairs(data.items or {}) do&lt;br /&gt;
		local item = list:tag(&amp;#039;li&amp;#039;)&lt;br /&gt;
		if data.itemStyle then&lt;br /&gt;
			item:cssText(data.itemStyle)&lt;br /&gt;
		end&lt;br /&gt;
		if t.style then&lt;br /&gt;
			item:cssText(t.style)&lt;br /&gt;
		end&lt;br /&gt;
		item&lt;br /&gt;
			:attr{value = t.value}&lt;br /&gt;
			:wikitext(t.content)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return data.templatestyles .. tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderTrackingCategories(args)&lt;br /&gt;
	local isDeprecated = false -- Tracks deprecated parameters.&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		k = tostring(k)&lt;br /&gt;
		if k:find(&amp;#039;^item_style%d+$&amp;#039;) or k:find(&amp;#039;^item_value%d+$&amp;#039;) then&lt;br /&gt;
			isDeprecated = true&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local ret = &amp;#039;&amp;#039;&lt;br /&gt;
	if isDeprecated then&lt;br /&gt;
		ret = ret .. &amp;#039;[[Category:List templates with deprecated parameters]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.makeList(listType, args)&lt;br /&gt;
	if not listType or not listTypes[listType] then&lt;br /&gt;
		error(string.format(&lt;br /&gt;
			&amp;quot;bad argument #1 to &amp;#039;makeList&amp;#039; (&amp;#039;%s&amp;#039; is not a valid list type)&amp;quot;,&lt;br /&gt;
			tostring(listType)&lt;br /&gt;
		), 2)&lt;br /&gt;
	end&lt;br /&gt;
	checkType(&amp;#039;makeList&amp;#039;, 2, args, &amp;#039;table&amp;#039;)&lt;br /&gt;
	local data = p.makeListData(listType, args)&lt;br /&gt;
	local list = p.renderList(data)&lt;br /&gt;
	local trackingCategories = p.renderTrackingCategories(args)&lt;br /&gt;
	return list .. trackingCategories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for listType in pairs(listTypes) do&lt;br /&gt;
	p[listType] = function (frame)&lt;br /&gt;
		local mArguments = require(&amp;#039;Module:Arguments&amp;#039;)&lt;br /&gt;
		local origArgs = mArguments.getArgs(frame, {&lt;br /&gt;
			valueFunc = function (key, value)&lt;br /&gt;
			if not value or not mw.ustring.find(value, &amp;#039;%S&amp;#039;) then return nil end&lt;br /&gt;
			if mw.ustring.find(value, &amp;#039;^%s*[%*#;:]&amp;#039;) then&lt;br /&gt;
				return value&lt;br /&gt;
			else&lt;br /&gt;
				return value:match(&amp;#039;^%s*(.-)%s*$&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		})&lt;br /&gt;
		-- Copy all the arguments to a new table, for faster indexing.&lt;br /&gt;
		local args = {}&lt;br /&gt;
		for k, v in pairs(origArgs) do&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
		return p.makeList(listType, args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:List</comments>
		</item>
		<item>
			<title>モジュール:Uses TemplateStyles</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Uses_TemplateStyles&amp;diff=2507&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Uses_TemplateStyles&amp;diff=2507&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Uses_TemplateStyles&quot; title=&quot;モジュール:Uses TemplateStyles&quot;&gt;モジュール:Uses TemplateStyles&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;quot;strict&amp;quot;);&lt;br /&gt;
-- This module implements the {{Uses TemplateStyles}} template.&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local mList = require(&amp;#039;Module:List&amp;#039;)&lt;br /&gt;
local mTableTools = require(&amp;#039;Module:TableTools&amp;#039;)&lt;br /&gt;
local mMessageBox = require(&amp;#039;Module:Message box&amp;#039;)&lt;br /&gt;
local TNT = require(&amp;#039;Module:TNT&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function format(msg, ...)&lt;br /&gt;
	-- Content sourced from [[commons:Data:I18n/Uses TemplateStyles.tab]]&lt;br /&gt;
	return TNT.format(&amp;#039;I18n/Uses TemplateStyles&amp;#039;, msg, ...)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getConfig()&lt;br /&gt;
	return mw.loadData(&amp;#039;Module:Uses TemplateStyles/config&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local origArgs = frame:getParent().args&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for k, v in pairs(origArgs) do&lt;br /&gt;
		v = v:match(&amp;#039;^%s*(.-)%s*$&amp;#039;)&lt;br /&gt;
		if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args, cfg)&lt;br /&gt;
	local tStyles = mTableTools.compressSparseArray(args)&lt;br /&gt;
	local box = p.renderBox(tStyles)&lt;br /&gt;
	local trackingCategories = p.renderTrackingCategories(args, tStyles)&lt;br /&gt;
	return box .. trackingCategories&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderBox(tStyles)&lt;br /&gt;
	local boxArgs = {}&lt;br /&gt;
	if #tStyles &amp;lt; 1 then&lt;br /&gt;
		boxArgs.text = string.format(&amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;%s&amp;lt;/strong&amp;gt;&amp;#039;, format(&amp;#039;error-emptylist&amp;#039;))&lt;br /&gt;
	else&lt;br /&gt;
		local cfg = getConfig()&lt;br /&gt;
		local tStylesLinks = {}&lt;br /&gt;
		for i, ts in ipairs(tStyles) do&lt;br /&gt;
			local link = string.format(&amp;#039;[[:%s]]&amp;#039;, ts)&lt;br /&gt;
			local sandboxLink = nil&lt;br /&gt;
			local tsTitle = mw.title.new(ts)&lt;br /&gt;
			if tsTitle and cfg[&amp;#039;sandbox_title&amp;#039;] then&lt;br /&gt;
				local tsSandboxTitle = mw.title.new(string.format(&lt;br /&gt;
					&amp;#039;%s:%s/%s/%s&amp;#039;, tsTitle.nsText, tsTitle.baseText, cfg[&amp;#039;sandbox_title&amp;#039;], tsTitle.subpageText))&lt;br /&gt;
				if tsSandboxTitle and tsSandboxTitle.exists then&lt;br /&gt;
					sandboxLink = format(&amp;#039;sandboxlink&amp;#039;, link, &amp;#039;:&amp;#039; .. tsSandboxTitle.prefixedText)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			tStylesLinks[i] = sandboxLink or link&lt;br /&gt;
		end&lt;br /&gt;
		local tStylesList = mList.makeList(&amp;#039;bulleted&amp;#039;, tStylesLinks)&lt;br /&gt;
		boxArgs.text = format(&lt;br /&gt;
			mw.title.getCurrentTitle():inNamespaces(828,829) and &amp;#039;header-module&amp;#039; or &amp;#039;header-template&amp;#039;) ..&lt;br /&gt;
			&amp;#039;\n&amp;#039; .. tStylesList&lt;br /&gt;
	end&lt;br /&gt;
	boxArgs.type = &amp;#039;notice&amp;#039;&lt;br /&gt;
	boxArgs.small = true&lt;br /&gt;
	boxArgs.image = string.format(&amp;#039;[[File:Farm-Fresh css add.svg|32px|alt=%s]]&amp;#039;, format(&amp;#039;logo-alt&amp;#039;))&lt;br /&gt;
	return mMessageBox.main(&amp;#039;mbox&amp;#039;, boxArgs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderTrackingCategories(args, tStyles, titleObj)&lt;br /&gt;
	if yesno(args.nocat) then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local cfg = getConfig()&lt;br /&gt;
	&lt;br /&gt;
	local cats = {}&lt;br /&gt;
	&lt;br /&gt;
	-- Error category&lt;br /&gt;
	if #tStyles &amp;lt; 1 and cfg[&amp;#039;error_category&amp;#039;] then&lt;br /&gt;
		cats[#cats + 1] = cfg[&amp;#039;error_category&amp;#039;]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- TemplateStyles category&lt;br /&gt;
	titleObj = titleObj or mw.title.getCurrentTitle()&lt;br /&gt;
	if (titleObj.namespace == 10 or titleObj.namespace == 828)&lt;br /&gt;
		and not cfg[&amp;#039;subpage_blacklist&amp;#039;][titleObj.subpageText]&lt;br /&gt;
	then&lt;br /&gt;
		local category = args.category or cfg[&amp;#039;default_category&amp;#039;]&lt;br /&gt;
		if category then&lt;br /&gt;
			cats[#cats + 1] = category&lt;br /&gt;
		end&lt;br /&gt;
		if not yesno(args.noprotcat) and (cfg[&amp;#039;protection_conflict_category&amp;#039;] or cfg[&amp;#039;padlock_pattern&amp;#039;]) then&lt;br /&gt;
			local currentProt = titleObj.protectionLevels[&amp;quot;edit&amp;quot;] and titleObj.protectionLevels[&amp;quot;edit&amp;quot;][1] or nil&lt;br /&gt;
			local addedLevelCat = false&lt;br /&gt;
			local addedPadlockCat = false&lt;br /&gt;
			for i, ts in ipairs(tStyles) do&lt;br /&gt;
				local tsTitleObj = mw.title.new(ts)&lt;br /&gt;
				local tsProt = tsTitleObj.protectionLevels[&amp;quot;edit&amp;quot;] and tsTitleObj.protectionLevels[&amp;quot;edit&amp;quot;][1] or nil&lt;br /&gt;
				if cfg[&amp;#039;protection_conflict_category&amp;#039;] and tsProt ~= currentProt and not addedLevelCat then&lt;br /&gt;
					addedLevelCat = true&lt;br /&gt;
					cats[#cats + 1] = cfg[&amp;#039;protection_conflict_category&amp;#039;]&lt;br /&gt;
				end&lt;br /&gt;
				if cfg[&amp;#039;padlock_pattern&amp;#039;] and tsProt and not addedPadlockCat then&lt;br /&gt;
					local content = tsTitleObj:getContent()&lt;br /&gt;
					if not content:find(cfg[&amp;#039;padlock_pattern&amp;#039;]) then&lt;br /&gt;
						cats[#cats + 1] = cfg[&amp;#039;missing_padlock_category&amp;#039;]&lt;br /&gt;
						addedPadlockCat = true&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for i, cat in ipairs(cats) do&lt;br /&gt;
		cats[i] = string.format(&amp;#039;[[Category:%s]]&amp;#039;, cat)&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(cats)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Uses_TemplateStyles</comments>
		</item>
		<item>
			<title>モジュール:Documentation/i18n</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation/i18n&amp;diff=2505&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation/i18n&amp;diff=2505&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation/i18n&quot; title=&quot;モジュール:Documentation/i18n&quot;&gt;モジュール:Documentation/i18n&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local format = require(&amp;#039;Module:TNT&amp;#039;).format&lt;br /&gt;
local i18n = {}&lt;br /&gt;
&lt;br /&gt;
i18n[&amp;#039;cfg-error-msg-type&amp;#039;] = format(&amp;#039;I18n/Documentation&amp;#039;, &amp;#039;cfg-error-msg-type&amp;#039;)&lt;br /&gt;
i18n[&amp;#039;cfg-error-msg-empty&amp;#039;] = format(&amp;#039;I18n/Documentation&amp;#039;, &amp;#039;cfg-error-msg-empty&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;template-namespace-heading&amp;#039;]&lt;br /&gt;
-- The heading shown in the template namespace.&lt;br /&gt;
i18n[&amp;#039;template-namespace-heading&amp;#039;] = format(&amp;#039;I18n/Documentation&amp;#039;, &amp;#039;template-namespace-heading&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;module-namespace-heading&amp;#039;]&lt;br /&gt;
-- The heading shown in the module namespace.&lt;br /&gt;
i18n[&amp;#039;module-namespace-heading&amp;#039;] = format(&amp;#039;I18n/Documentation&amp;#039;, &amp;#039;module-namespace-heading&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;file-namespace-heading&amp;#039;]&lt;br /&gt;
-- The heading shown in the file namespace.&lt;br /&gt;
i18n[&amp;#039;file-namespace-heading&amp;#039;] = format(&amp;#039;I18n/Documentation&amp;#039;, &amp;#039;file-namespace-heading&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;other-namespaces-heading&amp;#039;]&lt;br /&gt;
-- The heading shown in other namespaces.&lt;br /&gt;
i18n[&amp;#039;other-namespaces-heading&amp;#039;] = format(&amp;#039;I18n/Documentation&amp;#039;, &amp;#039;other-namespaces-heading&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;view-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;view&amp;quot; links.&lt;br /&gt;
i18n[&amp;#039;view-link-display&amp;#039;] = format(&amp;#039;I18n/Documentation&amp;#039;, &amp;#039;view-link-display&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;edit-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;edit&amp;quot; links.&lt;br /&gt;
i18n[&amp;#039;edit-link-display&amp;#039;] = format(&amp;#039;I18n/Documentation&amp;#039;, &amp;#039;edit-link-display&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;history-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;history&amp;quot; links.&lt;br /&gt;
i18n[&amp;#039;history-link-display&amp;#039;] = format(&amp;#039;I18n/Documentation&amp;#039;, &amp;#039;history-link-display&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;purge-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;purge&amp;quot; links.&lt;br /&gt;
i18n[&amp;#039;purge-link-display&amp;#039;] = format(&amp;#039;I18n/Documentation&amp;#039;, &amp;#039;purge-link-display&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;create-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;create&amp;quot; links.&lt;br /&gt;
i18n[&amp;#039;create-link-display&amp;#039;] = format(&amp;#039;I18n/Documentation&amp;#039;, &amp;#039;create-link-display&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
return i18n&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Documentation/i18n</comments>
		</item>
		<item>
			<title>モジュール:TNT</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:TNT&amp;diff=2503&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:TNT&amp;diff=2503&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:TNT&quot; title=&quot;モジュール:TNT&quot;&gt;モジュール:TNT&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&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 config = (function()&lt;br /&gt;
	local ok, res = pcall(mw.loadData, &amp;quot;Module:TNT/config&amp;quot;);&lt;br /&gt;
	return ok and res or {};&lt;br /&gt;
end)();&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local i18nDataset = &amp;#039;I18n/Module:TNT.tab&amp;#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) == &amp;#039;number&amp;#039; then&lt;br /&gt;
			params[k - 2] = mw.text.trim(v)&lt;br /&gt;
		elseif k == &amp;#039;lang&amp;#039; and v ~= &amp;#039;_&amp;#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(&amp;#039;I18n/Module:TNT&amp;#039;, &amp;#039;error_bad_msgkey&amp;#039;, &amp;#039;my-key&amp;#039;, &amp;#039;my-dataset&amp;#039;)&lt;br /&gt;
function p.format(dataset, key, ...)&lt;br /&gt;
	local checkType = require(&amp;#039;libraryUtil&amp;#039;).checkType&lt;br /&gt;
	checkType(&amp;#039;format&amp;#039;, 1, dataset, &amp;#039;string&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;format&amp;#039;, 2, key, &amp;#039;string&amp;#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(&amp;#039;es&amp;#039;, I18n/Module:TNT&amp;#039;, &amp;#039;error_bad_msgkey&amp;#039;, &amp;#039;my-key&amp;#039;, &amp;#039;my-dataset&amp;#039;)&lt;br /&gt;
function p.formatInLanguage(lang, dataset, key, ...)&lt;br /&gt;
	local checkType = require(&amp;#039;libraryUtil&amp;#039;).checkType&lt;br /&gt;
	checkType(&amp;#039;formatInLanguage&amp;#039;, 1, lang, &amp;#039;string&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;formatInLanguage&amp;#039;, 2, dataset, &amp;#039;string&amp;#039;)&lt;br /&gt;
	checkType(&amp;#039;formatInLanguage&amp;#039;, 3, key, &amp;#039;string&amp;#039;)&lt;br /&gt;
	return formatMessage(dataset, key, {...}, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Obsolete function that adds a &amp;#039;c:&amp;#039; prefix to the first param.&lt;br /&gt;
-- &amp;quot;Sandbox/Sample.tab&amp;quot; -&amp;gt; &amp;#039;c:Data:Sandbox/Sample.tab&amp;#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;
local implGetTemplateData;&lt;br /&gt;
function p.doc(frame)&lt;br /&gt;
	local dataset = sanitizeDataset(frame.args[1])&lt;br /&gt;
	local json, dataPage, categories = implGetTemplateData(nil, dataset, frame.args)&lt;br /&gt;
	return frame:extensionTag(&amp;#039;templatedata&amp;#039;, json) ..&lt;br /&gt;
		formatMessage(i18nDataset, &amp;#039;edit_doc&amp;#039;, {link(dataPage)}) ..&lt;br /&gt;
		(categories or &amp;quot;&amp;quot;);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getTemplateData(dataset)&lt;br /&gt;
	local data = implGetTemplateData(true, dataset);&lt;br /&gt;
	return data;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getTemplateDataNew(...)&lt;br /&gt;
	return implGetTemplateData(nil, ...);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function implGetTemplateData(legacy, dataset, args)&lt;br /&gt;
	-- TODO: add &amp;#039;_&amp;#039; parameter once lua starts reindexing properly for &amp;quot;all&amp;quot; languages&lt;br /&gt;
	local data, dataPage, categories = loadData(&lt;br /&gt;
		dataset, nil, not legacy and &amp;#039;TemplateData&amp;#039; or nil);&lt;br /&gt;
	local names = {}&lt;br /&gt;
	for _, field in ipairs(data.schema.fields) do&lt;br /&gt;
		table.insert(names, field.name)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local numOnly = true&lt;br /&gt;
	local params = {}&lt;br /&gt;
	local paramOrder = {}&lt;br /&gt;
	for _, row in ipairs(data.data) do&lt;br /&gt;
		local newVal = {}&lt;br /&gt;
		local name = nil&lt;br /&gt;
		for pos, columnName in ipairs(names) do&lt;br /&gt;
			if columnName == &amp;#039;name&amp;#039; then&lt;br /&gt;
				name = row[pos]&lt;br /&gt;
			else&lt;br /&gt;
				newVal[columnName] = row[pos]&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if name then&lt;br /&gt;
			if (&lt;br /&gt;
				(type(name) ~= &amp;quot;number&amp;quot;)&lt;br /&gt;
				and (&lt;br /&gt;
					(type(name) ~= &amp;quot;string&amp;quot;)&lt;br /&gt;
					or not string.match(name, &amp;quot;^%d+$&amp;quot;)&lt;br /&gt;
				)&lt;br /&gt;
			) then&lt;br /&gt;
				numOnly = false&lt;br /&gt;
			end&lt;br /&gt;
			params[name] = newVal&lt;br /&gt;
			table.insert(paramOrder, name)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Work around json encoding treating {&amp;quot;1&amp;quot;:{...}} as an [{...}]&lt;br /&gt;
	if numOnly then&lt;br /&gt;
		params[&amp;#039;zzz123&amp;#039;]=&amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local json = mw.text.jsonEncode({&lt;br /&gt;
		params=params,&lt;br /&gt;
		paramOrder=paramOrder,&lt;br /&gt;
		description=data.description,&lt;br /&gt;
		-- TODO: Store this in a dataset:&lt;br /&gt;
		format = (args and args.format or nil),&lt;br /&gt;
	})&lt;br /&gt;
&lt;br /&gt;
	if numOnly then&lt;br /&gt;
		json = string.gsub(json,&amp;#039;&amp;quot;zzz123&amp;quot;:&amp;quot;&amp;quot;,?&amp;#039;, &amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return json, dataPage, categories;&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 == &amp;#039;&amp;#039; then&lt;br /&gt;
		return nil&lt;br /&gt;
	elseif string.sub(dataset,-4) ~= &amp;#039;.tab&amp;#039; then&lt;br /&gt;
		return dataset .. &amp;#039;.tab&amp;#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, dataType)&lt;br /&gt;
	dataset = sanitizeDataset(dataset)&lt;br /&gt;
	if not dataset then&lt;br /&gt;
		error(formatMessage(i18nDataset, &amp;#039;error_no_dataset&amp;#039;, {}))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Give helpful error to thirdparties who try and copy this module.&lt;br /&gt;
	if not mw.ext or not mw.ext.data or not mw.ext.data.get then&lt;br /&gt;
		error(string.format([[&amp;#039;&amp;#039;&amp;#039;Missing JsonConfig extension, or not properly configured;&lt;br /&gt;
Cannot load https://commons.wikimedia.org/wiki/Data:%s.&lt;br /&gt;
See https://www.mediawiki.org/wiki/Extension:JsonConfig#Supporting_Wikimedia_templates&amp;#039;&amp;#039;&amp;#039;]], dataset))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local dataPage = dataset;&lt;br /&gt;
	local data, categories;&lt;br /&gt;
	if dataType == &amp;#039;TemplateData&amp;#039; then&lt;br /&gt;
		dataPage = &amp;#039;TemplateData/&amp;#039; .. dataset;&lt;br /&gt;
		data = mw.ext.data.get(dataPage, lang);&lt;br /&gt;
		if data == false then&lt;br /&gt;
			data = mw.ext.data.get(&amp;#039;Templatedata/&amp;#039; .. dataset, lang);&lt;br /&gt;
			if data ~= false then&lt;br /&gt;
				local legacyTemplateDataCategoryName = config.legacyTemplateDataCategoryName;&lt;br /&gt;
				if legacyTemplateDataCategoryName ~= false then&lt;br /&gt;
					categories = string.format(&lt;br /&gt;
						&amp;#039;[[Category:%s%s]]&amp;#039;,&lt;br /&gt;
						legacyTemplateDataCategoryName or &amp;quot;Templates using legacy global TemplateData table name&amp;quot;,&lt;br /&gt;
						config.translatableCategoryLink and mw.getCurrentFrame():callParserFunction(&amp;quot;#translation:&amp;quot;) or &amp;quot;&amp;quot;&lt;br /&gt;
					);&lt;br /&gt;
				end&lt;br /&gt;
				dataPage = &amp;#039;Templatedata/&amp;#039; .. dataset;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		data = mw.ext.data.get(dataset, lang)&lt;br /&gt;
	end&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(&amp;#039;Missing Commons dataset &amp;#039; .. i18nDataset)&lt;br /&gt;
		else&lt;br /&gt;
			error(formatMessage(i18nDataset, &amp;#039;error_bad_dataset&amp;#039;, {link(dataPage)}))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return data, dataPage, categories;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Given a dataset name, convert it to a title with the &amp;#039;commons:data:&amp;#039; prefix&lt;br /&gt;
link = function(dataset)&lt;br /&gt;
	return &amp;#039;c:Data:&amp;#039; .. mw.text.trim(dataset or &amp;#039;&amp;#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(&amp;#039;Invalid message key &amp;quot;&amp;#039; .. key .. &amp;#039;&amp;quot;&amp;#039;)&lt;br /&gt;
	else&lt;br /&gt;
		error(formatMessage(i18nDataset, &amp;#039;error_bad_msgkey&amp;#039;, {key, link(dataset)}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:TNT</comments>
		</item>
		<item>
			<title>モジュール:Documentation/config</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation/config&amp;diff=2501&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation/config&amp;diff=2501&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation/config&quot; title=&quot;モジュール:Documentation/config&quot;&gt;モジュール:Documentation/config&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&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[&amp;#039;protection-reason-edit&amp;#039;]&lt;br /&gt;
-- The protection reason for edit-protected templates to pass to&lt;br /&gt;
-- [[Module:Protection banner]].&lt;br /&gt;
cfg[&amp;#039;protection-reason-edit&amp;#039;] = &amp;#039;template&amp;#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[&amp;#039;sandbox-subpage&amp;#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[&amp;#039;sandbox-notice-image&amp;#039;]&lt;br /&gt;
-- The image displayed in the sandbox notice.&lt;br /&gt;
cfg[&amp;#039;sandbox-notice-image&amp;#039;] = &amp;#039;[[File:Sandbox.svg|50px|alt=|link=]]&amp;#039;&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-pagetype-template&amp;#039;]&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-pagetype-module&amp;#039;]&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-pagetype-other&amp;#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[&amp;#039;sandbox-notice-blurb&amp;#039;] or&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-diff-blurb&amp;#039;].&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&amp;#039;sandbox-notice-pagetype-template&amp;#039;] = &amp;#039;[[Wikipedia:テンプレートのサンドボックスとテストケース|テンプレート・サンドボックス]]ページ&amp;#039;&lt;br /&gt;
cfg[&amp;#039;sandbox-notice-pagetype-module&amp;#039;] = &amp;#039;[[Wikipedia:テンプレートのサンドボックスとテストケース|モジュール・サンドボックス]]ページ&amp;#039;&lt;br /&gt;
cfg[&amp;#039;sandbox-notice-pagetype-other&amp;#039;] = &amp;#039;サンドボックス・ページ&amp;#039;&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-blurb&amp;#039;]&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-diff-blurb&amp;#039;]&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-diff-display&amp;#039;]&lt;br /&gt;
-- Either cfg[&amp;#039;sandbox-notice-blurb&amp;#039;] or cfg[&amp;#039;sandbox-notice-diff-blurb&amp;#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[&amp;#039;sandbox-notice-pagetype-template&amp;#039;],&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-pagetype-module&amp;#039;] or cfg[&amp;#039;sandbox-notice-pagetype-other&amp;#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[&amp;#039;sandbox-notice-compare-link-display&amp;#039;].&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&amp;#039;sandbox-notice-blurb&amp;#039;] = &amp;#039;これは$2の$1です。&amp;#039;&lt;br /&gt;
cfg[&amp;#039;sandbox-notice-diff-blurb&amp;#039;] = &amp;#039;これは$2 ($3)の$1です。&amp;#039;&lt;br /&gt;
cfg[&amp;#039;sandbox-notice-compare-link-display&amp;#039;] = &amp;#039;差分&amp;#039;&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-testcases-blurb&amp;#039;]&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-testcases-link-display&amp;#039;]&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-testcases-run-blurb&amp;#039;]&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-testcases-run-link-display&amp;#039;]&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-testcases-blurb&amp;#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[&amp;#039;sandbox-notice-testcases-link-display&amp;#039;] is the display value for that link.&lt;br /&gt;
-- cfg[&amp;#039;sandbox-notice-testcases-run-blurb&amp;#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[&amp;#039;sandbox-notice-testcases-run-link-display&amp;#039;] is the display value for the link to run the test&lt;br /&gt;
-- cases.&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&amp;#039;sandbox-notice-testcases-blurb&amp;#039;] = &amp;#039;対応する$1・サブページもご確認ください。&amp;#039;&lt;br /&gt;
cfg[&amp;#039;sandbox-notice-testcases-link-display&amp;#039;] = &amp;#039;テストケース&amp;#039;&lt;br /&gt;
cfg[&amp;#039;sandbox-notice-testcases-run-blurb&amp;#039;] = &amp;#039;対応する$1・サブページ ($2) もご確認ください。&amp;#039;&lt;br /&gt;
cfg[&amp;#039;sandbox-notice-testcases-run-link-display&amp;#039;] = &amp;#039;実行&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;sandbox-category&amp;#039;]&lt;br /&gt;
-- A category to add to all template sandboxes.&lt;br /&gt;
cfg[&amp;#039;sandbox-category&amp;#039;] = &amp;#039;テンプレート・サンドボックス&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Start box configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;documentation-icon-wikitext&amp;#039;]&lt;br /&gt;
-- The wikitext for the icon shown at the top of the template.&lt;br /&gt;
cfg[&amp;#039;documentation-icon-wikitext&amp;#039;] = &amp;#039;[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;template-namespace-heading&amp;#039;]&lt;br /&gt;
-- The heading shown in the template namespace.&lt;br /&gt;
cfg[&amp;#039;template-namespace-heading&amp;#039;] = &amp;#039;テンプレートの解説&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;module-namespace-heading&amp;#039;]&lt;br /&gt;
-- The heading shown in the module namespace.&lt;br /&gt;
cfg[&amp;#039;module-namespace-heading&amp;#039;] = &amp;#039;モジュールの解説&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;file-namespace-heading&amp;#039;]&lt;br /&gt;
-- The heading shown in the file namespace.&lt;br /&gt;
cfg[&amp;#039;file-namespace-heading&amp;#039;] = &amp;#039;要約&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;other-namespaces-heading&amp;#039;]&lt;br /&gt;
-- The heading shown in other namespaces.&lt;br /&gt;
cfg[&amp;#039;other-namespaces-heading&amp;#039;] = &amp;#039;解説&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;view-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;view&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;view-link-display&amp;#039;] = &amp;#039;表示&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;edit-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;edit&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;edit-link-display&amp;#039;] = &amp;#039;編集&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;history-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;history&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;history-link-display&amp;#039;] = &amp;#039;履歴&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;purge-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;purge&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;purge-link-display&amp;#039;] = &amp;#039;キャッシュを破棄&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;create-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;create&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;create-link-display&amp;#039;] = &amp;#039;作成&amp;#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[&amp;#039;transcluded-from-blurb&amp;#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[&amp;#039;transcluded-from-blurb&amp;#039;] = &amp;#039;この[[Help:テンプレートの説明文|解説]]は、$1から[[Help:テンプレート#テンプレートとは|呼び出されて]]います。&amp;#039;&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&amp;#039;create-module-doc-blurb&amp;#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[&amp;#039;module-preload&amp;#039;] and the&lt;br /&gt;
-- display cfg[&amp;#039;create-link-display&amp;#039;].&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&amp;#039;create-module-doc-blurb&amp;#039;] = &amp;#039;この[[Wikipedia:Lua|Scribuntoモジュール]]の解説ページを$1することができます。&amp;#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[&amp;#039;experiment-blurb-template&amp;#039;]&lt;br /&gt;
-- cfg[&amp;#039;experiment-blurb-module&amp;#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&amp;#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[&amp;#039;experiment-blurb-template&amp;#039;] and cfg[&amp;#039;experiment-blurb-module&amp;#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[&amp;#039;sandbox-link-display&amp;#039;] (cfg[&amp;#039;sandbox-edit-link-display&amp;#039;] | cfg[&amp;#039;compare-link-display&amp;#039;])&lt;br /&gt;
-- &lt;br /&gt;
-- If the sandbox doesn&amp;#039;t exist, it is in the format:&lt;br /&gt;
--&lt;br /&gt;
--     cfg[&amp;#039;sandbox-link-display&amp;#039;] (cfg[&amp;#039;sandbox-create-link-display&amp;#039;] | cfg[&amp;#039;mirror-link-display&amp;#039;])&lt;br /&gt;
-- &lt;br /&gt;
-- The link for cfg[&amp;#039;sandbox-create-link-display&amp;#039;] link preloads the page with cfg[&amp;#039;template-sandbox-preload&amp;#039;]&lt;br /&gt;
-- or cfg[&amp;#039;module-sandbox-preload&amp;#039;], depending on the current namespace. The link for cfg[&amp;#039;mirror-link-display&amp;#039;]&lt;br /&gt;
-- loads a default edit summary of cfg[&amp;#039;mirror-edit-summary&amp;#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[&amp;#039;testcases-link-display&amp;#039;] (cfg[&amp;#039;testcases-edit-link-display&amp;#039;] | cfg[&amp;#039;testcases-run-link-display&amp;#039;])&lt;br /&gt;
--&lt;br /&gt;
-- If the test cases page doesn&amp;#039;t exist, it is in the format:&lt;br /&gt;
-- &lt;br /&gt;
--     cfg[&amp;#039;testcases-link-display&amp;#039;] (cfg[&amp;#039;testcases-create-link-display&amp;#039;])&lt;br /&gt;
--&lt;br /&gt;
-- If the test cases page doesn&amp;#039;t exist, the link for cfg[&amp;#039;testcases-create-link-display&amp;#039;] preloads the&lt;br /&gt;
-- page with cfg[&amp;#039;template-testcases-preload&amp;#039;] or cfg[&amp;#039;module-testcases-preload&amp;#039;], depending on the current&lt;br /&gt;
-- namespace.&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&amp;#039;experiment-blurb-template&amp;#039;] = &amp;quot;編集者は、このテンプレートを$1と$2で試すことができます。（[[Wikipedia:テンプレートのサンドボックスとテストケース|解説]]）&amp;quot;&lt;br /&gt;
cfg[&amp;#039;experiment-blurb-module&amp;#039;] = &amp;quot;編集者は、このモジュールを$1と$2で試すことができます。（[[Wikipedia:テンプレートのサンドボックスとテストケース|解説]]）&amp;quot;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Sandbox link configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;sandbox-subpage&amp;#039;]&lt;br /&gt;
-- The name of the template subpage typically used for sandboxes.&lt;br /&gt;
cfg[&amp;#039;sandbox-subpage&amp;#039;] = &amp;#039;sandbox&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;template-sandbox-preload&amp;#039;]&lt;br /&gt;
-- Preload file for template sandbox pages.&lt;br /&gt;
cfg[&amp;#039;template-sandbox-preload&amp;#039;] = &amp;#039;Template:Documentation/preload-sandbox&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;module-sandbox-preload&amp;#039;]&lt;br /&gt;
-- Preload file for Lua module sandbox pages.&lt;br /&gt;
cfg[&amp;#039;module-sandbox-preload&amp;#039;] = &amp;#039;Template:Documentation/preload-module-sandbox&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;sandbox-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;sandbox&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;sandbox-link-display&amp;#039;] = &amp;#039;サンドボックス&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;sandbox-edit-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for sandbox &amp;quot;edit&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;sandbox-edit-link-display&amp;#039;] = &amp;#039;編集&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;sandbox-create-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for sandbox &amp;quot;create&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;sandbox-create-link-display&amp;#039;] = &amp;#039;作成&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;compare-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;compare&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;compare-link-display&amp;#039;] = &amp;#039;差分&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;mirror-edit-summary&amp;#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[&amp;#039;mirror-edit-summary&amp;#039;] = &amp;#039;$1のサンドボックスバージョンを作成&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;mirror-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;mirror&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;mirror-link-display&amp;#039;] = &amp;#039;複製&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;mirror-link-preload&amp;#039;]&lt;br /&gt;
-- The page to preload when a user clicks the &amp;quot;mirror&amp;quot; link.&lt;br /&gt;
cfg[&amp;#039;mirror-link-preload&amp;#039;] = &amp;#039;Template:Documentation/mirror&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Test cases link configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;testcases-subpage&amp;#039;]&lt;br /&gt;
-- The name of the template subpage typically used for test cases.&lt;br /&gt;
cfg[&amp;#039;testcases-subpage&amp;#039;] = &amp;#039;testcases&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;template-testcases-preload&amp;#039;]&lt;br /&gt;
-- Preload file for template test cases pages.&lt;br /&gt;
cfg[&amp;#039;template-testcases-preload&amp;#039;] = &amp;#039;Template:Documentation/preload-testcases&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;module-testcases-preload&amp;#039;]&lt;br /&gt;
-- Preload file for Lua module test cases pages.&lt;br /&gt;
cfg[&amp;#039;module-testcases-preload&amp;#039;] = &amp;#039;Template:Documentation/preload-module-testcases&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;testcases-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for &amp;quot;testcases&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;testcases-link-display&amp;#039;] = &amp;#039;テストケース&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;testcases-edit-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for test cases &amp;quot;edit&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;testcases-edit-link-display&amp;#039;] = &amp;#039;編集&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;testcases-run-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for test cases &amp;quot;run&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;testcases-run-link-display&amp;#039;] = &amp;#039;作動&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;testcases-create-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for test cases &amp;quot;create&amp;quot; links.&lt;br /&gt;
cfg[&amp;#039;testcases-create-link-display&amp;#039;] = &amp;#039;作成&amp;#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[&amp;#039;add-categories-blurb&amp;#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[&amp;#039;doc-link-display&amp;#039;].&lt;br /&gt;
--]]&lt;br /&gt;
cfg[&amp;#039;add-categories-blurb&amp;#039;] = &amp;#039;$1のサブページにカテゴリを追加してください。&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;doc-link-display&amp;#039;]&lt;br /&gt;
-- The text to display when linking to the /doc subpage.&lt;br /&gt;
cfg[&amp;#039;doc-link-display&amp;#039;] = &amp;#039;/doc&amp;#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[&amp;#039;subpages-blurb&amp;#039;]&lt;br /&gt;
-- The &amp;quot;Subpages of this template&amp;quot; blurb. $1 is a link to the main template&amp;#039;s subpages with a&lt;br /&gt;
-- display value of cfg[&amp;#039;subpages-link-display&amp;#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[&amp;#039;subpages-blurb&amp;#039;] = &amp;#039;$1&amp;#039;&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- cfg[&amp;#039;subpages-link-display&amp;#039;]&lt;br /&gt;
-- The text to display for the &amp;quot;subpages of this page&amp;quot; link. $1 is cfg[&amp;#039;template-pagetype&amp;#039;],&lt;br /&gt;
-- cfg[&amp;#039;module-pagetype&amp;#039;] or cfg[&amp;#039;default-pagetype&amp;#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[&amp;#039;subpages-link-display&amp;#039;] = &amp;#039;この$1のサブページ一覧。&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;template-pagetype&amp;#039;]&lt;br /&gt;
-- The pagetype to display for template pages.&lt;br /&gt;
cfg[&amp;#039;template-pagetype&amp;#039;] = &amp;#039;テンプレート&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;module-pagetype&amp;#039;]&lt;br /&gt;
-- The pagetype to display for Lua module pages.&lt;br /&gt;
cfg[&amp;#039;module-pagetype&amp;#039;] = &amp;#039;モジュール&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;default-pagetype&amp;#039;]&lt;br /&gt;
-- The pagetype to display for pages other than templates or Lua modules.&lt;br /&gt;
cfg[&amp;#039;default-pagetype&amp;#039;] = &amp;#039;ページ&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Doc link configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;doc-subpage&amp;#039;]&lt;br /&gt;
-- The name of the subpage typically used for documentation pages.&lt;br /&gt;
cfg[&amp;#039;doc-subpage&amp;#039;] = &amp;#039;doc&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;file-docpage-preload&amp;#039;]&lt;br /&gt;
-- Preload file for documentation page in the file namespace.&lt;br /&gt;
cfg[&amp;#039;file-docpage-preload&amp;#039;] = &amp;#039;Template:Documentation/preload-filespace&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;docpage-preload&amp;#039;]&lt;br /&gt;
-- Preload file for template documentation pages in all namespaces.&lt;br /&gt;
cfg[&amp;#039;docpage-preload&amp;#039;] = &amp;#039;Template:Documentation/preload&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;module-preload&amp;#039;]&lt;br /&gt;
-- Preload file for Lua module documentation pages.&lt;br /&gt;
cfg[&amp;#039;module-preload&amp;#039;] = &amp;#039;Template:Documentation/preload-module-doc&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- Print version configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;print-subpage&amp;#039;]&lt;br /&gt;
-- The name of the template subpage used for print versions.&lt;br /&gt;
cfg[&amp;#039;print-subpage&amp;#039;] = &amp;#039;Print&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;print-link-display&amp;#039;]&lt;br /&gt;
-- The text to display when linking to the /Print subpage.&lt;br /&gt;
cfg[&amp;#039;print-link-display&amp;#039;] = &amp;#039;/Print&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;print-blurb&amp;#039;]&lt;br /&gt;
-- Text to display if a /Print subpage exists. $1 is a link to the subpage with&lt;br /&gt;
-- a display value of cfg[&amp;#039;print-link-display&amp;#039;].&lt;br /&gt;
cfg[&amp;#039;print-blurb&amp;#039;] = &amp;#039;$1にこのテンプレートは[[:en:Help:Books/for experts#Improving the book layout|印刷用バージョンがあります]]。&amp;#039;&lt;br /&gt;
	.. &amp;#039;もしこのテンプレートを更新した時は、印刷用バージョンも更新してください。&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;display-print-category&amp;#039;]&lt;br /&gt;
-- Set to true to enable output of cfg[&amp;#039;print-category&amp;#039;] if a /Print subpage exists.&lt;br /&gt;
-- This should be a boolean value (either true or false).&lt;br /&gt;
cfg[&amp;#039;display-print-category&amp;#039;] = true&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;print-category&amp;#039;]&lt;br /&gt;
-- Category to output if cfg[&amp;#039;display-print-category&amp;#039;] is set to true, and a /Print subpage exists.&lt;br /&gt;
cfg[&amp;#039;print-category&amp;#039;] = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- HTML and CSS configuration&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;templatestyles&amp;#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[&amp;#039;templatestyles&amp;#039;] = &amp;#039;Module:Documentation/styles.css&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;container&amp;#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[&amp;#039;container&amp;#039;] = &amp;#039;documentation-container&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;main-div-classes&amp;#039;]&lt;br /&gt;
-- Classes added to the main HTML &amp;quot;div&amp;quot; tag.&lt;br /&gt;
cfg[&amp;#039;main-div-classes&amp;#039;] = &amp;#039;documentation&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;main-div-heading-class&amp;#039;]&lt;br /&gt;
-- Class for the main heading for templates and modules and assoc. talk spaces&lt;br /&gt;
cfg[&amp;#039;main-div-heading-class&amp;#039;] = &amp;#039;documentation-heading&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;start-box-class&amp;#039;]&lt;br /&gt;
-- Class for the start box&lt;br /&gt;
cfg[&amp;#039;start-box-class&amp;#039;] = &amp;#039;documentation-startbox&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;start-box-link-classes&amp;#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[&amp;#039;start-box-link-classes&amp;#039;] = &amp;#039;mw-editsection-like plainlinks&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;end-box-class&amp;#039;]&lt;br /&gt;
-- Class for the end box.&lt;br /&gt;
cfg[&amp;#039;end-box-class&amp;#039;] = &amp;#039;documentation-metadata&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;end-box-plainlinks&amp;#039;]&lt;br /&gt;
-- Plainlinks&lt;br /&gt;
cfg[&amp;#039;end-box-plainlinks&amp;#039;] = &amp;#039;plainlinks&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;toolbar-class&amp;#039;]&lt;br /&gt;
-- Class added for toolbar links.&lt;br /&gt;
cfg[&amp;#039;toolbar-class&amp;#039;] = &amp;#039;documentation-toolbar&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;clear&amp;#039;]&lt;br /&gt;
-- Just used to clear things.&lt;br /&gt;
cfg[&amp;#039;clear&amp;#039;] = &amp;#039;documentation-clear&amp;#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[&amp;#039;display-strange-usage-category&amp;#039;]&lt;br /&gt;
-- Set to true to enable output of cfg[&amp;#039;strange-usage-category&amp;#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[&amp;#039;display-strange-usage-category&amp;#039;] = true&lt;br /&gt;
&lt;br /&gt;
-- cfg[&amp;#039;strange-usage-category&amp;#039;]&lt;br /&gt;
-- Category to output if cfg[&amp;#039;display-strange-usage-category&amp;#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[&amp;#039;strange-usage-category&amp;#039;] = &amp;#039;((documentation))の異常な使用があるページ&amp;#039;&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
-- End configuration&lt;br /&gt;
--&lt;br /&gt;
-- Don&amp;#039;t edit anything below this line.&lt;br /&gt;
----------------------------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
return cfg&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Documentation/config</comments>
		</item>
		<item>
			<title>モジュール:Documentation</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation&amp;diff=2499&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation&amp;diff=2499&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation&quot; title=&quot;モジュール:Documentation&quot;&gt;モジュール:Documentation&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;a href=&quot;https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Documentation&amp;amp;diff=2499&quot;&gt;差分を表示&lt;/a&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Documentation</comments>
		</item>
		<item>
			<title>テンプレート:IsDocSubpage</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:IsDocSubpage&amp;diff=2497&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:IsDocSubpage&amp;diff=2497&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:IsDocSubpage&quot; title=&quot;テンプレート:IsDocSubpage&quot;&gt;テンプレート:IsDocSubpage&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#ifexpr: (&lt;br /&gt;
	{{#ifeq:{{lc:{{SUBPAGENAME}}}}|{{lc:{{{override|doc}}}}}|1|0}} or (&lt;br /&gt;
		{{#ifeq:{{lc:{{#titleparts:{{FULLPAGENAME}}|-1|-2}}}}|{{lc:{{{override|doc}}}}}|1|0}}&lt;br /&gt;
		and {{#if:{{#translation:}}|1|0}}&lt;br /&gt;
	)&lt;br /&gt;
)&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{{true|1}}}&amp;lt;!--&lt;br /&gt;
	--&amp;gt;|{{{false|}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;/includeonly&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage and interwikis in Wikidata, not here! --&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:IsDocSubpage</comments>
		</item>
		<item>
			<title>テンプレート:Documentation subpage/en</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation_subpage/en&amp;diff=2495&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation_subpage/en&amp;diff=2495&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation_subpage/en&quot; title=&quot;テンプレート:Documentation subpage/en&quot;&gt;テンプレート:Documentation subpage/en&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#switch:&lt;br /&gt;
| =&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
 --&amp;gt;{{#if:{{IsDocSubpage|override={{{override|doc}}}|false=}}&lt;br /&gt;
     | &amp;lt;!--(this template has been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#ifeq:{{{doc-notice|show}}} |show&lt;br /&gt;
          | {{Mbox&lt;br /&gt;
             | type = notice&lt;br /&gt;
             | style = margin-bottom:1.0em;&lt;br /&gt;
             | image = [[File:Codex icon book color-base.svg|40px|alt=|class=skin-invert]]&lt;br /&gt;
             | text =&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;This is a [[w:Wikipedia:Template documentation|documentation]] [[Special:MyLanguage/Help:Subpages|subpage]] for {{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}.&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{text2|}}}{{{text1|}}}&lt;br /&gt;
  |It contains usage information, [[Special:MyLanguage/Help:Categories|categories]] and other content that is not part of the original {{{text2|{{{text1}}}}}}.&lt;br /&gt;
  |It contains usage information, [[Special:MyLanguage/Help:Categories|categories]] and other content that is not part of the original {{SUBJECTSPACE}} page.&lt;br /&gt;
  }}&lt;br /&gt;
            }}&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#if:{{{inhibit|}}} |&amp;lt;!--(don&amp;#039;t categorize)--&amp;gt;&lt;br /&gt;
          |   &amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
               --&amp;gt;{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}&lt;br /&gt;
                   | [[Category:{{#switch:{{SUBJECTSPACE}}&lt;br /&gt;
                           | Template | Project = Template&lt;br /&gt;
                           | Module   = Module&lt;br /&gt;
                           | User     = User&lt;br /&gt;
                           | #default = MediaWiki&lt;br /&gt;
                       }} documentation pages{{#translation:}}]]&lt;br /&gt;
                   | [[Category:Documentation subpages without corresponding pages{{#translation:}}]]&lt;br /&gt;
                  }}&amp;lt;!--&lt;br /&gt;
           --&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
(completing initial #ifeq: at start of template:)&lt;br /&gt;
--&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
     | &amp;lt;!--(this template has not been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
    }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
| #default=&lt;br /&gt;
  {{#invoke:Template translation|renderTranslatedTemplate|template=Template:Documentation subpage|noshift=1|uselang={{int:lang}}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Use this template on Template Documentation subpage (/doc).&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
*{{tl|Documentation}}&lt;br /&gt;
*{{tl|tl}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Documentation_subpage/en</comments>
		</item>
		<item>
			<title>テンプレート:Documentation subpage</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation_subpage&amp;diff=2493&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation_subpage&amp;diff=2493&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation_subpage&quot; title=&quot;テンプレート:Documentation subpage&quot;&gt;テンプレート:Documentation subpage&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#switch:&amp;lt;translate&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
| =&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
 --&amp;gt;{{#if:{{IsDocSubpage|override={{{override|doc}}}|false=}}&lt;br /&gt;
     | &amp;lt;!--(this template has been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#ifeq:{{{doc-notice|show}}} |show&lt;br /&gt;
          | {{Mbox&lt;br /&gt;
             | type = notice&lt;br /&gt;
             | style = margin-bottom:1.0em;&lt;br /&gt;
             | image = [[File:Codex icon book color-base.svg|40px|alt=|class=skin-invert]]&lt;br /&gt;
             | text =&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; This is a [[w:Wikipedia:Template documentation|documentation]] [[&amp;lt;tvar name=2&amp;gt;Special:MyLanguage/Help:Subpages&amp;lt;/tvar&amp;gt;|subpage]] for &amp;lt;tvar name=1&amp;gt;{{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#if:{{{text2|}}}{{{text1|}}}&lt;br /&gt;
  |&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; It contains usage information, [[&amp;lt;tvar name=7&amp;gt;Special:MyLanguage/Help:Categories&amp;lt;/tvar&amp;gt;|categories]] and other content that is not part of the original &amp;lt;tvar name=1&amp;gt;{{{text2|{{{text1}}}}}}&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
  |&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt; It contains usage information, [[&amp;lt;tvar name=7&amp;gt;Special:MyLanguage/Help:Categories&amp;lt;/tvar&amp;gt;|categories]] and other content that is not part of the original &amp;lt;tvar name=1&amp;gt;{{SUBJECTSPACE}}&amp;lt;/tvar&amp;gt; page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
  }}&lt;br /&gt;
            }}&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
      --&amp;gt;{{#if:{{{inhibit|}}} |&amp;lt;!--(don&amp;#039;t categorize)--&amp;gt;&lt;br /&gt;
          |   &amp;lt;includeonly&amp;gt;&amp;lt;!--&lt;br /&gt;
               --&amp;gt;{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}&lt;br /&gt;
                   | [[Category:{{#switch:{{SUBJECTSPACE}}&lt;br /&gt;
                           | Template | Project = Template&lt;br /&gt;
                           | Module   = Module&lt;br /&gt;
                           | User     = User&lt;br /&gt;
                           | #default = MediaWiki&lt;br /&gt;
                       }} documentation pages{{#translation:}}]]&lt;br /&gt;
                   | [[Category:Documentation subpages without corresponding pages{{#translation:}}]]&lt;br /&gt;
                  }}&amp;lt;!--&lt;br /&gt;
           --&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
         }}&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
(completing initial #ifeq: at start of template:)&lt;br /&gt;
--&amp;gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
     | &amp;lt;!--(this template has not been transcluded on a /doc or /{{{override}}} page)--&amp;gt;&lt;br /&gt;
    }}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
| #default=&lt;br /&gt;
  {{#invoke:Template translation|renderTranslatedTemplate|template=Template:Documentation subpage|noshift=1|uselang={{int:lang}}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage == &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Use this template on Template Documentation subpage (/doc).&lt;br /&gt;
&lt;br /&gt;
== See also == &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*{{tl|Documentation}}&lt;br /&gt;
*{{tl|tl}}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Documentation_subpage</comments>
		</item>
		<item>
			<title>テンプレート:Translatable/en</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Translatable/en&amp;diff=2491&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Translatable/en&amp;diff=2491&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Translatable/en&quot; title=&quot;テンプレート:Translatable/en&quot;&gt;テンプレート:Translatable/en&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#ifeq:{{pagelang|{{{1|{{FULLPAGENAME}}}}}}}|&lt;br /&gt;
|{{{1|{{FULLPAGENAME}}}}}&lt;br /&gt;
|{{#invoke:String|sub|{{{1|{{FULLPAGENAME}}}}}&lt;br /&gt;
  |1&lt;br /&gt;
  |{{#expr:{{#invoke:String|len|{{{1|{{FULLPAGENAME}}}}}}}-{{#invoke:String|len|{{pagelang|{{{1|{{FULLPAGENAME}}}}}}}}}-1}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
{{Lua|Module:String}}&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
* {{tlx|translatable}}&lt;br /&gt;
{{translatable}}&lt;br /&gt;
* {{tlx|translatable|2=Page name}}&lt;br /&gt;
{{translatable|1=Page name}}&lt;br /&gt;
* {{tlx|translatable|2=Page name/{{PAGELANGUAGE}} }}&lt;br /&gt;
{{translatable|1=Page name/{{PAGELANGUAGE}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Internationalization templates{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Translatable/en</comments>
		</item>
		<item>
			<title>テンプレート:Uses TemplateStyles</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Uses_TemplateStyles&amp;diff=2489&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Uses_TemplateStyles&amp;diff=2489&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Uses_TemplateStyles&quot; title=&quot;テンプレート:Uses TemplateStyles&quot;&gt;テンプレート:Uses TemplateStyles&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#invoke:Uses TemplateStyles|main}}&amp;lt;/includeonly&amp;gt;&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
{{Uses TemplateStyles|Template:Uses TemplateStyles/example.css|nocat=true}}&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;!-- Add categories to the /doc subpage and interwikis in Wikidata, not here! --&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Uses_TemplateStyles</comments>
		</item>
		<item>
			<title>テンプレート:Documentation/en</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation/en&amp;diff=2487&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation/en&amp;diff=2487&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation/en&quot; title=&quot;テンプレート:Documentation/en&quot;&gt;テンプレート:Documentation/en&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
{{Lua|Module:Documentation}}&lt;br /&gt;
This template automatically displays a documentation box like the one you are seeing now, of which the content is sometimes transcluded from another page.&lt;br /&gt;
It is intended for pages which are [[Special:MyLanguage/Help:Transclusion|transcluded]] in other pages, i.e. templates, whether in the template namespace or not.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Customising display ===&lt;br /&gt;
&lt;br /&gt;
Overrides exist to customise the output in special cases:&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;documentation{{!}}&amp;#039;&amp;#039;&amp;#039;heading&amp;#039;&amp;#039;&amp;#039;=&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt; - change the text of the &amp;quot;documentation&amp;quot; heading. If this is set to blank, the entire heading line (including the first [edit] link) will also disappear.&lt;br /&gt;
&lt;br /&gt;
== Rationale ==&lt;br /&gt;
This template allows any page to use any documentation page, and makes it possible to protect templates while allowing anyone to edit the template&amp;#039;s documentation and categories.&lt;br /&gt;
It also reduces server resources by circumventing a [[w:Wikipedia:Template limits|technical limitation of templates]] (see a [[:en:Special:Diff/69888944|developer&amp;#039;s explanation]]).&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[w:Template:Documentation subpage]]&lt;br /&gt;
* {{tim|Documentation}}&lt;br /&gt;
* [[w:Wikipedia:Template documentation]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Formatting templates{{#translation:}}|Template documentation]]&lt;br /&gt;
[[Category:Template documentation{{#translation:}}| ]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#if:{{{content|}}}|&lt;br /&gt;
[[Category:Template documentation pages{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Documentation/en</comments>
		</item>
		<item>
			<title>テンプレート:Documentation</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation&amp;diff=2485&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation&amp;diff=2485&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Documentation&quot; title=&quot;テンプレート:Documentation&quot;&gt;テンプレート:Documentation&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
{{Lua|Module:Documentation}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt; This template automatically displays a documentation box like the one you are seeing now, of which the content is sometimes transcluded from another page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; It is intended for pages which are [[&amp;lt;tvar name=1&amp;gt;Special:MyLanguage/Help:Transclusion&amp;lt;/tvar&amp;gt;|transcluded]] in other pages, i.e. templates, whether in the template namespace or not.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Customising display === &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Overrides exist to customise the output in special cases:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* &amp;lt;nowiki&amp;gt;{{&amp;lt;/nowiki&amp;gt;documentation{{!}}&amp;#039;&amp;#039;&amp;#039;heading&amp;#039;&amp;#039;&amp;#039;=&amp;lt;nowiki&amp;gt;}}&amp;lt;/nowiki&amp;gt; - &amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; change the text of the &amp;quot;documentation&amp;quot; heading.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt; If this is set to blank, the entire heading line (including the first [edit] link) will also disappear.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Rationale == &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt; This template allows any page to use any documentation page, and makes it possible to protect templates while allowing anyone to edit the template&amp;#039;s documentation and categories.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; It also reduces server resources by circumventing a [[w:Wikipedia:Template limits|technical limitation of templates]] (see a [[&amp;lt;tvar name=1&amp;gt;:en:Special:Diff/69888944&amp;lt;/tvar&amp;gt;|developer&amp;#039;s explanation]]).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== See also == &amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt; [[w:Template:Documentation subpage]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tim|Documentation}}&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; [[w:Wikipedia:Template documentation]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Formatting templates{{#translation:}}|Template documentation]]&lt;br /&gt;
[[Category:Template documentation{{#translation:}}| ]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;{{#if:{{{content|}}}|&lt;br /&gt;
[[Category:Template documentation pages{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Documentation</comments>
		</item>
		<item>
			<title>モジュール:Message box/configuration</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Message_box/configuration&amp;diff=2483&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Message_box/configuration&amp;diff=2483&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Message_box/configuration&quot; title=&quot;モジュール:Message box/configuration&quot;&gt;モジュール:Message box/configuration&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&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 = &amp;#039;ambox-speedy&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox warning pn.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &amp;#039;ambox-delete&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox warning pn.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &amp;#039;ambox-content&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox important.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &amp;#039;ambox-style&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Edit-clear.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &amp;#039;ambox-move&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Merge-split-transwiki default.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &amp;#039;ambox-protection&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Padlock-silver-medium.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &amp;#039;ambox-notice&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Information icon4.svg&amp;#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default                     = &amp;#039;notice&amp;#039;,&lt;br /&gt;
		allowBlankParams            = {&amp;#039;talk&amp;#039;, &amp;#039;sect&amp;#039;, &amp;#039;date&amp;#039;, &amp;#039;issue&amp;#039;, &amp;#039;fix&amp;#039;, &amp;#039;subst&amp;#039;, &amp;#039;hidden&amp;#039;},&lt;br /&gt;
		allowSmall                  = true,&lt;br /&gt;
		smallParam                  = &amp;#039;left&amp;#039;,&lt;br /&gt;
		smallClass                  = &amp;#039;mbox-small-left&amp;#039;,&lt;br /&gt;
		substCheck                  = true,&lt;br /&gt;
		classes                     = {--[[&amp;#039;metadata&amp;#039;,]] &amp;#039;ambox&amp;#039;},&lt;br /&gt;
		imageEmptyCell              = true,&lt;br /&gt;
		imageCheckBlank             = true,&lt;br /&gt;
		imageSmallSize              = &amp;#039;20x20px&amp;#039;,&lt;br /&gt;
		imageCellDiv                = true,&lt;br /&gt;
		useCollapsibleTextFields    = true,&lt;br /&gt;
		imageRightNone              = true,&lt;br /&gt;
		sectionDefault              = &amp;#039;記事&amp;#039;,&lt;br /&gt;
		allowMainspaceCategories    = true,&lt;br /&gt;
		templateCategory            = &amp;#039;記事メッセージボックス&amp;#039;,&lt;br /&gt;
	        templateCategoryRequireName = true,&lt;br /&gt;
		templateErrorCategory       = &amp;#039;パラメータ指定の無い記事メッセージボックス&amp;#039;,&lt;br /&gt;
		templateErrorParamsToCheck  = {&amp;#039;issue&amp;#039;, &amp;#039;fix&amp;#039;, &amp;#039;subst&amp;#039;},&lt;br /&gt;
		templatestyles              = &amp;#039;Module:Message box/ambox.css&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	cmbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &amp;#039;cmbox-speedy&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox warning pn.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &amp;#039;cmbox-delete&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox warning pn.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &amp;#039;cmbox-content&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox important.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &amp;#039;cmbox-style&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Edit-clear.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &amp;#039;cmbox-move&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Merge-split-transwiki default.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &amp;#039;cmbox-protection&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Padlock-silver-medium.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &amp;#039;cmbox-notice&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Information icon4.svg&amp;#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &amp;#039;notice&amp;#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&amp;#039;cmbox&amp;#039;},&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		templatestyles       = &amp;#039;Module:Message box/cmbox.css&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	fmbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			warning = {&lt;br /&gt;
				class = &amp;#039;fmbox-warning&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox warning pn.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			editnotice = {&lt;br /&gt;
				class = &amp;#039;fmbox-editnotice&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Information icon4.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			system = {&lt;br /&gt;
				class = &amp;#039;fmbox-system&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Information icon4.svg&amp;#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &amp;#039;system&amp;#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&amp;#039;fmbox&amp;#039;},&lt;br /&gt;
		imageEmptyCell       = false,&lt;br /&gt;
		imageRightNone       = false,&lt;br /&gt;
		templatestyles       = &amp;#039;Module:Message box/fmbox.css&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	imbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &amp;#039;imbox-speedy&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox warning pn.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &amp;#039;imbox-delete&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox warning pn.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &amp;#039;imbox-content&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox important.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &amp;#039;imbox-style&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Edit-clear.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &amp;#039;imbox-move&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Merge-split-transwiki default.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &amp;#039;imbox-protection&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Padlock-silver-medium.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			license = {&lt;br /&gt;
				class = &amp;#039;imbox-license licensetpl&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Imbox license.png&amp;#039; -- @todo We need an SVG version of this&lt;br /&gt;
			},&lt;br /&gt;
			featured = {&lt;br /&gt;
				class = &amp;#039;imbox-featured&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Cscr-featured.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &amp;#039;imbox-notice&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Information icon4.svg&amp;#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &amp;#039;notice&amp;#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&amp;#039;imbox&amp;#039;},&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		below                = true,&lt;br /&gt;
		templateCategory     = &amp;#039;ファイルメッセージボックス&amp;#039;,&lt;br /&gt;
		templatestyles       = &amp;#039;Module:Message box/imbox.css&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	ombox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &amp;#039;ombox-speedy&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox warning pn.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &amp;#039;ombox-delete&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox warning pn.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &amp;#039;ombox-content&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox important.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &amp;#039;ombox-style&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Edit-clear.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &amp;#039;ombox-move&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Merge-split-transwiki default.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &amp;#039;ombox-protection&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Padlock-silver-medium.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &amp;#039;ombox-notice&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Information icon4.svg&amp;#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &amp;#039;notice&amp;#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&amp;#039;ombox&amp;#039;},&lt;br /&gt;
		allowSmall           = true,&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		imageRightNone       = true,&lt;br /&gt;
		templatestyles       = &amp;#039;Module:Message box/ombox.css&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	&lt;br /&gt;
	tmbox = {&lt;br /&gt;
		types = {&lt;br /&gt;
			speedy = {&lt;br /&gt;
				class = &amp;#039;tmbox-speedy&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox warning pn.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			delete = {&lt;br /&gt;
				class = &amp;#039;tmbox-delete&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox warning pn.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			content = {&lt;br /&gt;
				class = &amp;#039;tmbox-content&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Ambox important.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			style = {&lt;br /&gt;
				class = &amp;#039;tmbox-style&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Edit-clear.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			move = {&lt;br /&gt;
				class = &amp;#039;tmbox-move&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Merge-split-transwiki default.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			protection = {&lt;br /&gt;
				class = &amp;#039;tmbox-protection&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Padlock-silver-medium.svg&amp;#039;&lt;br /&gt;
			},&lt;br /&gt;
			notice = {&lt;br /&gt;
				class = &amp;#039;tmbox-notice&amp;#039;,&lt;br /&gt;
				image = &amp;#039;Information icon4.svg&amp;#039;&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		default              = &amp;#039;notice&amp;#039;,&lt;br /&gt;
		showInvalidTypeError = true,&lt;br /&gt;
		classes              = {&amp;#039;tmbox&amp;#039;},&lt;br /&gt;
		allowSmall           = true,&lt;br /&gt;
		imageRightNone       = true,&lt;br /&gt;
		imageEmptyCell       = true,&lt;br /&gt;
		templateCategory     = &amp;#039;ノートページメッセージボックス&amp;#039;,&lt;br /&gt;
		templatestyles       = &amp;#039;Module:Message box/tmbox.css&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Message_box/configuration</comments>
		</item>
		<item>
			<title>モジュール:Arguments</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Arguments&amp;diff=2481&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Arguments&amp;diff=2481&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Arguments&quot; title=&quot;モジュール:Arguments&quot;&gt;モジュール:Arguments&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module provides easy processing of arguments passed to Scribunto from&lt;br /&gt;
-- #invoke. It is intended for use by other Lua modules, and should not be&lt;br /&gt;
-- called from #invoke directly.&lt;br /&gt;
&lt;br /&gt;
local libraryUtil = require(&amp;#039;libraryUtil&amp;#039;)&lt;br /&gt;
local checkType = libraryUtil.checkType&lt;br /&gt;
&lt;br /&gt;
local arguments = {}&lt;br /&gt;
&lt;br /&gt;
-- Generate four different tidyVal functions, so that we don&amp;#039;t have to check the&lt;br /&gt;
-- options every time we call it.&lt;br /&gt;
&lt;br /&gt;
local function tidyValDefault(key, val)&lt;br /&gt;
	if type(val) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		val = val:match(&amp;#039;^%s*(.-)%s*$&amp;#039;)&lt;br /&gt;
		if val == &amp;#039;&amp;#039; then&lt;br /&gt;
			return nil&lt;br /&gt;
		else&lt;br /&gt;
			return val&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValTrimOnly(key, val)&lt;br /&gt;
	if type(val) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		return val:match(&amp;#039;^%s*(.-)%s*$&amp;#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValRemoveBlanksOnly(key, val)&lt;br /&gt;
	if type(val) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		if val:find(&amp;#039;%S&amp;#039;) then&lt;br /&gt;
			return val&lt;br /&gt;
		else&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function tidyValNoChange(key, val)&lt;br /&gt;
	return val&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function matchesTitle(given, title)&lt;br /&gt;
	local tp = type( given )&lt;br /&gt;
	return (tp == &amp;#039;string&amp;#039; or tp == &amp;#039;number&amp;#039;) and mw.title.new( given ).prefixedText == title&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local translate_mt = { __index = function(t, k) return k end }&lt;br /&gt;
&lt;br /&gt;
function arguments.getArgs(frame, options)&lt;br /&gt;
	checkType(&amp;#039;getArgs&amp;#039;, 1, frame, &amp;#039;table&amp;#039;, true)&lt;br /&gt;
	checkType(&amp;#039;getArgs&amp;#039;, 2, options, &amp;#039;table&amp;#039;, true)&lt;br /&gt;
	frame = frame or {}&lt;br /&gt;
	options = options or {}&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Set up argument translation.&lt;br /&gt;
	--]]&lt;br /&gt;
	options.translate = options.translate or {}&lt;br /&gt;
	if getmetatable(options.translate) == nil then&lt;br /&gt;
		setmetatable(options.translate, translate_mt)&lt;br /&gt;
	end&lt;br /&gt;
	if options.backtranslate == nil then&lt;br /&gt;
		options.backtranslate = {}&lt;br /&gt;
		for k,v in pairs(options.translate) do&lt;br /&gt;
			options.backtranslate[v] = k&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if options.backtranslate and getmetatable(options.backtranslate) == nil then&lt;br /&gt;
		setmetatable(options.backtranslate, {&lt;br /&gt;
			__index = function(t, k)&lt;br /&gt;
				if options.translate[k] ~= k then&lt;br /&gt;
					return nil&lt;br /&gt;
				else&lt;br /&gt;
					return k&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Get the argument tables. If we were passed a valid frame object, get the&lt;br /&gt;
	-- frame arguments (fargs) and the parent frame arguments (pargs), depending&lt;br /&gt;
	-- on the options set and on the parent frame&amp;#039;s availability. If we weren&amp;#039;t&lt;br /&gt;
	-- passed a valid frame object, we are being called from another Lua module&lt;br /&gt;
	-- or from the debug console, so assume that we were passed a table of args&lt;br /&gt;
	-- directly, and assign it to a new variable (luaArgs).&lt;br /&gt;
	--]]&lt;br /&gt;
	local fargs, pargs, luaArgs&lt;br /&gt;
	if type(frame.args) == &amp;#039;table&amp;#039; and type(frame.getParent) == &amp;#039;function&amp;#039; then&lt;br /&gt;
		if options.wrappers then&lt;br /&gt;
			--[[&lt;br /&gt;
			-- The wrappers option makes Module:Arguments look up arguments in&lt;br /&gt;
			-- either the frame argument table or the parent argument table, but&lt;br /&gt;
			-- not both. This means that users can use either the #invoke syntax&lt;br /&gt;
			-- or a wrapper template without the loss of performance associated&lt;br /&gt;
			-- with looking arguments up in both the frame and the parent frame.&lt;br /&gt;
			-- Module:Arguments will look up arguments in the parent frame&lt;br /&gt;
			-- if it finds the parent frame&amp;#039;s title in options.wrapper;&lt;br /&gt;
			-- otherwise it will look up arguments in the frame object passed&lt;br /&gt;
			-- to getArgs.&lt;br /&gt;
			--]]&lt;br /&gt;
			local parent = frame:getParent()&lt;br /&gt;
			if not parent then&lt;br /&gt;
				fargs = frame.args&lt;br /&gt;
			else&lt;br /&gt;
				local title = parent:getTitle():gsub(&amp;#039;/sandbox$&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
				local found = false&lt;br /&gt;
				if matchesTitle(options.wrappers, title) then&lt;br /&gt;
					found = true&lt;br /&gt;
				elseif type(options.wrappers) == &amp;#039;table&amp;#039; then&lt;br /&gt;
					for _,v in pairs(options.wrappers) do&lt;br /&gt;
						if matchesTitle(v, title) then&lt;br /&gt;
							found = true&lt;br /&gt;
							break&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				-- We test for false specifically here so that nil (the default) acts like true.&lt;br /&gt;
				if found or options.frameOnly == false then&lt;br /&gt;
					pargs = parent.args&lt;br /&gt;
				end&lt;br /&gt;
				if not found or options.parentOnly == false then&lt;br /&gt;
					fargs = frame.args&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			-- options.wrapper isn&amp;#039;t set, so check the other options.&lt;br /&gt;
			if not options.parentOnly then&lt;br /&gt;
				fargs = frame.args&lt;br /&gt;
			end&lt;br /&gt;
			if not options.frameOnly then&lt;br /&gt;
				local parent = frame:getParent()&lt;br /&gt;
				pargs = parent and parent.args or nil&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if options.parentFirst then&lt;br /&gt;
			fargs, pargs = pargs, fargs&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		luaArgs = frame&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the order of precedence of the argument tables. If the variables are&lt;br /&gt;
	-- nil, nothing will be added to the table, which is how we avoid clashes&lt;br /&gt;
	-- between the frame/parent args and the Lua args.&lt;br /&gt;
	local argTables = {fargs}&lt;br /&gt;
	argTables[#argTables + 1] = pargs&lt;br /&gt;
	argTables[#argTables + 1] = luaArgs&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Generate the tidyVal function. If it has been specified by the user, we&lt;br /&gt;
	-- use that; if not, we choose one of four functions depending on the&lt;br /&gt;
	-- options chosen. This is so that we don&amp;#039;t have to call the options table&lt;br /&gt;
	-- every time the function is called.&lt;br /&gt;
	--]]&lt;br /&gt;
	local tidyVal = options.valueFunc&lt;br /&gt;
	if tidyVal then&lt;br /&gt;
		if type(tidyVal) ~= &amp;#039;function&amp;#039; then&lt;br /&gt;
			error(&lt;br /&gt;
				&amp;quot;bad value assigned to option &amp;#039;valueFunc&amp;#039;&amp;quot;&lt;br /&gt;
					.. &amp;#039;(function expected, got &amp;#039;&lt;br /&gt;
					.. type(tidyVal)&lt;br /&gt;
					.. &amp;#039;)&amp;#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	elseif options.trim ~= false then&lt;br /&gt;
		if options.removeBlanks ~= false then&lt;br /&gt;
			tidyVal = tidyValDefault&lt;br /&gt;
		else&lt;br /&gt;
			tidyVal = tidyValTrimOnly&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if options.removeBlanks ~= false then&lt;br /&gt;
			tidyVal = tidyValRemoveBlanksOnly&lt;br /&gt;
		else&lt;br /&gt;
			tidyVal = tidyValNoChange&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Set up the args, metaArgs and nilArgs tables. args will be the one&lt;br /&gt;
	-- accessed from functions, and metaArgs will hold the actual arguments. Nil&lt;br /&gt;
	-- arguments are memoized in nilArgs, and the metatable connects all of them&lt;br /&gt;
	-- together.&lt;br /&gt;
	--]]&lt;br /&gt;
	local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}&lt;br /&gt;
	setmetatable(args, metatable)&lt;br /&gt;
&lt;br /&gt;
	local function mergeArgs(tables)&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Accepts multiple tables as input and merges their keys and values&lt;br /&gt;
		-- into one table. If a value is already present it is not overwritten;&lt;br /&gt;
		-- tables listed earlier have precedence. We are also memoizing nil&lt;br /&gt;
		-- values, which can be overwritten if they are &amp;#039;s&amp;#039; (soft).&lt;br /&gt;
		--]]&lt;br /&gt;
		for _, t in ipairs(tables) do&lt;br /&gt;
			for key, val in pairs(t) do&lt;br /&gt;
				if metaArgs[key] == nil and nilArgs[key] ~= &amp;#039;h&amp;#039; then&lt;br /&gt;
					local tidiedVal = tidyVal(key, val)&lt;br /&gt;
					if tidiedVal == nil then&lt;br /&gt;
						nilArgs[key] = &amp;#039;s&amp;#039;&lt;br /&gt;
					else&lt;br /&gt;
						metaArgs[key] = tidiedVal&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- Define metatable behaviour. Arguments are memoized in the metaArgs table,&lt;br /&gt;
	-- and are only fetched from the argument tables once. Fetching arguments&lt;br /&gt;
	-- from the argument tables is the most resource-intensive step in this&lt;br /&gt;
	-- module, so we try and avoid it where possible. For this reason, nil&lt;br /&gt;
	-- arguments are also memoized, in the nilArgs table. Also, we keep a record&lt;br /&gt;
	-- in the metatable of when pairs and ipairs have been called, so we do not&lt;br /&gt;
	-- run pairs and ipairs on the argument tables more than once. We also do&lt;br /&gt;
	-- not run ipairs on fargs and pargs if pairs has already been run, as all&lt;br /&gt;
	-- the arguments will already have been copied over.&lt;br /&gt;
	--]]&lt;br /&gt;
&lt;br /&gt;
	metatable.__index = function (t, key)&lt;br /&gt;
		--[[&lt;br /&gt;
		-- Fetches an argument when the args table is indexed. First we check&lt;br /&gt;
		-- to see if the value is memoized, and if not we try and fetch it from&lt;br /&gt;
		-- the argument tables. When we check memoization, we need to check&lt;br /&gt;
		-- metaArgs before nilArgs, as both can be non-nil at the same time.&lt;br /&gt;
		-- If the argument is not present in metaArgs, we also check whether&lt;br /&gt;
		-- pairs has been run yet. If pairs has already been run, we return nil.&lt;br /&gt;
		-- This is because all the arguments will have already been copied into&lt;br /&gt;
		-- metaArgs by the mergeArgs function, meaning that any other arguments&lt;br /&gt;
		-- must be nil.&lt;br /&gt;
		--]]&lt;br /&gt;
		if type(key) == &amp;#039;string&amp;#039; then&lt;br /&gt;
			key = options.translate[key]&lt;br /&gt;
		end&lt;br /&gt;
		local val = metaArgs[key]&lt;br /&gt;
		if val ~= nil then&lt;br /&gt;
			return val&lt;br /&gt;
		elseif metatable.donePairs or nilArgs[key] then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		for _, argTable in ipairs(argTables) do&lt;br /&gt;
			local argTableVal = tidyVal(key, argTable[key])&lt;br /&gt;
			if argTableVal ~= nil then&lt;br /&gt;
				metaArgs[key] = argTableVal&lt;br /&gt;
				return argTableVal&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		nilArgs[key] = &amp;#039;h&amp;#039;&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__newindex = function (t, key, val)&lt;br /&gt;
		-- This function is called when a module tries to add a new value to the&lt;br /&gt;
		-- args table, or tries to change an existing value.&lt;br /&gt;
		if type(key) == &amp;#039;string&amp;#039; then&lt;br /&gt;
			key = options.translate[key]&lt;br /&gt;
		end&lt;br /&gt;
		if options.readOnly then&lt;br /&gt;
			error(&lt;br /&gt;
				&amp;#039;could not write to argument table key &amp;quot;&amp;#039;&lt;br /&gt;
					.. tostring(key)&lt;br /&gt;
					.. &amp;#039;&amp;quot;; the table is read-only&amp;#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		elseif options.noOverwrite and args[key] ~= nil then&lt;br /&gt;
			error(&lt;br /&gt;
				&amp;#039;could not write to argument table key &amp;quot;&amp;#039;&lt;br /&gt;
					.. tostring(key)&lt;br /&gt;
					.. &amp;#039;&amp;quot;; overwriting existing arguments is not permitted&amp;#039;,&lt;br /&gt;
				2&lt;br /&gt;
			)&lt;br /&gt;
		elseif val == nil then&lt;br /&gt;
			--[[&lt;br /&gt;
			-- If the argument is to be overwritten with nil, we need to erase&lt;br /&gt;
			-- the value in metaArgs, so that __index, __pairs and __ipairs do&lt;br /&gt;
			-- not use a previous existing value, if present; and we also need&lt;br /&gt;
			-- to memoize the nil in nilArgs, so that the value isn&amp;#039;t looked&lt;br /&gt;
			-- up in the argument tables if it is accessed again.&lt;br /&gt;
			--]]&lt;br /&gt;
			metaArgs[key] = nil&lt;br /&gt;
			nilArgs[key] = &amp;#039;h&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			metaArgs[key] = val&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function translatenext(invariant)&lt;br /&gt;
		local k, v = next(invariant.t, invariant.k)&lt;br /&gt;
		invariant.k = k&lt;br /&gt;
		if k == nil then&lt;br /&gt;
			return nil&lt;br /&gt;
		elseif type(k) ~= &amp;#039;string&amp;#039; or not options.backtranslate then&lt;br /&gt;
			return k, v&lt;br /&gt;
		else&lt;br /&gt;
			local backtranslate = options.backtranslate[k]&lt;br /&gt;
			if backtranslate == nil then&lt;br /&gt;
				-- Skip this one. This is a tail call, so this won&amp;#039;t cause stack overflow&lt;br /&gt;
				return translatenext(invariant)&lt;br /&gt;
			else&lt;br /&gt;
				return backtranslate, v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__pairs = function ()&lt;br /&gt;
		-- Called when pairs is run on the args table.&lt;br /&gt;
		if not metatable.donePairs then&lt;br /&gt;
			mergeArgs(argTables)&lt;br /&gt;
			metatable.donePairs = true&lt;br /&gt;
		end&lt;br /&gt;
		return translatenext, { t = metaArgs }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local function inext(t, i)&lt;br /&gt;
		-- This uses our __index metamethod&lt;br /&gt;
		local v = t[i + 1]&lt;br /&gt;
		if v ~= nil then&lt;br /&gt;
			return i + 1, v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	metatable.__ipairs = function (t)&lt;br /&gt;
		-- Called when ipairs is run on the args table.&lt;br /&gt;
		return inext, t, 0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return arguments&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Arguments</comments>
		</item>
		<item>
			<title>モジュール:Yesno</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Yesno&amp;diff=2479&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Yesno&amp;diff=2479&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Yesno&quot; title=&quot;モジュール:Yesno&quot;&gt;モジュール:Yesno&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&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) == &amp;#039;string&amp;#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 == &amp;#039;yes&amp;#039;&lt;br /&gt;
		or val == &amp;#039;y&amp;#039;&lt;br /&gt;
		or val == &amp;#039;true&amp;#039;&lt;br /&gt;
		or val == &amp;#039;t&amp;#039;&lt;br /&gt;
		or val == &amp;#039;on&amp;#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 == &amp;#039;no&amp;#039;&lt;br /&gt;
		or val == &amp;#039;n&amp;#039;&lt;br /&gt;
		or val == &amp;#039;false&amp;#039;&lt;br /&gt;
		or val == &amp;#039;f&amp;#039;&lt;br /&gt;
		or val == &amp;#039;off&amp;#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;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Yesno</comments>
		</item>
		<item>
			<title>モジュール:Message box</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Message_box&amp;diff=2477&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Message_box&amp;diff=2477&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Message_box&quot; title=&quot;モジュール:Message box&quot;&gt;モジュール:Message box&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
local getArgs&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local lang = mw.language.getContentLanguage()&lt;br /&gt;
&lt;br /&gt;
local CONFIG_MODULE = &amp;#039;Module:Message box/configuration&amp;#039;&lt;br /&gt;
local DEMOSPACES = {talk = &amp;#039;tmbox&amp;#039;, image = &amp;#039;imbox&amp;#039;, file = &amp;#039;imbox&amp;#039;, category = &amp;#039;cmbox&amp;#039;, article = &amp;#039;ambox&amp;#039;, main = &amp;#039;ambox&amp;#039;}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function getTitleObject(...)&lt;br /&gt;
	-- Get the title object, passing the function through pcall&lt;br /&gt;
	-- in case we are over the expensive function count limit.&lt;br /&gt;
	local success, title = pcall(mw.title.new, ...)&lt;br /&gt;
	if success then&lt;br /&gt;
		return title&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function union(t1, t2)&lt;br /&gt;
	-- Returns the union of two arrays.&lt;br /&gt;
	local vals = {}&lt;br /&gt;
	for i, v in ipairs(t1) do&lt;br /&gt;
		vals[v] = true&lt;br /&gt;
	end&lt;br /&gt;
	for i, v in ipairs(t2) do&lt;br /&gt;
		vals[v] = true&lt;br /&gt;
	end&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for k in pairs(vals) do&lt;br /&gt;
		table.insert(ret, k)&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(ret)&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getArgNums(args, prefix)&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		local num = mw.ustring.match(tostring(k), &amp;#039;^&amp;#039; .. prefix .. &amp;#039;([1-9]%d*)$&amp;#039;)&lt;br /&gt;
		if num then&lt;br /&gt;
			table.insert(nums, tonumber(num))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(nums)&lt;br /&gt;
	return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Box class definition&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local MessageBox = {}&lt;br /&gt;
MessageBox.__index = MessageBox&lt;br /&gt;
&lt;br /&gt;
function MessageBox.new(boxType, args, cfg)&lt;br /&gt;
	args = args or {}&lt;br /&gt;
	local obj = {}&lt;br /&gt;
&lt;br /&gt;
	-- Set the title object and the namespace.&lt;br /&gt;
	obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
	-- Set the config for our box type.&lt;br /&gt;
	obj.cfg = cfg[boxType]&lt;br /&gt;
	if not obj.cfg then&lt;br /&gt;
		local ns = obj.title.namespace&lt;br /&gt;
		-- boxType is &amp;quot;mbox&amp;quot; or invalid input&lt;br /&gt;
		if args.demospace and args.demospace ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			-- implement demospace parameter of mbox&lt;br /&gt;
			local demospace = string.lower(args.demospace)&lt;br /&gt;
			if DEMOSPACES[demospace] then&lt;br /&gt;
				-- use template from DEMOSPACES&lt;br /&gt;
				obj.cfg = cfg[DEMOSPACES[demospace]]&lt;br /&gt;
			elseif string.find( demospace, &amp;#039;talk&amp;#039; ) then&lt;br /&gt;
				-- demo as a talk page&lt;br /&gt;
				obj.cfg = cfg.tmbox&lt;br /&gt;
			else&lt;br /&gt;
				-- default to ombox&lt;br /&gt;
				obj.cfg = cfg.ombox&lt;br /&gt;
			end&lt;br /&gt;
		elseif ns == 0 then&lt;br /&gt;
			obj.cfg = cfg.ambox -- main namespace&lt;br /&gt;
		elseif ns == 6 then&lt;br /&gt;
			obj.cfg = cfg.imbox -- file namespace&lt;br /&gt;
		elseif ns == 14 then&lt;br /&gt;
			obj.cfg = cfg.cmbox -- category namespace&lt;br /&gt;
		else&lt;br /&gt;
			local nsTable = mw.site.namespaces[ns]&lt;br /&gt;
			if nsTable and nsTable.isTalk then&lt;br /&gt;
				obj.cfg = cfg.tmbox -- any talk namespace&lt;br /&gt;
			else&lt;br /&gt;
				obj.cfg = cfg.ombox -- other namespaces or invalid input&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the arguments, and remove all blank arguments except for the ones&lt;br /&gt;
	-- listed in cfg.allowBlankParams.&lt;br /&gt;
	do&lt;br /&gt;
		local newArgs = {}&lt;br /&gt;
		for k, v in pairs(args) do&lt;br /&gt;
			if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				newArgs[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		for i, param in ipairs(obj.cfg.allowBlankParams or {}) do&lt;br /&gt;
			newArgs[param] = args[param]&lt;br /&gt;
		end&lt;br /&gt;
		obj.args = newArgs&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Define internal data structure.&lt;br /&gt;
	obj.categories = {}&lt;br /&gt;
	obj.classes = {}&lt;br /&gt;
	-- For lazy loading of [[Module:Category handler]].&lt;br /&gt;
	obj.hasCategories = false&lt;br /&gt;
&lt;br /&gt;
	return setmetatable(obj, MessageBox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:addCat(ns, cat, sort)&lt;br /&gt;
	if not cat then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	if sort then&lt;br /&gt;
		cat = string.format(&amp;#039;[[Category:%s|%s]]&amp;#039;, cat, sort)&lt;br /&gt;
	else&lt;br /&gt;
		cat = string.format(&amp;#039;[[Category:%s]]&amp;#039;, cat)&lt;br /&gt;
	end&lt;br /&gt;
	self.hasCategories = true&lt;br /&gt;
	self.categories[ns] = self.categories[ns] or {}&lt;br /&gt;
	table.insert(self.categories[ns], cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:addClass(class)&lt;br /&gt;
	if not class then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(self.classes, class)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setParameters()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	-- Get type data.&lt;br /&gt;
	self.type = args.type&lt;br /&gt;
	local typeData = cfg.types[self.type]&lt;br /&gt;
	self.invalidTypeError = cfg.showInvalidTypeError&lt;br /&gt;
		and self.type&lt;br /&gt;
		and not typeData&lt;br /&gt;
	typeData = typeData or cfg.types[cfg.default]&lt;br /&gt;
	self.typeClass = typeData.class&lt;br /&gt;
	self.typeImage = typeData.image&lt;br /&gt;
	self.typeImageNeedsLink = typeData.imageNeedsLink&lt;br /&gt;
&lt;br /&gt;
	-- Find if the box has been wrongly substituted.&lt;br /&gt;
	self.isSubstituted = cfg.substCheck and args.subst == &amp;#039;SUBST&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	-- Find whether we are using a small message box.&lt;br /&gt;
	self.isSmall = cfg.allowSmall and (&lt;br /&gt;
		cfg.smallParam and args.small == cfg.smallParam&lt;br /&gt;
		or not cfg.smallParam and yesno(args.small)&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
	-- Add attributes, classes and styles.&lt;br /&gt;
	self.id = args.id&lt;br /&gt;
	self.name = args.name&lt;br /&gt;
	if self.name then&lt;br /&gt;
		self:addClass(&amp;#039;box-&amp;#039; .. string.gsub(self.name,&amp;#039; &amp;#039;,&amp;#039;_&amp;#039;))&lt;br /&gt;
	end&lt;br /&gt;
	if yesno(args.plainlinks) ~= false then&lt;br /&gt;
		self:addClass(&amp;#039;plainlinks&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	for _, class in ipairs(cfg.classes or {}) do&lt;br /&gt;
		self:addClass(class)&lt;br /&gt;
	end&lt;br /&gt;
	if self.isSmall then&lt;br /&gt;
		self:addClass(cfg.smallClass or &amp;#039;mbox-small&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	self:addClass(self.typeClass)&lt;br /&gt;
	self:addClass(args.class)&lt;br /&gt;
	self.style = args.style&lt;br /&gt;
	self.attrs = args.attrs&lt;br /&gt;
&lt;br /&gt;
	-- Set text style.&lt;br /&gt;
	self.textstyle = args.textstyle&lt;br /&gt;
&lt;br /&gt;
	-- Find if we are on the template page or not. This functionality is only&lt;br /&gt;
	-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory&lt;br /&gt;
	-- and cfg.templateCategoryRequireName are set.&lt;br /&gt;
	self.useCollapsibleTextFields = cfg.useCollapsibleTextFields&lt;br /&gt;
	if self.useCollapsibleTextFields&lt;br /&gt;
		or cfg.templateCategory&lt;br /&gt;
		and cfg.templateCategoryRequireName&lt;br /&gt;
	then&lt;br /&gt;
		if self.name then&lt;br /&gt;
			local templateName = mw.ustring.match(&lt;br /&gt;
				self.name,&lt;br /&gt;
				&amp;#039;^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$&amp;#039;&lt;br /&gt;
			) or self.name&lt;br /&gt;
			templateName = &amp;#039;Template:&amp;#039; .. templateName&lt;br /&gt;
			self.templateTitle = getTitleObject(templateName)&lt;br /&gt;
		end&lt;br /&gt;
		self.isTemplatePage = self.templateTitle&lt;br /&gt;
			and mw.title.equals(self.title, self.templateTitle)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Process data for collapsible text fields. At the moment these are only&lt;br /&gt;
	-- used in {{ambox}}.&lt;br /&gt;
	if self.useCollapsibleTextFields then&lt;br /&gt;
		-- Get the self.issue value.&lt;br /&gt;
		if self.isSmall and args.smalltext then&lt;br /&gt;
			self.issue = args.smalltext&lt;br /&gt;
		else&lt;br /&gt;
			local sect&lt;br /&gt;
			if args.sect == &amp;#039;&amp;#039; then&lt;br /&gt;
				sect = &amp;#039;This &amp;#039; .. (cfg.sectionDefault or &amp;#039;page&amp;#039;)&lt;br /&gt;
			elseif type(args.sect) == &amp;#039;string&amp;#039; then&lt;br /&gt;
				sect = &amp;#039;This &amp;#039; .. args.sect&lt;br /&gt;
			end&lt;br /&gt;
			local issue = args.issue&lt;br /&gt;
			issue = type(issue) == &amp;#039;string&amp;#039; and issue ~= &amp;#039;&amp;#039; and issue or nil&lt;br /&gt;
			local text = args.text&lt;br /&gt;
			text = type(text) == &amp;#039;string&amp;#039; and text or nil&lt;br /&gt;
			local issues = {}&lt;br /&gt;
			table.insert(issues, sect)&lt;br /&gt;
			table.insert(issues, issue)&lt;br /&gt;
			table.insert(issues, text)&lt;br /&gt;
			self.issue = table.concat(issues, &amp;#039; &amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Get the self.talk value.&lt;br /&gt;
		local talk = args.talk&lt;br /&gt;
		-- Show talk links on the template page or template subpages if the talk&lt;br /&gt;
		-- parameter is blank.&lt;br /&gt;
		if talk == &amp;#039;&amp;#039;&lt;br /&gt;
			and self.templateTitle&lt;br /&gt;
			and (&lt;br /&gt;
				mw.title.equals(self.templateTitle, self.title)&lt;br /&gt;
				or self.title:isSubpageOf(self.templateTitle)&lt;br /&gt;
			)&lt;br /&gt;
		then&lt;br /&gt;
			talk = &amp;#039;#&amp;#039;&lt;br /&gt;
		elseif talk == &amp;#039;&amp;#039; then&lt;br /&gt;
			talk = nil&lt;br /&gt;
		end&lt;br /&gt;
		if talk then&lt;br /&gt;
			-- If the talk value is a talk page, make a link to that page. Else&lt;br /&gt;
			-- assume that it&amp;#039;s a section heading, and make a link to the talk&lt;br /&gt;
			-- page of the current page with that section heading.&lt;br /&gt;
			local talkTitle = getTitleObject(talk)&lt;br /&gt;
			local talkArgIsTalkPage = true&lt;br /&gt;
			if not talkTitle or not talkTitle.isTalkPage then&lt;br /&gt;
				talkArgIsTalkPage = false&lt;br /&gt;
				talkTitle = getTitleObject(&lt;br /&gt;
					self.title.text,&lt;br /&gt;
					mw.site.namespaces[self.title.namespace].talk.id&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
			if talkTitle and talkTitle.exists then&lt;br /&gt;
                local talkText&lt;br /&gt;
                if self.isSmall then&lt;br /&gt;
                    local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. &amp;#039;#&amp;#039; .. talk)&lt;br /&gt;
                    talkText = string.format(&amp;#039;([[%s|ノート]])&amp;#039;, talkLink)&lt;br /&gt;
                else&lt;br /&gt;
                    talkText = &amp;#039;関連議論は&amp;#039;&lt;br /&gt;
                    if talkArgIsTalkPage then&lt;br /&gt;
                        talkText = string.format(&lt;br /&gt;
                            &amp;#039;%s [[%s|%s]]に存在するかもしれません。&amp;#039;,&lt;br /&gt;
                            talkText,&lt;br /&gt;
                            talk,&lt;br /&gt;
                            talkTitle.prefixedText&lt;br /&gt;
                        )&lt;br /&gt;
                    else&lt;br /&gt;
                        talkText = string.format(&lt;br /&gt;
                            &amp;#039;%s[[%s#%s|ノートページ]]に存在するかもしれません。&amp;#039;,&lt;br /&gt;
                            talkText,&lt;br /&gt;
                            talkTitle.prefixedText,&lt;br /&gt;
                            talk&lt;br /&gt;
                        )&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
				self.talk = talkText&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Get other values.&lt;br /&gt;
		self.fix = args.fix ~= &amp;#039;&amp;#039; and args.fix or nil&lt;br /&gt;
		local date&lt;br /&gt;
		if args.date and args.date ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			date = args.date&lt;br /&gt;
		elseif args.date == &amp;#039;&amp;#039; and self.isTemplatePage then&lt;br /&gt;
			date = lang:formatDate(&amp;#039;Y年F&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		if date then&lt;br /&gt;
			self.date = string.format(&amp;quot; &amp;lt;span class=&amp;#039;date-container&amp;#039;&amp;gt;&amp;lt;i&amp;gt;(&amp;lt;span class=&amp;#039;date&amp;#039;&amp;gt;%s&amp;lt;/span&amp;gt;)&amp;lt;/i&amp;gt;&amp;lt;/span&amp;gt;&amp;quot;, date)&lt;br /&gt;
		end&lt;br /&gt;
		self.info = args.info&lt;br /&gt;
		if yesno(args.removalnotice) then&lt;br /&gt;
			self.removalNotice = cfg.removalNotice&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the non-collapsible text field. At the moment this is used by all box&lt;br /&gt;
	-- types other than ambox, and also by ambox when small=yes.&lt;br /&gt;
	if self.isSmall then&lt;br /&gt;
		self.text = args.smalltext or args.text&lt;br /&gt;
	else&lt;br /&gt;
		self.text = args.text&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- 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 ~= &amp;#039;blank&amp;#039; and imageLeft ~= &amp;#039;none&amp;#039;&lt;br /&gt;
		or not cfg.imageCheckBlank and imageLeft ~= &amp;#039;none&amp;#039;&lt;br /&gt;
	then&lt;br /&gt;
		self.imageLeft = imageLeft&lt;br /&gt;
		if not imageLeft then&lt;br /&gt;
			local imageSize = self.isSmall&lt;br /&gt;
				and (cfg.imageSmallSize or &amp;#039;30x30px&amp;#039;)&lt;br /&gt;
				or &amp;#039;40x40px&amp;#039;&lt;br /&gt;
			self.imageLeft = string.format(&amp;#039;[[File:%s|%s%s|alt=]]&amp;#039;, self.typeImage&lt;br /&gt;
				or &amp;#039;Information icon4.svg&amp;#039;, imageSize, self.typeImageNeedsLink and &amp;quot;&amp;quot; or &amp;quot;|link=&amp;quot; )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Right image settings.&lt;br /&gt;
	local imageRight = self.isSmall and args.smallimageright or args.imageright&lt;br /&gt;
	if not (cfg.imageRightNone and imageRight == &amp;#039;none&amp;#039;) then&lt;br /&gt;
		self.imageRight = imageRight&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- set templatestyles&lt;br /&gt;
	self.base_templatestyles = cfg.templatestyles&lt;br /&gt;
	self.templatestyles = args.templatestyles&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setMainspaceCategories()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	if not cfg.allowMainspaceCategories then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for _, prefix in ipairs{&amp;#039;cat&amp;#039;, &amp;#039;category&amp;#039;, &amp;#039;all&amp;#039;} do&lt;br /&gt;
		args[prefix .. &amp;#039;1&amp;#039;] = args[prefix]&lt;br /&gt;
		nums = union(nums, getArgNums(args, prefix))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- The following is roughly equivalent to the old {{Ambox/category}}.&lt;br /&gt;
	local date = args.date&lt;br /&gt;
	date = type(date) == &amp;#039;string&amp;#039; and date&lt;br /&gt;
	local preposition = &amp;#039;/&amp;#039;&lt;br /&gt;
	for _, num in ipairs(nums) do&lt;br /&gt;
		local mainCat = args[&amp;#039;cat&amp;#039; .. tostring(num)]&lt;br /&gt;
			or args[&amp;#039;category&amp;#039; .. tostring(num)]&lt;br /&gt;
		local allCat = args[&amp;#039;all&amp;#039; .. tostring(num)]&lt;br /&gt;
		mainCat = type(mainCat) == &amp;#039;string&amp;#039; and mainCat&lt;br /&gt;
		allCat = type(allCat) == &amp;#039;string&amp;#039; and allCat&lt;br /&gt;
		if mainCat and date and date ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			local catTitle = string.format(&amp;#039;%s%s%s&amp;#039;, mainCat, preposition, date)&lt;br /&gt;
			self:addCat(0, catTitle)&lt;br /&gt;
			catTitle = getTitleObject(&amp;#039;Category:&amp;#039; .. catTitle)&lt;br /&gt;
			if not catTitle or not catTitle.exists then&lt;br /&gt;
				self:addCat(0, &amp;#039;貼り付け日が正しくないテンプレートのある記事&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		elseif mainCat and (not date or date == &amp;#039;&amp;#039;) then&lt;br /&gt;
			self:addCat(0, mainCat)&lt;br /&gt;
		end&lt;br /&gt;
		if allCat then&lt;br /&gt;
			self:addCat(0, allCat)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setTemplateCategories()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	-- Add template categories.&lt;br /&gt;
	if cfg.templateCategory then&lt;br /&gt;
		if cfg.templateCategoryRequireName then&lt;br /&gt;
			if self.isTemplatePage then&lt;br /&gt;
				self:addCat(10, cfg.templateCategory)&lt;br /&gt;
			end&lt;br /&gt;
		elseif not self.title.isSubpage then&lt;br /&gt;
			self:addCat(10, cfg.templateCategory)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add template error categories.&lt;br /&gt;
	if cfg.templateErrorCategory then&lt;br /&gt;
		local templateErrorCategory = cfg.templateErrorCategory&lt;br /&gt;
		local templateCat, templateSort&lt;br /&gt;
		if not self.name and not self.title.isSubpage then&lt;br /&gt;
			templateCat = templateErrorCategory&lt;br /&gt;
		elseif self.isTemplatePage then&lt;br /&gt;
			local paramsToCheck = cfg.templateErrorParamsToCheck or {}&lt;br /&gt;
			local count = 0&lt;br /&gt;
			for i, param in ipairs(paramsToCheck) do&lt;br /&gt;
				if not args[param] then&lt;br /&gt;
					count = count + 1&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if count &amp;gt; 0 then&lt;br /&gt;
				templateCat = templateErrorCategory&lt;br /&gt;
				templateSort = tostring(count)&lt;br /&gt;
			end&lt;br /&gt;
			if self.categoryNums and #self.categoryNums &amp;gt; 0 then&lt;br /&gt;
				templateCat = templateErrorCategory&lt;br /&gt;
				templateSort = &amp;#039;C&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		self:addCat(10, templateCat, templateSort)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setAllNamespaceCategories()&lt;br /&gt;
	-- Set categories for all namespaces.&lt;br /&gt;
	if self.invalidTypeError then&lt;br /&gt;
		local allSort = (self.title.namespace == 0 and &amp;#039;Main:&amp;#039; or &amp;#039;&amp;#039;) .. self.title.prefixedText&lt;br /&gt;
		self:addCat(&amp;#039;all&amp;#039;, &amp;#039;パラメータの修正が必要なメッセージボックス&amp;#039;, allSort)&lt;br /&gt;
	end&lt;br /&gt;
	if self.isSubstituted then&lt;br /&gt;
		self:addCat(&amp;#039;all&amp;#039;, &amp;#039;正しく置き換えられていないテンプレートがあるページ&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setCategories()&lt;br /&gt;
	if self.title.namespace == 0 then&lt;br /&gt;
		self:setMainspaceCategories()&lt;br /&gt;
	elseif self.title.namespace == 10 then&lt;br /&gt;
		self:setTemplateCategories()&lt;br /&gt;
	end&lt;br /&gt;
	self:setAllNamespaceCategories()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:renderCategories()&lt;br /&gt;
	if not self.hasCategories then&lt;br /&gt;
		-- No categories added, no need to pass them to Category handler so,&lt;br /&gt;
		-- if it was invoked, it would return the empty string.&lt;br /&gt;
		-- So we shortcut and return the empty string.&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	-- Convert category tables to strings and pass them through&lt;br /&gt;
	-- [[Module:Category handler]].&lt;br /&gt;
	return require(&amp;#039;Module:Category handler&amp;#039;)._main{&lt;br /&gt;
		main = table.concat(self.categories[0] or {}),&lt;br /&gt;
		template = table.concat(self.categories[10] or {}),&lt;br /&gt;
		all = table.concat(self.categories.all or {}),&lt;br /&gt;
		nocat = self.args.nocat,&lt;br /&gt;
		page = self.args.page&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox: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(&amp;#039;b&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;error&amp;#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&amp;#039;テンプレート&amp;lt;code&amp;gt;%s[[Template:%s|%s]]%s&amp;lt;/code&amp;gt;が正しく置き換えられませんでした。&amp;#039;,&lt;br /&gt;
				mw.text.nowiki(&amp;#039;{{&amp;#039;), self.name, self.name, mw.text.nowiki(&amp;#039;}}&amp;#039;)&lt;br /&gt;
			))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	root:wikitext(frame:extensionTag{&lt;br /&gt;
		name = &amp;#039;templatestyles&amp;#039;,&lt;br /&gt;
		args = { src = self.base_templatestyles },&lt;br /&gt;
	})&lt;br /&gt;
	-- Add support for a single custom templatestyles sheet. Undocumented as&lt;br /&gt;
	-- need should be limited and many templates using mbox are substed; we&lt;br /&gt;
	-- don&amp;#039;t want to spread templatestyles sheets around to arbitrary places&lt;br /&gt;
	if self.templatestyles then&lt;br /&gt;
		root:wikitext(frame:extensionTag{&lt;br /&gt;
			name = &amp;#039;templatestyles&amp;#039;,&lt;br /&gt;
			args = { src = self.templatestyles },&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Create the box table.&lt;br /&gt;
	local boxTable = root:tag(&amp;#039;table&amp;#039;)&lt;br /&gt;
	boxTable:attr(&amp;#039;id&amp;#039;, self.id or nil)&lt;br /&gt;
	for i, class in ipairs(self.classes or {}) do&lt;br /&gt;
		boxTable:addClass(class or nil)&lt;br /&gt;
	end&lt;br /&gt;
	boxTable&lt;br /&gt;
		:cssText(self.style or nil)&lt;br /&gt;
		:attr(&amp;#039;role&amp;#039;, &amp;#039;presentation&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	if self.attrs then&lt;br /&gt;
		boxTable:attr(self.attrs)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the left-hand image.&lt;br /&gt;
	local row = boxTable:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	if self.imageLeft then&lt;br /&gt;
		local imageLeftCell = row:tag(&amp;#039;td&amp;#039;):addClass(&amp;#039;mbox-image&amp;#039;)&lt;br /&gt;
		if self.imageCellDiv then&lt;br /&gt;
			-- If we are using a div, redefine imageLeftCell so that the image&lt;br /&gt;
			-- is inside it. Divs use style=&amp;quot;width: 52px;&amp;quot;, which limits the&lt;br /&gt;
			-- image width to 52px. If any images in a div are wider than that,&lt;br /&gt;
			-- they may overlap with the text or cause other display problems.&lt;br /&gt;
			imageLeftCell = imageLeftCell:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mbox-image-div&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		imageLeftCell:wikitext(self.imageLeft or nil)&lt;br /&gt;
	elseif self.imageEmptyCell then&lt;br /&gt;
		-- Some message boxes define an empty cell if no image is specified, and&lt;br /&gt;
		-- some don&amp;#039;t. The old template code in templates where empty cells are&lt;br /&gt;
		-- specified gives the following hint: &amp;quot;No image. Cell with some width&lt;br /&gt;
		-- or padding necessary for text cell to have 100% width.&amp;quot;&lt;br /&gt;
		row:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;mbox-empty-cell&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the text.&lt;br /&gt;
	local textCell = row:tag(&amp;#039;td&amp;#039;):addClass(&amp;#039;mbox-text&amp;#039;)&lt;br /&gt;
	if self.useCollapsibleTextFields then&lt;br /&gt;
		-- The message box uses advanced text parameters that allow things to be&lt;br /&gt;
		-- collapsible. At the moment, only ambox uses this.&lt;br /&gt;
		textCell:cssText(self.textstyle or nil)&lt;br /&gt;
		local textCellDiv = textCell:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
		textCellDiv&lt;br /&gt;
			:addClass(&amp;#039;mbox-text-span&amp;#039;)&lt;br /&gt;
			:wikitext(self.issue or nil)&lt;br /&gt;
		if (self.talk or self.fix) then&lt;br /&gt;
			textCellDiv:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;hide-when-compact&amp;#039;)&lt;br /&gt;
				:wikitext(self.talk and (&amp;#039; &amp;#039; .. self.talk) or nil)&lt;br /&gt;
				:wikitext(self.fix and (&amp;#039; &amp;#039; .. self.fix) or nil)&lt;br /&gt;
		end&lt;br /&gt;
		textCellDiv:wikitext(self.date and (&amp;#039; &amp;#039; .. self.date) or nil)&lt;br /&gt;
		if self.info and not self.isSmall then&lt;br /&gt;
			textCellDiv&lt;br /&gt;
				:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;hide-when-compact&amp;#039;)&lt;br /&gt;
				:wikitext(self.info and (&amp;#039; &amp;#039; .. self.info) or nil)&lt;br /&gt;
		end&lt;br /&gt;
		if self.removalNotice then&lt;br /&gt;
			textCellDiv:tag(&amp;#039;span&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;hide-when-compact&amp;#039;)&lt;br /&gt;
				:tag(&amp;#039;i&amp;#039;)&lt;br /&gt;
					:wikitext(string.format(&amp;quot; (%s)&amp;quot;, self.removalNotice))&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- Default text formatting - anything goes.&lt;br /&gt;
		textCell&lt;br /&gt;
			:cssText(self.textstyle or nil)&lt;br /&gt;
			:wikitext(self.text or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the right-hand image.&lt;br /&gt;
	if self.imageRight then&lt;br /&gt;
		local imageRightCell = row:tag(&amp;#039;td&amp;#039;):addClass(&amp;#039;mbox-imageright&amp;#039;)&lt;br /&gt;
		if self.imageCellDiv then&lt;br /&gt;
			-- If we are using a div, redefine imageRightCell so that the image&lt;br /&gt;
			-- is inside it.&lt;br /&gt;
			imageRightCell = imageRightCell:tag(&amp;#039;div&amp;#039;):addClass(&amp;#039;mbox-image-div&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
		imageRightCell&lt;br /&gt;
			:wikitext(self.imageRight or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the below row.&lt;br /&gt;
	if self.below then&lt;br /&gt;
		boxTable:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
				:attr(&amp;#039;colspan&amp;#039;, self.imageRight and &amp;#039;3&amp;#039; or &amp;#039;2&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;mbox-text&amp;#039;)&lt;br /&gt;
				:cssText(self.textstyle or nil)&lt;br /&gt;
				:wikitext(self.below or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add error message for invalid type parameters.&lt;br /&gt;
	if self.invalidTypeError then&lt;br /&gt;
		root:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;mbox-invalid-type&amp;#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&amp;#039;このメッセージボックスには無効な&amp;quot;type=%s&amp;quot;というパラメータが指定されているため修正が必要です。&amp;#039;,&lt;br /&gt;
				self.type or &amp;#039;&amp;#039;&lt;br /&gt;
			))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add categories.&lt;br /&gt;
	root:wikitext(self:renderCategories() or nil)&lt;br /&gt;
&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Exports&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local p, mt = {}, {}&lt;br /&gt;
&lt;br /&gt;
function p._exportClasses()&lt;br /&gt;
	-- For testing.&lt;br /&gt;
	return {&lt;br /&gt;
		MessageBox = MessageBox&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(boxType, args, cfgTables)&lt;br /&gt;
	local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))&lt;br /&gt;
	box:setParameters()&lt;br /&gt;
	box:setCategories()&lt;br /&gt;
	return box:export()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function mt.__index(t, k)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		if not getArgs then&lt;br /&gt;
			getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
		end&lt;br /&gt;
		return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return setmetatable(p, mt)&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Message_box</comments>
		</item>
		<item>
			<title>モジュール:Template translation</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Template_translation&amp;diff=2475&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Template_translation&amp;diff=2475&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Template_translation&quot; title=&quot;モジュール:Template translation&quot;&gt;モジュール:Template translation&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local this = {}&lt;br /&gt;
&lt;br /&gt;
function this.checkLanguage(subpage, default)&lt;br /&gt;
    --[[Check first if there&amp;#039;s an any invalid character that would cause the&lt;br /&gt;
        mw.language.isKnownLanguageTag function() to throw an exception:&lt;br /&gt;
        - all ASCII controls in [\000-\031\127],&lt;br /&gt;
        - double quote (&amp;quot;), sharp sign (#), ampersand (&amp;amp;), apostrophe (&amp;#039;),&lt;br /&gt;
        - slash (/), colon (:), semicolon (;), lower than (&amp;lt;), greater than (&amp;gt;),&lt;br /&gt;
        - brackets and braces ([, ], {, }), pipe (|), backslash (\\)&lt;br /&gt;
        All other characters are accepted, including space and all non-ASCII&lt;br /&gt;
        characters (including \192, which is invalid in UTF-8).&lt;br /&gt;
    --]]&lt;br /&gt;
    if mw.language.isValidCode(subpage) and mw.language.isKnownLanguageTag(subpage)&lt;br /&gt;
    --[[However &amp;quot;SupportedLanguages&amp;quot; are too restrictive, as they discard many&lt;br /&gt;
        valid BCP47 script variants (only because MediaWiki still does not&lt;br /&gt;
        define automatic transliterators for them, e.g. &amp;quot;en-dsrt&amp;quot; or&lt;br /&gt;
        &amp;quot;fr-brai&amp;quot; for French transliteration in Braille), and country variants,&lt;br /&gt;
        (useful in localized data, even if they are no longer used for&lt;br /&gt;
        translations, such as zh-cn, also useful for legacy codes).&lt;br /&gt;
        We want to avoid matching subpagenames containing any uppercase letter,&lt;br /&gt;
        (even if they are considered valid in BCP 47, in which they are&lt;br /&gt;
        case-insensitive; they are not &amp;quot;SupportedLanguages&amp;quot; for MediaWiki, so&lt;br /&gt;
        they are not &amp;quot;KnownLanguageTags&amp;quot; for MediaWiki).&lt;br /&gt;
        To be more restrictive, we exclude tags&lt;br /&gt;
        * for specific uses in template subpages and unusable as language tags;&lt;br /&gt;
        * that is not ASCII and not a lowercase letter, minus-hyphen, or digit,&lt;br /&gt;
          or does not start by a letter or does not finish by a letter or digit;&lt;br /&gt;
        * or that has subtags with more than 8 characters between hyphens;&lt;br /&gt;
        * or that has two hyphens.&lt;br /&gt;
    --]]&lt;br /&gt;
    or  subpage ~= &amp;quot;doc&amp;quot;&lt;br /&gt;
    and subpage ~= &amp;quot;layout&amp;quot;&lt;br /&gt;
    and subpage ~= &amp;quot;button&amp;quot;&lt;br /&gt;
    and subpage ~= &amp;quot;buttons&amp;quot;&lt;br /&gt;
    and subpage ~= &amp;quot;sandbox&amp;quot;&lt;br /&gt;
    and subpage ~= &amp;quot;testcase&amp;quot;&lt;br /&gt;
    and subpage ~= &amp;quot;testcases&amp;quot;&lt;br /&gt;
    and string.find(subpage, &amp;quot;^[%l][%-%d%l]*[%d%l]$&amp;quot;) ~= nil&lt;br /&gt;
    and string.find(subpage, &amp;quot;[%d%l][%d%l][%d%l][%d%l][%d%l][%d%l][%d%l][%d%l][%d%l]&amp;quot;) == nil&lt;br /&gt;
    and string.find(subpage, &amp;quot;%-%-&amp;quot;) == nil then&lt;br /&gt;
        return subpage&lt;br /&gt;
    end&lt;br /&gt;
    -- Otherwise there&amp;#039;s currently no known language subpage&lt;br /&gt;
    return default&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Get the last subpage of an arbitrary page if it is a translation.&lt;br /&gt;
    To be used from templates.&lt;br /&gt;
    ]]&lt;br /&gt;
function this.getLanguageSubpage(frame)&lt;br /&gt;
	local title = frame and frame.args[1]&lt;br /&gt;
	if not title or title == &amp;#039;&amp;#039; then&lt;br /&gt;
		title = mw.title.getCurrentTitle()&lt;br /&gt;
	end&lt;br /&gt;
	return this._getLanguageSubpage(title)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Get the last subpage of an arbitrary page if it is a translation.&lt;br /&gt;
    To be used from Lua.&lt;br /&gt;
    ]]&lt;br /&gt;
function this._getLanguageSubpage(title)&lt;br /&gt;
	if type(title) == &amp;#039;string&amp;#039; then&lt;br /&gt;
		title = mw.title.new(title)&lt;br /&gt;
	end&lt;br /&gt;
	if not title then&lt;br /&gt;
		-- invalid title&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	--[[This code does not work in all namespaces where the Translate tool works.&lt;br /&gt;
	--  It works in the main namespace on Meta because it allows subpages there&lt;br /&gt;
	--  It would not work in the main namespace of English Wikipedia (but the&lt;br /&gt;
	--  articles are monolignual on that wiki).&lt;br /&gt;
	--  On Meta-Wiki the main space uses subpages and its pages are translated.&lt;br /&gt;
	--  The Translate tool allows translatng pages in all namespaces, even if&lt;br /&gt;
	--  the namespace officially does not have subpages.&lt;br /&gt;
	--  On Meta-Wiki the Category namespace still does not have subpages enabled,&lt;br /&gt;
	--  even if they would be very useful for categorizing templates, that DO have&lt;br /&gt;
	--  subpages (for documentatio and tstboxes pages). This is a misconfiguration&lt;br /&gt;
	--  bug of Meta-Wiki. The work-around is to split the full title and then&lt;br /&gt;
	--  get the last titlepart.&lt;br /&gt;
	local subpage = title.subpageText&lt;br /&gt;
	--]]&lt;br /&gt;
	local titleparts = mw.text.split(title.fullText, &amp;#039;/&amp;#039;)&lt;br /&gt;
	local subpage = titleparts[#titleparts]&lt;br /&gt;
	return this.checkLanguage(subpage, &amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Get the last subpage of the current page if it is a translation.&lt;br /&gt;
    ]]&lt;br /&gt;
function this.getCurrentLanguageSubpage()&lt;br /&gt;
	return this._getLanguageSubpage(mw.title.getCurrentTitle())&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Get the first part of the language code of the subpage, before the &amp;#039;-&amp;#039;.&lt;br /&gt;
--]]&lt;br /&gt;
function this.getMainLanguageSubpage()&lt;br /&gt;
	parts = mw.text.split(this.getCurrentLanguageSubpage(), &amp;#039;-&amp;#039;)&lt;br /&gt;
	return parts[1]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Get the last subpage of the current frame if it is a translation.&lt;br /&gt;
    Not used locally.&lt;br /&gt;
--]]&lt;br /&gt;
function this.getFrameLanguageSubpage(frame)&lt;br /&gt;
	return this._getLanguageSubpage(frame:getParent():getTitle())&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Get the language of the current page. Not used locally.&lt;br /&gt;
--]]&lt;br /&gt;
function this.getLanguage()&lt;br /&gt;
    local subpage = mw.title.getCurrentTitle().subpageText&lt;br /&gt;
    return this.checkLanguage(subpage, mw.language.getContentLanguage():getCode())&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[Get the language of the current frame. Not used locally.&lt;br /&gt;
--]]&lt;br /&gt;
function this.getFrameLanguage(frame)&lt;br /&gt;
    local titleparts = mw.text.split(frame:getParent():getTitle(), &amp;#039;/&amp;#039;)&lt;br /&gt;
    local subpage = titleparts[#titleparts]&lt;br /&gt;
    return this.checkLanguage(subpage, mw.language.getContentLanguage():getCode())&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function this.title(namespace, basepagename, subpage)&lt;br /&gt;
    local message, title&lt;br /&gt;
    local pagename = basepagename&lt;br /&gt;
    if (subpage or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        pagename = pagename .. &amp;#039;/&amp;#039; .. subpage&lt;br /&gt;
    end&lt;br /&gt;
    local valid, title = xpcall(function()&lt;br /&gt;
            return mw.title.new(pagename, namespace) -- costly&lt;br /&gt;
        end, function(msg) -- catch undocumented exception (!?)&lt;br /&gt;
            -- thrown when namespace does not exist. The doc still&lt;br /&gt;
            -- says it should return a title, even in that case...&lt;br /&gt;
            message = msg&lt;br /&gt;
        end)&lt;br /&gt;
    if valid and title ~= nil and (title.id or 0) ~= 0 then&lt;br /&gt;
        return title&lt;br /&gt;
    end&lt;br /&gt;
    return { -- &amp;quot;pseudo&amp;quot; mw.title object with id = nil in case of error&lt;br /&gt;
        prefixedText = pagename, -- the only property we need below&lt;br /&gt;
        message = message -- only for debugging&lt;br /&gt;
    }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[If on a translation subpage (like Foobar/de), this function returns&lt;br /&gt;
    a given template in the same language, if the translation is available.&lt;br /&gt;
    Otherwise, the template is returned in its default language, without&lt;br /&gt;
    modification.&lt;br /&gt;
    This is aimed at replacing the current implementation of Template:TNTN.&lt;br /&gt;
&lt;br /&gt;
    This version does not expand the returned template name: this solves the&lt;br /&gt;
    problem of self-recursion in TNT when translatable templates need themselves&lt;br /&gt;
    to transclude other translable templates (such as Tnavbar).&lt;br /&gt;
--]]&lt;br /&gt;
function this.getTranslatedTemplate(frame, withStatus)&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    local pagename = args[&amp;#039;template&amp;#039;]&lt;br /&gt;
    --[[Check whether the pagename is actually in the Template namespace, or&lt;br /&gt;
        if we&amp;#039;re transcluding a main-namespace page.&lt;br /&gt;
        (added for backward compatibility of Template:TNT)&lt;br /&gt;
        ]]&lt;br /&gt;
    local namespace, title = args[&amp;#039;tntns&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
    if namespace ~= &amp;#039;&amp;#039; then -- Checks for tntns parameter for custom ns.&lt;br /&gt;
        title = this.title(namespace, pagename) -- Costly&lt;br /&gt;
    else -- Supposes that set page is in ns10.&lt;br /&gt;
    	namespace = &amp;#039;Template&amp;#039;&lt;br /&gt;
        title = this.title(namespace, pagename) -- Costly&lt;br /&gt;
        if title.id == nil then -- not found in the Template namespace, assume the main namespace (for backward compatibility)&lt;br /&gt;
    	    namespace = &amp;#039;&amp;#039;&lt;br /&gt;
            title = this.title(namespace, pagename) -- Costly&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    -- Get the last subpage and check if it matches a known language code.&lt;br /&gt;
    local subpage = args[&amp;#039;uselang&amp;#039;] or &amp;#039;&amp;#039;&lt;br /&gt;
    if subpage == &amp;#039;&amp;#039; then&lt;br /&gt;
        subpage = this.getCurrentLanguageSubpage()&lt;br /&gt;
    end&lt;br /&gt;
    if subpage == &amp;#039;&amp;#039; then&lt;br /&gt;
        -- Check if a translation of the pagename exists in English&lt;br /&gt;
        local newtitle = this.title(namespace, pagename, &amp;#039;en&amp;#039;) -- Costly&lt;br /&gt;
        -- Use the translation when it exists&lt;br /&gt;
        if newtitle.id ~= nil then&lt;br /&gt;
            title = newtitle&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        -- Check if a translation of the pagename exists in that language&lt;br /&gt;
        local newtitle = this.title(namespace, pagename, subpage) -- Costly&lt;br /&gt;
        if newtitle.id == nil then&lt;br /&gt;
            -- Check if a translation of the pagename exists in English&lt;br /&gt;
            newtitle = this.title(namespace, pagename, &amp;#039;en&amp;#039;) -- Costly&lt;br /&gt;
        end&lt;br /&gt;
        -- Use the translation when it exists&lt;br /&gt;
        if newtitle.id ~= nil then&lt;br /&gt;
            title = newtitle&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    -- At this point the title should exist&lt;br /&gt;
    if withStatus then&lt;br /&gt;
    	-- status returned to Lua function below&lt;br /&gt;
        return title.prefixedText, title.id ~= nil&lt;br /&gt;
    else&lt;br /&gt;
    	-- returned directly to MediaWiki&lt;br /&gt;
        return title.prefixedText&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[If on a translation subpage (like Foobar/de), this function renders&lt;br /&gt;
    a given template in the same language, if the translation is available.&lt;br /&gt;
    Otherwise, the template is rendered in its default language, without&lt;br /&gt;
    modification.&lt;br /&gt;
    This is aimed at replacing the current implementation of Template:TNT.&lt;br /&gt;
    &lt;br /&gt;
    Note that translatable templates cannot transclude themselves other&lt;br /&gt;
    translatable templates, as it will recurse on TNT. Use TNTN instead&lt;br /&gt;
    to return only the effective template name to expand externally, with&lt;br /&gt;
    template parameters also provided externally.&lt;br /&gt;
--]]&lt;br /&gt;
function this.renderTranslatedTemplate(frame)&lt;br /&gt;
	local title, found = this.getTranslatedTemplate(frame, true)&lt;br /&gt;
    -- At this point the title should exist prior to performing the expansion&lt;br /&gt;
    -- of the template, otherwise render a red link to the missing page&lt;br /&gt;
    -- (resolved in its assumed namespace). If we don&amp;#039;t tet this here, a&lt;br /&gt;
    -- script error would be thrown. Returning a red link is consistant with&lt;br /&gt;
    -- MediaWiki behavior when attempting to transclude inexistant templates.&lt;br /&gt;
	if not found then&lt;br /&gt;
		return &amp;#039;[[&amp;#039; .. title .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
    -- Copy args pseudo-table to a proper table so we can feed it to expandTemplate.&lt;br /&gt;
    -- Then render the pagename.&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
    local pargs = (frame:getParent() or {}).args&lt;br /&gt;
    local arguments = {}&lt;br /&gt;
    if (args[&amp;#039;noshift&amp;#039;] or &amp;#039;&amp;#039;) == &amp;#039;&amp;#039; then&lt;br /&gt;
        for k, v in pairs(pargs) do&lt;br /&gt;
            local n = tonumber(k) or 0&lt;br /&gt;
            if n &amp;lt;= 0 then -- unnumbered args&lt;br /&gt;
                arguments[k] = v&lt;br /&gt;
            elseif n &amp;gt;= 2 then -- numbered args &amp;gt;= 2 need to be shifted&lt;br /&gt;
                arguments[n - 1] = v&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    else -- special case where TNT is used as autotranslate&lt;br /&gt;
    	-- (don&amp;#039;t shift again what is shifted in the invokation)&lt;br /&gt;
        for k, v in pairs(pargs) do&lt;br /&gt;
            arguments[k] = v&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    arguments[&amp;#039;template&amp;#039;] = title -- override the existing parameter of the base template name supplied with the full name of the actual template expanded&lt;br /&gt;
    arguments[&amp;#039;tntns&amp;#039;] = nil -- discard the specified namespace override&lt;br /&gt;
    arguments[&amp;#039;uselang&amp;#039;] = args[&amp;#039;uselang&amp;#039;] -- argument forwarded into parent frame&lt;br /&gt;
    arguments[&amp;#039;noshift&amp;#039;] = args[&amp;#039;noshift&amp;#039;] -- argument forwarded into parent frame&lt;br /&gt;
    return frame:expandTemplate{title = &amp;#039;:&amp;#039; .. title, args = arguments}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[A helper for mocking TNT in Special:TemplateSandbox. TNT breaks&lt;br /&gt;
    TemplateSandbox; mocking it with this method means templates won&amp;#039;t be&lt;br /&gt;
    localized but at least TemplateSandbox substitutions will work properly.&lt;br /&gt;
    Won&amp;#039;t work with complex uses.&lt;br /&gt;
--]]&lt;br /&gt;
function this.mockTNT(frame)&lt;br /&gt;
    local pargs = (frame:getParent() or {}).args&lt;br /&gt;
    local arguments = {}&lt;br /&gt;
    for k, v in pairs(pargs) do&lt;br /&gt;
        local n = tonumber(k) or 0&lt;br /&gt;
        if n &amp;lt;= 0 then -- unnumbered args&lt;br /&gt;
            arguments[k] = v&lt;br /&gt;
        elseif n &amp;gt;= 2 then -- numbered args &amp;gt;= 2 need to be shifted&lt;br /&gt;
            arguments[n - 1] = v&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if not pargs[1] then&lt;br /&gt;
    	return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
    return frame:expandTemplate{title = &amp;#039;Template:&amp;#039; .. pargs[1], args = arguments}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return this&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Template_translation</comments>
		</item>
		<item>
			<title>テンプレート:Dir</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Dir&amp;diff=2473&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Dir&amp;diff=2473&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Dir&quot; title=&quot;テンプレート:Dir&quot;&gt;テンプレート:Dir&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#ifeq:{{#dir:{{{lang|{{{1|{{int:lang}}}}}}}}}}|rtl|{{{2|{{{rtl|rtl}}}}}}|{{{3|{{{ltr|ltr}}}}}}}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Dir</comments>
		</item>
		<item>
			<title>テンプレート:Localized link</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Localized_link&amp;diff=2471&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Localized_link&amp;diff=2471&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Localized_link&quot; title=&quot;テンプレート:Localized link&quot;&gt;テンプレート:Localized link&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages/&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifeq:{{FULLPAGENAME:{{{1}}}}}|{{FULLPAGENAME:{{translatable}}}}&amp;lt;!--self link (including translation pages)--&amp;gt;&lt;br /&gt;
  |&amp;lt;b&amp;gt;&lt;br /&gt;
}}&amp;lt;!----&amp;gt;[[Special:MyLanguage/{{{1}}}|{{#if:{{{2|}}}&lt;br /&gt;
|{{{2}}}&lt;br /&gt;
|{{{2|{{#ifexist:Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page display title/{{PAGELANGUAGE}}&amp;lt;!--if the source page, PAGELANGUAGE returns en--&amp;gt;&lt;br /&gt;
  |{{#ifexpr:{{#if:{{{nsp|}}}|1|0}} and {{NAMESPACENUMBER:{{{1}}}}}!=0&lt;br /&gt;
    |{{#ifeq:{{PAGELANGUAGE}}|en&lt;br /&gt;
      |{{PAGENAME:{{{1}}}}}&lt;br /&gt;
      |&amp;lt;!-- check whether the string is not empty --&amp;gt;&amp;lt;!--&lt;br /&gt;
    --&amp;gt;{{#if:{{PAGENAME:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} }} }}&lt;br /&gt;
         |{{#ifeq:{{#invoke:string|find|{{PAGENAME:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} }} }}|:}}|0&lt;br /&gt;
           |{{PAGENAME:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} }} }}&lt;br /&gt;
           | {{#invoke:string|match|{{PAGENAME:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} }} }}|:(.*)}}&lt;br /&gt;
         }}&lt;br /&gt;
         |&amp;lt;!-- pass parameter to, e.g., &amp;quot;Template:LC zh&amp;quot;; check whether the string is not empty --&amp;gt;&amp;lt;!--&lt;br /&gt;
       --&amp;gt;{{#if:{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} | nsp = 0 }}&lt;br /&gt;
           |{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} | nsp = 0 }}&lt;br /&gt;
           |{{{1}}}&lt;br /&gt;
        }}&lt;br /&gt;
      }}&lt;br /&gt;
    }}&lt;br /&gt;
    |{{ {{TNTN|Translations:{{#if:{{NAMESPACE:{{{1}}}}}|{{NAMESPACE:{{{1}}}}}:}}{{PAGENAME:{{{1}}}}}/Page_display_title}} }}&lt;br /&gt;
  }}&lt;br /&gt;
  &amp;lt;!--if the translation page does not exist (or called from the source page), output as is--&amp;gt;&lt;br /&gt;
  |{{#if:{{{nsp|}}}&lt;br /&gt;
    |{{#if:{{PAGENAME:{{{1}}}}}&lt;br /&gt;
      |{{PAGENAME:{{{1}}}}}&lt;br /&gt;
      |{{{1}}}&lt;br /&gt;
    }}&lt;br /&gt;
    |{{{1}}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&amp;lt;!--#ifexist--&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}}&amp;lt;!--{{{2|--&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;}}&amp;lt;!--#if:{{{2|}}}--&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;]]&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifeq:{{FULLPAGENAME:{{{1}}}}}|{{FULLPAGENAME:{{translatable}}}}&amp;lt;!--self link (including translation pages)--&amp;gt;&lt;br /&gt;
  |&amp;lt;/b&amp;gt;&lt;br /&gt;
}}&amp;lt;span style=&amp;quot;display:none&amp;quot;&amp;gt;[[:{{{1}}}| ]]&amp;lt;/span&amp;gt;&amp;lt;!-- T63547 --&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation|content=&lt;br /&gt;
&lt;br /&gt;
{{tsh|ll|LL}}&lt;br /&gt;
{{High-use|35000}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Purpose == &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt; This helper template can be used to link to [[&amp;lt;tvar name=1&amp;gt;Special:LanguageStats&amp;lt;/tvar&amp;gt;|translatable pages]] in the user&amp;#039;s language.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; It uses the special page prefix &amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;Special:MyLanguage/&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;, which checks if there is a translated version of a page in the user&amp;#039;s language, and links to it if there is one, and links to a fallback language where available, or the default wiki language version (English in MediaWiki) if there isn&amp;#039;t.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{Localized link/doc}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
If the &amp;quot;&amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;nsp&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;quot; parameter is not defined, as link text this displays the full pagename (including the namespace); otherwise — if the &amp;quot;&amp;lt;tvar name=1&amp;gt;&amp;lt;code&amp;gt;nsp&amp;lt;/code&amp;gt;&amp;lt;/tvar&amp;gt;&amp;quot; parameter is defined to any value the link text displays the short pagename (without the namespace).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
When linking to a section within a page, the section is not displayed in the link text.&lt;br /&gt;
&lt;br /&gt;
=== Examples of simple usage === &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{(}}{{!}} class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{!}}-&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; Use&amp;lt;/translate&amp;gt;&lt;br /&gt;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; Becomes&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Communication}}&lt;br /&gt;
{{!}} {{ll|Communication}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Communication|コミュニケーション}}&lt;br /&gt;
{{!}} {{ll|Communication|コミュニケーション}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Project:About}}&lt;br /&gt;
{{!}} {{ll|Project:About}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Project:About#See_also}}&lt;br /&gt;
{{!}} {{ll|Project:About#See_also}}&lt;br /&gt;
{{!}}-&lt;br /&gt;
{{!}} {{Tlx|ll|Project:About|nsp{{=}}0}}&lt;br /&gt;
{{!}} {{ll|Project:About|nsp=0}}&lt;br /&gt;
{{!}}{{)}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Usage in translatable pages == &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
On pages prepared for translation with the &amp;lt;tvar name=1&amp;gt;{{ll|Extension:Translate|nsp=0}}&amp;lt;/tvar&amp;gt; extension, this template may be used in three ways.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; Substitute this template, then embed the wikilink target in a &amp;lt;tvar name=1&amp;gt;{{#tag:syntaxhighlight|{{^(}}tvar name=id{{)^}}...{{^(}}/tvar{{)^}}|lang=html|inline=1}}&amp;lt;/tvar&amp;gt;, separate from the translatable text of the link.&amp;lt;/translate&amp;gt;&lt;br /&gt;
#: &amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; For example:&amp;lt;/translate&amp;gt; {{#tag:syntaxhighlight|Learn more {{{{^(}}tvar name=1{{)^}}ll|Communication{{^(}}/tvar{{)^}}|about communication}}.|lang=html|inline=1}}&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; If link text is the same as the name of the target page, all of the code could also be embedded into &amp;lt;tvar name=1&amp;gt;{{tag|tvar|open}}&amp;lt;/tvar&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
#: &amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt; For example:&amp;lt;/translate&amp;gt; {{#tag:syntaxhighlight|Learn more about {{^(}}tvar name=1{{)^}}&amp;lt;nowiki&amp;gt;{{ll|Communication}}&amp;lt;/nowiki&amp;gt;{{^(}}/tvar{{)^}}.|lang=html|inline=1}}&lt;br /&gt;
# &amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; For standalone links, such as in a list or table, translate only the link text if it differs from the name of the target page.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; This is useful for bulleted lists of links, e.g. in the &amp;quot;See also:&amp;quot; sections.&amp;lt;/translate&amp;gt; &amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt; Make sure to include the parameter name when adding translate tags inside template syntax.&amp;lt;/translate&amp;gt;&lt;br /&gt;
#: &amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; For example:&amp;lt;/translate&amp;gt;&lt;br /&gt;
::: {{#tag:syntaxhighlight|* {{((}}ll{{!}}Project:About{{))}}|lang=html|inline=1}}&lt;br /&gt;
::: {{#tag:syntaxhighlight|* {{((}}ll{{!}}Communication{{!}}2={{^(}}translate{{)^}}About communication{{^(}}/translate{{)^}}{{))}}|lang=html|inline=1}}&lt;br /&gt;
&lt;br /&gt;
== Test cases ==&lt;br /&gt;
{{Localized link/testcases}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== See also == &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[Template:Localized link/messagedoc]] — &amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt; should be used for message documentation in translatable pages that use this template.&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tl|Translatable template}} - &amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt; alias &amp;lt;tvar name=1&amp;gt;{{tl|TNT}}&amp;lt;/tvar&amp;gt; or &amp;lt;tvar name=2&amp;gt;{{tl|tnt}}&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tl|Translatable template name}} - &amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt; alias &amp;lt;tvar name=1&amp;gt;{{tl|TNTN}}&amp;lt;/tvar&amp;gt; or &amp;lt;tvar name=2&amp;gt;{{tl|tntn}}&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tl|Page language link}} - &amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt; alias &amp;lt;tvar name=1&amp;gt;{{tl|pll}}&amp;lt;/tvar&amp;gt;&amp;lt;/translate&amp;gt; - &amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt; add a link from a translatable page to another translatable page in the same language&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
[[Category:Internationalization templates{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Localized_link</comments>
		</item>
		<item>
			<title>テンプレート:Ll</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Ll&amp;diff=2469&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Ll&amp;diff=2469&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Ll&quot; class=&quot;mw-redirect&quot; title=&quot;テンプレート:Ll&quot;&gt;テンプレート:Ll&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;#REDIRECT [[Template:Localized link]]&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:42 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Ll</comments>
		</item>
		<item>
			<title>テンプレート:Pagelang</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Pagelang&amp;diff=2467&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Pagelang&amp;diff=2467&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Pagelang&quot; title=&quot;テンプレート:Pagelang&quot;&gt;テンプレート:Pagelang&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#ifeq:{{#invoke:Template translation|getLanguageSubpage|{{{1|}}}}}|en&lt;br /&gt;
|{{#ifeq:{{#titleparts:{{{1|{{PAGENAME}}}}}||-1}}|en&lt;br /&gt;
  |{{#invoke:Template translation|getLanguageSubpage|{{{1|}}}}}&lt;br /&gt;
  }}&lt;br /&gt;
|{{#invoke:Template translation|getLanguageSubpage|{{{1|}}}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:41 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Pagelang</comments>
		</item>
		<item>
			<title>テンプレート:Translatable</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Translatable&amp;diff=2465&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Translatable&amp;diff=2465&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Translatable&quot; title=&quot;テンプレート:Translatable&quot;&gt;テンプレート:Translatable&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;languages /&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;{{#ifeq:{{pagelang|{{{1|{{FULLPAGENAME}}}}}}}|&lt;br /&gt;
|{{{1|{{FULLPAGENAME}}}}}&lt;br /&gt;
|{{#invoke:String|sub|{{{1|{{FULLPAGENAME}}}}}&lt;br /&gt;
  |1&lt;br /&gt;
  |{{#expr:{{#invoke:String|len|{{{1|{{FULLPAGENAME}}}}}}}-{{#invoke:String|len|{{pagelang|{{{1|{{FULLPAGENAME}}}}}}}}}-1}}&lt;br /&gt;
  }}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Documentation|content=&lt;br /&gt;
{{Lua|Module:String}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Examples == &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* {{tlx|translatable}}&lt;br /&gt;
{{translatable}}&lt;br /&gt;
* {{tlx|translatable|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt; Page name&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
{{translatable|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt; Page name&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
* {{tlx|translatable|2=&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; Page name&amp;lt;/translate&amp;gt;/{{PAGELANGUAGE}} }}&lt;br /&gt;
{{translatable|1=&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt; Page name&amp;lt;/translate&amp;gt;/{{PAGELANGUAGE}} }}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Internationalization templates{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:41 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Translatable</comments>
		</item>
		<item>
			<title>テンプレート:Nmbox</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Nmbox&amp;diff=2463&amp;oldid=0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Nmbox&amp;diff=2463&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; がファイルのアップロードにより、&lt;a href=&quot;/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88:Nmbox&quot; title=&quot;テンプレート:Nmbox&quot;&gt;テンプレート:Nmbox&lt;/a&gt; をインポートしました (版 1)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;templatestyles src=&amp;quot;Template:Nmbox/styles.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;nmbox noprint {{dir|{{PAGELANGUAGE}}|mw-content-rtl|mw-content-ltr}}&amp;quot;&amp;gt;{{#if: {{{image|}}}{{{header|}}}&lt;br /&gt;
|&amp;lt;div class=&amp;quot;nmbox-header&amp;quot;&amp;gt;{{#if: {{{image|}}}|&amp;lt;div class=&amp;quot;nmbox-image mbox-image&amp;quot;&amp;gt;{{{image|}}}&amp;lt;/div&amp;gt;}}{{{header|}}}&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
{{#if:{{{text|}}}|&amp;lt;div class=&amp;quot;nmbox-text mbox-text&amp;quot;&amp;gt;{{{text|}}}&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{documentation}}&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:21:41 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Nmbox</comments>
		</item>
		<item>
			<title>TAIchannelWiki:自動承認された利用者</title>
			<link>https://taiwiki.nekoch18.net/index.php?title=TAIchannelWiki:%E8%87%AA%E5%8B%95%E6%89%BF%E8%AA%8D%E3%81%95%E3%82%8C%E3%81%9F%E5%88%A9%E7%94%A8%E8%80%85&amp;diff=2461&amp;oldid=719</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/index.php?title=TAIchannelWiki:%E8%87%AA%E5%8B%95%E6%89%BF%E8%AA%8D%E3%81%95%E3%82%8C%E3%81%9F%E5%88%A9%E7%94%A8%E8%80%85&amp;diff=2461&amp;oldid=719</guid>
			<description>&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年6月3日 (水) 19:11時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4日以上経過したアカウントは、自動的に「 &lt;/del&gt;autoconfirmed 」(自動承認された利用者) グループに昇格されます。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;10日以上経過したアカウントは、自動的に「 &lt;/ins&gt;autoconfirmed 」(自動承認された利用者) グループに昇格されます。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;自動承認された利用者は、ファイルのアップロードできるようになります。&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;自動承認された利用者は、ページの編集、ファイルのアップロードができるようになります。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</description>
			<pubDate>Wed, 03 Jun 2026 10:11:36 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/TAIchannelWiki%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:%E8%87%AA%E5%8B%95%E6%89%BF%E8%AA%8D%E3%81%95%E3%82%8C%E3%81%9F%E5%88%A9%E7%94%A8%E8%80%85</comments>
		</item>
		<item>
			<title>利用者:Frydge4814</title>
			<link>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:Frydge4814</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:Frydge4814</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Nekoch18&quot; class=&quot;mw-userlink&quot; title=&quot;利用者:Nekoch18&quot;&gt;&lt;bdi&gt;Nekoch18&lt;/bdi&gt;&lt;/a&gt; が &lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Frydge4814&quot; title=&quot;利用者:Frydge4814&quot;&gt;Frydge4814&lt;/a&gt; の所属グループを (なし) から blacklist に変更しました&lt;/p&gt;
</description>
			<pubDate>Wed, 03 Jun 2026 09:56:29 GMT</pubDate>
			<dc:creator>Nekoch18</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Frydge4814</comments>
		</item>
		<item>
			<title>利用者:DianMussen6</title>
			<link>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:DianMussen6</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:DianMussen6</guid>
			<description>&lt;p&gt;利用者アカウント &lt;a href=&quot;/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:DianMussen6&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;利用者:DianMussen6 (存在しないページ)&quot;&gt;&lt;bdi&gt;DianMussen6&lt;/bdi&gt;&lt;/a&gt; が作成されました&lt;/p&gt;
</description>
			<pubDate>Wed, 03 Jun 2026 02:28:07 GMT</pubDate>
			<dc:creator>DianMussen6</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:DianMussen6</comments>
		</item>
		<item>
			<title>利用者:UFTVernita</title>
			<link>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:UFTVernita</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:UFTVernita</guid>
			<description>&lt;p&gt;利用者アカウント &lt;a href=&quot;/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:UFTVernita&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;利用者:UFTVernita (存在しないページ)&quot;&gt;&lt;bdi&gt;UFTVernita&lt;/bdi&gt;&lt;/a&gt; が作成されました&lt;/p&gt;
</description>
			<pubDate>Wed, 03 Jun 2026 02:22:01 GMT</pubDate>
			<dc:creator>UFTVernita</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:UFTVernita</comments>
		</item>
		<item>
			<title>利用者:AdrieneWyrick0</title>
			<link>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:AdrieneWyrick0</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:AdrieneWyrick0</guid>
			<description>&lt;p&gt;利用者アカウント &lt;a href=&quot;/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:AdrieneWyrick0&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;利用者:AdrieneWyrick0 (存在しないページ)&quot;&gt;&lt;bdi&gt;AdrieneWyrick0&lt;/bdi&gt;&lt;/a&gt; が作成されました&lt;/p&gt;
</description>
			<pubDate>Wed, 03 Jun 2026 01:06:48 GMT</pubDate>
			<dc:creator>AdrieneWyrick0</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:AdrieneWyrick0</comments>
		</item>
		<item>
			<title>利用者:ReneFaber12</title>
			<link>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:ReneFaber12</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:ReneFaber12</guid>
			<description>&lt;p&gt;利用者アカウント &lt;a href=&quot;/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:ReneFaber12&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;利用者:ReneFaber12 (存在しないページ)&quot;&gt;&lt;bdi&gt;ReneFaber12&lt;/bdi&gt;&lt;/a&gt; が作成されました&lt;/p&gt;
</description>
			<pubDate>Tue, 02 Jun 2026 16:58:37 GMT</pubDate>
			<dc:creator>ReneFaber12</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:ReneFaber12</comments>
		</item>
		<item>
			<title>利用者:Lenora0853</title>
			<link>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:Lenora0853</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:Lenora0853</guid>
			<description>&lt;p&gt;利用者アカウント &lt;a href=&quot;/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Lenora0853&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;利用者:Lenora0853 (存在しないページ)&quot;&gt;&lt;bdi&gt;Lenora0853&lt;/bdi&gt;&lt;/a&gt; が作成されました&lt;/p&gt;
</description>
			<pubDate>Tue, 02 Jun 2026 08:45:39 GMT</pubDate>
			<dc:creator>Lenora0853</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Lenora0853</comments>
		</item>
		<item>
			<title>利用者:Laura65K6880</title>
			<link>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:Laura65K6880</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:Laura65K6880</guid>
			<description>&lt;p&gt;利用者アカウント &lt;a href=&quot;/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Laura65K6880&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;利用者:Laura65K6880 (存在しないページ)&quot;&gt;&lt;bdi&gt;Laura65K6880&lt;/bdi&gt;&lt;/a&gt; が作成されました&lt;/p&gt;
</description>
			<pubDate>Tue, 02 Jun 2026 07:33:43 GMT</pubDate>
			<dc:creator>Laura65K6880</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Laura65K6880</comments>
		</item>
		<item>
			<title>利用者:Marylou8271</title>
			<link>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:Marylou8271</link>
			<guid isPermaLink="false">https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85:Marylou8271</guid>
			<description>&lt;p&gt;利用者アカウント &lt;a href=&quot;/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Marylou8271&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new mw-userlink&quot; title=&quot;利用者:Marylou8271 (存在しないページ)&quot;&gt;&lt;bdi&gt;Marylou8271&lt;/bdi&gt;&lt;/a&gt; が作成されました&lt;/p&gt;
</description>
			<pubDate>Tue, 02 Jun 2026 06:54:34 GMT</pubDate>
			<dc:creator>Marylou8271</dc:creator>
			<comments>https://taiwiki.nekoch18.net/%E5%88%A9%E7%94%A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:Marylou8271</comments>
		</item>
</channel></rss>