Page MenuHomeMiraheze

Wikipedia-20180204124650.xml

Authored By
Rob_Kam
Feb 5 2018, 17:45
Size
3 MB
Referenced Files
None
Subscribers
None

Wikipedia-20180204124650.xml

This file is larger than 256 KB, so syntax highlighting was skipped.
<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.10/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.10/ http://www.mediawiki.org/xml/export-0.10.xsd" version="0.10" xml:lang="en">
<siteinfo>
<sitename>Wikipedia</sitename>
<dbname>enwiki</dbname>
<base>https://en.wikipedia.org/wiki/Main_Page</base>
<generator>MediaWiki 1.31.0-wmf.17</generator>
<case>first-letter</case>
<namespaces>
<namespace key="-2" case="first-letter">Media</namespace>
<namespace key="-1" case="first-letter">Special</namespace>
<namespace key="0" case="first-letter" />
<namespace key="1" case="first-letter">Talk</namespace>
<namespace key="2" case="first-letter">User</namespace>
<namespace key="3" case="first-letter">User talk</namespace>
<namespace key="4" case="first-letter">Wikipedia</namespace>
<namespace key="5" case="first-letter">Wikipedia talk</namespace>
<namespace key="6" case="first-letter">File</namespace>
<namespace key="7" case="first-letter">File talk</namespace>
<namespace key="8" case="first-letter">MediaWiki</namespace>
<namespace key="9" case="first-letter">MediaWiki talk</namespace>
<namespace key="10" case="first-letter">Template</namespace>
<namespace key="11" case="first-letter">Template talk</namespace>
<namespace key="12" case="first-letter">Help</namespace>
<namespace key="13" case="first-letter">Help talk</namespace>
<namespace key="14" case="first-letter">Category</namespace>
<namespace key="15" case="first-letter">Category talk</namespace>
<namespace key="100" case="first-letter">Portal</namespace>
<namespace key="101" case="first-letter">Portal talk</namespace>
<namespace key="108" case="first-letter">Book</namespace>
<namespace key="109" case="first-letter">Book talk</namespace>
<namespace key="118" case="first-letter">Draft</namespace>
<namespace key="119" case="first-letter">Draft talk</namespace>
<namespace key="446" case="first-letter">Education Program</namespace>
<namespace key="447" case="first-letter">Education Program talk</namespace>
<namespace key="710" case="first-letter">TimedText</namespace>
<namespace key="711" case="first-letter">TimedText talk</namespace>
<namespace key="828" case="first-letter">Module</namespace>
<namespace key="829" case="first-letter">Module talk</namespace>
<namespace key="2300" case="first-letter">Gadget</namespace>
<namespace key="2301" case="first-letter">Gadget talk</namespace>
<namespace key="2302" case="case-sensitive">Gadget definition</namespace>
<namespace key="2303" case="case-sensitive">Gadget definition talk</namespace>
</namespaces>
</siteinfo>
<page>
<title>Template:!!</title>
<ns>10</ns>
<id>5994763</id>
<revision>
<id>632419369</id>
<parentid>632419294</parentid>
<timestamp>2014-11-04T14:12:38Z</timestamp>
<contributor>
<username>Pigsonthewing</username>
<id>26248</id>
</contributor>
<comment>stet</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="44">||&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>o9jjx0pl1nk3xv3maqyewo5ud79pa5g</sha1>
</revision>
</page>
<page>
<title>Template:!((</title>
<ns>10</ns>
<id>36487505</id>
<revision>
<id>620194580</id>
<parentid>620193684</parentid>
<timestamp>2014-08-07T05:34:55Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:!((: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="42">[[&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>kx6wfr2em4x51ldy401n0q58z3lvxb8</sha1>
</revision>
</page>
<page>
<title>Template:))!</title>
<ns>10</ns>
<id>36487511</id>
<revision>
<id>620194518</id>
<parentid>620193376</parentid>
<timestamp>2014-08-07T05:34:06Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<minor/>
<comment>Protected Template:))!: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="42">]]&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>9eedfl8595z67nnifo09swq3y20vmvs</sha1>
</revision>
</page>
<page>
<title>Template:-</title>
<ns>10</ns>
<id>1011446</id>
<redirect title="Template:Clear" />
<revision>
<id>769942854</id>
<parentid>769932535</parentid>
<timestamp>2017-03-12T14:41:31Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<comment>add [[WP:RCAT|rcat]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="112">#REDIRECT [[Template:Clear]]
{{Redirect category shell|
{{R from modification}}
{{R from template shortcut}}
}}</text>
<sha1>7ftw22ju220o4mhfryrhdhdanb4vzun</sha1>
</revision>
</page>
<page>
<title>Template:1/2</title>
<ns>10</ns>
<id>25537134</id>
<revision>
<id>636441408</id>
<parentid>588068481</parentid>
<timestamp>2014-12-03T10:10:20Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="54">{{frac|1|2}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>ih7cqrj9jqgnsdovekpg7i95d9hqyyo</sha1>
</revision>
</page>
<page>
<title>Template:=</title>
<ns>10</ns>
<id>5762361</id>
<revision>
<id>690395465</id>
<parentid>579820445</parentid>
<timestamp>2015-11-13T02:17:24Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:=: when I changed this to add template editors, I didn't realize it had cascding protection—so all my change did was make it appear as if it could be edited by them ([Edit=Allow only administrators] (indefinite) [...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="43">=&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>81y2jvjxw3y0febsqx5xbr4ikdc7nr6</sha1>
</revision>
</page>
<page>
<title>Template:Aligned table</title>
<ns>10</ns>
<id>41873333</id>
<revision>
<id>745333196</id>
<parentid>659217541</parentid>
<timestamp>2016-10-20T14:49:42Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="110">{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#invoke:aligned table|table}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>2blrypc09jwqw1omu8ienw215a7iiri</sha1>
</revision>
</page>
<page>
<title>Template:Anchor</title>
<ns>10</ns>
<id>2236346</id>
<revision>
<id>629642299</id>
<parentid>586910254</parentid>
<timestamp>2014-10-14T23:35:24Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>add {{{|safesubst:}}} per talk</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="157">{{{{{|safesubst:}}}#invoke:anchor|main}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>cjfgfxc6tpjgpyvzhnbfkngu6u3spzc</sha1>
</revision>
</page>
<page>
<title>Template:Asbox</title>
<ns>10</ns>
<id>13431031</id>
<revision>
<id>644713987</id>
<parentid>644575756</parentid>
<timestamp>2015-01-29T16:00:41Z</timestamp>
<contributor>
<username>Od Mishehu</username>
<id>461626</id>
</contributor>
<comment>let's see if it works now</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="163">&lt;includeonly&gt;{{#invoke:Asbox|main}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories to the /doc subpage and interwikis to Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>ksm2ygwb5s1f3x9t0pn08ktjf3admyc</sha1>
</revision>
</page>
<page>
<title>Template:Asbox/stubtree</title>
<ns>10</ns>
<id>24115492</id>
<revision>
<id>756272865</id>
<parentid>736859310</parentid>
<timestamp>2016-12-23T03:20:31Z</timestamp>
<contributor>
<username>Enterprisey</username>
<id>16663390</id>
</contributor>
<comment>+docs</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="363">{{#ifeq:{{{1|{{PAGENAME}}}}}|Stub||{{#invoke:Asbox stubtree|subtree|pagename={{PAGENAME}}}}}}&lt;noinclude&gt;
{{doc|content=
{{Lua|Module:Asbox stubtree}}
This template exposes a module, [[Module:Asbox stubtree]], used in the implementation of the parent template, {{tl|Asbox}}. The module creates stub hierarchy boxes for stub template documentations.
}}
&lt;/noinclude&gt;</text>
<sha1>60np1ua8tf3e72osncg5sr2ptjg91kk</sha1>
</revision>
</page>
<page>
<title>Template:Asbox/templatepage</title>
<ns>10</ns>
<id>24064605</id>
<revision>
<id>675608606</id>
<parentid>675596766</parentid>
<timestamp>2015-08-11T16:35:45Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Quest for Truth</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="91">{{#invoke:Asbox|templatepage&lt;noinclude&gt;|demo=doc|subject={{lua|Module:Asbox}}&lt;/noinclude&gt;}}</text>
<sha1>9lbbo5rpy4k38td0x29d0v4mlzflop5</sha1>
</revision>
</page>
<page>
<title>Template:Audio</title>
<ns>10</ns>
<id>1501273</id>
<revision>
<id>804355176</id>
<parentid>690278796</parentid>
<timestamp>2017-10-08T13:04:29Z</timestamp>
<contributor>
<username>Nardog</username>
<id>5908908</id>
</contributor>
<comment>implement a tracking category</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="769">&lt;span class=&quot;unicode haudio&quot;&gt;&lt;span class=&quot;fn&quot;&gt;&lt;span style=&quot;white-space:nowrap&quot;&gt;[[File:Loudspeaker.svg|11px|link=File:{{{1}}}|About this sound]]&amp;nbsp;&lt;/span&gt;[[:Media:{{{1|}}}|{{{2|{{{1|}}}}}}]]&lt;/span&gt;{{#ifeq:{{{help|}}}|no||&amp;nbsp;&lt;small class=&quot;metadata audiolinkinfo&quot; style=&quot;cursor:help;&quot;&gt;([[Wikipedia:Media help|&lt;span style=&quot;cursor:help;&quot;&gt;help&lt;/span&gt;]]·[[:File:{{{1|}}}|&lt;span style=&quot;cursor:help;&quot;&gt;info&lt;/span&gt;]])&lt;/small&gt;}}{{#ifeq:{{NAMESPACE}}|{{ns:0}}|[[Category:Articles with hAudio microformats]]}}&lt;/span&gt;&lt;!-- tracking category begin --&gt;{{#if:{{{1|}}}|{{#ifexist:Media:{{{1}}}||[[Category:Pages linking to missing files]]}}}}&lt;!-- tracking category end --&gt;&lt;noinclude&gt;
{{documentation}}&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>r2t0tmfgdey2t8cnjkn9x2fux9sit2i</sha1>
</revision>
</page>
<page>
<title>Template:Aye</title>
<ns>10</ns>
<id>4894684</id>
<revision>
<id>579822072</id>
<parentid>434910756</parentid>
<timestamp>2013-11-02T02:47:04Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Aye: Enable access by template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="131">&lt;onlyinclude&gt;[[File:Green check.svg|13px|alt=Green tick|link=]]&lt;SPAN STYLE=&quot;display:none&quot;&gt;Y&lt;/SPAN&gt;&lt;/onlyinclude&gt;
{{documentation}}</text>
<sha1>5gycadl77izrbytpnok054pl5fozou2</sha1>
</revision>
</page>
<page>
<title>Template:Big</title>
<ns>10</ns>
<id>5816860</id>
<revision>
<id>750708882</id>
<parentid>750708828</parentid>
<timestamp>2016-11-21T11:09:43Z</timestamp>
<contributor>
<username>Materialscientist</username>
<id>7852030</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Big]]&quot; ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="177">&lt;span style=&quot;font-size: 120%;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Please add categories to the /doc subpage; interwikis go to Wikidata, thank you. --&gt;
&lt;/noinclude&gt;</text>
<sha1>h2e0f82fasmre1wg7mmooho2xrnyw8f</sha1>
</revision>
</page>
<page>
<title>Template:Bigmath</title>
<ns>10</ns>
<id>17789023</id>
<revision>
<id>517552400</id>
<parentid>400489395</parentid>
<timestamp>2012-10-13T10:42:43Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>format</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="77">{{math|size=165%|{{{1|}}}{{{2|}}}}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>7rhjsekryk1w85n4jd27qhsn1gg8sq4</sha1>
</revision>
</page>
<page>
<title>Template:Bug</title>
<ns>10</ns>
<id>4017378</id>
<revision>
<id>675609216</id>
<parentid>675605807</parentid>
<timestamp>2015-08-11T16:38:36Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Multichill</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="368">&lt;noinclude&gt;{{Deprecated template|Bug|Phab|date=February 2015}}&lt;/noinclude&gt;[[bugzilla:{{{1}}}|bug {{{1}}}]]{{#if:{{{comment|}}}|&amp;#32;(comment [[bugzilla:{{{1}}}&amp;#35;c{{{comment}}}|#{{{comment}}}]])}}{{#if:{{{label|}}}|&amp;#32;({{{label}}})}}&lt;span style=&quot;display:none;&quot;&gt;http://bugzilla.wikimedia.org/show_bug.cgi?id={{{1}}}&lt;/span&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>m8h9a40lglba2notu9mqk6n6ldalv6t</sha1>
</revision>
</page>
<page>
<title>Template:C</title>
<ns>10</ns>
<id>3289688</id>
<revision>
<id>717809007</id>
<parentid>717589027</parentid>
<timestamp>2016-04-29T21:00:11Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>rm #titleparts</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="105">[[:Category:{{PAGENAME:{{{1}}}}}|{{{2|{{PAGENAME:{{{1}}}}}}}}]]&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>5ihlenrrtiyl0onp17hzt1jb0im35x9</sha1>
</revision>
</page>
<page>
<title>Template:CSS list-style-type values</title>
<ns>10</ns>
<id>31080352</id>
<revision>
<id>766523205</id>
<parentid>709394347</parentid>
<timestamp>2017-02-20T17:52:40Z</timestamp>
<contributor>
<username>DocWatson42</username>
<id>38455</id>
</contributor>
<minor/>
<comment>Cleaned up references and other matters.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2257">{{anchor|CSS list-style-type values}}
{{Hidden begin
|title=CSS list-style-type values
|titlestyle=background:lavender; text-align:center;
|toggle=right
}}
{{fake heading|sub=3|1=CSS 2.1 &lt;code&gt;list-style-type&lt;/code&gt; values&lt;ref&gt;{{cite web |title=Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification |publisher=[[W3C]] |date=December 7, 2010 |url=http://www.w3.org/TR/2010/WD-CSS2-20101207/cover.html}}&lt;/ref&gt;}}
{{CSS list-style-type values/core
|type=none
}}
{{CSS list-style-type values/core
|type=disc
}}
{{CSS list-style-type values/core
|type=circle
}}
{{CSS list-style-type values/core
|type=square
}}
{{CSS list-style-type values/core
|type=decimal
}}
{{CSS list-style-type values/core
|type=decimal-leading-zero
|ie6=no
|ie7=no
}}
{{CSS list-style-type values/core
|type=lower-roman
}}
{{CSS list-style-type values/core
|type=upper-roman
}}
{{CSS list-style-type values/core
|type=lower-alpha
}}
{{CSS list-style-type values/core
|type=upper-alpha
}}
{{CSS list-style-type values/core
|type=lower-greek
|ie6=no
|ie7=no
}}
{{CSS list-style-type values/core
|type=armenian
|ie6=no
|ie7=no
}}
{{CSS list-style-type values/core
|type=georgian
|ie6=no
|ie7=no
}}
{{fake heading|sub=3|1=CSS2 &lt;code&gt;list-style-type&lt;/code&gt; values deprecated in CSS 2.1&lt;ref&gt;{{cite web |title=Cascading Style Sheets, level 2 CSS2 Specification |publisher=[[W3C]] |date=April 11, 2008|url=http://www.w3.org/TR/2008/REC-CSS2-20080411/}}&lt;/ref&gt;}}
...but still supported by some browsers.
{{CSS list-style-type values/core
|type=hebrew
|ie6=no
|ie7=no
|ie8=no
|ie9=no
|ie10=no
|o10=no
|o11=no
|o12=no
}}
{{CSS list-style-type values/core
|type=cjk-ideographic
|ie6=no
|ie7=no
|ie8=no
|ie9=no
|ie10=no
|o10=no
|o11=no
|o12=no
}}
{{CSS list-style-type values/core
|type=hiragana
|ie6=no
|ie7=no
|ie8=no
|ie9=no
|ie10=no
|o10=no
|o11=no
|o12=no
}}
{{CSS list-style-type values/core
|type=katakana
|ie6=no
|ie7=no
|ie8=no
|ie9=no
|ie10=no
|o10=no
|o11=no
|o12=no
}}
{{CSS list-style-type values/core
|type=hiragana-iroha
|ie6=no
|ie7=no
|ie8=no
|ie9=no
|ie10=no
|o10=no
|o11=no
|o12=no
}}
{{CSS list-style-type values/core
|type=katakana-iroha
|ie6=no
|ie7=no
|ie8=no
|ie9=no
|ie10=no
|o10=no
|o11=no
|o12=no
}}
{{Hidden end}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>6os6uwijh529lohrz56nr7k9ovgag6z</sha1>
</revision>
</page>
<page>
<title>Template:CSS list-style-type values/core</title>
<ns>10</ns>
<id>31079356</id>
<revision>
<id>675609313</id>
<parentid>675606168</parentid>
<timestamp>2015-08-11T16:39:02Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Nnemo</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1077">{| class=&quot;wikitable&quot; style=&quot;table-layout:fixed; width:12em; float:left; margin:2px;&quot;
!{{{type|}}}{{{ref|}}}
|-
|&lt;ol style=&quot;list-style:{{{type|}}}&quot;&gt;&lt;li&gt;text&lt;/li&gt;&lt;li&gt;text&lt;/li&gt;&lt;li&gt;text&lt;/li&gt;&lt;li&gt;text&lt;/li&gt;&lt;/ol&gt;
|}
{| class=&quot;wikitable&quot; style=&quot;table-layout:fixed; width:50em; float:left; margin:2px; text-align:center; font-size:90%;&quot;
| colspan=&quot;5&quot; style=&quot;text-align:center;&quot; | Internet Explorer
| colspan=&quot;3&quot; style=&quot;text-align:center;&quot; | Firefox
| colspan=&quot;2&quot; style=&quot;text-align:center;&quot; | Safari
| colspan=&quot;4&quot; style=&quot;text-align:center;&quot; | Chrome
| colspan=&quot;3&quot; style=&quot;text-align:center;&quot; | Opera
|-
&lt;!---IE---&gt;
| 6
| 7
| 8
| 9
| 10
&lt;!---FF---&gt;
| 3
| 4
| 5
&lt;!---S---&gt;
| 4
| 5
&lt;!---C---&gt;
| 9
| 10
| 11
| 12
&lt;!---O---&gt;
| 10
| 11
| 12
|-
| {{{{{ie6|yes}}}}}
| {{{{{ie7|yes}}}}}
| {{{{{ie8|yes}}}}}
| {{{{{ie9|yes}}}}}
| {{{{{ie10|yes}}}}}
| {{{{{ff3|yes}}}}}
| {{{{{ff4|yes}}}}}
| {{{{{ff5|yes}}}}}
| {{{{{s4|yes}}}}}
| {{{{{s5|yes}}}}}
| {{{{{c9|yes}}}}}
| {{{{{c10|yes}}}}}
| {{{{{c11|yes}}}}}
| {{{{{c12|yes}}}}}
| {{{{{o10|yes}}}}}
| {{{{{o11|yes}}}}}
| {{{{{o12|yes}}}}}
|}
{{clear}}</text>
<sha1>olpsishsamr5chjbo2jpn9du4bhdno9</sha1>
</revision>
</page>
<page>
<title>Template:CSS3 multiple column layout</title>
<ns>10</ns>
<id>31495936</id>
<revision>
<id>775973987</id>
<parentid>765823906</parentid>
<timestamp>2017-04-18T05:41:50Z</timestamp>
<contributor>
<username>Murph9000</username>
<id>25404341</id>
</contributor>
<minor/>
<comment>{{subst:PAGENAME}} is mandatory for {{Navbar}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1146">{| class=&quot;wikitable&quot; style=&quot;float:right;font-size:90%;margin:0 0 1em 1em;text-align:center;line-height:1.25em;&quot;
|+ style=&quot;line-height:1.25em;padding-bottom:0.25em;&quot;| CSS3 multiple-column layout browser support
|-
! Property !! [[Internet Explorer|Internet&lt;br /&gt;Explorer]] !! [[Firefox]] !! [[Safari (web browser)|Safari]] !! [[Google Chrome|Chrome]] !! [[Opera (web browser)|Opera]]
|-
| column-width&lt;br/&gt;column-count
| {{yes|≥ 10&lt;br /&gt;{{smaller|(2012)}}}} || {{yes|≥ 1.5&lt;br /&gt;{{smaller|(2005)}}}} || {{yes|≥ 3&lt;br /&gt;{{smaller|(2007)}}}} || {{yes|≥ 1&lt;br /&gt;{{smaller|(2008)}}}} || {{yes|≥ 11.1&lt;br /&gt;{{smaller|(2011)}}}}
|-
| columns
| {{yes|≥ 10&lt;br /&gt;{{smaller|(2012)}}}} || {{yes|≥ 9&lt;br /&gt;{{smaller|(2011)}}}} || {{yes|≥ 3&lt;br /&gt;{{smaller|(2007)}}}} || {{yes|≥ 1&lt;br /&gt;{{smaller|(2008)}}}} || {{yes|≥ 11.1&lt;br /&gt;{{smaller|(2011)}}}}
|-
| break-before&lt;br/&gt;break-after&lt;br/&gt;break-inside
| {{yes|≥ 10&lt;br /&gt;{{smaller|(2012)}}}} || {{No}} || {{No}} || {{No}} || {{yes|≥ 11.1&lt;br /&gt;{{smaller|(2011)}}}}
|-
|colspan=&quot;6&quot; style=&quot;text-align:right&quot;|{{navbar|CSS3 multiple column layout|mini=y}}
|}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>336irakjtoi5g9csgj6z1dv26p1xu1s</sha1>
</revision>
</page>
<page>
<title>Template:Cat main</title>
<ns>10</ns>
<id>946440</id>
<revision>
<id>619880089</id>
<parentid>609746891</parentid>
<timestamp>2014-08-04T22:09:34Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>convert to use [[Module:Cat main]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="145">{{#invoke:Cat main|catMain}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>5yqnb9wyjivc5s8feqcpm5eby7tj8z4</sha1>
</revision>
</page>
<page>
<title>Template:Category handler</title>
<ns>10</ns>
<id>25084818</id>
<revision>
<id>577959188</id>
<parentid>577959113</parentid>
<timestamp>2013-10-20T10:48:53Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Category handler: [[WP:High-risk templates|Highly visible template]]: allow template editors to edit ([Edit=Protected template] (indefinite) [Move=Protected template] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="148">{{#invoke:Category handler|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories to the /doc subpage, and interwikis to Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>og6fhyj2ssd4fmzpqzuodk12q3cms0z</sha1>
</revision>
</page>
<page>
<title>Template:Category see also</title>
<ns>10</ns>
<id>5955472</id>
<revision>
<id>822579262</id>
<parentid>750661033</parentid>
<timestamp>2018-01-27T05:49:37Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>switch this to use [[Module:Category see also]]; allows an indefinite number of categories, fixes the unnecessary comma in the case of two categories, and enables categories like &quot;Category:Template:Foo&quot;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="103">&lt;includeonly&gt;{{#invoke:Category see also|main}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>gjrhytuvtm78q5ztybq8kc05yp3xn4j</sha1>
</revision>
</page>
<page>
<title>Template:Cite web</title>
<ns>10</ns>
<id>1252907</id>
<revision>
<id>753103437</id>
<parentid>753063659</parentid>
<timestamp>2016-12-05T05:36:52Z</timestamp>
<contributor>
<username>Anthony Appleyard</username>
<id>119438</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Cite web]]&quot;: restore old protection ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="122">&lt;includeonly&gt;{{#invoke:citation/CS1|citation
|CitationClass=web
}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>rcgmbcxu7hvs583g1f3rzz4c4dkizda</sha1>
</revision>
</page>
<page>
<title>Template:Cite.php</title>
<ns>10</ns>
<id>26222466</id>
<revision>
<id>785924544</id>
<parentid>675608218</parentid>
<timestamp>2017-06-16T06:28:24Z</timestamp>
<contributor>
<username>Samwilson</username>
<id>417081</id>
</contributor>
<comment>It's just called 'Cite' now, and that's just a name (not code) so I've removed the code tags</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="124">[[mw:Extension:Cite|Cite]]{{#ifeq: {{{1|}}}|bug|&amp;#32;[[phab:tag/cite/|bug list]]}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>ckqo5ccjqnhci96fu6dgofiptxvjm2m</sha1>
</revision>
</page>
<page>
<title>Template:Clarify timeframe/sandbox</title>
<ns>10</ns>
<id>53983849</id>
<revision>
<id>779201213</id>
<parentid>779198100</parentid>
<timestamp>2017-05-07T16:01:07Z</timestamp>
<contributor>
<username>Mr. Guye</username>
<id>16852310</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="426">{{Fix
| link = Wikipedia:Manual of Style/Words to watch#Relative time references
| text = timeframe?
| title = {{{reason|Clarify the applicable timeframe so that it is unambiguous when read at a later date.
}}}
| date = {{{date|}}}
| cat = [[Category:Wikipedia articles in need of updating]]
}}&lt;noinclude&gt;
&lt;!-- Add categories and inter-wikis to the /doc subpage, please, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>89thxyoskx5l6c742h81evxw1jc4cgn</sha1>
</revision>
</page>
<page>
<title>Template:Clear</title>
<ns>10</ns>
<id>1239772</id>
<revision>
<id>684162145</id>
<parentid>683948339</parentid>
<timestamp>2015-10-04T23:53:36Z</timestamp>
<contributor>
<username>Nyttend</username>
<id>1960810</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Clear: Enable access by template editors; NeilN is okay with this move ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="81">&lt;div style=&quot;clear:{{{1|both}}};&quot;&gt;&lt;/div&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>6mk3e4afot6hzu6tzbljxxk83e14xv6</sha1>
</revision>
</page>
<page>
<title>Template:Column-count</title>
<ns>10</ns>
<id>29216387</id>
<revision>
<id>638540848</id>
<parentid>579833002</parentid>
<timestamp>2014-12-17T20:09:11Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>redundant</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="156">&lt;includeonly&gt;-moz-column-count: {{{1|2}}}; -webkit-column-count: {{{1|2}}}; column-count: {{{1|2}}};&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>ctnrlv6otxn502jcjxtlgfdg09bq651</sha1>
</revision>
</page>
<page>
<title>Template:Column-width</title>
<ns>10</ns>
<id>29216399</id>
<revision>
<id>638540885</id>
<parentid>579832996</parentid>
<timestamp>2014-12-17T20:09:33Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>redundant</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="165">&lt;includeonly&gt;-moz-column-width: {{{1|30em}}}; -webkit-column-width: {{{1|30em}}}; column-width: {{{1|30em}}};&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>sum88q311kc02222mb4cgzbikcx7fqy</sha1>
</revision>
</page>
<page>
<title>Template:Cross</title>
<ns>10</ns>
<id>8160177</id>
<revision>
<id>678691773</id>
<parentid>549072688</parentid>
<timestamp>2015-08-31T01:12:15Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Cross: Highly visible template; lowering to template protection ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only administrators] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="158">[[File:X mark.svg|{{#if:{{{1|}}}|{{{1}}}|20}}px|link=|alt=]]&lt;span style=&quot;display:none&quot;&gt;N&lt;/span&gt;&lt;!--template:cross--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>03b5lrweqqgodvzctd95rrh5u26w1vu</sha1>
</revision>
</page>
<page>
<title>Template:DISPLAYTITLE</title>
<ns>10</ns>
<id>17303849</id>
<revision>
<id>776048389</id>
<parentid>582331214</parentid>
<timestamp>2017-04-18T17:31:14Z</timestamp>
<contributor>
<username>El C</username>
<id>92203</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:DISPLAYTITLE]]&quot;: [[WP:High-risk templates|Highly visible template]]: RFPP ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="172">&lt;includeonly&gt;{{DISPLAYTITLE:{{{1}}}}}[[Category:Pages which use a template in place of a magic word|DT00{{PAGENAME}}]]&lt;/includeonly&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>8c4oky1eyw97qe92d4sjt82ehy44w5n</sha1>
</revision>
</page>
<page>
<title>Template:Dabnav</title>
<ns>10</ns>
<id>8229761</id>
<revision>
<id>802364638</id>
<parentid>788623878</parentid>
<timestamp>2017-09-25T18:23:03Z</timestamp>
<contributor>
<username>Czar</username>
<id>244263</id>
</contributor>
<comment>fix dab resolver link</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1328">{{helpbox|width:150px
|templatename=Dabnav
|float={{{float|right}}}
|bodyclass=plainlist
|name=Disambiguation
|list1=
*[[Wikipedia:Disambiguation|Guideline]] ([[Wikipedia talk:Disambiguation|talk]])
*[[Wikipedia:Manual of Style/Disambiguation pages|Manual of Style]] ([[Wikipedia talk:Manual of Style/Disambiguation pages|talk]])
*[[Wikipedia:Disambiguation dos and don'ts|Dos and don'ts]] ([[Wikipedia talk:Disambiguation dos and don'ts|talk]])
*[[Help:Disambiguation|Reader help]] ([[Help talk:Disambiguation|talk]])
----
*{{tl|Disambiguation}}
----
*[[Wikipedia:WikiProject Disambiguation|WikiProject]] ([[Wikipedia talk:WikiProject Disambiguation|talk]])
----
*[[:Category:Wikipedia disambiguation|Disambig category]]
*[[:Category:Disambiguation pages in need of cleanup|Pages in need of cleanup]]
*[[Wikipedia:Disambiguation pages with links|Pages with links]]
*[[toollabs:dispenser/view/Dab_solver|Topical lists and DAB solver tool]]
*[[Wikipedia:Suggestions for disambiguation repair|Suggestions for repair]] (inactive)
----
*[[Wikipedia:WikiProject Disambiguation/CJKV task force|CJKV task force]]
}}&lt;noinclude&gt;
{{Documentation}}
[[Category:Maintenance navigation]]
[[Category:Wikipedia administration templates]]
[[Category:Wikipedia help templates]]
[[Category:WikiProject Disambiguation]]
&lt;/noinclude&gt;</text>
<sha1>mpw4dv23ryuw100ibuq4ex6zwh8wvs7</sha1>
</revision>
</page>
<page>
<title>Template:Db</title>
<ns>10</ns>
<id>3525592</id>
<revision>
<id>816911484</id>
<parentid>816911417</parentid>
<timestamp>2017-12-24T16:24:34Z</timestamp>
<contributor>
<username>Pppery</username>
<id>28032115</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1317">&lt;noinclude&gt;{{redirect|Template:Delete|templates concerning other forms of deletion, such as [[WP:AFD|Articles for deletion]]|Wikipedia:Template messages/Deletion}}&lt;/noinclude&gt;
{{#ifexist:Template:db-{{lc:{{{1}}}}}|{{db-{{lc:{{{1}}}}}}}|
{{db-meta
|bot={{{bot|}}}
|criterion=NA
|1={{#if:{{{1|}}}
|&amp;#32;because: {{{1}}}
|, but {{red|no reason has been given}} for why it qualifies
}}
|2={{#if:{{{1|}}}
|&amp;#32;For valid criteria, see [[Wikipedia:Criteria for speedy deletion|CSD]]| Please ensure that your reason is based on one of the [[Wikipedia:Criteria for speedy deletion|speedy deletion criteria]]. Replace this tag with &lt;code&gt;&lt;nowiki&gt;{{db|&lt;/nowiki&gt;1=''some reason''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;'''
}}
|note=If no reason for ''speedy'' deletion exists, consider nominating this material through one of the [[Wikipedia:Deletion policy|other deletion processes]].
|temp=db-reason-notice
|temp2={{!}}{{{1|no reason given}}}
|summary={{#if:{{{1|}}}|{{{1}}}|}}
|help={{{help|}}}
}}&lt;includeonly&gt;{{category handler
| all = [[Category:Candidates for speedy deletion|{{PAGENAME}}]][[Category:Candidates for speedy deletion for unspecified reason]]
| nocat = {{{nocat|}}}
| category2 = {{{category|¬}}}
| page = Foo &lt;!--CIRCUMVENT BLACKLIST--&gt;
}}&lt;/includeonly&gt;}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>jdwuljb54aitonbr4yzwdarf66lzv55</sha1>
</revision>
</page>
<page>
<title>Template:Delink</title>
<ns>10</ns>
<id>28069338</id>
<revision>
<id>696877808</id>
<parentid>695173639</parentid>
<timestamp>2015-12-26T16:26:10Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>{{documentation}} does this</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="179">{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#invoke:delink|delink}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>nxxwkb2lon9wgne4irg9ctbsle6zwiy</sha1>
</revision>
</page>
<page>
<title>Template:Disambiguation</title>
<ns>10</ns>
<id>9950598</id>
<revision>
<id>778505847</id>
<parentid>778317412</parentid>
<timestamp>2017-05-03T15:10:38Z</timestamp>
<contributor>
<username>Wbm1058</username>
<id>14383484</id>
</contributor>
<comment>change text displayed on template disambiguation pages, per [[Template talk:Disambiguation#Template disambiguation pages]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1755">{{Dmbox
| type = disambig
| text = This [[Help:Disambiguation|disambiguation]] page lists {{{type|{{#if:{{{ignore_parentheses|}}}||{{Title disambig text|{{trim|{{Str rep|{{{page-title|{{FULLPAGENAME}}}}}|(disambiguation)|}}}}}}}}}}} &lt;includeonly&gt;{{template other|templates|&lt;/includeonly&gt;articles&lt;includeonly&gt;}}&lt;/includeonly&gt; associated with the title '''{{#if:{{{ignore_parentheses|}}}|{{{page-title|{{FULLPAGENAME}}}}}|{{title without disambig|{{{page-title|{{FULLPAGENAME}}}}}}}}}'''. &lt;br /&gt; &lt;small&gt;If an [{{fullurl:Special:WhatLinksHere/{{{page-title|{{FULLPAGENAME}}}}}|namespace=0}} internal link] led you here, you may wish to change the link to point directly to the intended article.&lt;/small&gt;
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true&quot; works--&gt;
}}{{main other
| demospace = {{{demospace|}}}
| [[Category:Disambiguation pages]]{{disambiguation/cat|{{{1|}}}}}{{disambiguation/cat|{{{2|}}}}}{{disambiguation/cat|{{{3|}}}}}{{disambiguation/cat|{{{4|}}}}}{{disambiguation/cat|{{{5|}}}}}{{disambiguation/cat|{{{6|}}}}}{{disambiguation/cat|{{{7|}}}}}{{disambiguation/cat|{{{8|}}}}}{{disambiguation/cat|{{{9|}}}}}{{disambiguation/cat|{{{10|}}}}}{{#if:{{Title disambig text|{{trim|{{Str rep|{{FULLPAGENAME}}|(disambiguation)|}}}}}}|[[Category:Disambiguation pages with (qualified) titles]]|}}
| &lt;!-- Don't categorise when not in main (article) space. However, note that {{Dmbox}} categorises pages into Category:All disambiguation pages and Category:All article disambiguation pages--&gt;
}}&lt;includeonly&gt;{{#ifeq:{{#invoke:redirect|isRedirect|{{TALKPAGENAME}}}}|yes|[[Category:Unsynchronized disambiguation talk pages]]}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Add categories to the /doc subpage and interwikis to Wikidata, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>28doatk433x5bxjjif5y36o9qjiqxra</sha1>
</revision>
</page>
<page>
<title>Template:Disambiguation/cat</title>
<ns>10</ns>
<id>21250838</id>
<revision>
<id>822433989</id>
<parentid>815189385</parentid>
<timestamp>2018-01-26T10:20:29Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<comment>add category for stations, per request</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3328">{{#switch:{{lc:{{{1|}}}}}
| split = [[Category:Disambiguation pages in need of being split]]
| clean up
| clean-up
| cleanup = [[Category:Disambiguation pages in need of cleanup]]
| airports
| airport = [[Category:Airport disambiguation]]
| bird = [[Category:Bird common name disambiguation pages]]
| call sign
| call signs
| broadcast call sign
| broadcast call signs
| callsign = [[Category:Broadcast call sign disambiguation pages]]
| caselaw = [[Category:Case law disambiguation pages]]
| chinese char
| chinese-char
| chinesechar
| chinese character
| chinese = [[Category:Disambiguation pages with Chinese character titles]]
| churches
| church building
| church buildings
| church = [[Category:Church building disambiguation pages]]
| fish = [[Category:Fish common name disambiguation pages]]
| geodis
| geography
| geographical
| place name
| place names
| place
| places
| geo = [[Category:Place name disambiguation pages]]
| county = [[Category:County name disambiguation pages]]
| uscounty = [[Category:United States county name disambiguation pages]]
| township = [[Category:Township name disambiguation pages]]
| name
| names
| human name
| human names
| hndis
| hn = [[Category:Human name disambiguation pages]]
| surnames = [[Category:Disambiguation pages with surname-holder lists]]
| surname = [[Category:Disambiguation pages with surname-holder lists]]
| given names =[[Category:Disambiguation pages with given-name-holder lists]]
| given name = [[Category:Disambiguation pages with given-name-holder lists]]
| hospital name
| hospital names
| hospitals
| hospital = [[Category:Hospital disambiguation pages]]
| latin name
| latin names
| latin = [[Category:Latin name disambiguation pages]]
| letter-number
| letter number = [[Category:Letter-number combination disambiguation pages]]
| mathdab
| maths
| mathematics
| mathematical
| math = [[Category:Mathematics disambiguation pages]]
| numberdis
| numbers
| ambiguous number
| ambiguous numbers
| number = [[Category:Lists of ambiguous numbers]]
| plants
| plant = [[Category:Plant common name disambiguation pages]]
| roaddis
| roads
| road = [[Category:Road disambiguation pages]]
| schooldis
| schools
| educational institution
| educational institutions
| college
| colleges
| university
| universities
| school = [[Category:Educational institution disambiguation pages]]
| station = [[Category:Station disambiguation pages]]
| tndis = [[Category:Title and name disambiguation pages]]
| political
| party = [[Category:Political party disambiguation pages]]
| genus = [[Category:Genus disambiguation pages]]
| ship = [[Category:Ship disambiguation pages]]
| = &lt;!-- No value fed, is also valid input --&gt;
| #default = &lt;!-- &lt;div style=&quot;text-align: center;&quot;&gt;This disambiguation box is using an invalid category parameter &quot;{{{1|}}}&quot; and needs fixing. &lt;small&gt;([[:Category:Wikipedia disambig or set index box parameter needs fixing|learn more]])&lt;/small&gt;&lt;/div&gt; --&gt;[[Category:Wikipedia disambig or set index box parameter needs fixing|{{main other|Main:}}{{FULLPAGENAME}}]]&lt;!-- Sort on namespace --&gt;
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!--Please add this template's categories to the /doc subpage, not here - thanks!--&gt;
&lt;/noinclude&gt;</text>
<sha1>au8eqndwlrbrvemnaoskkutu1g32y1b</sha1>
</revision>
</page>
<page>
<title>Template:Disambiguation/cat/doc</title>
<ns>10</ns>
<id>21406391</id>
<revision>
<id>822466547</id>
<parentid>782149163</parentid>
<timestamp>2018-01-26T14:59:28Z</timestamp>
<contributor>
<username>Feminist</username>
<id>25530780</id>
</contributor>
<comment>/* Parameters */ + station</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3125">{{Documentation subpage}}
{{high-risk| 165,000+ }}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[&lt;/nowiki&gt;[[Wikipedia:Wikidata]]&lt;nowiki&gt;]]) --&gt;
This is the {{tl|Disambiguation/cat}} sub-template.
Do not use this template directly, use {{tl|Disambiguation}} or {{tl|Disambiguation cleanup}} instead.
This template is called from {{tlf|Disambiguation}} and {{tlf|Disambiguation cleanup}}. It handles some of the categorization logic for those templates.
For more documentation see {{tl|Disambiguation}} and {{tl|Disambiguation cleanup}}.
{{tl|Dabcat}} redirects here, and is used by {{tl|Disambiguation cleanup}}.
== Parameters ==
This template takes one parameter and produces a category assignment dependent on that parameter.
The main parameter value for some of the categories in this template are as follows (some other variants will also work):
*airport: for [[:Category:Airport disambiguation]]
*bird: for [[:Category:Bird common name disambiguation pages]]
*callsign: for [[:Category:Broadcast call sign disambiguation pages]]
*caselaw: for [[:Category:Case law disambiguation pages]]
*chinese: for [[:Category:Disambiguation pages with Chinese character titles]]
*church: for [[:Category:Church building disambiguation pages]]
*fish: for [[:Category:Fish common name disambiguation pages]]
*genus: for [[:Category:Genus disambiguation pages]]
*geo: for [[:Category:Place name disambiguation pages]]
*given name: [[:Category:Disambiguation pages with given-name-holder lists]]
*hn: for [[:Category:Human name disambiguation pages]]
*hospital: for [[:Category:Hospital disambiguation pages]]
*latin: for [[:Category:Latin name disambiguation pages]]
*letter number: for [[:Category:Letter-number combination disambiguation pages]]
*math: for [[:Category:Mathematics disambiguation pages]]
*number: for [[:Category:Lists of ambiguous numbers]]
*plant: for [[:Category:Plant common name disambiguation pages]]
*political: for [[:Category:Political party disambiguation pages]]
*road: for [[:Category:Road disambiguation pages]]
*school: for [[:Category:Educational institution disambiguation pages]]
*ship: for [[:Category:Ship disambiguation pages]]
*station: for [[:Category:Station disambiguation pages]]
*surname: for [[:Category:Disambiguation pages with surname-holder lists]]
*cleanup: for [[:Category:Disambiguation pages in need of cleanup]]
*split: for [[:Category:Disambiguation pages in need of being split]]
This list is usually not complete, since we add new categories to this template every now and then.
== Error reporting ==
If an invalid parameter is fed to this template it displays an error message and categorizes the page into [[:Category:Wikipedia disambig or set index box parameter needs fixing]]. Thus editors can see when they use an invalid parameter, and if they don't notice it we can easily find and fix such cases by taking a look in that category.
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Wikipedia metatemplates]]
}}&lt;/includeonly&gt;</text>
<sha1>h9yefochgm0w8eyuvk8tjjkhv6gqpwv</sha1>
</revision>
</page>
<page>
<title>Template:Disambiguation/doc</title>
<ns>10</ns>
<id>7820503</id>
<revision>
<id>823637044</id>
<parentid>822466636</parentid>
<timestamp>2018-02-02T13:44:27Z</timestamp>
<contributor>
<username>Timrollpickering</username>
<id>32005</id>
</contributor>
<minor/>
<comment>bypass redirect</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="13584">{{Documentation subpage}}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[&lt;/nowiki&gt;[[Wikipedia:Wikidata]]&lt;nowiki&gt;]]) --&gt;
{{High-risk| 177000+ }}
{{Dabnav}}
{{shortcut|Template:Dab|Template:Disambig}}
This is the {{tl|Disambiguation}} template.
'''&lt;big&gt;Important: Please do not [[Wikipedia:Substitution|subst:]] this template.&lt;/big&gt;'''
This is a general-purpose template, to be placed at the bottom of any article that exists to help readers find other articles with the same or similar names. This concept is called ''[[Wikipedia:Disambiguation|disambiguation]]'' and is used with many common words, such as ''[[Cross (disambiguation)|cross]]'', ''[[Life (disambiguation)|life]]'' and ''[[work]]''. This template automatically adds articles to the [[:Category:Disambiguation pages]].
== Page title fixes ==
This template will automatically detect incomplete disambiguation present in page titles. If the title includes anything other than (disambiguation) in parentheses, it is assumed to be the article type. For example, this template on the page [[1st Division (France)]] would produce the text &quot;This disambiguation page lists France articles associated with the title '''1st Division'''&quot;. If the page titles contains parentheses that are not used for disambiguation (such as [[Everything You Always Wanted to Know About Sex* (*But Were Afraid to Ask)]]), set {{para|ignore_parentheses|yes}}. If you wish to manually specify the article type, use the {{para|type}} parameter.
==Variant templates==
===Disambiguation===
{{Category see also|Disambiguation message boxes}}
For disambiguation pages requiring cleanup, use {{tl|Disambiguation cleanup}}.
More specific and alternative templates exist for disambiguation pages whose entries are limited exclusively to items of a particular type:
* {{tl|Airport disambiguation}} for airports – [[:Category:Airport disambiguation]]
* {{tl|Biology disambiguation}} – [[:Category:Biology disambiguation pages]]
* {{tl|Call sign disambiguation}} – [[:Category:Broadcast call sign disambiguation pages]]
* {{tl|Caselaw disambiguation}} – [[:Category:Case law disambiguation pages]]
* {{tl|Chinese title disambiguation}} – [[:Category:Disambiguation pages with Chinese character titles]]
* {{tl|Genus disambiguation}} – [[:Category:Genus disambiguation pages]]
* {{tl|Geodis}} for place names – [[:Category:Place name disambiguation pages]]
* {{tl|Hndis}} for people's names – [[:Category:Human name disambiguation pages]]
** {{tl|Hndis-cleanup}}
* {{tl|Hospital disambiguation}} for hospitals or medical centers – [[:Category:Hospital disambiguation pages]]
* {{tl|Letter disambiguation}} – adds a Latin letter navbox, does not auto-categorize
* {{tl|Letter-NumberCombDisambig}} – [[:Category:Letter-number combination disambiguation pages]]
* {{tl|Mathematical disambiguation}} for mathematics titles – [[:Category:Mathematics disambiguation pages]]
* {{tl|Military unit disambiguation}} – [[:Category:Military units and formations disambiguation pages]]
* {{tl|Numberdis}} for numbers – [[:Category:Lists of ambiguous numbers]]
* {{tl|Phonetics disambiguation}} – [[:Category:Linguistics disambiguation pages]]
* {{tl|Road disambiguation}} for roads – [[:Category:Road disambiguation pages]]
* {{tl|School disambiguation}} for educational institutions – [[:Category:Educational institution disambiguation pages]]
* {{tl|Species Latin name disambiguation}} – [[:Category:Latin name disambiguation pages]]
* {{tl|Station disambiguation}} for railway and public transport stations – [[:Category:Station disambiguation pages]]
* {{tl|Wikipedia disambiguation}} for ambiguous titles and shortcuts in the Wikipedia namespace – [[:Category:Wikipedia disambiguation pages]]
'''Note:''' A set index article (SIA) is ''not'' a disambiguation page; it is a list article about a set of items ''of a specific type'' that ''also'' share the same (or similar) name. [[Wikipedia:Set index articles]] includes templates for SIAs.
== Parameters ==
Sometimes there isn't a specific disambiguation template (see list above) that fits for a page, or the page has items in more than one of the above classes. Then use {{tl|Disambiguation}} but with one or more parameters telling which categories to use. Up to ten parameters can be fed, and in any order, for example:
:{{tlc|Disambiguation|school|hospital}}
Only add a parameter from this list if the disambiguation page has several items of that type:
* {{tlx|Disambiguation|human name}}: for [[:Category:Human name disambiguation pages]] (note that you must instead add the category separately if it needs a different [[WP:SORTKEY|sort key]])
* {{tlx|Disambiguation|bird}}: for [[:Category:Bird common name disambiguation pages]]
* {{tlx|Disambiguation|church}}: for [[:Category:Church building disambiguation pages]]
* {{tlx|Disambiguation|county}}: for [[:Category:County name disambiguation pages]]
** {{tlx|Disambiguation|uscounty}}: for [[:Category:United States county name disambiguation pages]]
* {{tlx|Disambiguation|fish}}: for [[:Category:Fish common name disambiguation pages]]
* {{tlx|Disambiguation|genus}}: for [[:Category:Genus disambiguation pages]]
* {{tlx|Disambiguation|geo}}: for [[:Category:Place name disambiguation pages]]
* {{tlx|Disambiguation|hospital}}: for [[:Category:Hospital disambiguation pages]]
* {{tlx|Disambiguation|latin}}: for [[:Category:Latin name disambiguation pages]]
* {{tlx|Disambiguation|letter number}}: for [[:Category:Letter-number combination disambiguation pages]]
* {{tlx|Disambiguation|math}}: for [[:Category:Mathematical disambiguation]]
* {{tlx|Disambiguation|number}}: for [[:Category:Lists of ambiguous numbers]]
* {{tlx|Disambiguation|plant}}: for [[:Category:Plant common name disambiguation pages]]
* {{tlx|Disambiguation|political}}: for [[:Category:Political party disambiguation pages]]
* {{tlx|Disambiguation|road}}: for [[:Category:Road disambiguation pages]]
* {{tlx|Disambiguation|school}}: for [[:Category:Educational institution disambiguation pages]]
* {{tlx|Disambiguation|ship}}: for [[:Category:Ship disambiguation pages]]
* {{tlx|Disambiguation|station}}: for [[:Category:Station disambiguation pages]]
* {{tlx|Disambiguation|tndis}}: for [[:Category:Title and name disambiguation pages]]
* {{tlx|Disambiguation|township}}: for [[:Category:Township name disambiguation pages]]
These can be added if there are one or more elements in the list (per their category descriptions):
* {{tlx|Disambiguation|airport}}: for [[:Category:Airport disambiguation]]
* {{tlx|Disambiguation|callsign}}: for [[:Category:Broadcast call sign disambiguation pages]]
These can be added even if there's only one element in the list, since these types are not actually ambiguous:
* {{tlx|Disambiguation|given name}}: [[:Category:Disambiguation pages with given-name-holder lists]]
* {{tlx|Disambiguation|surname}}: for [[:Category:Disambiguation pages with surname-holder lists]]
This parameter reflects the title, not the contents:
* {{tlx|Disambiguation|chinese}}: for [[:Category:Disambiguation pages with Chinese character titles]]
And this parameter reflects a maintenance need, not the contents:
* {{tlx|Disambiguation|split}}: for [[:Category:Disambiguation pages in need of being split]]
Note that {{tl|Disambiguation}} might not have parameters for all subcategories of [[:Category:Disambiguation pages]], then you have to manually add the category to the disambig page.
=== Nocat ===
If categorization is not needed on pages that are not in [[WP:MAINSPACE|mainspace]], then the &quot;nocat&quot; parameter may be set equal to &quot;true&quot; or &quot;yes&quot; as follows:
* {{tlx|Disambiguation|nocat{{=}}true}}
* {{tlx|Disambiguation|nocat{{=}}yes}}
== Redirects ==
The following redirect to this template:
* {{tl|Disambig}}
* {{tl|Dab}}
* {{tl|DAB}}
* {{tl|Disamb}}
== Technical details ==
Internally, this template uses {{tl|Dmbox}}. That template categorises pages into [[:Category:All disambiguation pages]] and [[:Category:All article disambiguation pages]].
This template also uses {{tl|Disambiguation/cat}} to handle the categorisation parameters, such as &quot;hospital&quot; and &quot;school&quot;.
== Template use ==
Place template at the foot of the disambiguation page after all of the disambiguation content but before any categories (see below) or interlanguage links, as per the [[WP:DCAT]] guideline.
==TemplateData==
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;Place at the bottom of Disambiguation pages.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;1&quot;,
&quot;description&quot;: &quot;Used to put the page in a category. Can be one of 'split' (dab pages in need of being split); 'clean up','clean-up','cleanup' (dabs in need of cleanup); 'airports','airport' (airport dabs); 'call sign','call signs','broadcast call sign','broadcast call signs','callsign' (broadcast call sign dabs); 'chinese char','chinese-char','chinesechar','chinese character','chinese' (chinese character dabs); 'churches','church building','church buildings','church' (church building dabs), 'fish' (fish dabs); 'geodis','geography','geographical','place name','place names','place','places','geo' (Place names); 'county'; 'uscounty' (United States county dabs); 'township' (Township name dabs); 'name','names','human name','human names','hn','hndis' (Human name dabs); 'surnames','surname' (surname dabs); 'given names','given name' (given-name dabs), 'hospital name','hospital names','hospitals','hospital' (hospital dabs); 'latin name','latin names','latin' (Latin name dabs); 'letter-number','letter number' (Letter-number combination dabs); 'mathdab','maths','mathematics','mathematical','math' (mathematical dabs); 'numberdis','numbers','ambiguous number','ambiguous numbers','number' (Lists of ambiguous numbers), 'plants','plant' (Plant common name dabs); 'roaddis','roads','road' (road dabs), 'schooldis','schools','educational institution','educational institutions','college','colleges','university','universities','school' (Educational institution dabs); 'political','party' (political party dabs), 'genus' (Genus dabs)&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;2&quot;: {
&quot;label&quot;: &quot;2&quot;,
&quot;description&quot;: &quot;Further category keys, as parameter 1.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;3&quot;: {
&quot;label&quot;: &quot;3&quot;,
&quot;description&quot;: &quot;Further category keys, as parameter 1.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;4&quot;: {
&quot;label&quot;: &quot;4&quot;,
&quot;description&quot;: &quot;Further category keys, as parameter 1.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;5&quot;: {
&quot;label&quot;: &quot;5&quot;,
&quot;description&quot;: &quot;Further category keys, as parameter 1.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;6&quot;: {
&quot;label&quot;: &quot;6&quot;,
&quot;description&quot;: &quot;Further category keys, as parameter 1.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;7&quot;: {
&quot;label&quot;: &quot;7&quot;,
&quot;description&quot;: &quot;Further category keys, as parameter 1.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;8&quot;: {
&quot;label&quot;: &quot;8&quot;,
&quot;description&quot;: &quot;Further category keys, as parameter 1.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;9&quot;: {
&quot;label&quot;: &quot;9&quot;,
&quot;description&quot;: &quot;Further category keys, as parameter 1.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;10&quot;: {
&quot;label&quot;: &quot;10&quot;,
&quot;description&quot;: &quot;Further category keys, as parameter 1.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;page-title&quot;: {
&quot;label&quot;: &quot;page-title&quot;,
&quot;description&quot;: &quot;Page title to use, only useful for special cases when default does not work.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;(FULLPAGENAME)&quot;,
&quot;required&quot;: false
},
&quot;nocat&quot;: {
&quot;label&quot;: &quot;nocat&quot;,
&quot;description&quot;: &quot;Set to 'yes' to prevent categorisation.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;demospace&quot;: {
&quot;label&quot;: &quot;demospace&quot;,
&quot;description&quot;: &quot;Used for testing.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;ignore_parentheses&quot;: {
&quot;label&quot;: &quot;ignore_parentheses&quot;,
&quot;description&quot;: &quot;Set to 'yes' to prevent parentheses in the article title from being parsed as incomplete disambiguation.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;type&quot;: {
&quot;label&quot;: &quot;type&quot;,
&quot;description&quot;: &quot;Manually specify the article type in the descriptive text ('This disambiguation page lists {{{type}}} articles...')&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
}
}
}
&lt;/templatedata&gt;
== See also ==
* [[Wikipedia:Hatnote]]
* {{tl|Disambiguation needed}} – Adds an inline &quot;disambiguation needed&quot; tag to an ambiguous link within an article, see [[Wikipedia:OTHERUSES]] for more.
* {{tl|WikiProject Disambiguation}} – for disambig talkpages
* {{tl|Other uses}} – for linking to disambiguation pages in articles
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Disambiguation message boxes| ]]
}}&lt;/includeonly&gt;</text>
<sha1>nyet6ohrnriaz0qxld597vznkublfzo</sha1>
</revision>
</page>
<page>
<title>Template:Distinguish</title>
<ns>10</ns>
<id>3406012</id>
<revision>
<id>718932899</id>
<parentid>656597666</parentid>
<timestamp>2016-05-06T14:41:18Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Updated, with Lua, from sandbox</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="290">{{#invoke:Distinguish|distinguish}}&lt;noinclude&gt;&lt;!-- splitting these lines causes {{Documentation}} template to terminate green shading when Distinguish is used in /doc pages. --&gt;
{{Documentation}}
&lt;!-- Add categories to the /doc subpage and interwikis to Wikidata, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>t4az5q8zekjr0kpgvlz6fgo7i77psk8</sha1>
</revision>
</page>
<page>
<title>Template:Dmbox</title>
<ns>10</ns>
<id>19662365</id>
<revision>
<id>631033582</id>
<parentid>626980929</parentid>
<timestamp>2014-10-25T07:48:51Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>File moved on Commons</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2337">&lt;table id=&quot;
{{#switch:{{{type|}}}
| setindex = setindexbox
| disambig &lt;!-- disambig = default --&gt;
| #default = disambigbox
}}&quot; class=&quot;metadata plainlinks dmbox
{{#switch:{{{type|}}}
| setindex = dmbox-setindex
| disambig &lt;!-- disambig = default --&gt;
| #default = dmbox-disambig
}} {{{class|}}}&quot; style=&quot;{{{style|}}}&quot; role=&quot;presentation&quot;&gt;
&lt;tr&gt;
{{#ifeq:{{{image|}}}|none
| &lt;!-- No image. Cell with some width or padding necessary for text cell to have 100% width. --&gt;&lt;td class=&quot;mbox-empty-cell&quot;&gt;&lt;/td&gt;
| &lt;td class=&quot;mbox-image&quot; style=&quot;padding: 2px 0 2px 0.4em;&quot;&gt; {{#if:{{{image|}}}
| {{{image}}}
| [[File:{{#switch:{{{type|}}}
| setindex = DAB list gray.svg
| disambig &lt;!-- disambig = default --&gt;
| #default = Disambig gray.svg
}}|30px|alt=Disambiguation icon]]
}}&lt;/td&gt;
}}
&lt;td class=&quot;mbox-text&quot; style=&quot;padding: 0.25em 0.4em; font-style: italic; {{{textstyle|}}}&quot;&gt; {{{text}}} &lt;/td&gt;
{{#if:{{{imageright|}}}
| &lt;td class=&quot;mbox-imageright&quot; style=&quot;padding: 2px 0.4em 2px 0;&quot;&gt; {{{imageright}}} &lt;/td&gt;
}}
&lt;/tr&gt;
&lt;/table&gt;&lt;!--
Detect and report usage with faulty &quot;type&quot; parameter:
--&gt;{{#switch:{{{type|}}}
| &lt;!-- No type fed, is also valid input --&gt;
| disambig
| setindex = &lt;!-- Do nothing, valid &quot;type&quot; --&gt;
| #default = &lt;div style=&quot;text-align: center;&quot;&gt;This message box is using an invalid &quot;type={{{type|}}}&quot; parameter and needs fixing.&lt;/div&gt;[[Category:Wikipedia message box parameter needs fixing|{{main other|Main:}}{{FULLPAGENAME}}]]&lt;!-- Sort on namespace --&gt;
}}&lt;!--
Magic word for disambiguation pages:
--&gt;{{#ifeq:{{{type|}}}|disambig|__DISAMBIG__|}}&lt;!--
Categorization:
--&gt;{{#switch:{{{type|}}}
| setindex =
{{category handler
| main = [[Category:All set index articles]]
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true&quot; works--&gt;
| page = {{{page|}}} &lt;!--For testing--&gt;
}}
| disambig &lt;!-- disambig = default --&gt;
| #default =
{{category handler
| main = [[Category:All article disambiguation pages]][[Category:All disambiguation pages]]
| template = &lt;!-- Don't categorize on template pages. --&gt;
| other = [[Category:All disambiguation pages]]
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true&quot; works--&gt;
| page = {{{page|}}} &lt;!--For testing--&gt;
}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories to the /doc subpage and interwikis to Wikidata, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>qv7ikc8np38u1ocl5s0anvumtfqxzq1</sha1>
</revision>
</page>
<page>
<title>Template:Documentation</title>
<ns>10</ns>
<id>13529042</id>
<revision>
<id>714754089</id>
<parentid>714753814</parentid>
<timestamp>2016-04-11T17:18:54Z</timestamp>
<contributor>
<username>Rich Farmbrough</username>
<id>82835</id>
</contributor>
<comment>Undid revision 714753814 by [[Special:Contributions/Rich Farmbrough|Rich Farmbrough]] ([[User talk:Rich Farmbrough|talk]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="182">{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}&lt;noinclude&gt;
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>o4ddn701tao1ufdnkxe1wdgz5b5ga84</sha1>
</revision>
</page>
<page>
<title>Template:Documentation subpage</title>
<ns>10</ns>
<id>7890381</id>
<revision>
<id>617432645</id>
<parentid>608599904</parentid>
<timestamp>2014-07-18T09:37:22Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>Added 1.0em margin so template looks less a part of subsequent content and amended code layout -- hope neither of these too controversial</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1667">&lt;includeonly&gt;&lt;!--
--&gt;{{#ifeq:{{lc:{{SUBPAGENAME}}}} |{{{override|doc}}}
| &lt;!--(this template has been transcluded on a /doc or /{{{override}}} page)--&gt;
&lt;/includeonly&gt;&lt;!--
--&gt;{{#ifeq:{{{doc-notice|show}}} |show
| {{Mbox
| type = notice
| style = margin-bottom:1.0em;
| image = [[File:Edit-copy green.svg|40px|alt=|link=]]
| text =
'''This is a [[Wikipedia:Template documentation|documentation]] [[Wikipedia:Subpages|subpage]] for {{{1|[[:{{SUBJECTSPACE}}:{{BASEPAGENAME}}]]}}}'''.&lt;br /&gt;It contains usage information, [[Wikipedia:Categorization|categories]] and other content that is not part of the original {{#if:{{{text2|}}} |{{{text2}}} |{{#if:{{{text1|}}} |{{{text1}}} |{{#ifeq:{{SUBJECTSPACE}} |{{ns:User}} |{{lc:{{SUBJECTSPACE}}}} template page |{{#if:{{SUBJECTSPACE}} |{{lc:{{SUBJECTSPACE}}}} page|article}}}}}}}}.
}}
}}&lt;!--
--&gt;{{DEFAULTSORT:{{{defaultsort|{{PAGENAME}}}}}}}&lt;!--
--&gt;{{#if:{{{inhibit|}}} |&lt;!--(don't categorize)--&gt;
| &lt;includeonly&gt;&lt;!--
--&gt;{{#ifexist:{{NAMESPACE}}:{{BASEPAGENAME}}
| [[Category:{{#switch:{{SUBJECTSPACE}} |Template=Template |Module=Module |User=User |#default=Wikipedia}} documentation pages]]
| [[Category:Documentation subpages without corresponding pages]]
}}&lt;!--
--&gt;&lt;/includeonly&gt;
}}&lt;!--
(completing initial #ifeq: at start of template:)
--&gt;&lt;includeonly&gt;
| &lt;!--(this template has not been transcluded on a /doc or /{{{override}}} page)--&gt;
}}&lt;!--
--&gt;&lt;/includeonly&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>iwoex9r4jjje2jlwm8eygcyef0s6hzx</sha1>
</revision>
</page>
<page>
<title>Template:Documentation/doc</title>
<ns>10</ns>
<id>13529073</id>
<revision>
<id>821148227</id>
<parentid>821148147</parentid>
<timestamp>2018-01-18T18:14:54Z</timestamp>
<contributor>
<username>Oshwah</username>
<id>3174456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Documentation/doc]]&quot;: Highly visible documentation template ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="9415">{{Documentation subpage}}
{{High-use| 66000}}
{{Shortcut|T:DOC}}
{{stack|{{Lua|Module:Documentation}}}}
&lt;!---- Categories where indicated at the bottom of this page, please; interwikis at Wikidata ----&gt;
This is the {{tlf|Documentation}} template, used on almost every template page to contain that template's [[Documentation|documented instructions and information]].
For detailed instructions on how and when to use this template, see [[Wikipedia:Template documentation]] (shortcut: [[WP:TDOC]]).
This template displays a green documentation box like you are seeing now and automatically loads the content from a /doc subpage. It can also load the content from other places if instructed to.
This template is intended for documenting templates and other pages that are [[Wikipedia:Transclusion|transcluded]] onto other pages. It can be used in the [[Wikipedia:Template namespace|template namespace]] and most other [[Wikipedia:Namespace|namespace]]s.
Use of this template allows templates to be [[Wikipedia:Protection policy|protected]] where necessary, while allowing anyone to edit the documentation and categories.
===Usage===
Normally this template is used without any parameters, placed at the bottom of the template or page being documented, within a {{tag|noinclude}} container:
&lt;source lang=&quot;xml+smarty&quot;&gt;
&lt;!--Last line of your template code--&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Add categories to the /doc subpage and interwikis in Wikidata, not here! --&gt;
&lt;/noinclude&gt;
&lt;/source&gt;
Then this template automatically loads the content from the /doc subpage of the template it is used on.
This template can also load the content from any other page. Like this:
&lt;source lang=&quot;xml+smarty&quot;&gt;
&lt;!--Last line of your template code--&gt;&lt;noinclude&gt;
{{Documentation |Template:Other page/doc}}
&lt;/noinclude&gt;
&lt;/source&gt;
Note that when loading the documentation from a page other than the local /doc page it becomes tricky to handle the categories.
The content can also be fed directly as text. Like this:
&lt;source lang=&quot;xml+smarty&quot;&gt;
&lt;!--Last line of your template code--&gt;&lt;noinclude&gt;
{{Documentation
| content =
(some documentation)
}}&lt;/noinclude&gt;
&lt;/source&gt;
When the {{para|content}} parameter is used, the doc box normally does not show the [edit] [purge] links in the top right corner. Note that if the /doc page exists, a link to it is still shown in the link box below the doc box.
Parameter {{para|1}} and the {{para|content}} parameter can also be combined, like this:
&lt;source lang=&quot;xml+smarty&quot;&gt;
&lt;!--Last line of your template code--&gt;&lt;noinclude&gt;
{{Documentation |1=Template:Any page/doc
| content =
{{Template:Any page/doc |parameters}}
}}&lt;/noinclude&gt;
&lt;/source&gt;
Then the pagename fed as parameter 1 is used for the [edit] [purge] links and for the /doc link in the link box below the doc box. But the '''content''' parameter is used for the content shown in the doc box. The above code means that the content is transcluded as {{tnull|Template:Any page/doc{{!}}parameters}}. In this example a parameter is also fed to the /doc page being loaded.
=== Short cut ===
Type &lt;nowiki&gt;{{subst:doc-code}}&lt;/nowiki&gt; to automatically insert noinclude tags, the template call and the guiding comment.
===Best practice===
The code should be added at the bottom of the template code, with no space before {{Tag|noinclude|o}} (which would cause extra space on pages where the template is used).
Categories that apply to the template itself should be added to the bottom of the /doc subpage, inside {{Tag|includeonly}} tags. Interwiki links that apply to the template should be listed at [[d:|Wikidata]] (more at [[Wikipedia:Wikidata|wp:Wikidata]]). For more complex cases, see [[Wikipedia:Template documentation#Categories and interwiki links]].
If the documentation page contains {{tag|includeonly|o}} or {{tag|noinclude|o}} tags as part of the visible documentation text, replace the &quot;&lt;code&gt;&amp;lt;&lt;/code&gt;&quot; with &quot;&lt;code&gt;&amp;amp;lt;&lt;/code&gt;&quot;.
===Heading===
When in the Template namespace, this template shows this heading:
:[[File:Template-info.png|32px]] '''Template documentation'''
In most other namespaces, such as &quot;Wikipedia:&quot;, it shows this heading:
:'''Documentation'''
But when on File (image) pages it shows this heading:
:'''Summary'''
The '''heading''' parameter can be used to set the heading to something else. Like this:
:&lt;code&gt;&lt;nowiki&gt;{{Documentation |heading=Infobox documentation}}&lt;/nowiki&gt;&lt;/code&gt;
If the '''heading''' parameter is empty but defined, no heading is shown and no [edit] [purge] links are shown. Like this:
:&lt;code&gt;&lt;nowiki&gt;{{Documentation |heading=}}&lt;/nowiki&gt;&lt;/code&gt;
The '''heading-style''' parameter can be fed optional [[Cascading Style Sheets|CSS]] values. Without quotation marks &lt;code&gt;&quot; &quot;&lt;/code&gt; but with the ending semicolons &lt;code&gt;;&lt;/code&gt;. For example:
:&lt;code&gt;heading-style=font-size:150%;color:red;&lt;/code&gt;
===Link box===
Below the big doc box is a small link box that shows some meta-data about the documentation. The link box shows different things depending on what parameters are fed to this template, and in which namespace it is used. In some cases the link box is not shown at all.
To hide the link box, add the parameter
: {{para|link box|off}}.
You can also insert customised text into the link box, by setting the {{para|link box}} parameter. For example:
&lt;pre style=&quot;width:auto; overflow:scroll&quot;&gt;
|link box=This documentation is automatically generated by [[Template:Country showdata]]
&lt;/pre&gt;
===Automatic functions===
If the documentation page does not exist, the [create] link includes a [[mw:Manual:Creating pages with preloaded text|preload]] page so that clicking it will pre-fill the edit form with the basic documentation page format. Preload text is also used for the /sandbox and /testcases [create] links.
When this template is on a protected template page it now automatically adds {{tl|pp-template}}, which shows the grey or red padlock in the top right corner. So no need to manually add {{tlf|pp-template}} to templates that use {{tl|Documentation}}.
When this template is on a /sandbox subpage it automatically adds the {{tl|Template sandbox notice}}.
===Subject namespaces vs. talk namespaces===
Terminology: ''Subject namespaces'' are the opposite of ''talk namespaces''. For instance &quot;Template:&quot; is the subject space of &quot;Template talk:&quot;.
This template is usually placed in a subject namespace, within {{tag|noinclude|o}} tags. But in some cases this template needs to be on the talk page:
* In the Mediawiki namespace, since {{tag|noinclude|o}} often does not work in system messages, and since the Mediawiki namespace needs to be kept clean for performance reasons.
When placed on talk pages, this template usually is placed near the top of the page and without {{tag|noinclude}} tags.
The /doc, /sandbox and /testcases pages should normally be in the subject namespace, except in the namespaces that do not have the MediaWiki [[meta:Help:Link#Subpage feature|subpage feature]] enabled: Main, File, Mediawiki and Category. (But currently we only show the /sandbox and /testcases links from User, User talk, Template and Template talk namespaces.) There are also a whole bunch of other technical reasons why the /doc page must be stored under the talk page for those (but only those) namespaces.
This template automatically points its [create] links for the /doc, /sandbox and /testcases to the right namespace.
===Testing===
You can simulate the output for a given page by using the {{para|page}} parameter. For example, if you use the code {{para|page|Template:Edit protected}}, the template will behave exactly as if it were on the page [[Template:Edit protected]], including showing the documentation from [[Template:Edit protected/doc]], linking to [[Template:Edit protected/sandbox]], etc. This parameter is useful for testing and is used extensively on the [[Module:Documentation/testcases|module testcases page]].
===Technical details===
The preload page for the /doc [create] link is [[Template:Documentation/preload]]. The preload pages for the /sandbox and /testcases [create] links are [[Template:Documentation/preload-sandbox]] and [[Template:Documentation/preload-testcases]].
For more details, see the [[Template talk:Documentation|talk page]].
====Full syntax====
&lt;pre&gt;
{{Documentation}}
{{Documentation
| content =
}}
{{Documentation
| [path to documentation page]
| heading-style =
| heading =
| link box =
}}
&lt;/pre&gt;
===See also===
* {{tl|Documentation subpage}}, a notice placed at the top of a /doc subpage explaining its role and including a link to the page it documents.
* {{tl|Barnstar documentation}}, a variant of {{tl|Documentation}} for use with [[Wikipedia:Barnstars|barnstar]] templates.
* {{tl|Documentation/color scheme}} presents the color scheme used by {{tl|Documentation}}.
* [[Wikipedia:Template documentation]] is a how-to guide to template documentation.
* [[Wikipedia:Template sandbox and test cases]] explains the use of /sandbox and /testcases subpages and includes more information about template testing.
* [[User:Technical 13/Scripts/editTemplateNoDoc.js]], a beta script that enables documentation to be hidden by default when editing templates.
&lt;includeonly&gt;{{When pagename is |/sandbox= |/testcases= |other=
&lt;!---- Categories below this line, please; interwikis to Wikidata ----&gt;
[[Category:Template documentation| ]]
[[Category:Template-related templates]]
}}&lt;/includeonly&gt;</text>
<sha1>5pgu5oh6zufgo2v41gpd4joaw5qv4xp</sha1>
</revision>
</page>
<page>
<title>Template:Documentation/docspace</title>
<ns>10</ns>
<id>29587406</id>
<revision>
<id>680074087</id>
<parentid>680073978</parentid>
<timestamp>2015-09-08T15:10:46Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<minor/>
<comment>Removed protection from &quot;[[Template:Documentation/docspace]]&quot;: seems to be unused now</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="302">{{#switch: {{SUBJECTSPACE}}
| {{ns:0}}
| {{ns:File}}
| {{ns:MediaWiki}}
| {{ns:Category}} = {{TALKSPACE}}
| #default = {{SUBJECTSPACE}}
}}&lt;noinclude&gt;
{{documentation|content=
This subtemplate of {{tl|documentation}} is used to determine the namespace of the documentation page.
}}&lt;/noinclude&gt;</text>
<sha1>7f8iymss9sr4v7f4t5pza1arwjogrv3</sha1>
</revision>
</page>
<page>
<title>Template:Documentation/end box</title>
<ns>10</ns>
<id>29586766</id>
<revision>
<id>762419432</id>
<parentid>593182910</parentid>
<timestamp>2017-01-28T18:20:45Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Documentation/end box]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="4689">&lt;!--
Link box below for the doc meta-data:
--&gt;{{#if:
&lt;!--Check if we should show the link box--&gt;
{{#ifeq: {{{link box|}}} | off
|
| {{{doc exist|yes}}}{{
#switch: {{SUBJECTSPACE}}
| {{ns:User}}
| {{ns:Module}}
| {{ns:Template}} = yes
}}
}}
| {{fmbox
| id = documentation-meta-data
| image = none
| style = background-color: #ecfcf4;
| textstyle = font-style: italic;
| text =
{{#if: {{{link box|}}}
| {{{link box}}} &lt;!--Use custom link box content--&gt;
| {{#if: {{{doc exist|yes}}}
| &lt;!--/doc exists, link to it--&gt;
The above [[Wikipedia:Template documentation|documentation]] is [[Wikipedia:Transclusion|transcluded]] from [[{{{docpage|{{FULLPAGENAME}}/doc}}}]]. &lt;small style=&quot;font-style: normal&quot;&gt;([{{fullurl:{{{docpage|{{FULLPAGENAME}}/doc}}}|action=edit}} edit] &amp;#124; [{{fullurl:{{{docpage|{{FULLPAGENAME}}/doc}}}|action=history}} history])&lt;/small&gt; &lt;br /&gt;
|&lt;!-- /doc does not exist, ask to create one?
--&gt;{{#switch: {{SUBJECTSPACE}}
| {{ns:Module}} = You might want to [{{fullurl: {{{docpage| {{FULLPAGENAME}}/doc }}} | action=edit&amp;preload=Template:Documentation/preload-module-doc }} create] a documentation page for this [[Wikipedia:Lua|Scribunto module]]&lt;br&gt;
| #default =
}}
}}&lt;!--
Add links to /sandbox and /testcases when appropriate:
--&gt;{{#switch: {{SUBJECTSPACE}}
| {{ns:User}}
| {{ns:Module}}
| {{ns:Template}} =
Editors can experiment in this {{#switch: {{SUBJECTSPACE}} | {{ns:module}} = module's | #default = template's}} {{
#ifexist: {{{sandbox| {{FULLPAGENAME}}/sandbox }}}
| [[{{{sandbox| {{FULLPAGENAME}}/sandbox }}}|sandbox]] &lt;small style=&quot;font-style: normal&quot;&gt;([{{fullurl: {{{sandbox| {{FULLPAGENAME}}/sandbox }}} | action=edit }} edit] &lt;nowiki&gt;|&lt;/nowiki&gt; [{{fullurl:Special:ComparePages | page1={{urlencode:{{{template page|{{FULLPAGENAME}}}}}}}&amp;page2={{urlencode:{{{sandbox|{{FULLPAGENAME}}/sandbox}}}}}}} diff])&lt;/small&gt;
| sandbox &lt;small style=&quot;font-style: normal&quot;&gt;([{{fullurl: {{{sandbox| {{FULLPAGENAME}}/sandbox }}} | action=edit&amp;preload=Template:Documentation/preload-{{#ifeq: {{SUBJECTSPACE}}|{{ns:Module}}|module-}}sandbox }} create] &lt;nowiki&gt;|&lt;/nowiki&gt; [{{fullurl: {{{sandbox| {{FULLPAGENAME}}/sandbox }}} | action=edit&amp;preload={{urlencode:{{{template page|{{FULLPAGENAME}}}}}}}&amp;summary={{urlencode:Create sandbox version of [[{{{template page|{{FULLPAGENAME}}}}}]]}} }} mirror])&lt;/small&gt;
}} and {{
#ifexist: {{{testcases| {{FULLPAGENAME}}/testcases }}}
| [[{{{testcases| {{FULLPAGENAME}}/testcases }}}|testcases]] &lt;small style=&quot;font-style: normal&quot;&gt;([{{fullurl: {{{testcases| {{FULLPAGENAME}}/testcases }}} | action=edit }} edit])&lt;/small&gt;
| testcases &lt;small style=&quot;font-style: normal&quot;&gt;([{{fullurl: {{{testcases| {{FULLPAGENAME}}/testcases }}} | action=edit&amp;preload=Template:Documentation/preload-{{#ifeq: {{SUBJECTSPACE}}|{{ns:Module}}|module-}}testcases&amp;summary={{urlencode:Create testcases page for [[{{{template page|{{FULLPAGENAME}}}}}]]}} }} create])&lt;/small&gt;
}} pages. &lt;br /&gt;
}}&lt;!--
Show the cats text, but not
if &quot;content&quot; fed or &quot;docname fed&quot; since then it is
unclear where to add the cats.
--&gt;{{#if: {{{content|}}} {{{docname fed|}}}
|
| Please add categories to the [[{{{docpage|{{FULLPAGENAME}}/doc}}}|/doc]] subpage.
}}&lt;!--
Show the &quot;Subpages&quot; link:
--&gt;{{#switch: {{SUBJECTSPACE}}
| {{ns:File}} = &lt;!--Don't show it--&gt;
| {{ns:Module}} = &amp;#32;[[Special:PrefixIndex/{{{template page|{{FULLPAGENAME}}}}}/|Subpages of this module]].
| {{ns:Template}} = &amp;#32;[[Special:PrefixIndex/{{{template page|{{FULLPAGENAME}}}}}/|Subpages of this template]].
| #default = &amp;#32;[[Special:PrefixIndex/{{{template page|{{FULLPAGENAME}}}}}/|Subpages of this page]].
}}
}}{{#ifexist:{{FULLPAGENAME}}/Print
|&lt;br /&gt;A [[Help:Books/for experts#Improving the book layout|print version]] of this template exists at [[/Print]]. If you make a change to this template, please update the print version as well.[[Category:Templates with print versions]]
}}
}}
}}&lt;!--End link box--&gt;&lt;!--
Detect and report strange usage:
--&gt;{{#if:
&lt;!--Check if {{documentation}} is transcluded
on a /doc or /testcases page--&gt;
{{#switch: {{SUBPAGENAME}}
| doc
| testcases = strange
}}
&lt;!--More checks can be added here, just return anything
to make the surrounding if-case trigger--&gt;
| &lt;includeonly&gt;[[Category:Wikipedia pages with strange ((documentation)) usage|{{main other|Main:}}{{FULLPAGENAME}}]]&lt;!-- Sort on namespace --&gt;&lt;/includeonly&gt;
}}</text>
<sha1>c856dxh6pgm2cvrfd8244q2raf5sme4</sha1>
</revision>
</page>
<page>
<title>Template:Documentation/end box2</title>
<ns>10</ns>
<id>29587251</id>
<revision>
<id>762458739</id>
<parentid>762419265</parentid>
<timestamp>2017-01-28T23:23:51Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>no longer protected</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1075">&lt;noinclude&gt;&lt;div&gt;&lt;/noinclude&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&lt;!--So right or left floating items don't stick out of the doc box.--&gt;
&lt;/div&gt;&lt;!--End of green doc box--&gt;&lt;!--
Link box below for the doc meta-data:
--&gt;{{documentation/end box
| preload = {{{preload|}}} &lt;!--Allow custom preloads--&gt;
| content = {{{content|}}}
| link box = {{{link box|}}} &lt;!--So &quot;link box=off&quot; works--&gt;
| docpage =
{{#if: {{{1|}}}
| {{{1|}}}
| {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/doc
}}
| doc exist =
{{#ifexist:
{{#if: {{{1|}}}
| {{{1|}}} &lt;!--Other docname fed--&gt;
| {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/doc
}}
| yes
}}
| docname fed =
{{#if: {{{1|}}}
| yes
}}
| sandbox =
{{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/sandbox
| testcases =
{{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/testcases
| template page =
{{NAMESPACE}}:{{{template page|{{PAGENAME}}}}}
}}&lt;noinclude&gt;
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>753m4laj6ampr6e2l29cbd1228lgvs6</sha1>
</revision>
</page>
<page>
<title>Template:Documentation/start box</title>
<ns>10</ns>
<id>29586753</id>
<revision>
<id>762419372</id>
<parentid>607180344</parentid>
<timestamp>2017-01-28T18:20:15Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Documentation/start box]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require extended confirmed access] (indefinite) [Move=Require extended confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1989">&lt;!--
Start of green doc box
--&gt;&lt;div id=&quot;template-documentation&quot; class=&quot;template-documentation iezoomfix&quot;&gt;&lt;!--
Add the heading at the top of the doc box:
--&gt;{{#ifeq: {{{heading|¬}}} | &lt;!--Defined but empty--&gt;
| &lt;!--&quot;heading=&quot;, do nothing--&gt;
| &lt;div style=&quot;padding-bottom: 3px; border-bottom: 1px solid #aaa; margin-bottom: 1ex;&quot;&gt;&lt;span style=&quot;{{#if: {{{heading-style|}}}
| {{{heading-style|}}}
| {{#ifeq: {{SUBJECTSPACE}} | {{ns:Template}}
| font-weight: bold; font-size: 125%
| font-size: 150%
}}
}}&quot;&gt;{{#switch: {{{heading|¬}}}
| ¬ =
&lt;!--&quot;heading&quot; not defined in this or previous level--&gt;
{{#switch: {{SUBJECTSPACE}}
| {{ns:Template}} = [[File:Template-info.png|50px|link=|alt=Documentation icon]] {{{Documentation alt text|Template documentation}}}
| {{ns:Module}} = [[File:Template-info.png|50px|link=|alt=Documentation icon]] Module documentation
| {{ns:File}} = Summary
| #default = Documentation
}}
| #default =
&lt;!--&quot;heading&quot; has data or is empty but defined--&gt;
{{{heading|}}}
}}&lt;/span&gt;{{
#if: {{{content|}}}
|
| &lt;!--Add the [view][edit][history][purge] or [create] links--&gt;
&lt;span class=&quot;mw-editsection plainlinks&quot; id=&quot;doc_editlinks&quot;&gt;{{
#if: {{{doc exist|yes}}}
| &amp;#91;[[{{{docpage|{{FULLPAGENAME}}/doc}}}|view]]&amp;#93; [[{{fullurl:{{{docpage|{{FULLPAGENAME}}/doc}}}|action=edit}} edit]] [[{{fullurl:{{{docpage|{{FULLPAGENAME}}/doc}}}|action=history}} history]] [{{purge|purge}}]
| &lt;!--/doc doesn't exist--&gt;
[[{{fullurl:{{{docpage|{{FULLPAGENAME}}/doc}}}| action=edit&amp;preload={{
#if: {{{preload|}}}
| {{urlencode:{{{preload}}}}}
| {{#ifeq: {{SUBJECTSPACE}} | {{ns:File}}
| Template:Documentation/preload-filespace
| Template:Documentation/preload
}} }} }} create]]
}}&lt;/span&gt;
}}&lt;/div&gt;
}}&lt;noinclude&gt;&lt;!-- close the div --&gt;&lt;/div&gt;
{{pp-template}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>qgnvljfauq052spft9wt6ll7jdgsw8n</sha1>
</revision>
</page>
<page>
<title>Template:Documentation/start box2</title>
<ns>10</ns>
<id>29587220</id>
<revision>
<id>764547196</id>
<parentid>762419166</parentid>
<timestamp>2017-02-09T15:25:55Z</timestamp>
<contributor>
<username>MusikBot</username>
<id>24684472</id>
</contributor>
<minor/>
<comment>Removing protection templates from unprotected page</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="625">{{documentation/start box
| preload = {{{preload|}}} &lt;!--Allow custom preloads--&gt;
| heading = {{{heading|¬}}} &lt;!--Empty but defined means no header--&gt;
| heading-style = {{{heading-style|}}}
| content = {{{content|}}}
| docpage =
{{#if: {{{1|}}}
| {{{1|}}}
| {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/doc
}}
| doc exist =
{{#ifexist:
{{#if: {{{1|}}}
| {{{1|}}} &lt;!--Other docname fed--&gt;
| {{{docspace|{{NAMESPACE}}}}}:{{{template page|{{PAGENAME}}}}}/doc
}}
| yes
}}
}}&lt;noinclude&gt;
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>t5j6y918odlsx0iuls0qgi6wbl050q3</sha1>
</revision>
</page>
<page>
<title>Template:Documentation/template page</title>
<ns>10</ns>
<id>29587443</id>
<revision>
<id>771831750</id>
<parentid>396601081</parentid>
<timestamp>2017-03-23T19:39:55Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Removed protection from &quot;[[Template:Documentation/template page]]&quot;: Apparently no longer used within [[Template:Documentation]]. If it gets widely used again, feel free to re-template-protect</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="232">{{#switch: {{SUBPAGENAME}}
| sandbox
| testcases = {{BASEPAGENAME}}
| #default = {{PAGENAME}}
}}&lt;noinclude&gt;{{documentation|content=
This subtemplate of {{tl|documentation}} is used to determine the template page name.
}}&lt;/noinclude&gt;</text>
<sha1>fenc3r6oe2sito28b1d8xgyo9gpq5uf</sha1>
</revision>
</page>
<page>
<title>Template:Endflatlist</title>
<ns>10</ns>
<id>10418232</id>
<revision>
<id>628944115</id>
<parentid>468091134</parentid>
<timestamp>2014-10-09T16:32:42Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Endflatlist: Change to template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="70">&lt;/div&gt;&lt;noinclude&gt;
{{documentation|Template:Flatlist/doc}}
&lt;/noinclude&gt;</text>
<sha1>fp5m55s9u2sp077qx1wa6go6i2zyusa</sha1>
</revision>
</page>
<page>
<title>Template:Engineer-stub</title>
<ns>10</ns>
<id>2087448</id>
<revision>
<id>625840685</id>
<parentid>625835382</parentid>
<timestamp>2014-09-16T17:53:41Z</timestamp>
<contributor>
<username>PhilKnight</username>
<id>1812441</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/Engratiq|Engratiq]] ([[User talk:Engratiq|talk]]) to last version by PhilKnight</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="244">{{asbox
| image = Engineering.png
| pix = 30
| subject =
| qualifier = about an engineer, inventor or industrial designer
| category = Engineer stubs
| tempsort =
| name = Template:Engineer-stub
}}
&lt;noinclude&gt;&lt;/noinclude&gt;</text>
<sha1>nve2xwks5jytth1zrkf2ispyevuffjd</sha1>
</revision>
</page>
<page>
<title>Template:FULLBASEPAGENAME</title>
<ns>10</ns>
<id>17467431</id>
<revision>
<id>735131299</id>
<parentid>384293197</parentid>
<timestamp>2016-08-18T19:59:33Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:FULLBASEPAGENAME: [[WP:High-risk templates|Highly visible template]]: Lowering to template protection ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="375">{{#if: {{Is subpage namespace | {{#if:{{{1|}}}|{{NAMESPACE:{{{1}}}}}|{{NAMESPACE}}}} }}
| {{#if: {{#titleparts:{{#if:{{{1|}}}|{{{1}}}|{{FULLPAGENAME}}}}|-1}}
| {{#titleparts:{{#if:{{{1|}}}|{{{1}}}|{{FULLPAGENAME}}}}|-1}}
| {{#if:{{{1|}}}|{{{1}}}|{{FULLPAGENAME}}}}
}}
| {{#if:{{{1|}}}|{{{1}}}|{{FULLPAGENAME}}}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>ika7vdpo23a48n9jvwy4ivll0l0j6yx</sha1>
</revision>
</page>
<page>
<title>Template:Fake heading</title>
<ns>10</ns>
<id>22087142</id>
<revision>
<id>710091388</id>
<parentid>618116206</parentid>
<timestamp>2016-03-14T22:30:41Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>support |level= as well as |sub=</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1151">&lt;div style=&quot;color: #000000; background: none; overflow: hidden; page-break-after: avoid; {{#switch: {{{level|{{{sub|}}}}}}
| 1 = font-size: 1.8em; font-family: Georgia,Times,serif; margin-top: 1em; margin-bottom: 0.25em; line-height: 1.3; padding: 0; border-bottom: 1px solid #AAAAAA;
| 2 | #default = font-size: 1.5em; font-family: Georgia,Times,serif; margin-top: 1em; margin-bottom: 0.25em; line-height: 1.3; padding: 0; border-bottom: 1px solid #AAAAAA;
| 3 = font-size: 1.17em; font-weight: bold; margin-top: 0.3em; margin-bottom: 0; line-height: 1.6; padding-top: 0.5em; padding-bottom: 0;
| 4 = font-size: 100%; font-weight: bold; margin-top: 0.3em; margin-bottom: 0; line-height: 1.6; padding-top: 0.5em; padding-bottom: 0;
| 5 = font-size: 100%; font-weight: bold; margin-top: 0.3em; margin-bottom: 0; line-height: 1.6; padding-top: 0.5em; padding-bottom: 0;
| 6 = font-size: 100%; font-weight: bold; margin-top: 0.3em; margin-bottom: 0; line-height: 1.6; padding-top: 0.5em; padding-bottom: 0;
}}&quot;&gt;{{{1|Section}}}&lt;/div&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>qla8qm9eyapwea4mncopnidfx90z3hb</sha1>
</revision>
</page>
<page>
<title>Template:Fix</title>
<ns>10</ns>
<id>5632010</id>
<revision>
<id>814292698</id>
<parentid>713657347</parentid>
<timestamp>2017-12-07T23:00:24Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<comment>replaced self-closed &lt;nowiki/&gt; and space with numeric space entity;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1113">{{#switch:{{{subst|¬}}}
|¬={{category handler
|template=[[Category:Templates needing substitution checking]]
|nocat={{{nocat|&lt;noinclude&gt;true&lt;/noinclude&gt;}}}
}}
|SUBST=[[Category:Pages with incorrectly substituted templates]]
}}{{Category handler
|main={{Fix/category
|cat-date={{{cat-date|}}}
|cat={{{cat|}}}
|cat-date2={{{cat-date2|}}}
|cat2={{{cat2|}}}
|cat-date3={{{cat-date3|}}}
|cat3={{{cat3|}}}
|date={{{date|}}}
}}
|template={{#if:{{{name|}}}|{{#ifeq:{{{name}}}|{{ROOTPAGENAME}}||{{#if:{{{date|}}}||[[Category:Templates including undated clean-up tags]]}}}}}}
|subpage=no
}}{{#if:{{{text|}}}
|&lt;sup class=&quot;noprint Inline-Template {{{class|}}}&quot; style=&quot;white-space:nowrap;&quot;&gt;&amp;#91;&lt;i&gt;{{#if:{{{pre-text|}}}
|{{{pre-text}}}&amp;#32;
}}[[{{{link|Wikipedia:Cleanup}}}|&lt;span title=&quot;{{delink|1={{{title|{{{link|Wikipedia:Cleanup}}}}}}{{#if:{{{date|}}}|&amp;#32;({{{date}}})}}}}&quot;&gt;{{{text|}}}&lt;/span&gt;]]{{#if:{{{post-text|}}}
|&amp;#32;{{{post-text}}}
}}&lt;/i&gt;&amp;#93;&lt;/sup&gt;|{{{special|}}}
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Add cats and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>owg7pdp6e9nqycfh3g7fuee1rm3t159</sha1>
</revision>
</page>
<page>
<title>Template:Flatlist</title>
<ns>10</ns>
<id>44066567</id>
<revision>
<id>628943977</id>
<parentid>628943437</parentid>
<timestamp>2014-10-09T16:31:44Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>Protected Template:Flatlist: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="232">&lt;div class=&quot;hlist {{{class|}}}&quot; {{#if:{{{style|}}}{{{indent|}}}|style=&quot;{{#if:{{{indent|}}}|margin-left: {{#expr:{{{indent}}}*1.6}}em;}} {{{style|}}}&quot;}}&gt;{{#if:{{{1|}}}|
{{{1}}}
&lt;/div&gt;}}&lt;noinclude&gt;&lt;/div&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>rl7soqdf32myn4dned7p631d4bijrbp</sha1>
</revision>
</page>
<page>
<title>Template:Fmbox</title>
<ns>10</ns>
<id>19236000</id>
<revision>
<id>714241420</id>
<parentid>713502398</parentid>
<timestamp>2016-04-08T15:00:42Z</timestamp>
<contributor>
<username>Xaosflux</username>
<id>502540</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Fmbox: multiple mediawiki pages rely on this page ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only administrators] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="141">{{#invoke:Message box|fmbox}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>q4qfnrd9je1n71bknyj9gdhs02g2rws</sha1>
</revision>
</page>
<page>
<title>Template:Fnote</title>
<ns>10</ns>
<id>34577921</id>
<revision>
<id>648777586</id>
<parentid>613221715</parentid>
<timestamp>2015-02-25T11:59:38Z</timestamp>
<contributor>
<username>Gadget850</username>
<id>339034</id>
</contributor>
<comment>cat</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="100">[[Help:Footnotes|Footnotes]]&lt;noinclude&gt;
[[Category:Documentation assistance templates]]
&lt;/noinclude&gt;</text>
<sha1>pektp20q1e9q7hd0kx69rygwdatiwxu</sha1>
</revision>
</page>
<page>
<title>Template:Font color</title>
<ns>10</ns>
<id>5714218</id>
<revision>
<id>762622105</id>
<parentid>761290853</parentid>
<timestamp>2017-01-29T21:37:24Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<comment>TFD closed as do not merge (using [[User:Evad37/TFDcloser|TFDcloser]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1529">{{ {{{|safesubst:}}}#if: {{{text|{{{3|}}}}}}
| {{ {{{|safesubst:}}}#if: {{{link|}}}
| {{ {{{|safesubst:}}}#ifeq: {{{link|}}} | yes
| [[ {{ {{{|safesubst:}}}trim | {{{text|{{{3|}}}}}} }}|&lt;span style=&quot;background-color:{{ {{{|safesubst:}}}trim | {{{bg|{{{2|inherit}}}}}} }}; color:{{ {{{|safesubst:}}}trim | {{{fg|{{{1|inherit}}}}}} }};&quot;&gt;{{ {{{|safesubst:}}}trim | {{{text|{{{3|}}}}}} }}&lt;/span&gt;]]
| [[{{{link|}}}|&lt;span style=&quot;background-color:{{ {{{|safesubst:}}}trim | {{{bg|{{{2|inherit}}}}}} }}; color:{{ {{{|safesubst:}}}trim | {{{fg|{{{1|inherit}}}}}} }};&quot;&gt;{{ {{{|safesubst:}}}trim | {{{text|{{{3|}}}}}} }}&lt;/span&gt;]]
}}
| &lt;span style=&quot;background-color:{{ {{{|safesubst:}}}trim | {{{bg|{{{2|inherit}}}}}} }}; color:{{ {{{|safesubst:}}}trim | {{{fg|{{{1|inherit}}}}}} }};&quot;&gt;{{ {{{|safesubst:}}}trim | {{{text|{{{3|}}}}}} }}&lt;/span&gt;
}}
| {{ {{{|safesubst:}}}#if: {{{link|}}}
| {{ {{{|safesubst:}}}#ifeq: {{{link|}}} | yes
| [[ {{ {{{|safesubst:}}}trim | {{{bg|{{{2|}}}}}} }} |&lt;span style=&quot;color:{{ {{{|safesubst:}}}trim | {{{fg|{{{1|inherit}}}}}} }};&quot;&gt;{{ {{{|safesubst:}}}trim | {{{bg|{{{2|}}}}}} }}&lt;/span&gt;]]
| [[ {{ {{{|safesubst:}}}trim | {{{link|}}} }} |&lt;span style=&quot;color:{{ {{{|safesubst:}}}trim | {{{fg|{{{1|inherit}}}}}} }};&quot;&gt;{{ {{{|safesubst:}}}trim | {{{bg|{{{2|}}}}}} }}&lt;/span&gt;]]
}}
| &lt;span style=&quot;color:{{ {{{|safesubst:}}}trim | {{{fg|{{{1|inherit}}}}}} }};&quot;&gt;{{ {{{|safesubst:}}}trim | {{{bg|{{{2|}}}}}} }}&lt;/span&gt;
}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>rv2fg2fhg3ymior6yythibr3kefytfv</sha1>
</revision>
</page>
<page>
<title>Template:Font color/doc</title>
<ns>10</ns>
<id>21225258</id>
<revision>
<id>779201242</id>
<parentid>743210279</parentid>
<timestamp>2017-05-07T16:01:18Z</timestamp>
<contributor>
<username>Mr. Guye</username>
<id>16852310</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="7779">{{Documentation subpage}}
{{Warning|1={{big|'''Links should clearly be identifiable as links to readers'''.}}&lt;br /&gt;Refrain from implementing colored links that may impede user ability to distinguish links from regular text, or color links for purely aesthetic reasons. See the guides to editing articles for accessibility at [[WP:CONTRAST|contrast]], [[ Wikipedia:Manual of Style/Accessibility|accessibility]] and [[WP:NAVBOXCOLOUR|navbox colors]].}}
&lt;includeonly&gt;{{High-use|32,000+}}&lt;/includeonly&gt;
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
== Purpose ==
{{tl | Font color }} is how you insert colorized text, such as
{{ font color | red | red }},
{{ font color | orange | orange }},
{{ font color | green | green }},
{{ font color | blue | blue | link = cat }} and
{{ font color | indigo | indigo }},
and [[Help:Color#Color generation guide|many others]].
You can specify its {{ font color | bg=yellow | fg=indigo | text=background }} color at the same time.
{{tl | Font color }} is also how you can color wikilinks
to something other than blue for when you need to work within background colors.
Normally &lt;kbd&gt;[&lt;nowiki/&gt;[ wikilink ]]&lt;/kbd&gt; &amp;rarr; [[wikilink]],
but here we use a {{tl | font color }} with {{para | link }} to create a black wikilink &amp;rarr;
{{ font color | black | violet | link=yes | &amp;nbsp;&amp;nbsp;&amp;nbsp;wikilink&amp;nbsp;&amp;nbsp;&amp;nbsp; }}
You can make any text link to any page using the {{para|link}} parameter.
This template will use the latest [[Wikipedia:HTML5]] recommendations,{{Clarify timeframe/sandbox|reason=Latest as of when?}}
inserting the span tags
{{tag|span|params=style=color:''color''}} and
{{tag|span|params=style=background-color:''color''}} for you, so your page increases its readability and usability in both the wikitext and the rendered page.
== Usage ==
{{tlf | Font color }} has a one-color and a two-color form:
: &lt;kbd&gt;{&lt;nowiki/&gt;{font color | ''color'' | ''text'' }}&lt;/kbd&gt;
: &lt;kbd&gt;{&lt;nowiki/&gt;{font color | ''text color'' | ''background color'' | ''text'' }}&lt;/kbd&gt;.
Either form has a &lt;kbd&gt;|link=&lt;/kbd&gt; option, for colorizing (otherwise blue or red) wikilink text.
: &lt;kbd&gt;|link{{=}}yes&lt;/kbd&gt; &amp;rarr; &lt;code&gt;[&lt;nowiki/&gt;[''text'']]&lt;/code&gt;
: &lt;kbd&gt;|link=''[[wp:pgn|fullpagename]]''&lt;/kbd&gt; &amp;rarr; &lt;code&gt;[&lt;nowiki/&gt;[''fullpagename'']]&lt;/code&gt;
You can also name the other fields.
: &lt;kbd&gt;{&lt;nowiki/&gt;{font color | fg=''color'' | text=''text'' }}&lt;/kbd&gt;
: &lt;kbd&gt;{&lt;nowiki/&gt;{font color | fg=''text color'' | bg=''background color'' | text=''text'' }}&lt;/kbd&gt;
You can name &lt;kbd&gt;|fg=&lt;/kbd&gt; or &lt;kbd&gt;|bg=&lt;/kbd&gt;, which is nice, but...
if you name either of them, you must also name &lt;kbd&gt;|text=&lt;/kbd&gt;, which is a compromise.
(See [[Help:Template#Parameters]] for why.)
Spacing is of no concern.
:&lt;code&gt;.&lt;/code&gt;&lt;kbd&gt;{&lt;nowiki/&gt;{font color|tan|green|text with four words}}&lt;/kbd&gt;&lt;code&gt;.&lt;/code&gt; &amp;rarr; &lt;code&gt;.&lt;/code&gt;{{font color|tan|green|text with four words }}&lt;code&gt;.&lt;/code&gt;
:&lt;code&gt;.&lt;/code&gt;&lt;kbd&gt; {&lt;nowiki/&gt;{font color|tan|green|text with four words}} &lt;/kbd&gt;&lt;code&gt;.&lt;/code&gt; &amp;rarr; &lt;code&gt;.&lt;/code&gt; {{font color|tan|green|text with four words }} &lt;code&gt;.&lt;/code&gt;
:&lt;code&gt;.&lt;/code&gt;&lt;kbd&gt; {&lt;nowiki/&gt;{ font color | tan | green | text with four words }} &lt;/kbd&gt;&lt;code&gt;.&lt;/code&gt; &amp;rarr; &lt;code&gt;.&lt;/code&gt; {{ font color | tan | green | text with four words }} &lt;code&gt;.&lt;/code&gt;
=== Parameters ===
{{Aligned table
|cols=3 |style=padding:0.5em 0;line-height:1.35em;margin-bottom:1.0em;
|col1style=font-family:monospace;padding-right:1.5em;
|col2style=padding-right:2.5em; |col3style=text-align:center;
|row1style=font-size:110%;font-weight:bold;| | Use / description | Default value
| {{{1}}} | ''text color'' | inherited
| {{{2}}} | ''text'' |
| link | {{=}}yes or {{=}}''fullpagename'' |
}}
:Or
{{Aligned table
|cols=3 |style=padding:0.5em 0;line-height:1.35em;margin-bottom:1.0em;
|col1style=font-family:monospace;padding-right:1.5em;
|col2style=padding-right:2.5em; |col3style=text-align:center;
|row1style=font-size:110%;font-weight:bold;| | Use / description | Default value
| {{{1}}} | ''text color'' | inherited
| {{{2}}} | ''background color'' | inherited
| {{{3}}} | ''text'' |
| link | {{=}}yes or {{=}}''fullpagename'' |
}}
== Examples ==
{|class=wikitable
!Markup
!Renders as
|-
| &lt;code&gt;&lt;nowiki&gt;{{ font color | green | green text }}&lt;/nowiki&gt;&lt;/code&gt;
| {{ font color | green | green text }}
|-
| &lt;code&gt;&lt;nowiki&gt;{{ font color | blue | do not style text as a link }}&lt;/nowiki&gt;&lt;/code&gt;
| {{ font color | blue | do not style text as a link }}
|-
| &lt;code&gt;&lt;nowiki&gt;{{ font color | white | black | white with black background }}&lt;/nowiki&gt;&lt;/code&gt;
| {{ font color | white | black | white with black background }}
|-
| | &lt;code&gt;{&lt;nowiki/&gt;{ font color'''{{big | {{! }}&lt;nowiki/&gt;{{! }} }}'''yellow | default text in yellow background }}&lt;/code&gt;
| {{ font color | | yellow | default text in yellow background }}
|-
| | &lt;code&gt;{&lt;nowiki/&gt;{ font color'''{{big | {{! }} }}'''bg=yellow | text = default text in yellow background }}&lt;/code&gt;
| {{ font color | bg=yellow | text = default text in yellow background }}
|}
{|class=wikitable
!Markup
!Renders as
|-
| &lt;code&gt;&lt;nowiki&gt;{{ font color | white | blue | Wikipedia:Example | link = yes }}&lt;/nowiki&gt;&lt;/code&gt;&lt;/code&gt;
| {{ font color | white | blue | Wikipedia:Example | link = yes }}
|-
| &lt;code&gt;&lt;nowiki&gt;{{ font color | white | blue | Wikipedia:Example | link = Wikipedia:Sandbox }}&lt;/nowiki&gt;&lt;/code&gt;
| {{ font color | white | blue | Wikipedia:Example | link = Wikipedia:Sandbox }}
|-
| &lt;code&gt;&lt;nowiki&gt;{{ font color | text = Wikipedia:Example | link = Wikipedia:Sandbox | bg
= blue | fg = white }}&lt;/nowiki&gt;&lt;/code&gt;
| {{ font color | text = Wikipedia:Example | link = Wikipedia:Sandbox | bg = blue | fg = white }}
|}
The {{para|link}} parameter is a good way to colorize wikilinks,
and it is about as much typing as the [[wp:pipe trick|pipe trick]].
Although a wikilink accepts a ''font color'' (or other template or markup):
:&lt;code&gt;{{big|[&lt;nowiki/&gt;[}}Wikipedia:Example{{big|{{!}}}}{&lt;nowiki /&gt;{font color|white|blue|the Wikipedia:Example page}}{{big|]]}}&lt;/code&gt;
:&amp;rarr; [[Wikipedia:Example | {{ font color | white | blue | the Wikipedia:Example page}}]] (a font-colored link),
a ''font color'' does not accept a wikilink, it creates wikilinks itself with {{para|link}}.
*{{OK }} {&lt;nowiki/&gt;{ font color | green | violet | Wikipedia:Example | link=yes }} &amp;rarr; {{ font color | green | violet | Wikipedia:Example | link=yes }} (a {{para|link}} {{tl | font color }})
*{{cross }}{&lt;nowiki/&gt;{ font color | green | violet | the [&lt;nowiki/&gt;[Wikipedia:Example]] page}} &amp;rarr; {{ font color | green | violet | the [[Wikipedia:Example]] page }} (Text with [&lt;nowiki/&gt;[wikilink brackets]] overrides the designated color)
*{{cross }}{&lt;nowiki/&gt;{ font color | green | violet | [&lt;nowiki/&gt;[Wikipedia:Exammple]] }} &amp;rarr; {{ font color | green | violet | the [[Wikipedia:Exammple]] page }} (Text with [&lt;nowiki/&gt;[wikilink brackets]] overrides the designated color)
&lt;!--
--&gt;&lt;includeonly&gt;For more examples see [[/testcases]].&lt;/includeonly&gt;
For actual mainspace template usage, here are search links for
* {{sl | hastemplate:&quot;font color&quot; | label=all usage }}.
* {{template usage | font color | pattern=link= | prefix=: | label=where &lt;code&gt;{{! }}link=&lt;/code&gt; is used }}.
* {{sl | hastemplate: &quot;font color&quot; prefix:F }} showing its use in articles whose title begins with the letter &quot;F&quot;.
==See also==
* [[WP:COLOR|Important Manual of Style information]]
* [[Web colors]]
* [[HTML color names]]
* [[List of colors]]
* [[Help: Link color]]
* {{tl|color}}
* {{tl|background color}}
* {{tl|color contrast ratio}}
* {{tl|hilite}}
* {{tl|font}}
* {{tl|tq}}
* {{tl|xt}}
&lt;includeonly&gt;
&lt;!-- categories --&gt;
[[Category:Text color templates]]
&lt;/includeonly&gt;</text>
<sha1>rnwnxvo97hsj5ar56lne1ws247z6jo9</sha1>
</revision>
</page>
<page>
<title>Template:For</title>
<ns>10</ns>
<id>1808502</id>
<revision>
<id>719096077</id>
<parentid>718013206</parentid>
<timestamp>2016-05-07T15:49:50Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Updated with Lua [[Module:For]] from sandbox</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="88">&lt;includeonly&gt;{{#invoke:For|For}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>7es2p1mk6qse8zlwn5qqya2ysrq1rcr</sha1>
</revision>
</page>
<page>
<title>Template:Frac</title>
<ns>10</ns>
<id>3276409</id>
<revision>
<id>815534894</id>
<parentid>742543615</parentid>
<timestamp>2017-12-15T12:28:56Z</timestamp>
<contributor>
<username>Jc86035</username>
<id>17245768</id>
</contributor>
<minor/>
<comment>zero-width space</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="413">{{zwsp}}&lt;!-- zero-width space; might be removable after introduction of RemexHTML --&gt;&lt;span class=&quot;frac nowrap&quot;&gt;{{#if:{{{3|}}}
|{{{1}}}&lt;span class=&quot;visualhide&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;sup&gt;{{{2}}}&lt;/sup&gt;&amp;frasl;&lt;sub&gt;{{{3}}}&lt;/sub&gt;
|{{#if:{{{2|}}}
|&lt;sup&gt;{{{1}}}&lt;/sup&gt;&amp;frasl;&lt;sub&gt;{{{2}}}&lt;/sub&gt;
|{{#if:{{{1|}}}
|&lt;sup&gt;1&lt;/sup&gt;&amp;frasl;&lt;sub&gt;{{{1}}}&lt;/sub&gt;
|&amp;frasl;
}}
}}
}}&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>agi5d3n79is6f2iv6w1tsderhmwq91l</sha1>
</revision>
</page>
<page>
<title>Template:Frac/doc</title>
<ns>10</ns>
<id>17142478</id>
<revision>
<id>806263798</id>
<parentid>803248708</parentid>
<timestamp>2017-10-20T20:44:37Z</timestamp>
<contributor>
<username>HotdogPi</username>
<id>16372547</id>
</contributor>
<comment>Undid revision 803248708 by [[Special:Contributions/79.186.163.205|79.186.163.205]] ([[User talk:79.186.163.205|talk]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3352">{{Documentation subpage}}
&lt;!-- Place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
This template builds an alternative form of [[common fraction]]s. The template takes one, two, or three parameters: the optional integer (may be signed), the optional numerator and the required denominator; in this order.
Please '''do not''' &lt;code&gt;subst:&lt;/code&gt;itute it. This template should '''not''' be used in science or mathematical articles, per [[MOS:FRAC]] and [[MOS:MATH#Fractions]]; use {{tl|sfrac}} instead. To allow numerical sorting of a column containing fractions, use {{tl|sortfrac}} instead. It is a combination of this template and {{tl|sort}}.
;&lt;code&gt;&lt;nowiki&gt;{{frac|A|B|C}}&lt;/nowiki&gt;&lt;/code&gt;: {{frac|A|B|C}} (integer, numerator and denominator)
;&lt;code&gt;&lt;nowiki&gt;{{frac|A|B}}&lt;/nowiki&gt;&lt;/code&gt;: {{frac|A|B}} (numerator and denominator)
;&lt;code&gt;&lt;nowiki&gt;{{frac|A}}&lt;/nowiki&gt;&lt;/code&gt;: {{frac|A}} (denominator only)
;&lt;code&gt;&lt;nowiki&gt;{{frac}}&lt;/nowiki&gt;&lt;/code&gt;: {{frac}} (fraction slash only)
==Examples==
;Numbers: {{frac|2}} {{frac|3}} {{frac|2|3}} {{frac|4}} {{frac|3|4}} {{frac|5}} {{frac|2|5}} {{frac|3|5}} {{frac|4|5}} {{frac|6}} {{frac|5|6}} {{frac|7}} {{frac|2|7}} {{frac|3|7}} {{frac|4|7}} {{frac|5|7}} {{frac|6|7}} {{frac|8}} {{frac|3|8}} {{frac|5|8}} {{frac|7|8}} {{frac|16}} {{frac|3|16}} {{frac|5|16}} {{frac|7|16}} {{frac|9|16}} {{frac|11|16}} {{frac|13|16}} {{frac|15|16}}
;Units: {{frac|m|s}} {{frac|km|h}} {{frac|kg·m|s²}} {{frac|s}} {{frac|Mbit|s}}
==Notes==
*&lt;code&gt;&lt;nowiki&gt;{{frac}}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&amp;amp;frasl;&lt;/code&gt; may be used to print out the fraction slash glyph &quot; &amp;frasl; &quot;.
== Parameters ==
{{TemplateData header}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;A template for displaying common fractions of the form int+num/den nicely. It supports 0–3 anonymous parameters with positional meaning.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;leftmost part&quot;,
&quot;description&quot;: &quot;Denominator if only parameter supplied. Numerator if 2 parameters supplied. Integer if 3 parameters supplied. If no parameter is specified the template will render a fraction slash only.&quot;,
&quot;type&quot;: &quot;string/line&quot;,
&quot;required&quot;: false
},
&quot;2&quot;: {
&quot;label&quot;: &quot;middle-right part&quot;,
&quot;description&quot;: &quot;Denominator if 2 parameters supplied. Numerator if 3 parameters supplied.&quot;,
&quot;inherits&quot;: &quot;1&quot;
},
&quot;3&quot;: {
&quot;label&quot;: &quot;rightmost part&quot;,
&quot;description&quot;: &quot;Denominator, always.&quot;,
&quot;inherits&quot;: &quot;1&quot;
}
}}&lt;/templatedata&gt;
==See also==
* [[Wikipedia:Rendering math]]
* {{tl|1/2}} ({{1/2}}), {{tl|1/3}}, {{tl|2/3}}, {{tl|1/4}}, {{tl|3/4}} – shorthands that use this template
* {{tl|sfrac}} ({{sfrac|2}}) – displays common fractions using a [[vinculum (symbol)|vinculum]] (horizontal line), for scientific and mathematical text
* {{tl|su}} ({{su|p=superscript|b=subscript}} text) – to align both b=subscript &amp; p=[[superscript]]
* {{tl|sub}} ({{sub|subscript}} text) – to show a [[subscript]]
* {{tl|sup}} ({{sup|superscript}} text) – to show a [[superscript]]
* [[Help:Displaying a formula#Fractions, matrices, multilines]]
* [[Help:Convert#Fractions]]
{{Math templates|notation}}
&lt;includeonly&gt;{{#ifeq:{{PAGENAME}}|Frac|
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Text-specific formatting and function templates]]
[[Category:Mathematical formatting templates]]
}}&lt;/includeonly&gt;</text>
<sha1>2fhglznot5alm0tgk1hxrpvw9hvqwmq</sha1>
</revision>
</page>
<page>
<title>Template:Further</title>
<ns>10</ns>
<id>1721317</id>
<revision>
<id>814492061</id>
<parentid>808459686</parentid>
<timestamp>2017-12-09T03:52:58Z</timestamp>
<contributor>
<username>AlexTheWhovian</username>
<id>22194871</id>
</contributor>
<minor/>
<comment>AlexTheWhovian moved page [[Template:Further information]] to [[Template:Further]] without leaving a redirect: [[WP:RMTR]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="210">&lt;includeonly&gt;{{#invoke:labelled list hatnote|labelledList|Further information}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>n8z8uuv46g17poqgwuac4r9w4wgvoq9</sha1>
</revision>
</page>
<page>
<title>Template:Hatnote</title>
<ns>10</ns>
<id>945764</id>
<revision>
<id>609825987</id>
<parentid>607120708</parentid>
<timestamp>2014-05-23T15:55:04Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<minor/>
<comment>tweak</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="171">&lt;includeonly&gt;{{#invoke:Hatnote|hatnote}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>8nnude79i1y2v6yy2z7j285k1k4v8p3</sha1>
</revision>
</page>
<page>
<title>Template:Helpbox</title>
<ns>10</ns>
<id>12818896</id>
<revision>
<id>630900404</id>
<parentid>620264662</parentid>
<timestamp>2014-10-24T07:05:01Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>remove duplicate heading2 &amp; content2</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1900">{{Sidebar
| name = {{#if:{{{templatename|}}} |{{{templatename}}} |{{{name|{{PAGENAME}}}}} }}
| float = {{{float|right}}}
| class = {{{class|{{{bodyclass|}}}}}}
| style = width:auto;background:#f5faff;font-size:90%;line-height:1.6em; {{#if:{{{1|}}} |{{{1}}} }}
| basestyle = background:#cee0f2;
| titlestyle = font-size:130%;padding-left:0.4em;padding-right:0.4em; &lt;!--(gap before first heading/content:)--&gt;display:block;margin-bottom:6px; {{{titlestyle|}}}
| title = {{{title|{{{name|}}}}}}
| headingstyle = padding:0.1em 0.25em 0.15em;{{{headingstyle|}}}
| contentstyle = padding-top:0.15em;
| heading1 = {{{group1|}}}
| content1 = {{{list1|}}}
| heading2 = {{{group2|}}}
| content2 = {{{list2|}}}
| heading3 = {{{group3|}}}
| content3 = {{{list3|}}}
| heading4 = {{{group4|}}}
| content4 = {{{list4|}}}
| heading5 = {{{group5|}}}
| content5 = {{{list5|}}}
| heading6 = {{{group6|}}}
| content6 = {{{list6|}}}
| heading7 = {{{group7|}}}
| content7 = {{{list7|}}}
| heading8 = {{{group8|}}}
| content8 = {{{list8|}}}
| heading9 = {{{group9|}}}
| content9 = {{{list9|}}}
| heading10 = {{{group10|}}}
| content10 = {{{list10|}}}
| heading11 = {{{group11|}}}
| content11 = {{{list11|}}}
| heading12 = {{{group12|}}}
| content12 = {{{list12|}}}
| heading13 = {{{group13|}}}
| content13 = {{{list13|}}}
| heading14 = {{{group14|}}}
| content14 = {{{list14|}}}
| heading15 = {{{group15|}}}
| content15 = {{{list15|}}}
| heading16 = {{{group16|}}}
| content16 = {{{list16|}}}
| heading17 = {{{group17|}}}
| content17 = {{{list17|}}}
| heading18 = {{{group18|}}}
| content18 = {{{list18|}}}
| heading19 = {{{group19|}}}
| content19 = {{{list19|}}}
| heading20 = {{{group20|}}}
| content20 = {{{list20|}}}
| navbar = {{#if:{{{templatename|}}} |
| {{#if:{{{title|}}} |{{#if:{{{name|}}} | |none}}
| none
}} }}
}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>gd5qhrxn4h0bsmxctor5v82kb243yq8</sha1>
</revision>
</page>
<page>
<title>Template:Hidden begin</title>
<ns>10</ns>
<id>3883451</id>
<revision>
<id>823488692</id>
<parentid>823488609</parentid>
<timestamp>2018-02-01T15:53:38Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>move down</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="945">&lt;includeonly&gt;&lt;div class=&quot;mw-collapsible {{#ifeq:{{{showhide|}}}{{{toggle|}}}|left|mw-collapsible-leftside-toggle}} {{#if:{{{expanded|}}} | |mw-collapsed}} {{{class|}}}&quot; style=&quot;box-sizing:border-box;width:100%;font-size:95%;padding:4px;border:{{{border|none}}};{{{style|}}}&quot;&gt;&lt;!--
--&gt;&lt;div style=&quot;font-size:100%;line-height:1.6;font-weight:bold;background:{{{bg1|transparent}}};text-align:{{{ta1|left}}};{{{extra1|}}};{{{titlestyle|{{{headercss|}}}}}}&quot;&gt;{{{header|}}}{{{title|}}}&lt;/div&gt;&lt;!--
--&gt;&lt;div class=&quot;mw-collapsible-content&quot; style=&quot;background:{{{bg2|transparent}}};text-align:{{{ta2|left}}};{{{extra2|}}};{{{bodystyle|{{{contentstyle|{{{contentcss|}}}}}}}}}&quot;&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{hatnote|Templates {{noredirect|Template:Begin hidden|Begin hidden}}, {{noredirect|Template:Start hidden|Start hidden}} and {{noredirect|Template:Start hidden section|Start hidden section}} redirect here.}}
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>mfz6dvmv5cibtioho9nho7q04l4t8jt</sha1>
</revision>
</page>
<page>
<title>Template:Hidden end</title>
<ns>10</ns>
<id>3883454</id>
<revision>
<id>637090096</id>
<parentid>627937788</parentid>
<timestamp>2014-12-07T23:44:52Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>hatnote</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="265">&lt;noinclude&gt;{{hatnote|Templates {{noredirect|Template:End hidden|End hidden}} and {{noredirect|Template:End hidden section|End hidden section}} redirect here.}}&lt;/noinclude&gt;&lt;!--
--&gt;&lt;/div&gt;&lt;/div&gt;&lt;!--
--&gt;&lt;noinclude&gt;{{Documentation|Template:Hidden begin/doc}}&lt;/noinclude&gt;</text>
<sha1>6czo2bbo2510cfti4pc4klygch4cmz3</sha1>
</revision>
</page>
<page>
<title>Template:High-risk</title>
<ns>10</ns>
<id>11453893</id>
<revision>
<id>819682280</id>
<parentid>793779436</parentid>
<timestamp>2018-01-10T18:59:05Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:High-risk]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or con...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1567">{{ombox
| type = content
| image = [[File:Ambox warning orange.svg|40px|alt=Warning|link=]]
| imageright =
| text =
'''This {{
#switch:{{NAMESPACE}}
|Module=Lua module
|#default=template
}} is used on &lt;span class=&quot;plainlinks&quot;&gt;[https://tools.wmflabs.org/templatecount/index.php?lang=en&amp;namespace={{NAMESPACENUMBER:{{FULLPAGENAME}}}}&amp;name={{urlencode:{{
#switch: {{SUBPAGENAME}}
| doc | sandbox = {{BASEPAGENAME}}
| #default = {{PAGENAME}}
}}}} {{#if:{{{1|}}}|{{formatnum:{{{1}}}}}|a very large number of}} pages]&lt;/span&gt;.'''&lt;br /&gt;To avoid large-scale disruption and unnecessary server load, any changes to this {{
#switch:{{NAMESPACE}}
|Module=module
|#default=template
}} should first be tested in its [[{{
#switch: {{SUBPAGENAME}}
| doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}}
| #default = {{SUBJECTPAGENAME}}
}}/sandbox|/sandbox]] or [[{{
#switch: {{SUBPAGENAME}}
| doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}}
| #default = {{SUBJECTPAGENAME}}
}}/testcases|/testcases]] subpages{{
#switch:{{NAMESPACE}}
|Module=.
|#default=&amp;#32;or in your own [[Wikipedia:Subpages#How to create user subpages|user subpage]].
}} The tested changes can then be added to this page in a single edit. Please consider discussing any changes {{#if:{{{2|}}}|at [[{{{2}}}]]|on the [[{{
#switch: {{SUBPAGENAME}}
| doc | sandbox = {{TALKSPACE}}:{{BASEPAGENAME}}
| #default = {{TALKPAGENAME}}
}}|talk page]]}} before implementing them.
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! --&gt;
&lt;/noinclude&gt;</text>
<sha1>giefz1gm6mqvskshl7su66k8llchhwq</sha1>
</revision>
</page>
<page>
<title>Template:High-use</title>
<ns>10</ns>
<id>17406187</id>
<revision>
<id>777931378</id>
<parentid>752582011</parentid>
<timestamp>2017-04-30T04:28:05Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<minor/>
<comment>added equivalent alt text &quot;Warning&quot; to image</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1473">{{Ombox
| type = style
| image = [[File:Ambox warning yellow.svg|40px|alt=Warning|link=]]
| text =
'''This {{#switch:{{NAMESPACE}}|Module=Lua module|#default=template}} is used on [https://tools.wmflabs.org/templatecount/index.php?lang=en&amp;namespace={{NAMESPACENUMBER:{{FULLPAGENAME}}}}&amp;name={{urlencode:{{
#switch: {{SUBPAGENAME}}
| doc | sandbox = {{BASEPAGENAME}}
| #default = {{PAGENAME}}
}}}} {{High-use/num|1={{formatnum:{{#ifeq:{{str endswith|{{{1}}}|+}}|yes|{{str crop|{{{1}}}|1}}|{{{1}}}}}|R}}}} pages]''', so changes to it will be widely noticed. Please test any changes in the {{#switch:{{NAMESPACE}}|Module=module's|#default=template's}} [[{{#switch: {{SUBPAGENAME}}
| doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}}
| #default = {{SUBJECTPAGENAME}}
}}/sandbox|/sandbox]] or [[{{#switch: {{SUBPAGENAME}}
| doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}}
| #default = {{SUBJECTPAGENAME}}
}}/testcases|/testcases]] subpages{{#switch:{{NAMESPACE}}|Module=.|#default=, or in your own [[Wikipedia:Subpages#How to create user subpages|user subpage]].}} Please consider discussing changes {{#if:{{{2|}}}|at [[{{{2}}}]]|on the [[{{#switch: {{SUBPAGENAME}}
| doc | sandbox = {{TALKSPACE}}:{{BASEPAGENAME}}
| #default = {{TALKPAGENAME}}
}}|talk page]]}} before implementing them.
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Add categories to the /doc subpage; interwiki links go to Wikidata, thank you! --&gt;
&lt;/noinclude&gt;</text>
<sha1>ggv9ira9l4ekmaa8ru4nhdrreym2q5h</sha1>
</revision>
</page>
<page>
<title>Template:High-use/num</title>
<ns>10</ns>
<id>52295942</id>
<revision>
<id>804536581</id>
<parentid>749847442</parentid>
<timestamp>2017-10-09T17:20:41Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:High-use/num]]&quot;: [[WP:High-risk templates|Highly visible template]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="74">{{#iferror:{{#expr:0+{{{1}}}*1}}|many|approximately {{sigfig|{{{1}}}|2}}}}</text>
<sha1>4xf17czszr0cg49vcljmilmjdv8krz3</sha1>
</revision>
</page>
<page>
<title>Template:Hlist</title>
<ns>10</ns>
<id>38143620</id>
<revision>
<id>669926987</id>
<parentid>669921219</parentid>
<timestamp>2015-07-04T15:13:14Z</timestamp>
<contributor>
<username>Penwhale</username>
<id>125125</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Hlist: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="181">{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#invoke:list|horizontal}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>ihcdy525o8nnmq114czc48dpk6pnojd</sha1>
</revision>
</page>
<page>
<title>Template:Icon</title>
<ns>10</ns>
<id>10964158</id>
<revision>
<id>643803499</id>
<parentid>623318300</parentid>
<timestamp>2015-01-23T10:29:55Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>switch this to use [[Module:Icon]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="138">{{#invoke:Icon|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>m4ab9noabl8v4ki5cx6t5ksjcjh5u8o</sha1>
</revision>
</page>
<page>
<title>Template:Infobox</title>
<ns>10</ns>
<id>891845</id>
<revision>
<id>765690941</id>
<parentid>590143656</parentid>
<timestamp>2017-02-15T21:41:48Z</timestamp>
<contributor>
<username>Andrew Gray</username>
<id>126457</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Infobox]]&quot;: Degrade to template permission per request, in line with [[WP:PP]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="145">{{#invoke:Infobox|infobox}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go in the /doc subpage, and interwikis go in Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>kavlqnbr7pew8bhy59a3n9jmoau5jt4</sha1>
</revision>
</page>
<page>
<title>Template:Infobox synthesizer</title>
<ns>10</ns>
<id>1810288</id>
<revision>
<id>788080341</id>
<parentid>788079731</parentid>
<timestamp>2017-06-29T10:09:22Z</timestamp>
<contributor>
<username>Codename Lisa</username>
<id>16847332</id>
</contributor>
<comment>Preview implementation</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2490">{{Infobox
| bodyclass = vevent
| above = {{{synth_name&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| titleclass = summary
| image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|&lt;noinclude&gt;Example image.svg&lt;/noinclude&gt;}}}|size={{{image size|{{{image_size|{{{imagesize|}}}}}}}}}|sizedefault=frameless|alt={{{alt|}}}|suppressplaceholder=yes}}
| caption = {{{image_caption&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label1 = [[Manufacturing|Manufacturer]]
| data1 = {{{synth_manufacturer&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label2 = Dates
| data2 = {{{dates&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label3 = Price
| data3 = {{{price&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| header4 = Technical specifications
| label5 = [[Polyphony and monophony in instruments|Polyphony]]
| data5 = {{{polyphony&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label6 = [[Timbre|Timbrality]]
| data6 = {{{timbrality&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label7 = [[Electronic oscillator|Oscillator]]
| data7 = {{{oscillator&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label8 = [[Low-frequency oscillation|LFO]]
| data8 = {{{lfo&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label9 = [[Synthesizer#Types of synthesis|Synthesis type]]
| data9 = {{{synthesis_type&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label10 = [[Audio filter|Filter]]
| data10 = {{{filter&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label11 = [[Attenuator (electronics)|Attenuator]]
| data11 = {{{attenuator&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label12 = Aftertouch [[Keyboard expression|expression]]
| data12 = {{{aftertouch&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label13 = Velocity expression
| data13 = {{{velocity&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label14 = [[Computer data storage|Storage]] memory
| data14 = {{{memory&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label15 = [[Sound effect|Effects]]
| data15 = {{{fx&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label16 = Hardware
| data16 = {{{synth_hardware&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| header17 = Input/output
| label18 = [[Musical keyboard|Keyboard]]
| data18 = {{{keyboard&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label19 = Left-hand control
| data19 = {{{left_control&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label20 = External control
| data20 = {{{ext_control&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| label21 = Audio sample
| data21 = {{{sample&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!--Please add this template's categories to the /doc subpage, not here - thanks!--&gt;
&lt;/noinclude&gt;</text>
<sha1>bmrai34ucg7mpv8uvk448oly4g0jxoj</sha1>
</revision>
</page>
<page>
<title>Template:Infobox synthesizer/doc</title>
<ns>10</ns>
<id>21224818</id>
<revision>
<id>806108352</id>
<parentid>806107547</parentid>
<timestamp>2017-10-19T19:13:39Z</timestamp>
<contributor>
<username>Kakurady</username>
<id>267267</id>
</contributor>
<comment>Add field types to TemplateData.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="9875">{{Documentation subpage}}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[&lt;/nowiki&gt;[[Wikipedia:Wikidata]]&lt;nowiki&gt;]]) --&gt;
== Usage ==
&lt;pre&gt;
{{Infobox synthesizer
| synth_name =
| synth_manufacturer =
| image =
| image_caption =
| dates =
| price =
| measurements =
| polyphony =
| timbrality =
| oscillator =
| lfo =
| synthesis_type =
| filter =
| attenuator =
| aftertouch =
| velocity =
| memory =
| fx =
| synth_hardware =
| keyboard =
| left_control =
| ext_control =
}}
&lt;/pre&gt;
== Example ==
{{Infobox synthesizer
| synth_name = TB-303
| synth_manufacturer = [[Roland Corporation]]
| image = TB303-midi-frontview.png
| image_caption = TB-303 front panel
| dates = 1982 &amp;ndash; 1984
| price = $395
| polyphony = [[Monophonic (synthesizers)|Monophonic]]
| timbrality = [[Monotimbral]]
| oscillator = [[Digitally-controlled oscillator|DCO]]
| lfo = [[Sine wave]]
| synthesis_type = [[Sample-based synthesis]]
| filter = [[Digital filter|Digital]] [[low-pass filter]]
| attenuator = [[ADSR envelope]] generator
| aftertouch = No
| velocity = No
| memory = 64 patterns
| fx = [[Reverb]], [[chorus effect|chorus]]
| keyboard = 13 keys
| left_control = [[Pitch bend]], [[modulation|mod wheel]]
| ext_control = [[MIDI]] in/out/thru
}}
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Infobox synthesizer
| synth_name = TB-303
| synth_manufacturer = [[Roland Corporation]]
| image = TB303-midi-frontview.png
| image_caption = TB-303 front panel
| dates = 1982 &amp;ndash; 1984
| price = $395
| polyphony = [[Monophonic (synthesizers)|Monophonic]]
| timbrality = [[Monotimbral]]
| oscillator = [[Digitally-controlled oscillator|DCO]]
| lfo = [[Sine wave]]
| synthesis_type = [[Sample-based synthesis]]
| filter = [[Digital filter|Digital]] [[low-pass filter]]
| attenuator = [[ADSR envelope]] generator
| aftertouch = No
| velocity = No
| memory = 64 patterns
| fx = [[Reverb]], [[chorus effect|chorus]]
| keyboard = 13 keys
| left_control = [[Pitch bend]], [[modulation|mod wheel]]
| ext_control = [[MIDI]] in/out/thru
}}
&lt;/pre&gt;
{{-}}
== Parameters ==
{| class=&quot;wikitable&quot;
! parameter
! optional?
! description
|-
| '''synth_name'''
| {{no}}
| Name (model) of the synthesizer
|-
| '''synth_manufacturer'''
| {{no}}
| Manufacturer of the synthesizer
|-
| '''image'''
| {{yes}}
| Image (photograph) of the synthesizer
|-
| '''image_caption'''
| {{yes}}
| Caption for the image
|-
| '''dates'''
| {{no}}
| Date(s) that the synthesizer was manufactured &amp;ndash; if applicable, use '''YYYY &amp;ndash; present'''
|-
| '''price'''
| {{yes}}
| Original selling price of synthesizer
|-
| '''polyphony'''
| {{no}}
| Polyphony of the synthesizer &amp;ndash; state [[Monophonic (synthesizers)|monophonic]], [[duophonic]] or a numerical value
|-
| '''timbrality'''
| {{yes}}
| Timbrality of the synthesizer &amp;ndash; state [[monotimbral]] or [[multitimbral]]
|-
| '''oscillator'''
| {{no}}
| Oscillator(s) of the synth &amp;ndash; state number and type ([[Voltage-controlled oscillator|VCO]], [[Digitally-controlled oscillator|DCO]] or [[white noise]])
|-
| '''lfo'''
| {{yes}}
| As above &amp;ndash; if applicable, state waveform ([[sine wave|sine]], [[sawtooth wave|saw]], [[square wave|square]], [[triangle wave|triangle]] etc.)
|-
| '''synthesis_type'''
| {{no}}
| Type of synthesis used in sound generation ([[additive synthesis|additive]], [[Digital synthesizer|digital]] [[Frequency modulation synthesis|frequency modulation]], [[Phase distortion synthesis|phase distortion]], [[Phase modulation]] ([[Frequency modulation synthesis|FM]])), [[Physical modelling synthesis|physical modelling]], [[Digital synthesizer|digital]] [[Sample-based synthesis|sample-based]] [[Subtractive synthesis|subtractive]], [[Analog synthesizer|analog]] [[Subtractive synthesis|subtractive]], [[Wavetable synthesis|wavetable]] etc.)
|-
| '''filter'''
| {{yes}}
| Filters used by the synthesizer ([[Voltage-controlled filter|VCF]], [[Digital filter|digital]], [[Low-pass filter|low-pass]], [[High-pass filter|high-pass]], [[Band-pass filter|band-pass]], [[Band-stop filter|notch]] etc.)
|-
| '''Attenuator'''
| {{yes}}
| List any attenuators (such as [[ADSR envelope]])
|-
| '''Aftertouch'''
| {{yes}}
| Is [[aftertouch]] supported? (Use '''yes''' or '''no''')
|-
| '''Velocity'''
| {{yes}}
| Is note [[Keyboard expression|velocity]] supported? (Use '''yes''' or '''no''')
|-
| '''memory'''
| {{yes}}
| What (if any) memory is available (list presets, user patch slots etc.)
|-
| '''fx'''
| {{yes}}
| List any built-in effects that are available ([[Chorus effect|chorus]], [[distortion]], [[Equalization|EQ]], [[Flanging|flange]], [[Phase shifting|phaser]], [[Reverberation|reverb]] etc.)
|-
| '''synth_hardware'''
| {{yes}}
| Specifies the synthesizing hardware ([[Sound chip]]s, etc.) if notable.
|-
| '''keyboard'''
| {{no}}
| Is a [[music keyboard|keyboard]] integrated? If so, how many [[key (instrument)|keys]]?
|-
| '''left_control'''
| {{yes}}
| What left hand controls ([[pitch bend]], [[modulation|mod wheel]], [[ribbon controller]] etc.) are available?
|-
| '''ext_control'''
| {{yes}}
| What external control technologies (such as [[MIDI]] and [[control voltage|CV]]) are supported?
|}
== TemplateData ==
{{TemplateData header}}
&lt;templatedata&gt;
{
&quot;params&quot;: {
&quot;synth_name&quot;: {
&quot;description&quot;: &quot;Name (model) of the synthesizer&quot;,
&quot;example&quot;: &quot;TB-303&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;suggested&quot;: true
},
&quot;image&quot;: {
&quot;description&quot;: &quot;Image (photograph) of the synthesizer&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;wiki-file-name&quot;
},
&quot;image size&quot;: {},
&quot;image_size&quot;: {},
&quot;imagesize&quot;: {},
&quot;alt&quot;: {},
&quot;image_caption&quot;: {
&quot;description&quot;: &quot;Caption for the image&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;line&quot;
},
&quot;synth_manufacturer&quot;: {
&quot;description&quot;: &quot;Manufacturer of the synthesizer&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;line&quot;
},
&quot;dates&quot;: {
&quot;description&quot;: &quot;Date(s) that the synthesizer was manufactured – if applicable, use YYYY – present&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;price&quot;: {
&quot;description&quot;: &quot;Original selling price of synthesizer&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;polyphony&quot;: {
&quot;description&quot;: &quot;Polyphony of the synthesizer – state [[monophonic]], [[duophonic]] or a numerical value&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;line&quot;
},
&quot;timbrality&quot;: {
&quot;description&quot;: &quot;Timbrality of the synthesizer – state monotimbral or multitimbral&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;line&quot;
},
&quot;oscillator&quot;: {
&quot;description&quot;: &quot;Oscillator(s) of the synth – state number and type (VCO, DCO or white noise)&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;line&quot;
},
&quot;lfo&quot;: {
&quot;description&quot;: &quot;Low frequency oscillator. As above – if applicable, state waveform (sine, saw, square, triangle etc.)&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;line&quot;
},
&quot;synthesis_type&quot;: {
&quot;description&quot;: &quot;Type of synthesis used in sound generation (additive, digital frequency modulation, phase distortion, Phase modulation (FM)), physical modelling, digital sample-based subtractive, analog subtractive, wavetable etc.)&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;line&quot;
},
&quot;filter&quot;: {
&quot;description&quot;: &quot;Filters used by the synthesizer (VCF, digital, low-pass, high-pass, band-pass, notch etc.)&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;string&quot;
},
&quot;attenuator&quot;: {
&quot;description&quot;: &quot;List any attenuators (such as ADSR envelope)&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;line&quot;
},
&quot;aftertouch&quot;: {
&quot;description&quot;: &quot;Is aftertouch supported? (Use yes or no)&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;line&quot;
},
&quot;velocity&quot;: {
&quot;description&quot;: &quot;Is note velocity supported? (Use yes or no)&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;line&quot;
},
&quot;memory&quot;: {
&quot;description&quot;: &quot;What (if any) memory is available (list presets, user patch slots etc.)&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;string&quot;
},
&quot;fx&quot;: {
&quot;description&quot;: &quot;List any built-in effects that are available (chorus, distortion, EQ, flange, phaser, reverb etc.)&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;string&quot;
},
&quot;synth_hardware&quot;: {
&quot;description&quot;: &quot;Specifies the synthesizing hardware (Sound chips, etc.) if notable.&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;string&quot;
},
&quot;keyboard&quot;: {
&quot;description&quot;: &quot;Is a keyboard integrated? If so, how many keys?&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;line&quot;
},
&quot;left_control&quot;: {
&quot;description&quot;: &quot;What left hand controls (pitch bend, mod wheel, ribbon controller etc.) are available?&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;string&quot;
},
&quot;ext_control&quot;: {
&quot;description&quot;: &quot;What external control technologies (such as MIDI and CV) are supported?&quot;,
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;string&quot;
},
&quot;sample&quot;: {
&quot;suggested&quot;: true,
&quot;type&quot;: &quot;wiki-file-name&quot;
}
},
&quot;paramOrder&quot;: [
&quot;synth_name&quot;,
&quot;synth_manufacturer&quot;,
&quot;image&quot;,
&quot;image_caption&quot;,
&quot;image size&quot;,
&quot;image_size&quot;,
&quot;imagesize&quot;,
&quot;alt&quot;,
&quot;dates&quot;,
&quot;price&quot;,
&quot;polyphony&quot;,
&quot;timbrality&quot;,
&quot;oscillator&quot;,
&quot;lfo&quot;,
&quot;synthesis_type&quot;,
&quot;filter&quot;,
&quot;attenuator&quot;,
&quot;aftertouch&quot;,
&quot;velocity&quot;,
&quot;memory&quot;,
&quot;fx&quot;,
&quot;synth_hardware&quot;,
&quot;keyboard&quot;,
&quot;left_control&quot;,
&quot;ext_control&quot;,
&quot;sample&quot;
],
&quot;format&quot;: &quot;block&quot;
}
&lt;/templatedata&gt;
== See also ==
* {{tl|Infobox instrument}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Music infobox templates|Synthesizer]]
}}&lt;/includeonly&gt;</text>
<sha1>4f2gp780mfom8lmsaranhzyu2z1yt1b</sha1>
</revision>
</page>
<page>
<title>Template:Infobox/doc</title>
<ns>10</ns>
<id>15383540</id>
<revision>
<id>823048052</id>
<parentid>823046421</parentid>
<timestamp>2018-01-30T00:00:28Z</timestamp>
<contributor>
<username>Wbm1058</username>
<id>14383484</id>
</contributor>
<comment>oops, fix calculation</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="28862">{{distinguish|Template:Userbox}}
{{Documentation subpage}}
&lt;includeonly&gt;{{#ifeq:{{#titleparts:{{PAGENAME}}|1|2}}|old | |{{High-risk|3000000+ pages, which is ≈&amp;thinsp;{{#expr:(300000000/{{NUMBEROFPAGES:R}}) round 0}}% of all {{NUMBEROFPAGES:R}}}}{{Lua|Module:Infobox}}}}&lt;/includeonly&gt;
{{Parameter names example
|name={{PAGENAME}} &lt;!--|child |subbox |decat--&gt; |title |above |subheader |subheader1 |subheader2={{{subheader2}}}&lt;br/&gt;......
|image|caption |image1|caption1 |image2|caption2={{{caption2}}}&lt;br/&gt;......
|header1=&lt;div style=&quot;border-top:1px dashed #ccc;&quot;&gt;{{{header1}}}&lt;br/&gt;{{nobold|( ''or'' )}}&lt;/div&gt;
|label2={{{label1}}} |data2={{{data1}}}
|data3=( ''or'' ) |data4=&lt;div style=&quot;padding-bottom:0.25em;border-bottom:1px dashed #ccc;&quot;&gt;{{{data1}}}&lt;/div&gt;
|header5={{{header2}}}&lt;br/&gt;&lt;div style=&quot;padding:0.75em 0 0.5em;&quot;&gt;{{nobold|( ''or'' )}}&lt;/div&gt;
|label6={{{label2}}} |data6={{{data2}}}
|data7=( ''or'' ) |data8=&lt;div style=&quot;padding-bottom:0.25em;border-bottom:1px dashed #ccc;&quot;&gt;{{{data2}}}&lt;/div&gt;
|data9=&lt;div style=&quot;padding:0.75em 0 0.5em;&quot;&gt;( ''etc'' )&lt;/div&gt;
|below
}}
This template is intended as a meta template: a template used for constructing other templates. '''Note''': In general, it is not meant for use directly in an article, but can be used on a one-off basis if required. [[Help:Infobox]] contains an introduction about the recommended content and design of infoboxes; [[Wikipedia:Manual of Style/Infoboxes]] contains additional style guidelines. See [[WP:List of infoboxes]] and [[:Category:Infobox templates]] for lists of prepared topic-specific infoboxes.
== Usage ==
Usage is similar to {{tl|navbox}}, but with an additional distinction. Each row on the table can contain either a header, or a label/data pair, or just a data cell. These are mutually exclusive states so if you define a row with both a header and a label/data pair, the label/data pair is ignored.
To insert an image somewhere other than at the top of the infobox, or to insert freeform data, use a row with only a data field.
== Optional control parameters ==
; name : If this parameter is present, &quot;view/discuss/edit&quot; links will be added to the bottom of the infobox, pointing to the named page. You may use the value &lt;nowiki&gt;{{subst:PAGENAME}}&lt;/nowiki&gt;; however this is rarely what you want, because it will send users clicking these links in an infobox in an article to the template code rather than the data in the infobox that they probably want to change.
; child : See the [[#Embedding|Embedding]] section for details. If this is set to &quot;yes&quot;, this child infobox should be titled but have no name parameter. This parameter is empty by default, set it to &quot;yes&quot; to activate it.
; subbox : See the [[#Subboxes|Subboxes]] section for details. If this is set to &quot;yes&quot;, this subbox should be titled but have no name parameter. This parameter is empty by default, set to &quot;yes&quot; to activate it. It has no effect if the '''child''' parameter is also set to &quot;yes&quot;.
; decat : If this is set to &quot;yes&quot;, the current page will not be autocategorized in a maintenance category when the generated infobox has some problems or no visible data section. Leave empty by default or set to &quot;yes&quot; to activate it.
== Content parameters ==
=== Title ===
There are two different ways to put a title on an infobox. One contains the title inside the infobox's border in the uppermost cell of the table, the other puts as a caption it on top of the table. You can use both of them together if you like, or just one or the other, or even neither (though this is not recommended):
; title : Text to put in the caption over the top of the table (or as section header before the whole content of this table, if this is a child infobox). For [[Wikipedia:Manual of Style/Accessibility#Tables|accessibility reasons]], this is the most recommended alternative.
; above : Text to put within the uppermost cell of the table.
; subheader(n) : additional title fields which fit below {{{title}}} and {{{above}}}, but before images.
Examples:
{{Infobox
| name = Infobox/doc
| title = Text in caption over infobox
| subheader = Subheader of the infobox
| header = (the rest of the infobox goes here)
}}
&lt;pre style=&quot;overflow:auto&quot;&gt;
{{Infobox
| name = {{subst:PAGENAME}}
| title = Text in caption over infobox
| subheader = Subheader of the infobox
| header = (the rest of the infobox goes here)
}}
&lt;/pre&gt;{{clear}}
{{Infobox
| name = Infobox/doc
| above = Text in uppermost cell of infobox
| subheader = Subheader of the infobox
| subheader2 = Second subheader of the infobox
| header = (the rest of the infobox goes here)
}}
&lt;pre style=&quot;overflow:auto&quot;&gt;
{{Infobox
| name = {{subst:PAGENAME}}
| above = Text in uppermost cell of infobox
| subheader = Subheader of the infobox
| subheader2 = Second subheader of the infobox
| header = (the rest of the infobox goes here)
}}
&lt;/pre&gt;{{clear}}
=== Illustration images ===
; image(n) : images to display at the top of the template. Use full image syntax, for example &lt;nowiki&gt;[[File:example.png|200px|alt=Example alt text]]&lt;/nowiki&gt;. Image is centered by default. See [[WP:ALT]] for more on alt text.
; caption(n) : Text to put underneath the images.
=== Main data ===
; header(n) : Text to use as a header in row n.
; label(n) : Text to use as a label in row n.
; data(n) : Text to display as data in row n.
Note: for any given value for (n), not all combinations of parameters are permitted. The presence of a {{para|header''(n)''}} will cause the corresponding {{para|data''(n)''}} (and {{para|rowclass''(n)''}} {{para|label''(n)''}}, see below) to be ignored; the absence of a {{para|data''(n)''}} will cause the corresponding {{para|label''(n)''}} to be ignored. Valid combinations for any single row are:
* {{para|class''(n)''}} {{para|header''(n)''}}
* {{para|rowclass''(n)''}} {{para|class''(n)''}} {{para|data''(n)''}}
* {{para|rowclass''(n)''}} {{para|label''(n)''}} {{para|class''(n)''}} {{para|data''(n)''}}
See the rendering of header4, label4, and data4 in the [[#Examples|Examples]] section below.
==== Number ranges ====
To allow flexibility when the layout of an infobox is changed, it may be helpful when developing an infobox to use non-contiguous numbers for header and label/data rows. Parameters for new rows can then be inserted in future without having to renumber existing parameters. For example:
&lt;pre style=&quot;overflow:auto&quot;&gt;
| header3 = Section 1
| label5 = Label A
| data5 = Data A
| label7 = Label C
| data7 = Data C
| header10 = Section 2
| label12 = Label D
| data12 = Data D
&lt;/pre&gt;{{clear}}
It is also possible to automatically renumber parameter names by using [[User:Frietjes/infoboxgap.js]] or [[Module:IncrementParams]].
==== Making data fields optional ====
A row with a label but no data is not displayed. This allows for the easy creation of optional infobox content rows. To make a row optional use a parameter that defaults to an empty string, like so:
&lt;pre style=&quot;overflow:auto&quot;&gt;
| label5 = Population
| data5 = {{{population|}}}
&lt;/pre&gt;{{clear}}
This way if an article doesn't define the population parameter in its infobox the row won't be displayed.
For more complex fields with pre-formatted contents that would still be present even if the parameter wasn't set, you can wrap it all in an &quot;#if&quot; statement to make the whole thing vanish when the parameter is not used. For instance, the &quot;#if&quot; statement in the following example reads &quot;#if:the parameter ''mass'' has been supplied |then display it, followed by 'kg'&quot;:
&lt;pre style=&quot;overflow:auto&quot;&gt;
| label6 = Mass
| data6 = {{ #if: {{{mass|}}} | {{{mass}}} kg }}
&lt;/pre&gt;{{clear}}
For more on #if, see [[meta:ParserFunctions##if:|here]].
==== Hiding headers when all data fields are hidden ====
You can also make headers optional in a similar way. Consider this example:
{{Infobox
| title = Example of an undesirable header
| header1 = Undesirable header
| label2 = Item 1 | data2 =
| label3 = Item 2 | data3 =
| label4 = Item 3 | data4 =
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
&lt;pre style=&quot;overflow:auto&quot;&gt;
{{Infobox
| title = Example of an undesirable header
| header1 = Undesirable header
| label2 = Item 1 | data2 =
| label3 = Item 2 | data3 =
| label4 = Item 3 | data4 =
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
&lt;/pre&gt;{{clear}}
If you want the first header to appear only if one or more of the data fields that fall under it are filled, one could use the following pattern as an example of how to do it:
{{Infobox
| title = Example of an optional header
| header1 = {{ #if: {{{item1|}}}{{{item2|}}}{{{item3|}}} | Optional header }}
| label2 = Item 1 | data2 = {{{item1|}}}
| label3 = Item 2 | data3 = {{{item2|}}}
| label4 = Item 3 | data4 = {{{item3|}}}
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
&lt;pre style=&quot;overflow:auto&quot;&gt;
{{Infobox
| title = Example of an optional header
| header1 = {{ #if: {{{item1|}}}{{{item2|}}}{{{item3|}}} | Optional header }}
| label2 = Item 1 | data2 = {{{item1|}}}
| label3 = Item 2 | data3 = {{{item2|}}}
| label4 = Item 3 | data4 = {{{item3|}}}
| header5 = Static header
| label6 = Static item | data6 = Static value
}}
&lt;/pre&gt;{{clear}}
header1 will be shown if any of item1, item2, or item3 is defined. If none of the three parameters are defined the header won't be shown and no emty row appears before the next static content. The trick to this is that the &quot;#if&quot; returns false only if there is nothing whatsoever in the conditional section, so only if all three of item1, item2 and item3 are undefined will the if statement fail.
Note that such trick may be sometimes very complex to test if there are many data items whose value depends on complex tests (or when a data row is generated by a recursive invokation of this template as a [[#Subboxes|subbox]]). Ideally, the Lua module supporting this template should now support a new way to make each header row autohideable by detecting if there is at least one non-empty data row after that header row (a parameter like &quot;autohide header1 = yes&quot;, for example, would remove the need to perform the &quot;#if&quot; test so that we can just to define &quot;header1 = Optional header&quot;),
=== Footer ===
; below : Text to put in the bottom cell. The bottom cell is intended for footnotes, see-also, and other such information.
== Presentation parameters ==
=== Italic titles ===
Titles of articles with infoboxes may be made italic, in line with [[WP:ITALICTITLE]], by passing the &lt;code&gt;italic title&lt;/code&gt; parameter.
* Turn on italic titles by passing {{para|italic title|&lt;nowiki&gt;{{{italic title|}}}&lt;/nowiki&gt;}} from the infobox.
* Turn off by default (notably because only Latin script may be safely rendered in this style and italic may be needed to distinguish foreign language from local English language only in that script, but would be difficult to read for other scripts) but allow some instances to be made italic by passing {{para|italic title|&lt;nowiki&gt;{{{italic title|no}}}&lt;/nowiki&gt;}}
* Do not make any titles italic by not passing the parameter at all.
=== CSS styling ===
; bodystyle : Applies to the infobox table as a whole
; titlestyle : Applies only to the title caption. Adding a background color is usually inadvisable since the text is rendered &quot;outside&quot; the infobox.
; abovestyle : Applies only to the &quot;above&quot; cell at the top. The default style has font-size:125%; since this cell is usually used for a title, if you want to use the above cell for regular-sized text include &quot;font-size:100%;&quot; in the abovestyle.
; imagestyle : Applies to the cell the image is in. This includes the text of the image caption, but you should set text properties with captionstyle instead of imagestyle in case the caption is moved out of this cell in the future.
; captionstyle : Applies to the text of the image caption.
; rowstyle(n) : This parameter is inserted into the &lt;code&gt;style&lt;/code&gt; attribute for the specified row.
; headerstyle : Applies to all header cells
; labelstyle : Applies to all label cells
; datastyle : Applies to all data cells
; belowstyle : Applies only to the below cell
=== HTML classes and microformats ===
; bodyclass : This parameter is inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the infobox as a whole.
; titleclass : This parameter is inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the infobox's '''title''' caption.
&lt;!-- currently not implemented in Lua module
; aboverowclass : This parameter is inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the complete table row the '''above''' cell is on.
--&gt;
; aboveclass : This parameter is inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the infobox's '''above''' cell.
; subheaderrowclass(n) : This parameter is inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the complete table row the '''subheader''' is on.
; subheaderclass(n) : This parameter is inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the infobox's '''subheader'''.
; imagerowclass(n) : These parameters are inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the complete table row their respective '''image''' is on.
; imageclass : This parameter is inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the '''image'''.
; rowclass(n) : This parameter is inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the specified row including the '''label''' and '''data''' cells.
; class(n) : This parameter is inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the '''data''' cell of the specified row. If there's no '''data''' cell it has no effect.
&lt;!-- currently not implemented in Lua module
; belowrowclass : This parameter is inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the complete table row the '''below''' cell is on.
--&gt;
; belowclass : This parameter is inserted into the &lt;code&gt;class&lt;/code&gt; attribute for the infobox's '''below''' cell.
This template supports the addition of microformat information. This is done by adding &quot;class&quot; attributes to various data cells, indicating what kind of information is contained within. Multiple class names may be specified, separated by spaces, some of them being used as selectors for custom styling according to a project policy or to the skin selected in user preferences, others beig used for microformats.
To flag an infobox as containing [[hCard]] information, for example, add the following parameter:
&lt;pre style=&quot;overflow:auto&quot;&gt;
| bodyclass = vcard
&lt;/pre&gt;{{clear}}
And for each row containing a data cell that's part of the vcard, add a corresponding class parameter:
&lt;pre style=&quot;overflow:auto&quot;&gt;
| class1 = fn
| class2 = org
| class3 = tel
&lt;/pre&gt;{{clear}}
...and so forth. &quot;above&quot; and &quot;title&quot; can also be given classes, since these are usually used to display the name of the subject of the infobox.
See [[Wikipedia:WikiProject Microformats]] for more information on adding microformat information to Wikipedia, and [[microformat]] for more information on microformats in general.
== Examples ==
Notice how the row doesn't appear in the displayed infobox when a '''label''' is defined without an accompanying '''data''' cell, and how all of them are displayed when a '''header''' is defined on the same row as a '''data''' cell. Also notice that '''subheaders''' are not bold by default like the '''headers''' used to split the main data section, because this role is meant to be for the '''above''' cell :
{{Infobox
|name = Infobox/doc
|bodystyle =
|titlestyle =
|abovestyle = background:#cfc;
|subheaderstyle =
|title = Test Infobox
|above = Above text
|subheader = Subheader above image
|subheader2 = Second subheader
|imagestyle =
|captionstyle =
|image = [[File:Example-serious.jpg|200px|alt=Example alt text]]
|caption = Caption displayed below File:Example-serious.jpg
|headerstyle = background:#ccf;
|labelstyle = background:#ddf;
|datastyle =
|header1 = Header defined alone
| label1 =
| data1 =
|header2 =
| label2 = Label defined alone does not display (needs data, or is suppressed)
| data2 =
|header3 =
| label3 =
| data3 = Data defined alone
|header4 = All three defined (header, label, data, all with same number)
| label4 = does not display (same number as a header)
| data4 = does not display (same number as a header)
|header5 =
| label5 = Label and data defined (label)
| data5 = Label and data defined (data)
|belowstyle = background:#ddf;
|below = Below text
}}
&lt;pre style=&quot;overflow:auto&quot;&gt;
{{Infobox
|name = {{subst:PAGENAME}}
|bodystyle =
|titlestyle =
|abovestyle = background:#cfc;
|subheaderstyle =
|title = Test Infobox
|above = Above text
|subheader = Subheader above image
|subheader2 = Second subheader
|imagestyle =
|captionstyle =
| image = [[File:Example-serious.jpg|200px|alt=Example alt text]]
|caption = Caption displayed below Example-serious.jpg
|headerstyle = background:#ccf;
|labelstyle = background:#ddf;
|datastyle =
|header1 = Header defined alone
| label1 =
| data1 =
|header2 =
| label2 = Label defined alone does not display (needs data, or is suppressed)
| data2 =
|header3 =
| label3 =
| data3 = Data defined alone
|header4 = All three defined (header, label, data, all with same number)
| label4 = does not display (same number as a header)
| data4 = does not display (same number as a header)
|header5 =
| label5 = Label and data defined (label)
| data5 = Label and data defined (data)
|belowstyle = background:#ddf;
|below = Below text
}}
&lt;/pre&gt;{{clear}}
For this example, the '''bodystyle''' and '''labelstyle''' parameters are used to adjust the infobox width and define a default width for the column of labels:
{{Infobox
|name = Infobox/doc
|bodystyle = width:20em
|titlestyle =
|title = Test Infobox
|headerstyle =
|labelstyle = width:33%
|datastyle =
|header1 =
| label1 = Label 1
| data1 = Data 1
|header2 =
| label2 = Label 2
| data2 = Data 2
|header3 =
| label3 = Label 3
| data3 = Data 3
|header4 = Header 4
| label4 =
| data4 =
|header5 =
| label5 = Label 5
| data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|belowstyle =
|below = Below text
}}
&lt;pre style=&quot;overflow: auto&quot;&gt;
{{Infobox
|name = {{subst:PAGENAME}}
|bodystyle = width:20em
|titlestyle =
|title = Test Infobox
|headerstyle =
|labelstyle = width:33%
|datastyle =
|header1 =
| label1 = Label 1
| data1 = Data 1
|header2 =
| label2 = Label 2
| data2 = Data 2
|header3 =
| label3 = Label 3
| data3 = Data 3
|header4 = Header 4
| label4 =
| data4 =
|header5 =
| label5 = Label 5
| data5 = Data 5: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|belowstyle =
|below = Below text
}}
&lt;/pre&gt;{{clear}}
== Embedding ==
&lt;!--Linked from [[Template:Subinfobox bodystyle/doc]]--&gt;
One infobox template can be embedded into another using the {{para|child}} parameter or the {{para|embed}} parameter. This feature can be used to create a modular infobox, or to create better-defined logical sections. Long ago, it was necessary to use embedding in order to create infoboxes with more than 99 rows; but nowadays there's no limit to the number of rows that can be defined in a single instance of &lt;code&gt;&lt;nowiki&gt;{{infobox}}&lt;/nowiki&gt;&lt;/code&gt;.
{{Infobox
| title = Top level title
| data1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| data2 = {{Infobox | decat = yes | child = yes
|title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
&lt;pre style=&quot;overflow:auto&quot;&gt;
{{Infobox
| title = Top level title
| data1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| data2 = {{Infobox | decat = yes | child = yes
|title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
&lt;/pre&gt;{{clear}}
Note, in the examples above, the child infobox is placed in a &lt;code&gt;data&lt;/code&gt; field, not a &lt;code&gt;header&lt;/code&gt; field. Notice that the section subheadings are not in bold font if bolding is not explicitly specified. To obtain bold section headings, place the child infobox in a '''header''' field (but not in a '''label''' field because it would not be displayed!), either using
{{Infobox
| title = Top level title
| header1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| header2 = {{Infobox | decat = yes | child = yes
| title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
&lt;pre style=&quot;overflow:auto&quot;&gt;
{{Infobox
| title = Top level title
| header1 = {{Infobox | decat = yes | child = yes
| title = First subsection
| label1= Label 1.1
| data1 = Data 1.1
}}
| header2 = {{Infobox | decat = yes | child = yes
| title = Second subsection
| label1= Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
&lt;/pre&gt;{{clear}}
or,
{{Infobox
| title = Top level title
| header1 = First subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 1.1
| data1 = Data 1.1
}}
| header2 = Second subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
&lt;pre style=&quot;overflow:auto&quot;&gt;
{{Infobox
| title = Top level title
| header1 = First subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 1.1
| data1 = Data 1.1
}}
| header2 = Second subsection
{{Infobox | decat = yes | child = yes
| label1 = Label 2.1
| data1 = Data 2.1
}}
| belowstyle =
| below = Below text
}}
&lt;/pre&gt;{{clear}}
Note that omitting the {{para|title}} parameter, and not including any text preceding the embedded infobox, may result in spurious blank table rows, creating gaps in the visual presentation.
[[Wikipedia:WikiProject Infoboxes/embed]] includes some links to Wikipedia articles which include infoboxes embedded within other infoboxes.
== Subboxes ==
An alternative method for embedding is to use {{para|subbox|yes}}, which removes the outer border from the infobox, but preserves the interior structure. One feature of this approach is that the parent and child boxes need not have the same structure, and the label and data fields are not aligned between the parent and child boxes because they are not in the same parent table.
{{Infobox
| headerstyle = background-color:#eee;
| labelstyle = background-color:#eee;
| header1 = Main 1
| header2 = Main 2
| data3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| data4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| label5 = Label 5 | data5 = Data 5
| header6 = Main 6
}}
&lt;source lang=&quot;sass&quot; style=&quot;overflow:auto&quot;&gt;
{{Infobox
| headerstyle = background-color:#eee;
| labelstyle = background-color:#eee;
| header1 = Main 1
| header2 = Main 2
| data3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| data4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| label5 = Label 5 | data5 = Data 5
| header6 = Main 6
}}
&lt;/source&gt;{{clear}}
Similar embedding techniques may be used within content parameters of some other templates generating tables (such as [[:Template:Sidebar|Sidebar]]) :
{{Sidebar
| navbar = off
| headingstyle = background-color:#eee;
| heading1 = Heading 1
| heading2 = Heading 2
| content3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| content4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| heading5 = Heading 5
}}
&lt;source lang=&quot;sass&quot; style=&quot;overflow:auto&quot;&gt;
{{Sidebar
| navbar = off
| headingstyle = background-color:#eee;
| heading1 = Heading 1
| heading2 = Heading 2
| content3 = {{Infobox | subbox = yes
| headerstyle = background-color:#ccc;
| labelstyle = background-color:#ddd;
| header1 = Sub 3-1
| header2 = Sub 3-2
| label3 = Label 3-3 | data3 = Data 3-3
}}
| content4 = {{Infobox | subbox = yes
| labelstyle = background-color:#ccc;
| label1 = Label 4-1 | data1 = Data 4-1
}}
| heading5 = Heading 5
}}
&lt;/source&gt;{{clear}}
Note that the default padding of the parent data cell containing each subbox is still visible, so the subboxes are slightly narrower than the parent box and there's a higher vertical spacing between standard cells of the parent box than between cells of distinct subboxes.
== Controlling line-breaking in embedded bulletless lists ==
Template {{tlx|nbsp}} may be used with {{tlx|wbr}} and {{tlx|nowrap}} to control line-breaking in bulletless lists embedded in infoboxes (e.g. cast list in {{tlx|Infobox film}}), to prevent wrapped long entries from being confused with multiple entries. See [[Template:Wbr/doc#Controlling line-breaking in infoboxes]] for details.
== Full blank syntax ==
(Note: there is no limit to the number of possible rows; only 20 are given below since infoboxes larger than that will be relatively rare. Just extend the numbering as needed. The microformat &quot;class&quot; parameters are also omitted as they are not commonly used.)
&lt;pre style=&quot;overflow:auto&quot;&gt;
{{Infobox
| name = {{subst:PAGENAME}}
| child = {{{child|}}}
| subbox = {{{subbox|}}}
| italic title = {{{italic title|no}}}
| bodystyle =
| titlestyle =
| abovestyle =
| subheaderstyle =
| title =
| above =
| subheader =
| imagestyle =
| captionstyle =
| image =
| caption =
| image2 =
| caption2 =
| headerstyle =
| labelstyle =
| datastyle =
| header1 =
| label1 =
| data1 =
| header2 =
| label2 =
| data2 =
| header3 =
| label3 =
| data3 =
| header4 =
| label4 =
| data4 =
| header5 =
| label5 =
| data5 =
| header6 =
| label6 =
| data6 =
| header7 =
| label7 =
| data7 =
| header8 =
| label8 =
| data8 =
| header9 =
| label9 =
| data9 =
| header10 =
| label10 =
| data10 =
| header11 =
| label11 =
| data11 =
| header12 =
| label12 =
| data12 =
| header13 =
| label13 =
| data13 =
| header14 =
| label14 =
| data14 =
| header15 =
| label15 =
| data15 =
| header16 =
| label16 =
| data16 =
| header17 =
| label17 =
| data17 =
| header18 =
| label18 =
| data18 =
| header19 =
| label19 =
| data19 =
| header20 =
| label20 =
| data20 =
| belowstyle =
| below =
}}
&lt;/pre&gt;{{clear}}
{{Help:Infobox/user style}}
== Porting to other MediaWikis ==
The infobox template requires the [[:mw:Extension:Scribunto|Scribunto]] extension and [[mw:Manual:Using content from Wikipedia#HTMLTidy|HTMLTidy]] to be installed. It may not work with other MediaWikis. [[Wikipedia:WikiProject Transwiki|WikiProject Transwiki]] has a version of this template that has been modified to work on other MediaWikis.
==See also==
* [[Module:Infobox]], the [[WP:LUA|Lua]] module on which this template is based
* [[Special:Permalink/558855956|Template:Infobox/old]], the previous ParserFunctions implementation
* {{tl|Infobox3cols}}
* {{tl|Navbox}} and {{tl|Sidebar}}
* [[Wikipedia:List of infoboxes|List of infoboxes]]
* [[:Module:InfoboxImage]]
* Maintenance categories:
** [[:Category:Articles which use infobox templates with no data rows]]
** [[:Category:Pages which use embedded infobox templates with the title parameter]]
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
[[Category:Infobox templates| ]]
[[Category:Wikipedia metatemplates|Infobox]]
[[Category:Templates generating microformats]]
}}&lt;/includeonly&gt;</text>
<sha1>7svxdqhftmoajzsie7n2ntfyv1etiat</sha1>
</revision>
</page>
<page>
<title>Template:Infobox/row</title>
<ns>10</ns>
<id>22874879</id>
<redirect title="Template:Infobox" />
<revision>
<id>685106146</id>
<parentid>684977313</parentid>
<timestamp>2015-10-10T20:59:47Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>Undid revision 684977313 by [[Special:Contributions/Stranger195|Stranger195]] ([[User talk:Stranger195|talk]]) rv, breaks too many pages</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="165">#REDIRECT [[Template:Infobox]]
*This function has been deprecated. Please check the documentation on [[Template:Infobox]] for alternatives like &quot;child&quot; or &quot;subbox&quot;.</text>
<sha1>4c97h4cvbuh1vnx16h6dsemy2097bkj</sha1>
</revision>
</page>
<page>
<title>Template:Intmath</title>
<ns>10</ns>
<id>38742924</id>
<revision>
<id>716171784</id>
<parentid>709744541</parentid>
<timestamp>2016-04-20T10:01:33Z</timestamp>
<contributor>
<username>AnomieBOT</username>
<id>7611264</id>
</contributor>
<minor/>
<comment>[[User:AnomieBOT/docs/TemplateSubster|Substing templates]]: {{Unicode}}. See [[User:AnomieBOT/docs/TemplateSubster]] for info.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="372">&lt;includeonly&gt;&lt;span style=&quot;position:relative; top:0.2em&quot;&gt;&lt;span style=&quot;font-style:italic; margin-right:0.3em;&quot;&gt;{{#switch:{{{1|int}}}
|int = ∫
|iint = ∬
|iiint = ∭
|oint = ∮
|varointclockwise = ∲
|ointctrclockwise = ∳
|oiint = ∯
|oiiint = ∰
|#default = ∫
}}&lt;/span&gt;{{su|b={{{2|}}}|p={{{3|}}}}}&lt;/span&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>st7fdnpg1kl797scn0uavom00dssvc9</sha1>
</revision>
</page>
<page>
<title>Template:Ldr</title>
<ns>10</ns>
<id>34709524</id>
<revision>
<id>494803925</id>
<parentid>494800624</parentid>
<timestamp>2012-05-28T17:04:37Z</timestamp>
<contributor>
<username>Gadget850</username>
<id>339034</id>
</contributor>
<comment>[[Category:Typing-aid templates]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="107">[[Help:Footnotes#WP:LDR|List-defined references]]&lt;noinclude&gt;
[[Category:Typing-aid templates]]
&lt;/noinclude&gt;</text>
<sha1>29vakpqnwxdffyc1e93v1497r904rny</sha1>
</revision>
</page>
<page>
<title>Template:Lorem ipsum</title>
<ns>10</ns>
<id>4265979</id>
<revision>
<id>633757948</id>
<parentid>541877874</parentid>
<timestamp>2014-11-14T03:05:06Z</timestamp>
<contributor>
<username>Lambiam</username>
<id>745100</id>
</contributor>
<comment>far more common variant</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="8824">{{{{{|safesubst:}}}#ifexpr:{{{1|1}}}&gt;0|{{{2|}}}{{{{{|safesubst:}}}#ifeq:{{{link|{{{4}}}}}}|yes|[[Lorem ipsum]]|Lorem ipsum}} dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.{{{3|}}}{{{{{|safesubst:}}}#ifexpr:{{{1|1}}}&gt;1|{{{{{|safesubst:}}}#ifeq:x{{{3|}}}x|x x||{{{{{|safesubst:}}}#if:{{{2|}}}||&lt;nowiki&gt;&lt;/nowiki&gt;}}}}
{{{2|}}}Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gravida. Duis ac tellus et risus vulputate vehicula. Donec lobortis risus a elit. Etiam tempor. Ut ullamcorper, ligula eu tempor congue, eros est euismod turpis, id tincidunt sapien risus a quam. Maecenas fermentum consequat mi. Donec fermentum. Pellentesque malesuada nulla a mi. Duis sapien sem, aliquet nec, commodo eget, consequat quis, neque. Aliquam faucibus, elit ut dictum aliquet, felis nisl adipiscing sapien, sed malesuada diam lacus eget erat. Cras mollis scelerisque nunc. Nullam arcu. Aliquam consequat. Curabitur augue lorem, dapibus quis, laoreet et, pretium ac, nisi. Aenean magna nisl, mollis quis, molestie eu, feugiat in, orci. In hac habitasse platea dictumst.{{{3|}}}{{{{{|safesubst:}}}#ifexpr:{{{1|1}}}&gt;2|{{{{{|safesubst:}}}#ifeq:x{{{3|}}}x|x x||{{{{{|safesubst:}}}#if:{{{2|}}}||&lt;nowiki&gt;&lt;/nowiki&gt;}}}}
{{{2|}}}Fusce convallis, mauris imperdiet gravida bibendum, nisl turpis suscipit mauris, sed placerat ipsum urna sed risus. In convallis tellus a mauris. Curabitur non elit ut libero tristique sodales. Mauris a lacus. Donec mattis semper leo. In hac habitasse platea dictumst. Vivamus facilisis diam at odio. Mauris dictum, nisi eget consequat elementum, lacus ligula molestie metus, non feugiat orci magna ac sem. Donec turpis. Donec vitae metus. Morbi tristique neque eu mauris. Quisque gravida ipsum non sapien. Proin turpis lacus, scelerisque vitae, elementum at, lobortis ac, quam. Aliquam dictum eleifend risus. In hac habitasse platea dictumst. Etiam sit amet diam. Suspendisse odio. Suspendisse nunc. In semper bibendum libero.{{{3|}}}{{{{{|safesubst:}}}#ifexpr:{{{1|1}}}&gt;3|{{{{{|safesubst:}}}#ifeq:x{{{3|}}}x|x x||{{{{{|safesubst:}}}#if:{{{2|}}}||&lt;nowiki&gt;&lt;/nowiki&gt;}}}}
{{{2|}}}Proin nonummy, lacus eget pulvinar lacinia, pede felis dignissim leo, vitae tristique magna lacus sit amet eros. Nullam ornare. Praesent odio ligula, dapibus sed, tincidunt eget, dictum ac, nibh. Nam quis lacus. Nunc eleifend molestie velit. Morbi lobortis quam eu velit. Donec euismod vestibulum massa. Donec non lectus. Aliquam commodo lacus sit amet nulla. Cras dignissim elit et augue. Nullam non diam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In hac habitasse platea dictumst. Aenean vestibulum. Sed lobortis elit quis lectus. Nunc sed lacus at augue bibendum dapibus.{{{3|}}}{{{{{|safesubst:}}}#ifexpr:{{{1|1}}}&gt;4|{{{{{|safesubst:}}}#ifeq:x{{{3|}}}x|x x||{{{{{|safesubst:}}}#if:{{{2|}}}||&lt;nowiki&gt;&lt;/nowiki&gt;}}}}
{{{2|}}}Aliquam vehicula sem ut pede. Cras purus lectus, egestas eu, vehicula at, imperdiet sed, nibh. Morbi consectetuer luctus felis. Donec vitae nisi. Aliquam tincidunt feugiat elit. Duis sed elit ut turpis ullamcorper feugiat. Praesent pretium, mauris sed fermentum hendrerit, nulla lorem iaculis magna, pulvinar scelerisque urna tellus a justo. Suspendisse pulvinar massa in metus. Duis quis quam. Proin justo. Curabitur ac sapien. Nam erat. Praesent ut quam.{{{3|}}}{{{{{|safesubst:}}}#ifexpr:{{{1|1}}}&gt;5|{{{{{|safesubst:}}}#ifeq:x{{{3|}}}x|x x||{{{{{|safesubst:}}}#if:{{{2|}}}||&lt;nowiki&gt;&lt;/nowiki&gt;}}}}
{{{2|}}}Vivamus commodo, augue et laoreet euismod, sem sapien tempor dolor, ac egestas sem ligula quis lacus. Donec vestibulum tortor ac lacus. Sed posuere vestibulum nisl. Curabitur eleifend fermentum justo. Nullam imperdiet. Integer sit amet mauris imperdiet risus sollicitudin rutrum. Ut vitae turpis. Nulla facilisi. Quisque tortor velit, scelerisque et, facilisis vel, tempor sed, urna. Vivamus nulla elit, vestibulum eget, semper et, scelerisque eget, lacus. Pellentesque viverra purus. Quisque elit. Donec ut dolor.{{{3|}}}{{{{{|safesubst:}}}#ifexpr:{{{1|1}}}&gt;6|{{{{{|safesubst:}}}#ifeq:x{{{3|}}}x|x x||{{{{{|safesubst:}}}#if:{{{2|}}}||&lt;nowiki&gt;&lt;/nowiki&gt;}}}}
{{{2|}}}Duis volutpat elit et erat. In at nulla at nisl condimentum aliquet. Quisque elementum pharetra lacus. Nunc gravida arcu eget nunc. Nulla iaculis egestas magna. Aliquam erat volutpat. Sed pellentesque orci. Etiam lacus lorem, iaculis sit amet, pharetra quis, imperdiet sit amet, lectus. Integer quis elit ac mi aliquam pretium. Nullam mauris orci, porttitor eget, sollicitudin non, vulputate id, risus. Donec varius enim nec sem. Nam aliquam lacinia enim. Quisque eget lorem eu purus dignissim ultricies. Fusce porttitor hendrerit ante. Mauris urna diam, cursus id, mattis eget, tempus sit amet, risus. Curabitur eu felis. Sed eu mi. Nullam lectus mauris, luctus a, mattis ac, tempus non, leo. Cras mi nulla, rhoncus id, laoreet ut, ultricies id, odio.{{{3|}}}{{{{{|safesubst:}}}#ifexpr:{{{1|1}}}&gt;7|{{{{{|safesubst:}}}#ifeq:x{{{3|}}}x|x x||{{{{{|safesubst:}}}#if:{{{2|}}}||&lt;nowiki&gt;&lt;/nowiki&gt;}}}}
{{{2|}}}Donec imperdiet. Vestibulum auctor tortor at orci. Integer semper, nisi eget suscipit eleifend, erat nisl hendrerit justo, eget vestibulum lorem justo ac leo. Integer sem velit, pharetra in, fringilla eu, fermentum id, felis. Vestibulum sed felis. In elit. Praesent et pede vel ante dapibus condimentum. Donec magna. Quisque id risus. Mauris vulputate pellentesque leo. Duis vulputate, ligula at venenatis tincidunt, orci nunc interdum leo, ac egestas elit sem ut lacus. Etiam non diam quis arcu egestas commodo. Curabitur nec massa ac massa gravida condimentum. Aenean id libero. Pellentesque vitae tellus. Fusce lectus est, accumsan ac, bibendum sed, porta eget, augue. Etiam faucibus. Quisque tempus purus eu ante.{{{3|}}}{{{{{|safesubst:}}}#ifexpr:{{{1|1}}}&gt;8|{{{{{|safesubst:}}}#ifeq:x{{{3|}}}x|x x||{{{{{|safesubst:}}}#if:{{{2|}}}||&lt;nowiki&gt;&lt;/nowiki&gt;}}}}
{{{2|}}}Vestibulum sapien nisl, ornare auctor, consectetuer quis, posuere tristique, odio. Fusce ultrices ullamcorper odio. Ut augue nulla, interdum at, adipiscing non, tristique eget, neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Ut pede est, condimentum id, scelerisque ac, malesuada non, quam. Proin eu ligula ac sapien suscipit blandit. Suspendisse euismod. Ut accumsan, neque id gravida luctus, arcu pede sodales felis, vel blandit massa arcu eget ligula. Aenean sed turpis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec sem eros, ornare ut, commodo eu, tempor nec, risus. Donec laoreet dapibus ligula. Praesent orci leo, bibendum nec, ornare et, nonummy in, elit. Donec interdum feugiat leo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque feugiat ullamcorper ipsum. Donec convallis tincidunt urna.{{{3|}}}{{{{{|safesubst:}}}#ifexpr:{{{1|1}}}&gt;9|{{{{{|safesubst:}}}#ifeq:x{{{3|}}}x|x x||{{{{{|safesubst:}}}#if:{{{2|}}}||&lt;nowiki&gt;&lt;/nowiki&gt;}}}}
{{{2|}}}Suspendisse et orci et arcu porttitor pellentesque. Sed lacus nunc, fermentum vel, vehicula in, imperdiet eget, urna. Nam consectetuer euismod nunc. Nulla dignissim posuere nulla. Integer iaculis lacinia massa. Nullam sapien augue, condimentum vel, venenatis id, rhoncus pellentesque, sapien. Donec sed ipsum ultrices turpis consectetuer imperdiet. Duis et ipsum ac nisl laoreet commodo. Mauris eu est. Suspendisse id turpis quis orci euismod consequat. Donec tellus mi, luctus sit amet, ultrices a, convallis eu, lorem. Proin faucibus convallis elit. Maecenas rhoncus arcu at arcu. Proin libero. Proin adipiscing. In quis lorem vitae elit consectetuer pretium. Nullam ligula urna, adipiscing nec, iaculis ut, elementum non, turpis. Fusce pulvinar.{{{3|}}}}}}}}}}}}}}}}}}}}}{{{{{|safesubst:}}}#ifexpr:{{{1|1}}}&gt;10|{{{{{|safesubst:}}}#ifeq:x{{{3|}}}x|x x||{{{{{|safesubst:}}}#if:{{{2|}}}||&lt;nowiki&gt;&lt;/nowiki&gt;}}}}
{{{{{|safesubst:}}}Lorem ipsum/more|{{{{{|safesubst:}}}#expr:{{{1|1}}}-10}}|{{{2|}}}|{{{3|}}}}}}}{{{{{|safesubst:}}}#ifeq:{{{cat|}}}|no||{{Template:Main other|[[Category:Wikipedia articles containing placeholders]]}}}}}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- PLEASE ADD CATEGORIES TO THE /doc SUBPAGE, AND INTERWIKIS TO WIKIDATA, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>in9bfv9io9yhxvo5pabmkz4fwcrwpig</sha1>
</revision>
</page>
<page>
<title>Template:Lua</title>
<ns>10</ns>
<id>38752725</id>
<revision>
<id>804533741</id>
<parentid>747150669</parentid>
<timestamp>2017-10-09T17:05:03Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Lua]]&quot;: [[WP:High-risk templates|Highly visible template]]; thousands of transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="196">&lt;includeonly&gt;{{#invoke:Lua banner|main}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Lua|Module:Lua banner}}
{{documentation}}
&lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>pnmjp3f3fl321yf2jpg5syebi412n7b</sha1>
</revision>
</page>
<page>
<title>Template:Mabs</title>
<ns>10</ns>
<id>31224278</id>
<revision>
<id>419546258</id>
<timestamp>2011-03-18T23:49:47Z</timestamp>
<contributor>
<username>Dmcq</username>
<id>3784322</id>
</contributor>
<comment>Template for absolute value or modulus, Avoids having to put in two instances of {{!}} in math template and makes meaning more clear</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="51">|{{{1}}}|&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>gvfwutx6ssmfvlpydbjhigo0an01yu5</sha1>
</revision>
</page>
<page>
<title>Template:Main</title>
<ns>10</ns>
<id>1208356</id>
<revision>
<id>771512324</id>
<parentid>697196828</parentid>
<timestamp>2017-03-21T23:21:15Z</timestamp>
<contributor>
<username>Anthony Appleyard</username>
<id>119438</id>
</contributor>
<minor/>
<comment>Anthony Appleyard moved page [[Template:Main article]] to [[Template:Main]]: [https://en.wikipedia.org/wiki/Template_talk:Main_article#edittemplateprotected]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="138">{{#invoke:main|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>jkpvpyms818jhpg2lkzsq5qur195qbr</sha1>
</revision>
</page>
<page>
<title>Template:Main other</title>
<ns>10</ns>
<id>17220251</id>
<revision>
<id>388689011</id>
<parentid>334818505</parentid>
<timestamp>2010-10-04T14:46:48Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>remove {{pp-template}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="409">{{#switch:
&lt;!--If no or empty &quot;demospace&quot; parameter then detect namespace--&gt;
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} &lt;!--Use lower case &quot;demospace&quot;--&gt;
| {{#ifeq:{{NAMESPACE}}|{{ns:0}}
| main
| other
}}
}}
| main = {{{1|}}}
| other
| #default = {{{2|}}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>ngt28vb1n5t4bh1su57btnqyofkd1d5</sha1>
</revision>
</page>
<page>
<title>Template:Markup</title>
<ns>10</ns>
<id>34628057</id>
<revision>
<id>819686109</id>
<parentid>732442935</parentid>
<timestamp>2018-01-10T19:17:20Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Markup]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="4271">&lt;includeonly&gt;{| style=&quot;table-layout:fixed; width:{{{width|100%}}}; margin-top:0;margin-left:{{{margin-left|{{{margin|0}}}}}}; border-width:medium; padding:0; {{{style|}}}&quot;
{{#if:{{{title|}}} |{{!}}+ '''{{{title}}}'''}}
{{#if:{{{noheaders|}}}{{{notitle|}}} |
|! scope=&quot;col&quot; style=&quot;width:50%;{{{colheaderstyle|}}}{{{col1headerstyle|}}}&quot;{{!}} {{{col1|{{{t1|Markup}}}}}} {{!!}}&lt;!--
--&gt;scope=&quot;col&quot; style=&quot;width:50%;{{{colheaderstyle|}}}{{{col2headerstyle|}}}&quot;{{!}} {{{col2|{{{t2|Renders as}}}}}}
}}&lt;!--
--&gt;{{#if:{{{1|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{1|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{2|}}} }} }}&lt;!--
--&gt;{{#if:{{{3|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{3|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{4|}}} }} }}&lt;!--
--&gt;{{#if:{{{5|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{5|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{6|}}} }} }}&lt;!--
--&gt;{{#if:{{{7|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{7|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{8|}}} }} }}&lt;!--
--&gt;{{#if:{{{9|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{9|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{10|}}} }} }}&lt;!--
--&gt;{{#if:{{{11|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{11|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{12|}}} }} }}&lt;!--
--&gt;{{#if:{{{13|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{13|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{14|}}} }} }}&lt;!--
--&gt;{{#if:{{{15|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{15|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{16|}}} }} }}&lt;!--
--&gt;{{#if:{{{17|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{17|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{18|}}} }} }}&lt;!--
--&gt;{{#if:{{{19|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{19|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{20|}}} }} }}&lt;!--
--&gt;{{#if:{{{21|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{21|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{22|}}} }} }}&lt;!--
--&gt;{{#if:{{{23|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{23|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{24|}}} }} }}&lt;!--
--&gt;{{#if:{{{25|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{25|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{26|}}} }} }}&lt;!--
--&gt;{{#if:{{{27|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{27|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{28|}}} }} }}&lt;!--
--&gt;{{#if:{{{29|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{29|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{30|}}} }} }}&lt;!--
--&gt;{{#if:{{{31|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{31|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{32|}}} }} }}&lt;!--
--&gt;{{#if:{{{33|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{33|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{34|}}} }} }}&lt;!--
--&gt;{{#if:{{{35|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{35|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{36|}}} }} }}&lt;!--
--&gt;{{#if:{{{37|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{37|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{38|}}} }} }}&lt;!--
--&gt;{{#if:{{{39|}}} |{{Markup/row |c1style={{{col1style|{{{codestyle|{{{markupstyle|}}}}}}}}}|c1={{{39|}}} |c2style={{{col2style|{{{outputstyle|}}}}}}|c2={{{40|}}} }} }}
|-
|style=&quot;width:50%; border-width:1px;border-style:solid none none none;border-color:#ddd; padding:5px; vertical-align:top;&quot;|
|style=&quot;width:50%; border-width:1px;border-style:solid none none none;border-color:#ddd; padding:5px; vertical-align:top;&quot;|
|}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>ek0fl5k3g8b47ydtnnotidtl5ahrkho</sha1>
</revision>
</page>
<page>
<title>Template:Markup/row</title>
<ns>10</ns>
<id>34881794</id>
<revision>
<id>819686110</id>
<parentid>815703710</parentid>
<timestamp>2018-01-10T19:17:20Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Markup/row]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (in...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="954">&lt;noinclude&gt;{| style=&quot;width:90%;border-width:medium;&quot;&lt;/noinclude&gt;&amp;#32;
|-
|style=&quot;width:50%; background:#f9f9f9; border-width:1px;border-style:solid none none solid;border-color:#ddd; padding:9px 5px 5px; vertical-align:top;&quot;| &lt;!--
--&gt;{{#tag:pre |{{{c1|[markup]}}}|style=&quot;margin:0;border:none;padding:0; word-wrap:break-word; white-space:-moz-pre-wrap;white-space:-o-pre-wrap;white-space:-pre-wrap;white-space:pre-wrap; {{{c1style|}}}&quot;}}
|style=&quot;width:50%; background:#f9f9f9; border-width:1px;border-style:solid solid none solid;border-color:#ddd; padding:5px; vertical-align:top;&quot;| &lt;!--
--&gt;&lt;div style=&quot;{{{c2style|}}}&quot;&gt;
{{{c2|[''rendering'']}}}
&lt;/div&gt;
&lt;!--
--&gt;&lt;noinclude&gt;
|-
|style=&quot;width:50%;border-width:1px;border-style:solid none none none;border-color:#ddd; padding:5px; vertical-align:text-top;&quot;|
|style=&quot;width:50%; border-width:1px;border-style:solid none none none;border-color:#ddd; padding:5px; vertical-align:text-top;&quot;|
|-
|}&lt;/noinclude&gt;</text>
<sha1>7oxqv5ty4vf76uhqwnech3nr2svxptf</sha1>
</revision>
</page>
<page>
<title>Template:Math</title>
<ns>10</ns>
<id>17769239</id>
<revision>
<id>648670420</id>
<parentid>589281513</parentid>
<timestamp>2015-02-24T19:35:06Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Math: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="185">&lt;span class=&quot;texhtml {{#if:{{{big|}}}{{{size|}}}|texhtml-big}}&quot; {{#if:{{{big|}}}{{{size|}}}|style=&quot;font-size:{{{size|165%}}};&quot;}}&gt;{{{1}}}&lt;/span&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>nj97zeih5xj5z1dk546rkopwo76k9vl</sha1>
</revision>
</page>
<page>
<title>Template:Math templates</title>
<ns>10</ns>
<id>41160817</id>
<revision>
<id>818141728</id>
<parentid>818079394</parentid>
<timestamp>2018-01-01T21:10:55Z</timestamp>
<contributor>
<username>Anomalocaris</username>
<id>299039</id>
</contributor>
<comment>&lt;tt&gt; ... &lt;/tt&gt; → &lt;samp&gt; ... &lt;/samp&gt;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5963">{{Navbox with collapsible groups
| name = Math templates
| state = {{{state|expanded}}}
| bodyclass = plainlist
| title = Math templates
| liststyle = font-size:110%;&lt;!--(as some templates' descriptions include links)--&gt;
| selected = {{{selected|{{{expanded|{{{1|}}}}}}}}}
&lt;!-------------- Functions / Numeral systems --------------&gt;
| abbr1 = FN
| group1 = {{hlist|Functions|Numeral systems}}
| list1 =
{{Navbox |child |listclass=hlist
| group1 = Functions
| list1 =
*{{tlbare|elementary arithmetic}}
*{{tlbare|precision}}
*{{tlbare|value}}
| group2 = Numeral systems
| list2 =
*{{tlbare|base 36}}
*{{tlbare|binary}}
*{{tlbare|dec2hex}}
*{{tlbare|decimal2Base}}
*{{tlbare|duodecimal}}
*{{tlbare|hex2dec}}
*{{tlbare|hexadecimal}}
*{{tlbare|octal}}
*{{tlbare|quaternary}}
*{{tlbare|quinary}}
*{{tlbare|rn}}
*{{tlbare|roman}}
*{{tlbare|senary}}
*{{tlbare|ternary}}
*{{tlbare|vigesimal}}
}}
&lt;!---------------------- Conversions ----------------------&gt;
| abbr2 = conversions
| group2 = Conversions
| list2 =
{{Aligned table
|style=margin:0 auto 0;text-align:left;
| {{Aligned table
|style=padding-right:2.5em;
|col1style=text-align:right;white-space:nowrap;padding-right:1.0em;
|col2style=font-size:90%;&lt;!--(see liststyle above)--&gt; vertical-align:middle;line-height:1.3em;font-style:italic;
| {{tlbare|bbl to t}} | barrels of oil to tonnes
| {{tlbare|convert}} | many units (see: [[Template:Convert/list_of_units |list]])
| {{tlbare|cvt}} | many units; abbreviated {{tl|convert}}
| {{tlbare|long ton}} | long hundredweights, quarters and pounds to kilograms;&lt;br/&gt;long tons and hundredweights to pounds and metric tonnes
| {{tlbare|convinfobox}} | for use in infoboxes
| {{tlbare|decdeg}} | degrees, minutes, and seconds to [[decimal degrees]]
}}
| {{Aligned table
|col1style=text-align:right;white-space:nowrap;padding-right:1.0em;
|col2style=font-size:90%;&lt;!--(as above)--&gt; vertical-align:middle;line-height:1.3em;font-style:italic;
| {{tlbare|hms2deg}} | [[hour angle]] (in hours, minutes, and seconds) to decimal degrees
| {{tlbare|deg2dms}} | decimal degrees to degrees, minutes, and seconds
| {{tlbare|deg2hms}} | decimal degrees to [[hour angle]] (in hours, minutes, and seconds)
| {{tlbare|inflation}} | to calculate inflation of Consumer Price Index-related prices
| {{tlbare|miles-chains}} | miles and chains to kilometres linking &quot;chains&quot;
| {{tlbare|pop density}} | density of a population in an area
| {{tlbare|track gauge}} | railway track gauges
}}
}}
&lt;!----------------------- Notation ------------------------&gt;
| group3 = Notation
| abbr3 = notation
| list3 =
{{Aligned table
|style=margin:0 auto 0;text-align:left;
| {{Aligned table
|style=padding-right:2.5em;
|col1style=text-align:right;white-space:nowrap;padding-right:1.0em;
|col2style=font-size:90%;&lt;!--(as above)--&gt; vertical-align:middle;line-height:1.3em;font-style:italic;
| {{tlbare|bigmath}} | for stand-alone formulas, using a bigger font to match {{noitalic|&lt;samp&gt;&lt;nowiki&gt;\&lt;/nowiki&gt;displaystyle&lt;/samp&gt;}} PNG-rendered {{noitalic|[[TeX]]}} formulas
| {{hlist|{{tlbare|bra-ket}}|{{tlbare|braket}}}} {{hlist|{{tlbare|bra}}|{{tlbare|ket}}}} | [[bra–ket notation]]
| {{tlbare|frac}} | for creating fractions (not for use in science or mathematical articles; instead, use {{noitalic|{{tlx|sfrac}}}})
| {{tlbare|intmath}} | [[integral symbol]]s
| {{hlist|{{tlbare|langle}}|{{tlbare|rangle}}}} | [[angular bracket]]s
| {{hlist|{{tlbare|ldelim}}|{{tlbare|rdelim}}}} | multiline delimiters (2–5 lines inclusive)
| {{tlbare|math}} | for inline formulas, to get a better matching font size and vertical alignment than with {{noitalic|&lt;samp&gt;&lt;nowiki&gt;\&lt;/nowiki&gt;textstyle&lt;/samp&gt;}} (or the {{noitalic|&lt;samp&gt;&lt;nowiki&gt;\&lt;/nowiki&gt;scriptstyle&lt;/samp&gt;}} kludge) PNG-rendered {{noitalic|[[TeX]]}} formulas
| {{tlbare|mathcal}} | [mathematical] calligraphic font for use in mathematical formulas, as an alternative to {{noitalic|&lt;samp&gt;&lt;nowiki&gt;\&lt;/nowiki&gt;mathcal{...}&lt;/samp&gt;}} in {{noitalic|[[LaTeX]]}} markup
}}
| {{Aligned table
|col1style=text-align:right;white-space:nowrap;padding-right:1.0em;
|col2style=font-size:90%;&lt;!--(as above)--&gt; vertical-align:middle;line-height:1.3em;font-style:italic;
| {{tlbare|mvar}} | a short form to refer to individual italicized maths variables in normal text
| {{hlist|{{tlbare|overset}}|{{tlbare|underset}}}} | arbitrary characters/diacritics set above/below one another
| {{tlbare|radic}} |
| {{tlbare|sfrac}} | for creating fractions (this template should be used in science or mathematical articles instead of {{noitalic|{{tlx|frac}}}})
| {{tlbare|sqrt}} |
| {{hlist|{{tlbare|su}}|{{tlbare|sub}}|{{tlbare|sup}}}} |
|style7.1=vertical-align:middle;text-align:right;padding-right:1.0em;| {{tlbare|tmath}}
| wraps a {{noitalic|[[TeX]]}} math expression in {{noitalic|&lt;nowiki&gt;&lt;math&gt;&lt;/nowiki&gt;}} tags
| {{tlbare|val}} | to report measurement values, uncertainties and units
| {{tlbare|vec}} | for various overarrows, underarrows, pointing left, right or both ways
}}
}}
&lt;!---------------- Boxes / Tags / Notices -----------------&gt;
| abbr4 = BTN
| group4 = {{hlist|Boxes|Tags|Notices}}
| list4 =
{{Navbox with columns |child
|colstyle=text-align:center;
| col1header = Boxes
| col1 = {{startflatlist}}
*{{tlbare|calculation results}}
*{{tlbare|calculus}}
*{{tlbare|Infobox mathematics function}}
*{{tlbare|functions}}
{{endflatlist}}
| col2header = Tags
| col2 = {{startflatlist}}
*{{tlbare|metricate}}
*{{tlbare|undue precision}}
*{{tlbare|units attention}}
{{endflatlist}}
}}
| belowstyle = font-weight:bold;
| below = {{icon|Category}} {{c|Mathematics templates|Category}}
}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>0mlr02mefd8pfnw8e6rq3yiuhld7sv2</sha1>
</revision>
</page>
<page>
<title>Template:Math/doc</title>
<ns>10</ns>
<id>19302609</id>
<revision>
<id>804072271</id>
<parentid>788970278</parentid>
<timestamp>2017-10-06T15:12:57Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>update /doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5130">{{Documentation subpage}}
&lt;!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). --&gt;
{{high-use| 5140 }}
The '''math''' template formats HTML, or wikimarkup generated mathematical formulas. The template uses the &lt;code&gt;texhtml&lt;/code&gt; class by default for inline text style formulas, which aims to match the size of the serif font with the surrounding sans-serif font (see below). The template also prevents line-wrapping.
== Usage ==
Use this template for inline, non-complex formulas as an alternative to using the {{tag|math}} tag pair (see: [[Help:Math]]).
=== Examples ===
&lt;pre&gt;
{{math|''f''(''x'') {{=}} ''b''&lt;sup&gt;''x''&lt;/sup&gt; {{=}} ''y''}}
&lt;/pre&gt;
: produces: {{math|''f''(''x'') {{=}} ''b''&lt;sup&gt;''x''&lt;/sup&gt; {{=}} ''y''}}
&lt;pre&gt;
{{math|sin &amp;amp;pi; {{=}} 0}}
&lt;/pre&gt;
: produces: {{math|sin &amp;pi; {{=}} 0}}.
&lt;pre&gt;
{{math|{{intmath|int|0|+&amp;amp;infin;}} ''e''&lt;sup&gt;−''x''&lt;/sup&gt; d''x'' {{=}} 1}}
&lt;/pre&gt;
: produces: {{math|{{intmath|int|0|+&amp;infin;}} ''e''&lt;sup&gt;−''x''&lt;/sup&gt; d''x'' {{=}} 1}}
&lt;pre&gt;
'''{{math|{{sfrac|1|2}} − {{sfrac|1|3}} {{=}} {{sfrac|1|6}}}}'''
&lt;/pre&gt;
: produces: '''{{math|{{sfrac|1|2}} − {{sfrac|1|3}} {{=}} {{sfrac|1|6}}}}'''. Note the triple-apostrophes have set the whole formula as bold.
&lt;pre&gt;
{{math|({{sqrt|2}})&lt;sup&gt;2&lt;/sup&gt; {{=}} 2}}
&lt;/pre&gt;
: produces: {{math|({{sqrt|2}})&lt;sup&gt;2&lt;/sup&gt; {{=}} 2}}.
===Use of equals-sign and absolute value bars===
The equals sign, =, and bar, |, are used as syntax by the wiki template system. Therefore, if a single equals-sign (&quot;=&quot;) is used, it will fail to render, instead showing &quot;&lt;nowiki&gt;{{{1}}}&lt;/nowiki&gt;&quot;. For example, the following template-coding would be invalid:
&lt;pre&gt;{{math|1 + 2 = 3}}&lt;/pre&gt;
: produces: {{math|1 + 2 = 3}}, which is invalid code
To resolve this, either: (a) Start the formula with &quot;&lt;code&gt;1=&lt;/code&gt;&quot; as in:
&lt;pre&gt;{{math|1=1 + 2 = 3}}&lt;/pre&gt;
: produces: {{math|1=1 + 2 = 3}}, or else, (b) include the equals-sign in double-braces &lt;nowiki&gt;&quot;{{=}}&quot;&lt;/nowiki&gt; as in:
&lt;pre&gt;{{math|1 + 2 {{=}} 3}}&lt;/pre&gt;
: produces: {{math|1 + 2 {{=}} 3}}.
A similar difficulty concerns the vertical bars (&quot;|&quot;) used to indicate absolute value, which without care would get interpreted as part of the template syntax. The solution is different than for the equals sign: such bars should be entered as &quot;&lt;nowiki&gt;{{!}}&lt;/nowiki&gt;&quot;:
&lt;pre&gt;{{math|{{!}}''f''(''x'') − ''a''{{!}} &lt; ε}}&lt;/pre&gt;
: produces: {{math|{{!}}''f''(''x'') − ''a''{{!}} &lt; ε}}.
This example can also be produced by the following:
&lt;pre&gt;&lt;nowiki&gt;{{math|{{mabs|''f''(''x'') − ''a''}} &lt; ε}}&lt;/nowiki&gt;&lt;/pre&gt;
: produces: {{math|{{mabs|''f''(''x'') − ''a''}} &lt; ε}}
=== Parameters ===
The following parameters are optional:
* &lt;code&gt;big=1&lt;/code&gt; – This will render the formula in a bigger fontsize, increased to 165%.
* &lt;code&gt;size=''font-size''&lt;/code&gt; – Use this to specify your own fontsize.
&lt;pre&gt;
&lt;nowiki&gt;{{math|big=1|1 + 2 {{=}} 3}}&lt;/nowiki&gt;
&lt;/pre&gt;
: produces: {{math|big=1|1 + 2 {{=}} 3}}
=== TemplateData ===
{{TemplateDataHeader}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;This template formats markup generated mathematical formulas with HTML and CSS. The template tries to match the size of the serif font with the surrounding sans-serif font. The template also prevents line-wrapping. Use this template for non-complex formulas as an alternative to using the &lt;math&gt; format.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;formula&quot;,
&quot;description&quot;: &quot;wrap an inline formula in wikitext.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
},
&quot;big&quot;: {
&quot;label&quot;: &quot;bigger font size&quot;,
&quot;description&quot;: &quot;if set to ‘1’, this will render the formula in a bigger font size, increased to 165%&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;size&quot;: {
&quot;label&quot;: &quot;custom font size&quot;,
&quot;description&quot;: &quot;use this to specify your own font size&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
}
}}&lt;/templatedata&gt;
== Notes ==
The font and fontsize used for &lt;code&gt;texhtml&lt;/code&gt;, as defined in [[MediaWiki:Common.css]], was determined by comparing common default fonts found on Windows, OS X and Linux and is scaled to 118% to match their [[x-height]]. However, not everyone uses the default fonts. If you find that the rendered math is not of the same size as the surrounding text, you can adjust this in your personal CSS. For instance, the DejaVu Sans and DejaVu Serif fonts do ''not'' need scaling, in which case &lt;code&gt;span.texhtml { font-size: 100%; }&lt;/code&gt; will restore proper display.
The &lt;code&gt;texhtml&lt;/code&gt; classname is a remnant from the [[TeX]] renderer, which had a user preference to render [[TeX]]-written formulae in &quot;HTML when simple&quot;. That option has been removed some time ago, but the classname continues to be used for formulae written in HTML.
== See also ==
* [[Help:Displaying a formula]]
* [[Wikipedia:Rendering math]], a comparison of different representation of mathematical expressions
{{Math templates|notation}}
&lt;includeonly&gt;{{basepage subpage|
&lt;!-- Categories go below this line, please; interwikis go to Wikidata, thank you! --&gt;
[[Category:Mathematical formatting templates]]
}}&lt;/includeonly&gt;</text>
<sha1>qz949sgv6dwbpml0m5v4b9c397afil0</sha1>
</revision>
</page>
<page>
<title>Template:Mbox</title>
<ns>10</ns>
<id>13319244</id>
<revision>
<id>772147376</id>
<parentid>577968069</parentid>
<timestamp>2017-03-25T16:04:14Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Mbox]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefinite)...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="145">{{#invoke:Message box|mbox}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>mpflpb6s8l8gaoxaeypyuqyu2w7vc7i</sha1>
</revision>
</page>
<page>
<title>Template:Mbox templates</title>
<ns>10</ns>
<id>44752807</id>
<redirect title="Template:Mbox templates (small)" />
<revision>
<id>638520679</id>
<timestamp>2014-12-17T17:40:45Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>Sardanaphalus moved page [[Template:Mbox templates]] to [[Template:Mbox templates (small)]]: To release &quot;Mbox templates&quot; for Navbox use</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="61">#REDIRECT [[Template:Mbox templates (small)]]
{{R from move}}</text>
<sha1>f4z6yporql0pg91yepn4jvznwy3zjse</sha1>
</revision>
</page>
<page>
<title>Template:Mbox templates see also</title>
<ns>10</ns>
<id>21431035</id>
<revision>
<id>815714941</id>
<parentid>815709691</parentid>
<timestamp>2017-12-16T16:56:48Z</timestamp>
<contributor>
<username>Zzuuzz</username>
<id>365454</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/172.56.7.31|172.56.7.31]] ([[User talk:172.56.7.31|talk]]) to last version by Edokter</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="855">There are seven metatemplates in the [[Module:Message box]] family:
* {{tl|Ambox}}, for messageboxes on article pages.
* {{tl|Cmbox}}, for messageboxes on category pages.
* {{tl|Imbox}}, for messageboxes on file (image) pages.
* {{tl|Tmbox}}, for messageboxes on talk pages.
* {{tl|Fmbox}}, for header and footer messageboxes.
* {{tl|Ombox}}, for messageboxes on other types of page.
* {{tl|Mbox}}, for messageboxes that are used in different [[Wikipedia:Namespace|namespaces]] and change their presentation accordingly.
Closely related metatemplates:
* {{tl|Asbox}}, for messageboxes in article stubs.
* {{tl|Dmbox}}, for messageboxes on disambiguation or set-index pages.
* {{tla|Ivory messagebox|Ivmbox}}, a simple full-width box with default ivory background intended to frame important messages or notices.&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>iwhfb429mez2zguyq0jd4bujla3lfu6</sha1>
</revision>
</page>
<page>
<title>Template:Mbox/doc</title>
<ns>10</ns>
<id>17679116</id>
<revision>
<id>815711648</id>
<parentid>815710067</parentid>
<timestamp>2017-12-16T16:27:54Z</timestamp>
<contributor>
<username>Serols</username>
<id>9929111</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contributions/208.54.86.192|208.54.86.192]] ([[User talk:208.54.86.192|talk]]) ([[WP:HG|HG]]) (3.3.3)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3558">{{Documentation subpage}}
&lt;!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]) --&gt;
{{High-risk|approximately 816000}}
{{Used in system}}
{{Lua|Module:Message box}}
{{Mbox templates (small)}}
{{tl|Mbox}} (&quot;['''M''']ulti-namespace message['''box''']&quot;) is a [[Help:Metatemplating|metatemplate]] with which [[Wikipedia:Namespace|namespace]]-sensitive {{cl|Mbox and messagebox templates|messagebox templates}} can be implemented. The most common of these are {{tl|Ambox}} for articles, {{tl|Tmbox}} for talk pages, {{tl|Imbox}} for file (formerly image) pages, {{tl|Cmbox}} for category pages and {{tl|Ombox}} for other types of page.
Note that this template should only be used for message boxes that really need to adapt their style. Most message boxes do not need this and should use one of the varieties just listed. Using those templates directly means that your template will look the same on its template page and at any other place you show it, which makes it clear on what kind of pages it is supposed to be used. It also gives you access to any extra features those templates offer, and it saves some server load.
== Usage ==
This template takes the same parameters as {{tl|Ambox}}, {{tl|Imbox}}, etc. See full documentation there.
Some of the boxes this template calls only handles images of max 52px width, thus that limitation also applies to this template or you will get ugly padding problems.
== Demospace ==
This template optionally takes the &quot;demospace&quot; parameter as described at {{tl|Namespace detect}}. That parameter is only for testing and demonstration purposes. If you want to lock your message box to one style then instead use one of the other mboxes directly.
Namespace &quot;Image:&quot; was renamed to &quot;File:&quot; on 11 December 2008. This template was updated to understand both names well before that, thus it still works fine. For backwards compatibility it still understands &quot;demospace&amp;nbsp;= image&quot; which means the same thing as &quot;demospace&amp;nbsp;= file&quot;. But using &quot;demospace&amp;nbsp;= image&quot; is now deprecated.
Namespace &quot;Book:&quot; was added to the English Wikipedia on 28 December 2009. This template uses the {{tlf|Ombox}} style on &quot;Book:&quot; pages (or when &quot;demospace&amp;nbsp;= book&quot;) and the {{tlf|Tmbox}} style on &quot;Book talk:&quot; pages (or when &quot;demospace&amp;nbsp;= talk&quot;). Note that &quot;demospace&amp;nbsp;= talk&quot; means any talk space.
== Parameters ==
List of all parameters:
&lt;pre&gt;
{{Mbox
| demospace = {{{demospace|}}} / main / talk / file / category / other
| type = speedy / delete / content / style / notice / move / protection
| image = none / [[File:Some image.svg|40px]]
| imageright = [[File:Some image.svg|40px]]
| style=CSS values
| textstyle=CSS values
| text = The message body text.
| small = {{{small|}}} / left / yes
| smallimage = none / [[File:Some image.svg|30px]]
| smallimageright = none / [[File:Some image.svg|30px]]
| smalltext = A shorter message body text.
| plainlinks = no
}}
&lt;/pre&gt;
Note: The small parameters only have effect when the template appears on an article, talk or &quot;other&quot; page type. For their associated documentation, see {{tl|Ambox}}, {{tl|Tmbox}} and/or {{tl|Ombox}}. Using the small parameters when they are not valid has no effect, but also does no harm.
== See also ==
{{Mbox templates see also}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories go below this line, please; interwikis go to Wikidata, thank you! --&gt;
[[Category:Mbox and messagebox templates]]
[[Category:Exclude in print]]
}}&lt;/includeonly&gt;</text>
<sha1>bzwb53yzoohp9jy5wxrshovatazp91g</sha1>
</revision>
</page>
<page>
<title>Template:Merge from</title>
<ns>10</ns>
<id>879515</id>
<revision>
<id>784067163</id>
<parentid>767814071</parentid>
<timestamp>2017-06-06T08:28:29Z</timestamp>
<contributor>
<username>UsuallyNonviolentBot</username>
<id>31197275</id>
</contributor>
<minor/>
<comment>/* top */Remove deprecated parameter $N from [[Module:Unsubst]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1576">{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=
&lt;!--{{Merge from}} begin--&gt;{{#ifeq:{{NAMESPACE}}|Category
|&lt;span class=&quot;error&quot;&gt;For categories please use the templates available at [[Wikipedia:Categories for discussion]].&lt;/span&gt;
}}{{#ifeq:{{NAMESPACE}}|Template
|&lt;includeonly&gt;&lt;span class=&quot;error&quot;&gt;For templates, please use the templates available at [[Wikipedia:Templates for discussion]].&lt;/span&gt;[[Category:Pages with misplaced templates]]&lt;/includeonly&gt;
}}{{Mbox
| demospace={{{demospace|}}}
| type = move
| image = [[Image:Mergefrom.svg|50px|alt=|link=]]
| text = It has been suggested that {{#ifeq:{{{multiplesections}}}|yes|multiple sections of&amp;nbsp;}}{{Pagelist|nspace=all|delim=''|{{{1|&lt;noinclude&gt;''an article''&lt;/noinclude&gt;}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}|{{{5|}}}|{{{6|}}}|{{{7|}}}|{{{8|}}}|{{{9|}}}|{{{10|}}}|{{{11|}}}|{{{12|}}}|{{{13|}}}|{{{14|}}}|{{{15|}}}|{{{16|}}}|{{{17|}}}|{{{18|}}}|{{{19|}}}|{{{20|}}}}} be [[Wikipedia:Merging|merged]] into this {{#if:{{{section|}}}|section|{{#if:{{NAMESPACE}}|page|article}}}}. ([[{{{discussion|{{{discuss|{{TALKPAGENAME}}}}}}}}|Discuss]]){{#if:{{{date&lt;includeonly&gt;|&lt;/includeonly&gt;}}}|&lt;small&gt;'' Proposed since {{{date&lt;includeonly&gt;|&lt;/includeonly&gt;}}}.''&lt;/small&gt;}}
}}&lt;includeonly&gt;{{#switch:{{NAMESPACE}}
||Talk={{DMC|Articles to be merged|from|{{{date|}}}|All articles to be merged}}
|#default={{DMC|||Items to be merged}}}}{{Merge partner|{{{1|}}}}}&lt;/includeonly&gt;&lt;!--{{Merge from}} end--&gt;
}}&lt;noinclude&gt;
{{Documentation|Template:Merge/doc}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>s7u548k1340xtqpqzcjpx80m343150o</sha1>
</revision>
</page>
<page>
<title>Template:Merge to</title>
<ns>10</ns>
<id>1514395</id>
<revision>
<id>784067201</id>
<parentid>767813017</parentid>
<timestamp>2017-06-06T08:28:54Z</timestamp>
<contributor>
<username>UsuallyNonviolentBot</username>
<id>31197275</id>
</contributor>
<minor/>
<comment>/* top */Remove deprecated parameter $N from [[Module:Unsubst]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1554">{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=
&lt;!--{{Merge to}} begin--&gt;{{#ifeq:{{NAMESPACE}}|Category
|&lt;span class=&quot;error&quot;&gt;For categories please use the templates available at [[Wikipedia:Categories for discussion]].&lt;/span&gt;
}}{{#ifeq:{{NAMESPACE}}|Template
|&lt;includeonly&gt;&lt;span class=&quot;error&quot;&gt;For templates please use the templates available at [[Wikipedia:Templates for discussion]].&lt;/span&gt;[[Category:Pages with misplaced templates]]&lt;/includeonly&gt;
}}{{Mbox
|demospace={{{demospace|}}}
|type = move
|image=[[File:Merge-arrow.svg|alt=|link=]]
|text=It has been suggested that this {{#if:{{{section|}}}|section|{{#if:{{NAMESPACE}}|page|article}}}} be [[Wikipedia:Merging|merged]] into {{#if:{{{target|}}}|&amp;nbsp;''[[:{{NAMESPACE}}:{{{target}}}|{{{target}}}]]''|{{Pagelist|nspace=all|delim=''|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}|{{{5|}}}|{{{6|}}}|{{{7|}}}|{{{8|}}}|{{{9|}}}|{{{10|}}}|{{{11|}}}|{{{12|}}}|{{{13|}}}|{{{14|}}}|{{{15|}}}|{{{16|}}}|{{{17|}}}|{{{18|}}}|{{{19|}}}|{{{20|}}}}}}}. ([[{{{discussion|{{{discuss|{{TALKPAGENAME:{{{1}}}}}}}}}}}|Discuss]]){{#if:{{{date&lt;includeonly&gt;|&lt;/includeonly&gt;}}}|&lt;small&gt;'' Proposed since {{{date&lt;includeonly&gt;|&lt;/includeonly&gt;}}}.''&lt;/small&gt;}}
}}&lt;includeonly&gt;{{#switch:{{NAMESPACE}}
||Talk={{DMC|Articles to be merged|from|{{{date|}}}|All articles to be merged}}
|#default={{DMC|||Items to be merged}}}}{{Merge partner|{{{1|{{{target}}}}}}}}&lt;/includeonly&gt;&lt;!--{{Merge to}} end--&gt;
}}&lt;noinclude&gt;
{{Documentation|Template:Merge/doc}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>rj31glswjj0c82tbic3h7fifqsp5pze</sha1>
</revision>
</page>
<page>
<title>Template:Module other</title>
<ns>10</ns>
<id>38821035</id>
<revision>
<id>804535613</id>
<parentid>732376782</parentid>
<timestamp>2017-10-09T17:16:24Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Module other]]&quot;: [[WP:High-risk templates|Highly visible template]]; 2,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="414">{{#switch:
&lt;!--If no or empty &quot;demospace&quot; parameter then detect namespace--&gt;
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} &lt;!--Use lower case &quot;demospace&quot;--&gt;
| {{#ifeq:{{NAMESPACE}}|{{ns:Module}}
| module
| other
}}
}}
| module = {{{1|}}}
| other
| #default = {{{2|}}}
}}&lt;!--End switch--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>9db98vx09purrfch7wguurzjgqz7u93</sha1>
</revision>
</page>
<page>
<title>Template:Module rating</title>
<ns>10</ns>
<id>39134544</id>
<revision>
<id>819682520</id>
<parentid>792106604</parentid>
<timestamp>2018-01-10T18:59:27Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Module rating]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access]...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5076">&lt;includeonly&gt;{{Module other|{{ombox
| type = notice
| image = {{#switch: {{{1|}}}
| pre-alpha | prealpha | pa = [[File:Ambox warning blue construction.svg|40x40px|link=]]
| alpha | a = [[File:Alpha lowercase.svg|26x26px|link=]]
| beta | b = [[File:Greek lc beta.svg|40x40px|link=]]
| release | r | general | g = [[File:Green check.svg|40x40px|link=]]
| protected | protect | p = [[File:Padlock{{#switch:{{#invoke:Effective protection level|edit|{{#switch:{{SUBPAGENAME}}|doc|sandbox={{FULLBASEPAGENAME}}|{{FULLPAGENAME}}}}}}|autoconfirmed=-silver|accountcreator|templateeditor=-pink|}}.svg|40x40px|link=]]
| semiprotected | semiprotect | semi =[[File:Padlock-silver.svg|40x40px|link=]]
}}
| style =
| textstyle =
| text = {{#switch: {{{1|}}}
| pre-alpha | prealpha | pa = This module is rated as [[:Category:Modules in pre-alpha development|pre-alpha]]. It is unfinished, and may or may not be in active development. It should not be used from article namespace pages. Modules remain pre-alpha until the original editor (or someone who takes one over if it is abandoned for some time) is satisfied with the basic structure.&lt;!--
--&gt;{{#switch: {{SUBPAGENAME}}|doc|sandbox=&lt;!-- No category for /doc or /sandbox subpages --&gt;
| {{#ifeq: {{{nocat|}}} | true | &lt;!-- No category if user sets nocat=true --&gt; | [[Category:Modules in pre-alpha development|{{PAGENAME}}]] }}
}}
| alpha | a = This module is rated as [[:Category:Modules in alpha|alpha]]. It is ready for third party input, and may be used on a few pages to see if problems arise, but should be watched. Suggestions for new features or changes in their input and output mechanisms are welcome.&lt;!--
--&gt;{{#switch: {{SUBPAGENAME}}|doc|sandbox=&lt;!-- No category for /doc or /sandbox subpages --&gt;
| {{#ifeq: {{{nocat|}}} | true | &lt;!-- No category if user sets nocat=true --&gt; | [[Category:Modules in alpha|{{PAGENAME}}]] }}
}}
| beta | b = This module is rated as [[:Category:Modules in beta|beta]], and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected.&lt;!--
--&gt;{{#switch: {{SUBPAGENAME}}|doc|sandbox=&lt;!-- No category for /doc or /sandbox subpages --&gt;
| {{#ifeq: {{{nocat|}}} | true | &lt;!-- No category if user sets nocat=true --&gt; | [[Category:Modules in beta|{{PAGENAME}}]] }}
}}
| release | r | general | g = This module is rated as [[:Category:Modules for general use|ready for general use]]. It has reached a mature form and is thought to be bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by [[WP:TESTCASES|sandbox testing]] rather than repeated trial-and-error editing.&lt;!--
--&gt;{{#switch: {{SUBPAGENAME}}|doc|sandbox=&lt;!-- No category for /doc or /sandbox subpages --&gt;
| {{#ifeq: {{{nocat|}}} | true | &lt;!-- No category if user sets nocat=true --&gt; | [[Category:Modules for general use|{{PAGENAME}}]] }}
}}
| protected | protect | p = This module is [[:Category:Modules subject to page protection|subject to page protection]]. It is a [[Wikipedia:High-risk templates|highly visible module]] in use by a very large number of pages, or is [[WP:SUBST|substituted]] very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[WP:PROTECT|protected]] from editing.&lt;!--
--&gt;{{#switch: {{SUBPAGENAME}}|doc|sandbox=&lt;!-- No category for /doc or /sandbox subpages --&gt;
| {{#ifeq: {{{nocat|}}} | true | &lt;!-- No category if user sets nocat=true --&gt; | [[Category:Modules subject to page protection|{{PAGENAME}}]] }}
}}
| semiprotected | semiprotect | semi = This module is [[:Category:Modules subject to page protection|subject to page protection]]. It is a [[Wikipedia:High-risk templates|highly visible module]] in use by a very large number of pages, or is [[WP:SUBST|substituted]] very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is [[WP:SEMI|semi-protected]] from editing.&lt;!--
--&gt;{{#switch: {{SUBPAGENAME}}|doc|sandbox=&lt;!-- No category for /doc or /sandbox subpages --&gt;
| {{#ifeq: {{{nocat|}}} | true | &lt;!-- No category if user sets nocat=true --&gt; | [[Category:Modules subject to page protection|{{PAGENAME}}]] }}
}}
| #default = {{error|Module rating is invalid or not specified.}}
}}
}}|{{error|Error: {{tl|Module rating}} must be placed in the Module namespace.}} [[Category:Pages with templates in the wrong namespace]]|demospace={{{demospace|&lt;noinclude&gt;module&lt;/noinclude&gt;}}}}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{module rating|release|nocat=true|demospace=module}}
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go in Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>sqtg8jns27rq679g2hmmlauu3f159lp</sha1>
</revision>
</page>
<page>
<title>Template:Myprefs</title>
<ns>10</ns>
<id>31525829</id>
<revision>
<id>804535620</id>
<parentid>644021852</parentid>
<timestamp>2017-10-09T17:16:24Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Myprefs]]&quot;: [[WP:High-risk templates|Highly visible template]]; 2,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1522">&lt;span class=&quot;example&quot; style=&quot;font-family: Georgia, serif;&quot;&gt;[[Special:Preferences|Preferences]]{{#switch: {{lc:{{{1|}}}}}
|0
|user profile=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-personal|User profile]]
|1
|appearance=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-rendering|Appearance]]
|2
|date and time=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-datetime|Date and time]]
|3
|editing=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-editing|Editing]]
|4
|recent changes=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-rc|Recent changes]]
|5
|watchlist=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-watchlist|Watchlist]]
|6=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-searchoptions|Search options]]
|search=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-searchoptions|Search]]
|8
|pending changes=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-flaggedrevs|Pending changes]]
|9
|gadgets=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-gadgets|Gadgets]]
|10
|notifications=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-echo|Notifications]]
|11
|beta|beta features=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-betafeatures|Beta features]]
|7
|12
|misc=&amp;nbsp;→ [[Special:Preferences#mw-prefsection-misc|Misc]]
}}{{#if:{{{2|}}}|&amp;nbsp;→ {{{2}}}|}}{{#if:{{{3|}}}|&amp;nbsp;= {{{3}}}|{{#if:{{{uncheck|}}}|&amp;nbsp;→ [[File:U+2610.svg|alt=uncheck|link=|uncheck]] {{{uncheck}}}|{{#if:{{{check|}}}|&amp;nbsp;→ [[File:Check mark.svg|alt=check|link=|check]] {{{check}}}|}}}}}}&lt;/span&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>trvef7s24aqilmnh7vwlqp8y5nq7s4h</sha1>
</revision>
</page>
<page>
<title>Template:N/a</title>
<ns>10</ns>
<id>2499787</id>
<revision>
<id>738385183</id>
<parentid>689743301</parentid>
<timestamp>2016-09-08T17:07:00Z</timestamp>
<contributor>
<username>Andy M. Wang</username>
<id>516856</id>
</contributor>
<comment>sync sandbox by [[User:Matt Fitzpatrick]]: default sort as blank cell requested by [[User:Masem]] and 50.53.1.33, unopposed</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="279">{| class=&quot;wikitable&quot;
|-
| &lt;onlyinclude&gt;data-sort-value=&quot;{{{sort|}}}&quot; style=&quot;background: #ececec; color: #2C2C2C; vertical-align: middle; font-size: smaller; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-na&quot; &lt;!--
--&gt;| {{{1|N/A}}}&lt;/onlyinclude&gt;
|}
{{documentation}}</text>
<sha1>izdroi3sfz085omzs2a6c9gu7f6zyzd</sha1>
</revision>
</page>
<page>
<title>Template:Navbar</title>
<ns>10</ns>
<id>5277509</id>
<revision>
<id>776701623</id>
<parentid>776701469</parentid>
<timestamp>2017-04-22T18:49:17Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<comment>Closed</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="94">&lt;includeonly&gt;{{#invoke:Navbar|navbar}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>fptzky4feeh5ybkj9wgkbuuk3emtln7</sha1>
</revision>
</page>
<page>
<title>Template:Navbox</title>
<ns>10</ns>
<id>995954</id>
<revision>
<id>630098073</id>
<parentid>622579838</parentid>
<timestamp>2014-10-18T12:29:00Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>linebreaks</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="94">&lt;includeonly&gt;{{#invoke:Navbox|navbox}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>tqodcaa2vvhehqaod229udlla0wimek</sha1>
</revision>
</page>
<page>
<title>Template:Navbox suite</title>
<ns>10</ns>
<id>17269633</id>
<revision>
<id>768751528</id>
<parentid>764074660</parentid>
<timestamp>2017-03-05T16:02:48Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="886">&lt;onlyinclude&gt;{{#invoke:sidebar|sidebar
| width = auto
| bodystyle = border-spacing:0;background:#f7f7f7;padding:2px;
| titleclass = navbox-title
| title = Navbox suite
| contentclass = plainlist
| contentstyle = padding:0.25em;background:#fdfdfd;
| content1 =
*{{tl|Navbox}}
*{{tl|Navbox subgroup}}
*{{tl|Navbox with collapsible groups}}
*{{tl|Navbox with columns}}
*{{tl|Navboxes}}
| navbarstyle = background:#fdfdfd;padding:0 5px
}}&lt;/onlyinclude&gt;&lt;!--
NOTE: A template MUST support all of the parameters marked with a cross in Template:Navbox/doc in order to be Navbox suite compliant.
In particular, the name, state, border, and navbar parameters are especially important.
--&gt;&lt;noinclude&gt;
{{Documentation|content=
[[Category:Navigational boxes| ]]
[[Category:Documentation shared content templates]]
[[Category:Wikipedia-internal navigational templates]]
}}&lt;/noinclude&gt;</text>
<sha1>tjxzqqua3trk6r16zy8z8d9ftqzhcnm</sha1>
</revision>
</page>
<page>
<title>Template:Navbox with collapsible groups</title>
<ns>10</ns>
<id>13777826</id>
<revision>
<id>631618283</id>
<parentid>629736761</parentid>
<timestamp>2014-10-29T14:53:16Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>rollback per lack of consensus</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="15463">{{#invoke:navbox|navbox
|name = {{{name|&lt;noinclude&gt;Navbox with collapsible groups&lt;/noinclude&gt;}}}
|navbar = {{{navbar|}}}
|state = {{{state|&lt;noinclude&gt;uncollapsed&lt;/noinclude&gt;}}}
|border = {{{border|{{{1|}}}}}}
|title = {{{title&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
|above = {{{above|}}}
|image = {{{image|}}}
|imageleft = {{{imageleft|}}}
|bodyclass = {{{bodyclass|}}}
|titleclass = {{{titleclass|}}}
|aboveclass = {{{aboveclass|}}}
|belowclass = {{{belowclass|}}}
|groupclass = {{{groupclass|}}}
|listclass = {{{listclass|}}}
|imageclass = {{{imageclass|}}}
|style = {{{style|}}}{{{bodystyle|}}}
|basestyle = {{{basestyle|}}}
|titlestyle = {{{titlestyle|}}}
|abovestyle = {{{abovestyle|}}}
|belowstyle = {{{belowstyle|}}}
|imagestyle = {{{imagestyle|}}}
|imageleftstyle = {{{imageleftstyle|}}}
|list1 =
{{#if:{{{group1&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{sect1|}}}{{{section1|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr1}}} |uncollapsed |{{{state1|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group1style|}}}{{{sect1titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list1style|}}}{{{content1style|}}}
|title = {{{group1&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{sect1|}}}{{{section1|}}}&lt;noinclude&gt; or {{{section1}}} or {{{sect1}}}&lt;/noinclude&gt;
|list1 = {{{list1&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{content1|}}}&lt;noinclude&gt; or {{{content1}}}&lt;/noinclude&gt;
|image = {{{image1|}}}
|imageleft = {{{imageleft1|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list1|}}}{{{content1|}}}
}}
|list2 =
{{#if:{{{group2&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{sect2|}}}{{{section2|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr2}}} |uncollapsed |{{{state2|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group2style|}}}{{{sect2titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list2style|}}}{{{content2style|}}}
|title = {{{group2&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{sect2|}}}{{{section2|}}}&lt;noinclude&gt; or {{{section2}}} or {{{sect2}}}&lt;/noinclude&gt;
|list1 = {{{list2&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{content2|}}}&lt;noinclude&gt; or {{{content2}}}&lt;/noinclude&gt;
|image = {{{image2|}}}
|imageleft = {{{imageleft2|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list2|}}}{{{content2|}}}
}}
|list3 =
{{#if:{{{group3&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{sect3|}}}{{{section3|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr3}}} |uncollapsed |{{{state3|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group3style|}}}{{{sect3titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list3style|}}}{{{content3style|}}}
|title = {{{group3&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{sect3|}}}{{{section3|}}}&lt;noinclude&gt; or {{{section3}}} or {{{sect3}}}&lt;/noinclude&gt;
|list1 = {{{list3&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{content3|}}}&lt;noinclude&gt; or {{{content3}}}&lt;/noinclude&gt;
|image = {{{image3|}}}
|imageleft = {{{imageleft3|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list3|}}}{{{content3|}}}
}}
|list4 =
{{#if:{{{group4&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{sect4|}}}{{{section4|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr4}}} |uncollapsed |{{{state4|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group4style|}}}{{{sect4titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list4style|}}}{{{content4style|}}}
|title = {{{group4&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{sect4|}}}{{{section4|}}}&lt;noinclude&gt; or {{{section4}}} or {{{sect4}}}&lt;/noinclude&gt;
|list1 = {{{list4&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{content4|}}}&lt;noinclude&gt; or {{{content4}}}&lt;/noinclude&gt;
|image = {{{image4|}}}
|imageleft = {{{imageleft4|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list4|}}}{{{content4|}}}
}}
|list5 =
{{#if:{{{group5&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{sect5|}}}{{{section5|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr5}}} |uncollapsed |{{{state5|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group5style|}}}{{{sect5titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list5style|}}}{{{content5style|}}}
|title = {{{group5&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{sect5|}}}{{{section5|}}}&lt;noinclude&gt; or {{{section5}}} or {{{sect5}}}&lt;/noinclude&gt;
|list1 = {{{list5&lt;includeonly&gt;|&lt;/includeonly&gt;}}}{{{content5|}}}&lt;noinclude&gt; or {{{content5}}}&lt;/noinclude&gt;
|image = {{{image5|}}}
|imageleft = {{{imageleft5|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list5|}}}{{{content5|}}}
}}
|list6 =
{{#if:{{{group6|}}}{{{sect6|}}}{{{section6|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr6}}} |uncollapsed |{{{state6|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group6style|}}}{{{sect6titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list6style|}}}{{{content6style|}}}
|title = {{{group6|}}}{{{sect6|}}}{{{section6|}}}
|list1 = {{{list6|}}}{{{content6|}}}
|image = {{{image6|}}}
|imageleft = {{{imageleft6|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list6|}}}{{{content6|&lt;noinclude&gt;''(...etc, to group20/sect20/section20 and list20/content20)''&lt;/noinclude&gt;}}}
}}
|list7 =
{{#if:{{{group7|}}}{{{sect7|}}}{{{section7|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr7}}} |uncollapsed |{{{state7|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group7style|}}}{{{sect7titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list7style|}}}{{{content7style|}}}
|title = {{{group7|}}}{{{sect7|}}}{{{section7|}}}
|list1 = {{{list7|}}}{{{content7|}}}
|image = {{{image7|}}}
|imageleft = {{{imageleft7|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list7|}}}{{{content7|}}}
}}
|list8 =
{{#if:{{{group8|}}}{{{sect8|}}}{{{section8|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr8}}} |uncollapsed |{{{state8|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group8style|}}}{{{sect8titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list8style|}}}{{{content8style|}}}
|title = {{{group8|}}}{{{sect8|}}}{{{section8|}}}
|list1 = {{{list8|}}}{{{content8|}}}
|image = {{{image8|}}}
|imageleft = {{{imageleft8|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list8|}}}{{{content8|}}}
}}
|list9 =
{{#if:{{{group9|}}}{{{sect9|}}}{{{section9|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr9}}} |uncollapsed |{{{state9|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group9style|}}}{{{sect9titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list9style|}}}{{{content9style|}}}
|title = {{{group9|}}}{{{sect9|}}}{{{section9|}}}
|list1 = {{{list9|}}}{{{content9|}}}
|image = {{{image9|}}}
|imageleft = {{{imageleft9|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list9|}}}{{{content9|}}}
}}
|list10 =
{{#if:{{{group10|}}}{{{sect10|}}}{{{section10|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr10}}} |uncollapsed |{{{state10|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group10style|}}}{{{sect10titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list10style|}}}{{{content10style|}}}
|title = {{{group10|}}}{{{sect10|}}}{{{section10|}}}
|list1 = {{{list10|}}}{{{content10|}}}
|image = {{{image10|}}}
|imageleft = {{{imageleft10|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list10|}}}{{{content10|}}}
}}
|list11 =
{{#if:{{{group11|}}}{{{sect11|}}}{{{section11|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr11}}} |uncollapsed |{{{state11|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group11style|}}}{{{sect11titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list11style|}}}{{{content11style|}}}
|title = {{{group11|}}}{{{sect11|}}}{{{section11|}}}
|list1 = {{{list11|}}}{{{content11|}}}
|image = {{{image11|}}}
|imageleft = {{{imageleft11|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list11|}}}{{{content11|}}}
}}
|list12 =
{{#if:{{{group12|}}}{{{sect12|}}}{{{section12|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr12}}} |uncollapsed |{{{state12|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group12style|}}}{{{sect12titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list12style|}}}{{{content12style|}}}
|title = {{{group12|}}}{{{sect12|}}}{{{section12|}}}
|list1 = {{{list12|}}}{{{content12|}}}
|image = {{{image12|}}}
|imageleft = {{{imageleft12|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list12|}}}{{{content12|}}}
}}
|list13 =
{{#if:{{{group13|}}}{{{sect13|}}}{{{section13|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr13}}} |uncollapsed |{{{state13|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group13style|}}}{{{sect13titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list13style|}}}{{{content13style|}}}
|title = {{{group13|}}}{{{sect13|}}}{{{section13|}}}
|list1 = {{{list13|}}}{{{content13|}}}
|image = {{{image13|}}}
|imageleft = {{{imageleft13|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list13|}}}{{{content13|}}}
}}
|list14 =
{{#if:{{{group14|}}}{{{sect14|}}}{{{section14|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr14}}} |uncollapsed |{{{state14|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group14style|}}}{{{sect14titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list14style|}}}{{{content14style|}}}
|title = {{{group14|}}}{{{sect14|}}}{{{section14|}}}
|list1 = {{{list14|}}}{{{content14|}}}
|image = {{{image14|}}}
|imageleft = {{{imageleft14|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list14|}}}{{{content14|}}}
}}
|list15 =
{{#if:{{{group15|}}}{{{sect15|}}}{{{section15|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr15}}} |uncollapsed |{{{state15|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group15style|}}}{{{sect15titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list15style|}}}{{{content15style|}}}
|title = {{{group15|}}}{{{sect15|}}}{{{section15|}}}
|list1 = {{{list15|}}}{{{content15|}}}
|image = {{{image15|}}}
|imageleft = {{{imageleft15|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list15|}}}{{{content15|}}}
}}
|list16 =
{{#if:{{{group16|}}}{{{sect16|}}}{{{section16|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr16}}} |uncollapsed |{{{state16|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group16style|}}}{{{sect16titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list16style|}}}{{{content16style|}}}
|title = {{{group16|}}}{{{sect16|}}}{{{section16|}}}
|list1 = {{{list16|}}}{{{content16|}}}
|image = {{{image16|}}}
|imageleft = {{{imageleft16|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list16|}}}{{{content16|}}}
}}
|list17 =
{{#if:{{{group17|}}}{{{sect17|}}}{{{section17|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr17}}} |uncollapsed |{{{state17|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group17style|}}}{{{sect17titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list17style|}}}{{{content17style|}}}
|title = {{{group17|}}}{{{sect17|}}}{{{section17|}}}
|list1 = {{{list17|}}}{{{content17|}}}
|image = {{{image17|}}}
|imageleft = {{{imageleft17|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list17|}}}{{{content17|}}}
}}
|list18 =
{{#if:{{{group18|}}}{{{sect18|}}}{{{section18|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr18}}} |uncollapsed |{{{state18|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group18style|}}}{{{sect18titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list18style|}}}{{{content18style|}}}
|title = {{{group18|}}}{{{sect18|}}}{{{section18|}}}
|list1 = {{{list18|}}}{{{content18|}}}
|image = {{{image18|}}}
|imageleft = {{{imageleft18|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list18|}}}{{{content18|}}}
}}
|list19 =
{{#if:{{{group19|}}}{{{sect19|}}}{{{section19|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr19}}} |uncollapsed |{{{state19|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group19style|}}}{{{sect19titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list19style|}}}{{{content19style|}}}
|title = {{{group19|}}}{{{sect19|}}}{{{section19|}}}
|list1 = {{{list19|}}}{{{content19|}}}
|image = {{{image19|}}}
|imageleft = {{{imageleft19|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list19|}}}{{{content19|}}}
}}
|list20 =
{{#if:{{{group20|}}}{{{sect20|}}}{{{section20|}}}
| {{#invoke:navbox|navbox|child
|navbar = plain
|state = {{#ifeq:{{{selected}}}|{{{abbr20}}} |uncollapsed |{{{state20|collapsed}}}}}
|titlestyle = {{{basestyle|}}};{{{groupstyle|}}}{{{secttitlestyle|}}}{{{group20style|}}}{{{sect20titlestyle|}}}
|liststyle = {{{liststyle|}}}{{{contentstyle|}}}{{{list20style|}}}{{{content20style|}}}
|title = {{{group20|}}}{{{sect20|}}}{{{section20|}}}
|list1 = {{{list20|}}}{{{content20|}}}
|image = {{{image20|}}}
|imageleft = {{{imageleft20|}}}
|{{#if:{{{listpadding|}}} |listpadding |void}} = {{{listpadding|}}}
}}
| {{{list20|}}}{{{content20|}}}
}}
|below = {{{below|}}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>004md93zp9544vr4rm2ew2eur7s2ydb</sha1>
</revision>
</page>
<page>
<title>Template:Navbox with columns</title>
<ns>10</ns>
<id>12881788</id>
<revision>
<id>820414759</id>
<parentid>794038665</parentid>
<timestamp>2018-01-14T16:46:48Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>add some temporary tracking with [[Category:Pages using navbox columns without the first column]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="16650">&lt;!--
Please do not edit without discussion first as this is a &quot;VERY complex&quot; template.
--&gt;{{Navbox
|name = {{{name|}}}
|navbar = {{{navbar|}}}
|state = {{{state|}}}
|border = {{{border|{{{1|}}}}}}
|title = {{{title|}}}
|above = {{{above|}}}
|image = {{{image|}}}
|imageleft = {{{imageleft|}}}
|bodyclass = {{{bodyclass|}}}
|titleclass = {{{titleclass|}}}
|aboveclass = {{{aboveclass|}}}
|belowclass = {{{belowclass|}}}
|groupclass = {{{groupclass|}}}
|listclass = {{{listclass|}}}
|style = {{{style|}}}{{{bodystyle|}}}
|basestyle = {{{basestyle|}}}
|titlestyle = {{{titlestyle|}}}
|abovestyle = {{{abovestyle|}}}
|belowstyle = {{{belowstyle|}}}
|imagestyle = {{{imagestyle|}}}
|imageleftstyle = {{{imageleftstyle|}}}
|oddstyle = {{{oddstyle|}}}
|evenstyle = {{{evenstyle|}}}
|{{#if:{{{evenodd|}}}|evenodd|void}} = {{{evenodd|}}}
|list1padding = 0px;
|list1 = &lt;!--
--&gt;&lt;table class=&quot;navbox-columns-table&quot; style=&quot;border-spacing: 0px; text-align:left;&lt;!--
--&gt;{{#if:{{{col1header|}}}{{{fullwidth|}}}|width:100%;&lt;!--
--&gt;|width:auto; margin-left:auto; margin-right:auto;}}{{{coltablestyle|}}}&quot;&gt;&lt;!--
--- Header row ---
--&gt;{{#if:{{{col1header|}}}|&lt;tr&gt;&lt;!--
--&gt;&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col1headercolspan|1}}} style=&quot;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col1headerstyle|}}}&quot;&gt;{{{col1header}}}&lt;/td&gt;&lt;!--
--&gt;{{#if:{{{col2header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col2headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col2headerstyle|}}}&quot;&gt;{{{col2header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col3header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col3headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col3headerstyle|}}}&quot;&gt;{{{col3header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col4header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col4headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col4headerstyle|}}}&quot;&gt;{{{col4header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col5header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col5headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col5headerstyle|}}}&quot;&gt;{{{col5header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col6header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col6headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col6headerstyle|}}}&quot;&gt;{{{col6header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col7header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col7headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col7headerstyle|}}}&quot;&gt;{{{col7header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col8header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col8headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col8headerstyle|}}}&quot;&gt;{{{col8header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col9header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col9headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col9headerstyle|}}}&quot;&gt;{{{col9header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col10header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col10headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col10headerstyle|}}}&quot;&gt;{{{col10header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col11header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col11headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col11headerstyle|}}}&quot;&gt;{{{col11header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col12header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col12headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col12headerstyle|}}}&quot;&gt;{{{col12header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col13header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col13headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col13headerstyle|}}}&quot;&gt;{{{col13header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col14header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col14headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col14headerstyle|}}}&quot;&gt;{{{col14header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col15header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col15headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col15headerstyle|}}}&quot;&gt;{{{col15header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col16header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col16headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col16headerstyle|}}}&quot;&gt;{{{col16header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col17header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col17headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col17headerstyle|}}}&quot;&gt;{{{col17header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col18header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col18headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col18headerstyle|}}}&quot;&gt;{{{col18header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col19header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;colspan={{{col19headercolspan|1}}} style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col19headerstyle|}}}&quot;&gt;{{{col19header}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col20header|}}}|&lt;td class=&quot;navbox-abovebelow&quot; &lt;!--
--&gt;style=&quot;border-left:2px solid #fdfdfd;&lt;!--
--&gt;font-weight:bold;{{{colheaderstyle|}}}{{{col20headerstyle|}}}&quot;&gt;{{{col20header}}}&lt;/td&gt;}}&lt;!--
--&gt;&lt;/tr&gt;}}&lt;!--
--- Main columns---
--&gt;&lt;tr style=&quot;vertical-align:top;&quot;&gt;&lt;!--
--&gt;{{#if:{{{col1|}}}|&lt;!--
--&gt;{{#if:{{{col1header|}}}{{{col1footer|}}}{{{fullwidth|}}}|&lt;!--
--&gt;|{{#switch:{{{padding|}}}|off|0|0em|0px|0%|0;|0em;|0px;|0%;=&lt;!--
--&gt;|#default=&lt;td style=&quot;width:{{{padding|5em}}};&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/td&gt;}}}}&lt;!--
--&gt;&lt;td class=&quot;navbox-list&quot; style=&quot;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{oddcolstyle|}}};{{{col1style|}}};width:{{{col1width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col1}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col2|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{evencolstyle|}}};{{{col2style|}}};width:{{{col2width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col2}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col3|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{oddcolstyle|}}};{{{col3style|}}};width:{{{col3width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col3}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col4|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{evencolstyle|}}};{{{col4style|}}};width:{{{col4width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col4}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col5|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{oddcolstyle|}}};{{{col5style|}}};width:{{{col5width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col5}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col6|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{evencolstyle|}}};{{{col6style|}}};width:{{{col6width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col6}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col7|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{oddcolstyle|}}};{{{col7style|}}};width:{{{col7width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col7}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col8|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{evencolstyle|}}};{{{col8style|}}};width:{{{col8width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col8}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col9|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{oddcolstyle|}}};{{{col9style|}}};width:{{{col9width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col9}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col10|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{evencolstyle|}}};{{{col10style|}}};width:{{{col10width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col10}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col11|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{oddcolstyle|}}};{{{col11style|}}};width:{{{col11width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col11}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col12|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{evencolstyle|}}};{{{col12style|}}};width:{{{col12width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col12}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col13|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{oddcolstyle|}}};{{{col13style|}}};width:{{{col13width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col13}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col14|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{evencolstyle|}}};{{{col14style|}}};width:{{{col14width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col14}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col15|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{oddcolstyle|}}};{{{col15style|}}};width:{{{col15width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col15}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col16|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{evencolstyle|}}};{{{col16style|}}};width:{{{col16width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col16}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col17|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{oddcolstyle|}}};{{{col17style|}}};width:{{{col17width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col17}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col18|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{evencolstyle|}}};{{{col18style|}}};width:{{{col18width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col18}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col19|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{oddcolstyle|}}};{{{col19style|}}};width:{{{col19width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col19}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col20|}}}|&lt;td class=&quot;navbox-list&quot; style=&quot;border-left:2px solid #fdfdfd;padding:0px;&lt;!--
--&gt;{{{colstyle|}}};{{{evencolstyle|}}};{{{col20style|}}};width:{{{col20width|{{{colwidth|10em}}}}}};&quot;&gt;&lt;div&gt;
{{{col20}}}
&lt;/div&gt;&lt;/td&gt;}}&lt;!--
--&gt;&lt;/tr&gt;&lt;!--
--- Footer row ---
--&gt;{{#if:{{{col1footer|}}}|&lt;!--
--&gt;&lt;tr&gt;&lt;!--
--&gt;&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col1footercolspan|1}}} style=&quot;&lt;!--
--&gt;font-weight:bold;{{{colfooterstyle|}}};{{{col1footerstyle|}}}&quot;&gt;{{{col1footer}}}&lt;/td&gt;&lt;!--
--&gt;{{#if:{{{col2footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col2footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col2footerstyle|}}}&quot;&gt;{{{col2footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col3footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col3footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col3footerstyle|}}}&quot;&gt;{{{col3footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col4footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col4footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col4footerstyle|}}}&quot;&gt;{{{col4footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col5footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col5footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col5footerstyle|}}}&quot;&gt;{{{col5footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col6footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col6footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col6footerstyle|}}}&quot;&gt;{{{col6footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col7footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col7footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col7footerstyle|}}}&quot;&gt;{{{col7footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col8footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col8footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col8footerstyle|}}}&quot;&gt;{{{col8footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col9footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col9footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col9footerstyle|}}}&quot;&gt;{{{col9footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col10footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col10footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col10footerstyle|}}}&quot;&gt;{{{col10footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col11footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col11footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col11footerstyle|}}}&quot;&gt;{{{col11footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col12footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col12footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col12footerstyle|}}}&quot;&gt;{{{col12footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col13footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col13footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col13footerstyle|}}}&quot;&gt;{{{col13footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col14footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col14footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col14footerstyle|}}}&quot;&gt;{{{col14footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col15footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col15footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col15footerstyle|}}}&quot;&gt;{{{col15footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col16footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col16footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col16footerstyle|}}}&quot;&gt;{{{col16footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col17footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col17footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col17footerstyle|}}}&quot;&gt;{{{col17footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col18footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col18footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col18footerstyle|}}}&quot;&gt;{{{col18footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col19footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; colspan={{{col19footercolspan|1}}} style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col19footerstyle|}}}&quot;&gt;{{{col19footer}}}&lt;/td&gt;}}&lt;!--
--&gt;{{#if:{{{col20footer|}}}|&lt;td class=&quot;navbox-abovebelow&quot; style=&quot;&lt;!--
--&gt;border-left:2px solid #fdfdfd;font-weight:bold;{{{colfooterstyle|}}};{{{col20footerstyle|}}}&quot;&gt;{{{col20footer}}}&lt;/td&gt;}}&lt;!--
--&gt;}}&lt;!--
--&gt;&lt;/tr&gt;&lt;/table&gt;{{#if:{{{col1header|}}}{{{col1|}}}{{{col1footer|}}}||[[Category:Pages using navbox columns without the first column]]}}
&lt;!-- Allow a few additional groups/lists after columns --&gt;
|liststyle = {{{liststyle|}}}
|list1style = background:transparent;color:inherit;
|list3style = {{{list1style|}}}
|list4style = {{{list2style|}}}
|list5style = {{{list3style|}}}
|list6style = {{{list4style|}}}
|list7style = {{{list5style|}}}
|list8style = {{{list6style|}}}
|list3 = {{{list1|}}}
|list4 = {{{list2|}}}
|list5 = {{{list3|}}}
|list6 = {{{list4|}}}
|list7 = {{{list5|}}}
|list8 = {{{list6|}}}
|groupstyle = {{{groupstyle|}}}
|group3style = {{{group1style|}}}
|group4style = {{{group2style|}}}
|group5style = {{{group3style|}}}
|group6style = {{{group4style|}}}
|group7style = {{{group5style|}}}
|group8style = {{{group6style|}}}
|group3 = {{{group1|}}}
|group4 = {{{group2|}}}
|group5 = {{{group3|}}}
|group6 = {{{group4|}}}
|group7 = {{{group5|}}}
|group8 = {{{group6|}}}
|below = {{{below|}}}
|tracking = no
}}&lt;noinclude&gt;
{{documentation}}
&lt;!---Please add metadata to the &lt;includeonly&gt; section at the bottom of the /doc subpage---&gt;
&lt;/noinclude&gt;</text>
<sha1>b10ewbwd82j8359bz3alle9xptvhfd0</sha1>
</revision>
</page>
<page>
<title>Template:Navbox/doc</title>
<ns>10</ns>
<id>12721214</id>
<revision>
<id>822565315</id>
<parentid>822471612</parentid>
<timestamp>2018-01-27T03:13:52Z</timestamp>
<contributor>
<username>Johnuniq</username>
<id>6036800</id>
</contributor>
<comment>clean evenodd; add orphan=yes, nowrapitems=yes</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="38381">{{documentation subpage}}
&lt;!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). --&gt;
{{for|vertically-aligned navigation|Template:Sidebar}}
{{#ifeq:{{FULLPAGENAME}}|Template:Navbox|{{high-risk| 2570000+ }}}}&lt;includeonly&gt;
{{lua|Module:Navbox}}{{Template display|nomobile}}&lt;/includeonly&gt;
{{Navbox suite}}
This template allows a [[Wikipedia:Navigation template|navigational template]] to be set up relatively quickly by supplying it with one or more lists of links. It comes equipped with default styles that should work for most navigational templates. Changing the default styles is possible, but not recommended. Using this template, or one of its &quot;Navbox suite&quot; sister templates, is highly recommended for standardization of navigational templates, and for ease of use.
{{Navbox visibility}}
== Usage ==
Please remove the parameters that are left blank.
&lt;pre style=&quot;overflow: auto;&quot;&gt;{{Navbox
| name = {{subst:PAGENAME}}{{subst:void|Don't change anything on this line. It will change itself when you save.}}
| title =
| listclass = hlist
| state = {{{state|}}}
| above =
| image =
| group1 =
| list1 =
| group2 =
| list2 =
| group3 =
| list3 =
&lt;!-- ... --&gt;
| below =
}}
&lt;/pre&gt;
== Parameter list ==
{{{{PAGENAMETDOC}}
| name = Navbox/doc
| state = uncollapsed
| title = {{{title}}}
| above = {{{above}}}
| image = {{{image}}}
| group1 = {{{group1}}}
| list1 = {{{list1}}}
| group2 = {{{group2}}}
| list2 = {{{list2}}}
| list3 = {{{list3}}} ''without {{{group3}}}''
| group4 = {{{group4}}}
| list4 = {{{list4}}}
| below = {{{below}}} &lt;br /&gt; See alternate navbox formats under: [[#Layout of table|''Layout of table'']]
}}
The navbox uses lowercase parameter names, as shown in the box (''above''). The required ''name'' and ''title'' will create a one-line box if other parameters are omitted.
Notice &quot;group1&quot; (etc.) is optional, as are sections named &quot;above/below&quot;.
{{clear}}
The basic and most common parameters are as follows (see [[#Parameter descriptions|below]] for the full list):
: &lt;code&gt;name&lt;/code&gt; – the name of the template.
: &lt;code&gt;title&lt;/code&gt; – text in the title bar, such as: &lt;nowiki&gt;[[Widget stuff]]&lt;/nowiki&gt;.
: &lt;code&gt;listclass&lt;/code&gt; – a CSS class for the list cells, usually &lt;code&gt;hlist&lt;/code&gt; for horizontal lists. Alternatively, use bodyclass for the whole box.
: &lt;code&gt;state&lt;/code&gt; – controls when a navbox is expanded or collapsed.
: &lt;code&gt;titlestyle&lt;/code&gt; – a CSS style for the title-bar, such as: &lt;code&gt;background: gray;&lt;/code&gt;
: &lt;code&gt;groupstyle&lt;/code&gt; – a CSS style for the group-cells, such as: &lt;code&gt;background: #eee;&lt;/code&gt;
: &lt;code&gt;above&lt;/code&gt; – text to appear above the group/list section (could be a list of overall wikilinks).
: &lt;code&gt;image&lt;/code&gt; – an optional right-side image, coded as the whole image. Typically it is purely decorative, so it should be coded as &lt;code&gt;&lt;nowiki&gt;[[File:&lt;/nowiki&gt;&lt;var&gt;XX&lt;/var&gt;&lt;nowiki&gt;.jpg|80px|link=|alt=]]&lt;/nowiki&gt;&lt;/code&gt;.
: &lt;code&gt;imageleft&lt;/code&gt; – an optional left-side image (code the same as the &quot;image&quot; parameter).
: &lt;code&gt;group&lt;sub&gt;n&lt;/sub&gt;&lt;/code&gt; – the left-side text before list-n (if group-n omitted, list-n starts at left of box).
: &lt;code&gt;list&lt;sub&gt;n&lt;/sub&gt;&lt;/code&gt; – text listing wikilinks using a [[Help:Lists|wikilist]] format.
: &lt;code&gt;below&lt;/code&gt; – optional text to appear below the group/list section.
== Parameter descriptions ==
The following is a complete list of parameters for using {{tl|Navbox}}. In most cases, the only required parameters are &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;, and &lt;code&gt;list1&lt;/code&gt;, though [[Template:Navbox/doc#Child navboxes|child navboxes]] do not even require those to be set.
{{tl|Navbox}} shares numerous common parameter names with its sister templates, {{tl|Navbox with columns}} and {{tl|Navbox with collapsible groups}}, for consistency and ease of use. Parameters marked with an asterisk (*) are common to all three master templates.
=== Setup parameters ===
:; ''name''*
:: The name of the template, which is needed for the &quot;V&amp;nbsp;• T&amp;nbsp;• E&quot; (&quot;View&amp;nbsp;• Talk&amp;nbsp;• Edit&quot;) links to work properly on all pages where the template is used. You can enter &lt;code&gt;&lt;nowiki&gt;{{subst:PAGENAME}}&lt;/nowiki&gt;&lt;/code&gt; for this value as a shortcut. The name parameter is only mandatory if a &lt;code&gt;title&lt;/code&gt; is specified, and the &lt;code&gt;border&lt;/code&gt; parameter is not set, and the &lt;code&gt;navbar&lt;/code&gt; parameter is not used to disable the navbar.
:; ''state''* &lt;span style=&quot;font-weight:normal;&quot;&gt;[&lt;code&gt;autocollapse, collapsed, expanded, plain, off&lt;/code&gt;]&lt;/span&gt;
:* Defaults to &lt;code&gt;autocollapse&lt;/code&gt;. A navbox with &lt;code&gt;autocollapse&lt;/code&gt; will start out collapsed if there are two or more tables on the same page that use other collapsible tables. Otherwise, the navbox will be expanded. For the technically minded, see [[MediaWiki:Common.js]].
:* If set to &lt;code&gt;collapsed&lt;/code&gt;, the navbox will always start out in a collapsed state.
:* If set to &lt;code&gt;expanded&lt;/code&gt;, the navbox will always start out in an expanded state.
:* If set to &lt;code&gt;plain&lt;/code&gt;, the navbox will always be expanded with no [hide] link on the right, and the title will remain centered (by using padding to offset the &lt;small&gt;V&amp;nbsp;• T&amp;nbsp;• E&lt;/small&gt; links).
:* If set to &lt;code&gt;off&lt;/code&gt;, the navbox will always be expanded with no [hide] link on the right, but no padding will be used to keep the title centered. This is for advanced use only; the &quot;plain&quot; option should suffice for most applications where the [show]/[hide] button needs to be hidden.
: To show the box when standalone (non-included) but then auto-hide contents when in an article, put &quot;expanded&quot; inside {{tag|noinclude|p}} tags. This setting will force the box visible when standalone (even when followed by other boxes), displaying &quot;[hide]&quot;, but then it will auto-collapse the box when stacked inside an article:
:: &lt;code&gt;&lt;nowiki&gt;| state =&amp;nbsp;&lt;/nowiki&gt;&lt;/code&gt;{{tag|noinclude|content=expanded}}
: Often times, editors will want a default initial state for a navbox, which may be overridden in an article. Here is the trick to do this:
:* In your intermediate template, create a parameter also named &quot;state&quot; as a pass-through like this:
:: &lt;code&gt;&lt;nowiki&gt;| state = {{{state&lt;includeonly&gt;|your_desired_initial_state&lt;/includeonly&gt;}}}&lt;/nowiki&gt;&lt;/code&gt;
:* The {{tag|includeonly|o}}&lt;code&gt;|&lt;/code&gt; will make the template expanded when viewing the template page by itself.
::* Example 1: {{tl|Peso}} with ''autocollapse'' as the default initial state. [[Catalan peseta]] transcludes it and has only one navbox; thus, the peso navbox shows. [[Chilean peso]] has more than two navboxes; thus, the peso navbox collapses.
::* Example 2: {{tl|Historical currencies of Hungary}} with ''expanded'' as the default initial state, as such:
:::&lt;code&gt;&lt;nowiki&gt;| state = {{{state&lt;includeonly&gt;|expanded&lt;/includeonly&gt;}}}&lt;/nowiki&gt;&lt;/code&gt;
:::All transcluding articles show the content by default, unless there is a hypothetical article that specifies &lt;code&gt;&lt;nowiki&gt;{{templatename|state=collapsed}}&lt;/nowiki&gt;&lt;/code&gt; when transcluding.
::* Example 3: {{tl|Tourism}} with ''collapsed'' as the default initial state, as such:
:::&lt;code&gt;&lt;nowiki&gt;| state = {{{state&lt;includeonly&gt;|collapsed&lt;/includeonly&gt;}}}&lt;/nowiki&gt;&lt;/code&gt;
:::All transcluding articles will show the template as collapsed by default, but the template will still be uncollapsed when displayed on its own page.
:* The template {{tl|Collapsible option}} explains how to use the &lt;code&gt;state&lt;/code&gt; parameter. It can be added to a {{tag|noinclude|p}} section after the template definition or to the instructions on the {{tl|documentation subpage}}.
:; ''navbar''*
:: If set to &lt;code&gt;plain&lt;/code&gt;, the &lt;span style=&quot;font-size: 88%;&quot;&gt;V&amp;nbsp;• T&amp;nbsp;• E&lt;/span&gt; links on the left side of the titlebar will not be displayed, and padding will be automatically used to keep the title centered. Use &lt;code&gt;off&lt;/code&gt; to remove the &lt;span style=&quot;font-size: 88%;&quot;&gt;V&amp;nbsp;• T&amp;nbsp;• E&lt;/span&gt; links, but not apply padding (this is for advanced use only; the &quot;plain&quot; option should suffice for most applications where a navbar is not desired). It is highly recommended that one not hide the navbar, in order to make it easier for users to edit the template, and to keep a standard style across pages.
:; ''border''*
:: ''See later section on [[#Child navboxes|using navboxes within one another]] for examples and a more complete description.'' If set to &lt;code&gt;child&lt;/code&gt; or &lt;code&gt;subgroup&lt;/code&gt;, then the navbox can be used as a borderless child that fits snugly in another navbox. The border is hidden and there is no padding on the sides of the table, so it fits into the ''list'' area of its parent navbox. If set to &lt;code&gt;none&lt;/code&gt;, then the border is hidden and padding is removed, and the navbox may be used as a child of another container (do not use the &lt;code&gt;none&lt;/code&gt; option inside of another navbox; similarly, only use the &lt;code&gt;child&lt;/code&gt;/&lt;code&gt;subgroup&lt;/code&gt; option inside of another navbox). If set to anything else (default), then a regular navbox is displayed with a 1px border. An alternate way to specify the border to be a subgroup style is like this (i.e. use the first unnamed parameter instead of the named ''border'' parameter):
::: &lt;code&gt;&lt;nowiki&gt;{{Navbox|child&lt;/nowiki&gt;&lt;/code&gt;
:::: &lt;code&gt;...&lt;/code&gt;
::: &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
=== Cells ===
:; ''title''*
:: Text that appears centered in the top row of the table. It is usually the template's topic, i.e. a succinct description of the body contents. This should be a single line, but if a second line is needed, use &lt;code&gt;&lt;nowiki&gt;{{-}}&lt;/nowiki&gt;&lt;/code&gt; to ensure proper centering. This parameter is technically not mandatory, but using {{tl|Navbox}} is rather pointless without a title.
:; ''above''*
:: A full-width cell displayed between the titlebar and first group/list, i.e. ''above'' the template's body (groups, lists and image). In a template without an image, ''above'' behaves in the same way as the ''list1'' parameter without the ''group1'' parameter.
:; ''group&lt;sub&gt;n&lt;/sub&gt;''*
:: (i.e. ''group1'', ''group2'', etc.) If specified, text appears in a header cell displayed to the left of ''list&lt;sub&gt;n&lt;/sub&gt;''. If omitted, ''list&lt;sub&gt;n&lt;/sub&gt;'' uses the full width of the table.
:; ''list&lt;sub&gt;n&lt;/sub&gt;''*
:: (i.e. ''list1'', ''list2'', etc.) The body of the template, usually a list of links. Format is inline, although the text can be entered on separate lines if the entire list is enclosed within &lt;code&gt;&lt;nowiki&gt;&lt;div&gt; &lt;/div&gt;&lt;/nowiki&gt;&lt;/code&gt;. At least one ''list'' parameter is required; each additional ''list'' is displayed in a separate row of the table. Each ''list&lt;sub&gt;n&lt;/sub&gt;'' may be preceded by a corresponding ''group&lt;sub&gt;n&lt;/sub&gt;'' parameter, if provided (see below).
::Entries should be separated using a [[newline]] and an [[asterisk]] (*). If instead two asterisks are used, it provides [[Nesting (computing)|nesting]] within the previous entry by enclosing the entry with brackets. Increasing the number of asterisks used increases the number of brackets around entries.
:; ''image''*
:: An image to be displayed in a cell below the title and to the right of the body (the groups/lists). For the image to display properly, the ''list1'' parameter must be specified. The ''image'' parameter accepts standard wikicode for displaying an image, ''e.g.'':
::: &lt;code&gt;&lt;nowiki&gt;[[File:&lt;/nowiki&gt;&lt;var&gt;XX&lt;/var&gt;&lt;nowiki&gt;.jpg|80px|link=|alt=]]&lt;/nowiki&gt;&lt;/code&gt;
::: nb: including &quot;|right&quot; will produce the usual left margin to provide separation from the list items and [[Zebra striping (computer graphics)|zebra striping]].
:; ''imageleft''*
:: An image to be displayed in a cell below the title and to the left of the body (lists). For the image to display properly, the ''list1'' parameter must be specified and no groups can be specified. It accepts the same sort of parameter that ''image'' accepts.
:; ''below''*
:: A full-width cell displayed ''below'' the template's body (groups, lists and image). In a template without an image, ''below'' behaves in the same way as the template's final ''list&lt;sub&gt;n&lt;/sub&gt;'' parameter without a ''group&lt;sub&gt;n&lt;/sub&gt;'' parameter. For an example of the ''below'' parameter in use, see {{oldid|Main Page|352612160|this}} version of {{tl|Lists of the provinces and territories of Canada}}.
=== Style parameters ===
Styles are generally advised against, to maintain consistency among templates and pages in Wikipedia; but the option to modify styles is given.
:; ''bodystyle''*
:: Specifies [[Cascading Style Sheets|CSS]] styles to apply to the template body. This option should be used sparingly as it can lead to visual inconsistencies. Examples:
::: &lt;code&gt;bodystyle = background: #''nnnnnn'';&lt;/code&gt;
::: &lt;code&gt;bodystyle = width: ''N''&amp;nbsp;[em/%/px or width: auto];&lt;/code&gt;
::: &lt;code&gt;bodystyle = float: [''left/right/none''];&lt;/code&gt;
::: &lt;code&gt;bodystyle = clear: [''right/left/both/none''];&lt;/code&gt;
:; ''basestyle''*
:: CSS styles to apply to the ''title'', ''above'', ''below'', and ''group'' cells all at once. The styles are not applied to ''list'' cells. This is convenient for easily changing the basic color of the navbox without having to repeat the style specifications for the different parts of the navbox. Examples:
::: &lt;code&gt;basestyle = background: lightskyblue;&lt;/code&gt;
:; ''titlestyle''*
:: [[Cascading Style Sheets|CSS]] styles to apply to ''title'', most often the titlebar's background color:
::: &lt;code&gt;titlestyle = background: ''#nnnnnn'';&lt;/code&gt;
::: &lt;code&gt;titlestyle = background: ''name'';&lt;/code&gt;
::: &lt;code&gt;titlestyle = background: none;&lt;/code&gt; — for no background color
:; ''groupstyle''*
:: CSS styles to apply to the ''groupN'' cells. This option overrides any styles that are applied to the entire table. Examples:
::: &lt;code&gt;groupstyle = background: #''nnnnnn'';&lt;/code&gt;
::: &lt;code&gt;groupstyle = text-align: [''left/center/right''];&lt;/code&gt;
::: &lt;code&gt;groupstyle = vertical-align: [''top/middle/bottom''];&lt;/code&gt;
:; ''group&lt;sub&gt;n&lt;/sub&gt;style''*
:: CSS styles to apply to a specific group, in addition to any styles specified by the ''groupstyle'' parameter. This parameter should only be used when absolutely necessary in order to maintain standardization and simplicity. Examples:
::: &lt;code&gt;group3style = background: red; color: white;&lt;/code&gt;
:; ''groupwidth''
:: A number and unit specifying a uniform width for the group cells, in cases where little content in the list cells may cause group cells to be too wide. No default. However, may be overridden by the ''group(n)style'' parameter. Examples:
::: &lt;code&gt;groupwidth = 9em&lt;/code&gt;
:; ''liststyle''*
:: CSS styles to apply to all lists. Overruled by the ''oddstyle'' and ''evenstyle'' parameters (if specified) hereafter. When using backgound colors in the navbox, see the [[#Intricacies|note hereafter]].
:; ''list&lt;sub&gt;n&lt;/sub&gt;style''*
:: CSS styles to apply to a specific list, in addition to any styles specified by the ''liststyle'' parameter. This parameter should only be used when absolutely necessary in order to maintain standardization and simplicity. Examples:
::: &lt;code&gt;list5style = background: #ddddff;&lt;/code&gt;
:; ''listpadding''*
:: A number and unit specifying the padding in each ''list'' cell. The ''list'' cells come equipped with a default padding of 0.25em on the left and right, and 0 on the top and bottom. Due to complex technical reasons, simply setting &quot;liststyle = padding: 0.5em;&quot; (or any other padding setting) will not work. Examples:
::: &lt;code&gt;listpadding = 0.5em 0;&lt;/code&gt; (sets 0.5em padding for the top/bottom, and 0 padding for the left/right.)
::: &lt;code&gt;listpadding = 0;&lt;/code&gt; (removes all list padding.)
:; ''oddstyle''
:; ''evenstyle''
:: Applies to odd/even list numbers. Overrules styles defined by ''liststyle''. The default behavior is to add striped colors (white and gray) to odd/even rows, respectively, in order to improve readability. These should not be changed except in extraordinary circumstances.
:; ''evenodd'' &lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;code&gt;[swap, even, odd, off]&lt;/code&gt;&lt;/span&gt;
:: If set to &lt;code&gt;swap&lt;/code&gt;, then the automatic striping of even and odd rows is reversed. Normally, even rows get a light gray background for striping; when this parameter is used, the odd rows receive the gray striping instead of the even rows. Setting to &lt;code&gt;even&lt;/code&gt; or &lt;code&gt;odd&lt;/code&gt; sets all rows to have that striping color. Setting to &lt;code&gt;off&lt;/code&gt; disables automatic row striping.
:; ''abovestyle''*
:; ''belowstyle''*
:: CSS styles to apply to the top cell (specified via the ''above'' parameter) and bottom cell (specified via the ''below'' parameter). Typically used to set background color or text alignment:
::: &lt;code&gt;abovestyle = background: #''nnnnnn'';&lt;/code&gt;
::: &lt;code&gt;abovestyle = text-align: [''left/center/right''];&lt;/code&gt;
::: &lt;code&gt;belowstyle = background: #''nnnnnn'';&lt;/code&gt;
::: &lt;code&gt;belowstyle = text-align: [''left/center/right''];&lt;/code&gt;
:; ''imagestyle''*
:; ''imageleftstyle''*
:: CSS styles to apply to the cells where the image/imageleft sits. These styles should only be used in exceptional circumstances, usually to fix width problems if the width of groups is set and the width of the image cell grows too large. Examples:
::: &lt;code&gt;imagestyle = width:5em;&lt;/code&gt;
===== Default styles =====
The style settings listed here are those that editors using the navbox change most often. The other more complex style settings were left out of this list to keep it simple. Most styles are set in [[MediaWiki:Common.css]].
&lt;source lang=&quot;css&quot;&gt;
bodystyle = background: #fdfdfd; width: 100%; vertical-align: middle;
titlestyle = background: #ccccff; padding-left: 1em; padding-right: 1em; text-align: center;
abovestyle = background: #ddddff; padding-left: 1em; padding-right: 1em; text-align: center;
belowstyle = background: #ddddff; padding-left: 1em; padding-right: 1em; text-align: center;
groupstyle = background: #ddddff; padding-left: 1em; padding-right: 1em; text-align: right;
liststyle = background: transparent; text-align: left/center;
oddstyle = background: transparent;
evenstyle = background: #f7f7f7;
&lt;/source&gt;
Since ''liststyle'' and ''oddstyle'' are transparent, odd lists have the color of the ''bodystyle'', which defaults to #fdfdfd (white with a hint of gray). A list defaults to &lt;code&gt;text-align: left;&lt;/code&gt; if it has a group, if not it defaults to &lt;code&gt;text-align: center;&lt;/code&gt;. Since only ''bodystyle'' has a vertical-align all the others inherit its &lt;code&gt;vertical-align: middle;&lt;/code&gt;.
=== Advanced parameters ===
:; ''bodyclass''
:; ''aboveclass''
:; ''groupclass''
:; ''listclass''
:; ''belowclass''
:: This enables attaching a CSS class to group or list cells. The most common use for ''listclass'' is to give it the &lt;code&gt;hlist&lt;/code&gt; class that will cause lists to render horizontally. All these parameters accept the &lt;code&gt;hlist&lt;/code&gt; class, but if more than one parameter is used for &lt;code&gt;hlist&lt;/code&gt;, use {{para|bodyclass|hlist}} instead.
:; ''titlegroup''
:: This puts a group in the title area, with the same default styles as ''group&lt;sub&gt;n&lt;/sub&gt;''. It should be used only in exceptional circumstances (usually advanced meta-templates) and its use requires some knowledge of the internal code of {{tl|Navbox}}; you should be ready to manually set up CSS styles to get everything to work properly if you wish to use it. If you think you have an application for this parameter, it might be best to change your mind, or consult the talk page first.
:; ''titlegroupstyle''
:: The styles for the titlegroup cell.
:; ''innerstyle''
:: A very advanced parameter to be used ''only'' for advanced meta-templates employing the navbox. Internally, the navbox uses an outer table to draw the border, and then an inner table for everything else (title/above/groups/lists/below/images, etc.). The ''style''/''bodystyle'' parameter sets the style for the outer table, which the inner table inherits, but in advanced cases (meta-templates) it may be necessary to directly set the style for the inner table. This parameter provides access to that inner table so styles can be applied. Use at your own risk.
:; ''nowrapitems''
:: Setting &lt;code&gt;|nowrapitems=yes&lt;/code&gt; applies nowrap to each line in a list item, and to any &lt;code&gt;above&lt;/code&gt; or &lt;code&gt;below&lt;/code&gt; item.
:; ''orphan''
:: Setting &lt;code&gt;|orphan=yes&lt;/code&gt; in a child navbox fixes odd/even striping and removes [[:Category:Navbox orphans]].
==== Microformats ====
:; ''bodyclass''
:: This parameter is inserted into the &quot;class&quot; attribute for the navbox as a whole.
:; ''titleclass''
:: This parameter is inserted into the &quot;class&quot; attribute for the navbox's title caption.
This template supports the addition of microformat information. This is done by adding &quot;class&quot; attributes to various data cells, indicating what kind of information is contained within. To flag a navbox as containing [[hCard]] information about a person, for example, add the following parameter:
&lt;pre&gt;
| bodyclass = vcard
&lt;/pre&gt;
''and''
&lt;pre&gt;
| titleclass = fn
&lt;/pre&gt;
''or'' (for example):
&lt;pre&gt;&lt;nowiki&gt;
| title = The books of &lt;span class=&quot;fn&quot;&gt;[[Iain Banks]]&lt;/span&gt;
&lt;/nowiki&gt;&lt;/pre&gt;
...and so forth.
See [[Wikipedia:WikiProject Microformats]] for more information on adding microformat information to Wikipedia, and [[microformat]] for more information on microformats in general.
== Layout of table ==
===Without image, above and below===
Table generated by {{tl|Navbox}} '''without''' ''image'', ''above'' and ''below'' parameters (gray list background color added for illustration only):
{{{{PAGENAMETDOC}}
| name = Navbox/doc
| state = uncollapsed
| liststyle = background: silver;
| title = {{{title}}}
| group1 = {{{group1}}}
| list1 = {{{list1}}}
| group2 = {{{group2}}}
| list2 = {{{list2}}}
| list3 = {{{list3}}} ''without {{{group3}}}''
| group4 = {{{group4}}}
| list4 = {{{list4}}}
}}
===With image, above and below===
Table generated by {{tl|Navbox}} '''with''' ''image'', ''above'' and ''below'' parameters (gray list background color added for illustration only):
{{{{PAGENAMETDOC}}
| name = Navbox/doc
| state = uncollapsed
| liststyle = background: silver;
| image = {{{image}}}
| title = {{{title}}}
| above = {{{above}}}
| group1 = {{{group1}}}
| list1 = {{{list1}}}
| group2 = {{{group2}}}
| list2 = {{{list2}}}
| list3 = {{{list3}}} ''without {{{group3}}}''
| group4 = {{{group4}}}
| list4 = {{{list4}}}
| below = {{{below}}}
}}
===With image and without groups===
Table generated by {{tl|Navbox}} '''with''' ''image'', ''imageleft'', ''lists'', and '''without''' ''groups'', ''above'', ''below'' (gray list background color added for illustration only):
{{{{PAGENAMETDOC}}
| name = Navbox/doc
| state = uncollapsed
| liststyle = background: silver;
| image = {{{image}}}
| imageleft = {{{imageleft}}}
| title = {{{title}}}
| list1 = {{{list1}}}
| list2 = {{{list2}}}
| list3 = {{{list3}}}
| list4 = {{{list4}}}
}}
== Examples ==
&lt;!-- Please do not encourage folks to use &lt;div&gt; within Navboxes as (unless handled carefully) they can negate liststyles/groupstyles/etc. settings. --&gt;
=== No image ===
&lt;source lang=&quot;moin&quot; style=&quot;overflow: auto;&quot;&gt;
{{Navbox
| name = Navbox/doc
| title = [[MSC Malaysia]]
| listclass = hlist
| group1 = Centre
| list1 =
* [[Cyberjaya]]
| group2 = Area
| list2 =
* [[Klang Valley]]
| group3 = Major landmarks
| list3 =
* [[Petronas Twin Towers]]
* [[Kuala Lumpur Tower]]
* [[Kuala Lumpur Sentral]]
* [[Technology Park Malaysia]]
* [[Putrajaya]]
* [[Cyberjaya]]
* [[Kuala Lumpur International Airport]]
| group4 = Infrastructure
| list4 =
* [[Express Rail Link]]
* [[KL-KLIA Dedicated Expressway]]
| group5 = Prime applications
| list5 =
* [[E-Government]]
* [[MyKad]]
}}
&lt;/source&gt;
{{{{PAGENAMETDOC}}
| name = Navbox/doc
| state = uncollapsed
| title = [[MSC Malaysia]]
| listclass = hlist
| group1 = Centre
| list1 =
* [[Cyberjaya]]
| group2 = Area
| list2 =
* [[Klang Valley]]
| group3 = Major landmarks
| list3 =
* [[Petronas Twin Towers]]
* [[Kuala Lumpur Tower]]
* [[Kuala Lumpur Sentral]]
* [[Technology Park Malaysia]]
* [[Putrajaya]]
* [[Cyberjaya]]
* [[Kuala Lumpur International Airport]]
| group4 = Infrastructure
| list4 =
* [[Express Rail Link]]
* [[KL-KLIA Dedicated Expressway]]
| group5 = Prime applications
| list5 =
* [[E-Government]]
* [[MyKad]]
}}
=== With image, without groups ===
&lt;source lang=&quot;moin&quot; style=&quot;overflow: auto;&quot;&gt;
{{Navbox
| name = Navbox/doc
| title = [[MSC Malaysia]]
| listclass = hlist
| image = [[File:Flag of Malaysia.svg|80px|link=|alt=]]
| list1 =
* [[Petronas Twin Towers]]
* [[Kuala Lumpur Tower]]
* [[Kuala Lumpur Sentral]]
* [[Technology Park Malaysia]]
* [[Putrajaya]]
* [[Cyberjaya]]
* [[Kuala Lumpur International Airport]]
}}
&lt;/source&gt;
{{{{PAGENAMETDOC}}
| name = Navbox/doc
| title = [[MSC Malaysia]]
| listclass = hlist
| image = [[File:Flag of Malaysia.svg|80px|link=|alt=]]
| list1 =
* [[Petronas Twin Towers]]
* [[Kuala Lumpur Tower]]
* [[Kuala Lumpur Sentral]]
* [[Technology Park Malaysia]]
* [[Putrajaya]]
* [[Cyberjaya]]
* [[Kuala Lumpur International Airport]]
}}
=== With two images, without groups, multiple lists ===
&lt;source lang=&quot;moin&quot; style=&quot;overflow: auto;&quot;&gt;
{{Navbox
| name = Navbox/doc
| title = [[MSC Malaysia]]
| listclass = hlist
| image = [[File:Flag of Malaysia.svg|80px|link=|alt=]]
| imageleft = [[File:Flag of Malaysia.svg|80px]]
| list1 =
* [[Petronas Twin Towers]]
* [[Kuala Lumpur Tower]]
* [[Kuala Lumpur Sentral]]
| list2 =
* [[Express Rail Link]]
* [[KL-KLIA Dedicated Expressway]]
| list3 =
* [[E-Government]]
* [[MyKad]]
| list4 =
* [[Klang Valley]]
}}
&lt;/source&gt;
{{{{PAGENAMETDOC}}
| name = Navbox/doc
| title = [[MSC Malaysia]]
| listclass = hlist
| image = [[File:Flag of Malaysia.svg|80px|link=|alt=]]
| imageleft = [[File:Flag of Malaysia.svg|80px]]
| list1 =
* [[Petronas Twin Towers]]
* [[Kuala Lumpur Tower]]
* [[Kuala Lumpur Sentral]]
| list2 =
* [[Express Rail Link]]
* [[KL-KLIA Dedicated Expressway]]
| list3 =
* [[E-Government]]
* [[MyKad]]
| list4 =
* [[Klang Valley]]
}}
=== With image, groups, above, below ===
&lt;source lang=&quot;moin&quot; style=&quot;overflow: auto;&quot;&gt;
{{Navbox
| name = Navbox/doc
| title = [[MSC Malaysia]]
| listclass = hlist
| above = Above text goes here
| image = [[File:Flag of Malaysia.svg|80px|link=|alt=]]
| group1 = Centre
| list1 =
* [[Cyberjaya]]
| group2 = Area
| list2 =
* [[Klang Valley]]
| group3 = Major landmarks
| list3 =
* [[Petronas Twin Towers]]
* [[Kuala Lumpur Tower]]
* [[Kuala Lumpur Sentral]]
* [[Technology Park Malaysia]]
* [[Putrajaya]]
* [[Cyberjaya]]
| group4 = Infrastructure
| list4 =
* [[Express Rail Link]]
* [[KL-KLIA Dedicated Expressway]]
| group5 = Prime applications
| list5 =
* [[E-Government]]
* [[MyKad]]
| below = Below text goes here
}}
&lt;/source&gt;
{{{{PAGENAMETDOC}}
| name = Navbox/doc
| title = [[MSC Malaysia]]
| listclass = hlist
| above = Above text goes here
| image = [[File:Flag of Malaysia.svg|80px|link=|alt=]]
| group1 = Centre
| list1 =
* [[Cyberjaya]]
| group2 = Area
| list2 =
* [[Klang Valley]]
| group3 = Major landmarks
| list3 =
* [[Petronas Twin Towers]]
* [[Kuala Lumpur Tower]]
* [[Kuala Lumpur Sentral]]
* [[Technology Park Malaysia]]
* [[Putrajaya]]
* [[Cyberjaya]]
| group4 = Infrastructure
| list4 =
* [[Express Rail Link]]
* [[KL-KLIA Dedicated Expressway]]
| group5 = Prime applications
| list5 =
* [[E-Government]]
* [[MyKad]]
| below = Below text goes here
}}
== Child navboxes ==
{{Selfref|For additional examples, see the [[Template:Navbox/testcases|Navbox testcases page]].}}
It is possible to place multiple navboxes within a single border by using &quot;child&quot; as the first parameter, or by setting the ''border'' parameter. The basic code for doing this is as follows (which adds a subgroup for the first group/list area):
&lt;pre style=&quot;overflow: auto;&quot;&gt;
{{Navbox
| name = {{subst:PAGENAME}}
| title = Title
| group1 = [optional]
| list1 = {{Navbox|child
...child navbox parameters...
}}
...
}}
&lt;/pre&gt;
=== Subgroups example ===
This example shows two subgroups created using &lt;code&gt;child&lt;/code&gt; as the first unnamed parameter. The striping is alternated automatically. To remove the striping altogether, you can set &lt;code&gt;liststyle = background:transparent;&lt;/code&gt; in each of the navboxes.
{{{{PAGENAMETDOC}}
| name = Navbox/doc
| image = [[File:Flag of the United States.svg|100px|link=|alt=]]
| state = uncollapsed
| title = Multiple subgroup example
| above = Above
| below = Below
| group1 = Group1
| list1 = List1
| group2 = Group2
| list2 =
{{{{PAGENAMETDOC}}|child
| group1 = Group2.1
| list1 = List1
| group2 = Group2.2
| list2 = List2
| group3 = Group2.3
| list3 = List3
}}
| group3 = Group3
| list3 = List3
| group4 = Group4
| list4 =
{{{{PAGENAMETDOC}}|child
| group1 = Group4.1
| list1 = List1
| group2 = Group4.2
| list2 = List2
| group3 = Group4.3
| list3 = List3
}}
}}
=== Multiple show/hides in a single container ===
{{main|Template:Navbox with collapsible groups}}
The example below is generated using a regular navbox for the main container, then its list1, list2, and list3 parameters each contain another navbox, with &lt;code&gt;1 = child&lt;/code&gt; set. The view (v), discuss (d), edit (e) navbar links are hidden using &lt;code&gt;navbar = plain&lt;/code&gt; for each of them, or could be suppressed by just leaving out the ''name'' parameter (child navboxes do not require the name parameter to be set, unlike regular navboxes).
{{{{PAGENAMETDOC}}
| name = Navbox/doc
| title = [[File:Blason France moderne.svg|x17px|link=|alt=]] [[File:Flag of France.svg|x17px|link=|alt=]] [[French colonial empire|Former French overseas empire]]
| state = uncollapsed
| list1 = {{{{PAGENAMETDOC}}|child
| navbar = plain
| title = [[French colonial empire|Former French colonies]] in [[Africa]] and the [[Indian Ocean]]
| listclass = hlist
| group1 = [[Mahgreb]]
| list1 =
* [[French rule in Algeria|Algeria]]
* [[French Morocco|Morocco]] &lt;small&gt;([[Arguin|Arguin Island]])&lt;/small&gt;
* [[History of Tunisia|Tunisia]]
| group2 = [[French West Africa]]
| list2 =
* [[History of Côte d'Ivoire#French Period|Côte d'Ivoire]]
* [[French Dahomey|Dahomey]]
* [[French Sudan]]
* [[French Guinea|Guinea]]
* [[History of Mauritania#French colonization and post-colonial history|Mauritania]]
* [[History of Niger#Colonization|Niger]]
* [[History of Senegal|Senegal]]
* [[French Upper Volta|Upper Volta]]
* [[French Togoland]]
* [[James Island (The Gambia)|James Island]]
| group3 = [[French Equatorial Africa]]
| list3 =
* [[Colonial Chad|Chad]]
* [[History of Gabon|Gabon]]
* [[History of the Republic of the Congo|Middle Congo]]
* [[Oubangui-Chari]]
| group4 = [[Comoros]]
| list4 =
* [[Anjouan]]
* [[Grande Comore]]
* [[Mohéli]]
* [[History of Djibouti#French Interest|French Somaliland (Djibouti)]]
* [[History of Madagascar#French control|Madagascar]]
* [[Mauritius|Ile de France]]
* [[Seychelles]]
}}
| list2 = {{{{PAGENAMETDOC}}|child
| navbar = plain
| title = [[French colonial empire|Former French colonies]] in the [[Americas]]
| listclass = hlist
| list1 =
* [[New France]]{{spaces|2}}&lt;small&gt;([[Acadia]], [[Louisiana (New France)|Louisiana]], [[Canada, New France|Canada]], [[Newfoundland (island)|Terre Neuve]]) 1655–1763 &lt;/small&gt;
| list2 =
* [[Inini]]
* [[Berbice]]
* [[Saint-Domingue]]
* &lt;small&gt;[[Haiti]]&lt;/small&gt;
* [[Tobago]]
* [[History of the British Virgin Islands|Virgin Islands]]
* [[France Antarctique]]
* [[France Équinoxiale]]
| below = [[French West India Company]]
}}
| list3 = {{{{PAGENAMETDOC}}|child
| navbar = plain
| title = [[French colonial empire|Former French colonies]] in [[Asia]] and [[Oceania]]
| listclass = hlist
| group1 = [[French India]]
| list1 =
* [[Chandernagor]]
* [[Coromandel Coast]]
* [[History of Chennai|Madras]]
* [[Mahé, India|Mahé]]
* [[History of Pondicherry|Pondichéry]]
* [[Karaikal]]
* [[Yanam (India)|Yanaon]]
| group2 = [[French Indochina]]
| list2 =
* [[Colonial Cambodia|Cambodia]]
* [[History of Laos to 1945#French Laos|Laos]]
* [[French Indochina|Vietnam]] &lt;small&gt;([[Annam (French colony)|Annam]], [[Cochinchina]], [[Tonkin]])&lt;/small&gt;
| group3 = Other Asian
| list3 =
* [[Alawite State|Alaouites]]
* [[Republic of Hatay|Alexandretta-Hatay]]
* [[Sri Lanka|Ceylon]]
* [[Kwangchowan]]
| group4 = [[Oceania]]
| list4 =
* [[New Hebrides]]
** [[History of Vanuatu|Vanuatu]]
| below = [[French East India Company]]
}}
}}
== Relationship with other Navbox templates ==
This navbox template is specifically designed to work in conjunction with two other sister templates: {{tl|Navbox with columns}} and {{tl|Navbox with collapsible groups}}. All three of these templates share common parameters for consistency and ease of use (such parameters are marked with an asterisk (*) in the [[#Parameter descriptions|parameter descriptions]] list hereinbefore). Most importantly, each template can be used as a child of one another (by using the {{para|border|child}} parameter, or by specifying the first unnamed parameter to be &lt;code&gt;child&lt;/code&gt;. For example: &lt;code&gt;&lt;nowiki&gt;{{Navbox|child ...}}&lt;/nowiki&gt;&lt;/code&gt;, &lt;code&gt;&lt;nowiki&gt;{{Navbox with columns|child ...}}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{Navbox with collapsible groups|child ...}}&lt;/nowiki&gt;&lt;/code&gt;.)
== Technical details ==
* This template uses CSS classes for most of its looks, thus it is fully skinnable.
* Internally this meta template uses HTML markup instead of wiki markup for the table code. That is the usual way we make meta templates since wiki markup has several drawbacks. For instance it makes it harder to use [[m:Help:ParserFunctions|parser functions]] and special characters in parameters.
* For more technical details see the [[{{TALKPAGENAME}}|talk page]], the CSS classes in [[MediaWiki:Common.css]] and the collapsible table used to hide the box in [[MediaWiki:Common.js]].
=== Intricacies ===
* The 2px wide border between groups and lists is drawn using the border-left property of the list cell. Thus, if you wish to change the background color of the template (for example &lt;code&gt;bodystyle = background:purple;&lt;/code&gt;), then you'll need to make the border-left-color match the background color (i.e. &lt;code&gt;liststyle = border-left-color: purple;&lt;/code&gt;). If you wish to have a border around each list cell, then the 2px border between the list cells and group cells will disappear; you'll have to come up with your own solution.
* The list cell width is initially set to 100%. Thus, if you wish to manually set the width of group cells, you'll need to also specify the liststyle to have width: auto. If you wish to set the group width and use images, it's up to you to figure out the CSS in the groupstyle, liststyle, imagestyle, and imageleftstyle parameters to get everything to work correctly. Example of setting group width:
:: &lt;code&gt;groupstyle = width: 10em;&lt;/code&gt;
:: &lt;code&gt;liststyle = width: auto;&lt;/code&gt;
* Adjacent navboxes have only a 1 pixel border between them (except in IE 6, which doesn't support the necessary CSS). If you set the top or bottom margin of &lt;code&gt;style/bodystyle&lt;/code&gt;, then this will not work.
* The default margin-left and margin-right of the outer navbox table are set to &quot;auto;&quot;. If you wish to use navbox as a float, you need to manually set the margin-left and margin-right values, because the auto margins interfere with the float option. For example, add the following code to use the navbox as a float:
::&lt;code&gt;bodystyle = width: 22em; float: right; margin-left: 1em; margin-right: 0;&lt;/code&gt;
=== Copying to other projects or wikis? ===
Using this template on other wikis requires [[HTML Tidy]] to be turned on. A version that does not require Tidy can be found at [[Wikipedia:WikiProject Transwiki/Template:Navbox]]. (That version generally shouldn't be used here on the English Wikipedia.) More detailed information on copying {{tlf|Navbox}} to other wikis can be found on the [[Template talk:Navbox|talk page]].
=== Known issues ===
# If the heading of the navbox spans more than one line, the second line will be displayed to the right of center. This can be avoided by hard-coding linebreaks with {{tag|br|single|params=clear=&quot;all&quot;}}.
# In Internet Explorer 8 and 9, there is a bug when using &lt;code&gt;hlist&lt;/code&gt;; navbox will fail to wrap the list to the next line if the list items start with an image, causing navbox to extend its width outside the screen. This can be fixed by adding &lt;code&gt;&amp;amp;nbsp;&lt;/code&gt; in front of the images.
# Excessive use of the '''unsubstituted''' {{tlx|•}} template as a delimiter, can in extreme cases cause the wiki page rendering to fail&amp;nbsp;— there is a limit to the number of templates that can be used on a page (example [[Ketamine]] where the inclusion of eleven Navboxes with hundreds of bullets caused the page load not to complete, only the substitution of the bullets in those navboxes cured the problem). Use of the &lt;code&gt;hlist&lt;/code&gt; class avoids the delimiter transclusion issue altogether, as the delimiters are rendered via CSS.
== See also ==
* {{tl|Otherarticles}} – a small navbox based on an existing category
* {{tl|Navbar}} – Used for the navigation links in navbox.
* {{tl|Nobold}} – To display text at normal font-weight within a context where the default font-weight is bold, e.g. header cells in tables.
* {{tl|Sidebar}} – Vertically-aligned navigation templates.
* [[Template:Navbox/testcases]] – For additional examples of template code.
* [[Wikipedia:Line-break handling]] – The how-to guide about how to handle word wraps (line breaks) on Wikipedia, such as the wrapping of the link lists used in navboxes.
* {{tl|Nowrap begin}}, {{tl|·}} and {{tl|•}} are '''deprecated''' in favor of the &lt;code&gt;hlist&lt;/code&gt; class for formatting lists. See [[Template:Flatlist#Technical details|Flatlist]] for a technical explanation of how &lt;code&gt;hlist&lt;/code&gt; works.
{{Navigation templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories go below this line, please; interwikis go to Wikidata, thank you! --&gt;
[[Category:Navigational boxes| ]]
[[Category:Templates generating microformats]]
[[Category:Wikipedia metatemplates]]
[[Category:Exclude in print]]
}}&lt;/includeonly&gt;</text>
<sha1>la8mjufc2ioqpdz7q475saar4rb40e1</sha1>
</revision>
</page>
<page>
<title>Template:Navigation templates</title>
<ns>10</ns>
<id>8409444</id>
<revision>
<id>822294329</id>
<parentid>799470350</parentid>
<timestamp>2018-01-25T15:17:47Z</timestamp>
<contributor>
<ip>46.226.187.198</ip>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1762">{| class=&quot;wikitable hlist&quot; style=&quot;margin-left: auto; margin-right: auto; width: auto; text-align: center; font-size: 90%;&quot;
|+ &lt;span style=&quot;font-size: 130%;&quot;&gt;Navigation templates comparison&lt;/span&gt;
|- style=&quot;line-height: 10pt;&quot;
! style=&quot;text-align: left; padding-left: 4px; font-size: 111%;&quot; | {{Navbar|Navigation templates|plain=1}}
! Collapsible !! Header color
! Image !! Groups !! Style (body) &lt;br /&gt; parameter/s !! Examples
|-
| style=&quot;text-align: left;&quot; | {{tl|Navbox}}
| collapsible || style=&quot;background: #ccf;&quot; | navbox
| Left/right of body || Yes || Yes ||
* {{tl|Solar System}}
* {{tl|Governance of Greater London}}
|-
| style=&quot;text-align: left;&quot; | {{tl|Navbox with collapsible groups}}
| collapsible || style=&quot;background: #ccf;&quot; | navbox
| Left/right of body and/or in each list || Yes || Yes ||
* {{tl|Scouting}}
* {{tl|University of Michigan}}
|-
| style=&quot;text-align: left;&quot; | {{tl|Navbox with columns}}
| collapsible || style=&quot;background: #ccf;&quot; | navbox
| Left/right of columns || No || Yes ||
* {{tl|Current U.S. Senators}}
* {{tl|Historical regions of the Czech Republic}}
|}
{| class=&quot;wikitable&quot; style=&quot;margin-left: auto; margin-right: auto; width: auto; text-align: center; font-size: 90%;&quot;
|+ &lt;span style=&quot;font-size: 130%;&quot;&gt;Collapsible attributes&lt;/span&gt;
|- style=&quot;line-height: 10pt;&quot;
! Type !! CSS classes !! JavaScript !! Collapses when !! Custom &lt;br /&gt; initial&amp;nbsp;state !! Nesting
|-
| style=&quot;text-align:left;&quot; | [[Help:Collapsing|Collapsible tables]]
| collapsible
| Defined in [[MediaWiki:Common.js|Common.js]]
| 2 or more autocollapse on page || Yes || Yes
|}&lt;noinclude&gt;
{{documentation}}
[[Category:Navigational boxes| ]]
[[Category:Documentation shared content templates]]
&lt;/noinclude&gt;&lt;noinclude&gt;
{{convert to use Navbox}}&lt;/noinclude&gt;</text>
<sha1>8ygdkpfifiqx3k0rzy8wx6mbwzgibx2</sha1>
</revision>
</page>
<page>
<title>Template:No</title>
<ns>10</ns>
<id>1818444</id>
<revision>
<id>691784809</id>
<parentid>690336509</parentid>
<timestamp>2015-11-22T04:07:39Z</timestamp>
<contributor>
<username>Codename Lisa</username>
<id>16847332</id>
</contributor>
<comment>Reverted [[WP:AGF|good faith]] edits by [[Special:Contributions/Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]): We already have {{No2}} with this background.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="209">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#F99;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&quot; class=&quot;table-no&quot;|{{{1|No}}}&lt;noinclude&gt;
|}
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>9sy5yzld48zzicuuz6htc8iqyyy9es3</sha1>
</revision>
</page>
<page>
<title>Template:Noitalic</title>
<ns>10</ns>
<id>12525543</id>
<revision>
<id>772147416</id>
<parentid>456761055</parentid>
<timestamp>2017-03-25T16:04:17Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Noitalic]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefin...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="163">&lt;span style=&quot;font-style:normal;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>gthkczmvzrkqtqwsi8thy1il8wm1ddj</sha1>
</revision>
</page>
<page>
<title>Template:Ns has subpages</title>
<ns>10</ns>
<id>22589696</id>
<revision>
<id>637438114</id>
<parentid>637437596</parentid>
<timestamp>2014-12-10T06:37:09Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>convert this to use [[Module:Ns has subpages]] - this gets the subpage status directly from MediaWiki, avoiding the need to update the template when namespaces change</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="185">{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#invoke:Ns has subpages|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>0pg457y46td6p53rdt8tyc76jeg9pa8</sha1>
</revision>
</page>
<page>
<title>Template:Oldid</title>
<ns>10</ns>
<id>18476649</id>
<revision>
<id>588643399</id>
<parentid>429272441</parentid>
<timestamp>2014-01-01T10:18:28Z</timestamp>
<contributor>
<username>Salix alba</username>
<id>212526</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Oldid: change to new template editor level ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="275">&lt;span class=&quot;plainlinks&quot;&gt;[{{fullurl:{{{page|{{{1|Main Page}}}}}}|oldid={{{oldid|{{{2|}}}}}}}} {{{label|{{{title|{{{3|{{#if:{{{oldid|{{{2|}}}}}}|Old revision|Current version}} of''' {{{page|{{{1|'''a page'''}}}}}} '''}}}}}}}}}]&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>9hfrpwl1lydirqbggsf0jg7g2pxuv6e</sha1>
</revision>
</page>
<page>
<title>Template:Ombox</title>
<ns>10</ns>
<id>17522403</id>
<revision>
<id>577969039</id>
<parentid>463278061</parentid>
<timestamp>2013-10-20T12:45:08Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>switch to Lua version</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="146">{{#invoke:Message box|ombox}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>1o93yrjvq6v2ylug2k0uaaltljurje2</sha1>
</revision>
</page>
<page>
<title>Template:Order of magnitude</title>
<ns>10</ns>
<id>11656899</id>
<revision>
<id>772147393</id>
<parentid>522551188</parentid>
<timestamp>2017-03-25T16:04:16Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Order of magnitude]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="339">&lt;includeonly&gt;{{{{{|safesubst:}}}#ifexpr:{{{1|0}}}=0
|{{{{{|safesubst:}}}#ifexpr:abs{{{1|0}}}1=1
|0
|{{{{{|safesubst:}}}#expr:floor((ln(abs{{{1}}}1)/ln10)+1)}}
}}
|{{#expr:floor((ln(abs({{{1|0}}}) )/ln 10)+1E((abs{{{1|0}}}&gt;1E100 or abs{{{1|0}}}&lt;1E-100)-14))}}
}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>o26s8fkrxrfa62h1s4cyrdxr33uqy8l</sha1>
</revision>
</page>
<page>
<title>Template:Para</title>
<ns>10</ns>
<id>16639086</id>
<revision>
<id>679823176</id>
<parentid>660922353</parentid>
<timestamp>2015-09-07T00:44:14Z</timestamp>
<contributor>
<username>HJ Mitchell</username>
<id>9336033</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Para: lower to TE per request; also removed from [[WP:CASC]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="267">&lt;code class=&quot;nowrap&quot; {{#if:{{{plain|}}}|style=&quot;border:none;background-color:inherit;color:inherit;&quot;}}&gt;&amp;#124;{{#if:{{{1|}}}|{{{1}}}&amp;#61;}}{{{2|}}}&lt;/code&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;!--Categories and interwikis go near the bottom of the /doc subpage.--&gt;
&lt;/noinclude&gt;</text>
<sha1>byvvhmp41qjgp4713oxicsdwzjqb1b0</sha1>
</revision>
</page>
<page>
<title>Template:Plain link</title>
<ns>10</ns>
<id>4651605</id>
<revision>
<id>797881294</id>
<parentid>797881250</parentid>
<timestamp>2017-08-29T18:25:20Z</timestamp>
<contributor>
<username>JJMC89</username>
<id>24812038</id>
</contributor>
<comment>typo in last edit</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="231">&lt;span class=&quot;plainlinks&quot;&gt;{{SAFESUBST:&lt;noinclude /&gt;#if:{{{2|{{{NAME|{{{name|}}}}}}}}}
|[{{{1|{{{URL|{{{url}}}}}}}}} {{{2|{{{NAME|{{{name|}}}}}}}}}]
|[{{{1|{{{URL|{{{url}}}}}}}}}]
}}&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>4ksm928qcz1wzong5bwawgcsgfzt0v4</sha1>
</revision>
</page>
<page>
<title>Template:Pp-template</title>
<ns>10</ns>
<id>10225116</id>
<revision>
<id>619983120</id>
<parentid>578340995</parentid>
<timestamp>2014-08-05T17:17:27Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>convert this to use [[Module:Protection banner]]; see [[Module talk:Protection banner#Proposal to convert all protection templates to use this module|here]] for details</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="178">&lt;includeonly&gt;{{#invoke:Protection banner|main}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>5t6lal9n9hcpwsso2obr7pcyjbg26xc</sha1>
</revision>
</page>
<page>
<title>Template:Refbegin</title>
<ns>10</ns>
<id>9391283</id>
<revision>
<id>780001198</id>
<parentid>772120876</parentid>
<timestamp>2017-05-12T09:46:40Z</timestamp>
<contributor>
<username>TheDJ</username>
<id>244887</id>
</contributor>
<comment>Use class from MediaWiki:Common.css to implement hanging indentation</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="828">&lt;includeonly&gt;&lt;div class=&quot;refbegin &lt;!--
--&gt;{{#if: {{{indent|}}}
| refbegin-hanging-indents }} &lt;!--
--&gt;{{#if: {{{normalfont|}}}
| refbegin-100 }} &lt;!--
--&gt;{{#if: {{{1|}}}
| columns {{#iferror: {{#ifexpr: {{{1|1}}} &gt; 1 }}
| references-column-width
| references-column-count references-column-count-{{#if:1|{{{1}}}}} }}
| {{#if: {{{colwidth|}}}
| references-column-width }} }}&quot; style=&quot;&lt;!--
--&gt;{{#if: {{{1|}}}
| {{#iferror: {{#ifexpr: {{{1|1}}} &gt; 1 }}
| {{column-width|{{#if:1|{{{1}}}}}}}
| {{column-count|{{#if:1|{{{1}}}}}}} }}
| {{#if: {{{colwidth|}}}
| {{column-width|{{{colwidth}}}}} }} }}&quot;&gt;&lt;!--
--&gt;{{#if: {{{normalfont|}}}
| [[Category:Pages using refbegin with normalfont parameter]]}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
{{/TemplateData}}
&lt;/noinclude&gt;</text>
<sha1>jviesmg7qfir8shmypzzu26dk3g9eiw</sha1>
</revision>
</page>
<page>
<title>Template:Refend</title>
<ns>10</ns>
<id>10023179</id>
<revision>
<id>792167400</id>
<parentid>772120878</parentid>
<timestamp>2017-07-24T21:40:56Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>remove &lt;/dl&gt; since no &lt;dl&gt; in Template:Refbegin</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="246">&lt;includeonly&gt;&lt;/div&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{template doc|Template:refbegin/doc}}
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;Ends a reference lists started by {{refbegin}}.&quot;,
&quot;params&quot;: {
}
}
&lt;/templatedata&gt;
&lt;/noinclude&gt;</text>
<sha1>kcrxzrf6v4rvbl0yhnfcb5labufpnsp</sha1>
</revision>
</page>
<page>
<title>Template:Reflist</title>
<ns>10</ns>
<id>7585648</id>
<revision>
<id>794499661</id>
<parentid>794499298</parentid>
<timestamp>2017-08-08T12:05:27Z</timestamp>
<contributor>
<username>Anomie</username>
<id>301903</id>
</contributor>
<comment>Please stop, you apparently don't know what you're doing here and shouldn't fool around with heavily-used live templates. I'll post an explanation to the talk page momentarily.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1008">&lt;div class=&quot;reflist &lt;!--
--&gt;{{#if: {{{1|}}} {{{colwidth|}}}
| columns references-column-width
}}&quot; style=&quot;&lt;!--
--&gt;{{#if: {{{1|}}}
| {{#iferror: {{#ifexpr: {{{1|1}}} &gt; 1 }}
| {{column-width|1={{{1}}}}}
| {{#switch:{{{1|}}}|1=|2={{column-width|1=30em}}|#default={{column-width|1=25em}}}} }}
| {{#if: {{{colwidth|}}}
| {{column-width|1={{{colwidth}}}}} }} }} list-style-type: &lt;!--
--&gt;{{{liststyle|{{#switch: {{{group|}}}
| upper-alpha
| upper-roman
| lower-alpha
| lower-greek
| lower-roman = {{{group}}}
| #default = decimal}}}}};&quot;&gt;
{{#tag:references|{{{refs|}}}|group={{{group|}}}|responsive={{#if:{{{1|}}}{{{colwidth|}}}|0|1}}}}&lt;/div&gt;{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using reflist with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Reflist]] with unknown parameter &quot;_VALUE_&quot;|ignoreblank=y| 1 | colwidth | group | liststyle | refs }}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>2k096ppl7lxbcjqmfluu9x2sc91rmzl</sha1>
</revision>
</page>
<page>
<title>Template:Reflist hide</title>
<ns>10</ns>
<id>24449851</id>
<revision>
<id>735694099</id>
<parentid>541547140</parentid>
<timestamp>2016-08-22T13:37:17Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>name space</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="105">{{main other|2=&lt;div style=&quot;display: none;&quot;&gt;&lt;references /&gt;&lt;/div&gt;}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>fpvrbrsxr90csvfws2bhqf2tu2quhry</sha1>
</revision>
</page>
<page>
<title>Template:Reflist/doc</title>
<ns>10</ns>
<id>8512635</id>
<revision>
<id>822055088</id>
<parentid>820942430</parentid>
<timestamp>2018-01-24T03:42:08Z</timestamp>
<contributor>
<username>Voidxor</username>
<id>329764</id>
</contributor>
<minor/>
<comment>Update example oldid due to numerous deprecated-template errors in the reference section.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="18508">{{Documentation subpage}}
&lt;includeonly&gt;{{High-risk| 4200000+ }}&lt;/includeonly&gt;
{{notice|&lt;nowiki /&gt;
* This page gives technical details for the {{tl|reflist}} template. For a full overview of this template in use, see [[Help:Footnotes]].
}}
{{Transwiki guide |small=yes |text=See [[Template:Reflist/Transwiki guide|'''this information''']] on copying this template and modifying it for use on another wiki.}}
This [[Wikipedia:Citation templates|citation template]] provides formatting and organizational features for [[Help:Footnotes|footnotes]]. It encapsulates the {{tag|references|s}} tag used by the {{cite.php}} MediaWiki extension to show the list of references as defined by {{tag|ref|o}} tags. It adds support for sizing the column width, groups and {{ldr}}.
==Parameters==
There are no ''required'' parameters; if none are supplied, a single-column list will be generated if there are fewer than 10 references in the list. If you have more than 10 references, it will use columns of 30em wide if your device allows this.
Optional parameters are:
* Unnamed parameter (must be the first one if used): the minimum width for each column of references, typically in [[em (typography)#CSS|em]]s. Syntax (for example) {{para||30em}} with no space (i.e. not {{para||30 em}}). Note that this replaces '''colwidth'''—see [[#Obsolete parameters|§&amp;nbsp;Obsolete parameters]].
* '''refs''': used with {{ldr}}.
* '''group''': identifies by name the subset of references to be rendered; the value should correspond to that used inline, e.g., {{tlx|Reflist|2=group=groupname}} renders all references with groupname as the group name ({{tag|ref|o|params=group=groupname}}). There are five pre-defined group names that style the list differently. See [[#Grouped references|§ Grouped references]] below.
* '''liststyle''': specifies the style used when the reference list is rendered. The default is a numbered list. When set, it will override the style set by the {{para|group}} parameter, without affecting group functionality. See [[#List styles|§ List styles]] below.
{{anchor|Multiple uses}}
==Usage==
{{markup|title=Using only footnote-style references
|&lt;nowiki&gt;Lorem ipsum.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
==References==
{{Reflist}}&lt;/nowiki&gt;
|Lorem ipsum.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
{{fake heading|sub=3|References}}
{{Reflist}}
}}
{{markup|title=Using only bibliographical style references (no direct references from the text)
|&lt;nowiki&gt;Lorem ipsum. Lorem ipsum dolor sit amet.
==References==
{{Refbegin}}
* reference 1
* reference 2
{{Refend}}&lt;/nowiki&gt;
|Lorem ipsum. Lorem ipsum dolor sit amet.
{{fake heading|sub=3|References}}
{{Refbegin}}
* reference 1
* reference 2
{{Refend}}
}}
{{markup|title=Using both footnote-style and bibliography-style references
|&lt;nowiki&gt;Lorem ipsum.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
==References==
{{Reflist}}
{{Refbegin}}
* reference 1
* reference 2
{{Refend}}&lt;/nowiki&gt;
|Lorem ipsum.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
{{fake heading|sub=3|References}}
{{Reflist}}
{{Refbegin}}
* reference 1
* reference 2
{{Refend}}
}}
===Columns===
{{tlx|Reflist|30em}} (for example) instructs the browser to create as many columns as possible (of width at least 30&amp;nbsp;[[Em (typography)|em]], in this example) given the width of the display window. ([http://www.w3.org/TR/CSS21/syndata.html#length-units Units supported are em, ex, in, cm, mm, pt, pc, px], but em is almost always used.) There must not be a space between the number and the unit.
Choose a width appropriate to the typical width of the references:
* Automatic columns (default when no width is specified): Where there are only a few {{fnote}}; see, e.g., {{oldid|Silver State Arena|530211388#References|Silver State Arena (23:05, 28 December 2012)}}
* 30em: Where there are many footnotes plus a page-width Bibliography subsection: see, e.g., {{oldid|Ebola virus disease|819923970#References|Ebola virus disease (02:02, 12 January 2018)}}
* 20em: Where {{sfnote}} are used; see, e.g., {{oldid|NBR 224 and 420 Classes|442508215#Notes|NBR 224 and 420 Classes (13:32, 1 August 2011)}}.
====Example====
{{markup|title=15em wide columns (vary width of display window to see change in number of columns)
|&lt;nowiki&gt;Lorem ipsum.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
==References==
{{Reflist|15em}}&lt;/nowiki&gt;
|Lorem ipsum.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
{{fake heading|sub=3|References}}
{{Reflist|15em}}&lt;!-- note 15em used here for illustration purposes because larger value won't columnize in the &quot;renders as&quot; part on many screens --&gt;
}}
* &lt;strong&gt;Note 1:&lt;/strong&gt; The syntax {{tlx|Reflist|2}} (for example), which specifies two columns of equal width ''regardless of the available display width'', is deprecated (and is disabled for mobile view). When you use 1 the template gives you a single column while 2 will pretend you specified 30em. When using higher column counts, it will pretend you specified 25em.
* &lt;strong&gt;Note 2:&lt;/strong&gt; Browser support: Internet Explorer 10+, Microsoft Edge, Firefox 2+, Chrome 4+, Safari 3.1+, Opera 11.1+
===List-defined references===
{{see|Help:List-defined references}}
A list of references may be defined within {{tl|Reflist}} using the {{para|refs}} parameter, just like including named {{tag|ref|params=name=&quot;...&quot;}} elements inside the {{tag|references}} container.
====Example====
{{markup
|&lt;nowiki&gt;This is reference 1.&lt;ref name=&quot;refname1&quot; /&gt;
This is reference 2.&lt;ref name=&quot;refname2&quot; /&gt;
==References==
{{Reflist|refs=
&lt;ref name=&quot;refname1&quot;&gt;content1&lt;/ref&gt;
&lt;ref name=&quot;refname2&quot;&gt;content2&lt;/ref&gt;
}}&lt;/nowiki&gt;
|This is reference 1.&lt;ref name=&quot;refname1&quot; group=decimal/&gt;
This is reference 2.&lt;ref name=&quot;refname2&quot; group=decimal/&gt;
{{fake heading|sub=3|References}}
{{Reflist|group=decimal|refs=
&lt;ref name=&quot;refname1&quot;&gt;content1&lt;/ref&gt;
&lt;ref name=&quot;refname2&quot;&gt;content2&lt;/ref&gt;
}}
}}
===Grouped references===
{{details|WP:REFGROUP}}
References can be grouped into separate sections (for explanatory notes, table references, and the like) via &lt;code&gt;group=&lt;/code&gt;:
:{{tag|ref|open|params=group=&lt;var&gt;groupname&lt;/var&gt;}}
where &lt;var&gt;groupname&lt;/var&gt; is (for example) &lt;code&gt;notes&lt;/code&gt; or &lt;code&gt;sources&lt;/code&gt;. The group name need not be enclosed in quotes; this differs from the footnote marker where quotes are required if the group name includes a space.
Each group used in the article must have a matching reference list:
:{{tlx|Reflist|2=group=&lt;var&gt;groupname&lt;/var&gt;}}
====Predefined groups====
{{details|H:PREGROUP}}
There are predefined group names that automatically set the labels in the footnote markers and the reference list to other styles. Thus, setting &lt;code&gt;&lt;nowiki&gt;{{Reflist|group=lower-alpha}}&lt;/nowiki&gt;&lt;/code&gt; will set the group to &lt;code&gt;lower-alpha&lt;/code&gt; and will style the reference list with lower alpha characters. The matching footnote marker can be formed by {{tag|ref|params=group=lower-alpha}}. This is made easier by a series of templates to set the group/label styles for the footnote marker and the reference list:
{{#section:Help:Footnotes|pregrouptable}}
===List styles===
{{for|technical details|Help:Cite link labels}}
As noted in [[#Predefined groups|§ Predefined groups]], there are predefined groups that automatically add list styling. Using the listed templates is more convenient than using {{para|liststyle}}.
Reference lists are by default numbered lists. By using the {{para|liststyle}} parameter, you can control how the list is rendered. For example, using {{para|liststyle|upper-roman}} will result in references being labeled with [[Roman numerals]] instead of decimal numbers. The parameter accepts any valid CSS value defined for &lt;code&gt;list-style-type&lt;/code&gt; as shown below.
{{CSS list-style-type values}}
It is possible to use {{para|liststyle}} so that the labels for the footnote marker and the reference list marker differ. This should be used with care as it can be confusing to readers. For example:
{{markup
|1=&lt;nowiki&gt;&lt;ref group=note&gt;Reference&lt;/ref&gt;
{{Reflist|group=note|liststyle=lower-alpha}}
&lt;/nowiki&gt;
|2=&lt;ref group=note&gt;Reference&lt;/ref&gt;
{{Reflist|group=note|liststyle=lower-alpha}}
}}
===Interaction with images===
{{Reflist hide}}
In the unusual case of an image being placed to the left of a reference list, layout problems may occur on some browsers. This can be prevented by using the columns feature.
==Technical details==
===Font size===
The font size should reduce to 90% for most browsers, but may appear to show at 100% for Internet Explorer and possibly other browsers.&lt;ref group=general name=fontsize /&gt; As of December 21, 2010, the standard {{tag|references|single}} tag has the same font styling. The smaller font may be disabled through {{myprefs|Gadgets|Disable smaller font sizes of elements such as Infoboxes, Navboxes and References lists}}.
===Browser support for columns===
{{CSS3 multiple column layout}}
Multiple columns are generated by using [[Cascading Style Sheets|CSS3]], which is still in development; thus only browsers that properly support the multi-column property will show multiple columns with {{tl|Reflist}}.&lt;ref group=general name=&quot;stuffandnonsense&quot; /&gt;&lt;ref group=general name=&quot;w3org1&quot; /&gt;
These browsers '''support''' CSS3 columns:
* [[Gecko (layout engine)|Gecko]]-based browsers such as [[Mozilla Firefox]]
* [[WebKit]]-based browsers such as [[Safari (web browser)|Safari]] and [[Google Chrome]]
* [[Opera (web browser)|Opera]] from version 11.10 onward
* [[Internet Explorer]] from version 10 onward
These browsers do '''not support''' CSS3 columns:
* Microsoft [[Trident (layout engine)|Trident]]-based browsers including Internet Explorer up to version 9&lt;ref group=general name=&quot;msdn&quot; /&gt;
* [[Opera (web browser)|Opera]] through to version 11
===Widows and orphans===
The use of columns can result in [[widows and orphans]], where a citation at the bottom of a column may be split to the top of the next column. [[MediaWiki:Common.css]] includes CSS rules to prevent list items from breaking between columns. Widows may still show in extreme circumstances, such as a reference list formatted in columns where only a single reference is defined.
{{markup
|&lt;nowiki&gt;Lorem ipsum.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.
==References==
{{Reflist|10em}}&lt;/nowiki&gt;
|Lorem ipsum.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.
{{fake heading|sub=3|References}}
{{Reflist|10em}}
}}
===Supporting CSS===
{{tl|Reflist}} uses a CSS rule in [[MediaWiki:Common.css]] to set the font size:
* &lt;code&gt;div.reflist { font-size: 90%; }&lt;/code&gt;
The following class is assigned by the template when column width is set:
* &lt;code&gt;.references-column-width&lt;/code&gt;
The following CSS properties are utilized using the {{tl|column-width}} templates:
* &lt;code&gt;column-width&lt;/code&gt; CSS3 standard
* &lt;code&gt;-moz-column-width&lt;/code&gt; Mozilla CSS extension
* &lt;code&gt;-webkit-column-width&lt;/code&gt; Webkit CSS extension
===Customizing the view===
{{see|Help:Reference display customization}}
By editing your CSS, the personal appearance of the reference list can be customized. From [[Special:Preferences|Preferences]], select the Appearance tab, then on the selected skin select Custom CSS. After editing and saving, follow the instructions at the top of the page to purge. See [[Wikipedia:Skin#Customisation (advanced users)]] for more help.
'''Font size'''
The font size for all reference lists defaults to 90% of the standard size. To change it, add:
&lt;source lang=&quot;css&quot;&gt;
ol.references,
div.reflist,
div.refbegin {
font-size: 90%;
}
&lt;/source&gt;
Change 90% to the desired size.
'''Columns'''
To disable columns, add:
&lt;source lang=&quot;css&quot;&gt;
.references-column-width {
-moz-column-width: auto !important;
-webkit-column-width: auto !important;
column-width: auto !important;
}
&lt;/source&gt;
'''Column dividers'''
To add dividers (rules) between columns, add:
&lt;source lang=&quot;css&quot;&gt;
.references-column-width {
-moz-column-rule: 1px solid #aaa;
-webkit-column-rule: 1px solid #aaa;
column-rule: 1px solid #aaa;
}
&lt;/source&gt;
You can alter the appearance of the dividers by changing the values.
==Perennial suggestions==
'''Collapsing and scrolling'''
There have been a number of requests to add functionality for a collapsible or [[WP:SCROLLING|scrolling]] reference list. These requests have not been fulfilled due to issues with readability, accessibility, and printing. The applicable guidelines are at [[MOS:SCROLL]]. Links between the inline cite and the reference list do not work when the reference list is enclosed in a collapsed box.
To display the reference list in a scrollbox or collapsed per user, see [[Help:Reference display customization]].
For discussion on previous attempts to do this with a template, see the discussions for [[Wikipedia:Templates for deletion/Log/2007 June 11#Template:Scrollref|Scrollref]] and [[Wikipedia:Templates for discussion/Log/2010 May 26#Template:Refbox|Refbox]].
'''Including the section title'''
There have been suggestions to include section header markup such as &lt;code&gt;==References==&lt;/code&gt;. This is inadvisable because:
* There is no standard section name {{crossref|(see {{section link|WP:Manual of Style/Layout|Notes and references}})}}.
* When transcluded, the article will have an edit link that will confusingly open the template for editing.
==Obsolete parameters==
These parameters are no longer in use:
* '''colwidth''': Same as specifying a column-width for the first unnamed parameter. Replaced by width as unnamed first parameter.
* '''close''': Until 2014, the parameter {{para|close|1}} was used to work around a bug involving multiple uses of {{tl|Reflist}} on the same page. When the bug was fixed, this was removed. ''(For multiple uses on talk pages and other non-article pages structured in sections, see {{tl|Reflist-talk}}.)''
Articles using unsupported parameters are tracked in {{clc|Pages using reflist with unknown parameters}}.
==Template data==
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;This template displays the list of footnotes at the end of an article and provides additional formatting and organizing options. After hitting \&quot;Apply changes\&quot; and turning back to VE read mode, you will not see the references list. After hitting \&quot;Publish page\&quot; and turning back to normal read mode the reference list will reappear with the changes applied, see T53146.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Columns / Column width&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false,
&quot;description&quot;: &quot;Two modes supported. First mode (deprecated): integer number of fixed columns into which the reference list is to be rendered. Second mode: typographic unit of measurement such as 'em', specifying the width for the reference list columns, e.g. '33em'; spaced '33&amp;nbsp;em' will not be recognized&quot;,
&quot;default&quot;: &quot;1&quot;,
&quot;aliases&quot;: [
&quot;colwidth&quot;
]
},
&quot;liststyle&quot;: {
&quot;label&quot;: &quot;Liststyle&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false,
&quot;description&quot;: &quot;Specifies the style used when the reference list is enumerated; accepts any valid CSS value defined for list-style-type&quot;,
&quot;default&quot;: &quot;decimal&quot;
},
&quot;group&quot;: {
&quot;label&quot;: &quot;Group&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false,
&quot;description&quot;: &quot;Group is an identifier which restricts the references that are shown. Without this parameter, this template only shows references with no group identifier. With a group identifier specified, only references with a matching group identifier are handled. The rest are left alone.&quot;
},
&quot;refs&quot;: {
&quot;label&quot;: &quot;List of references&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false,
&quot;description&quot;: &quot;Provides a space to define named references for use in the article. References defined in this space are not shown unless used somewhere in the article.&quot;
}
}
}
&lt;/templatedata&gt;
==See also==
* {{phab|T53260}} - Cite: Support multi-column and alternative list-style for {{tag|references|s}} tag (like enwiki {{tl|reflist}})
* [[Wikipedia:Citing sources]]&amp;nbsp;– style guide for the citation of sources
* [[Wikipedia:Citation templates]]&amp;nbsp;– templates for use with references
* {{tl|Refbegin}} and {{tl|Refend}}&amp;nbsp;– format reference lists
'''Variants'''
* {{tl|Template reference list}}&amp;nbsp;– version of reflist for use in templates
* {{tl|Reflist-talk}}&amp;nbsp;– for use in talk page sections and other non-mainspace pages
==References==
{{Reflist|group=general|refs=
&lt;ref group=general name=fontsize&gt;See [[User:Edokter/fonttest]] for a comparison of font sizes for various browsers; see [//en.wikipedia.org/w/index.php?title=Special%3ASearch&amp;redirs=1&amp;search=fonttest+prefix%3AMediaWiki+talk%3ACommon.css%2F&amp;fulltext=Search&amp;ns0=1 previous discussions] on changing the font size to resolve the IE issue.&lt;/ref&gt;
&lt;ref group=general name=stuffandnonsense&gt;{{cite web |accessdate=November 24, 2006 |date=December 30, 2005 |title=CSS3 Multi-Column Thriller |url=http://www.stuffandnonsense.co.uk/archives/css3_multi-column_thriller.html}}&lt;/ref&gt;
&lt;ref group=general name=w3org1&gt;{{cite web |url=http://www.w3.org/TR/css3-multicol/ |title=CSS3 module: Multi-column layout |publisher=[[World Wide Web Consortium|W3C]] |date=December 15, 2005 |accessdate=November 24, 2006}}&lt;/ref&gt;
&lt;ref group=general name=msdn&gt;{{cite web |url=http://msdn.microsoft.com/en-us/library/cc351024(VS.85).aspx#multicolumn |title=CSS Compatibility and Internet Explorer: Multi-column Layout |work=Microsoft Developer Network |publisher=Microsoft |accessdate=March 16, 2011}}&lt;/ref&gt;
}}
{{Wikipedia referencing}}
{{Wikipedia template messages}}
{{Wikipedia technical help}}
&lt;includeonly&gt;
{{#ifeq:{{SUBPAGENAME}}|sandbox| |
[[Category:Footnote templates]]
[[Category:Reference list templates]]
}}&lt;/includeonly&gt;</text>
<sha1>jqpciwl3vp9qrlg62nuwfyjtb154od1</sha1>
</revision>
</page>
<page>
<title>Template:Resize</title>
<ns>10</ns>
<id>7736359</id>
<revision>
<id>772120884</id>
<parentid>634340879</parentid>
<timestamp>2017-03-25T12:38:46Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Resize]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (ind...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="251">{{#if:{{{2|}}}
|&lt;span style=&quot;font-size:{{{1|}}};&quot;&gt;{{{2|}}}&lt;/span&gt;
|&lt;span style=&quot;font-size:90%;&quot;&gt;{{{1}}}&lt;/span&gt;
}}&lt;noinclude&gt;
{{documentation}}
{{Resize/TemplateData}}
&lt;!--PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS--&gt;
&lt;/noinclude&gt;</text>
<sha1>8vlkuf84dyzx2md9so6zxdwn47bheg6</sha1>
</revision>
</page>
<page>
<title>Template:Rnd</title>
<ns>10</ns>
<id>13373859</id>
<revision>
<id>772120890</id>
<parentid>539949680</parentid>
<timestamp>2017-03-25T12:38:46Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Rnd]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="323">&lt;includeonly&gt;{{#iferror:{{#expr:{{{2|0}}}}} |
[[Category:Pages with bad rounding precision]]{{hid|Bad rounding here}}&lt;!--
--&gt;{{#invoke:Math|precision_format| {{{1}}} | 1-{{order of magnitude|{{{1}}}}} }}|
{{#invoke:Math|precision_format| {{{1}}} | {{{2|0}}}}}}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>rx1gvq4bh1iryz29g6tt9b2a4ng2k7z</sha1>
</revision>
</page>
<page>
<title>Template:Search link</title>
<ns>10</ns>
<id>22517031</id>
<revision>
<id>805268863</id>
<parentid>802930649</parentid>
<timestamp>2017-10-14T06:22:42Z</timestamp>
<contributor>
<username>Cpiral</username>
<id>2517237</id>
</contributor>
<comment>Reverted. Current version fails displays at [[Wikipedia:Deletion_process#Search_all_deletion_discussions]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3765">&lt;span class=&quot;plainlinks&quot;&gt;[{{fullurl:Special:Search|search=&lt;!--
--&gt;{{urlencode:{{{query|{{{text|{{{1|}}}}}}}}}}}&lt;!-- Given query
--&gt;{{#if:{{{limit|}}}|&amp;limit={{{limit|}}}}}&lt;!--
--&gt;{{#if:{{{ns|}}} {{{3|}}} {{{4|}}} {{{5|}}} {{{6|}}} {{{7|}}} {{{8|}}} {{{9|}}}{{{10|}}} {{{11|}}} {{{12|}}} {{{13|}}} {{{14|}}} {{{15|}}} {{{16|}}} {{{17|}}} {{{18|}}} {{{19|}}} {{{20|}}}
| &lt;!-- either ns or 3-20 has a value set--&gt;
{{#if:{{{ns|}}} &lt;!-- is ns set? --&gt;
| {{#ifeq: {{{ns}}} | all &lt;!-- ns is set. Is the value &quot;all&quot;?
--&gt;| &lt;!-- True, the value of ns is &quot;all&quot; --&gt;
&amp;ns0=1&amp;ns1=1&amp;ns2=1&amp;ns3=1&amp;ns4=1&amp;ns5=1&amp;ns6=1&amp;ns7=1&amp;ns8=1&amp;ns9=1&lt;!--
--&gt;&amp;ns10=1&amp;ns11=1&amp;ns12=1&amp;ns13=1&amp;ns14=1&amp;ns15=1&amp;ns100=1&amp;ns101=1&lt;!--
--&gt;&amp;ns108=1&amp;ns109=1&amp;ns118=1&amp;ns119=1&amp;ns446=1&amp;ns447=1&amp;ns710=1&lt;!--
--&gt;&amp;ns711=1&amp;ns828=1&amp;ns829=1&amp;ns2300=1&amp;ns2301=1&amp;ns2302=1&amp;ns2303=1&lt;!--
--&gt;&amp;ns2600=1
| &lt;!-- ns is set, but the value is not &quot;all&quot; --&gt;
&amp;{{lc:{{{ns}}}}} &lt;!-- You saw the &amp; added, and ns argument:
ns=ns5 gives &amp;ns5=1
Use {{lc:}} not only to lower case,
but also to strip away whitespace --&gt;
}}
}}{{
#if:{{{3|}}} &lt;!-- positional parameter 3 = &quot;ns0&quot; or other nsX --&gt;
| &amp;{{lc:{{{3|}}}}}=1
}}{{
#if:{{{4|}}}| &amp;{{lc:{{{4|}}}}}=1
}}{{
#if:{{{5|}}}| &amp;{{lc:{{{5|}}}}}=1
}}{{
#if:{{{6|}}}| &amp;{{lc:{{{6|}}}}}=1
}}{{
#if:{{{7|}}}| &amp;{{lc:{{{7|}}}}}=1
}}{{
#if:{{{8|}}}| &amp;{{lc:{{{8|}}}}}=1
}}{{
#if:{{{9|}}}| &amp;{{lc:{{{9|}}}}}=1
}}{{
#if:{{{10|}}}| &amp;{{lc:{{{10|}}}}}=1
}}{{
#if:{{{11|}}}| &amp;{{lc:{{{11|}}}}}=1
}}{{
#if:{{{12|}}}| &amp;{{lc:{{{12|}}}}}=1
}}{{
#if:{{{13|}}}| &amp;{{lc:{{{13|}}}}}=1
}}{{
#if:{{{14|}}}| &amp;{{lc:{{{14|}}}}}=1
}}{{
#if:{{{15|}}}| &amp;{{lc:{{{15|}}}}}=1
}}{{
#if:{{{16|}}}| &amp;{{lc:{{{16|}}}}}=1
}}{{
#if:{{{17|}}}| &amp;{{lc:{{{17|}}}}}=1
}}{{
#if:{{{18|}}}| &amp;{{lc:{{{18|}}}}}=1
}}{{
#if:{{{19|}}}| &amp;{{lc:{{{19|}}}}}=1
}}{{
#if:{{{20|}}}| &amp;{{lc:{{{20|}}}}}=1
}}
|&amp;ns0=1&lt;!-- Neither ns nor 3-20 were set.
So made Template Search link's default search domain
equal to article space;
otherwise user account can set it to &quot;all&quot; by default
at their own [[Special:Search]] Advanced
--&gt;}}&amp;fulltext=Search&lt;!-- does what &quot;~&quot; does when first character of query
Done with [URL part.
Now for the name] part of [URL name].
(The URL part already escapes square brackets [ ], in urlencode %5B %5D.)
--&gt;}}&lt;!--
You'll see the space. The &quot;replace&quot; wrappers escape square brackets in name.
--&gt; {{#invoke:String|replace&lt;!--
--&gt;|{{#invoke:String|replace
|{{#if:
{{{label|{{{link|{{{2|}}}}}}}}}&lt;!-- If a label is given, --&gt;
|&lt;nowiki /&gt;{{{label|{{{link|{{{2|}}}}}}}}}&lt;!-- protect it from a leading * or # --&gt;
|&lt;nowiki /&gt;{{{query|{{{text|{{{1|}}}}}}}}}&lt;!-- by using &lt;nowiki /&gt; (Help:wikitext)
--&gt;}}&lt;!--
--&gt;|[|&amp;#91;}}&lt;!-- ] with its html symbol
--&gt;|]|&amp;#93;}}&lt;!-- ] with its html symbol
--&gt;]&lt;/span&gt;&lt;!--
Output a hidden category: --&gt;{{#if: {{{ns|}}}{{{3|}}}{{{4|}}}{{{5|}}}{{{6|}}}{{{7|}}}{{{8|}}}{{{9|}}}{{{10|}}}{{{11|}}}{{{12|}}}{{{13|}}}{{{14|}}}{{{15|}}}{{{16|}}}{{{17|}}}{{{18|}}}{{{19|}}}{{{20|}}}
| [[Category:Search link templates with namespace parameters]]
}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>rkb6indyxfqxeh25r6g0iw5xea5r0op</sha1>
</revision>
</page>
<page>
<title>Template:See also</title>
<ns>10</ns>
<id>1721254</id>
<revision>
<id>763260609</id>
<parentid>725632232</parentid>
<timestamp>2017-02-02T05:40:25Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Updated from sandbox to use [[Module:Labelled list hatnote]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="199">&lt;includeonly&gt;{{#invoke:Labelled list hatnote|labelledList|See also}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>dn9i3dv2bt8lqifr6vkbycoya78rnav</sha1>
</revision>
</page>
<page>
<title>Template:Selfref</title>
<ns>10</ns>
<id>995731</id>
<revision>
<id>726826345</id>
<parentid>726442879</parentid>
<timestamp>2016-06-24T17:28:56Z</timestamp>
<contributor>
<username>Andy M. Wang</username>
<id>516856</id>
</contributor>
<comment>rm &quot;unprintworthy&quot; case, which doesn't work and spits out the error. Editor self-reverted 2 years ago</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="703">{{#switch:{{{2|NONE}}}
|NONE|hatnote|hat={{Hatnote|1=&lt;span class=&quot;plainlinks selfreference noprint&quot;&gt;{{{1}}}&lt;/span&gt;}}
|inline=&lt;span class=&quot;plainlinks selfreference&quot; style=&quot;font-style: italic;&quot;&gt;&lt;!--Same style as class hatnote.--&gt;{{{1}}}&lt;/span&gt;
|&lt;!--Matching the empty string here for unprintworthy content is for backwards compatibility with the 2006-2008 version. Do not depend on it!--&gt;=&lt;span class=&quot;plainlinks selfreference noprint&quot;&gt;{{{1}}}&lt;/span&gt;
|#default={{error|Second parameter must be &lt;code&gt;hatnote&lt;/code&gt;, &lt;code&gt;hat&lt;/code&gt;, or &lt;code&gt;inline&lt;/code&gt;}}
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES THE /doc SUBPAGE, AND INTERWIKIS TO WIKIDATA, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>iwoqua320uik4dhgbkhamftczli56n1</sha1>
</revision>
</page>
<page>
<title>Template:Sfnote</title>
<ns>10</ns>
<id>34625418</id>
<revision>
<id>821204088</id>
<parentid>587083872</parentid>
<timestamp>2018-01-19T00:33:22Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Sfnote]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="137">[[Help:Shortened footnotes|{{#ifeq:{{{lc}}}|{{{lc|}}}|shortened footnotes|Shortened footnotes}}]]&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>8hi4n62s2wu8csuwiwtqpnjpb36dofn</sha1>
</revision>
</page>
<page>
<title>Template:Sfrac</title>
<ns>10</ns>
<id>34054911</id>
<revision>
<id>804535677</id>
<parentid>667555912</parentid>
<timestamp>2017-10-09T17:16:26Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Sfrac]]&quot;: [[WP:High-risk templates|Highly visible template]]; 2,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="678">{{ {{{|safesubst:}}}#invoke:Unsubst||$B=&lt;span class=&quot;sfrac nowrap&quot;{{#if:{{{3|}}}|&gt;{{{1}}}&lt;span class=&quot;visualhide&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span}} &lt;!--
--&gt;style=&quot;display:inline-block; vertical-align:-0.5em; font-size:85%; text-align:center;&quot;&gt;&lt;!--
--&gt;&lt;span style=&quot;display:block; line-height:1em; margin:0 0.1em;&quot;&gt;{{#if:{{{3|}}}|{{{2}}}|{{#if:{{{2|}}}|{{{1}}}|1}}}}&lt;/span&gt;&lt;!--
--&gt;&lt;span class=&quot;visualhide&quot;&gt;/&lt;/span&gt;&lt;!--
--&gt;&lt;span style=&quot;display:block; line-height:1em; margin:0 0.1em; border-top:1px solid;&quot;&gt;{{{3|{{{2|{{{1}}}}}}}}}&lt;/span&gt;&lt;!--
--&gt;{{#if:{{{3|}}}|&lt;/span&gt;}}&lt;!--
--&gt;&lt;/span&gt;}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- PLEASE ADD CATEGORIES TO /doc SUBPAGE - NOT HERE.--&gt;
&lt;/noinclude&gt;</text>
<sha1>rthz8fmqqb9glz74z5v2ajkwx8x2mqn</sha1>
</revision>
</page>
<page>
<title>Template:Sfrac/doc</title>
<ns>10</ns>
<id>34055055</id>
<revision>
<id>818237695</id>
<parentid>806263723</parentid>
<timestamp>2018-01-02T11:42:47Z</timestamp>
<contributor>
<username>Jhertel</username>
<id>119408</id>
</contributor>
<comment>/* Examples */ Added example to show that you can create more than just simple number fractions with this template.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3112">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
This template builds an alternative form of [[common fraction]]s, using a [[Vinculum (symbol)|vinculum]] (horizontal line), for [[Wikipedia:Manual of Style (mathematics)|scientific and mathematical text]]. It takes one, two or three parameters: the optional integer (may be signed), the optional numerator and the required denominator; in this order. Please '''do not''' substitute it.
; &lt;code&gt;&lt;nowiki&gt;{{sfrac|A|B|C}}&lt;/nowiki&gt;&lt;/code&gt;
: {{sfrac|A|B|C}} (integer, numerator and denominator)
; &lt;code&gt;&lt;nowiki&gt;{{sfrac|A|B}}&lt;/nowiki&gt;&lt;/code&gt;
: {{sfrac|A|B}} (numerator and denominator)
; &lt;code&gt;&lt;nowiki&gt;{{sfrac|A}}&lt;/nowiki&gt;&lt;/code&gt;
: {{sfrac|A}} (denominator only)
== Examples ==
{{sfrac|2}} {{sfrac|3}} {{sfrac|2|3}} {{sfrac|4}} {{sfrac|3|4}} {{sfrac|5}} {{sfrac|2|5}} {{sfrac|3|5}} {{sfrac|4|5}} {{sfrac|6}} {{sfrac|5|6}} {{sfrac|7}} {{sfrac|2|7}} {{sfrac|3|7}} {{sfrac|4|7}} {{sfrac|5|7}} {{sfrac|6|7}} {{sfrac|8}} {{sfrac|3|8}} {{sfrac|5|8}} {{sfrac|7|8}} {{sfrac|16}} {{sfrac|3|16}} {{sfrac|5|16}} {{sfrac|7|16}} {{sfrac|9|16}} {{sfrac|11|16}} {{sfrac|13|16}} {{sfrac|15|16}} {{sfrac|22|7}} {{sfrac|1|1|16}} {{sfrac|16|2|3}}
{{sfrac|2{{pi}}|''a''²''b''}}
'''Inside the {{tl|math|...}} template (for inline math):'''
{{math|
{{sfrac|2}} {{sfrac|3}} {{sfrac|2|3}} {{sfrac|4}} {{sfrac|3|4}} {{sfrac|5}} {{sfrac|2|5}} {{sfrac|3|5}} {{sfrac|4|5}} {{sfrac|6}} {{sfrac|5|6}} {{sfrac|7}} {{sfrac|2|7}} {{sfrac|3|7}} {{sfrac|4|7}} {{sfrac|5|7}} {{sfrac|6|7}} {{sfrac|8}} {{sfrac|3|8}} {{sfrac|5|8}} {{sfrac|7|8}} {{sfrac|16}} {{sfrac|3|16}} {{sfrac|5|16}} {{sfrac|7|16}} {{sfrac|9|16}} {{sfrac|11|16}} {{sfrac|13|16}} {{sfrac|15|16}} {{sfrac|22|7}} {{sfrac|1|1|16}} {{sfrac|16|2|3}} {{sfrac|2{{pi}}|''a''²''b''}}
}}
'''Inside the {{tl|bigmath|...}} template (for standalone math):'''
{{bigmath|
{{sfrac|2}} {{sfrac|3}} {{sfrac|2|3}} {{sfrac|4}} {{sfrac|3|4}} {{sfrac|5}} {{sfrac|2|5}} {{sfrac|3|5}} {{sfrac|4|5}} {{sfrac|6}} {{sfrac|5|6}} {{sfrac|7}} {{sfrac|2|7}} {{sfrac|3|7}} {{sfrac|4|7}} {{sfrac|5|7}} {{sfrac|6|7}} {{sfrac|8}} {{sfrac|3|8}} {{sfrac|5|8}} {{sfrac|7|8}} {{sfrac|16}} {{sfrac|3|16}} {{sfrac|5|16}} {{sfrac|7|16}} {{sfrac|9|16}} {{sfrac|11|16}} {{sfrac|13|16}} {{sfrac|15|16}} {{sfrac|22|7}} {{sfrac|1|1|16}} {{sfrac|16|2|3}} {{sfrac|2{{pi}}|''a''²''b''}}
}}
==See also==
* [[Wikipedia:Rendering math]]
* {{tl|frac}}, displays common fractions using a [[fraction slash]]
* {{tl|su}} ({{su|p=superscript|b=subscript}} text) – to align both b=subscript &amp; p=[[superscript]]
* {{tl|sub}} ({{sub|subscript}} text) – to show a [[subscript]]
* {{tl|sup}} ({{sup|superscript}} text) – to show a [[superscript]]
* {{tl|sup sub}} (text{{sup sub|sup|sub}}) – for both 1=superscript &amp; 2=subscript
* [[Help:Displaying a formula#Fractions, matrices, multilines]]
* [[Help:Convert#Fractions]]
{{Math templates|notation}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES AND INTERWIKIS HERE, THANKS --&gt;
[[Category:Wikipedia formatting and function templates]]
[[Category:Mathematical formatting templates]]
&lt;/includeonly&gt;</text>
<sha1>11ij514n5jhi3970zw5ncr5c6khdrhw</sha1>
</revision>
</page>
<page>
<title>Template:Shortcut</title>
<ns>10</ns>
<id>694628</id>
<revision>
<id>638485698</id>
<parentid>638485566</parentid>
<timestamp>2014-12-17T12:24:34Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Shortcut: [[WP:High-risk templates|Highly visible template]]: allow template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="169">&lt;includeonly&gt;{{#invoke:Shortcut|main}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>5idoxkkbt62sniipoe18t8iorl88qpo</sha1>
</revision>
</page>
<page>
<title>Template:Sidebar</title>
<ns>10</ns>
<id>1960394</id>
<revision>
<id>609956138</id>
<parentid>609911857</parentid>
<timestamp>2014-05-24T15:42:30Z</timestamp>
<contributor>
<username>Jackmcbarn</username>
<id>19285809</id>
</contributor>
<comment>appears to work in testcases, deploy it live</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="94">&lt;includeonly&gt;{{#invoke:Sidebar|sidebar}}&lt;/includeonly&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>2zokwtfwvucgrlrksr937kmldrijnwv</sha1>
</revision>
</page>
<page>
<title>Template:Significant figures</title>
<ns>10</ns>
<id>13120760</id>
<revision>
<id>638406869</id>
<parentid>594681521</parentid>
<timestamp>2014-12-16T21:22:35Z</timestamp>
<contributor>
<username>Jackmcbarn</username>
<id>19285809</id>
</contributor>
<minor/>
<comment>use the right doc template</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="249">{{#ifeq:{{{1&lt;noinclude&gt;|0&lt;/noinclude&gt;}}}|0
|0
|{{significant figures/{{#if:{{{2|}}}
|rnd
|sum
}}
|1={{formatnum:{{{1}}}|R}}
|2={{{2}}}
|3={{Order of magnitude|{{formatnum:{{{1}}}|R}}}}
}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>0w70ettzuwz10gi8sb1030t0ch78d2b</sha1>
</revision>
</page>
<page>
<title>Template:Significant figures/rnd</title>
<ns>10</ns>
<id>13248669</id>
<revision>
<id>804533777</id>
<parentid>617347527</parentid>
<timestamp>2017-10-09T17:05:03Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Significant figures/rnd]]&quot;: [[WP:High-risk templates|Highly visible template]]; thousands of transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="632">&lt;includeonly&gt;{{rnd|{{{1}}}|{{{2}}}-{{{3}}}-1}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{doc|content=
A rounding subtemplate, it calls {{tl|rnd}}.
Examples:
*{{xpd5op3p3p3c|d=||||||sigfig/rnd|123.456|||7|||2}}
*{{xpd5op3p3p3c|d=||||||sigfig/rnd|123.456|||6|||2}}
*{{xpd5op3p3p3c|d=||||||sigfig/rnd|123.456|||5|||2}}
*{{xpd5op3p3p3c|d=||||||sigfig/rnd|123.456|||4|||2}}
*{{xpd5op3p3p3c|d=||||||sigfig/rnd|123.456|||3|||2}}
*{{xpd5op3p3p3c|d=||||||sigfig/rnd|123.456|||2|||2}}
*{{xpd5op3p3p3c|d=||||||sigfig/rnd|123.456|||1|||2}}
*{{xpd5op3p3p3c|d=||||||sigfig/rnd|123.456|||0|||2}}
[[Category:Subtemplates of template sigfig|rnd]]
}}
&lt;/noinclude&gt;</text>
<sha1>kzghuljvaaip7zd0yfn5yjvsyvsym83</sha1>
</revision>
</page>
<page>
<title>Template:Smaller</title>
<ns>10</ns>
<id>5117873</id>
<revision>
<id>668584667</id>
<parentid>662442951</parentid>
<timestamp>2015-06-25T07:36:48Z</timestamp>
<contributor>
<username>Salix alba</username>
<id>212526</id>
</contributor>
<comment>needs a separate TemplateData page so works with VE</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="102">{{Resize|90%|{{{1}}}}}&lt;noinclude&gt;
{{Documentation|Template:Resize/doc}}
{{/TemplateData}}
&lt;/noinclude&gt;</text>
<sha1>k1qtrx9lyxt4z46c4w03964r8vs2pzc</sha1>
</revision>
</page>
<page>
<title>Template:Sp</title>
<ns>10</ns>
<id>25109112</id>
<revision>
<id>750709055</id>
<parentid>634141374</parentid>
<timestamp>2016-11-21T11:11:18Z</timestamp>
<contributor>
<username>Materialscientist</username>
<id>7852030</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Sp]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="74">&lt;includeonly&gt;&amp;#32;&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>gxw7bqpdhxq4jgxnf2v3hw0vv9ua81v</sha1>
</revision>
</page>
<page>
<title>Template:Spaces</title>
<ns>10</ns>
<id>5660335</id>
<revision>
<id>687408551</id>
<parentid>663789983</parentid>
<timestamp>2015-10-25T11:38:26Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<comment>use class</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="394">&lt;span class=&quot;nowrap&quot;&gt;{{#iferror:{{#expr:{{{1|1}}}}}
|{{#switch:{{{1}}}
|fig=&amp;#8199;
|en=&amp;ensp;
|em=&amp;emsp;
|thin=&amp;thinsp;
|hair=&amp;#8202;
|&amp;nbsp;
}}
|{{#invoke:String|rep|{{#switch:{{{2}}}
|fig=&amp;#8199;
|en=&amp;ensp;
|em=&amp;emsp;
|thin=&amp;thinsp;
|hair=&amp;#8202;
|&amp;nbsp;
}}|{{{1|1}}}}}
}}&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>jukvcl40dksi5vvimpqq0n6czue0473</sha1>
</revision>
</page>
<page>
<title>Template:Split from</title>
<ns>10</ns>
<id>20585242</id>
<redirect title="Template:Split article" />
<revision>
<id>747877086</id>
<parentid>747297018</parentid>
<timestamp>2016-11-04T22:32:10Z</timestamp>
<contributor>
<username>BU Rob13</username>
<id>25420061</id>
</contributor>
<comment>R from merge</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="54">#REDIRECT [[Template:Split article]]
{{R from merge}}</text>
<sha1>n6efsypjn11e9gy7qxqlntkgjd5zrag</sha1>
</revision>
</page>
<page>
<title>Template:Split to</title>
<ns>10</ns>
<id>21573899</id>
<redirect title="Template:Split article" />
<revision>
<id>747877129</id>
<parentid>747298447</parentid>
<timestamp>2016-11-04T22:32:26Z</timestamp>
<contributor>
<username>BU Rob13</username>
<id>25420061</id>
</contributor>
<comment>r from merge</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="54">#REDIRECT [[Template:Split article]]
{{R from merge}}</text>
<sha1>n6efsypjn11e9gy7qxqlntkgjd5zrag</sha1>
</revision>
</page>
<page>
<title>Template:Sqrt</title>
<ns>10</ns>
<id>5673854</id>
<redirect title="Template:Radic" />
<revision>
<id>819688108</id>
<parentid>806929440</parentid>
<timestamp>2018-01-10T19:22:20Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Sqrt]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefini...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="63">#REDIRECT [[Template:Radic]]
{{Rcat shell|
{{R from merge}}
}}</text>
<sha1>p4lnnpx0qr0rftc1maw3mz3kk0bsfdh</sha1>
</revision>
</page>
<page>
<title>Template:Stack</title>
<ns>10</ns>
<id>6757688</id>
<revision>
<id>768924897</id>
<parentid>744219810</parentid>
<timestamp>2017-03-06T15:35:13Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>seems like a sensible addition, revert if this causes problems</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1295">&lt;div class=&quot;mw-stack mobile-float-reset&quot;
style=&quot;box-sizing: border-box; {{{style|{{#switch:{{{clear|}}}
| true = clear:{{{float|right}}};
| left|right|both = clear:{{{clear|}}};
| #default=
}} float:{{{float|right}}};}}}&quot;&gt;&lt;!--
--&gt;{{#if:{{{1|}}}|&lt;div style=&quot;overflow: hidden; margin: {{{cellspacing|1}}}px;&quot;&gt;{{{1}}}&lt;/div&gt;}}&lt;!--
--&gt;{{#if:{{{2|}}}|&lt;div style=&quot;overflow: hidden; margin: {{{cellspacing|1}}}px;&quot;&gt;{{{2}}}&lt;/div&gt;}}&lt;!--
--&gt;{{#if:{{{3|}}}|&lt;div style=&quot;overflow: hidden; margin: {{{cellspacing|1}}}px;&quot;&gt;{{{3}}}&lt;/div&gt;}}&lt;!--
--&gt;{{#if:{{{4|}}}|&lt;div style=&quot;overflow: hidden; margin: {{{cellspacing|1}}}px;&quot;&gt;{{{4}}}&lt;/div&gt;}}&lt;!--
--&gt;{{#if:{{{5|}}}|&lt;div style=&quot;overflow: hidden; margin: {{{cellspacing|1}}}px;&quot;&gt;{{{5}}}&lt;/div&gt;}}&lt;!--
--&gt;{{#if:{{{6|}}}|&lt;div style=&quot;overflow: hidden; margin: {{{cellspacing|1}}}px;&quot;&gt;{{{6}}}&lt;/div&gt;}}&lt;!--
--&gt;{{#if:{{{7|}}}|&lt;div style=&quot;overflow: hidden; margin: {{{cellspacing|1}}}px;&quot;&gt;{{{7}}}&lt;/div&gt;}}&lt;!--
--&gt;{{#if:{{{8|}}}|&lt;div style=&quot;overflow: hidden; margin: {{{cellspacing|1}}}px;&quot;&gt;{{{8}}}&lt;/div&gt;}}&lt;!--
--&gt;{{#if:{{{9|}}}|&lt;div style=&quot;overflow: hidden; margin: {{{cellspacing|1}}}px;&quot;&gt;{{{9}}}&lt;/div&gt;}}&lt;!--
--&gt;&lt;/div&gt;&lt;!--
--&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>41o3fxfrdab7gyg1nlmpowwd3kirvdj</sha1>
</revision>
</page>
<page>
<title>Template:Str crop</title>
<ns>10</ns>
<id>22792911</id>
<revision>
<id>656761583</id>
<parentid>638395630</parentid>
<timestamp>2015-04-16T14:37:18Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>add safesubst:</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="179">&lt;includeonly&gt;{{safesubst:#invoke:String | sub | s={{{1|}}} | 1 | {{safesubst:#expr: -{{{2|1}}} - 1}} | ignore_errors=true }}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}&lt;/noinclude&gt;</text>
<sha1>n0lrovj1bv85hf3j8hj0ny8majdzr3h</sha1>
</revision>
</page>
<page>
<title>Template:Str endswith</title>
<ns>10</ns>
<id>22860091</id>
<revision>
<id>752100802</id>
<parentid>748257234</parentid>
<timestamp>2016-11-29T14:22:27Z</timestamp>
<contributor>
<username>BU Rob13</username>
<id>25420061</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Str endswith]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="71">{{#invoke:Str endswith|main}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>gkfardrqegdkd78zd99vm0nrkhvl505</sha1>
</revision>
</page>
<page>
<title>Template:Str left</title>
<ns>10</ns>
<id>21696393</id>
<revision>
<id>741880261</id>
<parentid>605122708</parentid>
<timestamp>2016-09-30T07:01:19Z</timestamp>
<contributor>
<username>Ymblanter</username>
<id>14596827</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Str left: [[WP:High-risk templates|Highly visible template]]: RFPP request ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="184">&lt;includeonly&gt;{{safesubst:padleft:|{{{2|1}}}|{{{1}}}}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>3rrdme1fpv80h1kdk9b7zwlkqd34dfk</sha1>
</revision>
</page>
<page>
<title>Template:Str len</title>
<ns>10</ns>
<id>22144387</id>
<revision>
<id>774485346</id>
<parentid>538982020</parentid>
<timestamp>2017-04-08T19:49:02Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Str len]]&quot;: [[WP:High-risk templates|Highly visible template]]: Allowing template editors ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="163">{{{{{|safesubst:}}}#invoke:String|len|s={{{1|}}}}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>b1x8qcqpdocnua2ihkd8pr5jd1jn7xn</sha1>
</revision>
</page>
<page>
<title>Template:Str rep</title>
<ns>10</ns>
<id>24238435</id>
<revision>
<id>656461393</id>
<parentid>656457182</parentid>
<timestamp>2015-04-14T16:35:55Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<minor/>
<comment>Protected Template:Str rep: [[WP:High-risk templates|Highly visible template]]: 167176 transclusions ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="100">{{#invoke:String|replace|source={{{1}}}|{{{2}}}|{{{3}}}|1}}&lt;noinclude&gt;
{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>8aojqr2n3b0gv6drwu3safb8kuckf72</sha1>
</revision>
</page>
<page>
<title>Template:Stub</title>
<ns>10</ns>
<id>726079</id>
<revision>
<id>681054964</id>
<parentid>617146299</parentid>
<timestamp>2015-09-14T22:07:23Z</timestamp>
<contributor>
<username>CambridgeBayWeather</username>
<id>294180</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Stub: Allow template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="173">{{asbox
| image =
| pix =
| subject =
| article = article
| qualifier =
| category = stubs
| tempsort = no
| lowercase = y
| name = Template:Stub
}}</text>
<sha1>qpim7wcagjj48hgn00dudy2smec1ojs</sha1>
</revision>
</page>
<page>
<title>Template:Stub documentation</title>
<ns>10</ns>
<id>23060555</id>
<revision>
<id>810049528</id>
<parentid>781132059</parentid>
<timestamp>2017-11-13T02:25:01Z</timestamp>
<contributor>
<username>Hyacinth</username>
<id>17171</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/Hyacinth|Hyacinth]] ([[User talk:Hyacinth|talk]]) to last version by BU Rob13</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1693">This is a '''stub template'''. A brief explanation of these templates follows; for full details please consult [[Wikipedia:Stub]].
=== What is a stub? ===
A stub is an article containing only a few sentences of text which is too short to provide encyclopedic coverage of a subject.
=== How is a stub identified? ===
* If possible, try to find the most appropriate stub template for the article. A full list can be found at [[Wikipedia:WikiProject Stub sorting/List of stubs]].
* More than one stub template may be used, if necessary, though no more than four should be used on any article.
* Place a stub template ''[[MOS:ORDER|at the very end]]'' of the article, after the &quot;External links&quot; section, any navigation templates, and the category tags. As usual, templates are added by including their name inside double braces, e.g. &lt;code&gt;&lt;nowiki&gt;{{stub}}&lt;/nowiki&gt;&lt;/code&gt;.
=== Further information ===
Further information can be found at:
* [[Wikipedia:Stub]]
* [[Wikipedia:WikiProject Stub sorting]]
New stub templates and categories (collectively &quot;stub types&quot;) should not be created without prior proposal at [[Wikipedia:WikiProject Stub sorting/Proposals]]. This allows for the proper coordination of all stub types across Wikipedia, and for the checking of any new stub type for possible problems prior to its creation.
=== See also ===
* [[Template:Empty section]] – To flag an empty section as a '''stub section'''
* [[Template:Expand section]] – To flag sections selectively as incomplete
* [[Template:Data missing]] – To flag missing information or other data
* [[Wikipedia:Article assessment]]
&lt;noinclude&gt;
{{documentation}}
[[Category:Template documentation]]
&lt;/noinclude&gt;</text>
<sha1>gcf1nd12xxxpwz82yvvgz77e7rzt16s</sha1>
</revision>
</page>
<page>
<title>Template:Stub/doc</title>
<ns>10</ns>
<id>24108775</id>
<revision>
<id>607749352</id>
<parentid>565156240</parentid>
<timestamp>2014-05-09T08:49:57Z</timestamp>
<contributor>
<username>Jdforrester (WMF)</username>
<id>16866055</id>
</contributor>
<comment>+ TemplateData</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="259">&lt;!-- Intentionally blank: interlanguage links for [[Template:Stub]] are now held at [[d:Special:ItemByTitle/enwiki/Template:Stub]]. --&gt;
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;Standard template used for sorting articles into stubs.&quot;,
&quot;params&quot;: {}
}
&lt;/templatedata&gt;</text>
<sha1>48epynqa0ny2yq1ovggj3jylysze9r1</sha1>
</revision>
</page>
<page>
<title>Template:Su</title>
<ns>10</ns>
<id>16844188</id>
<revision>
<id>738175934</id>
<parentid>614620386</parentid>
<timestamp>2016-09-07T11:20:24Z</timestamp>
<contributor>
<username>Jc86035</username>
<id>17245768</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="153">{{{{{|safesubst:}}}#invoke:Su|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>86mq7zo1b7pnz8vimm8o4iqd9ulpsjs</sha1>
</revision>
</page>
<page>
<title>Template:Sub</title>
<ns>10</ns>
<id>825723</id>
<revision>
<id>772120923</id>
<parentid>241773706</parentid>
<timestamp>2017-03-25T12:38:47Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Sub]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="151">&lt;includeonly&gt;&lt;sub&gt;{{{1}}}&lt;/sub&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add cats and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>0dcxz86bgxryx188cdl7v3b2rz9mrw7</sha1>
</revision>
</page>
<page>
<title>Template:Sup</title>
<ns>10</ns>
<id>825724</id>
<revision>
<id>772120948</id>
<parentid>241733016</parentid>
<timestamp>2017-03-25T12:38:48Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Sup]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="151">&lt;includeonly&gt;&lt;sup&gt;{{{1}}}&lt;/sup&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add cats and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>p7jtnmtnj3q8sxqqsv78o732eq15smw</sha1>
</revision>
</page>
<page>
<title>Template:Sup sub</title>
<ns>10</ns>
<id>8535760</id>
<revision>
<id>743117862</id>
<parentid>742950886</parentid>
<timestamp>2016-10-07T23:14:19Z</timestamp>
<contributor>
<username>Pppery</username>
<id>28032115</id>
</contributor>
<comment>Tfd closed as keep</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="68">{{su|p={{{1}}}|b={{{2}}}}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>cxope4qnwfzs7y8a2t0if7r1s15cg8w</sha1>
</revision>
</page>
<page>
<title>Template:Tag</title>
<ns>10</ns>
<id>7252577</id>
<revision>
<id>794128426</id>
<parentid>793306182</parentid>
<timestamp>2017-08-06T01:04:45Z</timestamp>
<contributor>
<username>Train2104</username>
<id>10341578</id>
</contributor>
<comment>fix order of switch statements</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="746">&lt;code class=&quot;{{#ifeq:{{{wrap|}}}|yes|wrap|nowrap}}&quot; style=&quot;{{#ifeq:{{{style|}}}|plain|border:none;background:transparent;|{{{style|}}}}}&quot;&gt;&lt;!--
Opening tag
--&gt;{{#switch:{{{2|pair}}}
|c|close =
|e|empty|s|single|v|void
|o|open
|p|pair = &amp;lt;{{{1|tag}}}{{#if:{{{params|}}}|&amp;#32;{{{params}}}}}
}}&lt;!--
Content between tags
--&gt;{{#switch:{{{2|pair}}}
|c|close = {{{content|}}}
|e|empty|s|single|v|void = &amp;#32;&amp;#47;&amp;gt;
|o|open = &amp;gt;{{{content|}}}
|p|pair = {{#ifeq:{{{1|tag}}}|!--||&amp;gt;}}{{{content|...}}}
}}&lt;!--
Closing tag
--&gt;{{#switch:{{{2|pair}}}
|e|empty|s|single|v|void
|o|open =
|c|close
|p|pair = {{#ifeq:{{{1|tag}}}|!--|--&amp;gt;|&amp;lt;&amp;#47;{{{1|tag}}}&amp;gt;}}
}}&lt;!--
--&gt;&lt;/code&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>i26oletgtnmnhueookj1je1dvdw3wvr</sha1>
</revision>
</page>
<page>
<title>Template:Template error report</title>
<ns>10</ns>
<id>51792646</id>
<revision>
<id>804532230</id>
<parentid>761214908</parentid>
<timestamp>2017-10-09T16:54:31Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Template error report]]&quot;: [[WP:High-risk templates|Highly visible template]]; thousands of transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="241">See the [https://tools.wmflabs.org/bambots/TemplateParam.php?wiki=enwiki&amp;template={{Urlencode:{{{1|{{ROOTPAGENAME}}}}}}} monthly error report] for this template.&lt;noinclude&gt;
{{documentation}}
[[Category:External link templates]]&lt;/noinclude&gt;</text>
<sha1>khv3elmnd6elbaw07i91b5bhw2zus66</sha1>
</revision>
</page>
<page>
<title>Template:Template other</title>
<ns>10</ns>
<id>21418395</id>
<revision>
<id>774731050</id>
<parentid>388689098</parentid>
<timestamp>2017-04-10T09:49:10Z</timestamp>
<contributor>
<username>CambridgeBayWeather</username>
<id>294180</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Template other]]&quot;: Request at RFPP ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="435">{{#switch:
&lt;!--If no or empty &quot;demospace&quot; parameter then detect namespace--&gt;
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} &lt;!--Use lower case &quot;demospace&quot;--&gt;
| {{#ifeq:{{NAMESPACE}}|{{ns:Template}}
| template
| other
}}
}}
| template = {{{1|}}}
| other
| #default = {{{2|}}}
}}&lt;!--End switch--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>0tcssjmltwl7y5v3f5wj2kqciaabqly</sha1>
</revision>
</page>
<page>
<title>Template:Template usage</title>
<ns>10</ns>
<id>47053462</id>
<revision>
<id>671784993</id>
<parentid>671753424</parentid>
<timestamp>2015-07-16T23:54:47Z</timestamp>
<contributor>
<username>Cpiral</username>
<id>2517237</id>
</contributor>
<comment>improve the regex tricky part</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5336">&lt;!-- Curly brackets matching should ignore [^}], \{{!}}; insource:/\{} is OK.
--&gt;&lt;onlyinclude&gt;&lt;!--
Make a search link.
--&gt;{{plain link
|url =
{{fullurl:Special:Search|search=&lt;!--
--&gt;{{urlencode:&lt;!-- encodes spaces, so let's avoid unecessary spaces.
Build this query:
hastemplate: template insource:/\{\{ *[Tt]emplate *\| *[^}]*pattern/
Add the ever present &quot;hastemplate:&quot; filter and a space
--&gt;hastemplate:&quot;{{{template|{{{1|Template usage}}}}}}&quot; &lt;!--
Add the &quot;insource:/\{\{ *&quot;
--&gt;insource:/\{\{ *&lt;!--
Add the &quot;[Tt]&quot;.
Save from an expensive, /regexp/i.
--&gt;[{{#invoke:String|sub&lt;!-- saw first [ of a &quot;[Tt]&quot; --&gt;
|{{uc:{{{template|{{{1|Template usage}}}}}}}}|1|1}}{{#invoke:String|sub
|{{lc:{{{template|{{{1|Template usage}}}}}}}}|1|1}}]{{#invoke:String|sub
&lt;!-- ^
You saw ].
Add &quot;emplate&quot;, the rest of the template name, starting from char 2.--&gt;
|{{{template|{{{1|Template usage}}}}}}|2}}&lt;!--
Add the tricky regexp part.
--&gt; *\{{!}}[^}]*&lt;!-- optional space &quot; *&quot; around initial pipe
initial pipe is \|, i.e. \{{!}}
Trickiest part: [character class] inverted with ^: [^any char NOT }]
Zero or more (*) of those &quot;non-curly brackets&quot;.
All this stuff always matches, shows in bold in the search results
Add the users regexp pattern part and closing /.
--&gt;{{{pattern|{{{2|''regexp''}}}}}}/&lt;!--
Add &quot;prefix:&quot; You see the space before it.
--&gt; prefix:&lt;!--
--&gt;{{#switch:&lt;!-- add namespace &quot;numbers and letters&quot; recognition --&gt;
{{{prefix|{{{3|}}}}}}
|#default = {{{prefix|{{{3|{{FULLPAGENAME}}}}}}}}
|n = {{NAMESPACE}}
|0|: = :
|1 = {{ns:1}}:
|2 = {{ns:2}}:
|3 = {{ns:3}}:
|4 = {{ns:4}}:
|5 = {{ns:5}}:
|6 = {{ns:6}}:
|7 = {{ns:7}}:
|8 = {{ns:8}}:
|9 = {{ns:9}}:
|10 = {{ns:10}}:
|11 = {{ns:11}}:
|12 = {{ns:12}}:
|13 = {{ns:13}}:
|14 = {{ns:14}}:
|15 = {{ns:15}}:
|100 = {{ns:100}}:
|101 = {{ns:101}}:
|108 = {{ns:108}}:
|109 = {{ns:109}}:
|118 = {{ns:118}}:
|119 = {{ns:119}}:
|446 = {{ns:446}}:
|447 = {{ns:447}}:
|711 = {{ns:711}}:
|710 = {{ns:710}}:
|828 = {{ns:828}}:
|829 = {{ns:829}}:
|2600 = {{ns:2600}}:
}}
}}&lt;!-- End urlencode. --&gt;
}}&lt;!-- End fullurl
url done
Now for name param of plainlinks.
Appearance of link looks just like the query, unless labeled.
So we're rebuilding the query just for show this time. --&gt;
|name = &lt;!-- for commentary see duplicate above --&gt;
{{#if:
{{{label|{{{4|}}}}}}
|{{{label|{{{4}}}}}}
|{{#if:
{{{prefix|{{{3|}}}}}}
|hastemplate:&quot;{{{template|{{{1|Template usage}}}}}}&quot; &lt;!--
--&gt;insource:/\{\{ *&lt;!--
--&gt;&amp;#91;{{#invoke:String|sub&lt;!-- saw first [ of a &quot;[Tt]&quot; --&gt;
|{{uc:{{{template|{{{1|Template usage}}}}}}}}|1|1}}{{#invoke:String|sub
|{{lc:{{{template|{{{1|Template usage}}}}}}}}|1|1}}&amp;#93;{{#invoke:String|sub
|{{{template|{{{1|Template usage}}}}}}|2}}&lt;!-- ^
--&gt; *\{{!}}&amp;#91;^}&amp;#93;*&lt;!-- optional space &quot; *&quot; around initial pipe
--&gt;{{#invoke:String|replace
|{{#invoke:String|replace
|{{{pattern|{{{2|''regexp''}}}}}}&lt;!-- Given pattern
--&gt;|[|&amp;#91;}}&lt;!-- Replace any/all [ with HTML symbol
--&gt;|]|&amp;#93;}}/&lt;!-- replace any/all ] with there HTML symbol
--&gt; prefix:&lt;!--
--&gt;{{#switch:&lt;!-- add namespace &quot;numbers and letters&quot; recognition --&gt;
{{{prefix|{{{3|}}}}}}
|#default = {{{prefix|{{{3|{{FULLPAGENAME}}}}}}}}
|n = {{NAMESPACE}}
|0|: = &lt;nowiki /&gt;:
|1 = {{ns:1}}:
|2 = {{ns:2}}:
|3 = {{ns:3}}:
|4 = {{ns:4}}:
|5 = {{ns:5}}:
|6 = {{ns:6}}:
|7 = {{ns:7}}:
|8 = {{ns:8}}:
|9 = {{ns:9}}:
|10 = {{ns:10}}:
|11 = {{ns:11}}:
|12 = {{ns:12}}:
|13 = {{ns:13}}:
|14 = {{ns:14}}:
|15 = {{ns:15}}:
|100 = {{ns:100}}:
|101 = {{ns:101}}:
|108 = {{ns:108}}:
|109 = {{ns:109}}:
|118 = {{ns:118}}:
|119 = {{ns:119}}:
|446 = {{ns:446}}:
|447 = {{ns:447}}:
|711 = {{ns:711}}:
|710 = {{ns:710}}:
|828 = {{ns:828}}:
|829 = {{ns:829}}:
|2600 = {{ns:2600}}:
}}
|{{#invoke:String|replace
|{{#invoke:String|replace
|'''Testing''' &lt;kbd&gt;{{{pattern|{{{2}}}}}}&lt;/kbd&gt; '''on this page'''&lt;!--
--&gt;|[|&amp;#91;}}&lt;!-- Replace any/all [ with HTML symbol
--&gt;|]|&amp;#93;}}&lt;!-- replace any/all ] with there HTML symbol--&gt;
}}
}}
}}&lt;!-- End of plainlinks
--&gt;&lt;/onlyinclude&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>5bnzat7x7o2c3eh77ha23yut4a2a92n</sha1>
</revision>
</page>
<page>
<title>Template:TemplateData header</title>
<ns>10</ns>
<id>40047498</id>
<revision>
<id>751699557</id>
<parentid>751697852</parentid>
<timestamp>2016-11-27T09:49:55Z</timestamp>
<contributor>
<username>Zyxw</username>
<id>473593</id>
</contributor>
<minor/>
<comment>fix prior edit</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="470">&lt;div class=&quot;templatedata-header&quot;&gt;{{#if:{{{noheader|}}}| |This is the {{#if:{{{nolink|}}}|TemplateData|[[Wikipedia:TemplateData|TemplateData]]}} documentation for this template used by [[Wikipedia:VisualEditor|VisualEditor]] and other tools.}}
{{Template error report}}
'''TemplateData for {{{1|{{BASEPAGENAME}}}}}'''
&lt;/div&gt;&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
[[Category:TemplateData documentation]]
}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>3ft4xbyvsxu6dppn5iqepshqcb43e27</sha1>
</revision>
</page>
<page>
<title>Template:TemplateDataHeader</title>
<ns>10</ns>
<id>46746520</id>
<redirect title="Template:TemplateData header" />
<revision>
<id>663071012</id>
<timestamp>2015-05-19T11:48:58Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<comment>MSGJ moved page [[Template:TemplateDataHeader]] to [[Template:TemplateData header]]: slightly clearer</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="58">#REDIRECT [[Template:TemplateData header]]
{{R from move}}</text>
<sha1>bfnm7z66t4q2d8otfa0y3vtgkcwrfao</sha1>
</revision>
</page>
<page>
<title>Template:Title disambig text</title>
<ns>10</ns>
<id>23313287</id>
<revision>
<id>649039363</id>
<parentid>649033363</parentid>
<timestamp>2015-02-27T04:03:13Z</timestamp>
<contributor>
<username>Dragons flight</username>
<id>16980</id>
</contributor>
<comment>Undid revision 649033238 by [[Special:Contributions/Mr. Stradivarius|Mr. Stradivarius]] ([[User talk:Mr. Stradivarius|talk]]) rv, doesn't work</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="108">{{#invoke:String|match|{{{1}}}|%s%((.-)%)||-1|ignore_errors=true}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>ilxumhzbwfer1yie7wy5zkbh03dx5fy</sha1>
</revision>
</page>
<page>
<title>Template:Title without disambig</title>
<ns>10</ns>
<id>24755203</id>
<redirect title="Template:PAGENAMEBASE" />
<revision>
<id>774570987</id>
<parentid>634416337</parentid>
<timestamp>2017-04-09T09:56:30Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Title without disambig]]&quot;: Matching redirect target ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="34">#REDIRECT[[Template:PAGENAMEBASE]]</text>
<sha1>5uxpj1syfqtkyzoptezqc64pt4ax47b</sha1>
</revision>
</page>
<page>
<title>Template:Tl</title>
<ns>10</ns>
<id>1487430</id>
<revision>
<id>776260390</id>
<parentid>622723682</parentid>
<timestamp>2017-04-19T22:28:34Z</timestamp>
<contributor>
<username>Lectonar</username>
<id>128863</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Tl]]&quot;: request at rfp ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="168">&amp;#123;&amp;#123;[[Template:{{{1}}}|{{{1}}}]]&amp;#125;&amp;#125;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>h0vr3yvr9jdyd17x82vnav21ngwmxuk</sha1>
</revision>
</page>
<page>
<title>Template:Tla</title>
<ns>10</ns>
<id>30468047</id>
<revision>
<id>558951386</id>
<parentid>496745652</parentid>
<timestamp>2013-06-08T19:38:47Z</timestamp>
<contributor>
<username>Patrick87</username>
<id>17323256</id>
</contributor>
<comment>switch to using [[Template:tlg]] internally</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="644">{{Tlg|subst={{{subst|}}}|nowrap={{{nowrap|}}}|{{{1|}}}&lt;!--
--&gt;|alttext{{#ifeq:{{{2}}}|{{{2|x}}}||x}}={{{2}}}&lt;!--
--&gt;|3{{#ifeq:{{{3}}}|{{{3|x}}}||x}}={{{3}}}&lt;!--
--&gt;|4{{#ifeq:{{{4}}}|{{{4|x}}}||x}}={{{4}}}&lt;!--
--&gt;|5{{#ifeq:{{{5}}}|{{{5|x}}}||x}}={{{5}}}&lt;!--
--&gt;|6{{#ifeq:{{{6}}}|{{{6|x}}}||x}}={{{6}}}&lt;!--
--&gt;|7{{#ifeq:{{{7}}}|{{{7|x}}}||x}}={{{7}}}&lt;!--
--&gt;|8{{#ifeq:{{{8}}}|{{{8|x}}}||x}}={{{8}}}&lt;!--
--&gt;|9{{#ifeq:{{{9}}}|{{{9|x}}}||x}}={{{9}}}&lt;!--
--&gt;|10{{#ifeq:{{{10}}}|{{{10|x}}}||x}}={{{10}}}&lt;!--
--&gt;|11{{#ifeq:{{{11}}}|{{{11|x}}}||x}}={{{11}}}&lt;!--
--&gt;|12{{#ifeq:{{{12}}}|{{{12|x}}}||x}}={{{12}}}}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>ekbj8d6mb201bbowib5w307op3y4n8t</sha1>
</revision>
</page>
<page>
<title>Template:Tlbare</title>
<ns>10</ns>
<id>43565073</id>
<revision>
<id>819686334</id>
<parentid>626313855</parentid>
<timestamp>2018-01-10T19:17:38Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Tlbare]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="238">{{#if:{{str endswith|{{{1}}}|%}} &lt;!--(i.e. if {{{1}}} is a percentage)--&gt;
| [[Template:{{{2}}}|&lt;span style=&quot;font-size:{{{1}}};&quot;&gt;{{{3|{{{2}}}}}}&lt;/span&gt;]]
| [[Template:{{{1}}}|{{{2|{{{1}}}}}}]]
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>atiz55vvk4gem0tvnnsrtowqye3jkoh</sha1>
</revision>
</page>
<page>
<title>Template:Tlc</title>
<ns>10</ns>
<id>16451497</id>
<revision>
<id>651651640</id>
<parentid>558397105</parentid>
<timestamp>2015-03-16T16:28:33Z</timestamp>
<contributor>
<username>SlimVirgin</username>
<id>129409</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Tlc: per RfPP ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="656">&lt;span class=&quot;nowrap&quot;&gt;&lt;code&gt;&amp;#123;&amp;#123;{{#if:{{{1|}}}|{{{1}}}| tlc&amp;#124;...}}&lt;!--
--&gt;{{#ifeq:{{{2|x}}}|{{{2|}}}| &amp;#124;{{{2}}} | }}&lt;!--
--&gt;{{#ifeq:{{{3|x}}}|{{{3|}}}| &amp;#124;{{{3}}} | }}&lt;!--
--&gt;{{#ifeq:{{{4|x}}}|{{{4|}}}| &amp;#124;{{{4}}} | }}&lt;!--
--&gt;{{#ifeq:{{{5|x}}}|{{{5|}}}| &amp;#124;{{{5}}} | }}&lt;!--
--&gt;{{#ifeq:{{{6|x}}}|{{{6|}}}| &amp;#124;{{{6}}} | }}&lt;!--
--&gt;{{#ifeq:{{{7|x}}}|{{{7|}}}| &amp;#124;{{{7}}} | }}&lt;!--
--&gt;{{#ifeq:{{{8|x}}}|{{{8|}}}| &amp;#124;{{{8}}} | }}&lt;!--
--&gt;{{#ifeq:{{{9|x}}}|{{{9|}}}| &amp;#124;{{{9}}} | }}&lt;!--
--&gt;&amp;#125;&amp;#125;&lt;/code&gt;&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>hvz0y5fmfypqrh6hpdtjucpttl59h70</sha1>
</revision>
</page>
<page>
<title>Template:Tlf</title>
<ns>10</ns>
<id>16451586</id>
<revision>
<id>722494583</id>
<parentid>558397063</parentid>
<timestamp>2016-05-28T14:18:30Z</timestamp>
<contributor>
<username>Ymblanter</username>
<id>14596827</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Tlf: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="644">&lt;span class=&quot;nowrap&quot;&gt;&amp;#123;&amp;#123;{{#if:{{{1|}}}|{{{1}}}| tlf&amp;#124;...}}&lt;!--
--&gt;{{#ifeq:{{{2|x}}}|{{{2|}}}| &amp;#124;{{{2}}} | }}&lt;!--
--&gt;{{#ifeq:{{{3|x}}}|{{{3|}}}| &amp;#124;{{{3}}} | }}&lt;!--
--&gt;{{#ifeq:{{{4|x}}}|{{{4|}}}| &amp;#124;{{{4}}} | }}&lt;!--
--&gt;{{#ifeq:{{{5|x}}}|{{{5|}}}| &amp;#124;{{{5}}} | }}&lt;!--
--&gt;{{#ifeq:{{{6|x}}}|{{{6|}}}| &amp;#124;{{{6}}} | }}&lt;!--
--&gt;{{#ifeq:{{{7|x}}}|{{{7|}}}| &amp;#124;{{{7}}} | }}&lt;!--
--&gt;{{#ifeq:{{{8|x}}}|{{{8|}}}| &amp;#124;{{{8}}} | }}&lt;!--
--&gt;{{#ifeq:{{{9|x}}}|{{{9|}}}| &amp;#124;{{{9}}} | }}&lt;!--
--&gt;&amp;#125;&amp;#125;&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc sub-page, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>mz6t9o5pdzfguxfj2q86tiqdtff1jpr</sha1>
</revision>
</page>
<page>
<title>Template:Tlg</title>
<ns>10</ns>
<id>31734151</id>
<revision>
<id>790785155</id>
<parentid>790782997</parentid>
<timestamp>2017-07-16T01:43:12Z</timestamp>
<contributor>
<username>Zyxw</username>
<id>473593</id>
</contributor>
<minor/>
<comment>update placement of span</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2794">&lt;includeonly&gt;&lt;!--
--&gt;{{#if:{{{nowrap|}}} |&lt;span class=&quot;nowrap&quot;&gt;}}&lt;!--
--&gt;{{#if:{{{code|{{{tt|}}}}}} |&lt;code&gt; |{{#if:{{{plaincode|}}}|&lt;code style=&quot;border:none;background:transparent;&quot;&gt;}} }}&lt;!--
--&gt;{{#if:{{{kbd|}}} |&lt;kbd&gt;}}&lt;!--
--&gt;{{#if:{{{nowrapname|}}} |&lt;span class=&quot;nowrap&quot;&gt;}}&lt;!--
--&gt;{{#if:{{{braceinside|}}} | |&lt;nowiki&gt;{{&lt;/nowiki&gt;}}&lt;!--
--&gt;{{#if:{{{subst|}}} |[[Help:Substitution|subst]]:}}&lt;!--
--&gt;{{#if:{{{bold|{{{boldlink|{{{boldname|}}}}}}}}} |'''}}&lt;!--
--&gt;{{#if:{{{nolink|}}} |&lt;!--then omit template link, else:
--&gt;| {{#if:{{{braceinside|}}} |&lt;nowiki&gt;{&lt;/nowiki&gt;}}&lt;!--
--&gt;{{!((}}:&lt;!--(start building link with &quot;[[:&quot;)
--&gt;{{#ifeq:{{padleft:|1|{{{1}}}}}|: &lt;!--i.e. if {{{1}}}'s first character is a colon,
then:--&gt; |{{FULLPAGENAME:{{{1}}}}}&lt;!--
else:--&gt; |{{#switch:{{NAMESPACE:{{#if:{{{1|}}}|{{{1}}}|{{FULLPAGENAME}}}}}}
| {{ns:0}} = {{ns:10}}:{{#if:{{{1|}}}|{{PAGENAME:{{{1}}}}}|{{PAGENAME}}}}
| #default = {{#if:{{{1|}}}|{{FULLPAGENAME:{{{1}}}}}|{{FULLPAGENAME}}}}
}}}}&lt;!--
--&gt;{{!}}&lt;!--(pipe between link and label, i.e. [[:link|label]])
--&gt;}}&lt;!--
--&gt;{{#if:{{{braceinside|}}} |&lt;nowiki&gt;{&lt;/nowiki&gt;}}&lt;!--
label / template name:
--&gt;{{{alttext|{{#if:{{{1|}}}|{{{1}}}|{{#ifeq:{{NAMESPACE}}|{{ns:Template}}|{{PAGENAME}}|{{FULLPAGENAME}}}}}}}}}&lt;!--
--&gt;{{#if:{{{braceinside|}}} |&lt;nowiki&gt;}&lt;/nowiki&gt;}}&lt;!--
--&gt;{{#if:{{{nolink|}}} | |&lt;!--
--&gt;{{!))}}&lt;!--(end link)
--&gt;{{#if:{{{braceinside|}}} |&lt;nowiki&gt;}&lt;/nowiki&gt;}}&lt;!--
--&gt;}}&lt;!--
--&gt;{{#if:{{{bold|{{{boldlink|{{{boldname|}}}}}}}}} |'''}}&lt;!--
--&gt;{{#if:{{{nowrapname|}}} |&lt;/span&gt;}}&lt;!--
--&gt;{{#if:{{{italic|{{{italics|}}}}}} |&lt;span style=&quot;font-style:italic;&quot;&gt;}}&lt;!--
--&gt;{{#ifeq:{{{2|¬}}}|¬ | |&amp;#124;{{#tag:nowiki|{{{2}}}}}}}&lt;!--
--&gt;{{#ifeq:{{{3|¬}}}|¬ | |&amp;#124;{{#tag:nowiki|{{{3}}}}}}}&lt;!--
--&gt;{{#ifeq:{{{4|¬}}}|¬ | |&amp;#124;{{#tag:nowiki|{{{4}}}}}}}&lt;!--
--&gt;{{#ifeq:{{{5|¬}}}|¬ | |&amp;#124;{{#tag:nowiki|{{{5}}}}}}}&lt;!--
--&gt;{{#ifeq:{{{6|¬}}}|¬ | |&amp;#124;{{#tag:nowiki|{{{6}}}}}}}&lt;!--
--&gt;{{#ifeq:{{{7|¬}}}|¬ | |&amp;#124;{{#tag:nowiki|{{{7}}}}}}}&lt;!--
--&gt;{{#ifeq:{{{8|¬}}}|¬ | |&amp;#124;{{#tag:nowiki|{{{8}}}}}}}&lt;!--
--&gt;{{#ifeq:{{{9|¬}}}|¬ | |&amp;#124;{{#tag:nowiki|{{{9}}}}}}}&lt;!--
--&gt;{{#ifeq:{{{10|¬}}}|¬ | |&amp;#124;{{#tag:nowiki|{{{10}}}}}}}&lt;!--
--&gt;{{#ifeq:{{{11|¬}}}|¬ | |&amp;#124;{{#tag:nowiki|{{{11}}}}}}}&lt;!--
--&gt;{{#if:{{{12|}}} |&amp;#124;…}}&lt;!--
--&gt;{{#if:{{{italic|{{{italics|}}}}}} |&lt;/span&gt;}}&lt;!--
--&gt;{{#if:{{{braceinside|}}} | |&lt;nowiki&gt;}}&lt;/nowiki&gt;}}&lt;!--
--&gt;{{#if:{{{kbd|}}} |&lt;/kbd&gt;}}&lt;!--
--&gt;{{#if:{{{code|{{{tt|}}}}}}{{{plaincode|}}} |&lt;/code&gt;}}&lt;!--
--&gt;{{#if:{{{nowrap|}}} |&lt;/span&gt;}}&lt;!--
--&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>byyf1x2onevkha93mms6divoszra5y1</sha1>
</revision>
</page>
<page>
<title>Template:Tlx</title>
<ns>10</ns>
<id>4497810</id>
<revision>
<id>821674175</id>
<parentid>618336566</parentid>
<timestamp>2018-01-21T23:12:17Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>[[MOS:ELLIPSIS]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1051">&lt;includeonly&gt;&lt;!--
--&gt;&lt;code&gt;&lt;!--
--&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{#if:{{{subst|}}} |[[Help:Substitution|subst]]:}}&lt;!--
--&gt;[[{{{LANG|}}}{{{SISTER|}}}{{ns:Template}}:{{{1|}}}|{{{1|}}}]]&lt;!--
--&gt;{{#if:{{{2|}}} |&amp;#124;{{{2}}}}}&lt;!--
--&gt;{{#if:{{{3|}}} |&amp;#124;{{{3}}}}}&lt;!--
--&gt;{{#if:{{{4|}}} |&amp;#124;{{{4}}}}}&lt;!--
--&gt;{{#if:{{{5|}}} |&amp;#124;{{{5}}}}}&lt;!--
--&gt;{{#if:{{{6|}}} |&amp;#124;{{{6}}}}}&lt;!--
--&gt;{{#if:{{{7|}}} |&amp;#124;{{{7}}}}}&lt;!--
--&gt;{{#if:{{{8|}}} |&amp;#124;{{{8}}}}}&lt;!--
--&gt;{{#if:{{{9|}}} |&amp;#124;{{{9}}}}}&lt;!--
--&gt;{{#if:{{{10|}}} |&amp;#124;{{{10}}}}}&lt;!--
--&gt;{{#if:{{{11|}}} |&amp;#124;{{{11}}}}}&lt;!--
--&gt;{{#if:{{{12|}}} |&amp;#124;''...''}}&lt;!--
--&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;!--
--&gt;&lt;/code&gt;&lt;!--
--&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>0dyhbuugzgzyax8gcf5l4wyycg4mps7</sha1>
</revision>
</page>
<page>
<title>Template:Tnull</title>
<ns>10</ns>
<id>11455706</id>
<revision>
<id>811787109</id>
<parentid>738307429</parentid>
<timestamp>2017-11-23T23:43:30Z</timestamp>
<contributor>
<username>Xaosflux</username>
<id>502540</id>
</contributor>
<comment>expand to 11 parameters per request on talk</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="432">&lt;code&gt;&amp;#123;&amp;#123;{{#if:{{{1|}}}|{{{1}}}| tnull&amp;#124;...}}{{#if:{{{2|}}}|&amp;#124;{{{2}}}|}}{{#if:{{{3|}}}|&amp;#124;{{{3}}}|}}{{#if:{{{4|}}}|&amp;#124;{{{4}}}|}}{{#if:{{{5|}}}|&amp;#124;{{{5}}}|}}{{#if:{{{6|}}}|&amp;#124;{{{6}}}|}}{{#if:{{{7|}}}|&amp;#124;{{{7}}}|}}{{#if:{{{8|}}}|&amp;#124;{{{8}}}|}}{{#if:{{{9|}}}|&amp;#124;{{{9}}}|}}{{#if:{{{10|}}}|&amp;#124;{{{10}}}|}}{{#if:{{{11|}}}|&amp;#124;{{{11}}}|}}&amp;#125;&amp;#125;&lt;/code&gt;&lt;noinclude&gt;
{{documentation}}&lt;/noinclude&gt;</text>
<sha1>au6y4erpe6xb0hf46tmfi592qkquye4</sha1>
</revision>
</page>
<page>
<title>Template:Transclude</title>
<ns>10</ns>
<id>21843384</id>
<revision>
<id>706482876</id>
<parentid>706286304</parentid>
<timestamp>2016-02-23T15:58:14Z</timestamp>
<contributor>
<username>Rich Farmbrough</username>
<id>82835</id>
</contributor>
<comment>Simpler approach</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="504">{{#switch: {{NAMESPACE: {{{1}}} }}
|#default = {{FULLPAGENAME: {{{1}}} }} &lt;!-- the namespace was specified eg &quot;User:Foo&quot; &quot;Template:Foo&quot;, &quot;Category:Foo&quot; --&gt;
|{{ns:0}} = &lt;!-- we have either &quot;:Foo&quot; (mainspace) or &quot;Foo&quot; (a template) --&gt;
{{#ifeq: {{First character|{{{1|}}}}}|:
|{{PAGENAME: {{{1}}} }} &lt;!-- leading colon, eg &quot;:Foo&quot;, so we want the article --&gt;
|Template:{{{1}}} &lt;!-- no leading colon, eg &quot;Foo&quot;, so we want the template --&gt;
}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>hinj4nqqqs9occmc7cw0jjzv8yxlr24</sha1>
</revision>
</page>
<page>
<title>Template:Trim</title>
<ns>10</ns>
<id>21815705</id>
<revision>
<id>668935791</id>
<parentid>412919929</parentid>
<timestamp>2015-06-27T18:27:45Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<comment>Merging [[Template:Strip whitespace]] per TfD</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="114">&lt;includeonly&gt;{{ {{{|safesubst:}}}#if:1|{{{x|{{{1|}}}}}}}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>h9devvk8f6nt34tp7zb17s39ge5wquh</sha1>
</revision>
</page>
<page>
<title>Template:Under construction</title>
<ns>10</ns>
<id>2425121</id>
<revision>
<id>792663524</id>
<parentid>771826465</parentid>
<timestamp>2017-07-27T21:25:42Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>tag fix</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3076">&lt;includeonly&gt;{{mbox
| type = notice
| image = {{#if:{{{altimage|}}}|{{{altimage|}}}|[[File:Ambox warning blue construction.svg|50x40px|link=|page is in the middle of an expansion or major revamping]]}}
| text = This {{#if:{{{section|}}}|section|{{#switch:{{NAMESPACE}}
| Talk = [[Help:Talk page|talk page]] {{#if:{{{nosection|}}}||or section}}
| Category = [[Wikipedia:Category|category page]] {{#if:{{{nosection|}}}||or section}}
| Help = [[Help:Contents|help page]] {{#if:{{{nosection|}}}||or section}}
| Portal = [[Wikipedia:Portal|portal]] {{#if:{{{nosection|}}}||or section}}
| Template = [[Wikipedia:Template messages|template page]] {{#if:{{{nosection|}}}||or section}}
| User = [[Wikipedia:User pages|user page]] {{#if:{{{nosection|}}}||or section}}
| User talk = [[Wikipedia:User pages|user talk page]] {{#if:{{{nosection|}}}||or section}}
| Wikipedia = [[Wikipedia:Project namespace|project page]] {{#if:{{{nosection|}}}||or section}}
| Wikipedia talk = [[Wikipedia:Project namespace|project talk page]] {{#if:{{{nosection|}}}||or section}}
| article {{#if:{{{nosection|}}}||or section}}
}}}} '''is in the process of an expansion or major restructuring{{#if:{{{notready|}}}
|, and is not yet ready for use
}}.''' You are welcome to assist in its construction by editing it as well. {{#if:{{{placedby|}}}
|This template was placed by {{#ifeq:{{lcfirst:{{{placedby}}}}}|{{ucfirst:{{{placedby}}}}}
|&lt;!--{{{placedby}}} does not start with a letter - so is probably a signature--&gt;{{{placedby}}}
|{{user|{{{placedby}}}}}
}}.
}} If this {{#if:{{{section|}}}|section|{{#switch:{{NAMESPACE}}
| Talk = [[Help:Talk page|talk page]]
| Category = [[Wikipedia:Category|category page]]
| Help = [[Help:Contents|help page]]
| Portal = [[Wikipedia:Portal|portal]]
| Template = [[Wikipedia:Template messages|template page]]
| User = [[Wikipedia:User pages|user page]]
| User talk = [[Wikipedia:User pages|user talk page]]
| Wikipedia = [[Wikipedia:Project namespace|project page]]
| Wikipedia talk = [[Wikipedia:Project namespace|project talk page]]
| article {{#if:{{{nosection|}}}||or section}}
}}}} &lt;span class=&quot;plainlinks&quot;&gt;[{{SERVER}}{{localurl:{{NAMESPACE}}:{{PAGENAME}}|action=history}} has not been edited in several days]&lt;/span&gt;, please remove this template.&lt;br /&gt;''If you are the editor who added this template and you are actively editing, please be sure to replace this template with {{tlx|in use}} during the active editing session''. Click on the link for template parameters to use.
{{small|{{last edited by}}}}
}}{{#if:{{{comment|}}}
|{{mbox
| type = notice
| image = none
| text = '''Contributor note''': {{{comment}}}
}}
}}{{#ifeq:{{{nocat|}}}|true||{{{category|{{#switch:{{NAMESPACE}}
|{{ns:2}}
|{{ns:3}}=&lt;!-- no category for user/talk pages--&gt;
|#default=[[Category:Pages actively undergoing construction]]
}}}}}}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>bf27nw53xmpov2fm8q3okctsl1patnd</sha1>
</revision>
</page>
<page>
<title>Template:Unicode</title>
<ns>10</ns>
<id>943744</id>
<revision>
<id>719745381</id>
<parentid>719585780</parentid>
<timestamp>2016-05-11T14:40:59Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<comment>rv, subst now complete</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="49">{{{1}}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>czf97dhug2tfuxdx6tj4qo0iu1qsmx4</sha1>
</revision>
</page>
<page>
<title>Template:User page</title>
<ns>10</ns>
<id>1347169</id>
<revision>
<id>710578736</id>
<parentid>669391406</parentid>
<timestamp>2016-03-17T20:21:04Z</timestamp>
<contributor>
<username>Kelapstick</username>
<id>3072955</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:User page: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2141">{{ ombox
| type = &lt;!-- speedy / delete / content / style / notice / move / protection / ??user?? --&gt;
| image = {{{{{|safesubst:}}}#ifeq:{{{logo|}}}|yes|[[file:Wikipedia-logo.svg|60px|link=WP:MAIN|alt=Wiki&lt;!-- --&gt;pedia's globe icon]]|none}}
| imageright = {{{{{|safesubst:}}}#ifeq:{{{logo|}}}|right|[[File:Wikimedia Foundation RGB logo with text.svg|60px|link=foundation:|alt=The Wiki&lt;!-- --&gt;media Foundation's icon]]}}
| style = margin-left: 0; margin-right: 0; border:{{{border-s|1}}}px solid {{{border-c|#ffc9c9}}}; background-color: {{{background|#fffff3}}}; {{{{{|safesubst:}}}#ifeq:{{{rounded|}}}|yes|{{border-radius|15px}}}}
| textstyle = font-size: 85%; text-align: center
| text = '''This is a &lt;span style=&quot;white-space: nowrap&quot;&gt;&lt;span&gt;&amp;#87;&amp;#105;&lt;!-- Wikipedia --&gt;&amp;#107;&amp;#105;&lt;/span&gt;&lt;span&gt;&amp;#112;&amp;#101;&amp;#100;&amp;#105;&amp;#97;&lt;/span&gt;&lt;/span&gt; [[Wikipedia:User pages|user page]].'''{{{1|&lt;br /&gt;}}}This is not an encyclopedia article. If you find this page on any site other than &lt;span style=&quot;white-space: nowrap&quot;&gt;&lt;span&gt;&amp;#87;&amp;#105;&lt;!-- Wikipedia --&gt;&amp;#107;&amp;#105;&lt;/span&gt;&lt;span&gt;&amp;#112;&amp;#101;&amp;#100;&amp;#105;&amp;#97;&lt;/span&gt;,&lt;/span&gt; you are viewing a [[Website#mirror site|mirror site]]. Be aware that the page may be outdated and that the user to whom this page belongs may have no personal affiliation with any site other than &lt;span style=&quot;white-space: nowrap&quot;&gt;&lt;span&gt;&amp;#87;&amp;#105;&lt;!-- Wikipedia --&gt;&amp;#107;&amp;#105;&lt;/span&gt;&lt;span&gt;&amp;#112;&amp;#101;&amp;#100;&amp;#105;&amp;#97;&lt;/span&gt;&lt;/span&gt; itself. The original page is located at &lt;span class=&quot;plainlinks&quot; style=&quot;white-space:nowrap;&quot;&gt;[https://en.wiki&lt;!----&gt;pedia.org/wiki/{{FULLPAGENAMEE}} &lt;span&gt;https://en.wiki&lt;/span&gt;&lt;!----&gt;&lt;span&gt;pedia.org/wi&lt;/span&gt;&lt;span&gt;ki/{{FULLPAGENAMEE}}&lt;/span&gt;].&lt;/span&gt;
| small = &lt;!-- {{{small|}}} --&gt;
| smallimage = &lt;!-- [[file:Some image.svg|30px]] --&gt;
| smallimageright = &lt;!-- [[file:Some image.svg|30px]] --&gt;
| smalltext = &lt;!-- Shorter message body text. --&gt;
}}{{{{{|safesubst:}}}#ifeq:{{{noindex|}}}|yes|__NOINDEX__|}}&lt;noinclude&gt;
{{documentation}}&lt;!-- place category and language links on the /doc sub-page, not here --&gt;
&lt;/noinclude&gt;</text>
<sha1>gforabzsfrg6elxkjtc4fbiqqlmsgfk</sha1>
</revision>
</page>
<page>
<title>Template:User sandbox</title>
<ns>10</ns>
<id>12546911</id>
<revision>
<id>725447518</id>
<parentid>695222394</parentid>
<timestamp>2016-06-15T18:29:26Z</timestamp>
<contributor>
<username>Godsy</username>
<id>23257138</id>
</contributor>
<comment>add link to [[Help:My sandbox]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3115">{{user other
| 1 =
{{Ombox
|type = notice
|image = [[File:Essay.svg|50px|link=]]
|text =
&lt;div&gt;&lt;!--
--&gt;This is {{#if:{{{list|}}}|a|the}} user [[Help:My sandbox|sandbox]] of '''[[{{NAMESPACE}}:{{{1|{{ROOTPAGENAME}}}}}|{{{1|{{ROOTPAGENAME}}}}}]]'''. &lt;!--
--&gt;A user sandbox is a subpage of the user's [[Wikipedia:User pages|user page]]. &lt;!--
--&gt;It serves as a testing spot and page development space for the user and is '''not an encyclopedia article'''. &lt;!--
--&gt;{{#ifeq: {{{plain|}}} | all
| &lt;!--blank--&gt;
| &lt;small&gt;Create or edit your own sandbox [{{fullurl:Special:MyPage/sandbox|action=edit&amp;preload=Template:User_sandbox/preload}} here].&lt;/small&gt;
}}&lt;!--
--&gt;{{#if: {{{list|}}}
| &lt;p&gt;This user's sandboxes: {{{list}}}&lt;/p&gt;
}}&lt;!--
--&gt;{{#if: {{{plain|}}}
| &lt;!--blank--&gt;
| &lt;p&gt;&lt;!--
--&gt;Other sandboxes: &lt;!--
--&gt;[[Wikipedia:Sandbox|Main sandbox]] &amp;#x7c; &lt;!--
--&gt;[[Wikipedia:Tutorial/Editing/sandbox|Tutorial sandbox 1]], &lt;!--
--&gt;[[Wikipedia:Tutorial/Formatting/sandbox|2]], &lt;!--
--&gt;[[Wikipedia:Tutorial/Wikipedia links/sandbox|3]], &lt;!--
--&gt;[[Wikipedia:Tutorial/Citing sources/sandbox|4]], &lt;!--
--&gt;[[Wikipedia:Tutorial/Keep in mind/sandbox|5]] {{!}} &lt;!--
--&gt;[[Template:Template sandbox|Template sandbox]]&lt;!--
--&gt;&lt;/p&gt;
}}&lt;!--
--&gt;&lt;/div&gt;&lt;!--
--&gt;{{#if: {{{selectskin|}}}
| &lt;div style=&quot;font-size:x-small; text-align:center;&quot;&gt;{{selectskin}}&lt;/div&gt;
}}&lt;!--
--&gt;{{#ifeq: {{{afc|}}} | no
| &lt;!-- blank --&gt;
| {{#if: {{{plain|}}}
| &lt;!-- blank --&gt;
| &lt;hr /&gt;{{#invoke:AFC submission catcheck|submitted
| This draft has been submitted and is currently awaiting review.
| Writing an article and ready to request its creation? {{#if: {{REVISIONID}}&lt;noinclude&gt;0&lt;/noinclude&gt;
| &lt;span class=&quot;afc-draft-submit-button&quot;&gt;{{Clickable button 2|Submit your draft for review!|url={{fullurl:{{FULLPAGENAME}}|action=edit&amp;section=new&amp;preload=Template:AFC_submission/Subst&amp;editintro=Template:AFC_submission/Subst/Editintro}}|class=mw-ui-progressive|style=line-height: 1.9em; padding: 0 1.6em 0 1.6em}}&lt;/span&gt;
| Save your work by pressing the &quot;Save page&quot; button below, and a button will appear here allowing you to submit your draft for review.
}}
}}
}}
}}&lt;!--
--&gt;{{#ifeq:{{{noindex|yes}}}|yes| __NOINDEX__ }}
}}
| 2 = {{draft other|1= |2= {{error|This sandbox is in the {{#if:{{NAMESPACE}}|{{NAMESPACE}}|article}} namespace. Either [[Special:MovePage/{{FULLPAGENAME}}|move]] this page into your [[WP:Userpages|userspace]], or remove the {{tp|User sandbox}} template.}}|demospace = {{{demospace|}}} }}&lt;includeonly&gt;[[Category:Non-userspace pages using User sandbox]]&lt;/includeonly&gt;
| demospace = {{{demospace|&lt;noinclude&gt;user&lt;/noinclude&gt;}}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go in Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>d0t9zzwset7eoxgeb2yv4gomwp10mk9</sha1>
</revision>
</page>
<page>
<title>Template:Very long</title>
<ns>10</ns>
<id>2623628</id>
<revision>
<id>784071430</id>
<parentid>746912373</parentid>
<timestamp>2017-06-06T09:08:07Z</timestamp>
<contributor>
<username>UsuallyNonviolentBot</username>
<id>31197275</id>
</contributor>
<minor/>
<comment>/* top */Remove deprecated parameter $N from [[Module:Unsubst]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1108">{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=
&lt;!--{{Very long}} begin--&gt;{{Ambox
| name = {{{name|Very long}}}
| subst = &lt;includeonly&gt;{{{subst|{{subst:substcheck}}}}}&lt;/includeonly&gt;
| type = style
| class = ambox-very_long
| issue = This {{{1|{{#if:{{NAMESPACE}}|page|article}}}}} '''may be [[Wikipedia:Article size|too long]] to read and navigate comfortably'''. {{#if: {{{rps|}}} | The [[WP:SIZERULE|readable prose size]] is {{{rps}}} kilobytes.}}
| fix = {{{fix|Please consider [[WP:splitting|splitting]] content into sub-articles, [[Wikipedia:Summary style|condensing]] it, or adding or removing [[Help:Section#Subsections|subheadings]].}}}
| date = {{{date|}}}
| small = {{{small|}}}
| smalltext = This section is [[Wikipedia:Article size|too long]]. Consider [[WP:splitting|splitting]] it into new pages, adding [[Help:Section#Subsections|subheadings]], or [[Wikipedia:Summary style|condensing]] it.
| cat = Articles that may be too long
}}&lt;!--{{Very long}} end--&gt;
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>p8nerte43f2lte2b4eaznivutui9mss</sha1>
</revision>
</page>
<page>
<title>Template:Warning</title>
<ns>10</ns>
<id>3567077</id>
<revision>
<id>713496843</id>
<parentid>713491665</parentid>
<timestamp>2016-04-04T11:19:21Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>make |align= work as it normally does in other templates</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1107">{{Mbox
| name = Warning
| demospace = {{{demospace|}}}
| style = {{#if:{{{style|}}} |{{#if:{{{small|}}}||margin:inherit auto;width:80%;}} {{{style}}} }}
| subst = &lt;includeonly&gt;{{subst:substcheck}}&lt;/includeonly&gt;
| type = content
| image = {{#if:{{{image|}}}| [[File:{{{image}}}|40px|Warning]] }}
| small = {{{small|}}}
| smallimage = {{#if:{{{image|}}}| [[File:{{{image}}}|30px|Warning]]}}
| imageright = {{#if:{{{imageright|}}} |{{{imageright}}} |{{#if:{{{shortcut|{{{shortcut1|}}}}}} |{{Ombox/shortcut|{{{shortcut|{{{shortcut1|}}}}}}|{{{shortcut2|}}}|{{{shortcut3|}}}|{{{shortcut4|}}}|{{{shortcut5|}}}}}}} }}
| textstyle = {{{textstyle|text-align: {{#if:{{{center|}}}|center|{{{align|left}}}}};}}}}
| text = {{#if:{{{header|{{{heading|{{{title|}}}}}}}}} |&lt;div style=&quot;{{{headstyle|text-align: {{#if:{{{center|}}}|center|left}};}}}&quot;&gt;'''{{{header|{{{heading|{{{title|}}}}}}}}}'''&lt;/div&gt;}}&lt;!--
--&gt;{{{text|{{{content|{{{reason|{{{1}}}}}}}}}}}}
}}&lt;noinclude&gt;
&lt;!-- Add categories to the /doc subpage; interwikis go to Wikidata. --&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>q81ngfe2lci8azix2co7jhada7u0gy5</sha1>
</revision>
</page>
<page>
<title>Template:Wikify</title>
<ns>10</ns>
<id>950036</id>
<revision>
<id>819419253</id>
<parentid>819419172</parentid>
<timestamp>2018-01-09T07:40:43Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>move deprecation note up</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2509">{{main other|{{ambox|class=ambox-wikify|type=speedy|issue=&lt;span style=&quot;background: #FDE0DF; color: Red;&quot;&gt;'''ERROR''':&lt;/span&gt; &lt;span style=&quot;background: #FDE0DF; color: Maroon;&quot;&gt;''the '''&lt;code&gt;&lt;nowiki&gt;{{Wikify}}&lt;/nowiki&gt;&lt;/code&gt;''' template is [[Deprecation|deprecated]] and has been [[Wikipedia:Templates for discussion/Log/2012 August 10#Template:Wikify|deemed by the community]] as too ambiguous; please do not use/[[WP:transclude|transclude]]/[[WP:substitute|substitute]] it.&lt;/span&gt;|fix=&lt;span style=&quot;background: #FDE0DF; color: Maroon;&quot;&gt;Instead, use a more specific template, such as those [[Template:Wikifiy/doc#Cleanup templates|listed in this template's documentation]].''&lt;/span&gt;}}|&lt;noinclude&gt;{{notice|Please use more specific tags such as {{t|Dead end}}, {{t|underlinked}}, {{t|Infobox requested}}, {{t|Cleanup HTML}}, {{t|Lead missing}}, {{t|Lead rewrite}}, {{t|Lead too short}}, {{t|Inadequate lead}}, {{t|Sections}}, {{t|Cleanup bare URLs}}, {{t|Citation style}} and {{t|Lead too long}}.}}&lt;/noinclude&gt;{{Deprecated template|note=Please use a more specific cleanup template, such as from the list below.}}
'''Former appearance of this template:'''{{ambox
| name = Wikify
| subst = &lt;includeonly&gt;{{subst:substcheck}}&lt;/includeonly&gt;
| type = style
| class = ambox-Wikify
| image = [[File:Ambox wikify.svg|50x40px|link=|alt=]]
| issue = This {{{1|article}}} '''may need to be [[Wikipedia:Glossary#Wikify|wikified]] to meet Wikipedia's [[Wikipedia:Manual of Style|quality standards]]'''.
| fix = Please [{{fullurl:{{FULLPAGENAME}}|action=edit}} help] by adding [[Wikipedia:Linking|''relevant'' internal links]], or by improving the article's [[Wikipedia:Layout|layout]].
| date = {{{date|}}}
| info = {{{reason|}}}
}}}}&lt;noinclude&gt;
{{documentation|content={{Wikify}}
== Cleanup templates ==
*{{tl|MOS}}
*{{tl|underlinked}}
*{{tl|overlinked}}
*{{tl|dead end}}
*{{tl|cleanup HTML}}
*{{tl|cleanup bare URLs}}
*{{tl|format footnotes}}
*{{tl|citation style}}
*{{tl|sections}}
*{{tl|lead missing}}
*{{tl|lead too short}}
*{{tl|lead too long}}
*{{tl|inadequate lead}}
*{{tl|lead rewrite}}
*{{tl|infobox requested}} (only on talk pages)
== Notes ==
*The '''Wikify section''' template is also deprecated and redirects here.
*A full list of cleanup templates can be found at [[WP:Template messages/Cleanup]].
== See also ==
* [[Wikipedia:WikiProject Wikify]]
* [[Wikipedia:Templates for discussion/Log/2012 August 10#Template:Wikify]]
[[Category:Deprecated templates kept for historical reasons]]
}}&lt;/noinclude&gt;</text>
<sha1>6fllef4zxl7m6kvthci1t7n3ose4azp</sha1>
</revision>
</page>
<page>
<title>Template:Yes</title>
<ns>10</ns>
<id>1818440</id>
<revision>
<id>600725279</id>
<parentid>600688783</parentid>
<timestamp>2014-03-22T12:32:36Z</timestamp>
<contributor>
<username>Technical 13</username>
<id>14450599</id>
</contributor>
<comment>Trim some bits from this template as it is transcluded hundreds of times on some pages and should be as little as possible.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="211">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#9F9;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&quot; class=&quot;table-yes&quot;|{{{1|Yes}}}&lt;noinclude&gt;
|}
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>g91zppg047mtml3pop7qqio29fjkezn</sha1>
</revision>
</page>
<page>
<title>Template:!!/doc</title>
<ns>10</ns>
<id>7287732</id>
<revision>
<id>775446660</id>
<parentid>732644492</parentid>
<timestamp>2017-04-14T22:52:02Z</timestamp>
<contributor>
<ip>71.208.236.238</ip>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1613">{{Documentation subpage}}
{{High-risk|170,000+}}
This is an auxiliary [[Help:Template|template]] that allows one to encode &quot;&lt;code&gt;||&lt;/code&gt;&quot; (two pipes or [[vertical bar]]s) within template parameters. If it is '''unnecessary''' to get a &quot;&lt;code&gt;||&lt;/code&gt;&quot;, it is better to use &quot;&lt;code&gt;&amp;amp;#124;&amp;amp;#124;&lt;/code&gt;&quot;. However the &quot;&lt;code&gt;||&lt;/code&gt;&quot; delimiter for a [[Wikipedia:Manual of Style/Tables|Wiki table]] has to be [[:Category:Escape character templates|escaped by a template]] if it is used within a template.
== Notes ==
There is usually no such problem with &quot;&lt;code&gt;!!&lt;/code&gt;&quot; (exclamation marks). This problem only affects &quot;&lt;code&gt;||&lt;/code&gt;&quot; (vertical bars) in conjunction with the [[m:Help:Parameter default]] mechanism within tables. However, in table rows starting with &quot;&lt;code&gt;!&lt;/code&gt;&quot; there can be problems with &quot;&lt;code&gt;!!&lt;/code&gt;&quot; being interpreted as a cell separator. Try replacing it with &quot;&lt;code&gt;&amp;amp;#33;&amp;amp;#33;&lt;/code&gt;&quot;.
This template cannot be [[Wikipedia:Substitution|substituted]].
== Parameters ==
&lt;TemplateData&gt;{
&quot;description&quot;: &quot;Escapes double pipe characters within template parameters&quot;,
&quot;params&quot;: {}
}&lt;/TemplateData&gt;
== See also ==
* [[mw:Help:Template#A parameter value containing a pipe character]]
* {{tlx|(!}} Open table
* {{tlx|!}} this is not a template but a &quot;magic word&quot; see [[mw:Help:Magic words#Other]] and {{tim|!}}
* {{tlx|!-}} Start of a table row
* {{tlx|!)}} Close table
*[[Wikipedia:Conditional tables]]
&lt;includeonly&gt;
[[Category:Wikipedia character-substitution templates]]
[[Category:Table templates]]
[[Category:Template namespace templates]]
&lt;/includeonly&gt;</text>
<sha1>ruym3yq8y7ueunjc0dearnzeww6k7l6</sha1>
</revision>
</page>
<page>
<title>Template:Tim</title>
<ns>10</ns>
<id>3318104</id>
<revision>
<id>775470198</id>
<parentid>775470141</parentid>
<timestamp>2017-04-15T02:32:48Z</timestamp>
<contributor>
<ip>86.148.234.55</ip>
</contributor>
<comment>Undid revision 775470141 by [[Special:Contributions/86.148.234.55|86.148.234.55]] ([[User talk:86.148.234.55|talk]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="225">[[m:Template:{{{1|{{PAGENAME}}}}}]]&amp;nbsp;{{smaller|([[m:Special:Whatlinkshere/Template:{{{1|{{PAGENAME}}}}}|backlinks]] [{{fullurl:m:Template:{{{1|{{PAGENAME}}}}}|action=edit}} edit])}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>1dt53co25p7j5yi61n5x4n80eyyc5b5</sha1>
</revision>
</page>
<page>
<title>Module:Arguments</title>
<ns>828</ns>
<id>41298065</id>
<revision>
<id>696500078</id>
<parentid>668829606</parentid>
<timestamp>2015-12-23T16:07:27Z</timestamp>
<contributor>
<username>Xaosflux</username>
<id>502540</id>
</contributor>
<minor/>
<comment>Changed protection level of Module:Arguments: used in the mediawiki interface ex: [[MediaWiki:Watchlist-details]] ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="10054">-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local arguments = {}
-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.
local function tidyValDefault(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' then
return nil
else
return val
end
else
return val
end
end
local function tidyValTrimOnly(key, val)
if type(val) == 'string' then
return val:match('^%s*(.-)%s*$')
else
return val
end
end
local function tidyValRemoveBlanksOnly(key, val)
if type(val) == 'string' then
if val:find('%S') then
return val
else
return nil
end
else
return val
end
end
local function tidyValNoChange(key, val)
return val
end
local function matchesTitle(given, title)
local tp = type( given )
return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end
local translate_mt = { __index = function(t, k) return k end }
function arguments.getArgs(frame, options)
checkType('getArgs', 1, frame, 'table', true)
checkType('getArgs', 2, options, 'table', true)
frame = frame or {}
options = options or {}
--[[
-- Set up argument translation.
--]]
options.translate = options.translate or {}
if getmetatable(options.translate) == nil then
setmetatable(options.translate, translate_mt)
end
if options.backtranslate == nil then
options.backtranslate = {}
for k,v in pairs(options.translate) do
options.backtranslate[v] = k
end
end
if options.backtranslate and getmetatable(options.backtranslate) == nil then
setmetatable(options.backtranslate, {
__index = function(t, k)
if options.translate[k] ~= k then
return nil
else
return k
end
end
})
end
--[[
-- Get the argument tables. If we were passed a valid frame object, get the
-- frame arguments (fargs) and the parent frame arguments (pargs), depending
-- on the options set and on the parent frame's availability. If we weren't
-- passed a valid frame object, we are being called from another Lua module
-- or from the debug console, so assume that we were passed a table of args
-- directly, and assign it to a new variable (luaArgs).
--]]
local fargs, pargs, luaArgs
if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
if options.wrappers then
--[[
-- The wrappers option makes Module:Arguments look up arguments in
-- either the frame argument table or the parent argument table, but
-- not both. This means that users can use either the #invoke syntax
-- or a wrapper template without the loss of performance associated
-- with looking arguments up in both the frame and the parent frame.
-- Module:Arguments will look up arguments in the parent frame
-- if it finds the parent frame's title in options.wrapper;
-- otherwise it will look up arguments in the frame object passed
-- to getArgs.
--]]
local parent = frame:getParent()
if not parent then
fargs = frame.args
else
local title = parent:getTitle():gsub('/sandbox$', '')
local found = false
if matchesTitle(options.wrappers, title) then
found = true
elseif type(options.wrappers) == 'table' then
for _,v in pairs(options.wrappers) do
if matchesTitle(v, title) then
found = true
break
end
end
end
-- We test for false specifically here so that nil (the default) acts like true.
if found or options.frameOnly == false then
pargs = parent.args
end
if not found or options.parentOnly == false then
fargs = frame.args
end
end
else
-- options.wrapper isn't set, so check the other options.
if not options.parentOnly then
fargs = frame.args
end
if not options.frameOnly then
local parent = frame:getParent()
pargs = parent and parent.args or nil
end
end
if options.parentFirst then
fargs, pargs = pargs, fargs
end
else
luaArgs = frame
end
-- Set the order of precedence of the argument tables. If the variables are
-- nil, nothing will be added to the table, which is how we avoid clashes
-- between the frame/parent args and the Lua args.
local argTables = {fargs}
argTables[#argTables + 1] = pargs
argTables[#argTables + 1] = luaArgs
--[[
-- Generate the tidyVal function. If it has been specified by the user, we
-- use that; if not, we choose one of four functions depending on the
-- options chosen. This is so that we don't have to call the options table
-- every time the function is called.
--]]
local tidyVal = options.valueFunc
if tidyVal then
if type(tidyVal) ~= 'function' then
error(
&quot;bad value assigned to option 'valueFunc'&quot;
.. '(function expected, got '
.. type(tidyVal)
.. ')',
2
)
end
elseif options.trim ~= false then
if options.removeBlanks ~= false then
tidyVal = tidyValDefault
else
tidyVal = tidyValTrimOnly
end
else
if options.removeBlanks ~= false then
tidyVal = tidyValRemoveBlanksOnly
else
tidyVal = tidyValNoChange
end
end
--[[
-- Set up the args, metaArgs and nilArgs tables. args will be the one
-- accessed from functions, and metaArgs will hold the actual arguments. Nil
-- arguments are memoized in nilArgs, and the metatable connects all of them
-- together.
--]]
local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
setmetatable(args, metatable)
local function mergeArgs(tables)
--[[
-- Accepts multiple tables as input and merges their keys and values
-- into one table. If a value is already present it is not overwritten;
-- tables listed earlier have precedence. We are also memoizing nil
-- values, which can be overwritten if they are 's' (soft).
--]]
for _, t in ipairs(tables) do
for key, val in pairs(t) do
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
local tidiedVal = tidyVal(key, val)
if tidiedVal == nil then
nilArgs[key] = 's'
else
metaArgs[key] = tidiedVal
end
end
end
end
end
--[[
-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
-- and are only fetched from the argument tables once. Fetching arguments
-- from the argument tables is the most resource-intensive step in this
-- module, so we try and avoid it where possible. For this reason, nil
-- arguments are also memoized, in the nilArgs table. Also, we keep a record
-- in the metatable of when pairs and ipairs have been called, so we do not
-- run pairs and ipairs on the argument tables more than once. We also do
-- not run ipairs on fargs and pargs if pairs has already been run, as all
-- the arguments will already have been copied over.
--]]
metatable.__index = function (t, key)
--[[
-- Fetches an argument when the args table is indexed. First we check
-- to see if the value is memoized, and if not we try and fetch it from
-- the argument tables. When we check memoization, we need to check
-- metaArgs before nilArgs, as both can be non-nil at the same time.
-- If the argument is not present in metaArgs, we also check whether
-- pairs has been run yet. If pairs has already been run, we return nil.
-- This is because all the arguments will have already been copied into
-- metaArgs by the mergeArgs function, meaning that any other arguments
-- must be nil.
--]]
if type(key) == 'string' then
key = options.translate[key]
end
local val = metaArgs[key]
if val ~= nil then
return val
elseif metatable.donePairs or nilArgs[key] then
return nil
end
for _, argTable in ipairs(argTables) do
local argTableVal = tidyVal(key, argTable[key])
if argTableVal ~= nil then
metaArgs[key] = argTableVal
return argTableVal
end
end
nilArgs[key] = 'h'
return nil
end
metatable.__newindex = function (t, key, val)
-- This function is called when a module tries to add a new value to the
-- args table, or tries to change an existing value.
if type(key) == 'string' then
key = options.translate[key]
end
if options.readOnly then
error(
'could not write to argument table key &quot;'
.. tostring(key)
.. '&quot;; the table is read-only',
2
)
elseif options.noOverwrite and args[key] ~= nil then
error(
'could not write to argument table key &quot;'
.. tostring(key)
.. '&quot;; overwriting existing arguments is not permitted',
2
)
elseif val == nil then
--[[
-- If the argument is to be overwritten with nil, we need to erase
-- the value in metaArgs, so that __index, __pairs and __ipairs do
-- not use a previous existing value, if present; and we also need
-- to memoize the nil in nilArgs, so that the value isn't looked
-- up in the argument tables if it is accessed again.
--]]
metaArgs[key] = nil
nilArgs[key] = 'h'
else
metaArgs[key] = val
end
end
local function translatenext(invariant)
local k, v = next(invariant.t, invariant.k)
invariant.k = k
if k == nil then
return nil
elseif type(k) ~= 'string' or not options.backtranslate then
return k, v
else
local backtranslate = options.backtranslate[k]
if backtranslate == nil then
-- Skip this one. This is a tail call, so this won't cause stack overflow
return translatenext(invariant)
else
return backtranslate, v
end
end
end
metatable.__pairs = function ()
-- Called when pairs is run on the args table.
if not metatable.donePairs then
mergeArgs(argTables)
metatable.donePairs = true
end
return translatenext, { t = metaArgs }
end
local function inext(t, i)
-- This uses our __index metamethod
local v = t[i + 1]
if v ~= nil then
return i + 1, v
end
end
metatable.__ipairs = function (t)
-- Called when ipairs is run on the args table.
return inext, t, 0
end
return args
end
return arguments</text>
<sha1>5qx9tzlul9ser30uxj9nbasjt92cevn</sha1>
</revision>
</page>
<page>
<title>Module:Category handler</title>
<ns>828</ns>
<id>39772274</id>
<revision>
<id>617942873</id>
<parentid>616811662</parentid>
<timestamp>2014-07-22T05:08:26Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>allow invocations specifying the page parameter to use the mw.loadData optimisations, and don't call mw.title.new every time</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="7871">--------------------------------------------------------------------------------
-- --
-- CATEGORY HANDLER --
-- --
-- This module implements the {{category handler}} template in Lua, --
-- with a few improvements: all namespaces and all namespace aliases --
-- are supported, and namespace names are detected automatically for --
-- the local wiki. This module requires [[Module:Namespace detect]] --
-- and [[Module:Yesno]] to be available on the local wiki. It can be --
-- configured for different wikis by altering the values in --
-- [[Module:Category handler/config]], and pages can be blacklisted --
-- from categorisation by using [[Module:Category handler/blacklist]]. --
-- --
--------------------------------------------------------------------------------
-- Load required modules
local yesno = require('Module:Yesno')
-- Lazily load things we don't always need
local mShared, mappings
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function trimWhitespace(s, removeBlanks)
if type(s) ~= 'string' then
return s
end
s = s:match('^%s*(.-)%s*$')
if removeBlanks then
if s ~= '' then
return s
else
return nil
end
else
return s
end
end
--------------------------------------------------------------------------------
-- CategoryHandler class
--------------------------------------------------------------------------------
local CategoryHandler = {}
CategoryHandler.__index = CategoryHandler
function CategoryHandler.new(data, args)
local obj = setmetatable({ _data = data, _args = args }, CategoryHandler)
-- Set the title object
do
local pagename = obj:parameter('demopage')
local success, titleObj
if pagename then
success, titleObj = pcall(mw.title.new, pagename)
end
if success and titleObj then
obj.title = titleObj
if titleObj == mw.title.getCurrentTitle() then
obj._usesCurrentTitle = true
end
else
obj.title = mw.title.getCurrentTitle()
obj._usesCurrentTitle = true
end
end
-- Set suppression parameter values
for _, key in ipairs{'nocat', 'categories'} do
local value = obj:parameter(key)
value = trimWhitespace(value, true)
obj['_' .. key] = yesno(value)
end
do
local subpage = obj:parameter('subpage')
local category2 = obj:parameter('category2')
if type(subpage) == 'string' then
subpage = mw.ustring.lower(subpage)
end
if type(category2) == 'string' then
subpage = mw.ustring.lower(category2)
end
obj._subpage = trimWhitespace(subpage, true)
obj._category2 = trimWhitespace(category2) -- don't remove blank values
end
return obj
end
function CategoryHandler:parameter(key)
local parameterNames = self._data.parameters[key]
local pntype = type(parameterNames)
if pntype == 'string' or pntype == 'number' then
return self._args[parameterNames]
elseif pntype == 'table' then
for _, name in ipairs(parameterNames) do
local value = self._args[name]
if value ~= nil then
return value
end
end
return nil
else
error(string.format(
'invalid config key &quot;%s&quot;',
tostring(key)
), 2)
end
end
function CategoryHandler:isSuppressedByArguments()
return
-- See if a category suppression argument has been set.
self._nocat == true
or self._categories == false
or (
self._category2
and self._category2 ~= self._data.category2Yes
and self._category2 ~= self._data.category2Negative
)
-- Check whether we are on a subpage, and see if categories are
-- suppressed based on our subpage status.
or self._subpage == self._data.subpageNo and self.title.isSubpage
or self._subpage == self._data.subpageOnly and not self.title.isSubpage
end
function CategoryHandler:shouldSkipBlacklistCheck()
-- Check whether the category suppression arguments indicate we
-- should skip the blacklist check.
return self._nocat == false
or self._categories == true
or self._category2 == self._data.category2Yes
end
function CategoryHandler:matchesBlacklist()
if self._usesCurrentTitle then
return self._data.currentTitleMatchesBlacklist
else
mShared = mShared or require('Module:Category handler/shared')
return mShared.matchesBlacklist(
self.title.prefixedText,
mw.loadData('Module:Category handler/blacklist')
)
end
end
function CategoryHandler:isSuppressed()
-- Find if categories are suppressed by either the arguments or by
-- matching the blacklist.
return self:isSuppressedByArguments()
or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist()
end
function CategoryHandler:getNamespaceParameters()
if self._usesCurrentTitle then
return self._data.currentTitleNamespaceParameters
else
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
return mShared.getNamespaceParameters(
self.title,
mappings
)
end
end
function CategoryHandler:namespaceParametersExist()
-- Find whether any namespace parameters have been specified.
-- We use the order &quot;all&quot; --&gt; namespace params --&gt; &quot;other&quot; as this is what
-- the old template did.
if self:parameter('all') then
return true
end
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
for ns, params in pairs(mappings) do
for i, param in ipairs(params) do
if self._args[param] then
return true
end
end
end
if self:parameter('other') then
return true
end
return false
end
function CategoryHandler:getCategories()
local params = self:getNamespaceParameters()
local nsCategory
for i, param in ipairs(params) do
local value = self._args[param]
if value ~= nil then
nsCategory = value
break
end
end
if nsCategory ~= nil or self:namespaceParametersExist() then
-- Namespace parameters exist - advanced usage.
if nsCategory == nil then
nsCategory = self:parameter('other')
end
local ret = {self:parameter('all')}
local numParam = tonumber(nsCategory)
if numParam and numParam &gt;= 1 and math.floor(numParam) == numParam then
-- nsCategory is an integer
ret[#ret + 1] = self._args[numParam]
else
ret[#ret + 1] = nsCategory
end
if #ret &lt; 1 then
return nil
else
return table.concat(ret)
end
elseif self._data.defaultNamespaces[self.title.namespace] then
-- Namespace parameters don't exist, simple usage.
return self._args[1]
end
return nil
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- Used for testing purposes.
return {
CategoryHandler = CategoryHandler
}
end
function p._main(args, data)
data = data or mw.loadData('Module:Category handler/data')
local handler = CategoryHandler.new(data, args)
if handler:isSuppressed() then
return nil
end
return handler:getCategories()
end
function p.main(frame, data)
data = data or mw.loadData('Module:Category handler/data')
local args = require('Module:Arguments').getArgs(frame, {
wrappers = data.wrappers,
valueFunc = function (k, v)
v = trimWhitespace(v)
if type(k) == 'number' then
if v ~= '' then
return v
else
return nil
end
else
return v
end
end
})
return p._main(args, data)
end
return p</text>
<sha1>letwavu3yvlayfzew66uuwixmwebq5b</sha1>
</revision>
</page>
<page>
<title>Module:Category handler/blacklist</title>
<ns>828</ns>
<id>43232926</id>
<revision>
<id>757409491</id>
<parentid>757402070</parentid>
<timestamp>2016-12-30T14:53:53Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>on second thoughts, blacklisting sandboxes for all templates is probably a bad idea</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="764">-- This module contains the blacklist used by [[Module:Category handler]].
-- Pages that match Lua patterns in this list will not be categorised unless
-- categorisation is explicitly requested.
return {
'^Main Page$', -- don't categorise the main page.
-- Don't categorise the following pages or their subpages.
-- &quot;%f[/\0]&quot; matches if the next character is &quot;/&quot; or the end of the string.
'^Wikipedia:Cascade%-protected items%f[/\0]',
'^User:UBX%f[/\0]', -- The userbox &quot;template&quot; space.
'^User talk:UBX%f[/\0]',
-- Don't categorise subpages of these pages, but allow
-- categorisation of the base page.
'^Wikipedia:Template messages/.*$',
-- Don't categorise archives.
'/[aA]rchive',
&quot;^Wikipedia:Administrators' noticeboard/IncidentArchive%d+$&quot;,
}</text>
<sha1>hwue3i1eua4tsdxlsbcs4f5syudywbe</sha1>
</revision>
</page>
<page>
<title>Module:Category handler/config</title>
<ns>828</ns>
<id>42291997</id>
<revision>
<id>616764079</id>
<parentid>616045566</parentid>
<timestamp>2014-07-13T09:05:36Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected Module:Category handler/config: [[WP:High-risk templates|High-risk Lua module]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="5755">--------------------------------------------------------------------------------
-- [[Module:Category handler]] configuration data --
-- Language-specific parameter names and values can be set here. --
-- For blacklist config, see [[Module:Category handler/blacklist]]. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Start configuration data --
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- foo = 'parameter name', --
-- --
-- To add multiple names, you can use this format: --
-- --
-- foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'}, --
--------------------------------------------------------------------------------
cfg.parameters = {
-- The nocat and categories parameter suppress
-- categorisation. They are used with Module:Yesno, and work as follows:
--
-- cfg.nocat:
-- Result of yesno() Effect
-- true Categorisation is suppressed
-- false Categorisation is allowed, and
-- the blacklist check is skipped
-- nil Categorisation is allowed
--
-- cfg.categories:
-- Result of yesno() Effect
-- true Categorisation is allowed, and
-- the blacklist check is skipped
-- false Categorisation is suppressed
-- nil Categorisation is allowed
nocat = 'nocat',
categories = 'categories',
-- The parameter name for the legacy &quot;category2&quot; parameter. This skips the
-- blacklist if set to the cfg.category2Yes value, and suppresses
-- categorisation if present but equal to anything other than
-- cfg.category2Yes or cfg.category2Negative.
category2 = 'category2',
-- cfg.subpage is the parameter name to specify how to behave on subpages.
subpage = 'subpage',
-- The parameter for data to return in all namespaces.
all = 'all',
-- The parameter name for data to return if no data is specified for the
-- namespace that is detected.
other = 'other',
-- The parameter name used to specify a page other than the current page;
-- used for testing and demonstration.
demopage = 'page',
}
--------------------------------------------------------------------------------
-- Parameter values --
-- These are set values that can be used with certain parameters. Only one --
-- value can be specified, like this: --
-- --
-- cfg.foo = 'value name' -- --
--------------------------------------------------------------------------------
-- The following settings are used with the cfg.category2 parameter. Setting
-- cfg.category2 to cfg.category2Yes skips the blacklist, and if cfg.category2
-- is present but equal to anything other than cfg.category2Yes or
-- cfg.category2Negative then it supresses cateogrisation.
cfg.category2Yes = 'yes'
cfg.category2Negative = '¬'
-- The following settings are used with the cfg.subpage parameter.
-- cfg.subpageNo is the value to specify to not categorise on subpages;
-- cfg.subpageOnly is the value to specify to only categorise on subpages.
cfg.subpageNo = 'no'
cfg.subpageOnly = 'only'
--------------------------------------------------------------------------------
-- Default namespaces --
-- This is a table of namespaces to categorise by default. The keys are the --
-- namespace numbers. --
--------------------------------------------------------------------------------
cfg.defaultNamespaces = {
[ 0] = true, -- main
[ 6] = true, -- file
[ 12] = true, -- help
[ 14] = true, -- category
[100] = true, -- portal
[108] = true, -- book
}
--------------------------------------------------------------------------------
-- Wrappers --
-- This is a wrapper template or a list of wrapper templates to be passed to --
-- [[Module:Arguments]]. --
--------------------------------------------------------------------------------
cfg.wrappers = 'Template:Category handler'
--------------------------------------------------------------------------------
-- End configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.</text>
<sha1>6ga9hbq2pdwalsvx68i53dmbr421rq5</sha1>
</revision>
</page>
<page>
<title>Module:Category handler/data</title>
<ns>828</ns>
<id>43233647</id>
<revision>
<id>616764105</id>
<parentid>616020360</parentid>
<timestamp>2014-07-13T09:05:55Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected Module:Category handler/data: [[WP:High-risk templates|High-risk Lua module]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="631">-- This module assembles data to be passed to [[Module:Category handler]] using
-- mw.loadData. This includes the configuration data and whether the current
-- page matches the title blacklist.
local data = require('Module:Category handler/config')
local mShared = require('Module:Category handler/shared')
local blacklist = require('Module:Category handler/blacklist')
local title = mw.title.getCurrentTitle()
data.currentTitleMatchesBlacklist = mShared.matchesBlacklist(
title.prefixedText,
blacklist
)
data.currentTitleNamespaceParameters = mShared.getNamespaceParameters(
title,
mShared.getParamMappings()
)
return data</text>
<sha1>k26mwixuaeijisfddb0sxkg82iux8v4</sha1>
</revision>
</page>
<page>
<title>Module:Category handler/shared</title>
<ns>828</ns>
<id>43232937</id>
<revision>
<id>616764145</id>
<parentid>616020201</parentid>
<timestamp>2014-07-13T09:06:15Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected Module:Category handler/shared: [[WP:High-risk templates|High-risk Lua module]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="888">-- This module contains shared functions used by [[Module:Category handler]]
-- and its submodules.
local p = {}
function p.matchesBlacklist(page, blacklist)
for i, pattern in ipairs(blacklist) do
local match = mw.ustring.match(page, pattern)
if match then
return true
end
end
return false
end
function p.getParamMappings(useLoadData)
local dataPage = 'Module:Namespace detect/data'
if useLoadData then
return mw.loadData(dataPage).mappings
else
return require(dataPage).mappings
end
end
function p.getNamespaceParameters(titleObj, mappings)
-- We don't use title.nsText for the namespace name because it adds
-- underscores.
local mappingsKey
if titleObj.isTalkPage then
mappingsKey = 'talk'
else
mappingsKey = mw.site.namespaces[titleObj.namespace].name
end
mappingsKey = mw.ustring.lower(mappingsKey)
return mappings[mappingsKey] or {}
end
return p</text>
<sha1>omlsnhudxz6juptvtxz7ns97jutbzc5</sha1>
</revision>
</page>
<page>
<title>Module:Documentation</title>
<ns>828</ns>
<id>40256557</id>
<revision>
<id>729280556</id>
<parentid>725653683</parentid>
<timestamp>2016-07-11T04:31:31Z</timestamp>
<contributor>
<username>Andy M. Wang</username>
<id>516856</id>
</contributor>
<comment>rm alt text on icon, since the adjacent text, &quot;Template documentation&quot; or &quot;Module documentation&quot;, is sufficient alternative text (per [[Special:Diff/729145419|edit request]])</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="36685">-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
local messageBox = require('Module:Message box')
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message &quot;foo-message&quot; had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return &quot;Foo qux bar baz.&quot;
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
local ret = ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
return ret
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim &lt; 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
return '&lt;small style=&quot;font-style: normal;&quot;&gt;(' .. table.concat(ret, ' &amp;#124; ') .. ')&lt;/small&gt;'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Main function
----------------------------------------------------------------------------
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--
-- Messages:
-- 'main-div-id' --&gt; 'template-documentation'
-- 'main-div-classes' --&gt; 'template-documentation iezoomfix'
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:wikitext(p.protectionTemplate(env))
:wikitext(p.sandboxNotice(args, env))
-- This div tag is from {{documentation/start box}}, but moving it here
-- so that we don't have to worry about unclosed tags.
:tag('div')
:attr('id', message('main-div-id'))
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
:css('clear', 'both') -- So right or left floating items don't stick out of the doc box.
:newline()
:done()
:done()
:wikitext(p._endBox(args, env))
:wikitext(p.addTrackingCategories(env))
return tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title objects and other namespace- or
-- path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
-- env.printTitle - the print version of the template, located at the /Print subpage.
--
-- Data includes:
-- env.protectionLevels - the protection levels table of the title object.
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --&gt; 'sandbox'
-- 'testcases-subpage' --&gt; 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --&gt; 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --&gt; 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --&gt; 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.printTitle()
--[[
-- Title object for the /Print subpage.
-- Messages:
-- 'print-subpage' --&gt; 'Print'
--]]
return env.templateTitle:subPageTitle(message('print-subpage'))
end
function envFuncs.protectionLevels()
-- The protection levels table of the title object.
return env.title.protectionLevels
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the same as the
-- subject namespace. However, pages in the Article, File, MediaWiki or Category
-- namespaces must have their /doc, /sandbox and /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Auxiliary templates
----------------------------------------------------------------------------
function p.sandboxNotice(args, env)
--[=[
-- Generates a sandbox notice for display above sandbox pages.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-notice-image' --&gt; '[[Image:Sandbox.svg|50px|alt=|link=]]'
-- 'sandbox-notice-blurb' --&gt; 'This is the $1 for $2.'
-- 'sandbox-notice-diff-blurb' --&gt; 'This is the $1 for $2 ($3).'
-- 'sandbox-notice-pagetype-template' --&gt; '[[Wikipedia:Template test cases|template sandbox]] page'
-- 'sandbox-notice-pagetype-module' --&gt; '[[Wikipedia:Template test cases|module sandbox]] page'
-- 'sandbox-notice-pagetype-other' --&gt; 'sandbox page'
-- 'sandbox-notice-compare-link-display' --&gt; 'diff'
-- 'sandbox-notice-testcases-blurb' --&gt; 'See also the companion subpage for $1.'
-- 'sandbox-notice-testcases-link-display' --&gt; 'test cases'
-- 'sandbox-category' --&gt; 'Template sandboxes'
--]=]
local title = env.title
local sandboxTitle = env.sandboxTitle
local templateTitle = env.templateTitle
local subjectSpace = env.subjectSpace
if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then
return nil
end
-- Build the table of arguments to pass to {{ombox}}. We need just two fields, &quot;image&quot; and &quot;text&quot;.
local omargs = {}
omargs.image = message('sandbox-notice-image')
-- Get the text. We start with the opening blurb, which is something like
-- &quot;This is the template sandbox for [[Template:Foo]] (diff).&quot;
local text = ''
local pagetype
if subjectSpace == 10 then
pagetype = message('sandbox-notice-pagetype-template')
elseif subjectSpace == 828 then
pagetype = message('sandbox-notice-pagetype-module')
else
pagetype = message('sandbox-notice-pagetype-other')
end
local templateLink = makeWikilink(templateTitle.prefixedText)
local compareUrl = env.compareUrl
if compareUrl then
local compareDisplay = message('sandbox-notice-compare-link-display')
local compareLink = makeUrlLink(compareUrl, compareDisplay)
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
else
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
end
-- Get the test cases page blurb if the page exists. This is something like
-- &quot;See also the companion subpage for [[Template:Foo/testcases|test cases]].&quot;
local testcasesTitle = env.testcasesTitle
if testcasesTitle and testcasesTitle.exists then
if testcasesTitle.namespace == mw.site.namespaces.Module.id then
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
text = text .. '&lt;br /&gt;' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink})
else
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
text = text .. '&lt;br /&gt;' .. message('sandbox-notice-testcases-blurb', {testcasesLink})
end
end
-- Add the sandbox to the sandbox category.
text = text .. makeCategoryLink(message('sandbox-category'))
omargs.text = text
local ret = '&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;'
ret = ret .. messageBox.main('ombox', omargs)
return ret
end
function p.protectionTemplate(env)
-- Generates the padlock icon in the top right.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'protection-template' --&gt; 'pp-template'
-- 'protection-template-args' --&gt; {docusage = 'yes'}
local protectionLevels, mProtectionBanner
local title = env.title
protectionLevels = env.protectionLevels
if not protectionLevels then
return nil
end
local editProt = protectionLevels.edit and protectionLevels.edit[1]
local moveProt = protectionLevels.move and protectionLevels.move[1]
if editProt then
-- The page is edit-protected.
mProtectionBanner = require('Module:Protection banner')
local reason = message('protection-reason-edit')
return mProtectionBanner._main{reason, small = true}
elseif moveProt and moveProt ~= 'autoconfirmed' then
-- The page is move-protected but not edit-protected. Exclude move
-- protection with the level &quot;autoconfirmed&quot;, as this is equivalent to
-- no move protection at all.
mProtectionBanner = require('Module:Protection banner')
return mProtectionBanner._main{action = 'move', small = true}
else
return nil
end
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --&gt; 'view'
-- 'edit-link-display' --&gt; 'edit'
-- 'history-link-display' --&gt; 'history'
-- 'purge-link-display' --&gt; 'purge'
-- 'file-docpage-preload' --&gt; 'Template:Documentation/preload-filespace'
-- 'module-preload' --&gt; 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --&gt; 'Template:Documentation/preload'
-- 'create-link-display' --&gt; 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 6 then -- File namespace
preload = message('file-docpage-preload')
elseif subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '&amp;#91;') -- Replace square brackets with HTML entities.
s = s:gsub('%]', '&amp;#93;')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --&gt; '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --&gt; 'Template documentation'
-- 'module-namespace-heading' --&gt; 'Module documentation'
-- 'file-namespace-heading' --&gt; 'Summary'
-- 'other-namespaces-heading' --&gt; 'Documentation'
-- 'start-box-linkclasses' --&gt; 'mw-editsection-like plainlinks'
-- 'start-box-link-id' --&gt; 'doc_editlinks'
-- 'testcases-create-link-display' --&gt; 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an &quot;other namespaces&quot; namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
elseif subjectSpace == 10 then
-- We are in the template or template talk namespaces.
data.headingFontWeight = 'bold'
data.headingFontSize = '125%'
else
data.headingFontSize = '150%'
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
data.linksClass = message('start-box-linkclasses')
data.linksId = message('start-box-link-id')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
:css('padding-bottom', '3px')
:css('border-bottom', '1px solid #aaa')
:css('margin-bottom', '1ex')
:newline()
:tag('span')
:cssText(data.headingStyleText)
:css('font-weight', data.headingFontWeight)
:css('font-size', data.headingFontSize)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that &quot;=== Headings ===&quot; at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'fmbox-id' --&gt; 'documentation-meta-data'
-- 'fmbox-style' --&gt; 'background-color: #ecfcf4'
-- 'fmbox-textstyle' --&gt; 'font-style: italic'
--
-- The HTML is generated by the {{fmbox}} template, courtesy of [[Module:Message box]].
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the arguments for {{fmbox}}.
local fmargs = {}
fmargs.id = message('fmbox-id') -- Sets 'documentation-meta-data'
fmargs.image = 'none'
fmargs.style = message('fmbox-style') -- Sets 'background-color: #ecfcf4'
fmargs.textstyle = message('fmbox-textstyle') -- 'font-style: italic;'
-- Assemble the fmbox text field.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- &quot;This documentation is transcluded from [[Foo]].&quot;
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- &quot;Editors can experiment in this template's sandbox and testcases pages.&quot;
text = text .. (p.makeExperimentBlurb(args, env) or '')
text = text .. '&lt;br /&gt;'
if not args.content and not args[1] then
-- &quot;Please add categories to the /doc subpage.&quot;
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --&quot;Subpages of this template&quot;
local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates.
if printBlurb then
text = text .. '&lt;br /&gt;' .. printBlurb
end
end
end
fmargs.text = text
return messageBox.main('fmbox', fmargs)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb &quot;This documentation is transcluded from [[Template:Foo]] (edit, history)&quot;.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --&gt; 'edit'
-- 'history-link-display' --&gt; 'history'
-- 'transcluded-from-blurb' --&gt;
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Wikipedia:Transclusion|transcluded]] from $1.'
-- 'module-preload' --&gt; 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --&gt; 'create'
-- 'create-module-doc-blurb' --&gt;
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '&lt;br /&gt;'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '&lt;br /&gt;'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text &quot;Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.&quot;
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --&gt; 'sandbox'
-- 'sandbox-edit-link-display' --&gt; 'edit'
-- 'compare-link-display' --&gt; 'diff'
-- 'module-sandbox-preload' --&gt; 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --&gt; 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --&gt; 'create'
-- 'mirror-edit-summary' --&gt; 'Create sandbox version of $1'
-- 'mirror-link-display' --&gt; 'mirror'
-- 'mirror-link-preload' --&gt; 'Template:Documentation/mirror'
-- 'sandbox-link-display' --&gt; 'sandbox'
-- 'testcases-link-display' --&gt; 'testcases'
-- 'testcases-edit-link-display'--&gt; 'edit'
-- 'template-sandbox-preload' --&gt; 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --&gt; 'create'
-- 'testcases-link-display' --&gt; 'testcases'
-- 'testcases-edit-link-display' --&gt; 'edit'
-- 'module-testcases-preload' --&gt; 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --&gt; 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --&gt; 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --&gt; 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if subjectSpace == 828 and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text &quot;Please add categories to the /doc subpage.&quot;
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --&gt; '/doc'
-- 'add-categories-blurb' --&gt; 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the &quot;Subpages of this template&quot; link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --&gt; 'template'
-- 'module-pagetype' --&gt; 'module'
-- 'default-pagetype' --&gt; 'page'
-- 'subpages-link-display' --&gt; 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
function p.makePrintBlurb(args, env)
--[=[
-- Generates the blurb displayed when there is a print version of the template available.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'print-link-display' --&gt; '/Print'
-- 'print-blurb' --&gt; 'A [[Help:Books/for experts#Improving the book layout|print version]]'
-- .. ' of this template exists at $1.'
-- .. ' If you make a change to this template, please update the print version as well.'
-- 'display-print-category' --&gt; true
-- 'print-category' --&gt; 'Templates with print versions'
--]=]
local printTitle = env.printTitle
if not printTitle then
return nil
end
local ret
if printTitle.exists then
local printLink = makeWikilink(printTitle.prefixedText, message('print-link-display'))
ret = message('print-blurb', {printLink})
local displayPrintCategory = message('display-print-category', nil, 'boolean')
if displayPrintCategory then
ret = ret .. makeCategoryLink(message('print-category'))
end
end
return ret
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --&gt; true
-- 'doc-subpage' --&gt; 'doc'
-- 'testcases-subpage' --&gt; 'testcases'
-- 'strange-usage-category' --&gt; 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p</text>
<sha1>jf2f51u5rzim7qgb93sv92cvfe6ak0s</sha1>
</revision>
</page>
<page>
<title>Module:Documentation/config</title>
<ns>828</ns>
<id>41520829</id>
<revision>
<id>729280654</id>
<parentid>717457729</parentid>
<timestamp>2016-07-11T04:32:48Z</timestamp>
<contributor>
<username>Andy M. Wang</username>
<id>516856</id>
</contributor>
<comment>rm alt text on icon, since the adjacent text is sufficient alternative text (per [[Special:Diff/729145419|edit request]])</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="18622">----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Protection template configuration
----------------------------------------------------------------------------------------------------
-- cfg['protection-reason-edit']
-- The protection reason for edit-protected templates to pass to
-- [[Module:Protection banner]].
cfg['protection-reason-edit'] = 'template'
--[[
----------------------------------------------------------------------------------------------------
-- Sandbox notice configuration
--
-- On sandbox pages the module can display a template notifying users that the current page is a
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a
-- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the
-- messages that the notices contains.
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- The image displayed in the sandbox notice.
cfg['sandbox-notice-image'] = '[[Image:Sandbox.svg|50px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- The page type of the sandbox page. The message that is displayed depends on the current subject
-- namespace. This message is used in either cfg['sandbox-notice-blurb'] or
-- cfg['sandbox-notice-diff-blurb'].
--]]
cfg['sandbox-notice-pagetype-template'] = '[[Wikipedia:Template test cases|template sandbox]] page'
cfg['sandbox-notice-pagetype-module'] = '[[Wikipedia:Template test cases|module sandbox]] page'
cfg['sandbox-notice-pagetype-other'] = 'sandbox page'
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page
-- type, which is either cfg['sandbox-notice-pagetype-template'],
-- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between
-- the sandbox and the main template. The display value of the diff link is set by
-- cfg['sandbox-notice-compare-link-display'].
--]]
cfg['sandbox-notice-blurb'] = 'This is the $1 for $2.'
cfg['sandbox-notice-diff-blurb'] = 'This is the $1 for $2 ($3).'
cfg['sandbox-notice-compare-link-display'] = 'diff'
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.
-- cfg['sandbox-notice-testcases-link-display'] is the display value for that link.
-- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test
-- cases page, and $2 is a link to the page to run it.
-- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test
-- cases.
--]]
cfg['sandbox-notice-testcases-blurb'] = 'See also the companion subpage for $1.'
cfg['sandbox-notice-testcases-link-display'] = 'test cases'
cfg['sandbox-notice-testcases-run-blurb'] = 'See also the companion subpage for $1 ($2).'
cfg['sandbox-notice-testcases-run-link-display'] = 'run'
-- cfg['sandbox-category']
-- A category to add to all template sandboxes.
cfg['sandbox-category'] = 'Template sandboxes'
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Template documentation'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Module documentation'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Summary'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documentation'
-- cfg['view-link-display']
-- The text to display for &quot;view&quot; links.
cfg['view-link-display'] = 'view'
-- cfg['edit-link-display']
-- The text to display for &quot;edit&quot; links.
cfg['edit-link-display'] = 'edit'
-- cfg['history-link-display']
-- The text to display for &quot;history&quot; links.
cfg['history-link-display'] = 'history'
-- cfg['purge-link-display']
-- The text to display for &quot;purge&quot; links.
cfg['purge-link-display'] = 'purge'
-- cfg['create-link-display']
-- The text to display for &quot;create&quot; links.
cfg['create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'The above [[Wikipedia:Template documentation|documentation]] is [[Wikipedia:Transclusion|transcluded]] from $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, &quot;sandbox&quot;, &quot;edit&quot;, &quot;diff&quot;, &quot;testcases&quot;, and &quot;edit&quot; would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = &quot;Editors can experiment in this template's $1 and $2 pages.&quot;
cfg['experiment-blurb-module'] = &quot;Editors can experiment in this module's $1 and $2 pages.&quot;
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'sandbox'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for &quot;sandbox&quot; links.
cfg['sandbox-link-display'] = 'sandbox'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox &quot;edit&quot; links.
cfg['sandbox-edit-link-display'] = 'edit'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox &quot;create&quot; links.
cfg['sandbox-create-link-display'] = 'create'
-- cfg['compare-link-display']
-- The text to display for &quot;compare&quot; links.
cfg['compare-link-display'] = 'diff'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the &quot;mirror&quot; link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Create sandbox version of $1'
-- cfg['mirror-link-display']
-- The text to display for &quot;mirror&quot; links.
cfg['mirror-link-display'] = 'mirror'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the &quot;mirror&quot; link.
cfg['mirror-link-preload'] = 'Template:Documentation/mirror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'testcases'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for &quot;testcases&quot; links.
cfg['testcases-link-display'] = 'testcases'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases &quot;edit&quot; links.
cfg['testcases-edit-link-display'] = 'edit'
-- cfg['testcases-run-link-display']
-- The text to display for test cases &quot;run&quot; links.
cfg['testcases-run-link-display'] = 'run'
-- cfg['testcases-create-link-display']
-- The text to display for test cases &quot;create&quot; links.
cfg['testcases-create-link-display'] = 'create'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the &quot;content&quot; or
-- &quot;docname fed&quot; arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Please add categories to the $1 subpage.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The &quot;Subpages of this template&quot; blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the &quot;subpages of this page&quot; link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Subpages of this $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'template'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'module'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'page'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['file-docpage-preload']
-- Preload file for documentation page in the file namespace.
cfg['file-docpage-preload'] = 'Template:Documentation/preload-filespace'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- Print version configuration
----------------------------------------------------------------------------------------------------
-- cfg['print-subpage']
-- The name of the template subpage used for print versions.
cfg['print-subpage'] = 'Print'
-- cfg['print-link-display']
-- The text to display when linking to the /Print subpage.
cfg['print-link-display'] = '/Print'
-- cfg['print-blurb']
-- Text to display if a /Print subpage exists. $1 is a link to the subpage with a display value of cfg['print-link-display'].
cfg['print-blurb'] = 'A [[Help:Books/for experts#Improving the book layout|print version]] of this template exists at $1.'
.. ' If you make a change to this template, please update the print version as well.'
-- cfg['display-print-category']
-- Set to true to enable output of cfg['print-category'] if a /Print subpage exists.
-- This should be a boolean value (either true or false).
cfg['display-print-category'] = true
-- cfg['print-category']
-- Category to output if cfg['display-print-category'] is set to true, and a /Print subpage exists.
cfg['print-category'] = 'Templates with print versions'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['main-div-id']
-- The &quot;id&quot; attribute of the main HTML &quot;div&quot; tag.
cfg['main-div-id'] = 'template-documentation'
-- cfg['main-div-classes']
-- The CSS classes added to the main HTML &quot;div&quot; tag.
cfg['main-div-classes'] = 'template-documentation iezoomfix'
-- cfg['start-box-linkclasses']
-- The CSS classes used for the [view][edit][history] or [create] links in the start box.
cfg['start-box-linkclasses'] = 'mw-editsection-like plainlinks'
-- cfg['start-box-link-id']
-- The HTML &quot;id&quot; attribute for the links in the start box.
cfg['start-box-link-id'] = 'doc_editlinks'
----------------------------------------------------------------------------------------------------
-- {{fmbox}} template configuration
----------------------------------------------------------------------------------------------------
-- cfg['fmbox-id']
-- The id sent to the &quot;id&quot; parameter of the {{fmbox}} template.
cfg['fmbox-id'] = 'documentation-meta-data'
-- cfg['fmbox-style']
-- The value sent to the style parameter of {{fmbox}}.
cfg['fmbox-style'] = 'background-color: #ecfcf4'
-- cfg['fmbox-textstyle']
-- The value sent to the &quot;textstyle parameter of {{fmbox}}.
cfg['fmbox-textstyle'] = 'font-style: italic'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Wikipedia pages with strange ((documentation)) usage'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg</text>
<sha1>6hym6c6py8yoseohy71qvk7kafcy1p5</sha1>
</revision>
</page>
<page>
<title>Module:Effective protection expiry</title>
<ns>828</ns>
<id>48785459</id>
<revision>
<id>744227741</id>
<parentid>740797535</parentid>
<timestamp>2016-10-13T22:30:40Z</timestamp>
<contributor>
<username>Jackmcbarn</username>
<id>19285809</id>
</contributor>
<comment>don't error if the page isn't under PC</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1494">local p = {}
-- Returns the expiry of a restriction of an action on a given title, or unknown if it cannot be known.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local stabilitySettings = mw.ext.FlaggedRevs.getStabilitySettings(title)
return stabilitySettings and stabilitySettings.expiry or 'unknown'
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then
error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 )
end
local rawExpiry = mw.getCurrentFrame():callParserFunction('PROTECTIONEXPIRY', action, pagename)
if rawExpiry == 'infinity' then
return 'infinity'
elseif rawExpiry == '' then
return 'unknown'
else
local year, month, day, hour, minute, second = rawExpiry:match(
'^(%d%d%d%d)(%d%d)(%d%d)(%d%d)(%d%d)(%d%d)$'
)
if year then
return string.format(
'%s-%s-%sT%s:%s:%s',
year, month, day, hour, minute, second
)
else
error('internal error in Module:Effective protection expiry; malformed expiry timestamp')
end
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p</text>
<sha1>i1wms02y1w048cq6uttka18a5pjzp63</sha1>
</revision>
</page>
<page>
<title>Module:Effective protection level</title>
<ns>828</ns>
<id>41617327</id>
<revision>
<id>713934935</id>
<parentid>708059351</parentid>
<timestamp>2016-04-06T17:04:11Z</timestamp>
<contributor>
<username>Jackmcbarn</username>
<id>19285809</id>
</contributor>
<comment>handle extendedconfirmed</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3018">local p = {}
-- Returns the permission required to perform a given action on a given title.
-- If no title is specified, the title of the page being displayed is used.
function p._main(action, pagename)
local title
if type(pagename) == 'table' and pagename.prefixedText then
title = pagename
elseif pagename then
title = mw.title.new(pagename)
else
title = mw.title.getCurrentTitle()
end
pagename = title.prefixedText
if action == 'autoreview' then
local level = mw.ext.FlaggedRevs.getStabilitySettings(title)
level = level and level.autoreview
if level == 'review' then
return 'reviewer'
elseif level ~= '' then
return level
else
return nil -- not '*'. a page not being PC-protected is distinct from it being PC-protected with anyone able to review. also not '', as that would mean PC-protected but nobody can review
end
elseif action ~= 'edit' and action ~= 'move' and action ~= 'create' and action ~= 'upload' then
error( 'First parameter must be one of edit, move, create, upload, autoreview', 2 )
end
if title.namespace == 8 then -- MediaWiki namespace
return 'sysop'
elseif title.namespace == 2 and title.isSubpage and ( title.contentModel == 'javascript' or title.contentModel == 'css' ) then -- user JS or CSS page
return 'sysop'
end
local level = title.protectionLevels[action] and title.protectionLevels[action][1]
if level == 'sysop' or level == 'editprotected' then
return 'sysop'
elseif title.cascadingProtection.restrictions[action] and title.cascadingProtection.restrictions[action][1] then -- used by a cascading-protected page
return 'sysop'
elseif level == 'templateeditor' then
return 'templateeditor'
elseif action == 'move' then
local blacklistentry = mw.ext.TitleBlacklist.test('edit', pagename) -- Testing action edit is correct, since this is for the source page. The target page name gets tested with action move.
if blacklistentry and not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif title.namespace == 6 then
return 'filemover'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
end
local blacklistentry = mw.ext.TitleBlacklist.test(action, pagename)
if blacklistentry then
if not blacklistentry.params.autoconfirmed then
return 'templateeditor'
elseif level == 'extendedconfirmed' then
return 'extendedconfirmed'
else
return 'autoconfirmed'
end
elseif level == 'editsemiprotected' then -- create-semiprotected pages return this for some reason
return 'autoconfirmed'
elseif level then
return level
elseif action == 'upload' then
return 'autoconfirmed'
elseif action == 'create' and title.namespace % 2 == 0 and title.namespace ~= 118 then -- You need to be registered, but not autoconfirmed, to create non-talk pages other than drafts
return 'user'
else
return '*'
end
end
setmetatable(p, { __index = function(t, k)
return function(frame)
return t._main(k, frame.args[1])
end
end })
return p</text>
<sha1>6hocqvqqlqw255k1l856h6hwlqsf6e1</sha1>
</revision>
</page>
<page>
<title>Module:File link</title>
<ns>828</ns>
<id>42903140</id>
<revision>
<id>638642222</id>
<parentid>638639021</parentid>
<timestamp>2014-12-18T14:05:07Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>when calling this from wikitext use a more readable error message for missing file parameters</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="2544">-- This module provides a library for formatting file wikilinks.
local yesno = require('Module:Yesno')
local checkType = require('libraryUtil').checkType
local p = {}
function p._main(args)
checkType('_main', 1, args, 'table')
-- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our
-- own function to get the right error level.
local function checkArg(key, val, level)
if type(val) ~= 'string' then
error(string.format(
&quot;type error in '%s' parameter of '_main' (expected string, got %s)&quot;,
key, type(val)
), level)
end
end
local ret = {}
-- Adds a positional parameter to the buffer.
local function addPositional(key)
local val = args[key]
if not val then
return nil
end
checkArg(key, val, 4)
ret[#ret + 1] = val
end
-- Adds a named parameter to the buffer. We assume that the parameter name
-- is the same as the argument key.
local function addNamed(key)
local val = args[key]
if not val then
return nil
end
checkArg(key, val, 4)
ret[#ret + 1] = key .. '=' .. val
end
-- Filename
checkArg('file', args.file, 3)
ret[#ret + 1] = 'File:' .. args.file
-- Format
if args.format then
checkArg('format', args.format)
if args.formatfile then
checkArg('formatfile', args.formatfile)
ret[#ret + 1] = args.format .. '=' .. args.formatfile
else
ret[#ret + 1] = args.format
end
end
-- Border
if yesno(args.border) then
ret[#ret + 1] = 'border'
end
addPositional('location')
addPositional('alignment')
addPositional('size')
addNamed('upright')
addNamed('link')
addNamed('alt')
addNamed('page')
addNamed('class')
addNamed('lang')
addNamed('start')
addNamed('end')
addNamed('thumbtime')
addPositional('caption')
return string.format('[[%s]]', table.concat(ret, '|'))
end
function p.main(frame)
local origArgs = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:File link'
})
if not origArgs.file then
error(&quot;'file' parameter missing from [[Template:File link]]&quot;, 0)
end
-- Copy the arguments that were passed to a new table to avoid looking up
-- every possible parameter in the frame object.
local args = {}
for k, v in pairs(origArgs) do
-- Make _BLANK a special argument to add a blank parameter. For use in
-- conditional templates etc. it is useful for blank arguments to be
-- ignored, but we still need a way to specify them so that we can do
-- things like [[File:Example.png|link=]].
if v == '_BLANK' then
v = ''
end
args[k] = v
end
return p._main(args)
end
return p</text>
<sha1>bzc22v133v9z5yc4aisazripn6l94p8</sha1>
</revision>
</page>
<page>
<title>Module:Message box</title>
<ns>828</ns>
<id>40574910</id>
<revision>
<id>803399820</id>
<parentid>742383679</parentid>
<timestamp>2017-10-02T09:03:51Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>change span to div to reduce lint errors</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="16807">-- This is a meta-module for producing message box templates, including
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.
-- Load necessary modules.
require('Module:No globals')
local getArgs
local categoryHandler = require('Module:Category handler')._main
local yesno = require('Module:Yesno')
-- Get a language object for formatDate and ucfirst.
local lang = mw.language.getContentLanguage()
-- Define constants
local CONFIG_MODULE = 'Module:Message box/configuration'
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is &quot;mbox&quot; or invalid input
if ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Add attributes, classes and styles.
self.id = args.id
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
self.name = args.name
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s#%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(&quot; &lt;small&gt;''(%s)''&lt;/small&gt;&quot;, date)
end
self.info = args.info
if yesno(args.removalnotice) then
self.removalNotice = cfg.removalNotice
end
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- Set the below row.
self.below = cfg.below and args.below
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
if cfg.imageEmptyCellStyle then
self.imageEmptyCellStyle = 'border:none;padding:0px;width:1px'
end
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s|link=|alt=]]', self.typeImage
or 'Imbox notice.png', imageSize)
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count &gt; 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums &gt; 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return categoryHandler{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template &lt;code&gt;%s[[Template:%s|%s]]%s&lt;/code&gt; has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style=&quot;width: 52px;&quot;, which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):css('width', '52px')
end
imageLeftCell:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: &quot;No image. Cell with some width
-- or padding necessary for text cell to have 100% width.&quot;
row:tag('td')
:addClass('mbox-empty-cell')
:cssText(self.imageEmptyCellStyle or nil)
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) and not self.isSmall then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('small')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(&quot; (%s)&quot;, self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):css('width', '52px')
end
imageRightCell
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:css('text-align', 'center')
:wikitext(string.format(
'This message box is using an invalid &quot;type=%s&quot; parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)</text>
<sha1>o82985w14pvc3irjmn280op991seq7t</sha1>
</revision>
</page>
<page>
<title>Module:Message box/configuration</title>
<ns>828</ns>
<id>40627038</id>
<revision>
<id>742383738</id>
<parentid>717357572</parentid>
<timestamp>2016-10-03T11:04:13Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>allow all templates to disable the plainlinks class</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="6091">--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Padlock-silver-medium.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix', 'subst'},
removalNotice = '[[Help:Maintenance template removal|Learn how and when to remove this template message]]'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Padlock-silver-medium.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Padlock-silver-medium.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox license.png' -- @todo We need an SVG version of this
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg'
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes'
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Padlock-silver-medium.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Padlock-silver-medium.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
imageEmptyCellStyle = true,
templateCategory = 'Talk message boxes'
}
}</text>
<sha1>16xsc67jviirmw0nf2yuxvotqd7rygq</sha1>
</revision>
</page>
<page>
<title>Module:Namespace detect/config</title>
<ns>828</ns>
<id>42256703</id>
<revision>
<id>602886681</id>
<parentid>602823531</parentid>
<timestamp>2014-04-05T17:03:49Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>use cfg.demopage rather than cfg.page now that the default parameter has been changed on the /data page</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3545">--------------------------------------------------------------------------------
-- Namespace detect configuration data --
-- --
-- This module stores configuration data for Module:Namespace detect. Here --
-- you can localise the module to your wiki's language. --
-- --
-- To activate a configuration item, you need to uncomment it. This means --
-- that you need to remove the text &quot;-- &quot; at the start of the line. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. Values added --
-- here will work in addition to the default English parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- cfg.foo = 'parameter name' --
-- --
-- To add multiple names, you can use this format: --
-- --
-- cfg.foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'} --
--------------------------------------------------------------------------------
---- This parameter displays content for the main namespace:
-- cfg.main = 'main'
---- This parameter displays in talk namespaces:
-- cfg.talk = 'talk'
---- This parameter displays content for &quot;other&quot; namespaces (namespaces for which
---- parameters have not been specified):
-- cfg.other = 'other'
---- This parameter makes talk pages behave as though they are the corresponding
---- subject namespace. Note that this parameter is used with [[Module:Yesno]].
---- Edit that module to change the default values of &quot;yes&quot;, &quot;no&quot;, etc.
-- cfg.subjectns = 'subjectns'
---- This parameter sets a demonstration namespace:
-- cfg.demospace = 'demospace'
---- This parameter sets a specific page to compare:
cfg.demopage = 'page'
--------------------------------------------------------------------------------
-- Table configuration --
-- These configuration items allow customisation of the &quot;table&quot; function, --
-- used to generate a table of possible parameters in the module --
-- documentation. --
--------------------------------------------------------------------------------
---- The header for the namespace column in the wikitable containing the list of
---- possible subject-space parameters.
-- cfg.wikitableNamespaceHeader = 'Namespace'
---- The header for the wikitable containing the list of possible subject-space
---- parameters.
-- cfg.wikitableAliasesHeader = 'Aliases'
--------------------------------------------------------------------------------
-- End of configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.</text>
<sha1>1o6ozz56i8q0xgyl6xa41n2v7kelhli</sha1>
</revision>
</page>
<page>
<title>Module:Namespace detect/data</title>
<ns>828</ns>
<id>42257476</id>
<revision>
<id>602886511</id>
<parentid>602823622</parentid>
<timestamp>2014-04-05T17:02:16Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>bug fix - use the demospace parameter as both key and value in the argKeys table</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="2569">--------------------------------------------------------------------------------
-- Namespace detect data --
-- This module holds data for [[Module:Namespace detect]] to be loaded per --
-- page, rather than per #invoke, for performance reasons. --
--------------------------------------------------------------------------------
local cfg = require('Module:Namespace detect/config')
local function addKey(t, key, defaultKey)
if key ~= defaultKey then
t[#t + 1] = key
end
end
-- Get a table of parameters to query for each default parameter name.
-- This allows wikis to customise parameter names in the cfg table while
-- ensuring that default parameter names will always work. The cfg table
-- values can be added as a string, or as an array of strings.
local defaultKeys = {
'main',
'talk',
'other',
'subjectns',
'demospace',
'demopage'
}
local argKeys = {}
for i, defaultKey in ipairs(defaultKeys) do
argKeys[defaultKey] = {defaultKey}
end
for defaultKey, t in pairs(argKeys) do
local cfgValue = cfg[defaultKey]
local cfgValueType = type(cfgValue)
if cfgValueType == 'string' then
addKey(t, cfgValue, defaultKey)
elseif cfgValueType == 'table' then
for i, key in ipairs(cfgValue) do
addKey(t, key, defaultKey)
end
end
cfg[defaultKey] = nil -- Free the cfg value as we don't need it any more.
end
local function getParamMappings()
--[[
-- Returns a table of how parameter names map to namespace names. The keys
-- are the actual namespace names, in lower case, and the values are the
-- possible parameter names for that namespace, also in lower case. The
-- table entries are structured like this:
-- {
-- [''] = {'main'},
-- ['wikipedia'] = {'wikipedia', 'project', 'wp'},
-- ...
-- }
--]]
local mappings = {}
local mainNsName = mw.site.subjectNamespaces[0].name
mainNsName = mw.ustring.lower(mainNsName)
mappings[mainNsName] = mw.clone(argKeys.main)
mappings['talk'] = mw.clone(argKeys.talk)
for nsid, ns in pairs(mw.site.subjectNamespaces) do
if nsid ~= 0 then -- Exclude main namespace.
local nsname = mw.ustring.lower(ns.name)
local canonicalName = mw.ustring.lower(ns.canonicalName)
mappings[nsname] = {nsname}
if canonicalName ~= nsname then
table.insert(mappings[nsname], canonicalName)
end
for _, alias in ipairs(ns.aliases) do
table.insert(mappings[nsname], mw.ustring.lower(alias))
end
end
end
return mappings
end
return {
argKeys = argKeys,
cfg = cfg,
mappings = getParamMappings()
}</text>
<sha1>ojp6d3pc8mql5nufaqdg576c9so3479</sha1>
</revision>
</page>
<page>
<title>Module:No globals</title>
<ns>828</ns>
<id>42567026</id>
<revision>
<id>606781024</id>
<parentid>605595284</parentid>
<timestamp>2014-05-02T15:35:56Z</timestamp>
<contributor>
<username>Jackmcbarn</username>
<id>19285809</id>
</contributor>
<comment>rm name exception</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="307">local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
error('Tried to read nil global ' .. tostring(k), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error('Tried to write global ' .. tostring(k), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)</text>
<sha1>gggsv54pq7f94l3up48hr91qtxnskdm</sha1>
</revision>
</page>
<page>
<title>Module:Protection banner</title>
<ns>828</ns>
<id>42040984</id>
<revision>
<id>741795115</id>
<parentid>732908599</parentid>
<timestamp>2016-09-29T18:32:41Z</timestamp>
<contributor>
<username>Cenarium</username>
<id>5711305</id>
</contributor>
<comment>remove expiry param (now also automatically retrieved for autoreview) and needsexpiry check</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="25486">-- This module implements {{pp-meta}} and its daughter templates such as
-- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}.
-- Initialise necessary modules.
require('Module:No globals')
local makeFileLink = require('Module:File link')._main
local effectiveProtectionLevel = require('Module:Effective protection level')._main
local effectiveProtectionExpiry = require('Module:Effective protection expiry')._main
local yesno = require('Module:Yesno')
-- Lazily initialise modules and objects we don't always need.
local getArgs, makeMessageBox, lang
-- Set constants.
local CONFIG_MODULE = 'Module:Protection banner/config'
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function makeCategoryLink(cat, sort)
if cat then
return string.format(
'[[%s:%s|%s]]',
mw.site.namespaces[14].name,
cat,
sort
)
end
end
-- Validation function for the expiry and the protection date
local function validateDate(dateString, dateType)
if not lang then
lang = mw.language.getContentLanguage()
end
local success, result = pcall(lang.formatDate, lang, 'U', dateString)
if success then
result = tonumber(result)
if result then
return result
end
end
error(string.format(
'invalid %s: %s',
dateType,
tostring(dateString)
), 4)
end
local function makeFullUrl(page, query, display)
return string.format(
'[%s %s]',
tostring(mw.uri.fullUrl(page, query)),
display
)
end
-- Given a directed graph formatted as node -&gt; table of direct successors,
-- get a table of all nodes reachable from a given node (though always
-- including the given node).
local function getReachableNodes(graph, start)
local toWalk, retval = {[start] = true}, {}
while true do
-- Can't use pairs() since we're adding and removing things as we're iterating
local k = next(toWalk) -- This always gets the &quot;first&quot; key
if k == nil then
return retval
end
toWalk[k] = nil
retval[k] = true
for _,v in ipairs(graph[k]) do
if not retval[v] then
toWalk[v] = true
end
end
end
end
--------------------------------------------------------------------------------
-- Protection class
--------------------------------------------------------------------------------
local Protection = {}
Protection.__index = Protection
Protection.supportedActions = {
edit = true,
move = true,
autoreview = true,
upload = true
}
Protection.bannerConfigFields = {
'text',
'explanation',
'tooltip',
'alt',
'link',
'image'
}
function Protection.new(args, cfg, title)
local obj = {}
obj._cfg = cfg
obj.title = title or mw.title.getCurrentTitle()
-- Set action
if not args.action then
obj.action = 'edit'
elseif Protection.supportedActions[args.action] then
obj.action = args.action
else
error(string.format(
'invalid action: %s',
tostring(args.action)
), 3)
end
-- Set level
obj.level = args.demolevel or effectiveProtectionLevel(obj.action, obj.title)
if not obj.level or (obj.action == 'move' and obj.level == 'autoconfirmed') then
-- Users need to be autoconfirmed to move pages anyway, so treat
-- semi-move-protected pages as unprotected.
obj.level = '*'
end
-- Set expiry
local effectiveExpiry = effectiveProtectionExpiry(obj.action, obj.title)
if effectiveExpiry == 'infinity' then
obj.expiry = 'indef'
elseif effectiveExpiry ~= 'unknown' then
obj.expiry = validateDate(effectiveExpiry, 'expiry date')
end
-- Set reason
if args[1] then
obj.reason = mw.ustring.lower(args[1])
if obj.reason:find('|') then
error('reasons cannot contain the pipe character (&quot;|&quot;)', 3)
end
end
-- Set protection date
if args.date then
obj.protectionDate = validateDate(args.date, 'protection date')
end
-- Set banner config
do
obj.bannerConfig = {}
local configTables = {}
if cfg.banners[obj.action] then
configTables[#configTables + 1] = cfg.banners[obj.action][obj.reason]
end
if cfg.defaultBanners[obj.action] then
configTables[#configTables + 1] = cfg.defaultBanners[obj.action][obj.level]
configTables[#configTables + 1] = cfg.defaultBanners[obj.action].default
end
configTables[#configTables + 1] = cfg.masterBanner
for i, field in ipairs(Protection.bannerConfigFields) do
for j, t in ipairs(configTables) do
if t[field] then
obj.bannerConfig[field] = t[field]
break
end
end
end
end
return setmetatable(obj, Protection)
end
function Protection:isProtected()
return self.level ~= '*'
end
function Protection:isTemporary()
return type(self.expiry) == 'number'
end
function Protection:makeProtectionCategory()
local cfg = self._cfg
local title = self.title
-- Exit if the page is not protected.
if not self:isProtected() then
return ''
end
-- Get the expiry key fragment.
local expiryFragment
if self.expiry == 'indef' then
expiryFragment = self.expiry
elseif type(self.expiry) == 'number' then
expiryFragment = 'temp'
end
-- Get the namespace key fragment.
local namespaceFragment = cfg.categoryNamespaceKeys[title.namespace]
if not namespaceFragment and title.namespace % 2 == 1 then
namespaceFragment = 'talk'
end
-- Define the order that key fragments are tested in. This is done with an
-- array of tables containing the value to be tested, along with its
-- position in the cfg.protectionCategories table.
local order = {
{val = expiryFragment, keypos = 1},
{val = namespaceFragment, keypos = 2},
{val = self.reason, keypos = 3},
{val = self.level, keypos = 4},
{val = self.action, keypos = 5}
}
--[[
-- The old protection templates used an ad-hoc protection category system,
-- with some templates prioritising namespaces in their categories, and
-- others prioritising the protection reason. To emulate this in this module
-- we use the config table cfg.reasonsWithNamespacePriority to set the
-- reasons for which namespaces have priority over protection reason.
-- If we are dealing with one of those reasons, move the namespace table to
-- the end of the order table, i.e. give it highest priority. If not, the
-- reason should have highest priority, so move that to the end of the table
-- instead.
--]]
table.insert(order, table.remove(order, self.reason and cfg.reasonsWithNamespacePriority[self.reason] and 2 or 3))
--[[
-- Define the attempt order. Inactive subtables (subtables with nil &quot;value&quot;
-- fields) are moved to the end, where they will later be given the key
-- &quot;all&quot;. This is to cut down on the number of table lookups in
-- cfg.protectionCategories, which grows exponentially with the number of
-- non-nil keys. We keep track of the number of active subtables with the
-- noActive parameter.
--]]
local noActive, attemptOrder
do
local active, inactive = {}, {}
for i, t in ipairs(order) do
if t.val then
active[#active + 1] = t
else
inactive[#inactive + 1] = t
end
end
noActive = #active
attemptOrder = active
for i, t in ipairs(inactive) do
attemptOrder[#attemptOrder + 1] = t
end
end
--[[
-- Check increasingly generic key combinations until we find a match. If a
-- specific category exists for the combination of key fragments we are
-- given, that match will be found first. If not, we keep trying different
-- key fragment combinations until we match using the key
-- &quot;all-all-all-all-all&quot;.
--
-- To generate the keys, we index the key subtables using a binary matrix
-- with indexes i and j. j is only calculated up to the number of active
-- subtables. For example, if there were three active subtables, the matrix
-- would look like this, with 0 corresponding to the key fragment &quot;all&quot;, and
-- 1 corresponding to other key fragments.
--
-- j 1 2 3
-- i
-- 1 1 1 1
-- 2 0 1 1
-- 3 1 0 1
-- 4 0 0 1
-- 5 1 1 0
-- 6 0 1 0
-- 7 1 0 0
-- 8 0 0 0
--
-- Values of j higher than the number of active subtables are set
-- to the string &quot;all&quot;.
--
-- A key for cfg.protectionCategories is constructed for each value of i.
-- The position of the value in the key is determined by the keypos field in
-- each subtable.
--]]
local cats = cfg.protectionCategories
for i = 1, 2^noActive do
local key = {}
for j, t in ipairs(attemptOrder) do
if j &gt; noActive then
key[t.keypos] = 'all'
else
local quotient = i / 2 ^ (j - 1)
quotient = math.ceil(quotient)
if quotient % 2 == 1 then
key[t.keypos] = t.val
else
key[t.keypos] = 'all'
end
end
end
key = table.concat(key, '|')
local attempt = cats[key]
if attempt then
return makeCategoryLink(attempt, title.text)
end
end
return ''
end
function Protection:isIncorrect()
local expiry = self.expiry
return not self:isProtected()
or type(expiry) == 'number' and expiry &lt; os.time()
end
function Protection:isTemplateProtectedNonTemplate()
local action, namespace = self.action, self.title.namespace
return self.level == 'templateeditor'
and (
(action ~= 'edit' and action ~= 'move')
or (namespace ~= 10 and namespace ~= 828)
)
end
function Protection:makeCategoryLinks()
local msg = self._cfg.msg
local ret = { self:makeProtectionCategory() }
if self:isIncorrect() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-incorrect'],
self.title.text
)
end
if self:isTemplateProtectedNonTemplate() then
ret[#ret + 1] = makeCategoryLink(
msg['tracking-category-template'],
self.title.text
)
end
return table.concat(ret)
end
--------------------------------------------------------------------------------
-- Blurb class
--------------------------------------------------------------------------------
local Blurb = {}
Blurb.__index = Blurb
Blurb.bannerTextFields = {
text = true,
explanation = true,
tooltip = true,
alt = true,
link = true
}
function Blurb.new(protectionObj, args, cfg)
return setmetatable({
_cfg = cfg,
_protectionObj = protectionObj,
_args = args
}, Blurb)
end
-- Private methods --
function Blurb:_formatDate(num)
-- Formats a Unix timestamp into dd Month, YYYY format.
lang = lang or mw.language.getContentLanguage()
local success, date = pcall(
lang.formatDate,
lang,
self._cfg.msg['expiry-date-format'] or 'j F Y',
'@' .. tostring(num)
)
if success then
return date
end
end
function Blurb:_getExpandedMessage(msgKey)
return self:_substituteParameters(self._cfg.msg[msgKey])
end
function Blurb:_substituteParameters(msg)
if not self._params then
local parameterFuncs = {}
parameterFuncs.CURRENTVERSION = self._makeCurrentVersionParameter
parameterFuncs.EDITREQUEST = self._makeEditRequestParameter
parameterFuncs.EXPIRY = self._makeExpiryParameter
parameterFuncs.EXPLANATIONBLURB = self._makeExplanationBlurbParameter
parameterFuncs.IMAGELINK = self._makeImageLinkParameter
parameterFuncs.INTROBLURB = self._makeIntroBlurbParameter
parameterFuncs.INTROFRAGMENT = self._makeIntroFragmentParameter
parameterFuncs.PAGETYPE = self._makePagetypeParameter
parameterFuncs.PROTECTIONBLURB = self._makeProtectionBlurbParameter
parameterFuncs.PROTECTIONDATE = self._makeProtectionDateParameter
parameterFuncs.PROTECTIONLEVEL = self._makeProtectionLevelParameter
parameterFuncs.PROTECTIONLOG = self._makeProtectionLogParameter
parameterFuncs.TALKPAGE = self._makeTalkPageParameter
parameterFuncs.TOOLTIPBLURB = self._makeTooltipBlurbParameter
parameterFuncs.TOOLTIPFRAGMENT = self._makeTooltipFragmentParameter
parameterFuncs.VANDAL = self._makeVandalTemplateParameter
self._params = setmetatable({}, {
__index = function (t, k)
local param
if parameterFuncs[k] then
param = parameterFuncs[k](self)
end
param = param or ''
t[k] = param
return param
end
})
end
msg = msg:gsub('${(%u+)}', self._params)
return msg
end
function Blurb:_makeCurrentVersionParameter()
-- A link to the page history or the move log, depending on the kind of
-- protection.
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'move' then
-- We need the move log link.
return makeFullUrl(
'Special:Log',
{type = 'move', page = pagename},
self:_getExpandedMessage('current-version-move-display')
)
else
-- We need the history link.
return makeFullUrl(
pagename,
{action = 'history'},
self:_getExpandedMessage('current-version-edit-display')
)
end
end
function Blurb:_makeEditRequestParameter()
local mEditRequest = require('Module:Submit an edit request')
local action = self._protectionObj.action
local level = self._protectionObj.level
-- Get the edit request type.
local requestType
if action == 'edit' then
if level == 'autoconfirmed' then
requestType = 'semi'
elseif level == 'extendedconfirmed' then
requestType = 'extended'
elseif level == 'templateeditor' then
requestType = 'template'
end
end
requestType = requestType or 'full'
-- Get the display value.
local display = self:_getExpandedMessage('edit-request-display')
return mEditRequest._link{type = requestType, display = display}
end
function Blurb:_makeExpiryParameter()
local expiry = self._protectionObj.expiry
if type(expiry) == 'number' then
return self:_formatDate(expiry)
else
return expiry
end
end
function Blurb:_makeExplanationBlurbParameter()
-- Cover special cases first.
if self._protectionObj.title.namespace == 8 then
-- MediaWiki namespace
return self:_getExpandedMessage('explanation-blurb-nounprotect')
end
-- Get explanation blurb table keys
local action = self._protectionObj.action
local level = self._protectionObj.level
local talkKey = self._protectionObj.title.isTalkPage and 'talk' or 'subject'
-- Find the message in the explanation blurb table and substitute any
-- parameters.
local explanations = self._cfg.explanationBlurbs
local msg
if explanations[action][level] and explanations[action][level][talkKey] then
msg = explanations[action][level][talkKey]
elseif explanations[action][level] and explanations[action][level].default then
msg = explanations[action][level].default
elseif explanations[action].default and explanations[action].default[talkKey] then
msg = explanations[action].default[talkKey]
elseif explanations[action].default and explanations[action].default.default then
msg = explanations[action].default.default
else
error(string.format(
'could not find explanation blurb for action &quot;%s&quot;, level &quot;%s&quot; and talk key &quot;%s&quot;',
action,
level,
talkKey
), 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeImageLinkParameter()
local imageLinks = self._cfg.imageLinks
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if imageLinks[action][level] then
msg = imageLinks[action][level]
elseif imageLinks[action].default then
msg = imageLinks[action].default
else
msg = imageLinks.edit.default
end
return self:_substituteParameters(msg)
end
function Blurb:_makeIntroBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-blurb-expiry')
else
return self:_getExpandedMessage('intro-blurb-noexpiry')
end
end
function Blurb:_makeIntroFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('intro-fragment-expiry')
else
return self:_getExpandedMessage('intro-fragment-noexpiry')
end
end
function Blurb:_makePagetypeParameter()
local pagetypes = self._cfg.pagetypes
return pagetypes[self._protectionObj.title.namespace]
or pagetypes.default
or error('no default pagetype defined', 8)
end
function Blurb:_makeProtectionBlurbParameter()
local protectionBlurbs = self._cfg.protectionBlurbs
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionBlurbs[action][level] then
msg = protectionBlurbs[action][level]
elseif protectionBlurbs[action].default then
msg = protectionBlurbs[action].default
elseif protectionBlurbs.edit.default then
msg = protectionBlurbs.edit.default
else
error('no protection blurb defined for protectionBlurbs.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionDateParameter()
local protectionDate = self._protectionObj.protectionDate
if type(protectionDate) == 'number' then
return self:_formatDate(protectionDate)
else
return protectionDate
end
end
function Blurb:_makeProtectionLevelParameter()
local protectionLevels = self._cfg.protectionLevels
local action = self._protectionObj.action
local level = self._protectionObj.level
local msg
if protectionLevels[action][level] then
msg = protectionLevels[action][level]
elseif protectionLevels[action].default then
msg = protectionLevels[action].default
elseif protectionLevels.edit.default then
msg = protectionLevels.edit.default
else
error('no protection level defined for protectionLevels.edit.default', 8)
end
return self:_substituteParameters(msg)
end
function Blurb:_makeProtectionLogParameter()
local pagename = self._protectionObj.title.prefixedText
if self._protectionObj.action == 'autoreview' then
-- We need the pending changes log.
return makeFullUrl(
'Special:Log',
{type = 'stable', page = pagename},
self:_getExpandedMessage('pc-log-display')
)
else
-- We need the protection log.
return makeFullUrl(
'Special:Log',
{type = 'protect', page = pagename},
self:_getExpandedMessage('protection-log-display')
)
end
end
function Blurb:_makeTalkPageParameter()
return string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[self._protectionObj.title.namespace].talk.name,
self._protectionObj.title.text,
self._args.section or 'top',
self:_getExpandedMessage('talk-page-link-display')
)
end
function Blurb:_makeTooltipBlurbParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-blurb-expiry')
else
return self:_getExpandedMessage('tooltip-blurb-noexpiry')
end
end
function Blurb:_makeTooltipFragmentParameter()
if self._protectionObj:isTemporary() then
return self:_getExpandedMessage('tooltip-fragment-expiry')
else
return self:_getExpandedMessage('tooltip-fragment-noexpiry')
end
end
function Blurb:_makeVandalTemplateParameter()
return require('Module:Vandal-m')._main{
self._args.user or self._protectionObj.title.baseText
}
end
-- Public methods --
function Blurb:makeBannerText(key)
-- Validate input.
if not key or not Blurb.bannerTextFields[key] then
error(string.format(
'&quot;%s&quot; is not a valid banner config field',
tostring(key)
), 2)
end
-- Generate the text.
local msg = self._protectionObj.bannerConfig[key]
if type(msg) == 'string' then
return self:_substituteParameters(msg)
elseif type(msg) == 'function' then
msg = msg(self._protectionObj, self._args)
if type(msg) ~= 'string' then
error(string.format(
'bad output from banner config function with key &quot;%s&quot;'
.. ' (expected string, got %s)',
tostring(key),
type(msg)
), 4)
end
return self:_substituteParameters(msg)
end
end
--------------------------------------------------------------------------------
-- BannerTemplate class
--------------------------------------------------------------------------------
local BannerTemplate = {}
BannerTemplate.__index = BannerTemplate
function BannerTemplate.new(protectionObj, cfg)
local obj = {}
obj._cfg = cfg
-- Set the image filename.
local imageFilename = protectionObj.bannerConfig.image
if imageFilename then
obj._imageFilename = imageFilename
else
-- If an image filename isn't specified explicitly in the banner config,
-- generate it from the protection status and the namespace.
local action = protectionObj.action
local level = protectionObj.level
local namespace = protectionObj.title.namespace
local reason = protectionObj.reason
-- Deal with special cases first.
if (
namespace == 10
or namespace == 828
or reason and obj._cfg.indefImageReasons[reason]
)
and action == 'edit'
and level == 'sysop'
and not protectionObj:isTemporary()
then
-- Fully protected modules and templates get the special red &quot;indef&quot;
-- padlock.
obj._imageFilename = obj._cfg.msg['image-filename-indef']
else
-- Deal with regular protection types.
local images = obj._cfg.images
if images[action] then
if images[action][level] then
obj._imageFilename = images[action][level]
elseif images[action].default then
obj._imageFilename = images[action].default
end
end
end
end
return setmetatable(obj, BannerTemplate)
end
function BannerTemplate:renderImage()
local filename = self._imageFilename
or self._cfg.msg['image-filename-default']
or 'Transparent.gif'
return makeFileLink{
file = filename,
size = (self.imageWidth or 20) .. 'px',
alt = self._imageAlt,
link = self._imageLink,
caption = self.imageCaption
}
end
--------------------------------------------------------------------------------
-- Banner class
--------------------------------------------------------------------------------
local Banner = setmetatable({}, BannerTemplate)
Banner.__index = Banner
function Banner.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 40
obj.imageCaption = blurbObj:makeBannerText('alt') -- Large banners use the alt text for the tooltip.
obj._reasonText = blurbObj:makeBannerText('text')
obj._explanationText = blurbObj:makeBannerText('explanation')
obj._page = protectionObj.title.prefixedText -- Only makes a difference in testing.
return setmetatable(obj, Banner)
end
function Banner:__tostring()
-- Renders the banner.
makeMessageBox = makeMessageBox or require('Module:Message box').main
local reasonText = self._reasonText or error('no reason text set', 2)
local explanationText = self._explanationText
local mbargs = {
page = self._page,
type = 'protection',
image = self:renderImage(),
text = string.format(
&quot;'''%s'''%s&quot;,
reasonText,
explanationText and '&lt;br /&gt;' .. explanationText or ''
)
}
return makeMessageBox('mbox', mbargs)
end
--------------------------------------------------------------------------------
-- Padlock class
--------------------------------------------------------------------------------
local Padlock = setmetatable({}, BannerTemplate)
Padlock.__index = Padlock
function Padlock.new(protectionObj, blurbObj, cfg)
local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn't need the blurb.
obj.imageWidth = 20
obj.imageCaption = blurbObj:makeBannerText('tooltip')
obj._imageAlt = blurbObj:makeBannerText('alt')
obj._imageLink = blurbObj:makeBannerText('link')
obj._indicatorName = cfg.padlockIndicatorNames[protectionObj.action]
or cfg.padlockIndicatorNames.default
or 'pp-default'
return setmetatable(obj, Padlock)
end
function Padlock:__tostring()
local frame = mw.getCurrentFrame()
-- The nowiki tag helps prevent whitespace at the top of articles.
return frame:extensionTag{name = 'nowiki'} .. frame:extensionTag{
name = 'indicator',
args = {name = self._indicatorName},
content = self:renderImage()
}
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- This is used for testing purposes.
return {
Protection = Protection,
Blurb = Blurb,
BannerTemplate = BannerTemplate,
Banner = Banner,
Padlock = Padlock,
}
end
function p._main(args, cfg, title)
args = args or {}
cfg = cfg or require(CONFIG_MODULE)
local protectionObj = Protection.new(args, cfg, title)
local ret = {}
-- If a page's edit protection is equally or more restrictive than its
-- protection from some other action, then don't bother displaying anything
-- for the other action (except categories).
if protectionObj.action == 'edit' or
args.demolevel or
not getReachableNodes(
cfg.hierarchy,
protectionObj.level
)[effectiveProtectionLevel('edit', protectionObj.title)]
then
-- Initialise the blurb object
local blurbObj = Blurb.new(protectionObj, args, cfg)
-- Render the banner
if protectionObj:isProtected() then
ret[#ret + 1] = tostring(
(yesno(args.small) and Padlock or Banner)
.new(protectionObj, blurbObj, cfg)
)
end
end
-- Render the categories
if yesno(args.category) ~= false then
ret[#ret + 1] = protectionObj:makeCategoryLinks()
end
return table.concat(ret)
end
function p.main(frame, cfg)
cfg = cfg or require(CONFIG_MODULE)
-- Find default args, if any.
local parent = frame.getParent and frame:getParent()
local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')]
-- Find user args, and use the parent frame if we are being called from a
-- wrapper template.
getArgs = getArgs or require('Module:Arguments').getArgs
local userArgs = getArgs(frame, {
parentOnly = defaultArgs,
frameOnly = not defaultArgs
})
-- Build the args table. User-specified args overwrite default args.
local args = {}
for k, v in pairs(defaultArgs or {}) do
args[k] = v
end
for k, v in pairs(userArgs) do
args[k] = v
end
return p._main(args, cfg)
end
return p</text>
<sha1>ice162y8kua930ie41kredxjaxhzy3y</sha1>
</revision>
</page>
<page>
<title>Module:Protection banner/config</title>
<ns>828</ns>
<id>42982788</id>
<revision>
<id>822561967</id>
<parentid>819333371</parentid>
<timestamp>2018-01-27T02:46:16Z</timestamp>
<contributor>
<username>BrownHairedGirl</username>
<id>754619</id>
</contributor>
<comment>protectionCategories = { ['all|all|all|all|all'] = 'Wikipedia fully protected pages', // per [[Wikipedia:Categories_for_discussion/Log/2018_January_5#Category:Wikipedia_protected_pages]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="46794">-- This module provides configuration data for [[Module:Protection banner]].
return {
--------------------------------------------------------------------------------
--
-- BANNER DATA
--
--------------------------------------------------------------------------------
--[[
-- Banner data consists of six fields:
-- * text - the main protection text that appears at the top of protection
-- banners.
-- * explanation - the text that appears below the main protection text, used
-- to explain the details of the protection.
-- * tooltip - the tooltip text you see when you move the mouse over a small
-- padlock icon.
-- * link - the page that the small padlock icon links to.
-- * alt - the alt text for the small padlock icon. This is also used as tooltip
-- text for the large protection banners.
-- * image - the padlock image used in both protection banners and small padlock
-- icons.
--
-- The module checks in three separate tables to find a value for each field.
-- First it checks the banners table, which has values specific to the reason
-- for the page being protected. Then the module checks the defaultBanners
-- table, which has values specific to each protection level. Finally, the
-- module checks the masterBanner table, which holds data for protection
-- templates to use if no data has been found in the previous two tables.
--
-- The values in the banner data can take parameters. These are specified
-- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name
-- enclosed in curly braces).
--
-- Available parameters:
--
-- ${CURRENTVERSION} - a link to the page history or the move log, with the
-- display message &quot;current-version-edit-display&quot; or
-- &quot;current-version-move-display&quot;.
--
-- ${EDITREQUEST} - a link to create an edit request for the current page.
--
-- ${EXPLANATIONBLURB} - an explanation blurb, e.g. &quot;Please discuss any changes
-- on the talk page; you may submit a request to ask an administrator to make
-- an edit if it is minor or supported by consensus.&quot;
--
-- ${IMAGELINK} - a link to set the image to, depending on the protection
-- action and protection level.
--
-- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry
-- is set. E.g. &quot;Editing of this page by new or unregistered users is currently
-- disabled until dd Month YYYY.&quot;
--
-- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation
-- so that it can be used in run-on sentences.
--
-- ${PAGETYPE} - the type of the page, e.g. &quot;article&quot; or &quot;template&quot;.
-- Defined in the cfg.pagetypes table.
--
-- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g.
-- &quot;Editing of this page by new or unregistered users is currently disabled&quot;
--
-- ${PROTECTIONDATE} - the protection date, if it has been supplied to the
-- template.
--
-- ${PROTECTIONLEVEL} - the protection level, e.g. &quot;fully protected&quot; or
-- &quot;semi-protected&quot;.
--
-- ${PROTECTIONLOG} - a link to the protection log or the pending changes log,
-- depending on the protection action.
--
-- ${TALKPAGE} - a link to the talk page. If a section is specified, links
-- straight to that talk page section.
--
-- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to
-- create a blurb like &quot;This template is semi-protected&quot;, or &quot;This article is
-- move-protected until DD Month YYYY&quot;.
--
-- ${VANDAL} - links for the specified username (or the root page name)
-- using Module:Vandal-m.
--
-- Functions
--
-- For advanced users, it is possible to use Lua functions instead of strings
-- in the banner config tables. Using functions gives flexibility that is not
-- possible just by using parameters. Functions take two arguments, the
-- protection object and the template arguments, and they must output a string.
--
-- For example:
--
-- text = function (protectionObj, args)
-- if protectionObj.level == 'autoconfirmed' then
-- return 'foo'
-- else
-- return 'bar'
-- end
-- end
--
-- Some protection object properties and methods that may be useful:
-- protectionObj.action - the protection action
-- protectionObj.level - the protection level
-- protectionObj.reason - the protection reason
-- protectionObj.expiry - the expiry. Nil if unset, the string &quot;indef&quot; if set
-- to indefinite, and the protection time in unix time if temporary.
-- protectionObj.protectionDate - the protection date in unix time, or nil if
-- unspecified.
-- protectionObj.bannerConfig - the banner config found by the module. Beware
-- of editing the config field used by the function, as it could create an
-- infinite loop.
-- protectionObj:isProtected - returns a boolean showing whether the page is
-- protected.
-- protectionObj:isTemporary - returns a boolean showing whether the expiry is
-- temporary.
-- protectionObj:isIncorrect - returns a boolean showing whether the protection
-- template is incorrect.
--]]
-- The master banner data, used if no values have been found in banners or
-- defaultBanners.
masterBanner = {
text = '${INTROBLURB}',
explanation = '${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPBLURB}',
link = '${IMAGELINK}',
alt = 'Page ${PROTECTIONLEVEL}'
},
-- The default banner data. This holds banner data for different protection
-- levels.
-- *required* - this table needs edit, move, autoreview and upload subtables.
defaultBanners = {
edit = {},
move = {},
autoreview = {
autoconfirmed = {
alt = 'Page protected with pending changes level 1',
tooltip = 'All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users',
image = 'Padlock-silver-light.svg'
},
default = {
alt = 'Page protected with pending changes level 2',
tooltip = 'All edits by users who are not reviewers or administrators are'
.. ' subject to review prior to becoming visible to unregistered users',
image = 'Padlock-orange.svg'
}
},
upload = {}
},
-- The banner data. This holds banner data for different protection reasons.
-- In fact, the reasons specified in this table control which reasons are
-- valid inputs to the first positional parameter.
--
-- There is also a non-standard &quot;description&quot; field that can be used for items
-- in this table. This is a description of the protection reason for use in the
-- module documentation.
--
-- *required* - this table needs edit, move, autoreview and upload subtables.
banners = {
edit = {
blp = {
description = 'For pages protected to promote compliance with the'
.. ' [[Wikipedia:Biographies of living persons'
.. '|biographies of living persons]] policy',
text = '${INTROFRAGMENT} to promote compliance with'
.. ' [[Wikipedia:Biographies of living persons'
.. &quot;|Wikipedia's&amp;nbsp;policy on&amp;nbsp;the&amp;nbsp;biographies&quot;
.. ' of&amp;nbsp;living&amp;nbsp;people]].',
tooltip = '${TOOLTIPFRAGMENT} to promote compliance with the policy on'
.. ' biographies of living people',
},
dmca = {
description = 'For pages protected by the Wikimedia Foundation'
.. ' due to [[Digital Millennium Copyright Act]] takedown requests',
explanation = function (protectionObj, args)
local ret = 'Pursuant to a rights owner notice under the Digital'
.. ' Millennium Copyright Act (DMCA) regarding some content'
.. ' in this article, the Wikimedia Foundation acted under'
.. ' applicable law and took down and restricted the content'
.. ' in question.'
if args.notice then
ret = ret .. ' A copy of the received notice can be found here: '
.. args.notice .. '.'
end
ret = ret .. ' For more information, including websites discussing'
.. ' how to file a counter-notice, please see'
.. &quot; [[Wikipedia:Office actions]] and the article's ${TALKPAGE}.&quot;
.. &quot;'''Do not remove this template from the article until the&quot;
.. &quot; restrictions are withdrawn'''.&quot;
return ret
end,
image = 'Padlock-black.svg',
},
dispute = {
description = 'For pages protected due to editing disputes',
text = function (protectionObj, args)
-- Find the value of &quot;disputes&quot;.
local display = 'disputes'
local disputes
if args.section then
disputes = string.format(
'[[%s:%s#%s|%s]]',
mw.site.namespaces[protectionObj.title.namespace].talk.name,
protectionObj.title.text,
args.section,
display
)
else
disputes = display
end
-- Make the blurb, depending on the expiry.
local msg
if type(protectionObj.expiry) == 'number' then
msg = '${INTROFRAGMENT} or until editing %s have been resolved.'
else
msg = '${INTROFRAGMENT} until editing %s have been resolved.'
end
return string.format(msg, disputes)
end,
explanation = &quot;This protection is '''not''' an endorsement of the&quot;
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
tooltip = '${TOOLTIPFRAGMENT} due to editing disputes',
},
ecp = {
description = 'For articles in topic areas authorized by'
.. ' [[Wikipedia:Arbitration Committee|ArbCom]] or'
.. ' meets the criteria for community use',
tooltip = 'This ${PAGETYPE} is extended-confirmed protected',
alt = 'Extended-protected ${PAGETYPE}',
},
mainpage = {
description = 'For pages protected for being displayed on the [[Main Page]]',
text = 'This file is currently'
.. ' [[Wikipedia:This page is protected|protected]] from'
.. ' editing because it is currently or will soon be displayed'
.. ' on the [[Main Page]].',
explanation = 'Images on the Main Page are protected due to their high'
.. ' visibility. Please discuss any necessary changes on the ${TALKPAGE}.'
.. '&lt;br /&gt;&lt;span style=&quot;font-size:90%;&quot;&gt;'
.. &quot;'''Administrators:''' Once this image is definitely off the Main Page,&quot;
.. ' please unprotect this file, or reduce to semi-protection,'
.. ' as appropriate.&lt;/span&gt;',
},
office = {
description = 'For pages protected by the Wikimedia Foundation',
text = function (protectionObj, args)
local ret = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.'
if protectionObj.protectionDate then
ret = ret .. ' It has been protected since ${PROTECTIONDATE}.'
end
return ret
end,
explanation = &quot;If you can edit this page, please discuss all changes and&quot;
.. &quot; additions on the ${TALKPAGE} first. '''Do not remove protection from this&quot;
.. &quot; page unless you are authorized by the Wikimedia Foundation to do&quot;
.. &quot; so.'''&quot;,
image = 'Padlock-black.svg',
},
reset = {
description = 'For pages protected by the Wikimedia Foundation and'
.. ' &quot;reset&quot; to a bare-bones version',
text = 'This ${PAGETYPE} is currently under the'
.. ' scrutiny of the'
.. ' [[Wikipedia:Office actions|Wikimedia Foundation Office]]'
.. ' and is protected.',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.protectionDate then
ret = ret .. 'On ${PROTECTIONDATE} this ${PAGETYPE} was'
else
ret = ret .. 'This ${PAGETYPE} has been'
end
ret = ret .. ' reduced to a'
.. ' simplified, &quot;bare bones&quot; version so that it may be completely'
.. ' rewritten to ensure it meets the policies of'
.. ' [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].'
.. ' Standard Wikipedia policies will apply to its rewriting—which'
.. ' will eventually be open to all editors—and will be strictly'
.. ' enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while'
.. ' it is being rebuilt.\n\n'
.. 'Any insertion of material directly from'
.. ' pre-protection revisions of the ${PAGETYPE} will be removed, as'
.. ' will any material added to the ${PAGETYPE} that is not properly'
.. ' sourced. The associated talk page(s) were also cleared on the'
.. &quot; same date.\n\n&quot;
.. &quot;If you can edit this page, please discuss all changes and&quot;
.. &quot; additions on the ${TALKPAGE} first. '''Do not override&quot;
.. &quot; this action, and do not remove protection from this page,&quot;
.. &quot; unless you are authorized by the Wikimedia Foundation&quot;
.. &quot; to do so. No editor may remove this notice.'''&quot;
return ret
end,
image = 'Padlock-black.svg',
},
sock = {
description = 'For pages protected due to'
.. ' [[Wikipedia:Sock puppetry|sock puppetry]]',
text = '${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of'
.. ' [[Wikipedia:Blocking policy|blocked]] or'
.. ' [[Wikipedia:Banning policy|banned users]]'
.. ' from editing it.',
tooltip = '${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from'
.. ' editing it',
},
template = {
description = 'For [[Wikipedia:High-risk templates|high-risk]]'
.. ' templates and Lua modules',
text = 'This is a permanently [[Help:Protection|protected]] ${PAGETYPE},'
.. ' as it is [[Wikipedia:High-risk templates|high-risk]].',
explanation = 'Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] or'
.. ' [[Wikipedia:Template editor|template editor]] to make an edit if'
.. ' it is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by'
.. ' [[Wikipedia:Consensus|consensus]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
tooltip = 'This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}'
.. ' to prevent vandalism',
alt = 'Permanently protected ${PAGETYPE}',
},
usertalk = {
description = 'For pages protected against disruptive edits by a'
.. ' particular user',
text = '${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,'
.. ' such as abusing the'
.. ' &amp;#123;&amp;#123;[[Template:unblock|unblock]]&amp;#125;&amp;#125; template.',
explanation = 'If you cannot edit this user talk page and you need to'
.. ' make a change or leave a message, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for edits to a protected page'
.. '|request an edit]],'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]],'
.. ' [[Special:Userlogin|log in]],'
.. ' or [[Special:UserLogin/signup|create an account]].',
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism|vandalism]]',
text = '${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].',
explanation = function (protectionObj, args)
local ret = ''
if protectionObj.level == 'sysop' then
ret = ret .. &quot;This protection is '''not''' an endorsement of the&quot;
.. ' ${CURRENTVERSION}. '
end
return ret .. '${EXPLANATIONBLURB}'
end,
tooltip = '${TOOLTIPFRAGMENT} due to vandalism',
}
},
move = {
dispute = {
description = 'For pages protected against page moves due to'
.. ' disputes over the page title',
explanation = &quot;This protection is '''not''' an endorsement of the&quot;
.. ' ${CURRENTVERSION}. ${EXPLANATIONBLURB}',
image = 'Padlock-olive.svg'
},
vandalism = {
description = 'For pages protected against'
.. ' [[Wikipedia:Vandalism#Page-move vandalism'
.. ' |page-move vandalism]]'
}
},
autoreview = {},
upload = {}
},
--------------------------------------------------------------------------------
--
-- GENERAL DATA TABLES
--
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Protection blurbs
--------------------------------------------------------------------------------
-- This table produces the protection blurbs available with the
-- ${PROTECTIONBLURB} parameter. It is sorted by protection action and
-- protection level, and is checked by the module in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. &quot;edit&quot; protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionBlurbs = {
edit = {
default = 'This ${PAGETYPE} is currently [[Help:Protection|'
.. 'protected]] from editing',
autoconfirmed = 'Editing of this ${PAGETYPE} by [[Wikipedia:User access'
.. ' levels#New users|new]] or [[Wikipedia:User access levels#Unregistered'
.. ' users|unregistered]] users is currently [[Help:Protection|disabled]]',
extendedconfirmed = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} as a result of'
.. ' [[Wikipedia:Arbitration Committee|ArbCom]] enforcement or meets the'
.. ' [[Wikipedia:Protection policy#extended|criteria for community use]]',
},
move = {
default = 'This ${PAGETYPE} is currently [[Help:Protection|protected]]'
.. ' from [[Help:Moving a page|page moves]]'
},
autoreview = {
autoconfirmed = 'All edits made to this ${PAGETYPE} by'
.. ' [[Wikipedia:User access levels#New users|new]] or'
.. ' [[Wikipedia:User access levels#Unregistered users|unregistered]]'
.. ' users are currently'
.. ' [[Wikipedia:Pending changes|subject to review]]',
default = 'All edits made to this ${PAGETYPE} by users who are not'
.. ' [[Wikipedia:Reviewing|reviewers]] or'
.. ' [[Wikipedia:Administrators|administrators]] are currently'
.. ' [[Wikipedia:Pending changes|subject to review]]'
},
upload = {
default = 'Uploading new versions of this ${PAGETYPE} is currently disabled'
}
},
--------------------------------------------------------------------------------
-- Explanation blurbs
--------------------------------------------------------------------------------
-- This table produces the explanation blurbs available with the
-- ${EXPLANATIONBLURB} parameter. It is sorted by protection action,
-- protection level, and whether the page is a talk page or not. If the page is
-- a talk page it will have a talk key of &quot;talk&quot;; otherwise it will have a talk
-- key of &quot;subject&quot;. The table is checked in the following order:
-- 1. page's protection action, page's protection level, page's talk key
-- 2. page's protection action, page's protection level, default talk key
-- 3. page's protection action, default protection level, page's talk key
-- 4. page's protection action, default protection level, default talk key
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
explanationBlurbs = {
edit = {
autoconfirmed = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' ${EDITREQUEST}, discuss changes on the ${TALKPAGE},'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details. If you'
.. ' cannot edit this ${PAGETYPE} and you wish to make a change, you can'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].',
},
extendedconfirmed = {
default = 'Extended confirmed protection prevents edits from all IP editors'
.. ' and registered users with fewer than 30 days tenure and 500 edits.'
.. ' The [[Wikipedia:Protection policy#extended|policy on community use]]'
.. ' specifies that extended confirmed protection can be applied to combat'
.. ' disruption, given that semi-protection has proven to be ineffective.'
.. ' Please discuss any changes on the ${TALKPAGE}; you may'
.. ' ${EDITREQUEST} to ask for unconversial changes supported by'
.. ' [[Wikipedia:Consensus|consensus]].'
},
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]]. You may also [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|request]] that this page be unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' You may [[Wikipedia:Requests for page'
.. ' protection#Current requests for edits to a protected page|request an'
.. ' edit]] to this page, or [[Wikipedia:Requests for'
.. ' page protection#Current requests for reduction in protection level'
.. '|ask]] for it to be unprotected.'
}
},
move = {
default = {
subject = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves on the'
.. ' ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but cannot be moved'
.. ' until unprotected. Please discuss any suggested moves at'
.. ' [[Wikipedia:Requested moves]]. You can also'
.. ' [[Wikipedia:Requests for page protection|request]] that the page be'
.. ' unprotected.'
}
},
autoreview = {
default = {
reviewer = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Edits to this ${PAGETYPE} will not be visible to readers'
.. ' until they are accepted by a reviewer or an administrator.'
.. ' To avoid the need for your edits to be reviewed, you may'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]]. Experienced editors may also'
.. ' request the [[Wikipedia:Reviewing|reviewer user right]].',
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Edits to this ${PAGETYPE} by new and unregistered users'
.. ' will not be visible to readers until they are accepted by'
.. ' a reviewer. To avoid the need for your edits to be'
.. ' reviewed, you may'
.. ' [[Wikipedia:Requests for page protection'
.. '#Current requests for reduction in protection level'
.. '|request unprotection]], [[Special:Userlogin|log in]], or'
.. ' [[Special:UserLogin/signup|create an account]].'
},
},
upload = {
default = {
default = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' The page may still be edited but new versions of the file'
.. ' cannot be uploaded until it is unprotected. You can'
.. ' request that a new version be uploaded by using a'
.. ' [[Wikipedia:Edit requests|protected edit request]], or you'
.. ' can [[Wikipedia:Requests for page protection|request]]'
.. ' that the file be unprotected.'
}
}
},
--------------------------------------------------------------------------------
-- Protection levels
--------------------------------------------------------------------------------
-- This table provides the data for the ${PROTECTIONLEVEL} parameter, which
-- produces a short label for different protection levels. It is sorted by
-- protection action and protection level, and is checked in the following
-- order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. &quot;edit&quot; protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
protectionLevels = {
edit = {
default = 'protected',
templateeditor = 'template-protected',
extendedconfirmed = 'extended-protected',
autoconfirmed = 'semi-protected',
},
move = {
default = 'move-protected'
},
autoreview = {
},
upload = {
default = 'upload-protected'
}
},
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- This table lists different padlock images for each protection action and
-- protection level. It is used if an image is not specified in any of the
-- banner data tables, and if the page does not satisfy the conditions for using
-- the ['image-filename-indef'] image. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
images = {
edit = {
default = 'Padlock.svg',
templateeditor = 'Padlock-pink.svg',
extendedconfirmed = 'Padlock-blue.svg',
autoconfirmed = 'Padlock-silver.svg'
},
move = {
default = 'Padlock-olive.svg',
},
autoreview = {
autoconfirmed = 'Padlock-silver-light.svg',
default = 'Padlock-orange.svg'
},
upload = {
default = 'Padlock-purple.svg'
}
},
-- Pages with a reason specified in this table will show the special &quot;indef&quot;
-- padlock, defined in the 'image-filename-indef' message, if no expiry is set.
indefImageReasons = {
template = true
},
--------------------------------------------------------------------------------
-- Image links
--------------------------------------------------------------------------------
-- This table provides the data for the ${IMAGELINK} parameter, which gets
-- the image link for small padlock icons based on the page's protection action
-- and protection level. It is checked in the following order:
-- 1. page's protection action, page's protection level
-- 2. page's protection action, default protection level
-- 3. &quot;edit&quot; protection action, default protection level
--
-- It is possible to use banner parameters inside this table.
-- *required* - this table needs edit, move, autoreview and upload subtables.
imageLinks = {
edit = {
default = 'Wikipedia:Protection policy#full',
templateeditor = 'Wikipedia:Protection policy#template',
extendedconfirmed = 'Wikipedia:Protection policy#extended',
autoconfirmed = 'Wikipedia:Protection policy#semi'
},
move = {
default = 'Wikipedia:Protection policy#move'
},
autoreview = {
autoconfirmed = 'Wikipedia:Protection policy#pc1',
reviewer = 'Wikipedia:Protection policy#pc2'
},
upload = {
default = 'Wikipedia:Protection policy#upload'
}
},
--------------------------------------------------------------------------------
-- Padlock indicator names
--------------------------------------------------------------------------------
-- This table provides the &quot;name&quot; attribute for the &lt;indicator&gt; extension tag
-- with which small padlock icons are generated. All indicator tags on a page
-- are displayed in alphabetical order based on this attribute, and with
-- indicator tags with duplicate names, the last tag on the page wins.
-- The attribute is chosen based on the protection action; table keys must be a
-- protection action name or the string &quot;default&quot;.
padlockIndicatorNames = {
autoreview = 'pp-autoreview',
default = 'pp-default'
},
--------------------------------------------------------------------------------
-- Protection categories
--------------------------------------------------------------------------------
--[[
-- The protection categories are stored in the protectionCategories table.
-- Keys to this table are made up of the following strings:
--
-- 1. the expiry date
-- 2. the namespace
-- 3. the protection reason (e.g. &quot;dispute&quot; or &quot;vandalism&quot;)
-- 4. the protection level (e.g. &quot;sysop&quot; or &quot;autoconfirmed&quot;)
-- 5. the action (e.g. &quot;edit&quot; or &quot;move&quot;)
--
-- When the module looks up a category in the table, first it will will check to
-- see a key exists that corresponds to all five parameters. For example, a
-- user page semi-protected from vandalism for two weeks would have the key
-- &quot;temp-user-vandalism-autoconfirmed-edit&quot;. If no match is found, the module
-- changes the first part of the key to &quot;all&quot; and checks the table again. It
-- keeps checking increasingly generic key combinations until it finds the
-- field, or until it reaches the key &quot;all-all-all-all-all&quot;.
--
-- The module uses a binary matrix to determine the order in which to search.
-- This is best demonstrated by a table. In this table, the &quot;0&quot; values
-- represent &quot;all&quot;, and the &quot;1&quot; values represent the original data (e.g.
-- &quot;indef&quot; or &quot;file&quot; or &quot;vandalism&quot;).
--
-- expiry namespace reason level action
-- order
-- 1 1 1 1 1 1
-- 2 0 1 1 1 1
-- 3 1 0 1 1 1
-- 4 0 0 1 1 1
-- 5 1 1 0 1 1
-- 6 0 1 0 1 1
-- 7 1 0 0 1 1
-- 8 0 0 0 1 1
-- 9 1 1 1 0 1
-- 10 0 1 1 0 1
-- 11 1 0 1 0 1
-- 12 0 0 1 0 1
-- 13 1 1 0 0 1
-- 14 0 1 0 0 1
-- 15 1 0 0 0 1
-- 16 0 0 0 0 1
-- 17 1 1 1 1 0
-- 18 0 1 1 1 0
-- 19 1 0 1 1 0
-- 20 0 0 1 1 0
-- 21 1 1 0 1 0
-- 22 0 1 0 1 0
-- 23 1 0 0 1 0
-- 24 0 0 0 1 0
-- 25 1 1 1 0 0
-- 26 0 1 1 0 0
-- 27 1 0 1 0 0
-- 28 0 0 1 0 0
-- 29 1 1 0 0 0
-- 30 0 1 0 0 0
-- 31 1 0 0 0 0
-- 32 0 0 0 0 0
--
-- In this scheme the action has the highest priority, as it is the last
-- to change, and the expiry has the least priority, as it changes the most.
-- The priorities of the expiry, the protection level and the action are
-- fixed, but the priorities of the reason and the namespace can be swapped
-- through the use of the cfg.bannerDataNamespaceHasPriority table.
--]]
-- If the reason specified to the template is listed in this table,
-- namespace data will take priority over reason data in the protectionCategories
-- table.
reasonsWithNamespacePriority = {
vandalism = true,
},
-- The string to use as a namespace key for the protectionCategories table for each
-- namespace number.
categoryNamespaceKeys = {
[ 2] = 'user',
[ 3] = 'user',
[ 4] = 'project',
[ 6] = 'file',
[ 8] = 'mediawiki',
[ 10] = 'template',
[ 12] = 'project',
[ 14] = 'category',
[100] = 'portal',
[828] = 'module',
},
protectionCategories = {
['all|all|all|all|all'] = 'Wikipedia fully protected pages',
['all|all|office|all|all'] = 'Wikipedia Office-protected pages',
['all|all|reset|all|all'] = 'Wikipedia Office-protected pages',
['all|all|dmca|all|all'] = 'Wikipedia Office-protected pages',
['all|all|mainpage|all|all'] = 'Wikipedia fully-protected main page files',
['all|all|all|extendedconfirmed|all'] = 'Wikipedia pages under 30-500 editing restriction',
['all|all|ecp|extendedconfirmed|all'] = 'Wikipedia pages under 30-500 editing restriction',
['all|template|all|all|edit'] = 'Wikipedia fully-protected templates',
['all|all|all|autoconfirmed|edit'] = 'Wikipedia semi-protected pages',
['indef|all|all|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected pages',
['all|all|blp|autoconfirmed|edit'] = 'Wikipedia indefinitely semi-protected biographies of living people',
['temp|all|blp|autoconfirmed|edit'] = 'Wikipedia temporarily semi-protected biographies of living people',
['all|all|dispute|autoconfirmed|edit'] = 'Wikipedia pages semi-protected due to dispute',
['all|all|sock|autoconfirmed|edit'] = 'Wikipedia pages semi-protected from banned users',
['all|all|vandalism|autoconfirmed|edit'] = 'Wikipedia pages semi-protected against vandalism',
['all|category|all|autoconfirmed|edit'] = 'Wikipedia semi-protected categories',
['all|file|all|autoconfirmed|edit'] = 'Wikipedia semi-protected files',
['all|portal|all|autoconfirmed|edit'] = 'Wikipedia semi-protected portals',
['all|project|all|autoconfirmed|edit'] = 'Wikipedia semi-protected project pages',
['all|talk|all|autoconfirmed|edit'] = 'Wikipedia semi-protected talk pages',
['all|template|all|autoconfirmed|edit'] = 'Wikipedia semi-protected templates',
['all|user|all|autoconfirmed|edit'] = 'Wikipedia semi-protected user and user talk pages',
['all|template|all|templateeditor|edit'] = 'Wikipedia template-protected templates',
['all|all|blp|sysop|edit'] = 'Wikipedia indefinitely protected biographies of living people',
['temp|all|blp|sysop|edit'] = 'Wikipedia temporarily protected biographies of living people',
['all|all|dispute|sysop|edit'] = 'Wikipedia pages protected due to dispute',
['all|all|sock|sysop|edit'] = 'Wikipedia pages protected from banned users',
['all|all|vandalism|sysop|edit'] = 'Wikipedia pages protected against vandalism',
['all|category|all|sysop|edit'] = 'Wikipedia protected categories',
['all|file|all|sysop|edit'] = 'Wikipedia fully-protected files',
['all|project|all|sysop|edit'] = 'Wikipedia fully-protected project pages',
['all|talk|all|sysop|edit'] = 'Wikipedia fully-protected talk pages',
['all|template|all|sysop|edit'] = 'Wikipedia fully-protected templates',
['all|user|all|sysop|edit'] = 'Wikipedia protected user and user talk pages',
['all|module|all|all|edit'] = 'Wikipedia fully-protected modules',
['all|module|all|templateeditor|edit'] = 'Wikipedia template-protected modules',
['all|module|all|autoconfirmed|edit'] = 'Wikipedia semi-protected modules',
['all|all|all|sysop|move'] = 'Wikipedia move-protected pages',
['indef|all|all|sysop|move'] = 'Wikipedia indefinitely move-protected pages',
['all|all|dispute|sysop|move'] = 'Wikipedia pages move-protected due to dispute',
['all|all|vandalism|sysop|move'] = 'Wikipedia pages move-protected due to vandalism',
['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals',
['all|portal|all|sysop|move'] = 'Wikipedia move-protected portals',
['all|project|all|sysop|move'] = 'Wikipedia move-protected project pages',
['all|talk|all|sysop|move'] = 'Wikipedia move-protected talk pages',
['all|template|all|sysop|move'] = 'Wikipedia move-protected templates',
['all|user|all|sysop|move'] = 'Wikipedia move-protected user and user talk pages',
['all|all|all|autoconfirmed|autoreview'] = 'Wikipedia pending changes protected pages',
['all|all|all|reviewer|autoreview'] = 'Wikipedia pending changes protected pages (level 2)',
['all|file|all|all|upload'] = 'Wikipedia upload-protected files',
},
--------------------------------------------------------------------------------
-- Expiry category config
--------------------------------------------------------------------------------
-- This table configures the expiry category behaviour for each protection
-- action.
-- * If set to true, setting that action will always categorise the page if
-- an expiry parameter is not set.
-- * If set to false, setting that action will never categorise the page.
-- * If set to nil, the module will categorise the page if:
-- 1) an expiry parameter is not set, and
-- 2) a reason is provided, and
-- 3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck
-- table.
expiryCheckActions = {
edit = nil,
move = false,
autoreview = true,
upload = false
},
reasonsWithoutExpiryCheck = {
blp = true,
template = true,
},
--------------------------------------------------------------------------------
-- Pagetypes
--------------------------------------------------------------------------------
-- This table produces the page types available with the ${PAGETYPE} parameter.
-- Keys are namespace numbers, or the string &quot;default&quot; for the default value.
pagetypes = {
[0] = 'article',
[6] = 'file',
[10] = 'template',
[14] = 'category',
[828] = 'module',
default = 'page'
},
--------------------------------------------------------------------------------
-- Strings marking indefinite protection
--------------------------------------------------------------------------------
-- This table contains values passed to the expiry parameter that mean the page
-- is protected indefinitely.
indefStrings = {
['indef'] = true,
['indefinite'] = true,
['indefinitely'] = true,
['infinite'] = true,
},
--------------------------------------------------------------------------------
-- Group hierarchy
--------------------------------------------------------------------------------
-- This table maps each group to all groups that have a superset of the original
-- group's page editing permissions.
hierarchy = {
sysop = {},
reviewer = {'sysop'},
filemover = {'sysop'},
templateeditor = {'sysop'},
extendedconfirmed = {'sysop'},
autoconfirmed = {'reviewer', 'filemover', 'templateeditor', 'extendedconfirmed'},
user = {'autoconfirmed'},
['*'] = {'user'}
},
--------------------------------------------------------------------------------
-- Wrapper templates and their default arguments
--------------------------------------------------------------------------------
-- This table contains wrapper templates used with the module, and their
-- default arguments. Templates specified in this table should contain the
-- following invocation, and no other template content:
--
-- {{#invoke:Protection banner|main}}
--
-- If other content is desired, it can be added between
-- &lt;noinclude&gt;...&lt;/noinclude&gt; tags.
--
-- When a user calls one of these wrapper templates, they will use the
-- default arguments automatically. However, users can override any of the
-- arguments.
wrappers = {
['Template:Pp'] = {},
['Template:Pp-30-500'] = {'ecp'},
['Template:Pp-blp'] = {'blp'},
-- we don't need Template:Pp-create
['Template:Pp-dispute'] = {'dispute'},
['Template:Pp-main-page'] = {'mainpage'},
['Template:Pp-move'] = {action = 'move'},
['Template:Pp-move-dispute'] = {'dispute', action = 'move'},
-- we don't need Template:Pp-move-indef
['Template:Pp-move-vandalism'] = {'vandalism', action = 'move'},
['Template:Pp-office'] = {'office'},
['Template:Pp-office-dmca'] = {'dmca'},
['Template:Pp-pc1'] = {action = 'autoreview', small = true},
['Template:Pp-pc2'] = {action = 'autoreview', small = true},
['Template:Pp-reset'] = {'reset'},
['Template:Pp-semi-indef'] = {small = true},
['Template:Pp-sock'] = {'sock'},
['Template:Pp-template'] = {'template', small = true},
['Template:Pp-upload'] = {action = 'upload'},
['Template:Pp-usertalk'] = {'usertalk'},
['Template:Pp-vandalism'] = {'vandalism'},
},
--------------------------------------------------------------------------------
--
-- MESSAGES
--
--------------------------------------------------------------------------------
msg = {
--------------------------------------------------------------------------------
-- Intro blurb and intro fragment
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${INTROBLURB} and
-- ${INTROFRAGMENT} parameters. If the protection is temporary they use the
-- intro-blurb-expiry or intro-fragment-expiry, and if not they use
-- intro-blurb-noexpiry or intro-fragment-noexpiry.
-- It is possible to use banner parameters in these messages.
['intro-blurb-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY}.',
['intro-blurb-noexpiry'] = '${PROTECTIONBLURB}.',
['intro-fragment-expiry'] = '${PROTECTIONBLURB} until ${EXPIRY},',
['intro-fragment-noexpiry'] = '${PROTECTIONBLURB}',
--------------------------------------------------------------------------------
-- Tooltip blurb
--------------------------------------------------------------------------------
-- These messages specify what is produced by the ${TOOLTIPBLURB} parameter.
-- If the protection is temporary the tooltip-blurb-expiry message is used, and
-- if not the tooltip-blurb-noexpiry message is used.
-- It is possible to use banner parameters in these messages.
['tooltip-blurb-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.',
['tooltip-blurb-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}.',
['tooltip-fragment-expiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},',
['tooltip-fragment-noexpiry'] = 'This ${PAGETYPE} is ${PROTECTIONLEVEL}',
--------------------------------------------------------------------------------
-- Special explanation blurb
--------------------------------------------------------------------------------
-- An explanation blurb for pages that cannot be unprotected, e.g. for pages
-- in the MediaWiki namespace.
-- It is possible to use banner parameters in this message.
['explanation-blurb-nounprotect'] = 'See the [[Wikipedia:Protection policy|'
.. 'protection policy]] and ${PROTECTIONLOG} for more details.'
.. ' Please discuss any changes on the ${TALKPAGE}; you'
.. ' may ${EDITREQUEST} to ask an'
.. ' [[Wikipedia:Administrators|administrator]] to make an edit if it'
.. ' is [[Help:Minor edit#When to mark an edit as a minor edit'
.. '|uncontroversial]] or supported by [[Wikipedia:Consensus'
.. '|consensus]].',
--------------------------------------------------------------------------------
-- Protection log display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the protection log link
-- or the pending changes log link produced by the ${PROTECTIONLOG} parameter.
-- It is possible to use banner parameters in these messages.
['protection-log-display'] = 'protection log',
['pc-log-display'] = 'pending changes log',
--------------------------------------------------------------------------------
-- Current version display values
--------------------------------------------------------------------------------
-- These messages determine the display values for the page history link
-- or the move log link produced by the ${CURRENTVERSION} parameter.
-- It is possible to use banner parameters in these messages.
['current-version-move-display'] = 'current title',
['current-version-edit-display'] = 'current version',
--------------------------------------------------------------------------------
-- Talk page
--------------------------------------------------------------------------------
-- This message determines the display value of the talk page link produced
-- with the ${TALKPAGE} parameter.
-- It is possible to use banner parameters in this message.
['talk-page-link-display'] = 'talk page',
--------------------------------------------------------------------------------
-- Edit requests
--------------------------------------------------------------------------------
-- This message determines the display value of the edit request link produced
-- with the ${EDITREQUEST} parameter.
-- It is possible to use banner parameters in this message.
['edit-request-display'] = 'submit an edit request',
--------------------------------------------------------------------------------
-- Expiry date format
--------------------------------------------------------------------------------
-- This is the format for the blurb expiry date. It should be valid input for
-- the first parameter of the #time parser function.
['expiry-date-format'] = 'F j, Y',
--------------------------------------------------------------------------------
-- Tracking categories
--------------------------------------------------------------------------------
-- These messages determine which tracking categories the module outputs.
['tracking-category-incorrect'] = 'Wikipedia pages with incorrect protection templates',
['tracking-category-template'] = 'Wikipedia template-protected pages other than templates and modules',
--------------------------------------------------------------------------------
-- Images
--------------------------------------------------------------------------------
-- These are images that are not defined by their protection action and protection level.
['image-filename-indef'] = 'Padlock.svg',
['image-filename-default'] = 'Transparent.gif',
--------------------------------------------------------------------------------
-- End messages
--------------------------------------------------------------------------------
}
--------------------------------------------------------------------------------
-- End configuration
--------------------------------------------------------------------------------
}</text>
<sha1>hhzqd28fj5olzin4eeygno4totrmfh7</sha1>
</revision>
</page>
<page>
<title>Module:Yesno</title>
<ns>828</ns>
<id>38665046</id>
<revision>
<id>659459801</id>
<parentid>604718900</parentid>
<timestamp>2015-04-27T10:43:30Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<comment>recognise &quot;t&quot; for true and &quot;f&quot; for false, per request</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="710">-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of &quot;yes&quot;, &quot;no&quot;, etc., you
-- should replace &quot;val:lower()&quot; with &quot;mw.ustring.lower(val)&quot; in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or tonumber(val) == 0
then
return false
else
return default
end
end</text>
<sha1>266x81qzpz9iq1b5gft4zsdy5qzbnwi</sha1>
</revision>
</page>
<page>
<title>Template:!(</title>
<ns>10</ns>
<id>22222301</id>
<revision>
<id>579820095</id>
<parentid>388441588</parentid>
<timestamp>2013-11-02T02:26:45Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:!(: Enable access by template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="41">[&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>6vijsq3zwt5xugaaojfotqflpcklz8r</sha1>
</revision>
</page>
<page>
<title>Template:!((/doc</title>
<ns>10</ns>
<id>36487541</id>
<revision>
<id>815714868</id>
<parentid>815708688</parentid>
<timestamp>2017-12-16T16:56:13Z</timestamp>
<contributor>
<username>Zzuuzz</username>
<id>365454</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/172.56.7.112|172.56.7.112]] ([[User talk:172.56.7.112|talk]]) to last version by Sro23</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="193">{{Documentation subpage}}
{{Auxiliary template common notice}}
&lt;includeonly&gt;
[[Category:Wikipedia character-substitution templates]]
[[Category:Templates used by fb templates]]
&lt;/includeonly&gt;</text>
<sha1>rcw4sce11ntsgxakn53bkeaqsy9w5ew</sha1>
</revision>
</page>
<page>
<title>Template:(</title>
<ns>10</ns>
<id>17282104</id>
<revision>
<id>690395454</id>
<parentid>579820161</parentid>
<timestamp>2015-11-13T02:17:23Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:(: when I changed this to add template editors, I didn't realize it had cascding protection—so all my change did was make it appear as if it could be edited by them ([Edit=Allow only administrators] (indefinite) [...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="43">{&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>bo68003d0rx5gzaxu8kxrb3a6qyoyjo</sha1>
</revision>
</page>
<page>
<title>Template:((</title>
<ns>10</ns>
<id>13219896</id>
<revision>
<id>690395453</id>
<parentid>579820172</parentid>
<timestamp>2015-11-13T02:17:23Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:((: when I changed this to add template editors, I didn't realize it had cascding protection—so all my change did was make it appear as if it could be edited by them ([Edit=Allow only administrators] (indefinite)...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="44">{{&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>7ddca00qmssfls0dctzbj32xy1q28ir</sha1>
</revision>
</page>
<page>
<title>Template:(((</title>
<ns>10</ns>
<id>20750143</id>
<revision>
<id>425705039</id>
<parentid>400492194</parentid>
<timestamp>2011-04-24T19:13:49Z</timestamp>
<contributor>
<username>Nsaa</username>
<id>113357</id>
</contributor>
<comment>moving out</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="45">{{{&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>p09oe358xifexyxixwqlowpxpmqlo9g</sha1>
</revision>
</page>
<page>
<title>Template:)</title>
<ns>10</ns>
<id>17282118</id>
<revision>
<id>690395457</id>
<parentid>579820181</parentid>
<timestamp>2015-11-13T02:17:23Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:): when I changed this to add template editors, I didn't realize it had cascding protection—so all my change did was make it appear as if it could be edited by them ([Edit=Allow only administrators] (indefinite) [...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="43">}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>trjzkxjnoc4j3s8syx7lt7qs0fnlhua</sha1>
</revision>
</page>
<page>
<title>Template:)!</title>
<ns>10</ns>
<id>22222300</id>
<revision>
<id>690395456</id>
<parentid>579820189</parentid>
<timestamp>2015-11-13T02:17:23Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:)!: when I changed this to add template editors, I didn't realize it had cascding protection—so all my change did was make it appear as if it could be edited by them ([Edit=Allow only administrators] (indefinite)...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="41">]&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>2nv60f9w4w11w483rmqnlsw1v6c6dai</sha1>
</revision>
</page>
<page>
<title>Template:))</title>
<ns>10</ns>
<id>13219644</id>
<revision>
<id>774487220</id>
<parentid>388441714</parentid>
<timestamp>2017-04-08T20:03:55Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:))]]&quot;: [[WP:High-risk templates|Highly visible template]]: Allowing template editors ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="44">}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>fmm8htexq13hwrjrvzcsiy59gv65l36</sha1>
</revision>
</page>
<page>
<title>Template:)))</title>
<ns>10</ns>
<id>28476790</id>
<revision>
<id>522279113</id>
<parentid>505070416</parentid>
<timestamp>2012-11-10T03:47:04Z</timestamp>
<contributor>
<username>Zenexer</username>
<id>5962034</id>
</contributor>
<comment>Restored template to its original purpose; it now lines up with {{(((}}, {{))}}, etc. Please do not change this metatemplate for your own purposes, as it has an important use case.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="45">}}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>002a69ugw3az2pvs9vxuj7ng65ojzln</sha1>
</revision>
</page>
<page>
<title>Template:Auxiliary template common notice</title>
<ns>10</ns>
<id>29191222</id>
<revision>
<id>745333884</id>
<parentid>745333851</parentid>
<timestamp>2016-10-20T14:54:21Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>/* See also */</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3098">__NOTOC__
Use this template to produce the [[Character (computing)|character]] or characters &quot;{{thinsp|&lt;includeonly&gt;{{ {{BASEPAGENAME}} }}&lt;/includeonly&gt;&lt;noinclude&gt;{{small|[''character/s appear here'']}}&lt;/noinclude&gt;}}&quot; as ordinary text rather than as part of a link&amp;nbsp;&lt;code&gt;&lt;nowiki&gt;[[ ]]&lt;/nowiki&gt;&lt;/code&gt;, [[Wikipedia:Transclusion|transclusion]]&amp;nbsp;&lt;code&gt;&lt;nowiki&gt;{{ }}&lt;/nowiki&gt;&lt;/code&gt;, variable&amp;nbsp;&lt;code&gt;&lt;nowiki&gt;{{{ }}}&lt;/nowiki&gt;&lt;/code&gt;, etc.&lt;!--
--&gt;{{#if:{{{entity|}}} |&lt;br/&gt;The [[Character encodings in HTML#HTML character references|HTML character code]] &quot;&lt;code&gt;&amp;amp;{{{entity}}};&lt;/code&gt;&quot; may also be used to produce the same result.}}
==Similar templates==
{| class=&quot;wikitable&quot; style=&quot;text-align:center&quot;
|-
! scope=&quot;col&quot; style=&quot;width:7.0em;&quot; | Template
! scope=&quot;col&quot; style=&quot;width:5.75em;&quot; | Output
! scope=&quot;col&quot; style=&quot;width:9.0em;&quot; | HTML alternative
|- style=&quot;vertical-align:top&quot;
| {{tlp|!!}}
| &lt;nowiki&gt;||&lt;/nowiki&gt;
| &amp;amp;#124;&amp;amp;#124;
|- style=&quot;vertical-align:top&quot;
| {{tlp|!(}}
| {{!(}}
| &amp;amp;#91;
|- style=&quot;vertical-align:top&quot;
| {{tlp|)!}}
| {{)!}}
| &amp;amp;#93;
|- style=&quot;vertical-align:top&quot;
| {{tlp|!((}}
| {{!((}}
| &amp;amp;#91;&amp;amp;#91;
|- style=&quot;vertical-align:top&quot;
| {{tlp|))!}}
| {{))!}}
| &amp;amp;#93;&amp;amp;#93;
|- style=&quot;vertical-align:top&quot;
| {{tlp|(}}
| {{(}}
| &amp;amp;#123;
|- style=&quot;vertical-align:top&quot;
| {{tlp|)}}
| {{)}}
| &amp;amp;#125;
|- style=&quot;vertical-align:top&quot;
| {{tlp|((}}
| {{((}}
| &amp;amp;#123;&amp;amp;#123;
|- style=&quot;vertical-align:top&quot;
| {{tlp|))}}
| {{))}}
| &amp;amp;#125;&amp;amp;#125;
|- style=&quot;vertical-align:top&quot;
| {{tlp|(((}}
| {{(((}}
| &amp;amp;#123;&amp;amp;#123;&amp;amp;#123;
|- style=&quot;vertical-align:top&quot;
| {{tlp|)))}}
| {{)))}}
| &amp;amp;#125;&amp;amp;#125;&amp;amp;#125;
|}
* '''Note:''' [[Template:!|Template:{{thinsp|!}}]] was also a template but was converted into a [[MW:Help:Magic word#Other|Magic Word]], you can also use the HTML alternative of &amp;amp;#124; and either will give you an output of |
==See also==
* [[Template:\|Template:{{thinsp|\}}]], which produces &quot;&amp;nbsp;&lt;nowiki&gt;/&lt;/nowiki&gt;&quot; (i.e. a [[Slash (punctuation)|(forward-)slash]] character preceded by a [[non-breaking space]])
* [[Template:=|Template:{{thinsp|&amp;#61;}}]], which produces an [[Equals sign|equals-sign]] as ordinary text
* [[Template:Brackets]] to produce text such as &quot;{{brackets|example text}}&quot; (i.e. unlinked)
* [[Template:Tlf]] to produce text such as &quot;{{tlf|example text}}&quot;
'''Other [[Bracket#Curly brackets or braces &amp;#123; &amp;#125;|brace]]-rendering templates'''
* [[Template:Braces]], to produce text such as &quot;{{braces|example text}}&quot; (i.e. untranscluded).
* [[Template:Mset]], to produce text such as &quot;{{mset|1, 2, ..., N}}&quot; (i.e., a mathematical set)
* [[Template:Square bracket open]], which produces &quot;{{thinsp|[}}&quot; or, as &lt;kbd&gt;&lt;nowiki&gt;{{square bracket open|2}}&lt;/nowiki&gt;&lt;/kbd&gt;, &quot;{{thinsp|&lt;nowiki&gt;[[&lt;/nowiki&gt;}}&quot;.
* [[Template:Square bracket close]], which produces &quot;{{thinsp|]}}&quot; or, as &lt;kbd&gt;&lt;nowiki&gt;{{square bracket close|2}}&lt;/nowiki&gt;&lt;/kbd&gt;, &quot;{{thinsp|&lt;nowiki&gt;]]&lt;/nowiki&gt;}}&quot;.
[[Category:Template namespace templates]]
&lt;noinclude&gt;[[Category:Wikipedia character-substitution templates| ]]&lt;/noinclude&gt;</text>
<sha1>boc8p16me3wg3qzc2aw2ahfwnja5lxb</sha1>
</revision>
</page>
<page>
<title>Template:Braces</title>
<ns>10</ns>
<id>6757881</id>
<revision>
<id>819685517</id>
<parentid>756613207</parentid>
<timestamp>2018-01-10T19:16:36Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Braces]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="655">{{#if:{{{code|{{{tt|}}}}}}|&lt;code&gt;}}&lt;!--
--&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{{1|{{thinsp}}}}}&lt;!--
--&gt;{{#if:{{{2|}}} |{{thinsp}}{{!}}{{thinsp}}{{{2}}}}}&lt;!--
--&gt;{{#if:{{{3|}}} |{{thinsp}}{{!}}{{thinsp}}{{{3}}}}}&lt;!--
--&gt;{{#if:{{{4|}}} |{{thinsp}}{{!}}{{thinsp}}{{{4}}}}}&lt;!--
--&gt;{{#if:{{{5|}}} |{{thinsp}}{{!}}{{thinsp}}{{{5}}}}}&lt;!--
--&gt;{{#if:{{{6|}}} |{{thinsp}}{{!}}{{thinsp}}{{{6}}}}}&lt;!--
--&gt;{{#if:{{{7|}}} |{{thinsp}}{{!}}{{thinsp}}{{{7}}}}}&lt;!--
--&gt;{{#if:{{{8|}}} |{{thinsp}}{{!}}{{thinsp}}{{{8}}}}}&lt;!--
--&gt;{{#if:{{{9|}}} |{{thinsp}}{{!}}{{thinsp}}{{{9}}}}}&lt;!--
--&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;!--
--&gt;{{#if:{{{code|{{{tt|}}}}}}|&lt;/code&gt;}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>1ab74omodaicbzav1p1h177xylxlr8x</sha1>
</revision>
</page>
<page>
<title>Template:Brackets</title>
<ns>10</ns>
<id>3340183</id>
<revision>
<id>807225559</id>
<parentid>682167241</parentid>
<timestamp>2017-10-26T18:08:39Z</timestamp>
<contributor>
<username>Waldir</username>
<id>182472</id>
</contributor>
<comment>+descriptions</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="659">[[&lt;nowiki/&gt;{{{1}}}&lt;nowiki/&gt;]{{#if:{{{2|}}}|{{{2}}}}}]&lt;noinclude&gt;
{{Documentation
| content =
This template provides way to wrap content in double [[square brackets]].
Examples:
*&lt;nowiki&gt;{{brackets|test}}&lt;/nowiki&gt; produces: {{brackets|test}}
*&lt;nowiki&gt;{{brackets|test|more}}&lt;/nowiki&gt; produces: {{brackets|test|more}}
*&lt;nowiki&gt;{{brackets|:ja:山本五十六}}&lt;/nowiki&gt; produces: {{brackets|:ja:山本五十六}}
===See also===
* {{tl|Braces}} — to wrap content in double [[curly brackets]]
* {{tl|Bracket}} — to wrap content in single [[square brackets]]
[[Category:Wikipedia character-substitution templates]]
}}&lt;!--(end Documentation)--&gt;
&lt;/noinclude&gt;</text>
<sha1>icp2y2lzh16z224mmkl4wstr15duzxe</sha1>
</revision>
</page>
<page>
<title>Template:Mset</title>
<ns>10</ns>
<id>31363051</id>
<revision>
<id>632587118</id>
<parentid>422292684</parentid>
<timestamp>2014-11-05T18:30:35Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="87">{{(}}{{{1|}}}{{#if:{{{2|}}}|{{!}}{{{2}}}}}{{)}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>9pxzj2dlt1unrbxuy6uw8s2fsvhmjqy</sha1>
</revision>
</page>
<page>
<title>Template:Template link with parameters</title>
<ns>10</ns>
<id>1567462</id>
<revision>
<id>761532389</id>
<parentid>761532021</parentid>
<timestamp>2017-01-23T13:38:38Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<minor/>
<comment>tidy up</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="616">&lt;span class=&quot;nowrap&quot;&gt;&amp;#123;&amp;#123;[[Template:{{{1}}}|{{{1}}}]]&lt;!--
--&gt;{{#ifeq:{{{2|x}}}|{{{2|}}}| &amp;#124;{{{2}}} }}&lt;!--
--&gt;{{#ifeq:{{{3|x}}}|{{{3|}}}| &amp;#124;{{{3}}} }}&lt;!--
--&gt;{{#ifeq:{{{4|x}}}|{{{4|}}}| &amp;#124;{{{4}}} }}&lt;!--
--&gt;{{#ifeq:{{{5|x}}}|{{{5|}}}| &amp;#124;{{{5}}} }}&lt;!--
--&gt;{{#ifeq:{{{6|x}}}|{{{6|}}}| &amp;#124;{{{6}}} }}&lt;!--
--&gt;{{#ifeq:{{{7|x}}}|{{{7|}}}| &amp;#124;{{{7}}} }}&lt;!--
--&gt;{{#ifeq:{{{8|x}}}|{{{8|}}}| &amp;#124;{{{8}}} }}&lt;!--
--&gt;{{#ifeq:{{{9|x}}}|{{{9|}}}| &amp;#124;{{{9}}} }}&lt;!--
--&gt;&amp;#125;&amp;#125;&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>lg9e22t66ubls217bck9o86z41sr30j</sha1>
</revision>
</page>
<page>
<title>Template:Thin space</title>
<ns>10</ns>
<id>28983734</id>
<revision>
<id>783984645</id>
<parentid>766639214</parentid>
<timestamp>2017-06-05T20:55:14Z</timestamp>
<contributor>
<username>Nardog</username>
<id>5908908</id>
</contributor>
<comment>fix syntax highlight</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="180">&lt;noinclude&gt;{{#tag:syntaxhighlight|&lt;/noinclude&gt;&lt;span style=&quot;white-space:nowrap&quot;&gt;&amp;thinsp;&lt;/span&gt;{{#if:{{{1|}}}|{{{1}}}&amp;thinsp;}}&lt;noinclude&gt;|lang=html}}
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>6obf5z71xslpp8cgn7a6acesmvuhcq2</sha1>
</revision>
</page>
<page>
<title>Template:Thinsp</title>
<ns>10</ns>
<id>50534547</id>
<redirect title="Template:Thin space" />
<revision>
<id>744431975</id>
<parentid>720127852</parentid>
<timestamp>2016-10-15T05:06:31Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<comment>add [[WP:RCAT|rcat]]s</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="133">#REDIRECT [[Template:Thin space]]
{{Redirect category shell|
{{R from move}}
{{R from modification}}
{{R from template shortcut}}
}}</text>
<sha1>4941qieximsr0q2fo341kznw6m833it</sha1>
</revision>
</page>
<page>
<title>Template:Tlp</title>
<ns>10</ns>
<id>52958709</id>
<redirect title="Template:Template link with parameters" />
<revision>
<id>761532023</id>
<timestamp>2017-01-23T13:35:17Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<comment>MSGJ moved page [[Template:Tlp]] to [[Template:Template link with parameters]]: expand name of template</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="69">#REDIRECT [[Template:Template link with parameters]]
{{R from move}}</text>
<sha1>6l74hww4lk18kiq6ytyy69dsjvrnwju</sha1>
</revision>
</page>
<page>
<title>Template:))!/doc</title>
<ns>10</ns>
<id>36487537</id>
<revision>
<id>734800546</id>
<parentid>734798090</parentid>
<timestamp>2016-08-16T20:13:24Z</timestamp>
<contributor>
<username>Sro23</username>
<id>25256595</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/107.77.212.23|107.77.212.23]] ([[User talk:107.77.212.23|talk]]) to last version by Sardanaphalus</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="193">{{Documentation subpage}}
{{Auxiliary template common notice}}
&lt;includeonly&gt;
[[Category:Wikipedia character-substitution templates]]
[[Category:Templates used by fb templates]]
&lt;/includeonly&gt;</text>
<sha1>rcw4sce11ntsgxakn53bkeaqsy9w5ew</sha1>
</revision>
</page>
<page>
<title>Template:Pp</title>
<ns>10</ns>
<id>43132240</id>
<revision>
<id>761735106</id>
<parentid>695624743</parentid>
<timestamp>2017-01-24T15:07:04Z</timestamp>
<contributor>
<username>Xaosflux</username>
<id>502540</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Pp]]&quot;: is linked from cascaded main page, moving would be very disruptive ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="76">{{#invoke:Protection banner|main}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>8rt1snyv5yit3jnuzrbl00negaj27e5</sha1>
</revision>
</page>
<page>
<title>Template:Pp-move</title>
<ns>10</ns>
<id>10225964</id>
<revision>
<id>619982993</id>
<parentid>600915364</parentid>
<timestamp>2014-08-05T17:16:32Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>convert this to use [[Module:Protection banner]]; see [[Module talk:Protection banner#Proposal to convert all protection templates to use this module|here]] for details</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="178">&lt;includeonly&gt;{{#invoke:Protection banner|main}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>5t6lal9n9hcpwsso2obr7pcyjbg26xc</sha1>
</revision>
</page>
<page>
<title>Template:Pp-protected</title>
<ns>10</ns>
<id>10226552</id>
<redirect title="Template:Pp" />
<revision>
<id>667600903</id>
<parentid>667569300</parentid>
<timestamp>2015-06-19T08:28:19Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>superfluous</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="68">#REDIRECT [[Template:Pp]]
[[Category:Top icon protection templates]]</text>
<sha1>dozigcs1b5fk5ztwerdzndbrt3ubcc3</sha1>
</revision>
</page>
<page>
<title>Template:R from modification</title>
<ns>10</ns>
<id>17586236</id>
<revision>
<id>798920107</id>
<parentid>773538503</parentid>
<timestamp>2017-09-04T15:49:33Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<comment>include &quot;demo=&quot; parameter</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="862">&lt;noinclude&gt;{{This is a redirect/rcat}}
&lt;/noinclude&gt;{{Redirect template
|name=From a modification
|from=a modification of the target's title or a closely related title. For example, the words may be rearranged, or punctuation may be different{{#if: {{{1|{{{reason|}}}}}}|. This redirect is a modification of {{{1|{{{reason|}}}}}}}}
|info=** In cases of modification from distinctly longer or shorter names, please use {{tl|R from long name}} or {{tl|R from short name}}, respectively.
** Use this [[WP:rcat|rcat]] instead of {{tl|R from other capitalisation}} and {{tl|R from plural}} in namespaces other than [[WP:Mainspace|mainspace]] for those types of modification.
|all category={{#ifeq:{{{demo}}}|yes||Redirects from modifications}}
}}&lt;noinclude&gt;
&lt;!-- Place categories on /doc subpage; interwikis go to Wikidata. --&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>aic8ujidr6ge1fan525oh6awaa327s5</sha1>
</revision>
</page>
<page>
<title>Template:R from template shortcut</title>
<ns>10</ns>
<id>17811422</id>
<revision>
<id>769941744</id>
<parentid>760880902</parentid>
<timestamp>2017-03-12T14:31:34Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>make consistent with [[Template:R from shortcut]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="977">&lt;noinclude&gt;{{This is a redirect/rcat}}
&lt;/noinclude&gt;{{Redirect template
|name=From a template shortcut
|from=a shortcut page name '''in ''any'' [[WP:namespace|namespace]]'''
|to=a page in [[WP:template namespace|template namespace]]
|info=** ''If target page is '''not''' a template, then use {{tl|R from shortcut}} instead.''
** Template shortcuts are [[wikilink]]ed on community pages, talk pages and edit summaries, but not in [[wp:mainspace|mainspace]] articles. [[WP:Transclusion|Transclusion]]s in mainspace are common and do not need to be &quot;[[WP:NOTBROKEN|fixed]]&quot;.
** '''Note:''' ''Template talk pages are in a [[wp:talk namespace|talk namespace]]; they are '''''not''''' in the template namespace. All shortcuts to talk pages should be tagged with {{tlc|R from shortcut}}.''
|all category=Redirects from template shortcuts
|printworthy=no
}}&lt;noinclude&gt;
&lt;!-- Place categories on /doc subpage; interwikis go to Wikidata. --&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>kx9githfh7a5sdby6encscq7v58x3z6</sha1>
</revision>
</page>
<page>
<title>Template:R template-protected</title>
<ns>10</ns>
<id>41622790</id>
<revision>
<id>797450492</id>
<parentid>745831269</parentid>
<timestamp>2017-08-27T03:48:21Z</timestamp>
<contributor>
<username>Hijiri88</username>
<id>154069</id>
</contributor>
<comment>See https://en.wikipedia.org/w/index.php?title=Template_talk%3ARedirect_category_shell&amp;type=revision&amp;diff=797441666&amp;oldid=769144570</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1051">&lt;noinclude&gt;{{This is a redirect/rcat}}
&lt;/noinclude&gt;{{Redirect template
|name=[[:Category:Template-protected redirects|Template-protected]]
|from=a page that is template-protected from editing for any of several possible reasons
|info=** '''Please do not replace these redirected links''' with links directly to the target page unless expressly advised to do so below or elsewhere on this page, or if the change is supported by a policy or guideline.
}}{{#ifeq:{{{nocat|}}}|true||{{#ifeq:{{FULLPAGENAME}}|Template:R template-protected||{{#ifeq: {{SUBPAGENAME}}|sandbox||{{#switch: {{PROTECTIONLEVEL:move}}
|templateeditor=[[Category:Template-protected redirects]]
|sysop=[[Category:Protected redirects]]
}}{{#switch: {{PROTECTIONLEVEL:edit}}
|templateeditor=[[Category:Template-protected redirects]]
|sysop|autoconfirmed|extendedconfirmed|#default=[[Category:Wikipedia pages with incorrect protection templates]]
}}}}}}}}&lt;noinclude&gt;
&lt;!-- Place categories on /doc subpage; interwikis go to Wikidata. --&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>jpxjocz5s5hs84azotlfpu6p0tm7sjb</sha1>
</revision>
</page>
<page>
<title>Template:R template protected</title>
<ns>10</ns>
<id>52057858</id>
<redirect title="Template:R template-protected" />
<revision>
<id>771380235</id>
<parentid>771366619</parentid>
<timestamp>2017-03-21T05:32:28Z</timestamp>
<contributor>
<username>WayKurat</username>
<id>734270</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/2607:FB90:4CED:435:408B:D3E3:E368:85BF|2607:FB90:4CED:435:408B:D3E3:E368:85BF]] ([[User talk:2607:FB90:4CED:435:408B:D3E3:E368:85BF|talk]]) to last version by Paine Ellsworth</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="170">#REDIRECT [[Template:R template-protected]]
{{Redirect category shell|
{{R from move}}
{{R to redirect template}}
{{R from modification}}
{{R from template shortcut}}
}}</text>
<sha1>8f3epmenmlehxiiey9018txtcd926ll</sha1>
</revision>
</page>
<page>
<title>Template:Redirect category shell</title>
<ns>10</ns>
<id>51108920</id>
<revision>
<id>817125234</id>
<parentid>816828035</parentid>
<timestamp>2017-12-26T08:55:41Z</timestamp>
<contributor>
<username>John of Reading</username>
<id>11308236</id>
</contributor>
<comment>Fix misnested bold/colour tags per edit request</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2057">{{Mbox
| name = Redirect category shell
| type = move
| image = none
| style = margin-top: 1.1em; border: solid 1px darkblue; border-left-width: 0.5em;
| textstyle = padding-top: 0.9em; padding-bottom: 0.9em;
| text = [[File:Symbol redirect arrow with gradient.svg|25px|link=]] '''This page is a [[Wikipedia:Redirect|redirect]]:'''{{#if:{{{h|}}}
|:: ''{{{h}}}''
}}&lt;!--
Automatically detect protected redirects:
--&gt;&lt;includeonly&gt;{{#switch: {{PROTECTIONLEVEL:move}}
|sysop|templateeditor|extendedconfirmed={{pp-move|small=yes}}
}}{{#switch: {{PROTECTIONLEVEL:edit}}
|sysop={{pp-protected|small=yes}}{{R protected|embed=yes}}
|templateeditor={{pp-protected|small=yes}}{{R template protected|embed=yes}}
|extendedconfirmed={{pp-protected|small=yes}}{{R extended-protected|embed=yes}}
|autoconfirmed={{pp-protected|small=yes}}{{R semi-protected|embed=yes}}
| &lt;!--Not protected, or only semi-move-protected--&gt;
}}&lt;/includeonly&gt;{{#if: {{{1|}}}||&lt;includeonly&gt;
* {{red|'''Important – Please Read''!'' {{maroon|This template should not be applied by bot, nor should it be used without parameters ''unless you want to learn how to categorize redirects''. This template is a ''learning tool'' to help editors who want to learn how to categorize redirects. ''Only'' those editors who intend to return to the redirect to learn which rcats to use should apply this template without parameters, or with an empty first parameter''!''}}'''}}&lt;/includeonly&gt;
* '''Manifold sort''': If help is needed to determine appropriate categories, then this redirect populates '''{{Cat|Miscellaneous redirects}}'''. Monitors of that category will check this redirect and add or remove [[WP:RCAT|rcat]]s as needed.{{#ifeq: {{lc:{{{nocat|false}}}}} | false |{{{category|&lt;includeonly&gt;[[Category:Miscellaneous redirects]]&lt;/includeonly&gt;}}}}}
}}
{{#if: {{{2|}}}|{{{2}}}|{{{1|}}}}}
''&lt;small&gt;When appropriate, [[Wikipedia:Protection policy|protection levels]] are automatically sensed, described and categorized.&lt;/small&gt;''
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>rfnilaxc1xew3zb0rb3p71a9wzwzyro</sha1>
</revision>
</page>
<page>
<title>Template:Redirect template</title>
<ns>10</ns>
<id>30505076</id>
<revision>
<id>672699497</id>
<parentid>630853914</parentid>
<timestamp>2015-07-23T08:16:39Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>for correct appearance of documentation page on template page</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="75">{{#invoke:Redirect template|main}}&lt;noinclude&gt;
{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>1cl28dcwjsrtge5hedu653jwub1cll3</sha1>
</revision>
</page>
<page>
<title>Module:Redirect template</title>
<ns>828</ns>
<id>44195575</id>
<revision>
<id>695184439</id>
<parentid>671738434</parentid>
<timestamp>2015-12-14T09:28:18Z</timestamp>
<contributor>
<username>The Earwig</username>
<id>7418060</id>
</contributor>
<minor/>
<comment>Changed protection level of Module:Redirect template: [[WP:High-risk templates|High-risk Lua module]]: over two million mainspace transclusions ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only administrators] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3162">require('Module:No globals')
local p = {}
-- key is beginning of arg name. value is table with namespace number and link
-- alternatively, a function taking the namespace number and returning a validity
-- can be used
local namespaceCategories = {
all = { function() return true end },
main = { 0, '[[wp:mainspace|main]]' },
help = { 12, '[[wp:help namespace|help]]' },
portal = { 100, '[[wp:portal|portal]]' },
talk = { function(n) return n &gt; 0 and n%2 == 1 end, '[[Help:Using talk pages|talk]]' },
template = { 10, '[[wp:template namespace|template]]' },
wikipedia = { 4, '[[wp:project namespace|Wikipedia project]]' },
category = { 14, '[[wp:categorization|category]]' },
user = { 2, '[[wp:user pages|user]]' },
}
-- Don't convert blank category to nil
local function valueFunc(key, val)
if type(val) == 'string' then
val = val:match('^%s*(.-)%s*$')
if val == '' and key ~= 'category' and key ~= 'embed' then
return nil
end
end
return val
end
local function getPrettyName(args)
for k in pairs(namespaceCategories) do
if args[k .. ' category'] then
return &quot;'''[[:Category:&quot; .. args[k .. ' category'] .. &quot;|&quot; .. args.name .. &quot;]]''': &quot;
end
end
return &quot;'''&quot; .. args.name .. &quot;''': &quot;
end
function p.core(frame, args)
if not args then
args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:Redirect template/core', valueFunc = valueFunc})
end
local namespace = mw.title.getCurrentTitle().namespace
local otherCategory = args['other category'] and (args.category or string.format('[[Category:%s]]', args['other category']))
local embedPossible = args.embed == nil or args.embed == 'yes'
--- XXX: this is a HORRIBLE HACK. kill it with fire as soon as https://bugzilla.wikimedia.org/show_bug.cgi?id=12974 is fixed
local beCompatibleWithBug12974 = args.info and (args.info:find('^[:;#*]', 1) == 1 or args.info:find('{|', 1, true) == 1) and '\n' or ' '
local retval = string.format('*%sThis is a redirect%s%s.%s%s',
embedPossible and args.name and getPrettyName(args) or '',
args.from and (' from ' .. args.from) or '',
args.to and (' to ' .. args.to) or '',
args.info and beCompatibleWithBug12974 or '',
args.info or ''
)
for k,v in pairs(namespaceCategories) do
if args[k .. ' category'] then
if type(v[1]) == 'function' and v[1](namespace) or v[1] == namespace then
retval = retval .. (args.category or string.format('[[Category:%s]]', args[k .. ' category']))
elseif args['other category'] then
retval = retval .. otherCategory
else
retval = retval .. frame:expandTemplate{title = 'Incorrect redirect template', args = {v[2]}}
end
end
end
return retval
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:Redirect template', valueFunc = valueFunc})
local retval = p.core(frame, args)
if mw.title.getCurrentTitle().namespace == 0 then
if args.printworthy == 'yes' then
return retval .. (args.category or '[[Category:Printworthy redirects]]')
elseif args.printworthy == 'no' then
return retval .. (args.category or '[[Category:Unprintworthy redirects]]')
end
end
return retval
end
return p</text>
<sha1>jowke0uju5exs13lp8zbvrdbvc5c806</sha1>
</revision>
</page>
<page>
<title>Template:1/2/doc</title>
<ns>10</ns>
<id>25537351</id>
<revision>
<id>806263538</id>
<parentid>803249824</parentid>
<timestamp>2017-10-20T20:42:10Z</timestamp>
<contributor>
<username>HotdogPi</username>
<id>16372547</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1183">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
=== Usage ===
The templates {{tl|1/2}}, {{tl|1/3}}, {{tl|2/3}}, {{tl|1/4}} and {{tl|3/4}} use [[HTML]] markup to create large, readable, common fractions &quot;{{1/2}}, {{1/3}}, {{2/3}}, {{1/4}}, {{3/4}}&quot;, as opposed to the often illegible &quot;½, ⅓, ⅔, ¼, ¾&quot; or horizontal &quot;1/2, 1/3, 2/3, 1/4, 3/4&quot;. They are intended as concise, easily interpreted alternatives to &lt;code&gt;&lt;nowiki&gt;{{frac|1|2}}, {{frac|1|3}}, {{frac|2|3}}, {{frac|1|4}}, {{frac|3|4}}&lt;/nowiki&gt;&lt;/code&gt;.
* &lt;code&gt;&lt;nowiki&gt;Bake for {{1/2}} hour.&lt;/nowiki&gt;&lt;/code&gt;
generates:
* Bake for {{1/2}} hour.
without requiring the use of bulky HTML markup.
Please note that these templates do not handle preceding integers (or succeeding units) and the spacing in between, use {{tl|frac}} for that:
* &lt;code&gt;&lt;nowiki&gt;Bake for {{frac|2|1|2}} hours.&lt;/nowiki&gt;&lt;/code&gt;
* Bake for {{frac|2|1|2}} hours.
=== See also ===
*{{tl|frac}}
*{{tl|sfrac}}
*{{tl|sortfrac}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Wikipedia character-substitution templates]]
[[Category:Mathematical formatting templates]]
&lt;/includeonly&gt;</text>
<sha1>c70q0tb6yk2er0xdvuepr6pg6hzm6k1</sha1>
</revision>
</page>
<page>
<title>Template:1/3</title>
<ns>10</ns>
<id>28883029</id>
<revision>
<id>812195094</id>
<parentid>812129798</parentid>
<timestamp>2017-11-26T15:19:18Z</timestamp>
<contributor>
<username>72</username>
<id>28970402</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/2600:387:9:5:0:0:0:B1|2600:387:9:5:0:0:0:B1]] ([[User talk:2600:387:9:5:0:0:0:B1|talk]]) to last version by Edokter</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="71">{{frac|1|3}}&lt;noinclude&gt;
{{Documentation|Template:1/2/doc}}
&lt;/noinclude&gt;</text>
<sha1>2qwtcxiflspoqxa3w30t1kea5yupmpu</sha1>
</revision>
</page>
<page>
<title>Template:1/4</title>
<ns>10</ns>
<id>27731607</id>
<revision>
<id>803493764</id>
<parentid>802981778</parentid>
<timestamp>2017-10-02T21:36:10Z</timestamp>
<contributor>
<username>Bluesangrel</username>
<id>13174094</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="71">{{frac|1|4}}&lt;noinclude&gt;
{{Documentation|Template:1/2/doc}}
&lt;/noinclude&gt;</text>
<sha1>kvi40lxsn7hi1u4aa74qq47p7daop2i</sha1>
</revision>
</page>
<page>
<title>Template:2/3</title>
<ns>10</ns>
<id>25844760</id>
<revision>
<id>636441445</id>
<parentid>588069533</parentid>
<timestamp>2014-12-03T10:10:57Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="71">{{frac|2|3}}&lt;noinclude&gt;
{{Documentation|Template:1/2/doc}}
&lt;/noinclude&gt;</text>
<sha1>23dztto07xp8scsgidfmid0m1bnnfl7</sha1>
</revision>
</page>
<page>
<title>Template:3/4</title>
<ns>10</ns>
<id>27731668</id>
<revision>
<id>636441485</id>
<parentid>588070027</parentid>
<timestamp>2014-12-03T10:11:37Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="71">{{frac|3|4}}&lt;noinclude&gt;
{{Documentation|Template:1/2/doc}}
&lt;/noinclude&gt;</text>
<sha1>1xnvv9bpay3en52f3zv12arr9d0wlz1</sha1>
</revision>
</page>
<page>
<title>Template:Zero width space</title>
<ns>10</ns>
<id>28270448</id>
<revision>
<id>814083506</id>
<parentid>708469186</parentid>
<timestamp>2017-12-06T20:27:52Z</timestamp>
<contributor>
<username>Dinoguy1000</username>
<id>2412089</id>
</contributor>
<minor/>
<comment>Dinoguy1000 moved page [[Template:Zwsp]] to [[Template:Zero width space]]: full name</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="77">&lt;includeonly&gt;&amp;#x200B;&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>kglxlxh5p7du8wgu4iqxongo9z2xap8</sha1>
</revision>
</page>
<page>
<title>Template:Zwsp</title>
<ns>10</ns>
<id>55985299</id>
<redirect title="Template:Zero width space" />
<revision>
<id>814083508</id>
<timestamp>2017-12-06T20:27:52Z</timestamp>
<contributor>
<username>Dinoguy1000</username>
<id>2412089</id>
</contributor>
<comment>Dinoguy1000 moved page [[Template:Zwsp]] to [[Template:Zero width space]]: full name</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="56">#REDIRECT [[Template:Zero width space]]
{{R from move}}</text>
<sha1>guzajfbrtl9pf17gpusewwmuo9fpyh3</sha1>
</revision>
</page>
<page>
<title>Template:=/doc</title>
<ns>10</ns>
<id>13395882</id>
<revision>
<id>823316940</id>
<parentid>823315965</parentid>
<timestamp>2018-01-31T14:52:24Z</timestamp>
<contributor>
<username>Flyer22 Reborn</username>
<id>4293477</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contributions/Vasishtaeducations|Vasishtaeducations]] ([[User talk:Vasishtaeducations|talk]]) ([[WP:HG|HG]]) (3.3.3)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1363">{{Documentation subpage}}
{{High-risk|398,000+}}
&lt;!--
PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE.
YOU CAN EDIT THE TEMPLATE DOCUMENTATION BELOW THIS COMMENT.
--&gt;
== Usage ==
This template allows &quot;=&quot; to be used in unnamed template parameters. It inserts the one-character [[equals-sign]] (&quot;=&quot;) into the text. However, in [[wp:CS1]] cite titles, the [[Unicode]] form &quot;&amp;amp;#61;&quot; could be used instead, where a literal &quot;=&quot; is not wanted during formatting of a title
== Example ==
*&lt;code&gt;&lt;nowiki&gt;{{Font color|black|yellow|2 + 2 {{=}} 4}}&lt;/nowiki&gt;&lt;/code&gt; produces: {{Font color|black|yellow|2 + 2 {{=}} 4}}
You can also use named parameters to bypass the restriction:
*&lt;code&gt;&lt;nowiki&gt;{{Font color|black|yellow|3= 2 + 2 = 4}}&lt;/nowiki&gt;&lt;/code&gt; produces: {{Font color|black|yellow|3= 2 + 2 = 4}}
== TemplateData ==
{{TemplateDataHeader}}
&lt;TemplateData&gt;
{&quot;description&quot;:&quot;A template to allow = to be used in template parameters&quot;,&quot;params&quot;:{}}
&lt;/TemplateData&gt;
== See also ==
* {{tl|((}}, which produces: {{((}}
* {{tl|))}}, which produces: {{))}}
* {{tl|!}}, which produces: {{!}}
* {{tl|ifequal}}
&lt;includeonly&gt;{{basepage subpage|&lt;!----PLEASE ADD CATEGORIES BELOW THIS LINE:----&gt;
[[Category:Wikipedia character-substitution templates]]
[[Category:Template namespace templates]]
[[Category:Mathematical formatting templates]]
}}&lt;/includeonly&gt;</text>
<sha1>3jjq90y6q0ojgzhjmv43699pt6wdjx5</sha1>
</revision>
</page>
<page>
<title>Template:Basepage subpage</title>
<ns>10</ns>
<id>43986518</id>
<redirect title="Template:When on basepage" />
<revision>
<id>769880910</id>
<parentid>642181889</parentid>
<timestamp>2017-03-12T04:26:29Z</timestamp>
<contributor>
<username>Godsy</username>
<id>23257138</id>
</contributor>
<comment>[[Template:This is a redirect]] has been deprecated, change to [[Template:Redirect category shell]].</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="115">#REDIRECT [[Template:When on basepage]]
{{Redirect category shell|
{{R from move}}
{{R from template shortcut}}
}}</text>
<sha1>8auv81suxp1xkygdvxy45lt28yl3p6z</sha1>
</revision>
</page>
<page>
<title>Template:When on basepage</title>
<ns>10</ns>
<id>24953498</id>
<revision>
<id>627655680</id>
<parentid>623562904</parentid>
<timestamp>2014-09-30T08:52:52Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<minor/>
<comment>Sardanaphalus moved page [[Template:Basepage subpage]] to [[Template:When on basepage]]: Per move request</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="686">{{#switch:
&lt;!--If no or empty &quot;page&quot; parameter then detect
basepage/subpage/subsubpage--&gt;
{{#if:{{{page|}}}
| {{#if:{{#titleparts:{{{page}}}|0|3}}
| subsubpage &lt;!--Subsubpage or lower--&gt;
| {{#if:{{#titleparts:{{{page}}}|0|2}}
| subpage
| basepage
}}
}}
| {{#if:{{#titleparts:{{FULLPAGENAME}}|0|3}}
| subsubpage &lt;!--Subsubpage or lower--&gt;
| {{#if:{{#titleparts:{{FULLPAGENAME}}|0|2}}
| subpage
| basepage
}}
}}
}}
| basepage = {{{1|}}}
| subpage = {{{2|}}}
| subsubpage = {{{3| {{{2|}}} }}} &lt;!--Respecting empty parameter on purpose--&gt;
}}&lt;!--End switch--&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>o7r5t2v8ni781nvx47cen0sam91sxxc</sha1>
</revision>
</page>
<page>
<title>Template:Aligned table/doc</title>
<ns>10</ns>
<id>41873687</id>
<revision>
<id>760499496</id>
<parentid>735998362</parentid>
<timestamp>2017-01-17T10:46:24Z</timestamp>
<contributor>
<username>SpikeToronto</username>
<id>5635510</id>
</contributor>
<comment>/* Parameters */ Required for tablets (e.g., iPad).</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="7272">{{Documentation subpage}}
{{Lua|icononly=on |Module:Aligned table}}
{{high-use|6000+}}
&lt;!----Please place categories where indicated at the bottom of this page and interwikis in Wikidata----&gt;
The purpose is of this template is for generating simple tables in locations where [[Help:Table|standard table markup]] is either not possible, without significant use of the {{tld|!}} magic word (e.g., with a {{tl|sidebar}} template), or cumbersome (due to the repetitive use of specification of the same style statement in each row). This template should &lt;u&gt;not&lt;/u&gt; be used to replace [[Help:Table|standard table markup]] in articles. This template is meant to be complimentary to {{tl|infobox}} or {{tl|sidebar}}, and &lt;u&gt;not&lt;/u&gt; a replacement for {{tl|infobox}} or {{tl|sidebar}}.
A simpler method to include a table in a template that does not directly support table markup is to create the table in a sub-template using standard markup and transclude it.
== Full syntax ==
For parameter explanations, see table below.
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Aligned table
| cols =
| fullwidth =
| class =
| style =
| colwidth =
| leftright =
| colstyle =
| rowstyle =
&lt;!--for Cth column:--&gt;
| colCwidth =
| colCclass =
| colCalign =
| colCstyle =
| colCnowrap =
&lt;!--for Rth row:--&gt;
| rowRclass =
| rowRstyle =
| rowRheader =
&lt;!--for cell R,C:--&gt;
| classR.C =
| styleR.C =
| (cell 1,1) | (cell 1,2) | ... | ...
| (cell 2,1) | (cell 2,2) | ... | ...
}}
&lt;/pre&gt;
== Parameters ==
&lt;div style=&quot;overflow:auto;&quot;&gt;
{{Aligned table
|cols=4 |class=wikitable |style=line-height:1.35em;
|colstyle=padding-right:1.0em;
|col2width=40.0em
|col4style=padding-left:1.0em;text-align:center;
|row1header=on
| Parameter
| Description
| Examples
| Default
&lt;!-------Overall--------&gt;
| cols
| Number of columns in the table.
| &lt;code&gt;&lt;nowiki&gt; |cols=4 &lt;/nowiki&gt;&lt;/code&gt;
| 2
| fullwidth
| {{nowrap|If set (to anything, &quot;on&quot;, &quot;true&quot;, &quot;yes&quot;, etc.), ensures table spans entire width available.}}
(Effect is to remove border-spacing and add width:100% to the table's styling.)
| &lt;code&gt;&lt;nowiki&gt; |fullwidth=on &lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
| class
| CSS/[[HTML attribute|HTML class]]/es applied to the table.
| &lt;code&gt;&lt;nowiki&gt; |class=wikitable &amp;nbsp; |class=infobox&lt;/nowiki&gt;&lt;br /&gt;&lt;nowiki&gt;|class=sortable nowrap &amp;nbsp; |class=sidebar&lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
| style
| [[CSS styling]] applied to the table.
| &lt;code&gt;{{nowrap|&lt;nowiki&gt; |style=width:80%;background:transparent; &lt;/nowiki&gt;}}&lt;/code&gt;
| ''Not set''
| colwidth
| Width of each column (or include &quot;width:...;&quot; in &lt;kbd&gt;colstyle&lt;/kbd&gt;).
| &lt;code&gt;&lt;nowiki&gt; |colwidth=6.0em &amp;nbsp; |colwidth=25%&lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
| colstyle
| CSS styling prepended to the cell style for each column.
| &lt;code&gt;&lt;nowiki&gt; |colstyle=background:transparent; &lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
| rowstyle
| CSS styling applied to each row.
| &lt;code&gt;&lt;nowiki&gt; |rowstyle=text-align:center; &lt;/nowiki&gt;&lt;/code&gt;
| vertical-align:top;
&lt;!-------Columns--------&gt;
| leftright
| If set (to anything, &quot;on&quot;, &quot;true&quot;, &quot;yes&quot;, etc.) is equivalent to &lt;kbd&gt;&lt;nowiki&gt;|col1align=left&lt;/nowiki&gt;&lt;/kbd&gt; and &lt;kbd&gt;&lt;nowiki&gt;|col2align=right&lt;/nowiki&gt;&lt;/kbd&gt;
| &lt;code&gt;&lt;nowiki&gt; |leftright=on &lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
| col{{var|C}}width
| CSS width property of cell in column {{var|C}} (or include &quot;width:...;&quot; in &lt;kbd&gt;col{{var|C}}style&lt;/kbd&gt;).
| &lt;code&gt;&lt;nowiki&gt; |col2width=9.0em &amp;nbsp; |col3width=35%&lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
| col{{var|C}}class
| Classes added to cell in column {{var|C}}.
| &lt;code&gt;&lt;nowiki&gt; |col1class=navbox-group &lt;/nowiki&gt;&lt;/code&gt;
| '' Not set''
| col{{var|C}}align
| CSS text-align property (left{{\}}right{{\}}center) of cell in column {{var|C}}'s cell contents (or include &quot;text-align:...;&quot; in &lt;kbd&gt;col{{var|C}}style&lt;/kbd&gt;).
| &lt;code&gt;&lt;nowiki&gt; |col4align=right &lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
| col{{var|C}}nowrap
| If set (to anything, &quot;on&quot;, &quot;true&quot;, &quot;yes&quot;, etc.) adds &quot;white-space:nowrap;&quot; to the CSS style of cell in column {{var|C}} (i.e., to prevent lines within its cells from wrapping; or include &quot;nowrap&quot; in &lt;kbd&gt;col{{var|C}}class&lt;/kbd&gt; or &quot;white-space:nowrap;&quot; in &lt;kbd&gt;col{{var|C}}style&lt;/kbd&gt;).
| &lt;code&gt;&lt;nowiki&gt; |col5nowrap=on &lt;/nowiki&gt;&lt;/code&gt;
|
| col{{var|C}}style
| CSS style appended to cell in column {{var|C}}.
| &lt;code&gt;&lt;nowiki&gt; |col4style=font-style:italic; &lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
| col{{var|C}}header
| If set (to any value), changes cells in column {{var|C}} to table headers (headings).
| &lt;code&gt;&lt;nowiki&gt; |col1header=on &lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
&lt;!--------Rows----------&gt;
| row{{var|R}}class
| Classes applied to row {{var|R}}.
| &lt;code&gt;&lt;nowiki&gt; |row10class=navbox-abovebelow &lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
| row{{var|R}}style
| CSS styling applied to row {{var|R}}.
| &lt;code&gt;&lt;nowiki&gt; |row2style=font-weight:bold; &lt;/nowiki&gt;&lt;/code&gt;
|
| row{{var|R}}header
| If set (to any value), changes cells in row {{var|R}} to table headers (headings).
| &lt;code&gt;&lt;nowiki&gt; |row1header=on &lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
&lt;!--------Cells---------&gt;
| class{{var|R}}.{{var|C}}
| Classes applied to cell in row {{var|R}}, column {{var|C}}. Overrides any other class attributions (&lt;kbd&gt;row{{var|R}}class&lt;/kbd&gt;, &lt;kbd&gt;col{{var|C}}class&lt;/kbd&gt;).
| &lt;code&gt;&lt;nowiki&gt; |class1.2=adr &lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
| style{{var|R}}.{{var|C}}
| CSS styling applied to cell in row {{var|R}}, column {{var|C}}. Overrides any more general styling (&lt;kbd&gt;leftright&lt;/kbd&gt;, &lt;kbd&gt;col{{var|C}}align&lt;/kbd&gt;, &lt;kbd&gt;row{{var|R}}style&lt;/kbd&gt;, etc).
| &lt;code&gt;&lt;nowiki&gt; |style5.3=text-align:right; &lt;/nowiki&gt;&lt;/code&gt;
| ''Not set''
| {{sans-serif|''Unnamed parameters''}}
| Each unnamed parameter is taken to be the next cell in the table, starting at the table's top left corner and working left to right from top to bottom.
| &lt;code&gt;{{!}} Azerbaijan {{!}} Malta {{!}} Zaire&lt;/code&gt;
| ''Not set''
}}&lt;/div&gt;
== Examples ==
&lt;pre&gt;
{{Aligned table
|cols=3 |class=wikitable
| A | 1 | a
| B | 2 | b
}}
&lt;/pre&gt;
{{Aligned table
|cols=3 |class=wikitable
| A | 1 | a
| B | 2 | b
}}
&lt;pre&gt;
{{Aligned table
|cols=4 |class=wikitable
|col1align=center |col2align=center
|col3align=right |col4align=right
| AAA | aa | 123 | 12345
| B | bbbbb | 1234 | 2
}}
&lt;/pre&gt;
{{Aligned table
|cols=4 |class=wikitable
|col1align=center |col2align=center
|col3align=right |col4align=right
| AAA | aa | 123 | 12345
| B | bbbbb | 1234 | 2
}}
&lt;pre&gt;
{{Aligned table
|class=wikitable |style=width:20em;
|col1align=center |col2align=right
| AAA | 123
| B | 2
}}
&lt;/pre&gt;
{{Aligned table
|class=wikitable |style=width:20em;
|col1align=center |col2align=right
| AAA | 123
| B | 2
}}
&lt;pre&gt;
{{Aligned table
|cols=3 |class=wikitable sortable
|row1header=y
| U | # | l
| A | 1 | a
| B | 2 | b
}}
&lt;/pre&gt;
{{Aligned table
|cols=3 |class=wikitable sortable
|row1header=y
| U | # | l
| A | 1 | a
| B | 2 | b
}}
&lt;pre&gt;
{{Aligned table
|cols=3 |class=wikitable sortable
|row1header=y
| U | # | l
| A | 1 | a
| B | 2 | b
| | |
| C | 3 | c
}}
&lt;/pre&gt;
{{Aligned table
|cols=3 |class=wikitable sortable
|row1header=y
| U | # | l
| A | 1 | a
| B | 2 | b
| | |
| C | 3 | c
}}
&lt;includeonly&gt;{{basepage subpage|
| &lt;!-- Categories below this line, please; interwikis to Wikidata. --&gt;
[[Category:Table templates]]
}}&lt;/includeonly&gt;</text>
<sha1>lxtr7x577tigskvypl2efdbkorbvcg8</sha1>
</revision>
</page>
<page>
<title>Template:Nowrap</title>
<ns>10</ns>
<id>1627975</id>
<restrictions>edit=sysop:move=sysop</restrictions>
<revision>
<id>692794261</id>
<parentid>462345338</parentid>
<timestamp>2015-11-28T10:13:53Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<comment>Adapt comment; edits inside noinclude blocks should not affect job queue, but won't kill parser either way.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="145">&lt;span class=&quot;nowrap&quot;&gt;{{{1}}}&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc page; interwikis go to Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>avb5tcymgupik1ikutqclidkj9tnitx</sha1>
</revision>
</page>
<page>
<title>Template:Sans-serif</title>
<ns>10</ns>
<id>44415753</id>
<revision>
<id>820902549</id>
<parentid>820901318</parentid>
<timestamp>2018-01-17T08:07:28Z</timestamp>
<contributor>
<username>Oshwah</username>
<id>3174456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Sans-serif]]&quot;: High risk template ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="172">&lt;noinclude&gt;&lt;pre&gt;&lt;/noinclude&gt;&lt;span style=&quot;font-family:sans-serif;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;noinclude&gt;&lt;/pre&gt;
[[Category:Text-specific formatting and function templates]]
&lt;/noinclude&gt;</text>
<sha1>ji4suc347jcnxc591ovm74u01o0ne04</sha1>
</revision>
</page>
<page>
<title>Template:Sigfig</title>
<ns>10</ns>
<id>37772150</id>
<redirect title="Template:Significant figures" />
<revision>
<id>769931066</id>
<parentid>686429031</parentid>
<timestamp>2017-03-12T12:58:35Z</timestamp>
<contributor>
<username>Christian75</username>
<id>1306352</id>
</contributor>
<comment>{{redr}} is deprecated - converting to {{Redirect category shell}} using [[Project:AWB|AWB]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="118">#REDIRECT [[Template:Significant figures]]
{{Redirect category shell|
{{R from move}}
{{R from template shortcut}}
}}</text>
<sha1>6liq0tocaomv3w5pnzdg0n7d2hqs805</sha1>
</revision>
</page>
<page>
<title>Template:Tld</title>
<ns>10</ns>
<id>16451582</id>
<revision>
<id>722499597</id>
<parentid>559778632</parentid>
<timestamp>2016-05-28T14:58:08Z</timestamp>
<contributor>
<username>Yaris678</username>
<id>1210941</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Tld: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="766">{{Tlg|code=yes|nolink=yes|subst={{{subst|}}}|nowrap={{#if:{{{allowlinebreak|}}}||yes}}|{{{1|}}}&lt;!--
--&gt;|2{{#ifeq:{{{2}}}|{{{2|x}}}||x}}={{{2}}}&lt;!--
--&gt;|3{{#ifeq:{{{3}}}|{{{3|x}}}||x}}={{{3}}}&lt;!--
--&gt;|4{{#ifeq:{{{4}}}|{{{4|x}}}||x}}={{{4}}}&lt;!--
--&gt;|5{{#ifeq:{{{5}}}|{{{5|x}}}||x}}={{{5}}}&lt;!--
--&gt;|6{{#ifeq:{{{6}}}|{{{6|x}}}||x}}={{{6}}}&lt;!--
--&gt;|7{{#ifeq:{{{7}}}|{{{7|x}}}||x}}={{{7}}}&lt;!--
--&gt;|8{{#ifeq:{{{8}}}|{{{8|x}}}||x}}={{{8}}}&lt;!--
--&gt;|9{{#ifeq:{{{9}}}|{{{9|x}}}||x}}={{{9}}}&lt;!--
--&gt;|10{{#ifeq:{{{10}}}|{{{10|x}}}||x}}={{{10}}}&lt;!--
--&gt;|11{{#ifeq:{{{11}}}|{{{11|x}}}||x}}={{{11}}}&lt;!--
--&gt;|12{{#ifeq:{{{12}}}|{{{12|x}}}||x}}={{{12}}}}}&lt;noinclude&gt;
{{Documentation|Template:Tlc/doc}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>m2m4u5powlflffx95pdx6t1iqjyxxrr</sha1>
</revision>
</page>
<page>
<title>Template:Var</title>
<ns>10</ns>
<id>19311880</id>
<revision>
<id>816459039</id>
<parentid>684205355</parentid>
<timestamp>2017-12-21T13:31:52Z</timestamp>
<contributor>
<username>Izno</username>
<id>2927383</id>
</contributor>
<comment>nix xml lang invocation</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="322">&lt;var {{#if:{{{class|}}}|class=&quot;{{{class}}}&quot;}} {{#if:{{{id|}}}|id=&quot;{{{id}}}&quot;}} style=&quot;padding-right: 1px;{{{style|}}}&quot; {{#if:{{{lang|}}}|lang=&quot;{{{lang}}}&quot;}} {{#if:{{{title|}}}|title=&quot;{{{title}}}&quot;}}&gt;{{{1}}}&lt;/var&gt;&lt;noinclude&gt;
&lt;!--Categories and interwikis go near the bottom of the /doc page.--&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>1ph0r212s7cz1dvg2q4quotqwsozpa8</sha1>
</revision>
</page>
<page>
<title>Template:\</title>
<ns>10</ns>
<id>16258728</id>
<revision>
<id>695047466</id>
<parentid>464090629</parentid>
<timestamp>2015-12-13T11:55:37Z</timestamp>
<contributor>
<username>Graeme Bartlett</username>
<id>38427</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:\: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only administrators] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="125">&amp;nbsp;/&amp;#32;&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>gfvlsjgnfxn02vdp58sww0lo44n62ht</sha1>
</revision>
</page>
<page>
<title>Module:Aligned table</title>
<ns>828</ns>
<id>41873595</id>
<revision>
<id>796397183</id>
<parentid>755158064</parentid>
<timestamp>2017-08-20T15:26:33Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>even/odd rowstyles</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="5697">-- This module implements {{aligned table}}
local p = {}
local function isnotempty(s)
return s and s:match( '^%s*(.-)%s*$' ) ~= ''
end
function p.table(frame)
local args = (frame.args[3] ~= nil) and frame.args or frame:getParent().args
local entries = {}
local colclass = {}
local colstyle = {}
local cols = tonumber(args['cols']) or 2
-- create the root table
local root = mw.html.create('table')
-- add table style for fullwidth
if isnotempty(args['fullwidth']) then
root
:css('width', '100%')
:css('border-collapse', 'collapse')
:css('border-spacing', '0px 0px')
:css('border', 'none')
end
-- add table classes
if isnotempty(args['class']) then
root:addClass(args['class'])
end
-- add table style
if isnotempty(args['style']) then
root:cssText(args['style'])
end
-- build arrays with the column styles and classes
if isnotempty(args['leftright']) then
colstyle[1] = 'text-align:left;'
colstyle[2] = 'text-align:right;'
end
for i = 1,cols do
colclass[ i ] = colclass[ i ] or ''
colstyle[ i ] = colstyle[ i ] or ''
if isnotempty(args['colstyle']) then
colstyle[ i ] = args['colstyle'] .. ';' .. colstyle[ i ]
end
if isnotempty(args['colalign' .. tostring(i)]) then
colstyle[ i ] = 'text-align:' .. args['colalign' .. tostring(i)] .. ';' .. colstyle[ i ]
elseif isnotempty(args['col' .. tostring(i) .. 'align']) then
colstyle[ i ] = 'text-align:' .. args['col' .. tostring(i) .. 'align'] .. ';' .. colstyle[ i ]
elseif isnotempty(args['align' .. tostring(i)]) then
colstyle[ i ] = 'text-align:' .. args['align' .. tostring(i)] .. ';' .. colstyle[ i ]
end
if isnotempty(args['colnowrap' .. tostring(i)]) then
colstyle[ i ] = 'white-space:nowrap;' .. colstyle[ i ]
elseif isnotempty(args['col' .. tostring(i) .. 'nowrap']) then
colstyle[ i ] = 'white-space:nowrap;' .. colstyle[ i ]
elseif isnotempty(args['nowrap' .. tostring(i)]) then
colstyle[ i ] = 'white-space:nowrap;' .. colstyle[ i ]
end
if isnotempty(args['colwidth' .. tostring(i)]) then
colstyle[ i ] = 'width:' .. args['colwidth' .. tostring(i)] .. ';' .. colstyle[ i ]
elseif isnotempty(args['col' .. tostring(i) .. 'width']) then
colstyle[ i ] = 'width:' .. args['col' .. tostring(i) .. 'width'] .. ';' .. colstyle[ i ]
elseif isnotempty(args['colwidth']) then
colstyle[ i ] = 'width:' .. args['colwidth'] .. ';' .. colstyle[ i ]
end
if isnotempty(args['colstyle' .. tostring(i)]) then
colstyle[ i ] = colstyle[ i ] .. args['colstyle' .. tostring(i)]
elseif isnotempty(args['col' .. tostring(i) .. 'style']) then
colstyle[ i ] = colstyle[ i ] .. args['col' .. tostring(i) .. 'style']
elseif isnotempty(args['style' .. tostring(i)]) then
colstyle[ i ] = colstyle[ i ] .. args['style' .. tostring(i)]
end
if isnotempty(args['colclass' .. tostring(i)]) then
colclass[ i ] = args['colclass' .. tostring(i)]
elseif isnotempty(args['col' .. tostring(i) .. 'class']) then
colclass[ i ] = args['col' .. tostring(i) .. 'class']
elseif isnotempty(args['class' .. tostring(i)]) then
colclass[ i ] = args['class' .. tostring(i)]
end
end
-- compute the maximum cell index
local cellcount = 0
for k, v in pairs( args ) do
if type( k ) == 'number' then
cellcount = math.max(cellcount, k)
end
end
-- compute the number of rows
local rows = math.ceil(cellcount / cols)
-- build the table content
if isnotempty(args['title']) then
local caption = root:tag('caption')
caption:cssText(args['titlestyle'])
caption:wikitext(args['title'])
end
if isnotempty(args['above']) then
local row = root:tag('tr')
local cell = row:tag('th')
cell:attr('colspan', cols)
cell:cssText(args['abovestyle'])
cell:wikitext(args['above'])
end
for j=1,rows do
-- start a new row
local row = root:tag('tr')
if isnotempty(args['rowstyle']) then
row:cssText(args['rowstyle'])
else
row:css('vertical-align', 'top')
end
-- loop over the cells in the row
for i=1,cols do
local cell
if isnotempty(args['row' .. tostring(j) .. 'header']) then
cell = row:tag('th'):attr('scope','col')
elseif isnotempty(args['col' .. tostring(i) .. 'header']) then
cell = row:tag('th'):attr('scope','row')
else
cell = row:tag('td')
end
if args['class' .. tostring(j) .. '.' .. tostring(i)] then
cell:addClass(args['class' .. tostring(j) .. '.' .. tostring(i)])
else
if args['rowclass' .. tostring(j)] then
cell:addClass(args['rowclass' .. tostring(j)])
elseif args['row' .. tostring(j) .. 'class'] then
cell:addClass(args['row' .. tostring(j) .. 'class'])
elseif args['rowevenclass'] and math.fmod(j,2) == 0 then
cell:addClass(args['rowevenclass'])
elseif args['rowoddclass'] and math.fmod(j,2) == 1 then
cell:addClass(args['rowoddclass'])
end
if colclass[i] ~= '' then
cell:addClass(colclass[i])
end
end
if args['style' .. tostring(j) .. '.' .. tostring(i)] then
cell:cssText(args['style' .. tostring(j) .. '.' .. tostring(i)])
else
if args['rowstyle' .. tostring(j)] then
cell:cssText(args['rowstyle' .. tostring(j)])
elseif args['rowevenstyle'] and math.fmod(j,2) == 0 then
cell:cssText(args['rowevenstyle'])
elseif args['rowoddstyle'] and math.fmod(j,2) == 1 then
cell:cssText(args['rowoddstyle'])
elseif args['row' .. tostring(j) .. 'style'] then
cell:cssText(args['row' .. tostring(j) .. 'style'])
end
if isnotempty(colstyle[i]) then
cell:cssText(colstyle[i])
end
end
cell:wikitext(mw.ustring.gsub(args[cols*(j - 1) + i] or '', '^(.-)%s*$', '%1') or '')
end
end
-- return the root table
return tostring(root)
end
return p</text>
<sha1>o4d457cy79tvvxs2d2fc2e8bxgel3bq</sha1>
</revision>
</page>
<page>
<title>Module:List</title>
<ns>828</ns>
<id>41068627</id>
<revision>
<id>794511725</id>
<parentid>788254921</parentid>
<timestamp>2017-08-08T13:55:25Z</timestamp>
<contributor>
<username>Jdlrobson</username>
<id>15999850</id>
</contributor>
<comment>Minerva skin needs whether an hlist is separated to be explicit (see https://en.wikipedia.org/wiki/Wikipedia:Village_pump_(technical)#Hlist_bullets_not_shown_in_mobile)</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="5154">-- This module outputs different kinds of lists. At the moment, bulleted,
-- unbulleted, horizontal, ordered, and horizontal ordered lists are supported.
local libUtil = require('libraryUtil')
local checkType = libUtil.checkType
local mTableTools = require('Module:TableTools')
local p = {}
local listTypes = {
['bulleted'] = true,
['unbulleted'] = true,
['horizontal'] = true,
['ordered'] = true,
['horizontal_ordered'] = true
}
function p.makeListData(listType, args)
-- Constructs a data table to be passed to p.renderList.
local data = {}
-- Classes
data.classes = {}
if listType == 'horizontal' or listType == 'horizontal_ordered' then
table.insert(data.classes, 'hlist hlist-separated')
elseif listType == 'unbulleted' then
table.insert(data.classes, 'plainlist')
end
table.insert(data.classes, args.class)
-- Main div style
data.style = args.style
-- Indent for horizontal lists
if listType == 'horizontal' or listType == 'horizontal_ordered' then
local indent = tonumber(args.indent)
indent = indent and indent * 1.6 or 0
if indent &gt; 0 then
data.marginLeft = indent .. 'em'
end
end
-- List style types for ordered lists
-- This could be &quot;1, 2, 3&quot;, &quot;a, b, c&quot;, or a number of others. The list style
-- type is either set by the &quot;type&quot; attribute or the &quot;list-style-type&quot; CSS
-- property.
if listType == 'ordered' or listType == 'horizontal_ordered' then
data.listStyleType = args.list_style_type or args['list-style-type']
data.type = args['type']
-- Detect invalid type attributes and attempt to convert them to
-- list-style-type CSS properties.
if data.type
and not data.listStyleType
and not tostring(data.type):find('^%s*[1AaIi]%s*$')
then
data.listStyleType = data.type
data.type = nil
end
end
-- List tag type
if listType == 'ordered' or listType == 'horizontal_ordered' then
data.listTag = 'ol'
else
data.listTag = 'ul'
end
-- Start number for ordered lists
data.start = args.start
if listType == 'horizontal_ordered' then
-- Apply fix to get start numbers working with horizontal ordered lists.
local startNum = tonumber(data.start)
if startNum then
data.counterReset = 'listitem ' .. tostring(startNum - 1)
end
end
-- List style
-- ul_style and ol_style are included for backwards compatibility. No
-- distinction is made for ordered or unordered lists.
data.listStyle = args.list_style
-- List items
-- li_style is included for backwards compatibility. item_style was included
-- to be easier to understand for non-coders.
data.itemStyle = args.item_style or args.li_style
data.items = {}
for i, num in ipairs(mTableTools.numKeys(args)) do
local item = {}
item.content = args[num]
item.style = args['item' .. tostring(num) .. '_style']
or args['item_style' .. tostring(num)]
item.value = args['item' .. tostring(num) .. '_value']
or args['item_value' .. tostring(num)]
table.insert(data.items, item)
end
return data
end
function p.renderList(data)
-- Renders the list HTML.
-- Return the blank string if there are no list items.
if type(data.items) ~= 'table' or #data.items &lt; 1 then
return ''
end
-- Render the main div tag.
local root = mw.html.create('div')
for i, class in ipairs(data.classes or {}) do
root:addClass(class)
end
root:css{['margin-left'] = data.marginLeft}
if data.style then
root:cssText(data.style)
end
-- Render the list tag.
local list = root:tag(data.listTag or 'ul')
list
:attr{start = data.start, type = data.type}
:css{
['counter-reset'] = data.counterReset,
['list-style-type'] = data.listStyleType
}
if data.listStyle then
list:cssText(data.listStyle)
end
-- Render the list items
for i, t in ipairs(data.items or {}) do
local item = list:tag('li')
if data.itemStyle then
item:cssText(data.itemStyle)
end
if t.style then
item:cssText(t.style)
end
item
:attr{value = t.value}
:wikitext(t.content)
end
return tostring(root)
end
function p.renderTrackingCategories(args)
local isDeprecated = false -- Tracks deprecated parameters.
for k, v in pairs(args) do
k = tostring(k)
if k:find('^item_style%d+$') or k:find('^item_value%d+$') then
isDeprecated = true
break
end
end
local ret = ''
if isDeprecated then
ret = ret .. '[[Category:List templates with deprecated parameters]]'
end
return ret
end
function p.makeList(listType, args)
if not listType or not listTypes[listType] then
error(string.format(
&quot;bad argument #1 to 'makeList' ('%s' is not a valid list type)&quot;,
tostring(listType)
), 2)
end
checkType('makeList', 2, args, 'table')
local data = p.makeListData(listType, args)
local list = p.renderList(data)
local trackingCategories = p.renderTrackingCategories(args)
return list .. trackingCategories
end
for listType in pairs(listTypes) do
p[listType] = function (frame)
local mArguments = require('Module:Arguments')
local origArgs = mArguments.getArgs(frame)
-- Copy all the arguments to a new table, for faster indexing.
local args = {}
for k, v in pairs(origArgs) do
args[k] = v
end
return p.makeList(listType, args)
end
end
return p</text>
<sha1>lkqmcmpfob2c6xhq46f675tm6p136ns</sha1>
</revision>
</page>
<page>
<title>Module:Lua banner</title>
<ns>828</ns>
<id>42951651</id>
<revision>
<id>804712413</id>
<parentid>611366942</parentid>
<timestamp>2017-10-10T17:47:29Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Module:Lua banner]]&quot;: [[WP:High-risk templates|High-risk Lua module]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="2421">-- This module implements the {{lua}} template.
local yesno = require('Module:Yesno')
local mList = require('Module:List')
local mTableTools = require('Module:TableTools')
local mMessageBox = require('Module:Message box')
local p = {}
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('^%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
function p._main(args)
local modules = mTableTools.compressSparseArray(args)
local box = p.renderBox(modules)
local trackingCategories = p.renderTrackingCategories(args, modules)
return box .. trackingCategories
end
function p.renderBox(modules)
local boxArgs = {}
if #modules &lt; 1 then
boxArgs.text = '&lt;strong class=&quot;error&quot;&gt;Error: no modules specified&lt;/strong&gt;'
else
local moduleLinks = {}
for i, module in ipairs(modules) do
moduleLinks[i] = string.format('[[:%s]]', module)
end
local moduleList = mList.makeList('bulleted', moduleLinks)
boxArgs.text = 'Uses [[Wikipedia:Lua|Lua]]:\n' .. moduleList
end
boxArgs.type = 'notice'
boxArgs.small = true
boxArgs.image = '[[File:Lua-logo-nolabel.svg|30px|alt=Lua logo|link=Wikipedia:Lua]]'
return mMessageBox.main('mbox', boxArgs)
end
function p.renderTrackingCategories(args, modules, titleObj)
if yesno(args.nocat) then
return ''
end
local cats = {}
-- Error category
if #modules &lt; 1 then
cats[#cats + 1] = 'Lua templates with errors'
end
-- Lua templates category
titleObj = titleObj or mw.title.getCurrentTitle()
local subpageBlacklist = {
doc = true,
sandbox = true,
sandbox2 = true,
testcases = true
}
if titleObj.namespace == 10
and not subpageBlacklist[titleObj.subpageText]
then
local category = args.category
if not category then
local categories = {
['Module:String'] = 'Lua String-based templates',
['Module:Math'] = 'Templates based on the Math Lua module',
['Module:BaseConvert'] = 'Templates based on the BaseConvert Lua module',
['Module:Citation'] = 'Lua-based citation templates'
}
categories['Module:Citation/CS1'] = categories['Module:Citation']
category = modules[1] and categories[modules[1]]
category = category or 'Lua-based templates'
end
cats[#cats + 1] = category
end
for i, cat in ipairs(cats) do
cats[i] = string.format('[[Category:%s]]', cat)
end
return table.concat(cats)
end
return p</text>
<sha1>l8oeyvtrxsbtfip6xi5evqh3yk40lu5</sha1>
</revision>
</page>
<page>
<title>Module:Math</title>
<ns>828</ns>
<id>38591527</id>
<revision>
<id>712321332</id>
<parentid>613638641</parentid>
<timestamp>2016-03-28T12:15:51Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>simplify using a new binary_fold function, per protected edit request by [[User:Esquivalience]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="12811">--[[
This module provides a number of basic mathematical operations.
]]
local yesno, getArgs -- lazily initialized
local p = {} -- Holds functions to be returned from #invoke, and functions to make available to other Lua modules.
local wrap = {} -- Holds wrapper functions that process arguments from #invoke. These act as intemediary between functions meant for #invoke and functions meant for Lua.
--[[
Helper functions used to avoid redundant code.
]]
local function err(msg)
-- Generates wikitext error messages.
return mw.ustring.format('&lt;strong class=&quot;error&quot;&gt;Formatting error: %s&lt;/strong&gt;', msg)
end
local function unpackNumberArgs(args)
-- Returns an unpacked list of arguments specified with numerical keys.
local ret = {}
for k, v in pairs(args) do
if type(k) == 'number' then
table.insert(ret, v)
end
end
return unpack(ret)
end
local function makeArgArray(...)
-- Makes an array of arguments from a list of arguments that might include nils.
local args = {...} -- Table of arguments. It might contain nils or non-number values, so we can't use ipairs.
local nums = {} -- Stores the numbers of valid numerical arguments.
local ret = {}
for k, v in pairs(args) do
v = p._cleanNumber(v)
if v then
nums[#nums + 1] = k
args[k] = v
end
end
table.sort(nums)
for i, num in ipairs(nums) do
ret[#ret + 1] = args[num]
end
return ret
end
local function fold(func, ...)
-- Use a function on all supplied arguments, and return the result. The function must accept two numbers as parameters,
-- and must return a number as an output. This number is then supplied as input to the next function call.
local vals = makeArgArray(...)
local count = #vals -- The number of valid arguments
if count == 0 then return
-- Exit if we have no valid args, otherwise removing the first arg would cause an error.
nil, 0
end
local ret = table.remove(vals, 1)
for _, val in ipairs(vals) do
ret = func(ret, val)
end
return ret, count
end
--[[
Fold arguments by selectively choosing values (func should return when to choose the current &quot;dominant&quot; value).
]]
local function binary_fold(func, ...)
local value = fold((function(a, b) if func(a, b) then return a else return b end end), ...)
return value
end
--[[
random
Generate a random number
Usage:
{{#invoke: Math | random }}
{{#invoke: Math | random | maximum value }}
{{#invoke: Math | random | minimum value | maximum value }}
]]
function wrap.random(args)
local first = p._cleanNumber(args[1])
local second = p._cleanNumber(args[2])
return p._random(first, second)
end
function p._random(first, second)
math.randomseed(mw.site.stats.edits + mw.site.stats.pages + os.time() + math.floor(os.clock() * 1000000000))
-- math.random will throw an error if given an explicit nil parameter, so we need to use if statements to check the params.
if first and second then
if first &lt;= second then -- math.random doesn't allow the first number to be greater than the second.
return math.random(first, second)
end
elseif first then
return math.random(first)
else
return math.random()
end
end
--[[
order
Determine order of magnitude of a number
Usage:
{{#invoke: Math | order | value }}
]]
function wrap.order(args)
local input_string = (args[1] or args.x or '0');
local input_number = p._cleanNumber(input_string);
if input_number == nil then
return err('order of magnitude input appears non-numeric')
else
return p._order(input_number)
end
end
function p._order(x)
if x == 0 then return 0 end
return math.floor(math.log10(math.abs(x)))
end
--[[
precision
Detemines the precision of a number using the string representation
Usage:
{{ #invoke: Math | precision | value }}
]]
function wrap.precision(args)
local input_string = (args[1] or args.x or '0');
local trap_fraction = args.check_fraction;
local input_number;
if not yesno then
yesno = require('Module:Yesno')
end
if yesno(trap_fraction, true) then -- Returns true for all input except nil, false, &quot;no&quot;, &quot;n&quot;, &quot;0&quot; and a few others. See [[Module:Yesno]].
local pos = string.find(input_string, '/', 1, true);
if pos ~= nil then
if string.find(input_string, '/', pos + 1, true) == nil then
local denominator = string.sub(input_string, pos+1, -1);
local denom_value = tonumber(denominator);
if denom_value ~= nil then
return math.log10(denom_value);
end
end
end
end
input_number, input_string = p._cleanNumber(input_string);
if input_string == nil then
return err('precision input appears non-numeric')
else
return p._precision(input_string)
end
end
function p._precision(x)
if type(x) == 'number' then
x = tostring(x)
end
x = string.upper(x)
local decimal = x:find('%.')
local exponent_pos = x:find('E')
local result = 0;
if exponent_pos ~= nil then
local exponent = string.sub(x, exponent_pos + 1)
x = string.sub(x, 1, exponent_pos - 1)
result = result - tonumber(exponent)
end
if decimal ~= nil then
result = result + string.len(x) - decimal
return result
end
local pos = string.len(x);
while x:byte(pos) == string.byte('0') do
pos = pos - 1
result = result - 1
if pos &lt;= 0 then
return 0
end
end
return result
end
--[[
max
Finds the maximum argument
Usage:
{{#invoke:Math| max | value1 | value2 | ... }}
Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.max(args)
return p._max(unpackNumberArgs(args))
end
function p._max(...)
local max_value = binary_fold((function(a, b) return a &gt; b end), ...)
if max_value then
return max_value
end
end
--[[
min
Finds the minimum argument
Usage:
{{#invoke:Math| min | value1 | value2 | ... }}
OR
{{#invoke:Math| min }}
When used with no arguments, it takes its input from the parent
frame. Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.min(args)
return p._min(unpackNumberArgs(args))
end
function p._min(...)
local min_value = binary_fold((function(a, b) return a &lt; b end), ...)
if min_value then
return min_value
end
end
--[[
average
Finds the average
Usage:
{{#invoke:Math| average | value1 | value2 | ... }}
OR
{{#invoke:Math| average }}
Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.average(args)
return p._average(unpackNumberArgs(args))
end
function p._average(...)
local sum, count = fold((function(a, b) return a + b end), ...)
if not sum then
return 0
else
return sum / count
end
end
--[[
round
Rounds a number to specified precision
Usage:
{{#invoke:Math | round | value | precision }}
--]]
function wrap.round(args)
local value = p._cleanNumber(args[1] or args.value or 0)
local precision = p._cleanNumber(args[2] or args.precision or 0)
if value == nil or precision == nil then
return err('round input appears non-numeric')
else
return p._round(value, precision)
end
end
function p._round(value, precision)
local rescale = math.pow(10, precision or 0);
return math.floor(value * rescale + 0.5) / rescale;
end
--[[
mod
Implements the modulo operator
Usage:
{{#invoke:Math | mod | x | y }}
--]]
function wrap.mod(args)
local x = p._cleanNumber(args[1])
local y = p._cleanNumber(args[2])
if not x then
return err('first argument to mod appears non-numeric')
elseif not y then
return err('second argument to mod appears non-numeric')
else
return p._mod(x, y)
end
end
function p._mod(x, y)
local ret = x % y
if not (0 &lt;= ret and ret &lt; y) then
ret = 0
end
return ret
end
--[[
gcd
Calculates the greatest common divisor of multiple numbers
Usage:
{{#invoke:Math | gcd | value 1 | value 2 | value 3 | ... }}
--]]
function wrap.gcd(args)
return p._gcd(unpackNumberArgs(args))
end
function p._gcd(...)
local function findGcd(a, b)
local r = b
local oldr = a
while r ~= 0 do
local quotient = math.floor(oldr / r)
oldr, r = r, oldr - quotient * r
end
if oldr &lt; 0 then
oldr = oldr * -1
end
return oldr
end
local result, count = fold(findGcd, ...)
return result
end
--[[
precision_format
Rounds a number to the specified precision and formats according to rules
originally used for {{template:Rnd}}. Output is a string.
Usage:
{{#invoke: Math | precision_format | number | precision }}
]]
function wrap.precision_format(args)
local value_string = args[1] or 0
local precision = args[2] or 0
return p._precision_format(value_string, precision)
end
function p._precision_format(value_string, precision)
-- For access to Mediawiki built-in formatter.
local lang = mw.getContentLanguage();
local value
value, value_string = p._cleanNumber(value_string)
precision = p._cleanNumber(precision)
-- Check for non-numeric input
if value == nil or precision == nil then
return err('invalid input when rounding')
end
local current_precision = p._precision(value)
local order = p._order(value)
-- Due to round-off effects it is neccesary to limit the returned precision under
-- some circumstances because the terminal digits will be inaccurately reported.
if order + precision &gt;= 14 then
orig_precision = p._precision(value_string)
if order + orig_precision &gt;= 14 then
precision = 13 - order;
end
end
-- If rounding off, truncate extra digits
if precision &lt; current_precision then
value = p._round(value, precision)
current_precision = p._precision(value)
end
local formatted_num = lang:formatNum(math.abs(value))
local sign
-- Use proper unary minus sign rather than ASCII default
if value &lt; 0 then
sign = '−'
else
sign = ''
end
-- Handle cases requiring scientific notation
if string.find(formatted_num, 'E', 1, true) ~= nil or math.abs(order) &gt;= 9 then
value = value * math.pow(10, -order)
current_precision = current_precision + order
precision = precision + order
formatted_num = lang:formatNum(math.abs(value))
else
order = 0;
end
formatted_num = sign .. formatted_num
-- Pad with zeros, if needed
if current_precision &lt; precision then
local padding
if current_precision &lt;= 0 then
if precision &gt; 0 then
local zero_sep = lang:formatNum(1.1)
formatted_num = formatted_num .. zero_sep:sub(2,2)
padding = precision
if padding &gt; 20 then
padding = 20
end
formatted_num = formatted_num .. string.rep('0', padding)
end
else
padding = precision - current_precision
if padding &gt; 20 then
padding = 20
end
formatted_num = formatted_num .. string.rep('0', padding)
end
end
-- Add exponential notation, if necessary.
if order ~= 0 then
-- Use proper unary minus sign rather than ASCII default
if order &lt; 0 then
order = '−' .. lang:formatNum(math.abs(order))
else
order = lang:formatNum(order)
end
formatted_num = formatted_num .. '&lt;span style=&quot;margin:0 .15em 0 .25em&quot;&gt;×&lt;/span&gt;10&lt;sup&gt;' .. order .. '&lt;/sup&gt;'
end
return formatted_num
end
--[[
Helper function that interprets the input numerically. If the
input does not appear to be a number, attempts evaluating it as
a parser functions expression.
]]
function p._cleanNumber(number_string)
if type(number_string) == 'number' then
-- We were passed a number, so we don't need to do any processing.
return number_string, tostring(number_string)
elseif type(number_string) ~= 'string' or not number_string:find('%S') then
-- We were passed a non-string or a blank string, so exit.
return nil, nil;
end
-- Attempt basic conversion
local number = tonumber(number_string)
-- If failed, attempt to evaluate input as an expression
if number == nil then
local success, result = pcall(mw.ext.ParserFunctions.expr, number_string)
if success then
number = tonumber(result)
number_string = tostring(number)
else
number = nil
number_string = nil
end
else
number_string = number_string:match(&quot;^%s*(.-)%s*$&quot;) -- String is valid but may contain padding, clean it.
number_string = number_string:match(&quot;^%+(.*)$&quot;) or number_string -- Trim any leading + signs.
if number_string:find('^%-?0[xX]') then
-- Number is using 0xnnn notation to indicate base 16; use the number that Lua detected instead.
number_string = tostring(number)
end
end
return number, number_string
end
--[[
Wrapper function that does basic argument processing. This ensures that all functions from #invoke can use either the current
frame or the parent frame, and it also trims whitespace for all arguments and removes blank arguments.
]]
local mt = { __index = function(t, k)
return function(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return wrap[k](getArgs(frame)) -- Argument processing is left to Module:Arguments. Whitespace is trimmed and blank arguments are removed.
end
end }
return setmetatable(p, mt)</text>
<sha1>2oc32zmcprh43j49a7jjarc5hix02hn</sha1>
</revision>
</page>
<page>
<title>Module:Str endswith</title>
<ns>828</ns>
<id>52211643</id>
<revision>
<id>748257085</id>
<parentid>748249376</parentid>
<timestamp>2016-11-07T07:15:08Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Module:Str endswith]]&quot;: [[WP:High-risk templates|High-risk Lua module]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="696">-- This module implements {{str endswith}}.
local TRUE_STRING = 'yes'
local FALSE_STRING = ''
local p = {}
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
function p.main(frame)
local args = frame:getParent().args
local s = args[1]
local pattern = args[2]
if not s or not pattern then
-- TRUE_STRING is not the natural choice here, but is needed for
-- backwards compatibility.
return TRUE_STRING
end
s = trim(s)
pattern = trim(pattern)
if pattern == '' then
-- All strings end with the empty string.
return TRUE_STRING
end
if mw.ustring.sub(s, 0 - mw.ustring.len(pattern), -1) == pattern then
return TRUE_STRING
else
return FALSE_STRING
end
end
return p</text>
<sha1>7qezfyb967v2otj07a1m98bmibg4z2x</sha1>
</revision>
</page>
<page>
<title>Module:String</title>
<ns>828</ns>
<id>38569505</id>
<revision>
<id>552254999</id>
<parentid>540627185</parentid>
<timestamp>2013-04-26T10:52:01Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>Add &quot;rep&quot; function per request by [[User:קיפודנחש]] at [[Wikipedia:Lua requests#Template:Loop and Template:Loop15]]. Copied from sandbox.</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="15731">--[[
This module is intended to provide access to basic string functions.
Most of the functions provided here can be invoked with named parameters,
unnamed parameters, or a mixture. If named parameters are used, Mediawiki will
automatically remove any leading or trailing whitespace from the parameter.
Depending on the intended use, it may be advantageous to either preserve or
remove such whitespace.
Global options
ignore_errors: If set to 'true' or 1, any error condition will result in
an empty string being returned rather than an error message.
error_category: If an error occurs, specifies the name of a category to
include with the error message. The default category is
[Category:Errors reported by Module String].
no_category: If set to 'true' or 1, no category will be added if an error
is generated.
Unit tests for this module are available at Module:String/tests.
]]
local str = {}
--[[
len
This function returns the length of the target string.
Usage:
{{#invoke:String|len|target_string|}}
OR
{{#invoke:String|len|s=target_string}}
Parameters
s: The string whose length to report
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string.
]]
function str.len( frame )
local new_args = str._getParameters( frame.args, {'s'} );
local s = new_args['s'] or '';
return mw.ustring.len( s )
end
--[[
sub
This function returns a substring of the target string at specified indices.
Usage:
{{#invoke:String|sub|target_string|start_index|end_index}}
OR
{{#invoke:String|sub|s=target_string|i=start_index|j=end_index}}
Parameters
s: The string to return a subset of
i: The fist index of the substring to return, defaults to 1.
j: The last index of the string to return, defaults to the last character.
The first character of the string is assigned an index of 1. If either i or j
is a negative value, it is interpreted the same as selecting a character by
counting from the end of the string. Hence, a value of -1 is the same as
selecting the last character of the string.
If the requested indices are out of range for the given string, an error is
reported.
]]
function str.sub( frame )
local new_args = str._getParameters( frame.args, { 's', 'i', 'j' } );
local s = new_args['s'] or '';
local i = tonumber( new_args['i'] ) or 1;
local j = tonumber( new_args['j'] ) or -1;
local len = mw.ustring.len( s );
-- Convert negatives for range checking
if i &lt; 0 then
i = len + i + 1;
end
if j &lt; 0 then
j = len + j + 1;
end
if i &gt; len or j &gt; len or i &lt; 1 or j &lt; 1 then
return str._error( 'String subset index out of range' );
end
if j &lt; i then
return str._error( 'String subset indices out of order' );
end
return mw.ustring.sub( s, i, j )
end
--[[
This function implements that features of {{str sub old}} and is kept in order
to maintain these older templates.
]]
function str.sublength( frame )
local i = tonumber( frame.args.i ) or 0
local len = tonumber( frame.args.len )
return mw.ustring.sub( frame.args.s, i + 1, len and ( i + len ) )
end
--[[
match
This function returns a substring from the source string that matches a
specified pattern.
Usage:
{{#invoke:String|match|source_string|pattern_string|start_index|match_number|plain_flag|nomatch_output}}
OR
{{#invoke:String|pos|s=source_string|pattern=pattern_string|start=start_index
|match=match_number|plain=plain_flag|nomatch=nomatch_output}}
Parameters
s: The string to search
pattern: The pattern or string to find within the string
start: The index within the source string to start the search. The first
character of the string has index 1. Defaults to 1.
match: In some cases it may be possible to make multiple matches on a single
string. This specifies which match to return, where the first match is
match= 1. If a negative number is specified then a match is returned
counting from the last match. Hence match = -1 is the same as requesting
the last match. Defaults to 1.
plain: A flag indicating that the pattern should be understood as plain
text. Defaults to false.
nomatch: If no match is found, output the &quot;nomatch&quot; value rather than an error.
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from each string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
If the match_number or start_index are out of range for the string being queried, then
this function generates an error. An error is also generated if no match is found.
If one adds the parameter ignore_errors=true, then the error will be suppressed and
an empty string will be returned on any failure.
For information on constructing Lua patterns, a form of [regular expression], see:
* http://www.lua.org/manual/5.1/manual.html#5.4.1
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Patterns
* http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns
]]
function str.match( frame )
local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} );
local s = new_args['s'] or '';
local start = tonumber( new_args['start'] ) or 1;
local plain_flag = str._getBoolean( new_args['plain'] or false );
local pattern = new_args['pattern'] or '';
local match_index = math.floor( tonumber(new_args['match']) or 1 );
local nomatch = new_args['nomatch'];
if s == '' then
return str._error( 'Target string is empty' );
end
if pattern == '' then
return str._error( 'Pattern string is empty' );
end
if math.abs(start) &lt; 1 or math.abs(start) &gt; mw.ustring.len( s ) then
return str._error( 'Requested start is out of range' );
end
if match_index == 0 then
return str._error( 'Match index is out of range' );
end
if plain_flag then
pattern = str._escapePattern( pattern );
end
local result
if match_index == 1 then
-- Find first match is simple case
result = mw.ustring.match( s, pattern, start )
else
if start &gt; 1 then
s = mw.ustring.sub( s, start );
end
local iterator = mw.ustring.gmatch(s, pattern);
if match_index &gt; 0 then
-- Forward search
for w in iterator do
match_index = match_index - 1;
if match_index == 0 then
result = w;
break;
end
end
else
-- Reverse search
local result_table = {};
local count = 1;
for w in iterator do
result_table[count] = w;
count = count + 1;
end
result = result_table[ count + match_index ];
end
end
if result == nil then
if nomatch == nil then
return str._error( 'Match not found' );
else
return nomatch;
end
else
return result;
end
end
--[[
pos
This function returns a single character from the target string at position pos.
Usage:
{{#invoke:String|pos|target_string|index_value}}
OR
{{#invoke:String|pos|target=target_string|pos=index_value}}
Parameters
target: The string to search
pos: The index for the character to return
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the target string. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
The first character has an index value of 1.
If one requests a negative value, this function will select a character by counting backwards
from the end of the string. In other words pos = -1 is the same as asking for the last character.
A requested value of zero, or a value greater than the length of the string returns an error.
]]
function str.pos( frame )
local new_args = str._getParameters( frame.args, {'target', 'pos'} );
local target_str = new_args['target'] or '';
local pos = tonumber( new_args['pos'] ) or 0;
if pos == 0 or math.abs(pos) &gt; mw.ustring.len( target_str ) then
return str._error( 'String index out of range' );
end
return mw.ustring.sub( target_str, pos, pos );
end
--[[
str_find
This function duplicates the behavior of {{str_find}}, including all of its quirks.
This is provided in order to support existing templates, but is NOT RECOMMENDED for
new code and templates. New code is recommended to use the &quot;find&quot; function instead.
Returns the first index in &quot;source&quot; that is a match to &quot;target&quot;. Indexing is 1-based,
and the function returns -1 if the &quot;target&quot; string is not present in &quot;source&quot;.
Important Note: If the &quot;target&quot; string is empty / missing, this function returns a
value of &quot;1&quot;, which is generally unexpected behavior, and must be accounted for
separatetly.
]]
function str.str_find( frame )
local new_args = str._getParameters( frame.args, {'source', 'target'} );
local source_str = new_args['source'] or '';
local target_str = new_args['target'] or '';
if target_str == '' then
return 1;
end
local start = mw.ustring.find( source_str, target_str, 1, true )
if start == nil then
start = -1
end
return start
end
--[[
find
This function allows one to search for a target string or pattern within another
string.
Usage:
{{#invoke:String|find|source_str|target_string|start_index|plain_flag}}
OR
{{#invoke:String|find|source=source_str|target=target_str|start=start_index|plain=plain_flag}}
Parameters
source: The string to search
target: The string or pattern to find within source
start: The index within the source string to start the search, defaults to 1
plain: Boolean flag indicating that target should be understood as plain
text and not as a Lua style regular expression, defaults to true
If invoked using named parameters, Mediawiki will automatically remove any leading or
trailing whitespace from the parameter. In some circumstances this is desirable, in
other cases one may want to preserve the whitespace.
This function returns the first index &gt;= &quot;start&quot; where &quot;target&quot; can be found
within &quot;source&quot;. Indices are 1-based. If &quot;target&quot; is not found, then this
function returns 0. If either &quot;source&quot; or &quot;target&quot; are missing / empty, this
function also returns 0.
This function should be safe for UTF-8 strings.
]]
function str.find( frame )
local new_args = str._getParameters( frame.args, {'source', 'target', 'start', 'plain' } );
local source_str = new_args['source'] or '';
local pattern = new_args['target'] or '';
local start_pos = tonumber(new_args['start']) or 1;
local plain = new_args['plain'] or true;
if source_str == '' or pattern == '' then
return 0;
end
plain = str._getBoolean( plain );
local start = mw.ustring.find( source_str, pattern, start_pos, plain )
if start == nil then
start = 0
end
return start
end
--[[
replace
This function allows one to replace a target string or pattern within another
string.
Usage:
{{#invoke:String|replace|source_str|pattern_string|replace_string|replacement_count|plain_flag}}
OR
{{#invoke:String|replace|source=source_string|pattern=pattern_string|replace=replace_string|
count=replacement_count|plain=plain_flag}}
Parameters
source: The string to search
pattern: The string or pattern to find within source
replace: The replacement text
count: The number of occurences to replace, defaults to all.
plain: Boolean flag indicating that pattern should be understood as plain
text and not as a Lua style regular expression, defaults to true
]]
function str.replace( frame )
local new_args = str._getParameters( frame.args, {'source', 'pattern', 'replace', 'count', 'plain' } );
local source_str = new_args['source'] or '';
local pattern = new_args['pattern'] or '';
local replace = new_args['replace'] or '';
local count = tonumber( new_args['count'] );
local plain = new_args['plain'] or true;
if source_str == '' or pattern == '' then
return source_str;
end
plain = str._getBoolean( plain );
if plain then
pattern = str._escapePattern( pattern );
replace = mw.ustring.gsub( replace, &quot;%%&quot;, &quot;%%%%&quot; ); --Only need to escape replacement sequences.
end
local result;
if count ~= nil then
result = mw.ustring.gsub( source_str, pattern, replace, count );
else
result = mw.ustring.gsub( source_str, pattern, replace );
end
return result;
end
--[[
simple function to pipe string.rep to templates.
]]
function str.rep( frame )
local repetitions = tonumber( frame.args[2] )
if not repetitions then
return str._error( 'function rep expects a number as second parameter, received &quot;' .. ( frame.args[2] or '' ) .. '&quot;' )
end
return string.rep( frame.args[1] or '', repetitions )
end
--[[
Helper function that populates the argument list given that user may need to use a mix of
named and unnamed parameters. This is relevant because named parameters are not
identical to unnamed parameters due to string trimming, and when dealing with strings
we sometimes want to either preserve or remove that whitespace depending on the application.
]]
function str._getParameters( frame_args, arg_list )
local new_args = {};
local index = 1;
local value;
for i,arg in ipairs( arg_list ) do
value = frame_args[arg]
if value == nil then
value = frame_args[index];
index = index + 1;
end
new_args[arg] = value;
end
return new_args;
end
--[[
Helper function to handle error messages.
]]
function str._error( error_str )
local frame = mw.getCurrentFrame();
local error_category = frame.args.error_category or 'Errors reported by Module String';
local ignore_errors = frame.args.ignore_errors or false;
local no_category = frame.args.no_category or false;
if str._getBoolean(ignore_errors) then
return '';
end
local error_str = '&lt;strong class=&quot;error&quot;&gt;String Module Error: ' .. error_str .. '&lt;/strong&gt;';
if error_category ~= '' and not str._getBoolean( no_category ) then
error_str = '[[Category:' .. error_category .. ']]' .. error_str;
end
return error_str;
end
--[[
Helper Function to interpret boolean strings
]]
function str._getBoolean( boolean_str )
local boolean_value;
if type( boolean_str ) == 'string' then
boolean_str = boolean_str:lower();
if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0'
or boolean_str == '' then
boolean_value = false;
else
boolean_value = true;
end
elseif type( boolean_str ) == 'boolean' then
boolean_value = boolean_str;
else
error( 'No boolean value found' );
end
return boolean_value
end
--[[
Helper function that escapes all pattern characters so that they will be treated
as plain text.
]]
function str._escapePattern( pattern_str )
return mw.ustring.gsub( pattern_str, &quot;([%(%)%.%%%+%-%*%?%[%^%$%]])&quot;, &quot;%%%1&quot; );
end
return str</text>
<sha1>l0shz7fzxb1bq626nihqwbptk7dfqd5</sha1>
</revision>
</page>
<page>
<title>Module:TableTools</title>
<ns>828</ns>
<id>41371028</id>
<revision>
<id>610073853</id>
<parentid>587870113</parentid>
<timestamp>2014-05-25T14:11:02Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>fix cleanPattern function - some of the character classes were still being magic even when they were inside the set, so escape them all</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="8030">--[[
------------------------------------------------------------------------------------
-- TableTools --
-- --
-- This module includes a number of functions for dealing with Lua tables. --
-- It is a meta-module, meant to be called from other Lua modules, and should --
-- not be called directly from #invoke. --
------------------------------------------------------------------------------------
--]]
local libraryUtil = require('libraryUtil')
local p = {}
-- Define often-used variables and functions.
local floor = math.floor
local infinity = math.huge
local checkType = libraryUtil.checkType
--[[
------------------------------------------------------------------------------------
-- isPositiveInteger
--
-- This function returns true if the given value is a positive integer, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a given table key is in the array part or the
-- hash part of a table.
------------------------------------------------------------------------------------
--]]
function p.isPositiveInteger(v)
if type(v) == 'number' and v &gt;= 1 and floor(v) == v and v &lt; infinity then
return true
else
return false
end
end
--[[
------------------------------------------------------------------------------------
-- isNan
--
-- This function returns true if the given number is a NaN value, and false
-- if not. Although it doesn't operate on tables, it is included here as it is
-- useful for determining whether a value can be a valid table key. Lua will
-- generate an error if a NaN is used as a table key.
------------------------------------------------------------------------------------
--]]
function p.isNan(v)
if type(v) == 'number' and tostring(v) == '-nan' then
return true
else
return false
end
end
--[[
------------------------------------------------------------------------------------
-- shallowClone
--
-- This returns a clone of a table. The value returned is a new table, but all
-- subtables and functions are shared. Metamethods are respected, but the returned
-- table will have no metatable of its own.
------------------------------------------------------------------------------------
--]]
function p.shallowClone(t)
local ret = {}
for k, v in pairs(t) do
ret[k] = v
end
return ret
end
--[[
------------------------------------------------------------------------------------
-- removeDuplicates
--
-- This removes duplicate values from an array. Non-positive-integer keys are
-- ignored. The earliest value is kept, and all subsequent duplicate values are
-- removed, but otherwise the array order is unchanged.
------------------------------------------------------------------------------------
--]]
function p.removeDuplicates(t)
checkType('removeDuplicates', 1, t, 'table')
local isNan = p.isNan
local ret, exists = {}, {}
for i, v in ipairs(t) do
if isNan(v) then
-- NaNs can't be table keys, and they are also unique, so we don't need to check existence.
ret[#ret + 1] = v
else
if not exists[v] then
ret[#ret + 1] = v
exists[v] = true
end
end
end
return ret
end
--[[
------------------------------------------------------------------------------------
-- numKeys
--
-- This takes a table and returns an array containing the numbers of any numerical
-- keys that have non-nil values, sorted in numerical order.
------------------------------------------------------------------------------------
--]]
function p.numKeys(t)
checkType('numKeys', 1, t, 'table')
local isPositiveInteger = p.isPositiveInteger
local nums = {}
for k, v in pairs(t) do
if isPositiveInteger(k) then
nums[#nums + 1] = k
end
end
table.sort(nums)
return nums
end
--[[
------------------------------------------------------------------------------------
-- affixNums
--
-- This takes a table and returns an array containing the numbers of keys with the
-- specified prefix and suffix. For example, for the table
-- {a1 = 'foo', a3 = 'bar', a6 = 'baz'} and the prefix &quot;a&quot;, affixNums will
-- return {1, 3, 6}.
------------------------------------------------------------------------------------
--]]
function p.affixNums(t, prefix, suffix)
checkType('affixNums', 1, t, 'table')
checkType('affixNums', 2, prefix, 'string', true)
checkType('affixNums', 3, suffix, 'string', true)
local function cleanPattern(s)
-- Cleans a pattern so that the magic characters ()%.[]*+-?^$ are interpreted literally.
s = s:gsub('([%(%)%%%.%[%]%*%+%-%?%^%$])', '%%%1')
return s
end
prefix = prefix or ''
suffix = suffix or ''
prefix = cleanPattern(prefix)
suffix = cleanPattern(suffix)
local pattern = '^' .. prefix .. '([1-9]%d*)' .. suffix .. '$'
local nums = {}
for k, v in pairs(t) do
if type(k) == 'string' then
local num = mw.ustring.match(k, pattern)
if num then
nums[#nums + 1] = tonumber(num)
end
end
end
table.sort(nums)
return nums
end
--[[
------------------------------------------------------------------------------------
-- numData
--
-- Given a table with keys like (&quot;foo1&quot;, &quot;bar1&quot;, &quot;foo2&quot;, &quot;baz2&quot;), returns a table
-- of subtables in the format
-- { [1] = {foo = 'text', bar = 'text'}, [2] = {foo = 'text', baz = 'text'} }
-- Keys that don't end with an integer are stored in a subtable named &quot;other&quot;.
-- The compress option compresses the table so that it can be iterated over with
-- ipairs.
------------------------------------------------------------------------------------
--]]
function p.numData(t, compress)
checkType('numData', 1, t, 'table')
checkType('numData', 2, compress, 'boolean', true)
local ret = {}
for k, v in pairs(t) do
local prefix, num = mw.ustring.match(tostring(k), '^([^0-9]*)([1-9][0-9]*)$')
if num then
num = tonumber(num)
local subtable = ret[num] or {}
if prefix == '' then
-- Positional parameters match the blank string; put them at the start of the subtable instead.
prefix = 1
end
subtable[prefix] = v
ret[num] = subtable
else
local subtable = ret.other or {}
subtable[k] = v
ret.other = subtable
end
end
if compress then
local other = ret.other
ret = p.compressSparseArray(ret)
ret.other = other
end
return ret
end
--[[
------------------------------------------------------------------------------------
-- compressSparseArray
--
-- This takes an array with one or more nil values, and removes the nil values
-- while preserving the order, so that the array can be safely traversed with
-- ipairs.
------------------------------------------------------------------------------------
--]]
function p.compressSparseArray(t)
checkType('compressSparseArray', 1, t, 'table')
local ret = {}
local nums = p.numKeys(t)
for _, num in ipairs(nums) do
ret[#ret + 1] = t[num]
end
return ret
end
--[[
------------------------------------------------------------------------------------
-- sparseIpairs
--
-- This is an iterator for sparse arrays. It can be used like ipairs, but can
-- handle nil values.
------------------------------------------------------------------------------------
--]]
function p.sparseIpairs(t)
checkType('sparseIpairs', 1, t, 'table')
local nums = p.numKeys(t)
local i = 0
local lim = #nums
return function ()
i = i + 1
if i &lt;= lim then
local key = nums[i]
return key, t[key]
else
return nil, nil
end
end
end
--[[
------------------------------------------------------------------------------------
-- size
--
-- This returns the size of a key/value pair table. It will also work on arrays,
-- but for arrays it is more efficient to use the # operator.
------------------------------------------------------------------------------------
--]]
function p.size(t)
checkType('size', 1, t, 'table')
local i = 0
for k in pairs(t) do
i = i + 1
end
return i
end
return p</text>
<sha1>k1omc17qij757n8hd68yihcqxo4biqi</sha1>
</revision>
</page>
<page>
<title>Template:Anchor/doc</title>
<ns>10</ns>
<id>13554996</id>
<revision>
<id>817590788</id>
<parentid>816610409</parentid>
<timestamp>2017-12-29T10:26:45Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>replace font with span to fix some lint errors</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="12708">{{Documentation subpage}}
{{high-use|43,412}}
{{lua|Module:Anchor}}
&lt;!-- PLEASE ADD CATEGORIES AT THE END OF THIS PAGE, ND INTERWIKIS LINKS TO WIKIDATA --&gt;
The template &lt;nowiki&gt;{{&lt;/nowiki&gt;[[{{ns:Template}}:{{BASEPAGENAME}}|{{lc:{{BASEPAGENAME}}}}]]&lt;nowiki&gt;}}&lt;/nowiki&gt; inserts one or more invisible [[Fragment identifier|HTML fragment identifiers]] (anchor names) in a page. Those locations can then be linked to using &lt;code&gt;&lt;nowiki&gt;[[#Location|...]]&lt;/nowiki&gt;&lt;/code&gt; syntax {{#ifeq:{{BASEPAGENAME}}|Visible anchor|&amp;nbsp;Unlike {{tl|Anchor}}, the first parameter will be visible text on the page.|}} (note that &lt;code&gt;&lt;nowiki&gt;#Location&lt;/nowiki&gt;&lt;/code&gt; here is not a browser instruction like &lt;code&gt;&lt;nowiki&gt;#redirect&lt;/nowiki&gt;&lt;/code&gt;—the word &quot;Location&quot; can be any word you wish to associate with any part of an article in which you decide to place the {{tlx|anchor}} template, and can be entirely arbitrary; also, the first letter of the ''location'' is usually capitalised to reflect the common capitalisation used in section headers—see [[MOS:HEAD]] for more on this style guideline).
== Examples ==
# &lt;code style=&quot;color:darkgreen;&quot;&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{lc:{{BASEPAGENAME}}}}|Foo&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &lt;br&gt; could be linked to with &lt;code&gt;&lt;nowiki&gt;[[#Foo|...]]&lt;/nowiki&gt;&lt;/code&gt; from ''within the same article'' (let's call this article &quot;Qux&quot;), &lt;br&gt; or it could be linked to with {{nowrap|&lt;code&gt;&lt;nowiki&gt;[[&lt;/nowiki&gt;Qux#Foo&lt;nowiki&gt;|...]]&lt;/nowiki&gt;&lt;/code&gt;}} from ''other'' articles and from redirects (where the ellipsis after the word &quot;Foo&quot; here means the words chosen to represent that link in the Wikipedia article, which, of course, could be anything).
# Anchors can be more suitable for inter-article linking than section titles are because they are more stable. For example a section title {{nowrap|1=&lt;code&gt;== Foo ==&lt;/code&gt;}} within a Wikipedia article titled &lt;code&gt;Qux&lt;/code&gt;: &lt;br&gt; {{nowrap|1=&lt;code style=&quot;color:dimgray;&quot;&gt;&lt;nowiki&gt;==&lt;/nowiki&gt;&lt;span&gt;{{sp}}&lt;/span&gt;&lt;code style=&quot;color:darkgreen;&quot;&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{lc:{{BASEPAGENAME}}}}&lt;nowiki&gt;|Foo}}&lt;/nowiki&gt;&lt;/code&gt;&lt;span&gt;{{sp}}&lt;/span&gt;Foo &lt;nowiki&gt;==&lt;/nowiki&gt;&lt;/code&gt;}} &lt;br&gt; Here, links via {{nowrap|1=&lt;code&gt;&lt;nowiki&gt;[[&lt;/nowiki&gt;Qux#Foo&lt;nowiki&gt;]]&lt;/nowiki&gt;&lt;/code&gt;}} would remain valid even if the section were renamed {{nowrap|1=&lt;code&gt;&lt;nowiki&gt;== {{anchor#Foo}} On foo and its many friends ==&lt;/nowiki&gt;&lt;/code&gt;}} (note that the anchor is placed ''before'' the section name; otherwise browsers may hide the section title from view).
# However, within section titles, it may be preferable to simply use direct HTML, like this: &lt;br&gt; {{nowrap|1=&lt;code style=&quot;color:dimgray;&quot;&gt;&lt;nowiki&gt;==&lt;/nowiki&gt;&lt;span&gt;{{sp}}&lt;/span&gt;&lt;code style=&quot;color:darkgreen;&quot;&gt;&lt;nowiki&gt;&lt;span id=&quot;Foo&quot;&gt;&lt;/span&gt;&lt;/nowiki&gt;&lt;/code&gt;&lt;span&gt;{{sp}}&lt;/span&gt;Foo &lt;nowiki&gt;==&lt;/nowiki&gt;&lt;/code&gt;}}&lt;br&gt;This provides the same stable, linkable anchor as the {{tlx|anchor}} template, but also provides some additional visual advantages. For details, see [[#Limitations|§&amp;nbsp;Limitations]] below.
# The template can be used to create multiple anchors with a single call. For example, &lt;br&gt; {{nowrap|1=&lt;code style=&quot;color:darkgreen;&quot;&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{lc:{{BASEPAGENAME}}}}&lt;nowiki&gt;|Foo|Bar|baz}}&lt;/nowiki&gt;&lt;/code&gt;}} &lt;br&gt; will create three anchors that can then be linked to with &lt;code&gt;&lt;nowiki&gt;[[#Foo]]&lt;/nowiki&gt;&lt;/code&gt;, &lt;code&gt;&lt;nowiki&gt;[[#Bar]]&lt;/nowiki&gt;&lt;/code&gt; and &lt;code&gt;&lt;nowiki&gt;[[#baz]]&lt;/nowiki&gt;&lt;/code&gt;.
# Here is a more literal example: say you wrote an article about a recently discovered Proto-Indo-European language called &quot;Yish Yash&quot;. The title of your article would probably also be &quot;Yish Yash&quot; or perhaps &quot;Yish Yash (language)&quot; (if there were already an article titled &quot;Yish Yash&quot; that covered the culture generally). Let's say you chose &quot;Yish Yash (language)&quot;. Now let's say that within your article you wished to have a section titled &quot;The placement of the tongue when producing Yish Yash vowel sounds&quot;. You would create a section heading that looked like this:&lt;br&gt;{{nowrap|1=&lt;code&gt;&lt;nowiki&gt;== The placement of the tongue when producing Yish Yash vowel sounds == &lt;/nowiki&gt;&lt;/code&gt;}}&lt;br&gt;Let's say that you then finished up writing and saved the new article. Now, say you came across another article on Wikipedia titled &quot;Proto-Indo-European vowels&quot; which happened to have a section on the unique tongue placement used in Yish Yash. You decided it might be useful here for readers to be able to quickly access the section of your article on Yish Yash tongue placement when forming vowels; however, you don't want to send them to the beginning of the whole article on the Yish Yash language (you wanted to target them more specifically). So you create a link in the Proto-Indo European vowel article to the ''section'' within ''your'' article on the placement of the tongue in Yish Yash: you might do so by editing the text of the Proto-Indo-European vowel article and adding something like this to a relevant place within it:&lt;br&gt;{{nowrap|1=&lt;code&gt;&lt;nowiki&gt;[[Yish Yash (language)#The placement of the tongue when producing Yish Yash vowel sounds|Yish Yash tongue placement]] is particularly interesting.&lt;/nowiki&gt;&lt;/code&gt;}}&lt;br&gt;That is some ''really'' long code, but it would create a direct link to the relevant section of the new Yish Yash language article and would look like this in the article on Proto-Indo-European vowels:&lt;br&gt; &quot;...&lt;span style=&quot;color:blue;&quot;&gt;Yish Yash tongue placement&lt;/span&gt; is particularly interesting...&quot; &lt;br&gt; Now let's say another editor came along and wished to change the heading of this section of your article for some legitimate reason—perhaps to &quot;Yish Yash vowels and the tongue&quot;. He or she could do so by editing your article and making the section heading look like this:&lt;br&gt;{{nowrap|1=&lt;code&gt;&lt;nowiki&gt;== Yish Yash vowels and the tongue ==&lt;/nowiki&gt;&lt;/code&gt;}}&lt;br&gt;Unbeknownst to that editor, this would mean the link in the article on Proto-Indo-European vowels that you created earlier would now go by default to the top of the Yish Yash article instead of your carefully-chosen subsection! However, if an ''anchor'' were placed within the section heading of the Yish Yash article either when you created it or when the other editor came along and changed it—perhaps something like this:&lt;br&gt;{{nowrap|1= &lt;code&gt;&lt;nowiki&gt;== {{anchor|Tongue}} The placement of the tongue when producing Yish Yash vowel sounds ==&lt;/nowiki&gt;&lt;/code&gt;}}&lt;br&gt;or like this:&lt;br&gt;{{nowrap|1=&lt;code&gt;&lt;nowiki&gt;== {{anchor|Tongue}} Yish Yash vowel/ tongue interaction ==&lt;/nowiki&gt;&lt;/code&gt;}} and the text of the article on Proto-Indo-European vowels had been changed by you to something like this:&lt;br&gt;{{nowrap|1=&lt;code&gt;&lt;nowiki&gt;[[Yish Yash (language)#Tongue|Yish Yash tongue placement]] is particularly interesting.&lt;/nowiki&gt;&lt;/code&gt;}}&lt;br&gt; then the link from the Proto-Indo-European article would continue to point to the relevant ''section'' of the Yish Yash article, even if the wording of the section heading there had changed completely and without the reader having to sort it out for themselves. The use of anchors can make for a cleaner, more efficient Wikipedia reading experience where section headings are changed... Which they not infrequently are.
=== Limitations ===
{|class=&quot;wikitable&quot; style=&quot;float:right&quot;
!Character
![[Character entity reference|Code]]
!Template
!Meaning
|-
|&quot;
|&lt;code&gt;&amp;amp;quot;&lt;/code&gt; &lt;br /&gt;&lt;code&gt;&amp;amp;#34;&lt;/code&gt;
|{{N/a}}
|(double)&amp;nbsp;[[quotation mark]]
|-
|#
|&lt;code&gt;&amp;amp;#35;&lt;/code&gt;
|{{N/a}}
|[[Number sign|hash]]
|-
|&amp;#124;
|&lt;code&gt;&amp;amp;#124;&lt;/code&gt;
|{{tl|!}}
|[[Vertical bar|pipe]]
|-
|&amp;#61;
|&lt;code&gt;&amp;amp;#61;&lt;/code&gt;
|{{tl|{{=}}}}
|[[Equals sign|equals]]
|}
* Anchor names that contain any character shown in the table on the right will not work as expected. However, any of these characters can be replaced with the &quot;&amp;amp;#&quot; codes shown for them here. Or, the pipe symbol and equals sign can be worked around with {{tl|!}} and {{tl|{{=}}}}, respectively. Markup code such as {{tag|sup|o}} and {{tag|sub|o}} (superscript and subscript) cannot be used. Most other characters, including white space and punctuation, are not a problem.
* Anchor names should be unique on a page, and should not duplicate any heading titles. Duplicate anchors will not work as expected since the &lt;code&gt;&lt;nowiki&gt;#location&lt;/nowiki&gt;&lt;/code&gt; links go to the first anchor with that name. Duplicate anchors result in invalid HTML; you can check for duplicate anchors by running the page through the [[W3C Markup Validation Service]].
* If the template is added to a section title then the code will appear in the edit summary window when that section is edited, as in {{nowrap|1=&quot;&lt;code&gt;&lt;nowiki&gt;/* {{anchor|Issues}}Limitations */ New issue&lt;/nowiki&gt;&lt;/code&gt;&quot;}}. Also, when the section is saved, browsers may not return to the section. Consider using &lt;code&gt;&lt;nowiki&gt;&lt;span id=&quot;...&quot;&gt;&lt;/span&gt;&lt;/nowiki&gt;&lt;/code&gt; directly, rather than using the anchor template, when in a section title.
* Anchor links are case sensitive in some browsers, so treat all anchor links as case sensitive.
=== Use in tables ===
Anchors may be used within tables, subject to certain restrictions. The {{tlx|anchor}} template may be used in the caption and cells of a table, but not those portions of a table that are outside the caption and cells. It is used on the table's caption thus:&lt;source enclose=div lang=text&gt;|+ {{anchor|FooX}} A table caption&lt;/source&gt; and the following forms of cell are valid:&lt;source enclose=div lang=text&gt;!{{anchor|Foo1}} A header cell
!style=&quot;background:white;&quot; |{{anchor|Foo2}} A header cell with styling
|{{anchor|Foo3}} A data cell
|rowspan=2 |{{anchor|Foo4}} A data cell spanning two rows&lt;/source&gt; You need to ensure that the {{tlx|anchor}} is not in that portion of the markup intended for the classes, styles etc. Thus, {{tlx|anchor}} cannot be placed anywhere on lines that begin with &lt;code&gt;&lt;nowiki&gt;{|&lt;/nowiki&gt;&lt;/code&gt; (start of table) or &lt;code&gt;&lt;nowiki&gt;|-&lt;/nowiki&gt;&lt;/code&gt; (new row), and the following forms of cell are not valid:&lt;source enclose=div lang=text&gt;!{{anchor|Foo1}} |A header cell
!style=&quot;background:white;&quot; {{anchor|Foo2}} |A header cell with styling
|{{anchor|Foo3}} |A data cell
|rowspan=2 {{anchor|Foo4}} |A data cell spanning two rows&lt;/source&gt; If it is necessary for an anchor to be in any of these positions, a different technique is used—the &lt;code&gt;id=&lt;/code&gt; attribute. This is placed in that portion of the markup where the classes, styles etc. may be used, as follows:&lt;source enclose=div lang=text&gt;{| id=FooX class=wikitable
|- id=FooY
!id=Foo1 |A header cell
!style=&quot;background:white;&quot; id=Foo2 |A header cell with styling
|id=Foo3 |A data cell
|rowspan=2 id=Foo4 |A data cell spanning two rows&lt;/source&gt; The &lt;code&gt;id=&lt;/code&gt; attribute may appear before, between or after any other attributes that may be present, but only one &lt;code&gt;id=&lt;/code&gt; attribute may be used in each of these areas.
=== TemplateData ===
{{TemplateDataHeader}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;The template {{anchor}} inserts one or more HTML anchors in a page. Those locations can then be linked to using [[#location|...]] syntax. The parameters labels shown here (e.g., 'First anchor', '1', and the rest) are provided for convenience; no parameter label is required in the template itself, so you may create an anchor within an article by typing {{anchor|go here}} or {{anchor|this is it}} rather than {{anchor|First anchor=go here}} or {{anchor|1=this is it}} (though both formats will work correctly). You may not use {{anchor}} all by itself, however, as this is like dropping a ship's anchor without tying a rope to it: it holds nothing in place, can't be found or used, and messes up the sea floor with garbage!&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;First anchor&quot;,
&quot;description&quot;: &quot;First anchor value; Only the first anchor is required.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
},
&quot;2&quot;: {
&quot;label&quot;: &quot;Second anchor&quot;,
&quot;description&quot;: &quot;Second anchor.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;3&quot;: {
&quot;label&quot;: &quot;Third anchor&quot;,
&quot;description&quot;: &quot;Third anchor.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;4...&quot;: {
&quot;label&quot;: &quot;4th, 5th... anchor&quot;,
&quot;description&quot;: &quot;For additional anchors, just add additional anchors (the template isn't limited to three)&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
}
}}&lt;/templatedata&gt;
=== See also ===
* {{#ifeq:{{BASEPAGENAME}}|Visible anchor|{{tl|Anchor}}|{{tl|Visible anchor}}}}
* {{tl|Anchored list}}
* {{tl|Anchor comment}}
* {{tl|Shortcut}}
* [[WP:ANCHOR]]
* [[WP:TARGET]]
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- CATEGORIES HERE, AND INTERWIKIS TO WIKIDATA, THANKS --&gt;
[[Category:Wikipedia formatting and function templates]]
[[Category:Wikipedia section templates]]
[[Category:Templates with no visible output]]
}}&lt;/includeonly&gt;</text>
<sha1>n0o06pvq9kobtxypu0fwovfkbr02ltl</sha1>
</revision>
</page>
<page>
<title>Module:Anchor</title>
<ns>828</ns>
<id>41372338</id>
<revision>
<id>586910342</id>
<parentid>586194472</parentid>
<timestamp>2013-12-20T06:14:24Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected Module:Anchor: [[Wikipedia:Lua/Modules|High-risk Lua module]]: 20,000 transclusions ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="632">-- This module implements {{anchor}}.
local getArgs = require('Module:Arguments').getArgs
local tableTools = require('Module:TableTools')
local p = {}
function p.main(frame)
-- Get the positional arguments from #invoke, remove any nil values,
-- and pass them to p._main.
local args = getArgs(frame)
local argArray = tableTools.compressSparseArray(args)
return p._main(unpack(argArray))
end
function p._main(...)
-- Generate the list of anchors.
local anchors = {...}
local ret = {}
for _, anchor in ipairs(anchors) do
ret[#ret + 1] = '&lt;span id=&quot;' .. anchor .. '&quot;&gt;&lt;/span&gt;'
end
return table.concat(ret)
end
return p</text>
<sha1>na5loe2ne1o9yhs2k5p73tr355hey7t</sha1>
</revision>
</page>
<page>
<title>Template:!))</title>
<ns>10</ns>
<id>36487561</id>
<redirect title="Template:))!" />
<revision>
<id>666483409</id>
<parentid>666483387</parentid>
<timestamp>2015-06-11T13:32:34Z</timestamp>
<contributor>
<username>NeilN</username>
<id>409043</id>
</contributor>
<comment>Reverted to revision 666468027 by [[Special:Contributions/Evad37|Evad37]] ([[User talk:Evad37|talk]]): Fix. ([[WP:TW|TW]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="26">#REDIRECT [[Template:))!]]</text>
<sha1>5g9ex418xvscsnyrsae4dnxgyapzbmq</sha1>
</revision>
</page>
<page>
<title>Template:Asbox/doc</title>
<ns>10</ns>
<id>13445968</id>
<revision>
<id>795787500</id>
<parentid>767578350</parentid>
<timestamp>2017-08-16T13:32:50Z</timestamp>
<contributor>
<username>Coding life style</username>
<id>31524734</id>
</contributor>
<comment>/* Examples */</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="9300">{{Documentation subpage}}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
&lt;includeonly&gt;{{High-risk|2,000,000+}}&lt;/includeonly&gt;
{{lua|Module:Asbox}}
{{Mbox templates (small)}}
This is the '''Asbox''' (['''A''']rticle ['''s''']tub ['''box''']) metatemplate. It is the standard template used for creating new or updating existing [[Wikipedia:Stubs|article stub]] box templates. It supports virtually all stub template styles.
==Usage==
&lt;pre&gt;
{{Asbox
| image =
| subject =
| qualifier =
| category =
| name =
}}
&lt;/pre&gt;
===''image''===
Filename only and no prefix, e.g. &quot;Image.png&quot; (without quotemarks). Image will be sized at 40x30px.
===''subject''===
Placed before the word &quot;article&quot; in the template (e.g. &quot;biographical&quot;, producing &quot;This biographical article is (...)&quot;).
===''qualifier''===
Placed after the word &quot;article&quot; (e.g. &quot;about a musician&quot;, producing &quot;(...) article about a musician is (...)&quot;).
===''category''===
Name only of category to which pages where this template used are added (e.g. &quot;History stubs&quot;).
===''name''===
Full name of the stub template itself (used for internal reference).
This simple usage should suffice for most stub templates. Additional parameters are described below for advanced use.
==Full syntax==
&lt;pre&gt;
{{Asbox
| image = Ambox style.png
| pix =
| subject =
| article =
| qualifier =
| category =
| tempsort =
| category1 =
| tempsort1 =
| note =
| name = {{subst:FULLPAGENAME}}
}}
&lt;/pre&gt;
==Parameters==
===&lt;code&gt;icon&lt;/code&gt; or &lt;code&gt;image&lt;/code&gt;===
If the image is called with an icon template, &lt;code&gt;icon&lt;/code&gt; is set to the full syntax of the template; that's the name of the template, plus any arguments (separated with '''|''' ), including the &lt;code&gt;{{&lt;/code&gt; and &lt;code&gt;}}&lt;/code&gt; around it. Icon can also be used to provide the full image markup (include the opening and closing square brackets), if special image settings such as &quot;border&quot; are to be used. If the image is called explicitly &lt;code&gt;image&lt;/code&gt; is the name of the image :- &lt;code&gt;pix&lt;/code&gt; will likely be required as well, the default value for &lt;code&gt;pix&lt;/code&gt; is 40x30.
&lt;code&gt;imagealt&lt;/code&gt; may be used to override the default [[WP:Alternate text for images|alt text]] which is set to &quot;Stub icon&quot;.
===&lt;code&gt;pix&lt;/code&gt;===
The size of the image in pixels (no need to append px). Only ''required'' if &lt;code&gt;image&lt;/code&gt; is used and this image requires a size different from the default maximum of 40x30 pixels. (Note that in the interests of standardising the formats of stub messages, images of size 40x30 are much preferred.)
===&lt;code&gt;subject&lt;/code&gt; and &lt;code&gt;qualifier&lt;/code&gt;===
This &lt;code&gt;subject&lt;/code&gt; article &lt;code&gt;qualifier&lt;/code&gt; is a stub ...
Examples:
* This '''geography''' article '''about a place in Rohan''' is a stub ...
* This '''elementary physics''' article is a stub ...
* This article '''about Rudolph the Red-nosed reindeer''' is a stub ...
===Other parameters===
{| class=&quot;wikitable&quot;
! scope=col | Parameter
! scope=col | Description
|-
| category || The [[:Category:Stub categories|stub category]] the articles should go in.
|-
| tempsort || If exists the stub template [?] (and any other templates) will be put in its own category sorted as &quot;&amp;nbsp;&quot; (space) followed by &lt;code&gt;tempsort&lt;/code&gt;, otherwise it will be sorted with the value of &quot;&amp;nbsp;&quot; (space) followed by the template name.
|-
| category1 || An optional second stub category the articles should go in.
|-
| tempsort1 || If exists the stub template [?] (and any other templates) will be put in its own category sorted as &quot;&amp;nbsp;&quot; (space) followed by &lt;code&gt;tempsort1&lt;/code&gt;, otherwise it will be sorted with the value of &quot;&amp;nbsp;&quot; (space) followed by the template name.
|-
| category# || {{Red|New}} (Jan 2015): Since the release of [[Module:Asbox|Asbox's module]], this template now supports an unlimited number of categories. Just replace '#' with a number, e.g. {{para|category2|Normal stubs}}, {{para|category99|Over-categorized stubs}}, etc. Traditionally, category2 was the max, so please only use more than 3 if the additional categories are unique, i.e. not sub or parent categories of the others.
|-
| tempsort# || {{Red|New}} (Jan 2015): Similar to the category params, you can have any number of tempsort params.
|-
| note || If exists the value [?] will be added, as a &quot;small&quot; note, to the stub template.
|-
| name || The full page name of the template itself.
|-
| demo || Has no effect in article space. Prevents category output. Set to anything to enable. (Even 'no' or 'false' will enable it!)&lt;br&gt;{{Red|New}} (Jan 2015): If demo is set, it will show pseudo-categories. If {{para|demo|art}} then the pseudo-cats shown will only be those visible in article space (i.e. no error/hidden cats). Set {{para|demo|doc}} to preview the documentation page as well (and all cats). See:&amp;nbsp;[[Template:Asbox/testcases]]
|}
==Examples==
===Using &lt;code&gt;image&lt;/code&gt;===
Based on {{tl|Østfold-geo-stub}}:
{{demo|br=produces:|demo_kill_categories=yes
|&lt;nowiki&gt;{{Asbox
| image = Østfold_våpen.svg
| pix = 30
| subject = [[Østfold]] location
| name = Template:Østfold-geo-stub
| category = Østfold geography stubs
| tempsort = *
}}
&lt;/nowiki&gt;}}
===Using &lt;code&gt;icon&lt;/code&gt; and &lt;code&gt;category1&lt;/code&gt;===
Using &lt;code&gt;icon&lt;/code&gt; allows more flexibility in some circumstances than &lt;code&gt;image&lt;/code&gt; and &lt;code&gt;pix&lt;/code&gt;, since it can be used with templates. Based on {{tl|Wales-footy-bio-stub}}:
{{demo|br=produces:|demo_kill_categories=yes
|&lt;nowiki&gt;{{Asbox
| icon = {{soccer icon|Wales|50}}
| subject = biographical
| qualifier = related to Welsh association football
| category = Welsh football biography stubs
| tempsort = *
| name = Template:Wales-footy-bio-stub
}}
&lt;/nowiki&gt;}}
==WhatLinksHere==
The page [{{fullurl:Special:WhatLinksHere/Template:Asbox|hideredirs=1&amp;namespace=10&amp;hidelinks=1}} here] should have a complete list of all templates using this template. This list can be compared with existing list of stub templates to identify new stub templates created out of process. '''The last entries will also be the most recently created items.'''
==Navbar==
This template contains...
&lt;nowiki&gt;{{navbar |{{{name}}} |mini=yes |style=position:absolute;right:15px;font-size:smaller;display:none;}}&lt;/nowiki&gt;
...which allows the specification (with CSS) of the three stub-template links provided (see [{{fullurl:w:Template_talk:Asbox|oldid=313089738#Navbar}}]). A side effect is that a non-existing talk page of the stub template may appear on [[Special:WantedPages]].
==TemplateData==
{{TemplateData header}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;Standard template used for creating new or updating existing article stub box templates.&quot;,
&quot;params&quot;: {
&quot;category&quot;: {
&quot;label&quot;: &quot;Stub category&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;description&quot;: &quot;The category into which this stub template puts pages.&quot;,
&quot;required&quot;: true
},
&quot;subject&quot;: {
&quot;label&quot;: &quot;Subject&quot;,
&quot;description&quot;: &quot;The subject of the stub template's category.&quot;,
&quot;suggested&quot;: true
},
&quot;qualifier&quot;: {
&quot;label&quot;: &quot;Qualifier&quot;,
&quot;description&quot;: &quot;The sub-subject of the stub template's category.&quot;
},
&quot;image&quot;: {
&quot;label&quot;: &quot;Icon image&quot;,
&quot;type&quot;: &quot;wiki-file-name&quot;,
&quot;description&quot;: &quot;Image to use as an icon in the template.&quot;,
&quot;suggested&quot;: true
},
&quot;imagealt&quot;: {
&quot;label&quot;: &quot;Icon at text&quot;,
&quot;description&quot;: &quot;Alt text for the icon, especially for screen readers.&quot;,
&quot;default&quot;: &quot;Stub icon&quot;,
&quot;suggested&quot;: true
},
&quot;pix&quot;: {
&quot;label&quot;: &quot;Icon size&quot;,
&quot;description&quot;: &quot;Size at which to display the icon.&quot;
},
&quot;icon&quot;: {
&quot;label&quot;: &quot;Icon&quot;,
&quot;description&quot;: &quot;Icon to show in the template.&quot;,
&quot;suggested&quot;: true
},
&quot;article&quot;: {
&quot;label&quot;: &quot;Page name&quot;,
&quot;description&quot;: &quot;Different term instead of 'article' to use in the template.&quot;
},
&quot;note&quot;: {
&quot;label&quot;: &quot;Note&quot;,
&quot;description&quot;: &quot;A small note about the stub shown underneath the main text.&quot;
},
&quot;name&quot;: {
&quot;label&quot;: &quot;Template name&quot;,
&quot;description&quot;: &quot;The name of the template.&quot;
},
&quot;category1&quot;: {
&quot;label&quot;: &quot;Secondary stub category&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;description&quot;: &quot;A secondary category into which this stub template puts pages.&quot;
},
&quot;category#&quot;: {
&quot;label&quot;: &quot;Tertiary stub category&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;description&quot;: &quot;A tertiary category into which this stub template puts pages.&quot;
},
&quot;tempsort&quot;: {
&quot;label&quot;: &quot;Stub category sort prefix&quot;,
&quot;description&quot;: &quot;If set to a value other than 'no', a prefix for sorting pages in the category.&quot;
},
&quot;tempsort#&quot;: {
&quot;label&quot;: &quot;Secondary stub category sort prefix&quot;,
&quot;description&quot;: &quot;If set to a value other than 'no', a prefix for sorting pages in the secondary category.&quot;
},
&quot;tempsort#&quot;: {
&quot;label&quot;: &quot;Tertiary stub category sort prefix&quot;,
&quot;description&quot;: &quot;If set to a value other than 'no', a prefix for sorting pages in the tertiary category.&quot;
}
}
}
&lt;/templatedata&gt;
==See also==
* [[Wikipedia talk:WikiProject Stub sorting/Archive11#Stub template standardisation]]
{{Mbox templates see also}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Mbox and messagebox templates]]
[[Category:Stub message templates| ]]
}}&lt;/includeonly&gt;</text>
<sha1>87q57jjagfvilv7dgl9hsh14e30sj6w</sha1>
</revision>
</page>
<page>
<title>Template:Country data Wales</title>
<ns>10</ns>
<id>9018555</id>
<revision>
<id>814246857</id>
<parentid>814235160</parentid>
<timestamp>2017-12-07T17:45:13Z</timestamp>
<contributor>
<username>StevenJ81</username>
<id>14853459</id>
</contributor>
<minor/>
<comment>Syntax error</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="367">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Wales
| flag alias = Flag of Wales 2.svg
| flag alias-1807 = Flag of Wales, 1807-1953.svg
| flag alias-1953 = Flag of Wales (1953-1959).svg
| size = {{{size|}}}
| name = {{{name|}}}
| variant = {{{variant|}}}
| altlink = {{{altlink|}}}
&lt;noinclude&gt;
| var1 = 1807
| var2 = 1953
| redir1 = WAL
&lt;/noinclude&gt;
}}</text>
<sha1>5nkozqa81xmmr198xc851qspv6zuzxz</sha1>
</revision>
</page>
<page>
<title>Template:Demo</title>
<ns>10</ns>
<id>44902954</id>
<revision>
<id>640409688</id>
<parentid>640408605</parentid>
<timestamp>2014-12-31T18:11:29Z</timestamp>
<contributor>
<username>Codehydro</username>
<id>11007101</id>
</contributor>
<minor/>
<comment>typo</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="61">{{#invoke:Demo|main}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>qo8uxqtbhlvri8ihi5293by4l1j4soc</sha1>
</revision>
</page>
<page>
<title>Template:Mbox templates (small)</title>
<ns>10</ns>
<id>18946603</id>
<revision>
<id>815713577</id>
<parentid>815709418</parentid>
<timestamp>2017-12-16T16:45:22Z</timestamp>
<contributor>
<username>Zzuuzz</username>
<id>365454</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/208.54.86.246|208.54.86.246]] ([[User talk:208.54.86.246|talk]]) to last version by Frietjes</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="828">&lt;includeonly&gt;{{Infobox
| bodyclass = nowrap
| bodystyle = width:auto;padding-bottom:0.6em;line-height:1.25em;
| abovestyle = font-size:inherit;
| above = Message box&lt;br/&gt;meta-templates
| labelstyle = margin:0;padding:0 0.3em 0;text-align:center;font-weight:normal;
| datastyle = margin:0;padding:0 0.5em 0 0;
| label1 = ''template'' | data1 = ''context''
| label2 = {{tl|Ambox}} | data2 = article
| label3 = {{tl|Cmbox}} | data3 = category
| label4 = {{tl|Imbox}} | data4 = image
| label5 = {{tl|Tmbox}} | data5 = talk
| label6 = {{tl|Fmbox}} | data6 = footer / header
| label7 = {{tl|Ombox}} | data7 = other pages
| label8 = {{tl|Mbox}} | data8 = auto-detect
| label9 = {{tl|Asbox}} | data9 = article stub
| label10 = {{tl|Dmbox}} | data10 = disambiguation
}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>1bae4fgs4de5xgz69zvbs10mlm90g0b</sha1>
</revision>
</page>
<page>
<title>Template:Red</title>
<ns>10</ns>
<id>843603</id>
<revision>
<id>819415370</id>
<parentid>679939859</parentid>
<timestamp>2018-01-09T06:56:20Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<minor/>
<comment>nicer CSS</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="151">&lt;span style=&quot;color: Red;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;noinclude&gt;
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>shz5e6f3a688l1dple68qcurnz19jho</sha1>
</revision>
</page>
<page>
<title>Template:Soccer icon</title>
<ns>10</ns>
<id>11437907</id>
<revision>
<id>627310505</id>
<parentid>577970966</parentid>
<timestamp>2014-09-27T18:56:35Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>rm {{pp-template}}, add inline documentation; this also handles the cases when a pp icon is needed</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="130">{{Country data {{{1}}}|Soccer icon2|size={{{2|}}}}}&lt;noinclude&gt;
{{documentation|content=
[[Category:Data templates]]
}}&lt;/noinclude&gt;</text>
<sha1>akrngh019ssoyfve518b2dlyxyki4ix</sha1>
</revision>
</page>
<page>
<title>Template:Soccer icon2</title>
<ns>10</ns>
<id>11437931</id>
<revision>
<id>627333327</id>
<parentid>577970963</parentid>
<timestamp>2014-09-27T22:40:33Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>rm {{pp-template}}, add inline documentation; this also handles the cases when a pp icon is needed</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="339">&lt;span style=&quot;vertical-align: middle; background:transparent&quot;&gt;[[Image:{{{flag alias}}}|{{{size|40}}}x{{{size|40}}}px|alt=Flag of {{{alias}}}]]&lt;span style=&quot;margin-left:-{{{size|40}}}px;&quot;&gt;[[Image:Soccerball mask.svg|{{{size|40}}}px|alt=Soccer icon]]&lt;/span&gt;&lt;/span&gt;&lt;noinclude&gt;
{{documentation|content=
[[Category:Data templates]]
}}&lt;/noinclude&gt;</text>
<sha1>oa8eqgqzvz80ww81sv64yq0r8f7h1z6</sha1>
</revision>
</page>
<page>
<title>Module:Asbox</title>
<ns>828</ns>
<id>44821686</id>
<revision>
<id>670320775</id>
<parentid>647773061</parentid>
<timestamp>2015-07-07T06:30:57Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>prevent script error at [[Template:Turkey-yachtracing-bio-stub]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="12369">--[[
This module was created by User:CodeHydro (Alexander Zhikun He).
User:Jackmcbarn and User:Mr._Stradivarius provided a great deal of assistance in writting p.main()
p.main() draw heavily from the following version of Template:Asbox of the English Wikipedia, authored primarily by User:Rich_Farmbrough
https://en.wikipedia.org/w/index.php?title=Template:Asbox&amp;oldid=619510287
p.templatepage() is derived from the following revision of Template:Asbox/templatepage, authored primarily by User:MSGJ
https://en.wikipedia.org/w/index.php?title=Template:Asbox/templatepage&amp;oldid=632914791
Both templates had significant contributions from numerous others listed in the revision history tab of their respective pages.
--]]
local WRAPPER_TEMPLATE, args = 'Template:Asbox'
local p, Buffer, stubCats = {
--Prevents dupli-cats... get it? Maybe not?
cats = setmetatable({}, {__newindex = function(t, i, v)
if not rawget(t, i) then
rawset(t, i, v)
table.insert(t, i)
end
end}),
--initializes variables required by both p.main and p.templatepage
init = function(self, frame, page)
args, page = args or require('Module:Arguments').getArgs(frame, {
wrappers = WRAPPER_TEMPLATE
}), page or mw.title.getCurrentTitle()
--Ensures demo parameter will never affect category() output for articles
self.demo = self.demo or page.namespace ~= 0 and args.demo
return args, page
end
}, require('Module:Buffer')
--[[
Formats category links. Stores them until called with cat.done=true
Takes multiple or single categories in the form of 'cat'
or a table of strings and/or tables containing parts. (See below)
]]
local attention, catTag, catKey = Buffer'Stub message templates needing attention', '[[Category:%s]]', '%s|%s%s'
local function category(cat)
for _, v in ipairs((tostring(cat) == cat or cat.t) and {cat} or cat) do
--[[
If v is a table:
[1] = full category name; defaults to local attention if blank
k = Category sort key. Prefix before v.t
t = page.text or args.tempsort#; appended after k (or in its place if omitted). Required if v is not a string
Basically the same as v = (v[1] or attention) .. ' | ' .. (v.k or '') .. v.t
]]
if v and v ~= true then--reject v = nil, false, or true
p.cats[catTag:format(tostring(v) == v and
v
or (v[1] and Buffer(v[1]) or attention):_in(v.k):_(v.t):_str(2, nil, nil, '|')
)] = true
end
end
return cat.done and table.concat(p.cats, p.demo and ' | ' or nil) or ''
end
--[[
Makes an ombox warning;
Takes table {ifNot = Boolean, text, {cat. sort key, cat. sort name}}
Will return an empty string instead when ifNot evaluates to true
]]
local function ombox(v)
if v.ifNot then return end
p.ombox = p.ombox or require('Module:Message box').ombox
category{v[2]}
return p.ombox{
type = 'content',
text = v[1]
}
end
--[[
Unlike original template, module now takes unlimited cats! This function also performs
most stub category error checks except for the ombox for when main |category= is omitted (See p.template())
]]
local function catStub(page, pageDoc)
stubCats = {missing = {}, v = {}}
local code
for k, _ in pairs(args) do
--Find category parameters and store the number (main cat = '')
table.insert(stubCats, string.match(k, '^category(%d*)$'))
end
table.sort(stubCats)
for k, v in ipairs(stubCats) do
--Get category names and, if called by p.templatepage, the optional sort key
local tsort, cat = args['tempsort' .. v], mw.ustring.gsub(args['category' .. v], '[^%w%p%s]', '')--remove all hidden unicode chars
--Do not place template in main category if |tempsort = 'no'. However, DO place articles of that template in the main category.
table.insert(stubCats.v,
page and (--p.templatepage passes page; p.main does not, i.e. articles are categorized without sort keys.
v=='' and tsort == 'no'--if true, inserts 'true' in table, which category() will reject
or tsort and {cat, k = ' ', t = tsort}
or {cat, k = ' *', t = page.text}--note space in front of sort key
)
or cat
)
--Check category existance only if on the template page (i.e. stub documentation)
if page then
if not mw.title.new('Category:' .. cat).exists then
code = code or mw.html.create'code':wikitext'|category'
table.insert(stubCats.missing, tostring(mw.clone(code):wikitext(v)))
end
--[[
Checks non-demo stub template for documentation and flags if doc is present.
All stub cats names are checked and flagged if it does not match 'Category: [] stub'.
The main stub cat is exempt from the name check if the stub template has its own doc
(presumably, this doc would have an explanation as to why the main stub cat is non-conforming).
]]
table.insert(stubCats.v, v == '' and not p.demo and pageDoc.exists and
'Stub message templates with documentation subpages'
or not cat:match' stubs$' and {k = 'S', t = page.text}
)
end
end
--Add category names after loop is completed
category(stubCats.v)
return #stubCats.missing &gt; 0 and ombox{
--Changed, original msg:
--One or more of the stub categories defined in this template do not seem to exist!
--Please double-check the parameters {{para|category}}, {{para|category1}} and {{para|category2}}.
'The following parameter'
.. (#stubCats.missing == 1 and ' defines a stub category that does' or 's define stub categories that do')
.. ' not exist: ' .. mw.text.listToText(stubCats.missing),
{k = 'N', t = page.text}
}
end
--Shows population of categories found by catStub(). Outputs demo values if none
local function population()
local wikitext, base = {}, '* [[:Category:%s]] (population: %s)\n'
if not args.category and stubCats[1] ~= false then
table.insert(stubCats, 1, false)
end
for _, v in ipairs(stubCats) do
table.insert(wikitext, base:format(
v and args['category' .. v] or '{{{category}}}',
v and mw.site.stats.pagesInCategory(args['category' .. v], 'all') or 0
))
end
return table.concat(wikitext)
end
--Includes standard stub documention and flags stub templates with bad parameter values.
function p.templatepage(frame, page)
args, page = p:init(frame, page)
local tStubDoc = mw.title.new'Template:Stub documentation'
local pageDoc = page:subPageTitle('doc')
--Reorganization note: Original Asbox alternates between outputting categories and checking on params |category#=.
--Rather than checking multiple times and switching tasks, all stub category param operations have been rolled into catStub()
return Buffer(
ombox{--Show ombox warnings for missing args.
ifNot = args.category,
'The &lt;code&gt;|category&lt;/code&gt; parameter is not set. Please add an appropriate stub category.',
{k = 'C', t = page.text}
})
:_(ombox{
ifNot = args.subject or args.article or args.qualifier,
'This stub template contains no description! At least one of the parameters &lt;code&gt;|subject&lt;/code&gt;, &lt;code&gt;|article&lt;/code&gt; or &lt;code&gt;|qualifier&lt;/code&gt; must be defined.',
{k = 'D', t = page.text}
})
:_(catStub(page, pageDoc))--catStub() may also return an ombox if there are non-existing categories
:_(category{
done = p.demo ~= 'doc',--Outputs categories if not doc demo
'Stub message templates',
'Exclude in print',
args.icon and
'Stub message templates using icon parameter'
or args.image and (
mw.title.new('Media:' .. mw.text.split(args.image, '|')[1]).exists--do nothing if exists. category() will reject true
or {k = 'B', t = page.text}
)
or 'Stub message templates without images',
args.imagealt and {k = 'I', t = page.text},
})
:_((not p.demo or p.demo == 'doc') and--Add standard stub template documentation
require('Module:Documentation').main{
content = Buffer(page.text ~= 'Stub' and--This comparison performed in {{Asbox/stubtree}} before it invokes Module:Asbox stubtree
require('Module:Asbox stubtree').subtree{args = {pagename = page.text}}
)
:_in'\n== About this template ==\nThis template is used to identify a':_(args.subject):_'stub':_(args.qualifier):_out' '--space
:_'. It uses {{[[Template:Asbox|asbox]]}}, which is a meta-template designed to ease the process of creating and maintaining stub templates.\n=== Usage ===\nTyping '
:_(mw.html.create'code'
:wikitext('{{', page.text == 'Stub' and 'stub' or page.text, '}}')
)
:_' produces the message shown at the beginning, and adds the article to the following categor'
:_(#stubCats &gt; 1 and 'ies' or 'y')
:_':\n'
:_(population())
:_(pageDoc.exists and--transclusion of /doc if it exists
frame:expandTemplate{title = pageDoc.text}
)
:_'\n== General information ==\n'
:_(frame:expandTemplate{title = tStubDoc.text})
:_'\n\n'(),
['link box'] = Buffer'This documentation is automatically generated by [[Module:Asbox]].'
:_in'The general information is transcluded from [[Template:Stub documentation]]. '
:_(mw.html.create'span'
:cssText'font-size:smaller;font-style:normal;line-height:130%'
:node(('([%s edit] | [%s history])'):format(
tStubDoc:fullUrl('action=edit', 'relative'),
tStubDoc:fullUrl('action=history', 'relative')
))
)
:_out()
:_(page.protectionLevels.edit and page.protectionLevels.edit[1] == 'sysop' and
&quot;This template is [[WP:PROTECT|fully protected]] and any [[WP:CAT|categories]] should be added to the template's [&quot;
.. pageDoc:fullUrl('action=edit&amp;preload=Template:Category_interwiki/preload', 'relative')
.. '| /doc] subpage, which is not protected.'
)' &lt;br/&gt;'
}
)()
end
function p.main(frame, page)
args, page = p:init(frame, page)
local output = mw.html.create'table'
:addClass'metadata plainlinks stub'
:css{background = 'transparent'}
:attr{role = 'presentation'}
:tag'tr'
:node((args.icon or args.image) and
mw.html.create'td'
:wikitext(args.icon or ('[[File:%s|%spx|alt=%s]]'):format(
args.image or '',
args.pix or '40x30',
args.imagealt or 'Stub icon'
))
)
:tag'td'
:tag'i'
:wikitext(
Buffer'This':_(args.subject):_(args.article or 'article'):_(args.qualifier)' ',--space
' is a [[Wikipedia:stub|stub]]. You can help Wikipedia by [',
page:fullUrl('action=edit', 'relative'),
' expanding it].'
)
:done()
:node(args.name and
require'Module:Navbar'._navbar{
args.name,
mini = 'yes',
style = 'position: absolute; right: 15px; display: none;'
}
)
:node(args.note and
mw.html.create()
:tag'br':done()
:tag'span'
:css{['font-style'] = 'normal', ['font-size'] = 'smaller'}
:wikitext(args.note)
:done()
)
:allDone()
--[[
Stub categories for templates include a sort key (Otherwise all will be indexed under the letter 'T' for 'Template:[] stubs')
Articles using the template do not need a sort key since they have unique names.
When p.demo equals 'doc', the demo stub categories will appear as those for a stub template.
Otherwise, any non-nil p.demo will emulate article space categories (plus any error cats unless set to 'art')
]]
if page.namespace == 0 then -- Main namespace
category'All stub articles'
catStub()
elseif p.demo then
if p.demo ~= 'doc' then catStub() end
--Unless p.demo is set to 'art', it will also include error categories normally only shown on
--the template but not in the article. The elseif after namespace == 0 means demo cats will never show in article space.
p.demodoc = p.demo ~= 'art' and p.templatepage(frame, page)
output = mw.html.create()
:node(output)
:tag'small':wikitext(
'Demo categories: ',
(category{done = true}:gsub('(%[%[)(Category:)([^|%]]-)(%|)', '%1%2%3|%2%3%4'):gsub('(%[%[)(Category:)', '%1:%2'))
):done()
:wikitext(p.demo == 'doc' and p.demodoc or nil)
else
--Checks for valid name; emulates original template's check using {{FULLPAGENAME:{{{name|}}}}}
local normalizedName = mw.title.new(args.name or '')
if normalizedName and normalizedName.fullText == page.fullText then
output = mw.html.create():node(output):wikitext(p.templatepage(frame, page))
elseif not page.isSubpage and page.namespace == 10 then-- Template namespace and not a subpage
category{{k = args.name and 'E' or 'W', t = page.text}}
end
end
return output:wikitext(not p.demo and category{done = true} or nil)
end
return p</text>
<sha1>31l9zzgd5nipxypz0nrlahdnduqc4iv</sha1>
</revision>
</page>
<page>
<title>Module:Buffer</title>
<ns>828</ns>
<id>45253119</id>
<revision>
<id>662464476</id>
<parentid>659948094</parentid>
<timestamp>2015-05-15T16:15:29Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected Module:Buffer: [[WP:High-risk templates|High-risk Lua module]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="27931">--[[=============================
This Module was written by Alexander Zhikun He, also known as, User:Codehydro on the English Wikipedia
All methods were developed independently and any resemblance to other string buffer libraries would be coincidental.
Furthermore, many methods will not work when compiled by standard Lua libraries as they depend on behaviors unique to
the MediaMiki Scribunto mod, which, for example, has a getmetatable() method that always returns nil on non-tables.
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual
Source code comments may be thin at some points because they are intended to be supplemented by the documentation page:
https://en.wikipedia.org/wiki/Module:Buffer/doc
Licensed under Creative Commons Attribution-ShareAlike 3.0 Unported License
https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License
https://en.wikipedia.org/wiki/Module:Buffer
https://en.wikipedia.org/wiki/User:Codehydro
=============================--]]
local function Valid(v)--type validation
if v and v~=true then--reject nil/boolean; faster than 2 type() comparisons
local str = tostring(v)--functions not filtered since unlikely passed by accident (Scribunto does not have userdata/thread types)
if str~=v and str=='table' then return rawget(v, 1) and table.concat(v) end--tostring(string-type) returns same ref; same refs compare faster than type()
if str~='' then return str end--numbers are coerced to string per table.concat op; appending in string form saves ops on repeat concat
end
end
local noOp, MBpairs = function()end do local iMap, vMap, oMap, pIter, pOther, pFast, Next--Map
local function init()--init = noOp after first run
function Next(t) return next, t end--slightly faster to do this than to use select()
function pIter(t, k) k = (iMap[t] or MBpairs(t, true) and iMap[t])[not k and 1 or vMap[t][k]] return k, t[k] end--don't use rawget; accepting unmapped tables does not measurably affect performance.
function pOther(t, k) k = (oMap[t] or MBpairs(t, true) and oMap[t])[nil==k and 1 or vMap[t][k]] return k, t[k] end--comparison to nil because false is a valid key
function pFast(t, k) k = not k and 1 or k &lt; (vMap[t] or #t) and k + 1 or nil return k, t[k] end--mapless iterator; almost as fast as native ipairs; slight performance penalty when length not cached
--k and k &lt; (vMap[t] or #t) and k + 1 or not k and 1 or nil return k, t[k] end--mapless iterator; almost as fast as native ipairs; slight performance penalty when length not cached
local mk = {__mode = 'k'}--use mode 'k'; found that mode 'kv' sometimes garbage collects maps mid-loop (may not error because iterators auto re-map, but that's expensive)
init, iMap, vMap, oMap = noOp, setmetatable({}, mk), setmetatable({}, mk), setmetatable({}, mk)--iMap is numeric keys, oMap is non-numeric keys, and vMap points to next key
end
function MBpairs(t, ...)--pairs always iterates in order
local iter, ex = ...
iter = iter==init()--nil
if iter and not oMap[t] and ex==nil and rawget(t, 1)~=nil and next(t, #t)==nil then--while possible to miss keys, more thorough check would negate the benefit of pFast
vMap[t] = #t return pFast, t, nil
elseif ... or not vMap[t] or select('#', ...)~=1 then
local ti, tn, to, n = {}, {}, {}, #t--reduces table lookups
iMap[t], vMap[t], oMap[t] = ti, tn, to
for k = 1, n do ti[k], tn[k] = k, k + 1 end--stage one avoids number type checking op in stage two for most numeric keys
for k in (ex or Next)(t) do
if not tn[k] then table.insert(tonumber(k)~=k and to or ti, k) end
end
if #ti~=n then
table.sort(ti)
for k = 1, #ti do tn[ti[k]] = k + 1 end--somewhat wasteful, but trying to avoid overwriting can be even more expensive
end
for k = 1, #to do tn[to[k]] = k + 1 end
end
return iter and pIter or oMap[t] and pOther or noOp, t--noOp for mapless
end
end
local parent, rawkey, spec do--new scope for variables not reused outside (reduces number of var names that need to checked outside of scope)
local mkv = {__mode='kv', __call=function(t,k,v)t[k]=v return k end}--shared meta for Buffer parent property, raw mode, and specialized functions
parent, rawkey, spec = setmetatable({}, mkv), setmetatable({}, mkv), setmetatable({}, mkv)--shared meta less memory
end
local MB, MBi, MBmix, buffHTML, gfuncs, noCache, Element do--minimize number of locals per scope to reduce time spent sifting through irrelevant variable names
local _stream do local stream--keep stream near top of scope
local function init(f)--init = noOp after first run
local function each(self, ...)
for k = 1, select('#', ...) do
k = Valid(select(k, ...))--slightly faster than table.insert(self, (Valid(select(k, ...))))
if k then table.insert(self, k) end
end
return self
end
init, stream, _stream = noOp, {
__call = function(t, v) v = v and Valid(v) return v and table.insert(t, v) or t end,--last_concat cleared before entering stream mode
__index = function(t, i) return i=='each' and each or MB.__index(t, i) and setmetatable(t, MB)[i] end,--no table look up minimizes resources to retrieve the only stream function
__tostring = function(t) return setmetatable(t, MB)() end
} for k, v in next, MB do stream[k] = stream[k] or v end
setmetatable(stream, getmetatable(MB))
end
function _stream(self, ...) self.last_concat = init() return setmetatable(self, stream):each(...) end
end
local function isMBfunc(Buffer, s, ...)--helper for :getParent()-like methods (including getBuffer which does not return a parent)
return s and (select('#', ...)==0 and--eventually should figure out to make this work for :getHTML which is very similar
(not rawkey[s] and tostring(s):match'^_.*' and MB.__index(Buffer, s) and MB.__index(Buffer, s)(Buffer) or MBmix(Buffer, s))--unprefixed function names append as a string
or assert(MB.__index(Buffer, s), ('&quot; %s &quot; does not match any available Module:Buffer function'):format(s))(Buffer, ...)--getParent is a one-way trip so one-time assert not expensive
) or Buffer
end
local function MBselect(n, ...)--helper for :_out and :_str
local n, seps = n - 1, {select(2, ...)}
if type(seps[n])=='table' then
if buffHTML and rawget(seps[n], buffHTML) then return ... end
setmetatable(seps, {__index = setmetatable(seps[n], {__index = function(t) return rawget(t, 1) end})})[n] = nil
end
return ..., seps
end
local _inHTML do local lastBuffer, lastHTML
local function init(...)--init replaced and new version called on return
local create, mwFunc = mw.html.create do
local mwHTMLmeta = getmetatable(create())
buffHTML, mwFunc, _inHTML = setmetatable(mw.clone(mwHTMLmeta), getmetatable(MB)), mwHTMLmeta.__index--buffHTML declared near top of module; remove _inHTML from outer scope
function init(nodes, ...)
local name, args, tag = select(... and type(...)=='table' and 1 or 2, nil, ...)
tag = create(Valid(name), args)
if nodes then table.insert(nodes, tag.parent and tag or rawset(tag, 'parent', parent[nodes])) end
if args then
local a, b = args.selfClosing, args.parent
args.selfClosing, args.parent = nil
if next(args) then Element._add(parent(tag.nodes, tag), args) end
args.selfClosing, args.parent = a, b--in case args is reused
end
return tag
end
for k, v in next, {[mw] = mwHTMLmeta,
__call = function(h, v) return MBmix(spec[h.nodes] and h.nodes or spec(setmetatable(parent(h.nodes, h), MB), Element), v) end,
__concat = false,--false means take from MB
__eq = false
} do buffHTML[k] = v or MB[k] end
end
local nonSelf, BHi = {tag=true,done=true,allDone=true}, buffHTML.__index do local g
g = {__index = function(t, i)
if gfuncs and gfuncs[i] then g.__index, gfuncs = gfuncs return g.__index[i] end
end}
setmetatable(nonSelf, g)
setmetatable(BHi, g)
end
for k in next, nonSelf do--any HTML objects returned by these funcs will be granted Module:Buffer enhancements
local func = mwFunc[k]
BHi[k] = function(t, ...) local HTML = func(t, ...) return parent[HTML] and HTML or setmetatable(parent(HTML, t), buffHTML) end
end
do local function joinNode(HTML, sep)
local nodes, join = HTML.nodes
if noCache and rawkey[sep] or Valid(sep) then join, HTML.nodes = tostring(rawset(HTML, 'nodes', {MB.__call(nodes, sep)})), nodes end
return join or tostring(HTML)
end
for k, v in next, {
getParent = function(HTML, ...) lastHTML = HTML return MBi.getParent(HTML:allDone(), ...) end,--return to Buffer that created the HTML tree
getBuffer = function(HTML, ...) lastHTML = HTML return isMBfunc(lastBuffer, ...) end,--return to last used
killParent = function(HTML, ...) MBi.killParent(HTML:allDone(), ...) return HTML end,
_out = function(HTML, ...)
if ...==0 then MBi._out(HTML.nodes, ...) return HTML end
lastHTML, HTML = HTML, HTML:allDone()
local n, ops, seps = select('#', ...)
if n &gt; 1 then
local ops, seps = MBselect(n, ...)
return parent[HTML]:_in(joinNode(HTML, rawget(seps, 0))):_out(ops, rawset(seps, buffHTML, true))
end
return parent[HTML]:_(joinNode(HTML, ...))
end,
_str = function(HTML, ...)--does not set lastHTML
if ...==0 then return joinNode(HTML, select(2, ...)) end--passing 0 strings without calling allDone()
local HTML, n = HTML:allDone(), select('#', ...)
if n &gt; 1 then
local ops, seps = MBselect(n, ...)
return parent[HTML]:_in(joinNode(HTML, rawget(seps, 1))):_str(ops, rawset(seps, buffHTML, true))
end
return joinNode(HTML, ...)
end,
_parent = function(HTML, ...) table.insert(HTML.nodes, parent[HTML:allDone()]:_str(...)) return HTML end
} do BHi[k] = v end
end
do local htmlArg, skip, outFuncs = {parent=true,selfClosing=true,tagName=true}, {}
do local out local function func(nodes, ...) return out(parent[nodes], ...) end
outFuncs = setmetatable({
tag = function(nodes, ...) return parent(setmetatable(init(nodes, ...), buffHTML), parent[nodes]) end,
done = function(b, ops)
b = parent[b]
while b.parent and ops~=0 do b, ops = b.parent, ops and ops - 1 or 0 end
return b
end
}, {__index = function(nodes, i)
if rawget(BHi, i) then out = BHi[i] return func end--rawget to exclude globals
end})
end
Element = {
_add = function(nodes, t)
for k, v in MBpairs(t), t, skip[t] do (v~=true and MBmix or noOp)(nodes, v) end
local HTML = parent[nodes] for k, v in MBpairs(t, false) do
if htmlArg[k] then HTML[k] = v
elseif v and v~=true then
if nonSelf[k] then
if k=='tag' then
if type(v)=='table' then
skip[v], k = 1, rawset(create(Valid(v[1])), 'parent', HTML)
Element._add(spec(parent(k.nodes, k, table.insert(nodes, k)), Element), v)
if k.selfClosing then k.nodes = nil else spec[k.nodes], parent[k.nodes] = nil end--free memory/reduce clutter; parent ref will auto-unset when k.nodes is nil
if not k.tagName then k.styles, k.attributes = nil end
else table.insert(nodes, create(v)) end
elseif mwFunc[k] then
if k=='done' and tonumber(v)~=v and v[1] and tonumber(v[1])==v[1] then skip[v] = 1 end
MBmix(outFuncs[k](nodes, skip[v] and v[1]).nodes, v)
elseif v[1] or v[2] then
k = MBi[k](nodes, unpack(v, 1, rawset(skip, v, k=='_B' and 1 or 2)[v]))
Element._add(getmetatable(k) and rawget(k, 'nodes') or k, v)--if k is not a table, then v should not contain any extra keys or this may error.
else MBi[k](nodes, v) end--k probably == '_G' or '_R'
elseif mwFunc[k] then
if type(v)~='table' or rawget(v, 'nodes') then mwFunc[k](HTML, v)
else
local css = k=='css'
for x, y in MBpairs(v, true) do (y and y~=true and mwFunc[k] or noOp)(HTML, css and x:gsub('_', '-') or x, y) end--iterate non-numbers first
for _, y in MBpairs(v, nil) do (y and y~=true and mwFunc[k] or noOp)(HTML, y) end--don't bother with gsub since text must be quoted anyhow
end
elseif rawget(Element, k) or rawget(MBi, k) then
if tonumber(v)==v or v[1]==nil or getmetatable(v) then (Element[k] or MBi[k])(nodes, v)--v is probably string-able object, or a table to be handled by :_all
else (Element[k] or MBi[k])(nodes, unpack(v, 1, table.maxn(v))) end--v is definately a table
else mwFunc.css(HTML, k:gsub('_', '-', 1), tostring(v)) end--oddly enough, :_add clocked its fastest runtime after adding auto-gsub as a feature
skip[v] = nil
end
end
return nodes
end
}
local tempMeta = {mode='v', copy={styles=true,attributes=true}}
function tempMeta.__index(t, i) return tempMeta.copy[i] and rawset(t, i, MBi._cc(false, 0, t.orig[i]))[i] or t.orig[i] end
rawkey[setmetatable(Element, {__index = outFuncs, __concat=function(Element, v) return setmetatable({nodes=spec({}, Element),orig=parent[v]}, tempMeta) end})] = math.huge
end
function MBi:getHTML(...)
lastBuffer = self
if ... then
if select('#', ...)==1 then return not rawkey[s] and tostring(...):match'^_' and BHi[...] and BHi[...](lastHTML) or lastHTML(...)
else return assert(BHi[...], ('&quot; %s &quot; does not match any mw.html or Buffer-mw.html function'):format(tostring(...)))(lastHTML, select(2, ...)) end
end
return lastHTML
end
function MBi:_html(...) return MBi._(self, lastHTML, select(spec[self]==Element and select('#', ...)==0 and 1 or 2, true, ...)) end
return init(...)
end
function _inHTML(self, ...)
local HTML = init(nil, ...)
if HTML.selfClosing and spec[self]==Element then self.last_concat = table.insert(self, HTML) return self end
lastBuffer, lastHTML = self, setmetatable(parent(HTML, self), buffHTML)--set after 'args' table processed by :_add
return HTML
end
end
local _var, unbuild do local prev, rebuild
local function init(...)--init replaced before return
local function pick(b, v) return b and table.insert(b, v) or v end
local function c(a, num) return rawset(a.a or a, 0, a[0] and a[0] + a.c or num and a[1] or a[1]:byte())[0] end
local same, build, alt = {__tostring = function(a, b) return a.a[0] and pick(b, a.a.string and string.char(a.a[0]) or a.a.table and a.a[1][a.a[0]] or a.a[0]) end}, {
__index = {c = 1},
__tostring = function(t) return t:_build() end,
table = function(a, b) local i = next(a[1], a[0]) or a[0]==#a[1] and next(a[1]) return pick(b, rawset(a.a or a, 0, i)[1][i]) end,--change rate (a.c) ignored since users control the table's contents
number = function(a, b) return pick(b, c(a, true)) end,
string = function(a, b) return pick(b, string.char(c(a))) end
}, {__index = function(a, i) return a.a[i] end, __tostring = function(a, b) return (rawget(a, 0) and a[0]==tostring(a[0]) and rawset(a, 0, a[0]:byte()) or a).a._build(a, b) end}
local function shift(t, c)
t[0] = t[0] and t[0] + c or t:_build() and t[0] - t.c + c
if t.table then t[0] = (t[0] - 1) % #t[1] + 1 end
end
function rebuild(...)
local v, c = ...
if v or select('#', ...)==0 then
if v and not c then return prev end
local meta, c = select(v and 1 or 3, alt, c, same, 0)
return setmetatable({a = prev, _build = meta.__tostring, c = c}, meta)
elseif v==nil then--no-op
elseif c then shift(prev, c)--v == false
else prev:_build() end
end
init, noCache = function(v, c) prev = setmetatable({v, c = c, _build = build[type(v)] or v, [type(v)] = true, alt = {}}, build) return prev end, true
return init(...)
end
function unbuild(sep)
for k, v in MBpairs(sep, nil) do
k = getmetatable(v) if k and (k==build or k==alt) then shift(v.a or v, -v.c) end
end
end
function _var(self, ...)
local obj if ... and ...~=true then obj = init(...)
elseif prev then
if ...~=false then obj = rebuild(...)
else rebuild(...) end
end
return obj and MBi._(self, obj, nil, true) or self
end
end
local lib; MBi = setmetatable({stream = _stream,
_inHTML = _inHTML,
_var = _var,
_ = function(self, v, ...)
local at, raw = select(select('#', ...)==1 and ...==true and 1 or 2, nil, ...)
if raw then rawkey[self] = math.huge else v = Valid(v) end
if v or raw then
if at or rawkey[self] then raw = #self end--if length increases by more than one after table.insert, then set rawkey[self] = math.huge; rawkey[self] may be equal to a previous 'at'
at, self.last_concat = at and (tonumber(at)~=at and raw + at or at)
table.insert(self, select(at and 1 or 2, at, v))
if at and at &lt; 0 or raw and #self - raw &gt; 1 then rawkey[self] = math.huge elseif at and #self==raw then rawkey[self] = rawkey[self] and math.max(rawkey[self], at) or at end
end--above line looks bizarre because one table.insert op may make length jump from 0 to 8: local wtf={[2]=2,[4]=4,[8]=8}mw.log(#wtf,table.insert(wtf,1),#wtf)
return self
end,
_nil = function(self, at, ...)
if ...~=true and ...~=false then--faster than type(...) ~= 'boolean'
if not at or at=='0' then
self[#self] = ... if ... then rawkey[self] = math.huge end
else
local n, v = tonumber(at), ...
if n~=at then
if n then n = #self + at
elseif at~=true and select('#', ...)==0 then v, n = at, #self end
end
if n then
if v==nil and n &gt; 0 then table.remove(self, n)
else self[math.floor(n)], rawkey[self] = v, math.huge end--floor position for consistency with Table library
end
end
self.last_concat = nil
end
return self
end,
_all = function(self, t, valKey)
for k, v in MBpairs(t) do MBmix(self, v, valKey) end
for k, v in valKey and MBpairs(t, false) or noOp, t do
if tonumber(v) then MBi._(self, k, v)--self not always a buffer
elseif rawget(MBi, k) and v and v~=true then
if v[1]==nil or getmetatable(v) then MBi[k](self, v)
else MBi[k](self, unpack(v, 1, table.maxn(v))) end
end
end
return self
end,
_str = function(t, ...)
local n = select('#', ...)
if n &gt; 1 then
local k, ops, seps, r = 2, MBselect(n, ...)
r = MB(t(seps[1]))
while parent[t] and ops &gt; 1 and r:_(parent[t](seps[k]), 1) do t, k, ops = parent[t], k + 1, ops - 1 end
return table.concat(r, seps[k] or nil)
end
return MB.__call(t, ...)
end,
_in = function (self, ...) return parent(MB(...), self) end,
_out = function(t, ...)
if ...==0 then return parent(t, parent[t], MBi._cc(t, t, MB.__call(t, (select(2, ...))), getmetatable(t))) end--love how :_cc needed nothing new to implement this *self pat on back*
local n = select('#', ...)
if n &gt; 1 then
local k, ops, seps = 1, MBselect(n, ...)
while parent[t] and ops &gt; 0 do t, k, ops = parent[t]:_(t(seps[k])), k + 1, ops - 1 end
elseif parent[t] then return parent[t]:_(t(...)) end
return t
end,
_cc = function(self, clear, copy, meta)
if clear then
if rawequal(clear, copy) then return self, spec[MBi._cc] and setmetatable(spec[MBi._cc], MB)--rawequal to avoid re-string via __eq in case both are different Buffer objects
elseif copy==true then copy = self end
if clear~=0 then
assert(type(clear)=='table', debug.traceback('Buffer:_cc can only &quot;clear&quot; tables. Did you forget to call with a colon?', 2))--errors can be hard to trace without this
for k in self and next or noOp, clear do rawset(clear, k, nil) end
else return MBi._cc(false, {unpack(copy)}, copy) end--copy length w/o empty strings; recursion to avoid self = false causing garbage collection (non-weak child may exist)
if self==false or copy and type(copy)=='table' then--self==false means copy is a table (saves a type op for recursive calls)
meta = meta or getmetatable(copy)
if self and #copy &gt; 1 then--preserves length with empty strings; developed from studying http://www.lua.org/source/5.1/ltable.c.html
local n, null, i, e = #copy, {}, math.ldexp(2, select(2, math.frexp(#copy)) - 2)
e, spec[MBi._cc], parent[null] = i - 1, null, clear
for k = 1, e do table.insert(clear, false) end
while i&lt;=n do table.insert(clear, i, '') i, null[i] = i + math.ldexp(2, select(2, math.frexp(n - i)) - 2), '' end
for k = 1, e do rawset(clear, k, nil) end
end
for k, v in next, copy do rawset(clear, k, type(v)=='table' and MBi._cc(false, 0, v) or v) end
elseif copy then rawset(clear, 1, (Valid(copy))) end
rawkey[setmetatable(clear, meta)], parent[clear] = rawkey[copy], parent[copy]
end
return self and rawset(self, 'last_concat', nil) or clear
end,
_parent = function(self, ...) return parent[self] and MBi._(self, parent[self]:_str(...)) or self end,
getParent = function(self, ...) return isMBfunc(parent[self] or parent[parent(self, setmetatable({}, MB))], ...) end,
killParent = function(self, ...) return parent[self] and isMBfunc(parent[self], ...) and parent(self) or self end,
_build = function(self, t) table.insert(t, self()) end,--for compatibility with mw.html:node()
last_concat = false--prevent library check
}, {__index = function(t, i)--import string, mw.text, and mw.ustring libraries on an as-needed basis
local func = string[i] or mw.text[i] or mw.ustring[i] or type(i)=='string' and mw.ustring[i:match'^u(.+)'] if func then
lib = lib or function (s, f, ...)
if parent[s] and next(s)==nil then return s:_((f(tostring(parent[Element and (spec[s]==Element and s:allDone() or spec[parent[s]]==Element and parent[s]) or s]), ...))) end
return f(tostring(s), ...)--not using ternary/logical operators here to allow multiple return values
end
return rawset(t, i, i:match'^u?gsub' and function(self, p, r, ...)return lib(self, func, p, r or '', ...)end--Why are ugsub/gsub special? because empty strings are against my religion!
or function(self, ...)return lib(self, func, ...)end)[i]
end
end})
end
function MBmix(t, v, ...) return v and ((type(v)~='table' or getmetatable(v)) and MBi._(t, v) or (select('#', ...)==0 and spec[t] and spec[t]._add or MBi._all)(t, v, ...)) or t end--:_all always passes two args
local _G, new_G = _G--localize _G for console testing (console _G ~= module _G)
return setmetatable({__index = function(t, i) return spec[t] and spec[t][i] or MBi[i] end,
__call = function(t, ...)
local rawsep, sep, i, j, raw = noCache and rawkey[...] and ..., ...
if i or j or rawsep or Valid(sep) then
raw, sep, i, j = rawkey[spec[t]] or rawkey[t], rawsep or Valid(sep), i and (i~=tonumber(i) and i + #t or i), j and (j~=tonumber(j) and j + #t or j)
if rawsep or raw and (raw&gt;=(j or #t) or i &lt; 1) then
raw, i, j = {}, i and math.floor(i), j and math.floor(j)--floor for consistency with table.concat(t, sep, i, j), which ignores decimals
raw.lc, t.last_concat = t.last_concat--temporarily unset last_concat to prevent disqualification from mapless iteration
for k, v in MBpairs(t) do
if raw[1] or not i or k&gt;=i then if j and k &gt; j then break end
if raw.s then raw.s = table.insert(raw, tostring(sep)) end--if sep contains v and v is a Buffer-variable, sep must be strung before v
k = Valid(v) if k then
raw.s = rawsep or sep and raw[1] and table.insert(raw, sep)
table.insert(raw, k)
end
end
end
if rawsep and not raw.s then raw[#raw] = unbuild(sep) end--unbuild rawsep if final index in t was invalid
t.last_concat = raw.lc return table.concat(raw)
end
return table.concat(t, sep, i and math.max(i, 1), j and math.min(j, #t))
end
return MB.__tostring(t)
end,
__tostring = function(t)
if t.last_concat then return t.last_concat end
local r = rawkey[spec[t]] or rawkey[t]
r = table.concat(r and r&gt;=#t and MBi._all({}, t) or t)
return (noCache or rawset(t, 'last_concat', r)) and r
end,
__concat = function(a, b)
if buffHTML then
for k = 1, 2 do local v = select(k, a, b)--faster than for k, v in pairs{a, b} do
if v and spec[v] and spec[v]==Element then
if parent[v].selfClosing then
if rawequal(a, b) then return (not noCache or parent[v].tagName) and v:_str(0):rep(2) or v:_str(0)..v:_str(0) end--rawequal avoids premature tostring of Buffer:_var objects;
b, a = select(k, b, parent[v], a)
else local temp = Element .. v --helper method; returns a mirror of parent[v]
MBmix(MBmix(parent(temp.nodes, temp), a), k==1 and spec[b]==Element and parent[b] or b)
return buffHTML.__tostring(setmetatable(temp, {__index=parent[v], __mode='v'}))--switch from tempMeta to avoid MBi._cc op of styles/attributes
end
end
end
end
return table.concat(MBmix(MBmix({}, a), b))
end,
__pairs = MBpairs,
__ipairs = MBpairs,
__eq = function(a, b) return tostring(a)==tostring(b) end--avoid a==b in this module; use rawequal(a,b) when they may be different Buffers (premature tostring waste ops and is bad for Buffer:_var)
}, {__tostring = function()return''end,
__call = function(self, ...) MB = MB or self
if new_G then if ... and _G and ...==_G then new_G = ... end
elseif ... and (...==_G or type(...)=='table' and (...)._G==...) then
local Nil, mG = {}, (...):getmetatable() or (...):setmetatable{}:getmetatable()
new_G, _G, gfuncs = ..., ..., {--gfuncs stored for Buffer:_inHTML; new_G is a is a Module:Buffer local declared just before the final return statement.
_G = function(self, i, ...)
local X, save = rawget(new_G, i), select('#', ...)==0 and self or ...
if i and i~=true and not (X and save and rawequal(X, save)) and rawset(new_G, i, save) and (X~=nil or save==nil and new_G[i]~=nil) then--rawequal in case X is another buffer
local mG = getmetatable(new_G) or {__call=mG.__call}
if mG.__index then pcall(rawset, mG.__index, i, X)
else mG.__index = setmetatable(new_G, mG) and {[i] = X} end
end
return self, ...--avoiding __eq with rawequal(self,save) is overkill since buffers can self-save without being passed as save
end,
_R = function(self, i, v, m)
if i~='new_G' then if i and i~=true then rawset(new_G, i , v) end
elseif not v or v==true or v._G~=_G then new_G = setmetatable(v~=true and v or {}, {__call = mG.__call, __index = v~=true and m~=true and (m or new_G) or nil})
else new_G, (not m and (m~=nil or v==new_G) and Nil or getmetatable(v)).__index = v, m~=true and (m or new_G) or nil end--setting Nil.__index is noOp
return self
end,
_2 = function(self, ...)
if new_G[...]~=nil then return new_G[...] end--higher priority so Buffer:_G('new_G', ...) can prevent an overwrite
if ...=='new_G' then return rawset((select('#', ...)~=1 and MBi._R(new_G, ...) or new_G), '_G', _G) end
return select(select('#', ...)==1 and 1 or 2, self:_G(...))--return only one value; 'return select(2, self:_G(...)) or self' doesn't work for returning nil
end,
_B = function(self, v) return v or v==nil and Nil end
} for k, v in next, gfuncs do MBi[k] = v end
setmetatable(Nil,{__concat=MB.__concat,__newindex=noOp,__call=noOp,__tostring=noOp,__metatable=MB,__index=setmetatable({_B=MBi._B,_=function()return Nil end,last_concat=''},
{__index=function(t,i)return (MBi[i] or i and not tonumber(i)) and t._ or nil end})})
function mG.__call(G, k, ...) return (k._G or G.type(k)=='table') and (G.select('#', ...)~=1 and G.rawset(k, ...) or G:rawset(..., k) and k) or G:rawset(k, (...)) and ... end
end
local new = setmetatable({}, self)
if ... and (...)==new_G then return select(2, ...) and MBmix(new:_G((select(2, ...))), select(3, ...)) or new end
return ... and MBi._(new, ...) or new
end,
__index = function(t, i)
MB = MB or t return MBi[i] and function(...) return MBi[i](setmetatable({}, t), select(...==t and 2 or 1,...)) end
end
})</text>
<sha1>jaobpdh55fjwufj4mg1tck9bsag4blq</sha1>
</revision>
</page>
<page>
<title>Module:Demo</title>
<ns>828</ns>
<id>44903029</id>
<revision>
<id>644905107</id>
<parentid>644894963</parentid>
<timestamp>2015-01-30T22:21:59Z</timestamp>
<contributor>
<username>Codehydro</username>
<id>11007101</id>
</contributor>
<comment>maybe this is the better way</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3670">local p = {}
--creates a frame object that cannot access any of the parent's args
--unless a table containing a list keys of not to inherit is provided
function disinherit(frame, onlyTheseKeys)
local parent = frame:getParent() or frame
local orphan = parent:newChild{}
orphan.getParent = parent.getParent --returns nil
orphan.args = {}
if onlyTheseKeys then
local family = {parent, frame}
for f = 1, 2 do
for k, v in pairs(family[f] and family[f].args or {}) do
orphan.args[k] = orphan.args[k] or v
end
end
parent.args = mw.clone(orphan.args)
setmetatable(orphan.args, nil)
for _, k in ipairs(onlyTheseKeys) do
rawset(orphan.args, k, nil)
end
end
return orphan, parent
end
function p.get(frame, arg, passArgs)
local orphan, frame = disinherit(frame, passArgs and {arg or 1})
local code, noWiki, preserve = frame.args[arg or 1] or ''
if code:match'nowiki' then
local placeholder, preserve = ('6'):char(), {}
code = mw.text.unstripNoWiki(code)
noWiki = code:gsub('%%', placeholder):gsub('&amp;lt;', '&lt;'):gsub('&amp;gt;', '&gt;')
for k in noWiki:gmatch('&amp;.-;') do
if not preserve[k] then
preserve[k] = true
table.insert(preserve, (k:gsub('&amp;', '&amp;amp;')))
noWiki = noWiki:gsub('(&amp;.-;)', '%%%s')
end
end
noWiki = mw.text.nowiki(noWiki):format(unpack(preserve)):gsub(placeholder, '%%')
end
return {
source = noWiki or code,
output = orphan:preprocess(code):gsub(frame.args.demo_kill_categories and '%[%[Category.-%]%]' or '', ''),
frame = frame
}
end
function p.main(frame, demoTable)
local show = demoTable or p.get(frame)
local args = show.frame.args
args.br = tonumber(args.br or 1) and ('&lt;br&gt;'):rep(args.br or 1) or args.br or ''
if show[args.result_arg] then
return show[args.result_arg]
end
return string.format('&lt;pre%s&gt;%s&lt;/pre&gt;%s%s', args.style and string.format(&quot; style='%s'&quot;, args.style) or '', show.source, args.br, show.output)
end
--passing of args into other module without preprocessing
function p.module(frame)
local orphan, frame = disinherit(frame, {
'demo_template',
'demo_module',
'demo_module_func',
'demo_main',
'demo_br',
'demo_result_arg',
'demo_kill_categories'
})
local template = frame.args.demo_template and 'Template:'..frame.args.demo_template
local demoFunc = frame.args.demo_module_func or 'main\n'
local demoModule = require('Module:' .. frame.args.demo_module)[demoFunc:match('^%s*(.-)%s*$')]
frame.args.br, frame.args.result_arg = frame.args.demo_br, frame.args.demo_result_arg
if demoModule then
local named = {insert = function(self, ...) table.insert(self, ...) return self end}
local source = {insert = named.insert, '{{', frame.args.demo_template or frame.args.demo_module, '\n'}
if not template then
source:insert(2, '#invoke:'):insert(4, '|'):insert(5, demoFunc)
end
local insertNamed = #source + 1
for k, v in pairs(orphan.args) do
local nan, insert = type(k) ~= 'number', {v}
local target = nan and named or source
target:insert'|'
if nan then
target:insert(k):insert'=':insert'\n'
table.insert(insert, 1, #target)
end
target:insert(unpack(insert))
local nowiki = v:match('nowiki')
if nowiki or v:match('{{.-}}') then
orphan.args[k] = frame:preprocess(nowiki and mw.text.unstripNoWiki(v) or v)
end
end
source:insert'}}'
table.insert(source, insertNamed, table.concat(named))
return p.main(orphan, {
source = mw.text.encode(table.concat(source), &quot;&lt;&gt;'|=~&quot;),
output = tostring(demoModule(orphan)):gsub(frame.args.demo_kill_categories and '%[%[Category.-%]%]' or '', ''),
frame = frame
})
else
return &quot;ERROR: Invalid module function: &quot;..demoFunc
end
end
return p</text>
<sha1>b9gpefw8t2d76p618hk1jelagc2xskn</sha1>
</revision>
</page>
<page>
<title>Module:Infobox</title>
<ns>828</ns>
<id>38808424</id>
<revision>
<id>822189612</id>
<parentid>786097736</parentid>
<timestamp>2018-01-24T22:39:59Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>infobox class not needed for subbox since the parent box will set the class (and causes problems on mobile)</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="15447">--
-- This module implements {{Infobox}}
--
local p = {}
local navbar = require('Module:Navbar')._navbar
local args = {}
local origArgs
local root
local function notempty( s ) return s and s:match( '%S' ) end
local function fixChildBoxes(sval, tt)
if notempty(sval) then
local marker = '&lt;span class=special_infobox_marker&gt;'
local s = sval
s = mw.ustring.gsub(s, '(&lt;%s*[Tt][Rr])', marker .. '%1')
s = mw.ustring.gsub(s, '(&lt;/[Tt][Rr]%s*&gt;)', '%1' .. marker)
if s:match(marker) then
s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '')
s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1')
s = mw.ustring.gsub(s, '(&lt;/[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*&gt;%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '(&lt;%s*[Tt][Aa][Bb][Ll][Ee][^&lt;&gt;]*&gt;%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '(%s*&lt;/[Tt][Aa][Bb][Ll][Ee]%s*&gt;)', '%1')
s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1')
end
if s:match(marker) then
local subcells = mw.text.split(s, marker)
s = ''
for k = 1, #subcells do
if k == 1 then
s = s .. subcells[k] .. '&lt;/' .. tt .. '&gt;&lt;/tr&gt;'
elseif k == #subcells then
local rowstyle = ' style=&quot;display:none&quot;'
if notempty(subcells[k]) then rowstyle = '' end
s = s .. '&lt;tr' .. rowstyle ..'&gt;&lt;' .. tt .. ' colspan=2&gt;\n' .. subcells[k]
elseif notempty(subcells[k]) then
if (k % 2) == 0 then
s = s .. subcells[k]
else
s = s .. '&lt;tr&gt;&lt;' .. tt .. ' colspan=2&gt;\n' .. subcells[k] .. '&lt;/' .. tt .. '&gt;&lt;/tr&gt;'
end
end
end
end
return s
else
return sval
end
end
local function union(t1, t2)
-- Returns the union of the values of two tables, as a sequence.
local vals = {}
for k, v in pairs(t1) do
vals[v] = true
end
for k, v in pairs(t2) do
vals[v] = true
end
local ret = {}
for k, v in pairs(vals) do
table.insert(ret, k)
end
return ret
end
local function getArgNums(prefix)
-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix. For example, if the prefix was 'data', and
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local nums = {}
for k, v in pairs(args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end
local function addRow(rowArgs)
-- Adds a row to the infobox, with either a header cell
-- or a label/data cell combination.
if rowArgs.header then
root
:tag('tr')
:addClass(rowArgs.rowclass)
:cssText(rowArgs.rowstyle)
:attr('id', rowArgs.rowid)
:tag('th')
:attr('colspan', 2)
:attr('id', rowArgs.headerid)
:addClass(rowArgs.class)
:addClass(args.headerclass)
:css('text-align', 'center')
:cssText(args.headerstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(fixChildBoxes(rowArgs.header, 'th'))
elseif rowArgs.data then
local row = root:tag('tr')
row:addClass(rowArgs.rowclass)
row:cssText(rowArgs.rowstyle)
row:attr('id', rowArgs.rowid)
if rowArgs.label then
row
:tag('th')
:attr('scope', 'row')
:attr('id', rowArgs.labelid)
:cssText(args.labelstyle)
:cssText(rowArgs.rowcellstyle)
:wikitext(rowArgs.label)
:done()
end
local dataCell = row:tag('td')
if not rowArgs.label then
dataCell
:attr('colspan', 2)
:css('text-align', 'center')
end
dataCell
:attr('id', rowArgs.dataid)
:addClass(rowArgs.class)
:cssText(rowArgs.datastyle)
:cssText(rowArgs.rowcellstyle)
:newline()
:wikitext(fixChildBoxes(rowArgs.data, 'td'))
end
end
local function renderTitle()
if not args.title then return end
root
:tag('caption')
:addClass(args.titleclass)
:cssText(args.titlestyle)
:wikitext(args.title)
end
local function renderAboveRow()
if not args.above then return end
root
:tag('tr')
:tag('th')
:attr('colspan', 2)
:addClass(args.aboveclass)
:css('text-align', 'center')
:css('font-size', '125%')
:css('font-weight', 'bold')
:cssText(args.abovestyle)
:wikitext(fixChildBoxes(args.above,'th'))
end
local function renderBelowRow()
if not args.below then return end
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass(args.belowclass)
:css('text-align', 'center')
:cssText(args.belowstyle)
:newline()
:wikitext(fixChildBoxes(args.below,'td'))
end
local function renderSubheaders()
if args.subheader then
args.subheader1 = args.subheader
end
if args.subheaderrowclass then
args.subheaderrowclass1 = args.subheaderrowclass
end
local subheadernums = getArgNums('subheader')
for k, num in ipairs(subheadernums) do
addRow({
data = args['subheader' .. tostring(num)],
datastyle = args.subheaderstyle or args['subheaderstyle' .. tostring(num)],
class = args.subheaderclass,
rowclass = args['subheaderrowclass' .. tostring(num)]
})
end
end
local function renderImages()
if args.image then
args.image1 = args.image
end
if args.caption then
args.caption1 = args.caption
end
local imagenums = getArgNums('image')
for k, num in ipairs(imagenums) do
local caption = args['caption' .. tostring(num)]
local data = mw.html.create():wikitext(args['image' .. tostring(num)])
if caption then
data
:tag('div')
:cssText(args.captionstyle)
:wikitext(caption)
end
addRow({
data = tostring(data),
datastyle = args.imagestyle,
class = args.imageclass,
rowclass = args['imagerowclass' .. tostring(num)]
})
end
end
local function renderRows()
-- Gets the union of the header and data argument numbers,
-- and renders them all in order using addRow.
local rownums = union(getArgNums('header'), getArgNums('data'))
table.sort(rownums)
for k, num in ipairs(rownums) do
addRow({
header = args['header' .. tostring(num)],
label = args['label' .. tostring(num)],
data = args['data' .. tostring(num)],
datastyle = args.datastyle,
class = args['class' .. tostring(num)],
rowclass = args['rowclass' .. tostring(num)],
rowstyle = args['rowstyle' .. tostring(num)],
rowcellstyle = args['rowcellstyle' .. tostring(num)],
dataid = args['dataid' .. tostring(num)],
labelid = args['labelid' .. tostring(num)],
headerid = args['headerid' .. tostring(num)],
rowid = args['rowid' .. tostring(num)]
})
end
end
local function renderNavBar()
if not args.name then return end
root
:tag('tr')
:tag('td')
:attr('colspan', '2')
:css('text-align', 'right')
:wikitext(navbar{
args.name,
mini = 1,
})
end
local function renderItalicTitle()
local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title'])
if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then
root:wikitext(mw.getCurrentFrame():expandTemplate({title = 'italic title'}))
end
end
local function renderTrackingCategories()
if args.decat ~= 'yes' then
if #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then
root:wikitext('[[Category:Articles which use infobox templates with no data rows]]')
end
if args.child == 'yes' and args.title then
root:wikitext('[[Category:Pages which use embedded infobox templates with the title parameter]]')
end
end
end
local function _infobox()
-- Specify the overall layout of the infobox, with special settings
-- if the infobox is used as a 'child' inside another infobox.
if args.child ~= 'yes' then
root = mw.html.create('table')
root
:addClass((args.subbox ~= 'yes') and 'infobox' or nil)
:addClass(args.bodyclass)
if args.subbox == 'yes' then
root
:css('padding', '0')
:css('border', 'none')
:css('margin', '-3px')
:css('width', 'auto')
:css('min-width', '100%')
:css('font-size', '100%')
:css('clear', 'none')
:css('float', 'none')
:css('background-color', 'transparent')
else
root
:css('width', '22em')
end
root
:cssText(args.bodystyle)
renderTitle()
renderAboveRow()
else
root = mw.html.create()
root
:wikitext(args.title)
end
renderSubheaders()
renderImages()
renderRows()
renderBelowRow()
renderNavBar()
renderItalicTitle()
renderTrackingCategories()
return tostring(root)
end
local function preprocessSingleArg(argName)
-- If the argument exists and isn't blank, add it to the argument table.
-- Blank arguments are treated as nil to match the behaviour of ParserFunctions.
if origArgs[argName] and origArgs[argName] ~= '' then
args[argName] = origArgs[argName]
end
end
local function preprocessArgs(prefixTable, step)
-- Assign the parameters with the given prefixes to the args table, in order, in batches
-- of the step size specified. This is to prevent references etc. from appearing in the
-- wrong order. The prefixTable should be an array containing tables, each of which has
-- two possible fields, a &quot;prefix&quot; string and a &quot;depend&quot; table. The function always parses
-- parameters containing the &quot;prefix&quot; string, but only parses parameters in the &quot;depend&quot;
-- table if the prefix parameter is present and non-blank.
if type(prefixTable) ~= 'table' then
error(&quot;Non-table value detected for the prefix table&quot;, 2)
end
if type(step) ~= 'number' then
error(&quot;Invalid step value detected&quot;, 2)
end
-- Get arguments without a number suffix, and check for bad input.
for i,v in ipairs(prefixTable) do
if type(v) ~= 'table' or type(v.prefix) ~= &quot;string&quot; or (v.depend and type(v.depend) ~= 'table') then
error('Invalid input detected to preprocessArgs prefix table', 2)
end
preprocessSingleArg(v.prefix)
-- Only parse the depend parameter if the prefix parameter is present and not blank.
if args[v.prefix] and v.depend then
for j, dependValue in ipairs(v.depend) do
if type(dependValue) ~= 'string' then
error('Invalid &quot;depend&quot; parameter value detected in preprocessArgs')
end
preprocessSingleArg(dependValue)
end
end
end
-- Get arguments with number suffixes.
local a = 1 -- Counter variable.
local moreArgumentsExist = true
while moreArgumentsExist == true do
moreArgumentsExist = false
for i = a, a + step - 1 do
for j,v in ipairs(prefixTable) do
local prefixArgName = v.prefix .. tostring(i)
if origArgs[prefixArgName] then
moreArgumentsExist = true -- Do another loop if any arguments are found, even blank ones.
preprocessSingleArg(prefixArgName)
end
-- Process the depend table if the prefix argument is present and not blank, or
-- we are processing &quot;prefix1&quot; and &quot;prefix&quot; is present and not blank, and
-- if the depend table is present.
if v.depend and (args[prefixArgName] or (i == 1 and args[v.prefix])) then
for j,dependValue in ipairs(v.depend) do
local dependArgName = dependValue .. tostring(i)
preprocessSingleArg(dependArgName)
end
end
end
end
a = a + step
end
end
function p.infobox(frame)
-- If called via #invoke, use the args passed into the invoking template.
-- Otherwise, for testing purposes, assume args are being passed directly in.
if frame == mw.getCurrentFrame() then
origArgs = frame:getParent().args
else
origArgs = frame
end
-- Parse the data parameters in the same order that the old {{infobox}} did, so that
-- references etc. will display in the expected places. Parameters that depend on
-- another parameter are only processed if that parameter is present, to avoid
-- phantom references appearing in article reference lists.
preprocessSingleArg('child')
preprocessSingleArg('bodyclass')
preprocessSingleArg('subbox')
preprocessSingleArg('bodystyle')
preprocessSingleArg('title')
preprocessSingleArg('titleclass')
preprocessSingleArg('titlestyle')
preprocessSingleArg('above')
preprocessSingleArg('aboveclass')
preprocessSingleArg('abovestyle')
preprocessArgs({
{prefix = 'subheader', depend = {'subheaderstyle', 'subheaderrowclass'}}
}, 10)
preprocessSingleArg('subheaderstyle')
preprocessSingleArg('subheaderclass')
preprocessArgs({
{prefix = 'image', depend = {'caption', 'imagerowclass'}}
}, 10)
preprocessSingleArg('captionstyle')
preprocessSingleArg('imagestyle')
preprocessSingleArg('imageclass')
preprocessArgs({
{prefix = 'header'},
{prefix = 'data', depend = {'label'}},
{prefix = 'rowclass'},
{prefix = 'rowstyle'},
{prefix = 'rowcellstyle'},
{prefix = 'class'},
{prefix = 'dataid'},
{prefix = 'labelid'},
{prefix = 'headerid'},
{prefix = 'rowid'}
}, 50)
preprocessSingleArg('headerclass')
preprocessSingleArg('headerstyle')
preprocessSingleArg('labelstyle')
preprocessSingleArg('datastyle')
preprocessSingleArg('below')
preprocessSingleArg('belowclass')
preprocessSingleArg('belowstyle')
preprocessSingleArg('name')
args['italic title'] = origArgs['italic title'] -- different behaviour if blank or absent
preprocessSingleArg('decat')
return _infobox()
end
return p</text>
<sha1>70c4sw4coyjec1b3vfiyyrfzu3bapv8</sha1>
</revision>
</page>
<page>
<title>Module:Navbar</title>
<ns>828</ns>
<id>38827227</id>
<revision>
<id>780167786</id>
<parentid>771417723</parentid>
<timestamp>2017-05-13T12:41:14Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<comment>update from sandbox per [[Special:Diff/771417737]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="2517">local p = {}
local getArgs
function p._navbar(args)
local titleArg = 1
if args.collapsible then
titleArg = 2
if not args.plain then
args.mini = 1
end
if args.fontcolor then
args.fontstyle = 'color:' .. args.fontcolor .. ';'
end
args.style = 'float:left; text-align:left'
end
local titleText = args[titleArg] or (':' .. mw.getCurrentFrame():getParent():getTitle())
local title = mw.title.new(mw.text.trim(titleText), 'Template');
if not title then
error('Invalid title ' .. titleText)
end
local talkpage = title.talkPageTitle and title.talkPageTitle.fullText or '';
local div = mw.html.create():tag('div')
div
:addClass('plainlinks')
:addClass('hlist')
:addClass('navbar')
:cssText(args.style)
if args.mini then div:addClass('mini') end
if not (args.mini or args.plain) then
div
:tag('span')
:css('word-spacing', 0)
:cssText(args.fontstyle)
:wikitext(args.text or 'This box:')
:wikitext(' ')
end
if args.brackets then
div
:tag('span')
:css('margin-right', '-0.125em')
:cssText(args.fontstyle)
:wikitext('&amp;#91; ')
end
local ul = div:tag('ul');
ul
:tag('li')
:addClass('nv-view')
:wikitext('[[' .. title.fullText .. '|')
:tag(args.mini and 'abbr' or 'span')
:attr('title', 'View this template')
:cssText(args.fontstyle)
:wikitext(args.mini and 'v' or 'view')
:done()
:wikitext(']]')
:done()
:tag('li')
:addClass('nv-talk')
:wikitext('[[' .. talkpage .. '|')
:tag(args.mini and 'abbr' or 'span')
:attr('title', 'Discuss this template')
:cssText(args.fontstyle)
:wikitext(args.mini and 't' or 'talk')
:done()
:wikitext(']]');
if not args.noedit then
ul
:tag('li')
:addClass('nv-edit')
:wikitext('[' .. title:fullUrl('action=edit') .. ' ')
:tag(args.mini and 'abbr' or 'span')
:attr('title', 'Edit this template')
:cssText(args.fontstyle)
:wikitext(args.mini and 'e' or 'edit')
:done()
:wikitext(']');
end
if args.brackets then
div
:tag('span')
:css('margin-left', '-0.125em')
:cssText(args.fontstyle)
:wikitext(' &amp;#93;')
end
if args.collapsible then
div
:done()
:tag('div')
:css('font-size', '114%')
:css('margin', args.mini and '0 4em' or '0 7em')
:cssText(args.fontstyle)
:wikitext(args[1])
end
return tostring(div:done())
end
function p.navbar(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return p._navbar(getArgs(frame))
end
return p</text>
<sha1>9d4ism2psi1oucu9pnyveg4m6i2oobx</sha1>
</revision>
</page>
<page>
<title>Template:Doc</title>
<ns>10</ns>
<id>14298498</id>
<redirect title="Template:Documentation" />
<revision>
<id>774481748</id>
<parentid>366363082</parentid>
<timestamp>2017-04-08T19:21:20Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Doc]]&quot;: Matching redirect target ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="158">#REDIRECT [[Template:Documentation]]{{R from template shortcut}}
[[Category:Template documentation]]
[[Category:Wikipedia formatting and function templates]]</text>
<sha1>7cbqxfzfvtxkdrt8xbxrpb49tiqzr09</sha1>
</revision>
</page>
<page>
<title>Module:Asbox stubtree</title>
<ns>828</ns>
<id>38629368</id>
<revision>
<id>577704600</id>
<parentid>544889037</parentid>
<timestamp>2013-10-18T12:29:46Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<minor/>
<comment>Changed protection level of Module:Asbox stubtree: allow template editors to modify ([Edit=Protected template] (indefinite) [Move=Protected template] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="2552">local i = {}
function i.exists(pagename)
local t = mw.title.new(pagename, &quot;Template&quot;)
return t.exists
end
function i.pcase(word)
return mw.ustring.upper(mw.ustring.sub(word,1,1)) .. mw.ustring.sub(word,2)
end
function i._subtree(pagename)
local finalresult
local out = {&quot;&quot;,pagename}
local tt
local temppage
local temppageexists
local r = 0
local t = {}
local removeditem1 = &quot;&quot;
local removeditem2 = &quot;&quot;
-- split items on dash into table
for token in mw.ustring.gmatch(pagename, &quot;[^-]+&quot;) do
-- don't add numbered items to list
if tonumber(mw.ustring.sub(token,1,1)) == nil then
table.insert(t,token)
else
r = 1
end
end
table.remove(t, #t)
while (#t &gt; 1) do
if r == 1 then
r = 0
else
-- Remove 1st item from list
removeditem1 = t[1]
table.remove(t, 1)
end
temppage = table.concat(t, &quot;-&quot;) .. &quot;-stub&quot;
temppageexists = i.exists(temppage)
if temppageexists == true then
table.insert(out,&quot;[[Template:&quot; .. temppage .. &quot;|&quot; .. i.pcase(temppage) .. &quot;]]&quot;)
else
-- If template with first item does not exist, try removing last item
removeditem2 = t[#t]
table.remove(t, #t)
temppage = removeditem1 .. &quot;-&quot; .. table.concat(t, &quot;-&quot;) .. &quot;-stub&quot;
if #t == 0 then
temppage = removeditem1 .. &quot;-stub&quot;
end
temppageexists = i.exists(temppage)
if temppageexists == true then
-- if exists then add first item back to list
table.insert(t,1,removeditem1)
table.insert(out,&quot;[[Template:&quot; .. temppage .. &quot;|&quot; .. i.pcase(temppage) .. &quot;]]&quot;)
else
-- if exists then add last item back to list
table.insert(t,removeditem2)
end
end
end
finalresult = '&lt;div style=&quot;float:right; border-style:dotted; border-width:2px; padding:5px; margin:5px;&quot;&gt;'
finalresult = finalresult .. '&lt;span title=&quot;This shows the hierarchy of the stub template in relation to other templates.&quot; style=&quot;font-size:125%; font-weight:bold;&quot;&gt;Stub hierarchy&lt;/span&gt;'
finalresult = finalresult .. table.concat(out, &quot;\n* &quot;)
finalresult = finalresult .. '\n* [[Template:Stub|Stub]]'
finalresult = finalresult .. '\n&lt;/div&gt;'
return finalresult
end
function i.subtree(frame)
return i._subtree(frame.args[&quot;pagename&quot;])
end
return i</text>
<sha1>eymzbxdbah53ha1tq4qa3ppcbnij0ig</sha1>
</revision>
</page>
<page>
<title>Template:Audio/doc</title>
<ns>10</ns>
<id>12498753</id>
<revision>
<id>804355207</id>
<parentid>800006849</parentid>
<timestamp>2017-10-08T13:04:47Z</timestamp>
<contributor>
<username>Nardog</username>
<id>5908908</id>
</contributor>
<comment>[[Category:Templates that add a tracking category]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1575">{{Documentation subpage}}
&lt;!--PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE--&gt;
{{for|instructions on inserting audio files|Wikipedia:Creation and usage of media files#Audio}}
=== Purpose ===
This template links to an audio file for quick listening. It is meant to be used inline with text, for pronunciations and the like. Please note that this just creates a link to the file and does not actually embed the file. If the file is Non-Free and only referenced via this template it is not in compliance with [[WP:NFCC#7|Wikipedia:Non-free content criteria § Policy #7]].
=== Usage ===
; Basic:
&lt;code&gt;&lt;nowiki&gt;{{Audio|name of sound file|text to use as link to soundfile|help=}}&lt;/nowiki&gt;&lt;/code&gt;
; Simple
: &lt;code&gt;&lt;nowiki&gt;'''Alabama''' ({{Audio|en-us-Alabama.ogg|pronunciation}}) is a state located in...&lt;/nowiki&gt;&lt;/code&gt;
: → '''Alabama''' ({{Audio|en-us-Alabama.ogg|pronunciation}}) is a state located in...
; Help links
Setting {{para|help|no}} disables the &quot;help/info&quot; links. If this is done the template {{tlx|inline audio}} ''must'' be shown on the page.
: &lt;code&gt;&lt;nowiki&gt;'''Alabama''' ({{Audio|en-us-Alabama.ogg|pronunciation of &quot;Alabama&quot;|help=no}})&lt;/nowiki&gt;&lt;/code&gt;
: → '''Alabama''' ({{Audio|en-us-Alabama.ogg|pronunciation|help=no}})
: Todo: add {{tlx|inline audio}} to this page.
=== Microformat ===
{{UF-audio}}
=== See also ===
{{Audio templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- PLEASE ADD CATEGORIES BELOW THIS LINE: --&gt;
[[Category:Audio templates]]
[[Category:Templates that add a tracking category]]
}}&lt;/includeonly&gt;</text>
<sha1>e5769lve1k89yjm9niif05h439cbznm</sha1>
</revision>
</page>
<page>
<title>Template:Audio templates</title>
<ns>10</ns>
<id>41150853</id>
<revision>
<id>800006300</id>
<parentid>791320255</parentid>
<timestamp>2017-09-11T02:54:57Z</timestamp>
<contributor>
<username>Nardog</username>
<id>5908908</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="982">{{navbar|Audio templates|plain=1|style=float:right}}
* {{tl|Audio}}, for inline sounds like pronunciations (with a help link)
* {{tl|Audio-nohelp}}, without a help link
* {{tl|Inline audio}}, which adds notice with link to [[Wikipedia:Media help]]
* {{tl|Audio-IPA}}, a variant of this template to be used with [[International Phonetic Alphabet|IPA]] notation.
* {{tl|Listen}}, which sets an audio clip off from the main text
* {{tl|Listen MIDI}}, for MIDI files.
* {{tl|Multi-listen start}}, {{tl|Multi-listen item}}, and {{tl|Multi-listen end}}, templates used to list multiple audio files in the same box
* {{tl|Pronunciation}}, a shortcut for &lt;code&gt;&lt;nowiki&gt;&lt;small&gt;{{&lt;/nowiki&gt;[[Template:Audio|Audio]]&lt;nowiki&gt;|soundfile.ogg|pronunciation}}&lt;/small&gt;&lt;/nowiki&gt;&lt;/code&gt;
* {{tl|Spoken}}, which adds only the small icon with no links&lt;noinclude&gt;
==Usage==
This template is intended to provide a consistent &quot;See also&quot; for audio templates.
[[Category:Related-topic templates]]
&lt;/noinclude&gt;</text>
<sha1>iu682o7mnmld95wzo8rwdcyxp11867p</sha1>
</revision>
</page>
<page>
<title>Template:Duration</title>
<ns>10</ns>
<id>28299910</id>
<revision>
<id>781770271</id>
<parentid>756214702</parentid>
<timestamp>2017-05-23T03:55:32Z</timestamp>
<contributor>
<username>Jc86035</username>
<id>17245768</id>
</contributor>
<comment>replaced with a Lua module for ease of use</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="60">{{#invoke:hms|main}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>qxtjptw5pzwl9z2beorjilc560gjxxt</sha1>
</revision>
</page>
<page>
<title>Template:Longitem</title>
<ns>10</ns>
<id>38040101</id>
<revision>
<id>718758673</id>
<parentid>718071292</parentid>
<timestamp>2016-05-05T12:44:24Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<comment>I have to sort this out; adding tracking category.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="230">&lt;div style=&quot;padding:0.1em 0;line-height:1.2em;{{{style|}}}&quot;&gt;{{{1}}}&lt;/div&gt;&lt;includeonly&gt;{{#if:{{{2|}}}|[[Category:Pages using Template:Longitem with unnamed style parameter]]}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>druaduufanfoh3rf6p66canulwflngz</sha1>
</revision>
</page>
<page>
<title>Template:Microformat message</title>
<ns>10</ns>
<id>43760155</id>
<revision>
<id>819682506</id>
<parentid>718764075</parentid>
<timestamp>2018-01-10T18:59:26Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Microformat message]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed ac...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1732">The [[Help:HTML in wikitext|HTML mark-up]] produced by this template includes {{#if:{{{type|}}} |{{{type}}} |an [[{{{format}}} microformat]]}} that makes {{{data}}} readily [[Parsing|parsable]] by computer programs. This aids tasks such as the cataloguing of articles and maintenance of databases. For more information about the use of microformats on Wikipedia, please visit [[Wikipedia:WikiProject Microformats|the Microformat WikiProject]].&lt;!--
--&gt;{{#if:{{{subtemplates&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
| &lt;div style=&quot;margin-top:0.5em;margin-bottom:0.65em;&quot;&gt;
; {{big|Subtemplates}}
{{{subtemplates}}}
'''''Please do not remove instances of these subtemplates.'''''
&lt;/div&gt;}}&lt;!--
--&gt;{{#if:{{{subsection1|}}}
| &lt;div style=&quot;margin-top:0.5em;margin-bottom:0.65em;&quot;&gt;&lt;!--(newline in case subsection begins with heading:)--&gt;
{{{subsection1}}}
&lt;/div&gt;}}&lt;!--
--&gt;{{#if:{{{1&lt;includeonly&gt;|&lt;/includeonly&gt;}}} &lt;!--(i.e. if at least one unnamed parameter supplied:)--&gt;
| &lt;div style=&quot;margin-top:0.5em;margin-bottom:0.65em;&quot;&gt;
; {{big|Classes used}}
The [[HTML attribute|HTML class]]es this microformat uses include:
: {{hlist
|item_style=font-size:110%;{{{itemstyle|}}}
|{{{1}}} |{{{2&lt;includeonly&gt;|&lt;/includeonly&gt;}}} |{{{3|&lt;noinclude&gt;{{nobold|……}}&lt;/noinclude&gt;}}}
|{{{4|}}} |{{{5|}}} |{{{6|}}} |{{{7|}}} |{{{8|}}} |{{{9|}}} |{{{10|}}} |{{{11|}}} |{{{12|}}} |{{{13|}}} |{{{14|}}} |{{{15|}}} |{{{16|}}} |{{{17|}}} |{{{18|}}} |{{{19|}}} |{{{20|}}}
}} &lt;/div&gt;
{{longitem|style=line-height:1.3em|'''''Please do not rename or remove these classes{{#if:{{{nocollapse&lt;includeonly&gt;|&lt;/includeonly&gt;}}} |&lt;br/&gt;nor collapse nested elements which use them}}.'''''}}&lt;!--
--&gt;}}&lt;!--(end #if:[1])--&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>7u4d3besbjknp3smbj41h8wvf8chwy7</sha1>
</revision>
</page>
<page>
<title>Template:UF-audio</title>
<ns>10</ns>
<id>26836751</id>
<revision>
<id>638419523</id>
<parentid>625131054</parentid>
<timestamp>2014-12-16T23:04:26Z</timestamp>
<contributor>
<username>Jdaloner</username>
<id>4460044</id>
</contributor>
<minor/>
<comment>Updated template calls.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1172">{{Microformat message
| format = hAudio
| data = an audio recording's details
| subtemplates =
Date-of-publication (&quot;published&quot;) information will only be included in the microformat if {{tl|start date}} (or, where appropriate, {{tl|start date and age}}) is used in a parent infobox/template. Do not, however, use {{tlf|start date}} or {{tlf|start date and age}} [[Wikipedia:WikiProject Microformats/dates|if a date before 1583&amp;nbsp;CE is involved]].
Use {{tl|duration}} to specify the duration/length of a recording. For instance, if the recording's duration is 3 minutes 45 seconds, use {{tlc|duration|m{{=}}3|s{{=}}45}} (which appears as: {{duration|m=3|s=45}}). If needed, {{para|h}} may be included to specify a number of hours.
|haudio |fn |album |description |category |contributor |duration |h |item |min |photo |position |price |published |s
| nocollapse = on
}}&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|doc | |{{#ifeq:{{SUBPAGENAME}}|sandbox | |[[Category:Templates generating hAudio microformats|{{PAGENAME}}]]}} }}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation |content={{Microformat message templates}}}}
[[Category:Microformat (uF) message templates]]
&lt;/noinclude&gt;</text>
<sha1>h32h0iivhk8eap8pnyzl3p6jy0xizup</sha1>
</revision>
</page>
<page>
<title>Module:For</title>
<ns>828</ns>
<id>50413050</id>
<revision>
<id>732878218</id>
<parentid>726039274</parentid>
<timestamp>2016-08-03T20:53:03Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Updated from sandbox: categorizes as unusual &quot;other uses&quot; by defaulting as well as typed-out &quot;other uses&quot;</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="982">local mArguments --initialize lazily
local yesno = require('Module:Yesno')
local mHatlist = require('Module:Hatnote list')
local mHatnote = require('Module:Hatnote')
local p = {}
--Implements {{For}} from the frame
--uses capitalized &quot;For&quot; to avoid collision with Lua reserved word &quot;for&quot;
function p.For (frame)
mArguments = require('Module:Arguments')
return p._For(mArguments.getArgs(frame))
end
--Implements {{For}} but takes a manual arguments table
function p._For (args)
local use = args[1]
local category = ''
if (not use or use == 'other uses') and
(not args.category or yesno(args.category)) then
category = '[[Category:Hatnote templates using unusual parameters]]'
end
local pages = {}
function two (a, b) return a, b, 1 end --lets us run ipairs from 2
for k, v in two(ipairs(args)) do table.insert(pages, v) end
return mHatnote._hatnote(
mHatlist.forSeeTableToString({{use = use, pages = pages}}),
{selfref = args.selfref}
) .. category
end
return p</text>
<sha1>7cw7zffjg8qhj4fig5sqk2xg5uphgx0</sha1>
</revision>
</page>
<page>
<title>Module:Hatnote</title>
<ns>828</ns>
<id>42498502</id>
<revision>
<id>779487706</id>
<parentid>726656423</parentid>
<timestamp>2017-05-09T05:20:32Z</timestamp>
<contributor>
<username>JJMC89</username>
<id>24812038</id>
</contributor>
<comment>Add navigation-not-searchable class per [[Special:Permalink/779475248#Add navigation-not-searchable class|request]] (also see [[phab:T164781|T164781]])</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="6703">--------------------------------------------------------------------------------
-- Module:Hatnote --
-- --
-- This module produces hatnote links and links to related articles. It --
-- implements the {{hatnote}} and {{format link}} meta-templates and includes --
-- helper functions for other Lua hatnote modules. --
--------------------------------------------------------------------------------
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local mArguments -- lazily initialise [[Module:Arguments]]
local yesno -- lazily initialise [[Module:Yesno]]
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getArgs(frame)
-- Fetches the arguments from the parent frame. Whitespace is trimmed and
-- blanks are removed.
mArguments = require('Module:Arguments')
return mArguments.getArgs(frame, {parentOnly = true})
end
local function removeInitialColon(s)
-- Removes the initial colon from a string, if present.
return s:match('^:?(.*)')
end
function p.findNamespaceId(link, removeColon)
-- Finds the namespace id (namespace number) of a link or a pagename. This
-- function will not work if the link is enclosed in double brackets. Colons
-- are trimmed from the start of the link by default. To skip colon
-- trimming, set the removeColon parameter to false.
checkType('findNamespaceId', 1, link, 'string')
checkType('findNamespaceId', 2, removeColon, 'boolean', true)
if removeColon ~= false then
link = removeInitialColon(link)
end
local namespace = link:match('^(.-):')
if namespace then
local nsTable = mw.site.namespaces[namespace]
if nsTable then
return nsTable.id
end
end
return 0
end
function p.formatPages(...)
-- Formats a list of pages using formatLink and returns it as an array. Nil
-- values are not allowed.
local pages = {...}
local ret = {}
for i, page in ipairs(pages) do
ret[i] = p._formatLink(page)
end
return ret
end
function p.formatPageTables(...)
-- Takes a list of page/display tables and returns it as a list of
-- formatted links. Nil values are not allowed.
local pages = {...}
local links = {}
for i, t in ipairs(pages) do
checkType('formatPageTables', i, t, 'table')
local link = t[1]
local display = t[2]
links[i] = p._formatLink(link, display)
end
return links
end
function p.makeWikitextError(msg, helpLink, addTrackingCategory, title)
-- Formats an error message to be returned to wikitext. If
-- addTrackingCategory is not false after being returned from
-- [[Module:Yesno]], and if we are not on a talk page, a tracking category
-- is added.
checkType('makeWikitextError', 1, msg, 'string')
checkType('makeWikitextError', 2, helpLink, 'string', true)
yesno = require('Module:Yesno')
title = title or mw.title.getCurrentTitle()
-- Make the help link text.
local helpText
if helpLink then
helpText = ' ([[' .. helpLink .. '|help]])'
else
helpText = ''
end
-- Make the category text.
local category
if not title.isTalkPage and yesno(addTrackingCategory) ~= false then
category = 'Hatnote templates with errors'
category = string.format(
'[[%s:%s]]',
mw.site.namespaces[14].name,
category
)
else
category = ''
end
return string.format(
'&lt;strong class=&quot;error&quot;&gt;Error: %s%s.&lt;/strong&gt;%s',
msg,
helpText,
category
)
end
function p.disambiguate(page, disambiguator)
-- Formats a page title with a disambiguation parenthetical,
-- i.e. &quot;Example&quot; → &quot;Example (disambiguation)&quot;.
checkType('disambiguate', 1, page, 'string')
checkType('disambiguate', 2, disambiguator, 'string', true)
disambiguator = disambiguator or 'disambiguation'
return string.format('%s (%s)', page, disambiguator)
end
--------------------------------------------------------------------------------
-- Format link
--
-- Makes a wikilink from the given link and display values. Links are escaped
-- with colons if necessary, and links to sections are detected and displayed
-- with &quot; § &quot; as a separator rather than the standard MediaWiki &quot;#&quot;. Used in
-- the {{format hatnote link}} template.
--------------------------------------------------------------------------------
function p.formatLink(frame)
local args = getArgs(frame)
local link = args[1]
local display = args[2]
if not link then
return p.makeWikitextError(
'no link specified',
'Template:Format hatnote link#Errors',
args.category
)
end
return p._formatLink(link, display)
end
function p._formatLink(link, display)
checkType('_formatLink', 1, link, 'string')
checkType('_formatLink', 2, display, 'string', true)
-- Remove the initial colon for links where it was specified manually.
link = removeInitialColon(link)
-- Find whether a faux display value has been added with the {{!}} magic
-- word.
if not display then
local prePipe, postPipe = link:match('^(.-)|(.*)$')
link = prePipe or link
display = postPipe
end
-- Find the display value.
if not display then
local page, section = link:match('^(.-)#(.*)$')
if page then
display = page .. ' §&amp;nbsp;' .. section
end
end
-- Assemble the link.
if display then
return string.format(
'[[:%s|%s]]',
string.gsub(link, '|(.*)$', ''), --display overwrites manual piping
display
)
else
return string.format('[[:%s]]', link)
end
end
--------------------------------------------------------------------------------
-- Hatnote
--
-- Produces standard hatnote text. Implements the {{hatnote}} template.
--------------------------------------------------------------------------------
function p.hatnote(frame)
local args = getArgs(frame)
local s = args[1]
local options = {}
if not s then
return p.makeWikitextError(
'no text specified',
'Template:Hatnote#Errors',
args.category
)
end
options.extraclasses = args.extraclasses
options.selfref = args.selfref
return p._hatnote(s, options)
end
function p._hatnote(s, options)
checkType('_hatnote', 1, s, 'string')
checkType('_hatnote', 2, options, 'table', true)
options = options or {}
local classes = {'hatnote', 'navigation-not-searchable'}
local extraclasses = options.extraclasses
local selfref = options.selfref
if type(extraclasses) == 'string' then
classes[#classes + 1] = extraclasses
end
if selfref then
classes[#classes + 1] = 'selfref'
end
return string.format(
'&lt;div role=&quot;note&quot; class=&quot;%s&quot;&gt;%s&lt;/div&gt;',
table.concat(classes, ' '),
s
)
end
return p</text>
<sha1>c5z31x97gktc3q7nnp8mf48t01l4qst</sha1>
</revision>
</page>
<page>
<title>Module:Hatnote list</title>
<ns>828</ns>
<id>50085079</id>
<revision>
<id>726904710</id>
<parentid>719917336</parentid>
<timestamp>2016-06-25T06:18:53Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Updated from sandbox</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="6873">--------------------------------------------------------------------------------
-- Module:Hatnote list --
-- --
-- This module produces and formats lists for use in hatnotes. In particular, --
-- it implements the for-see list, i.e. lists of &quot;For X, see Y&quot; statements, --
-- as used in {{about}}, {{redirect}}, and their variants. Also introduced --
-- are andList &amp; orList helpers for formatting lists with those conjunctions. --
--------------------------------------------------------------------------------
local mArguments --initialize lazily
local mHatnote = require('Module:Hatnote')
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
--------------------------------------------------------------------------------
-- List stringification helper functions
--
-- These functions are used for stringifying lists, usually page lists inside
-- the &quot;Y&quot; portion of &quot;For X, see Y&quot; for-see items.
--------------------------------------------------------------------------------
--default options table used across the list stringification functions
local stringifyListDefaultOptions = {
conjunction = &quot;and&quot;,
separator = &quot;,&quot;,
altSeparator = &quot;;&quot;,
space = &quot; &quot;,
formatted = false
}
-- Stringifies a list generically; probably shouldn't be used directly
function stringifyList(list, options)
-- Type-checks, defaults, and a shortcut
checkType(&quot;stringifyList&quot;, 1, list, &quot;table&quot;)
if #list == 0 then return nil end
checkType(&quot;stringifyList&quot;, 2, options, &quot;table&quot;, true)
options = options or {}
for k, v in pairs(stringifyListDefaultOptions) do
if options[k] == nil then options[k] = v end
end
local s = options.space
-- Format the list if requested
if options.formatted then list = mHatnote.formatPages(unpack(list)) end
-- Set the separator; if any item contains it, use the alternate separator
local separator = options.separator
--searches display text only
function searchDisp(t, f)
return string.find(string.sub(t, (string.find(t, '|') or 0) + 1), f)
end
for k, v in pairs(list) do
if searchDisp(v, separator) then
separator = options.altSeparator
break
end
end
-- Set the conjunction, apply Oxford comma, and force a comma if #1 has &quot;§&quot;
local conjunction = s .. options.conjunction .. s
if #list == 2 and searchDisp(list[1], &quot;§&quot;) or #list &gt; 2 then
conjunction = separator .. conjunction
end
-- Return the formatted string
return mw.text.listToText(list, separator .. s, conjunction)
end
--DRY function
function conjList (conj, list, fmt)
return stringifyList(list, {conjunction = conj, formatted = fmt})
end
-- Stringifies lists with &quot;and&quot; or &quot;or&quot;
function p.andList (...) return conjList(&quot;and&quot;, ...) end
function p.orList (...) return conjList(&quot;or&quot;, ...) end
--------------------------------------------------------------------------------
-- For see
--
-- Makes a &quot;For X, see [[Y]].&quot; list from raw parameters. Intended for the
-- {{about}} and {{redirect}} templates and their variants.
--------------------------------------------------------------------------------
--default options table used across the forSee family of functions
local forSeeDefaultOptions = {
andKeyword = 'and',
title = mw.title.getCurrentTitle().text,
otherText = 'other uses',
forSeeForm = 'For %s, see %s.'
}
--Collapses duplicate punctuation
function punctuationCollapse (text)
local replacements = {
[&quot;%.%.$&quot;] = &quot;.&quot;,
[&quot;%?%.$&quot;] = &quot;?&quot;,
[&quot;%!%.$&quot;] = &quot;!&quot;,
[&quot;%.%]%]%.$&quot;] = &quot;.]]&quot;,
[&quot;%?%]%]%.$&quot;] = &quot;?]]&quot;,
[&quot;%!%]%]%.$&quot;] = &quot;!]]&quot;
}
for k, v in pairs(replacements) do text = string.gsub(text, k, v) end
return text
end
-- Structures arguments into a table for stringification, &amp; options
function p.forSeeArgsToTable (args, from, options)
-- Type-checks and defaults
checkType(&quot;forSeeArgsToTable&quot;, 1, args, 'table')
checkType(&quot;forSeeArgsToTable&quot;, 2, from, 'number', true)
from = from or 1
checkType(&quot;forSeeArgsToTable&quot;, 3, options, 'table', true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- maxArg's gotten manually because getArgs() and table.maxn aren't friends
local maxArg = 0
for k, v in pairs(args) do
if type(k) == 'number' and k &gt; maxArg then maxArg = k end
end
-- Structure the data out from the parameter list:
-- * forTable is the wrapper table, with forRow rows
-- * Rows are tables of a &quot;use&quot; string &amp; a &quot;pages&quot; table of pagename strings
-- * Blanks are left empty for defaulting elsewhere, but can terminate list
local forTable = {}
local i = from
local terminated = false
-- Loop to generate rows
repeat
-- New empty row
local forRow = {}
-- On blank use, assume list's ended &amp; break at end of this loop
forRow.use = args[i]
if not args[i] then terminated = true end
-- New empty list of pages
forRow.pages = {}
-- Insert first pages item if present
table.insert(forRow.pages, args[i + 1])
-- If the param after next is &quot;and&quot;, do inner loop to collect params
-- until the &quot;and&quot;'s stop. Blanks are ignored: &quot;1|and||and|3&quot; → {1, 3}
while args[i + 2] == options.andKeyword do
if args[i + 3] then
table.insert(forRow.pages, args[i + 3])
end
-- Increment to next &quot;and&quot;
i = i + 2
end
-- Increment to next use
i = i + 2
-- Append the row
table.insert(forTable, forRow)
until terminated or i &gt; maxArg
return forTable
end
-- Stringifies a table as formatted by forSeeArgsToTable
function p.forSeeTableToString (forSeeTable, options)
-- Type-checks and defaults
checkType(&quot;forSeeTableToString&quot;, 1, forSeeTable, &quot;table&quot;)
checkType(&quot;forSeeTableToString&quot;, 2, options, &quot;table&quot;, true)
options = options or {}
for k, v in pairs(forSeeDefaultOptions) do
if options[k] == nil then options[k] = v end
end
-- Stringify each for-see item into a list
local strList = {}
for k, v in pairs(forSeeTable) do
local useStr = v.use or options.otherText
local pagesStr = p.andList(v.pages, true) or
mHatnote._formatLink(mHatnote.disambiguate(options.title))
local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr)
forSeeStr = punctuationCollapse(forSeeStr)
table.insert(strList, forSeeStr)
end
-- Return the concatenated list
return table.concat(strList, ' ')
end
-- Produces a &quot;For X, see [[Y]]&quot; string from arguments. Expects index gaps
-- but not blank/whitespace values. Ignores named args and args &lt; &quot;from&quot;.
function p._forSee (args, from, options)
local forSeeTable = p.forSeeArgsToTable(args, from, options)
return p.forSeeTableToString(forSeeTable, options)
end
-- As _forSee, but uses the frame.
function p.forSee (frame, from, options)
mArguments = require('Module:Arguments')
return p._forSee(mArguments.getArgs(frame), from, options)
end
return p</text>
<sha1>9xow4swjoccg1c9n9r6xhfvxgci3xr1</sha1>
</revision>
</page>
<page>
<title>Module:Hms</title>
<ns>828</ns>
<id>54107625</id>
<revision>
<id>804708734</id>
<parentid>782383690</parentid>
<timestamp>2017-10-10T17:19:53Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Module:Hms]]&quot;: [[WP:High-risk templates|High-risk module]] ([Edit=Require template editor access] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3119">local p = {}
function p._error( error_str )
return '[[Category:Duration with input error]]&lt;strong class=&quot;error&quot;&gt;Error in Module:Hms: ' .. error_str .. '&lt;/strong&gt;'
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {wrappers = {'Template:Duration', 'Template:Duration/sandbox'}})
local tmp = args.duration or args[1] or ''
local duration = {}
if tonumber(args[1]) or args[2] or args[3] then
if args[4] then return p._error('Parameter number 4 should not be specified') end
if not args[1] or args[1] == '' then
duration = {args[2] or 0, args[3] or 0}
else
duration = {args[1], args[2] or 0, args[3] or 0}
end
tmp = nil
for k, v in ipairs(duration) do
duration[k] = tonumber(v)
if not duration[k] then return p._error('Invalid values') end
end
elseif args.h or args.m or args.s then
if not args.h or args.h == '' then
duration = {args.m or 0, args.s or 0}
else
duration = {args.h, args.m or 0, args.s or 0}
end
tmp = nil
for k, v in ipairs(duration) do
duration[k] = tonumber(v)
if not duration[k] then return p._error('Invalid values') end
end
else
if mw.ustring.find(tmp, 'class=&quot;duration&quot;', 1, yes) then return tmp end -- if there is already a microformat, don't do anything
duration = mw.text.split(mw.ustring.match(tmp, '%d*:?%d+:%d+%.?%d*') or '', ':') -- split into table
if duration[4] then return p._error('Maximum of two colons allowed') end
for k, v in ipairs(duration) do duration[k] = tonumber(v) or 0 end -- convert values to numbers
end
if duration[3] then
if (duration[1] + duration[2] + duration[3]) == 0 then return nil end
if (duration[1] ~= math.ceil(duration[1])) or (duration[2] ~= math.ceil(duration[2])) then return p._error('Hours and minutes values must be integers') end
if duration[3] &gt;= 60 then return p._error('Seconds value must be less than 60') end
if duration[2] &gt;= 60 then return p._error('Minutes value must be less than 60 if hours value is specified') end
if duration[2] &lt; 10 then duration[2] = '0'..duration[2] end -- zero padding
if duration[3] &lt; 10 then duration[3] = '0'..duration[3] end
duration = '&lt;span class=&quot;duration&quot;&gt;&lt;span class=&quot;h&quot;&gt;' .. duration[1] .. '&lt;/span&gt;:&lt;span class=&quot;min&quot;&gt;' .. duration[2] .. '&lt;/span&gt;:&lt;span class=&quot;s&quot;&gt;' .. duration[3] .. '&lt;/span&gt;&lt;/span&gt;'
elseif duration[2] then
if (duration[1] + duration[2]) == 0 then return nil end
if duration[1] ~= math.ceil(duration[1]) then return p._error('Hours and minutes values must be integers') end
if duration[2] &gt;= 60 then return p._error('Seconds value must be less than 60') end
if duration[2] &lt; 10 then duration[2] = '0'..duration[2] end -- zero padding
duration = '&lt;span class=&quot;duration&quot;&gt;&lt;span class=&quot;min&quot;&gt;' .. duration[1] .. '&lt;/span&gt;:&lt;span class=&quot;s&quot;&gt;' .. duration[2] .. '&lt;/span&gt;&lt;/span&gt;'
else
duration = ''
end
if tmp and tmp ~= '' then
if duration ~= '' then tmp = mw.ustring.gsub(tmp, '%d*:?%d+:%d+%.?%d*', duration, 1) else tmp = tmp .. ' [[Category:Duration without hAudio microformat]]' end
else
if duration ~= '' then tmp = duration end
end
return tmp
end
return p</text>
<sha1>g5z9f4rj31p9c8vovwnw6kqe02amw7k</sha1>
</revision>
</page>
<page>
<title>Template:8ball</title>
<ns>10</ns>
<id>21487009</id>
<revision>
<id>721407027</id>
<parentid>721351031</parentid>
<timestamp>2016-05-21T17:04:42Z</timestamp>
<contributor>
<username>Andy M. Wang</username>
<id>516856</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/Andy M. Wang|Andy M. Wang]] ([[User talk:Andy M. Wang|talk]]) to last version by EoRdE6</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="130">[[File:8 ball icon.svg|17px]]&amp;nbsp;'''The {{{1|CheckUser}}} Magic 8-Ball says:''' {{{2|}}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>i0egmeec68uzy1094lq4zqk34pat202</sha1>
</revision>
</page>
<page>
<title>Template:A note</title>
<ns>10</ns>
<id>37551318</id>
<revision>
<id>782462799</id>
<parentid>609665782</parentid>
<timestamp>2017-05-27T02:06:44Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<minor/>
<comment>adjacent text {{{1}}} or &quot;Note&quot; is sufficient alt text</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="226">[[File:Pictogram voting info.svg|16px|link=|alt=]]&amp;nbsp;'''{{{{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|Note}}:'''&lt;noinclude&gt;
{{Documentation}}
&lt;!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES TO THE /doc SUBPAGE, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>08ya9uua0ns4yyj2up247vqe9j5pzg0</sha1>
</revision>
</page>
<page>
<title>Template:Accepted</title>
<ns>10</ns>
<id>10405419</id>
<revision>
<id>810134312</id>
<parentid>793140967</parentid>
<timestamp>2017-11-13T14:55:08Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Accepted]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="206">[[Image:Symbol confirmed.svg|20px|link=|alt=]] '''{{{1|Accepted}}}'''&lt;noinclude&gt;{{documentation|content={{Template:Resolved mark/doc|type=checkmark}}}}
&lt;!--Categories go on the /doc subpage --&gt;
&lt;/noinclude&gt;</text>
<sha1>l5v9sry0akhc12uf1rrggxs4g4yam2b</sha1>
</revision>
</page>
<page>
<title>Template:Added</title>
<ns>10</ns>
<id>19972595</id>
<revision>
<id>782449450</id>
<parentid>721406854</parentid>
<timestamp>2017-05-27T00:16:50Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<minor/>
<comment>minimal alt attribute for linked GFDL decorative image</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="147">[[File:Crystal Clear action edit add.png|16px|alt=plus]] '''{{{{{|safesubst:}}}ucfirst:{{{1|Added}}}}}'''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>38ueoxtu2ezvsv1bmatvvvdu5ifherp</sha1>
</revision>
</page>
<page>
<title>Template:Administrator note</title>
<ns>10</ns>
<id>13132168</id>
<revision>
<id>579820581</id>
<parentid>544687475</parentid>
<timestamp>2013-11-02T02:31:10Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Administrator note: Enable access by template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="178">{{{{{|safesubst:}}}A note|Administrator note}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>8kfwwr9ebzxtmnzldwllwcta7rs32vs</sha1>
</revision>
</page>
<page>
<title>Template:Agree</title>
<ns>10</ns>
<id>20499255</id>
<revision>
<id>810134364</id>
<parentid>804536370</parentid>
<timestamp>2017-11-13T14:55:35Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Agree]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="663">[[Image:Symbol confirmed.svg|20px|link=|alt=]] '''{{{1|Agree}}}''' &lt;noinclude&gt;{{documentation|content={{Template:Resolved mark/doc |type=checkmark|where=at [[WP:Requests for adminship]], [[WP:In the news/Candidates]], [[WP:Featured article candidates]], various [[WP:Noticeboards]] and other formal processes; it should {{em|not}} be used in [[WP:RFC]]s, [[WP:XFD]]s, or other consensus discussions, which are not votes|novoting=y|para=The template accepts a single parameter (unnamed or given as {{para|1}}) that changes the word &quot;Agree&quot; to the text specified in the parameter, e.g. &quot;Tentatively agree&quot;.}}}}
&lt;!--Categories go on the /doc subpage --&gt;
&lt;/noinclude&gt;</text>
<sha1>acj8n6o5umlbzfl6lwtktie2tnx9yh5</sha1>
</revision>
</page>
<page>
<title>Template:Already declined</title>
<ns>10</ns>
<id>28602810</id>
<revision>
<id>810136236</id>
<parentid>782407398</parentid>
<timestamp>2017-11-13T15:08:32Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Already declined]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="399">[[File:Pictogram voting delete.svg|20px|link=|alt=]] '''{{ucfirst:{{{1|Already declined}}}}}'''&lt;!--template:already declined--&gt;&lt;noinclude&gt;{{documentation|content=
==Usage==
:You may either use {{tlx|Already declined}} by itself for the default message or you may add a custom message as an optional parameter.
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>3rkyql00ubhknd77984lqyl77ikwsx4</sha1>
</revision>
</page>
<page>
<title>Template:Already done</title>
<ns>10</ns>
<id>17589005</id>
<revision>
<id>810136780</id>
<parentid>776609908</parentid>
<timestamp>2017-11-13T15:11:37Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Already done]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="132">[[File:U2713.svg|18px|link=|alt=]] '''{{{{{|safesubst:}}}ucfirst:{{{1|Already done}}}}}'''&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>55st7n7tqd1r73ch0nma7duf8n3zbix</sha1>
</revision>
</page>
<page>
<title>Template:Approved</title>
<ns>10</ns>
<id>17839180</id>
<revision>
<id>776610253</id>
<parentid>776592119</parentid>
<timestamp>2017-04-22T03:13:57Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>Per [[Wikipedia:Alternative text for images#Examples]], the icon is purely decorative and does not need alt text.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="137">{{{{{|safesubst:}}}ns0||[[Image:Symbol confirmed.svg|20px|link=|alt=]] '''{{{1|Approved}}}'''}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>du4dxb7ycmif600c0j6138stgxprrg2</sha1>
</revision>
</page>
<page>
<title>Template:Archive now</title>
<ns>10</ns>
<id>52869973</id>
<revision>
<id>810204876</id>
<parentid>759995331</parentid>
<timestamp>2017-11-13T22:47:53Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Archive now]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="142">[[File:Pictogram voting comment.svg|20px|link=|alt=]] ''{{grey|Requesting immediate archiving...}}''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>7w6qtp15yqcfqt2nz3l20590ed2mqtq</sha1>
</revision>
</page>
<page>
<title>Template:Autp</title>
<ns>10</ns>
<id>21241169</id>
<revision>
<id>810135401</id>
<parentid>782406926</parentid>
<timestamp>2017-11-13T15:03:15Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Autp]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="240">:[[File:Yes check.svg|20px|link=|alt=]] '''{{ucfirst:{{{1|Answered on user's talk page.}}}}}'''&lt;!--template:autp--&gt;&lt;noinclude&gt;
{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>84i55hkzybpbowiduykm0gy1qj1hcx1</sha1>
</revision>
</page>
<page>
<title>Template:Await</title>
<ns>10</ns>
<id>35323448</id>
<revision>
<id>810204137</id>
<parentid>549072838</parentid>
<timestamp>2017-11-13T22:42:28Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Await]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="178">[[File:Pictogram voting wait.svg|{{#if:{{{1|}}}|{{{1}}}|20}}px|alt=Clock|link=]]&lt;span style=&quot;display:none&quot;&gt;C&lt;/span&gt;&lt;!--template:await--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>ta3o4rbwz4dhg4gcg2vxlmls9gg21fc</sha1>
</revision>
</page>
<page>
<title>Template:Awaiting</title>
<ns>10</ns>
<id>32157021</id>
<revision>
<id>810206584</id>
<parentid>635522941</parentid>
<timestamp>2017-11-13T23:00:12Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Awaiting]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="110">&lt;b style=&quot;color: #FB1; font-size: 1.8em;&quot;&gt;ω&lt;/b&gt;&amp;nbsp;'''Awaiting'''&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>s50tjo3flv4hw0fian8e601xytcjfv9</sha1>
</revision>
</page>
<page>
<title>Template:Awaitingadmin</title>
<ns>10</ns>
<id>31037622</id>
<revision>
<id>810204085</id>
<parentid>782463167</parentid>
<timestamp>2017-11-13T22:42:08Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Awaitingadmin]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="223">[[File:Pictogram voting wait violet.svg|20px|link=|alt=]]&amp;nbsp;'''Awaiting administrative action'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>q5zuq5fyt62pf1bd9uckxhfpbun227d</sha1>
</revision>
</page>
<page>
<title>Template:Aye/doc</title>
<ns>10</ns>
<id>23601748</id>
<revision>
<id>626487013</id>
<parentid>621424367</parentid>
<timestamp>2014-09-21T15:19:16Z</timestamp>
<contributor>
<username>ViperSnake151</username>
<id>403055</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="428">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
A simple template to be used in various to-do lists for easier organization of solved and unsolved issues.
Per [[MOS:ICONS]], it should not be used in mainspace.
===See also===
{{Check mark templates}}
{{Done/See also}}
&lt;includeonly&gt;
[[Category:Checkmark insertion templates]]
[[Category:Resolution templates]]
&lt;/includeonly&gt;</text>
<sha1>6knk7dx2kaijmdtc8371yb46oys0wrx</sha1>
</revision>
</page>
<page>
<title>Template:Bang</title>
<ns>10</ns>
<id>28100876</id>
<revision>
<id>810204829</id>
<parentid>782462172</parentid>
<timestamp>2017-11-13T22:47:28Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bang]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="142">[[Image:Symbol opinion vote.svg|20px|link=|alt=exclamation mark]]&lt;span style=&quot;display:none&quot;&gt;-&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>4z3ue16bgvkwdl3qe56l14rjffd3st1</sha1>
</revision>
</page>
<page>
<title>Template:Behaviour</title>
<ns>10</ns>
<id>42832413</id>
<revision>
<id>810180360</id>
<parentid>723451781</parentid>
<timestamp>2017-11-13T19:58:45Z</timestamp>
<contributor>
<username>Ymblanter</username>
<id>14596827</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Behaviour]]&quot;: [[WP:High-risk templates|Highly visible template]]: request at [[WP:RFPP]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="459">[[File:Symbol rename vote.svg|19px|link=|alt=]]&amp;nbsp;'''Behavioural evidence needs evaluation{{#if:{{{1|}}}|&amp;nbsp;{{{1}}}:|}}'''&lt;noinclude&gt;{{Documentation|content=&lt;!----&gt;
{{shortcut|Template:Behav|Template:Behavior}}
{{tlx|behav}} produces:
:{{behav}}
{{tlx|behav|2=before blocks are issued}} produces:
:{{behav|before blocks are issued}}
==See also==
{{Done/See also}}
}}
[[Category:Image with comment templates]]
[[Category:SPI templates]]&lt;/noinclude&gt;</text>
<sha1>kd80d91a5sht03w0do6wr0gc24xi71g</sha1>
</revision>
</page>
<page>
<title>Template:Blockedandtagged</title>
<ns>10</ns>
<id>42963901</id>
<revision>
<id>804536421</id>
<parentid>754804622</parentid>
<timestamp>2017-10-09T17:20:32Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Blockedandtagged]]&quot;: [[WP:High-risk templates|Highly visible template]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="118">[[Image:Artículo bueno-blue.svg|16px|link=|alt=]]&amp;nbsp;'''{{{1|Blocked and tagged}}}'''&lt;noinclude&gt;{{doc}}&lt;/noinclude&gt;</text>
<sha1>7qqy1wve5ex312uxdl8piow3buzunh7</sha1>
</revision>
</page>
<page>
<title>Template:Blockedtaggedclosing</title>
<ns>10</ns>
<id>40371760</id>
<revision>
<id>810134982</id>
<parentid>695540997</parentid>
<timestamp>2017-11-13T15:00:22Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Blockedtaggedclosing]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="354">[[File:Pictogram resolved.svg|18px|link=|alt=]] {{{1|All}}} sock{{#switch:{{{1|}}}|1|one|One= |#default=s}} blocked and tagged. Closing case. &lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Wikipedia administration templates]]
[[Category:Image with comment templates|{{PAGENAME}}]]
[[Category:SPI templates]]}}
&lt;/noinclude&gt;</text>
<sha1>tmwxur2krsxx0nuoaxqwhmb64hgessx</sha1>
</revision>
</page>
<page>
<title>Template:Blockedwithouttags</title>
<ns>10</ns>
<id>54742968</id>
<revision>
<id>810202039</id>
<parentid>793709099</parentid>
<timestamp>2017-11-13T22:27:44Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Blockedwithouttags]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="136">[[File:Candidato-Artículo bueno-blue.svg|16px|link=|alt=]] '''{{{1|Blocked without tags}}}'''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>5c86li6iwuo0kp8296g43x70eriyrus</sha1>
</revision>
</page>
<page>
<title>Template:Border-radius</title>
<ns>10</ns>
<id>28991697</id>
<revision>
<id>638540970</id>
<parentid>579826979</parentid>
<timestamp>2014-12-17T20:10:19Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>redundant</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="165">&lt;includeonly&gt;-moz-border-radius: {{{1|8px}}}; -webkit-border-radius: {{{1|8px}}}; border-radius: {{{1|8px}}};&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>doty6ybjg4ar0nlzdjhg0tvwez3y6d3</sha1>
</revision>
</page>
<page>
<title>Template:BotComment</title>
<ns>10</ns>
<id>8501268</id>
<revision>
<id>810206624</id>
<parentid>723450793</parentid>
<timestamp>2017-11-13T23:00:30Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:BotComment]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="215">[[File:Symbol dot dot dot.svg|20px|alt=|link=]]&amp;nbsp;'''Comment.'''&lt;noinclude&gt;{{documentation|content=
{{BAG Admin Tools}}
==See also==
{{Done/See also}}
[[Category:Wikipedia bot-related templates]]
}}&lt;/noinclude&gt;</text>
<sha1>e9asamqnlzlfqpz5pntnnilimdvoey5</sha1>
</revision>
</page>
<page>
<title>Template:BugFixed</title>
<ns>10</ns>
<id>30058926</id>
<revision>
<id>813905598</id>
<parentid>810206777</parentid>
<timestamp>2017-12-05T21:44:02Z</timestamp>
<contributor>
<username>Hellknowz</username>
<id>9790634</id>
</contributor>
<comment>expand doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1017">[[File:Green bug and broom.svg|28px|alt=|link=]] &amp;nbsp; {{#switch:{{{1|}}}
| NAB = '''Not a bug'''{{#if:{{{2|}}}| &amp;nbsp; ({{{2}}})}}
| onetime = '''One-time bug'''{{#if:{{{2|}}}| &amp;nbsp; ({{{2}}})}}
| dupe = '''Duplicate bug report'''{{#if:{{{2|}}}| &amp;nbsp; ({{{2}}})}}
| cannot = '''Rare unfixable corner-case'''{{#if:{{{2|}}}| &amp;nbsp; ({{{2}}})}}
| = '''Bug fixed'''
| #default = '''Bug fixed''' &amp;nbsp; ({{{1}}})
}}&lt;noinclude&gt;{{documentation|content=
==Usage==
*&lt;tt&gt;&lt;nowiki&gt;{{BugFixed}}&lt;/nowiki&gt;&lt;/tt&gt; → {{BugFixed}}
*&lt;tt&gt;&lt;nowiki&gt;{{BugFixed|NAB}}&lt;/nowiki&gt;&lt;/tt&gt; → {{BugFixed|NAB}}
*&lt;tt&gt;&lt;nowiki&gt;{{BugFixed|onetime}}&lt;/nowiki&gt;&lt;/tt&gt; → {{BugFixed|onetime}}
*&lt;tt&gt;&lt;nowiki&gt;{{BugFixed|dupe}}&lt;/nowiki&gt;&lt;/tt&gt; → {{BugFixed|dupe}}
*&lt;tt&gt;&lt;nowiki&gt;{{BugFixed|cannot}}&lt;/nowiki&gt;&lt;/tt&gt; → {{BugFixed|cannot}}
*&lt;tt&gt;&lt;nowiki&gt;{{BugFixed|custom text}}&lt;/nowiki&gt;&lt;/tt&gt; → {{BugFixed|custom text}}
==See also==
{{Done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
[[Category:Wikipedia article alerts|Τ]]
}}&lt;/noinclude&gt;</text>
<sha1>pnqi5z2f8380tosggdydbi33frcpzkz</sha1>
</revision>
</page>
<page>
<title>Template:Bug acknowledged</title>
<ns>10</ns>
<id>12007678</id>
<revision>
<id>810204961</id>
<parentid>582167844</parentid>
<timestamp>2017-11-13T22:48:34Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bug acknowledged]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="166">&lt;span style=&quot;background-color: Gold&quot;&gt;[[Image:Pictogram voting comment.svg|18px|link=|alt=|bottom]] '''Acknowledged'''&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>l065m1xtnmkr5klv3rm2n7nxsc4a1qj</sha1>
</revision>
</page>
<page>
<title>Template:Bug assigned</title>
<ns>10</ns>
<id>12007723</id>
<revision>
<id>810204712</id>
<parentid>621846140</parentid>
<timestamp>2017-11-13T22:46:30Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bug assigned]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="168">&lt;span style=&quot;background-color: LightSteelBlue&quot;&gt;[[File:Pictogram voting info.svg|18px|link=|alt=|bottom]] '''Assigned'''&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>19usz50zpvw78cxwrceupaevkbk9erk</sha1>
</revision>
</page>
<page>
<title>Template:Bug closed</title>
<ns>10</ns>
<id>12007771</id>
<revision>
<id>810203484</id>
<parentid>582168037</parentid>
<timestamp>2017-11-13T22:37:35Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bug closed]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="165">&lt;span style=&quot;background-color: Gainsboro&quot;&gt;[[Image:Pictogram voting neutral.svg|18px|link=|alt=|bottom]] '''Closed'''&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>t7kooyg6kteos4hi3nu1ducuv7mgcon</sha1>
</revision>
</page>
<page>
<title>Template:Bug confirmed</title>
<ns>10</ns>
<id>12007691</id>
<revision>
<id>810204999</id>
<parentid>582168192</parentid>
<timestamp>2017-11-13T22:48:52Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bug confirmed]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="164">&lt;span style=&quot;background-color: Khaki&quot;&gt;[[Image:Pictogram voting comment.svg|18px|link=|alt=|bottom]] '''Confirmed'''&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>7ds9l7d01gvcbbssl5atf9bsg9sbii9</sha1>
</revision>
</page>
<page>
<title>Template:Bug dupe</title>
<ns>10</ns>
<id>16728548</id>
<revision>
<id>810206668</id>
<parentid>782447705</parentid>
<timestamp>2017-11-13T23:00:51Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bug dupe]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="107">[[File:Symbol redirect vote2.svg|18px|alt=arrow]]&amp;nbsp;'''Dupe'''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>szxxf4ihd86a8n81niiz88tqh56e2l1</sha1>
</revision>
</page>
<page>
<title>Template:Bug feedback</title>
<ns>10</ns>
<id>12007622</id>
<revision>
<id>810205904</id>
<parentid>717161016</parentid>
<timestamp>2017-11-13T22:55:20Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bug feedback]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="172">&lt;span style=&quot;background-color: #fac&quot;&gt;[[Image:Pictogram voting question.svg|18px|link=|alt=|bottom]] '''Feedback required'''&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>qtppxf24cbav42qmxkkjtvrlvt6k5lf</sha1>
</revision>
</page>
<page>
<title>Template:Bug new</title>
<ns>10</ns>
<id>12007522</id>
<revision>
<id>810203540</id>
<parentid>717161174</parentid>
<timestamp>2017-11-13T22:37:55Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bug new]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="157">&lt;span style=&quot;background-color: #fb8&quot;&gt;[[Image:Pictogram voting neutral.svg|18px|link=|alt=|bottom]] '''New'''&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>0y0aw45qhsxrnpb0uznpsw4ebizhfsg</sha1>
</revision>
</page>
<page>
<title>Template:Bug pending</title>
<ns>10</ns>
<id>31569334</id>
<revision>
<id>810201911</id>
<parentid>688581109</parentid>
<timestamp>2017-11-13T22:26:52Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bug pending]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="187">&lt;span style=&quot;background-color: LightGreen; color: Fuchsia&quot;&gt;[[File:Pictogram voting keep.svg|18px|link=|alt=|bottom]] '''{{{1|Pending}}}'''&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>geqca91773nzagaqogm8ql557f68weq</sha1>
</revision>
</page>
<page>
<title>Template:Bug resolved</title>
<ns>10</ns>
<id>12007756</id>
<revision>
<id>810201981</id>
<parentid>621835906</parentid>
<timestamp>2017-11-13T22:27:21Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bug resolved]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="164">&lt;span style=&quot;background-color: LightGreen&quot;&gt;[[File:Pictogram voting keep.svg|18px|link=|alt=|bottom]] '''Resolved'''&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>i0jyvut2v3zh3enwyhim4p343gmmcy8</sha1>
</revision>
</page>
<page>
<title>Template:Bulb</title>
<ns>10</ns>
<id>35323363</id>
<revision>
<id>804536428</id>
<parentid>776602925</parentid>
<timestamp>2017-10-09T17:20:32Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bulb]]&quot;: [[WP:High-risk templates|Highly visible template]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="158">[[File:Bulbgraph.svg|{{{1|20}}}px|alt=Light bulb icon|link=]]&lt;span style=&quot;display:none&quot;&gt;B&lt;/span&gt;&lt;!--template:bulb--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>8v5j7hsmnkx88i27yqvoj4vv6zt2qde</sha1>
</revision>
</page>
<page>
<title>Template:Bulb2</title>
<ns>10</ns>
<id>39007849</id>
<revision>
<id>810205964</id>
<parentid>548601116</parentid>
<timestamp>2017-11-13T22:55:43Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Bulb2]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="162">[[File:BulbgraphOnOff.gif|{{{1|20}}}px|alt=Flashing bulb|link=]]&lt;span style=&quot;display:none&quot;&gt;B&lt;/span&gt;&lt;!--template:bulb2--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>jxk29sa4yvorr7wp877dx8ihvzvnas2</sha1>
</revision>
</page>
<page>
<title>Template:Bureaucrat note</title>
<ns>10</ns>
<id>12263157</id>
<revision>
<id>530929187</id>
<parentid>530929128</parentid>
<timestamp>2013-01-02T15:29:26Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<minor/>
<comment>MSGJ moved page [[Template:Bureaucrat-note]] to [[Template:Bureaucrat note]]: no need for hyphen</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="134">[[File:Pictogram voting comment.svg|link=|alt=|20px]] '''Bureaucrat note{{{1|}}}{{{2|:}}}'''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>rgtuywn6j68p8lpvbxizm8k9bn563gs</sha1>
</revision>
</page>
<page>
<title>Template:CUnote</title>
<ns>10</ns>
<id>27442000</id>
<revision>
<id>810204928</id>
<parentid>621688867</parentid>
<timestamp>2017-11-13T22:48:17Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:CUnote]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="122">[[File:Pictogram voting comment.svg|link=|alt=|20px]]&amp;nbsp;'''CheckUser note:'''&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>hjg0hg6ph8ez6u7khh88sh1p1ai4cu3</sha1>
</revision>
</page>
<page>
<title>Template:Cancelled</title>
<ns>10</ns>
<id>28929396</id>
<revision>
<id>810136178</id>
<parentid>782320276</parentid>
<timestamp>2017-11-13T15:08:14Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Cancelled]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="144">[[File:Cancelled cross.svg|15px|link=|alt=]] '''Cancelled'''&lt;noinclude&gt;
{{documentation}}
[[Category:Image with comment templates]]
&lt;/noinclude&gt;</text>
<sha1>mfh8tat726djfbx6wx0augh6cmqdc1v</sha1>
</revision>
</page>
<page>
<title>Template:Check mark</title>
<ns>10</ns>
<id>5296380</id>
<revision>
<id>810135039</id>
<parentid>610923171</parentid>
<timestamp>2017-11-13T15:00:48Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Check mark]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="467">{{{{{|safesubst:}}}#ifexist:media:{{{{{|safesubst:}}}lc:{{{color|{{{colour}}}}}}}} check.svg
|[[File:{{{{{|safesubst:}}}lc:{{{color|{{{colour}}}}}}}} check.svg|{{{{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|23}}px|Check mark|alt={{{color|{{{colour}}}}}} tick|link=]]
|[[File:Yes check.svg|{{{{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|23}}px|Check mark|alt=Green tick|link=]]}}&lt;span style=&quot;display:none&quot;&gt;Y&lt;/span&gt;&lt;!--template:check mark--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>ryit1asawynd4l39z9a47b65q1pl88g</sha1>
</revision>
</page>
<page>
<title>Template:Check mark-n</title>
<ns>10</ns>
<id>5347293</id>
<revision>
<id>810136852</id>
<parentid>558575872</parentid>
<timestamp>2017-11-13T15:11:59Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Check mark-n]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="144">[[Image:Check mark 23x20 04.svg|23x20px|Check mark|alt=Yes|link=]]&lt;SPAN STYLE=&quot;display:none&quot;&gt;Y&lt;/SPAN&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>spd536uj0m3wo2n3hlsxd8dksyrypws</sha1>
</revision>
</page>
<page>
<title>Template:Check mark templates</title>
<ns>10</ns>
<id>10104025</id>
<revision>
<id>820678019</id>
<parentid>755414154</parentid>
<timestamp>2018-01-16T00:06:08Z</timestamp>
<contributor>
<username>GKFX</username>
<id>14918984</id>
</contributor>
<comment>Line out {{xed box}} with {{checked box}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1280">{| class=&quot;wikitable&quot; align=&quot;center&quot; style=&quot;width:60%;&quot;
|-
! colspan=4 style=&quot;background-color:black; color:white;&quot;| {{Navbar-header|Check and cross marks|Check mark templates|fontcolor=white}}
|-
! colspan=2 width=&quot;50%&quot;| Check marks !!colspan=2| Cross marks
|-
| {{tl|check mark}} || {{Check mark}} || {{tl|x mark big}} || {{X mark big}}
|-
| {{tl|tick}} = {{tlx|tick|20}} || {{Tick}} || {{tl|cross}} = {{tlx|cross|20}} || {{Cross}}
|-
| {{tl|aye}} || {{aye}} || {{tl|nay}} || {{nay}}
|-
| {{tl|ya}} || {{Ya}} || {{tl|na}} || {{Na}}
|-
| {{tl|check mark-n}} || {{Check mark-n}} || {{tl|x mark-n}} || {{X mark-n}}
|-
| {{tl|y&amp;}} || {{Y&amp;}} || {{tl|n&amp;}} || {{N&amp;}}
|-
| {{tl|Chk}} || {{Chk}}
|-
| {{tl|checked box}} || {{Checked box}}
| {{tl|xed box}} || {{Xed box}}
|-
|-
! colspan=4 | Other marks
|-
| {{tl|n.b.}} || {{n.b.}} || {{tl|hmmm}} || {{hmmm}}
|-
| {{tl|bang}} || {{bang}} || ||
|-
|colspan=4| ''Most of the templates above are fully sortable in a [[Help:Sorting|&lt;code&gt;&lt;nowiki&gt;class=&quot;sortable&quot;&lt;/nowiki&gt;&lt;/code&gt; table]] (each check mark is assigned an undisplayed &quot;Y&quot; and each cross mark an undisplayed &quot;N&quot;).''
|-
|}&lt;noinclude&gt;
[[Category:Checkmark insertion templates| ]]
[[Category:Documentation see also templates]]
[[Category:Wikipedia utility templates]]
&lt;/noinclude&gt;</text>
<sha1>fh35oxjuc76093bqyg5znrujaqc50wh</sha1>
</revision>
</page>
<page>
<title>Template:Checked</title>
<ns>10</ns>
<id>15193738</id>
<revision>
<id>810136904</id>
<parentid>804536423</parentid>
<timestamp>2017-11-13T15:12:16Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Checked]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="173">[[File:Check mark 23x20 02.svg|12px|alt=|link=]]&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Checkmark insertion templates]]
}}&lt;/noinclude&gt;</text>
<sha1>fubs521kbn03gneoy2k8ivht43azqib</sha1>
</revision>
</page>
<page>
<title>Template:Checked2</title>
<ns>10</ns>
<id>17839270</id>
<revision>
<id>810134395</id>
<parentid>622836698</parentid>
<timestamp>2017-11-13T14:55:52Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Checked2]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="444">[[Image:Symbol confirmed.svg|20px|link=|alt=]] '''{{{1|Checked}}}'''&lt;noinclude&gt;{{documentation|content={{Template:Resolved mark/doc|type=checkmark|where=at [[Wikipedia:Copyright problems]]|para=The template accepts a single parameter (unnamed or given as {{para|1}}) that changes the word &quot;Checked&quot; to the text specified in the parameter, e.g. &quot;Checked to the extent possible&quot;.|admin=y}}}}
&lt;!--Categories go on the /doc subpage --&gt;
&lt;/noinclude&gt;</text>
<sha1>mwbvoqtkz6ae8ztkilipf3ayce552o5</sha1>
</revision>
</page>
<page>
<title>Template:Checked box</title>
<ns>10</ns>
<id>41136664</id>
<revision>
<id>810136937</id>
<parentid>782407820</parentid>
<timestamp>2017-11-13T15:12:25Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Checked box]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="141">&lt;noinclude&gt;{{confused|Template:Checkbox}}&lt;/noinclude&gt;
[[File:Check mark.svg|alt=checked box|link=]]&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>6st5mrz2w882pib8g2mtslevesjxal9</sha1>
</revision>
</page>
<page>
<title>Template:Checking</title>
<ns>10</ns>
<id>21538851</id>
<revision>
<id>810204587</id>
<parentid>621680005</parentid>
<timestamp>2017-11-13T22:45:36Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Checking]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="200">[[File:Pictogram voting wait blue.svg|16px|link=|alt=]] '''Checking...'''&lt;noinclude&gt;
{{Documentation}}
&lt;!--Please add this template's categories to the /doc subpage, not here - thanks!--&gt;
&lt;/noinclude&gt;</text>
<sha1>0qioh6zxqy78s6rq1ut04ibqqnk0he6</sha1>
</revision>
</page>
<page>
<title>Template:Chk</title>
<ns>10</ns>
<id>5203366</id>
<revision>
<id>747162201</id>
<parentid>716048359</parentid>
<timestamp>2016-10-31T20:05:47Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="96">&lt;big&gt;✓&lt;/big&gt;&lt;noinclude&gt;
{{Check mark templates}}
[[Category:Typing-aid templates]]&lt;/noinclude&gt;</text>
<sha1>ak20c6jyg7kr8j7wup22tbtmj2kvl6p</sha1>
</revision>
</page>
<page>
<title>Template:Clerk-Note</title>
<ns>10</ns>
<id>5416332</id>
<revision>
<id>609665791</id>
<parentid>579832183</parentid>
<timestamp>2014-05-22T12:47:50Z</timestamp>
<contributor>
<username>AGK</username>
<id>1000453</id>
</contributor>
<comment>fixed non-breaking space in template</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="129">[[File:Symbol comment vote.svg|16px|link=|alt=]]&amp;nbsp;'''Clerk note{{{1|}}}{{{2|:}}}'''&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>ldcpkk8wtfaxb8ppmc4wvrwib05y1bc</sha1>
</revision>
</page>
<page>
<title>Template:Clerk-Note-bot</title>
<ns>10</ns>
<id>44594291</id>
<revision>
<id>810205389</id>
<parentid>782462657</parentid>
<timestamp>2017-11-13T22:51:44Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Clerk-Note-bot]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="135">[[File:Symbol comment vote.svg|17px|link=|alt=]]&amp;nbsp;'''Robot clerk note{{{1|}}}{{{2|:}}}'''&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>heud9xa5mfxgjkvjrmb7am3830bv66h</sha1>
</revision>
</page>
<page>
<title>Template:Clerk-Note-merged</title>
<ns>10</ns>
<id>23348540</id>
<revision>
<id>810206697</id>
<parentid>351189581</parentid>
<timestamp>2017-11-13T23:01:08Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Clerk-Note-merged]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="89">[[File:Mergefrom.svg|16px|link=|alt=]] '''{{{1|Merged}}}'''&lt;noinclude&gt;{{doc}}&lt;/noinclude&gt;</text>
<sha1>111jkchgmp6lpek0sbv3zgrrjwpg4z5</sha1>
</revision>
</page>
<page>
<title>Template:Clerk Request</title>
<ns>10</ns>
<id>5461022</id>
<restrictions>edit=autoconfirmed:move=autoconfirmed</restrictions>
<revision>
<id>729280038</id>
<parentid>621850077</parentid>
<timestamp>2016-07-11T04:25:40Z</timestamp>
<contributor>
<username>Music1201</username>
<id>27871940</id>
</contributor>
<comment>hence the template name</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="209">[[File:Symbol merge vote.svg|16px|alt=|link=]]&amp;nbsp;'''Clerk assistance requested:'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>6vpuhisjrbddl42fdvjyi3lqr2ytmtx</sha1>
</revision>
</page>
<page>
<title>Template:Close</title>
<ns>10</ns>
<id>24080412</id>
<revision>
<id>810202497</id>
<parentid>782450021</parentid>
<timestamp>2017-11-13T22:30:59Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Close]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="188">[[File:Symbol_declined.svg|20px|alt=no]]&amp;nbsp;'''Closed'''&amp;nbsp;&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>3ld36qk7uynrvm92ilclkorabimokuo</sha1>
</revision>
</page>
<page>
<title>Template:Comment</title>
<ns>10</ns>
<id>35719472</id>
<revision>
<id>810133384</id>
<parentid>804535555</parentid>
<timestamp>2017-11-13T14:48:41Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Comment]]&quot;: [[WP:MOVP|Highly visible page]]: 2000+ transclusions, if you need to edit please go to [[Wikipedia:Edit requests]] ([Edit=Require administrator access] (indefinite) [Move=Require administrator access...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="123">[[File:Pictogram voting comment.svg|15px|link=|alt=]]&amp;nbsp;'''{{{1|Comment:}}}'''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>nfqx624mwkdl9w5kjeqds7jat1ro1en</sha1>
</revision>
</page>
<page>
<title>Template:Commentvote</title>
<ns>10</ns>
<id>4143557</id>
<redirect title="Template:BotComment" />
<revision>
<id>810212233</id>
<parentid>243362295</parentid>
<timestamp>2017-11-13T23:40:05Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Commentvote]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="33">#REDIRECT [[Template:BotComment]]</text>
<sha1>eedx7esk2kg6vjlvp84ryc566yd6mw1</sha1>
</revision>
</page>
<page>
<title>Template:Completed</title>
<ns>10</ns>
<id>14622241</id>
<revision>
<id>621950337</id>
<parentid>609665796</parentid>
<timestamp>2014-08-19T18:43:32Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>updte</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="118">[[File:Symbol redirect vote.svg|16px|link=|alt=]]&amp;nbsp;'''{{{1|Completed}}}'''&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>1e6n5py37gzfvnswwe98prglzfcxejs</sha1>
</revision>
</page>
<page>
<title>Template:Conditional yes</title>
<ns>10</ns>
<id>53410330</id>
<revision>
<id>810134445</id>
<parentid>769073404</parentid>
<timestamp>2017-11-13T14:56:14Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Conditional yes]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="210">[[File:Yes check lines.svg|{{{{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|20}}px|alt=Conditional yes|link=]]&lt;span style=&quot;display:none&quot;&gt;CY&lt;/span&gt;&lt;!--template:Conditional yes--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>p29nug39jo9bbdswexf56achhjm5kqe</sha1>
</revision>
</page>
<page>
<title>Template:Confirmed</title>
<ns>10</ns>
<id>5102900</id>
<revision>
<id>661856315</id>
<parentid>622839029</parentid>
<timestamp>2015-05-11T15:44:17Z</timestamp>
<contributor>
<username>Reaper Eternal</username>
<id>10639536</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Confirmed: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only administrators] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="540">[[File:Symbol confirmed.svg|16px|link=|alt=]]&amp;nbsp;'''{{{1|Confirmed}}}'''&lt;noinclude&gt;{{documentation|content={{Template:Resolved mark/doc |type=checkmark|where=on [[WP:CHECKUSER]] pages at [[Wikipedia:Sockpuppet investigations]]|seealso=* [[Wikipedia:Sockpuppet investigations/SPI/Indicators]]|para=The template accepts a single parameter (unnamed or given as {{para|1}}) that changes the word &quot;Confirmed&quot; to the text specified in the parameter, e.g. &quot;Tentatively confirmed&quot;.|spi=y}}}}
&lt;!--Categories go on the /doc subpage --&gt;
&lt;/noinclude&gt;</text>
<sha1>29p188tygjkfmq40r14m26c7l8asdnf</sha1>
</revision>
</page>
<page>
<title>Template:Confirmed-nc</title>
<ns>10</ns>
<id>6934607</id>
<revision>
<id>810134495</id>
<parentid>622839158</parentid>
<timestamp>2017-11-13T14:56:34Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Confirmed-nc]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="576">{{Confirmed|1={{{1|Confirmed}}}}} with respect to the named user(s), {{{{{|safesubst:}}}No comment IP}}.&lt;noinclude&gt;{{documentation|content={{Template:Resolved mark/doc |type=checkmark|where=on [[WP:CHECKUSER]] pages at [[Wikipedia:Sockpuppet investigations]]|seealso=* [[Wikipedia:Sockpuppet investigations/SPI/Indicators]]|para=The template accepts a single parameter (unnamed or given as {{para|1}}) that changes the word &quot;Confirmed&quot; to the text specified in the parameter, e.g. &quot;Tentatively confirmed&quot;.|spi=y|dot=y}}}}
&lt;!--Categories go on the /doc subpage --&gt;
&lt;/noinclude&gt;</text>
<sha1>ksfc3ah4hr3j99mv98guivx5bi0wtzj</sha1>
</revision>
</page>
<page>
<title>Template:Coordinator-note</title>
<ns>10</ns>
<id>31911563</id>
<revision>
<id>810205562</id>
<parentid>431286860</parentid>
<timestamp>2017-11-13T22:52:55Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Coordinator-note]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="130">[[File:Symbol comment vote.svg|17px|link=|alt=]] '''Coordinator note{{{1|}}}{{{2|:}}}'''&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>tnzrghwmb33xa3tc5q6wvijm7jwfhp3</sha1>
</revision>
</page>
<page>
<title>Template:Crystalball</title>
<ns>10</ns>
<id>5919278</id>
<restrictions>edit=autoconfirmed:move=autoconfirmed</restrictions>
<revision>
<id>721406470</id>
<parentid>721351483</parentid>
<timestamp>2016-05-21T17:00:05Z</timestamp>
<contributor>
<username>Andy M. Wang</username>
<id>516856</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/Andy M. Wang|Andy M. Wang]] ([[User talk:Andy M. Wang|talk]]) to last version by Fryed-peach</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="360">[[File:Emoji u1f52e.svg|16px]]&amp;nbsp;'''[[Wikipedia:CheckUser|CheckUser]] is not a crystal ball'''&lt;noinclude&gt;{{documentation|content=
{{hatnote|You may alternatively be looking for [[Template:Crystal]] - for articles with unsourced predictions}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:SPI templates]]
}}&lt;/noinclude&gt;</text>
<sha1>85m8808lz0gtmyyem1w56mtk0r16eqo</sha1>
</revision>
</page>
<page>
<title>Template:Cu-endorsed</title>
<ns>10</ns>
<id>27053299</id>
<revision>
<id>810203398</id>
<parentid>621849700</parentid>
<timestamp>2017-11-13T22:36:59Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Cu-endorsed]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="232">[[File:Symbol support2 vote.svg|16px|link=|alt=]]&amp;nbsp;'''Endorsed by a [[Wikipedia:CheckUser|CheckUser]]'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>61bzsrovlr670v27viv23t3xg5r03o0</sha1>
</revision>
</page>
<page>
<title>Template:Cudecline</title>
<ns>10</ns>
<id>33828570</id>
<revision>
<id>623136612</id>
<parentid>623136484</parentid>
<timestamp>2014-08-28T05:35:02Z</timestamp>
<contributor>
<username>Callanecc</username>
<id>10440891</id>
</contributor>
<minor/>
<comment>Protected Template:Cudecline: [[WP:High-risk templates|Highly visible template]]: Used in SPI, over 350 translcusions ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="125">[[File:Symbol unsupport2 vote.svg|16px|link=|alt=]]&amp;nbsp;'''{{{1|CheckUser declined}}}'''&lt;noinclude&gt;&lt;br /&gt;{{doc}}&lt;/noinclude&gt;</text>
<sha1>r9mrmrh727rgl02z79t301dlhh6hyna</sha1>
</revision>
</page>
<page>
<title>Template:Decline</title>
<ns>10</ns>
<id>18241811</id>
<revision>
<id>688856836</id>
<parentid>621850271</parentid>
<timestamp>2015-11-03T13:42:43Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>pp-template not needed since documentation does the same</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="270">[[File:Symbol unsupport2 vote.svg|16px|link=|alt=]]&amp;nbsp;'''{{{1|Clerk declined}}}'''&lt;noinclude&gt;{{documentation|content=
{{distinguish|Template:Declined}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:SPI templates]]
}}&lt;/noinclude&gt;</text>
<sha1>evlumkcwmpme800wmej9nzuqygjq3ej</sha1>
</revision>
</page>
<page>
<title>Template:Decline-IP</title>
<ns>10</ns>
<id>36762192</id>
<revision>
<id>810203125</id>
<parentid>809777885</parentid>
<timestamp>2017-11-13T22:35:16Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Decline-IP]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="297">[[File:Symbol unsupport2 vote.svg|16px|link=|alt=]] '''Clerk declined''' - Checkuser will not link accounts to IPs, per the [[m:Privacy policy|privacy policy]].&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
}}&lt;/noinclude&gt;</text>
<sha1>5se79spgx9iwg2ph71ie54qkf4yjn6r</sha1>
</revision>
</page>
<page>
<title>Template:Declined</title>
<ns>10</ns>
<id>5103023</id>
<revision>
<id>782449809</id>
<parentid>782449761</parentid>
<timestamp>2017-05-27T00:19:51Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<minor/>
<comment>no alt text for unlinked image</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="219">[[File:Symbol declined.svg|16px|link=|alt=]]&amp;nbsp;'''{{{1|Declined}}}'''&lt;noinclude&gt;
{{doc|content=
{{distinguish|Template:Decline}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>9m653fheeaww224jqzh3opwc79dokyo</sha1>
</revision>
</page>
<page>
<title>Template:Deferabusefilter</title>
<ns>10</ns>
<id>22142604</id>
<revision>
<id>810203622</id>
<parentid>621843730</parentid>
<timestamp>2017-11-13T22:38:31Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Deferabusefilter]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="233">[[File:Symbol deferred.svg|20px|link=|alt=]] '''Defer to [[Wikipedia:Abuse filter/Requested|Abuse filter]]'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>03u7rvug8krv5x110idvxeeor13n6mr</sha1>
</revision>
</page>
<page>
<title>Template:Deferblack</title>
<ns>10</ns>
<id>15361873</id>
<revision>
<id>810203683</id>
<parentid>621843775</parentid>
<timestamp>2017-11-13T22:39:02Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Deferblack]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="233">[[File:Symbol deferred.svg|20px|link=|alt=]] '''Defer to [[MediaWiki talk:Spam-blacklist|Local blacklist]]'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>lmzq49tan5eaymti9fujxi4u7jbl8vi</sha1>
</revision>
</page>
<page>
<title>Template:Defermetablack</title>
<ns>10</ns>
<id>15361881</id>
<revision>
<id>810203721</id>
<parentid>729348784</parentid>
<timestamp>2017-11-13T22:39:21Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Defermetablack]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="226">[[File:Symbol deferred.svg|20px|link=|alt=]] '''Defer to [[m:Talk:Spam blacklist|Global blacklist]]'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>6dkkm86okqpry1ank9r9cbhwooh4obi</sha1>
</revision>
</page>
<page>
<title>Template:Deferred</title>
<ns>10</ns>
<id>9019440</id>
<revision>
<id>581183037</id>
<parentid>456672539</parentid>
<timestamp>2013-11-11T13:51:28Z</timestamp>
<contributor>
<username>DePiep</username>
<id>199625</id>
</contributor>
<comment>use parameter 1 only when present</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="133">[[Image:Symbol deferred.svg|16px|link=|alt=]] {{#if:{{{1|}}}|'''Deferred to {{{1}}}'''|'''Deferred'''}}&lt;noinclude&gt;{{doc}}&lt;/noinclude&gt;</text>
<sha1>65hs5nkotr1g8qekxnz5frgx7imlj7s</sha1>
</revision>
</page>
<page>
<title>Template:Deferrsn</title>
<ns>10</ns>
<id>24550938</id>
<revision>
<id>810203808</id>
<parentid>621843861</parentid>
<timestamp>2017-11-13T22:39:57Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Deferrsn]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="231">[[File:Symbol deferred.svg|20px|link=|alt=]] '''Defer to [[Wikipedia:Reliable sources/Noticeboard|RS/N]]'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>mljbcbz80brahgx291gqsxi0puv65y1</sha1>
</revision>
</page>
<page>
<title>Template:Deferspam</title>
<ns>10</ns>
<id>14949539</id>
<revision>
<id>621843920</id>
<parentid>351187707</parentid>
<timestamp>2014-08-18T23:52:18Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>add doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="226">[[File:Symbol deferred.svg|20px|link=|alt=]] '''Defer to [[Wikipedia talk:WikiProject Spam|WPSPAM]]'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>sjpjiuax6uoiwhltgspqhgciw6pkmcq</sha1>
</revision>
</page>
<page>
<title>Template:Deferspambot</title>
<ns>10</ns>
<id>15164021</id>
<revision>
<id>621843995</id>
<parentid>351187689</parentid>
<timestamp>2014-08-18T23:53:10Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>add doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="226">[[File:Symbol deferred.svg|20px|link=|alt=]] '''Defer to [[User_talk:XLinkBot/RevertList|XLinkBot]]'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>c73skieoidqmnpz0mbcx1lepcxep8fu</sha1>
</revision>
</page>
<page>
<title>Template:Deferwhite</title>
<ns>10</ns>
<id>14994189</id>
<revision>
<id>621844039</id>
<parentid>351187651</parentid>
<timestamp>2014-08-18T23:53:34Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>add doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="227">[[File:Symbol deferred.svg|20px|link=|alt=]] '''Defer to [[MediaWiki talk:Spam-whitelist|Whitelist]]'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>2kbn29ckren3u4el90t4r5220axpwt5</sha1>
</revision>
</page>
<page>
<title>Template:Deleted</title>
<ns>10</ns>
<id>3324450</id>
<revision>
<id>810135757</id>
<parentid>723448710</parentid>
<timestamp>2017-11-13T15:05:38Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Deleted]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="204">{{{{{|safesubst:}}}cross|18}} '''{{{{{|safesubst:}}}ucfirst:{{{1|Deleted}}}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>l6vnh8ts5yq6dvvbswtnpbyzw4bstri</sha1>
</revision>
</page>
<page>
<title>Template:Deleted-image</title>
<ns>10</ns>
<id>32737875</id>
<revision>
<id>810136204</id>
<parentid>782451068</parentid>
<timestamp>2017-11-13T15:08:23Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Deleted-image]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="208">[[File:Gnome-colors-window-close.svg|20px|alt=X]] '''{{{1|Deleted}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
}}&lt;/noinclude&gt;</text>
<sha1>7ul3ce388p96c7cre70u6z2rtpr34fz</sha1>
</revision>
</page>
<page>
<title>Template:Delisted</title>
<ns>10</ns>
<id>10145926</id>
<revision>
<id>664132701</id>
<parentid>660349850</parentid>
<timestamp>2015-05-26T15:36:55Z</timestamp>
<contributor>
<username>Usien6</username>
<id>1948704</id>
</contributor>
<comment>Add parameter for custom text.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="218">[[File:Symbol unsupport vote.svg|16px|link=|alt=]]&amp;nbsp;'''{{{1|Delisted}}}'''&lt;noinclude&gt;{{documentation|content=
{{pp-template}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>0tpqfiq26ugy4rrqk8vsg9f7wcd241k</sha1>
</revision>
</page>
<page>
<title>Template:Denied</title>
<ns>10</ns>
<id>24094400</id>
<revision>
<id>810202563</id>
<parentid>782449963</parentid>
<timestamp>2017-11-13T22:31:22Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Denied]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="185">[[File:Symbol declined.svg|20px|alt=no]] '''{{{1|Denied}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>jorie2ahrxrno640vkhkgknws3kss9g</sha1>
</revision>
</page>
<page>
<title>Template:Disagree</title>
<ns>10</ns>
<id>20499711</id>
<revision>
<id>810202602</id>
<parentid>782450068</parentid>
<timestamp>2017-11-13T22:31:42Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Disagree]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="400">[[File:Symbol declined.svg|alt=no|20px]] '''{{{1|Disagree}}}''' &lt;noinclude&gt;
{{doc|content=
{{warning|This template should not be used as a way to express agreement in consensus-seeking discussions, as this encourages [[WP:!vote|voting]], see [[Wikipedia:Deletion review/Perennial requests#Template:Support]].}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>oau97xx6mjdpbavafbvztg58dwintab</sha1>
</revision>
</page>
<page>
<title>Template:Discussing</title>
<ns>10</ns>
<id>24797116</id>
<revision>
<id>810204425</id>
<parentid>601768098</parentid>
<timestamp>2017-11-13T22:44:36Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Discussing]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="266">[[Image:Pictogram voting wait.svg|17px|link=|alt=]] '''[[{{#if:{{{talkpage|}}}|{{{talkpage}}}{{#if:{{{talk|}}}|&amp;#35;{{{talk}}}}}|{{TALKPAGENAME}}#{{{talk|}}}}}|Discussion]] ongoing'''{{#if:{{{1|}}}|&amp;#58; {{{1|}}}|...}}&lt;br /&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>6zlcp1a64ak4tw9zqa38hm4o9vcp9ny</sha1>
</revision>
</page>
<page>
<title>Template:Dislike</title>
<ns>10</ns>
<id>32226706</id>
<revision>
<id>810206552</id>
<parentid>662210606</parentid>
<timestamp>2017-11-13T22:59:54Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Dislike]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="559">&lt;span style=&quot;display:inline-block;padding:0 .5em;line-height:1.75em;border:1px solid #CAD4E7; font-family:'Lucida Grande',Tahoma,Verdana,sans-serif; {{border-radius|3px}} background:#ECEEF5; text-align:center;&quot;&gt;[[File:Not facebook not like thumbs down.png|link=|16px]]&amp;thinsp;&lt;span style=&quot;color:#3B5998;&quot;&gt;{{#if:{{{num|}}}|{{{num|}}} {{PLURAL:{{{num|}}}|user {{{1|dislikes}}}|users {{{1|dislike}}}}} this.|{{#if:{{{username|}}}|[[User:{{{username|}}}|{{{username|}}}]] dislikes this.|{{{1|Dislike}}}}}}}&lt;/span&gt;&lt;/span&gt; &lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>sus6izktrfs56wlixodop2x5gue7gey</sha1>
</revision>
</page>
<page>
<title>Template:Div col</title>
<ns>10</ns>
<id>12679552</id>
<revision>
<id>820620173</id>
<parentid>820604224</parentid>
<timestamp>2018-01-15T17:35:00Z</timestamp>
<contributor>
<username>Jonesey95</username>
<id>9755426</id>
</contributor>
<comment>/* top */ rm tfm notice, no need to have it here</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1405">&lt;includeonly&gt;&lt;div class=&quot;div-col columns &lt;!--
--&gt;{{#if: {{{colwidth|{{{2|}}}}}}
| column-width
| column-count column-count-{{{cols|{{#if:1|{{{1|2}}}}}}}} }}&quot; style=&quot;&lt;!--
--&gt;{{#if: {{{colwidth|{{{2|}}}}}}
| {{column-width|{{{colwidth|{{#if:1|{{{2}}}}}}}}}}
| {{column-count|{{{cols|{{#if:1|{{{1|2}}}}}}}}}} }} &lt;!--
--&gt;{{#if: {{{gap|}}}
| {{column-gap|{{{gap}}}}} }}&lt;!--
--&gt;{{#switch: {{{rules|}}}
| = &lt;!--empty--&gt;
| yes = {{column-rule}}
| {{Column-rule|{{{rules}}}}} }} &lt;!--
--&gt;{{#ifeq: {{{small|}}}|yes
| font-size:90%; }} &lt;!--
--&gt;{{#if: {{{style|}}}
| {{{style}}} }}&quot;&gt;&lt;!--
--&gt;{{#if: {{{content|}}}
|{{{content}}}&lt;/div&gt;}}&lt;!-- Inventory how many pages use small=yes
--&gt;{{#ifeq: {{{small|}}}|yes
|[[Category:Pages using div col with small parameter]]}}&lt;/includeonly&gt;{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using div col with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Div col]] with unknown parameter &quot;_VALUE_&quot;|ignoreblank=y| 1 | 2 | cols | colwidth | content | gap | rules | small | style }}&lt;!--
--&gt;{{main other|{{#if: {{{cols|}}}{{{1|}}}{{{2|}}}|[[Category: Pages using div col with deprecated parameters]]|}}{{#if:{{{cols|}}}{{{colwidth|}}}{{{1|}}}{{{2|}}}||[[Category:Pages using div col without cols and colwidth parameters]]}}}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>d2gbqb2ziz4u4p13e6fy9t4aegzt2hy</sha1>
</revision>
</page>
<page>
<title>Template:Div col end</title>
<ns>10</ns>
<id>12679680</id>
<revision>
<id>683947856</id>
<parentid>627002509</parentid>
<timestamp>2015-10-03T15:58:07Z</timestamp>
<contributor>
<username>NeilN</username>
<id>409043</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Div col end: per request at [[WP:RFPP]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="96">&lt;includeonly&gt;&lt;/div&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation|Template:Div col/doc}}
&lt;/noinclude&gt;</text>
<sha1>e0rj08wj8gm7na2mxp8t9b3l4y8kspb</sha1>
</revision>
</page>
<page>
<title>Template:Doing</title>
<ns>10</ns>
<id>10606277</id>
<revision>
<id>678691772</id>
<parentid>410362127</parentid>
<timestamp>2015-08-31T01:12:15Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Doing: Highly visible template; lowering to template protection ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only administrators] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="137">[[Image:Pictogram voting wait.svg|17px|link=|alt=]] '''{{{1|Doing}}}...'''&lt;!--template:doing--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>rerll75jnfatfic22eqzp3h1gxnz9ye</sha1>
</revision>
</page>
<page>
<title>Template:Done</title>
<ns>10</ns>
<id>3503011</id>
<revision>
<id>776610283</id>
<parentid>776592221</parentid>
<timestamp>2017-04-22T03:14:17Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>Per [[Wikipedia:Alternative text for images#Examples]], the icon is purely decorative and does not need alt text.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="209">[[File:Yes check.svg|18px|link=|alt=]]&amp;nbsp;'''{{{1|Done}}}'''{{{{{|safesubst:}}}#if:{{{note|{{{reason|}}}}}}|&lt;nowiki /&gt;: {{{note|{{{reason}}}}}}}}&lt;!--template:done--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>3xxk5dw1as1m3e3llp0kd7g9pgfa0b2</sha1>
</revision>
</page>
<page>
<title>Template:Done-t</title>
<ns>10</ns>
<id>16498495</id>
<revision>
<id>650745970</id>
<parentid>635535383</parentid>
<timestamp>2015-03-10T11:40:01Z</timestamp>
<contributor>
<username>Ymblanter</username>
<id>14596827</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Done-t: RFPP request ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="147">&lt;span style=&quot;color: #690; font-size: 1.8em;&quot;&gt;&amp;#x2713;&lt;/span&gt;&amp;nbsp;'''{{{1|Done}}}'''&lt;!--template:done-t--&gt;&lt;noinclude&gt;
{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>dr9tai9r73nd3lvg3ze64xbpj3sjn23</sha1>
</revision>
</page>
<page>
<title>Template:Done/See also</title>
<ns>10</ns>
<id>33231463</id>
<revision>
<id>819688947</id>
<parentid>816263585</parentid>
<timestamp>2018-01-10T19:25:18Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Done/See also]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access]...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="15841">&lt;!--This is transcluded into all these templates' /doc pages to save time.
--&gt;{{Documentation subpage|override=see also|several templates {{bracket|[[Special:WhatLinksHere/Template:Done/See also|Details]]}}}}{{navbar|Done/See also|plain=1}}&lt;noinclude&gt;__NOTOC__&lt;/noinclude&gt;
===Inline icon templates by shape and color===
Any of the following inline, comment-level templates can be converted into {{tl|Resolved}}-style hatnotes by using {{tl|Resbox}} to put a box around the icon and text.
{{div col|colwidth=30em}}
{{Aligned table |style=&lt;!--padding-top:1.5em;--&gt;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Green check marks'''}} |
| {{Resolved mark large}} | {{tlx|Resolved mark large}}
| {{Implemented}} | {{tlx|Implemented}}
| {{PImplemented}} | {{tlx|PImplemented}}
| {{Resolved mark}} | {{tlx|Resolved mark}}
| {{Accepted}} | {{tlx|Accepted}}
| {{Agree}} | {{tlx|Agree}}
| {{Approved}} | {{tlx|Approved}}
| {{Checked2}} | {{tlx|Checked2}}
| {{Verified}} | {{tlx|Verified}}
| {{Conditional yes}} | {{tlx|Conditional yes}}
| {{Confirmed}} | {{tlx|Confirmed}}
| {{Confirmed-nc}} | {{tlx|Confirmed-nc}}
| {{Tallyho}} | {{tlx|Tallyho}}
| {{Blockedtaggedclosing}}| {{tlx|Blockedtaggedclosing}}
| {{Check mark}} | {{tlx|Check mark}}
| {{Tick}} | {{tlx|Tick}}
| {{Helped}} | {{tlx|Helped}}
| {{Done}} | {{tlx|Done}}
| {{Donetask}} | {{tlx|Donetask}}
| {{Unprod}} | {{tlx|Unprod}}
| {{Autp}} | {{tlx|Autp}}
| {{Responded}} | {{tlx|Responded}}
| {{Merge done}} | {{tlx|Merge done}}
| {{Marked}} | {{tlx|Marked}}
| {{Done-t}} | {{tlx|Done-t}}
| {{Pass}} | {{tlx|Pass}}
| {{Aye}} | {{tlx|Aye}}
| {{Yes check}} | {{tlx|Yes check}}
| {{Y&amp;}} | {{tlx|Y&amp;}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Cross marks'''}} |
| {{X mark big}} | {{tlx|X mark big}}
| {{Cross}} | {{tlx|Cross}}
| {{Expired}} | {{tlx|Expired}}
| {{Xmark}} | {{tlx|Xmark}}
| {{Deleted}} | {{tlx|Deleted}}
| {{Not done}} | {{tlx|Not done}}
| {{Not done not likely}} | {{tlx|Not done not likely}}
| {{Stale-small}} | {{tlx|Stale-small}}
| {{Smallrejected}} | {{tlx|Smallrejected}}
| {{X mark}} | {{tlx|X mark}}
| {{Nay}} | {{tlx|Nay}}
| {{No mark}} | {{tlx|No mark}}
| {{No pass}} | {{tlx|No pass}}
| {{Not done-t}} | {{tlx|Not done-t}}
| {{Fail}} | {{tlx|Fail}}
| {{N&amp;}} | {{tlx|N&amp;}}
| {{X mark-n}} | {{tlx|X mark-n}}
| {{Xed box}} | {{tlx|Xed box}}
| {{Cancelled}} | {{tlx|Cancelled}}
| {{Deleted-image}} | {{tlx|Deleted-image}}
| {{Already declined}} | {{tlx|Already declined}}
| {{Opblocked}} | {{tlx|Opblocked}}
| {{User-blocked}} | {{tlx|User-blocked}}
| {{Notabug}} | {{tlx|Notabug}}
| {{Notfixed}} | {{tlx|Notfixed}}
| {{Won't fix}} | {{tlx|Won't fix}}
| {{Withdraw}} | {{tlx|Withdraw}}
| {{Nojoy}} | {{tlx|Nojoy}}
| {{Unrelated}} | {{tlx|Unrelated}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Black check marks'''}} |
| {{Already done}} | {{tlx|Already done}}
| {{Resolved1}} | {{tlx|Resolved1}}
| {{Check mark-n}} | {{tlx|Check mark-n}}
| {{Checked}} | {{tlx|Checked}}
| {{Checked box}} | {{tlx|Checked box}}
}}
{{Aligned table |style=&lt;!--padding-top:1.5em;--&gt;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Yellow check marks'''}} |
| {{Yellow tick}} | {{tlx|Yellow tick}}
| {{Half done}} | {{tlx|Half done}}
| {{Partly done}} | {{tlx|Partly done}}
| {{Partly done-t}} | {{tlx|Partly done-t}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Blue check marks'''}} |
| {{Semi-done}} | {{tlx|Semi-done}}
| {{Fixed}} | {{tlx|Fixed}}
| {{Fixed by reporter}} | {{tlx|Fixed by reporter}}
| {{Bug pending}} | {{tlx|Bug pending}}
| {{Bug resolved}} | {{tlx|Bug resolved}}
| {{Blockedandtagged}} | {{tlx|Blockedandtagged}}
| {{Blockedwithouttags}}| {{tlx|Blockedwithouttags}}
| {{Ipbedone}} | {{tlx|Ipbedone}}
| {{IPblock}} | {{tlx|IPblock}}
| {{Pblock}} | {{tlx|Pblock}}
| {{Psblock}} | {{tlx|Psblock}}
| {{Rblock}} | {{tlx|Rblock}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Minus sign'''}} |
| {{Close}} | {{tlx|Close}}
| {{Denied}} | {{tlx|Denied}}
| {{Disagree}} | {{tlx|Disagree}}
| {{Unapproved}} | {{tlx|Unapproved}}
| {{NotBug}} | {{tlx|NotBug}}
| {{Duplicate bug}} | {{tlx|Duplicate bug}}
| {{Invalid}} | {{tlx|Invalid}}
| {{Declined}} | {{tlx|Declined}}
| {{No action}} | {{tlx|No action}}
| {{Nocomment}} | {{tlx|Nocomment}}
| {{Unnecessary}} | {{tlx|Unnecessary}}
| {{Nc}} | {{tlx|Nc}}
| {{Removed}} | {{tlx|Removed}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Plus sign'''}} |
| {{Added}} | {{tlx|Added}}
| {{Posted}} | {{tlx|Posted}}
| {{Works for me}} | {{tlx|Works for me}}
| {{Likely}} | {{tlx|Likely}}
| {{Endorse}} | {{tlx|Endorse}}
| {{Decline}} | {{tlx|Decline}}
| {{Decline-IP}} | {{tlx|Decline-IP}}
| {{Cu-endorsed}} | {{tlx|Cu-endorsed}}
| {{Cudecline}} | {{tlx|Cudecline}}
| {{Delisted}} | {{tlx|Delisted}}
| {{Inconclusive}} | {{tlx|Inconclusive}}
| {{N/A icon}} | {{tlx|N/A icon}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Neutral sign'''}} |
| {{Bug closed}} | {{tlx|Bug closed}}
| {{Bug new}} | {{tlx|Bug new}}
| {{GA2ndopinion}} | {{tlx|GA2ndopinion}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=&lt;!--width:11.0em;--&gt;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Purple turn-right'''}} |
| {{Deferred}} | {{tlx|Deferred}}
| {{Deferabusefilter}} | {{tlx|Deferabusefilter}}
| {{Deferblack}} | {{tlx|Deferblack}}
| {{Defermetablack}} | {{tlx|Defermetablack}}
| {{Deferrsn}} | {{tlx|Deferrsn}}
| {{Deferspam}} | {{tlx|Deferspam}}
| {{Deferspambot}} | {{tlx|Deferspambot}}
| {{Deferwhite}} | {{tlx|Deferwhite}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Simple clock'''}} |
| {{PendingRequest}} | {{tlx|PendingRequest}}
| {{GAOnHold}} | {{tlx|GAOnHold}}
| {{On hold}} | {{tlx|On hold}}
| {{OnHoldUntil}} | {{tlx|OnHoldUntil}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=&lt;!--width:11.0em;--&gt;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Clock'''}} |
| {{ProposalOnHold}} | {{tlx|ProposalOnHold}}
| {{Reviewing request}} | {{tlx|Reviewing request}}
| {{Awaitingadmin}} | {{tlx|Awaitingadmin}}
| {{Await}} | {{tlx|Await}}
| {{Later}} | {{tlx|Later}}
| {{Tobedone}} | {{tlx|Tobedone}}
| {{Discussing}} | {{tlx|Discussing}}
| {{Doing}} | {{tlx|Doing}}
| {{Isdoing}} | {{tlx|Isdoing}}
| {{Started}} | {{tlx|Started}}
| {{Inprogress}} | {{tlx|Inprogress}}
| {{Checking}} | {{tlx|Checking}}
}}
{{Aligned table |style=&lt;!--padding-top:1.5em;--&gt;padding-right:1.5em;
|col1style=&lt;!--width:11.0em;--&gt;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Note mark'''}} |
| {{NeedsDiscussion}} | {{tlx|NeedsDiscussion}}
| {{Note2}} | {{tlx|Note2}}
| {{A note}} | {{tlx|A note}}
| {{Administrator note}} | {{tlx|Administrator note}}
| {{Bug assigned}} | {{tlx|Bug assigned}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Exclamation'''}} |
| {{High priority}} | {{tlx|High priority}}
| {{N.b.}} | {{tlx|N.b.}}
| {{Bang}} | {{tlx|Bang}}
| {{Archive now}} | {{tlx|Archive now}}
| {{Bureaucrat note}} | {{tlx|Bureaucrat note}}
| {{CUnote}} | {{tlx|CUnote}}
| {{Bug acknowledged}} | {{tlx|Bug acknowledged}} ({{tlx|Ack}})
| {{Bug confirmed}} | {{tlx|Bug confirmed}}
| {{Comment}} | {{tlx|Comment}}
| {{Remind}} | {{tlx|Remind}}
| {{Remark}} | {{tlx|Remark}}
| {{Clerk-Note}} | {{tlx|Clerk-Note}}
| {{Clerk-Note-bot}} | {{tlx|Clerk-Note-bot}}
| {{Rollbacker-Note}} | {{tlx|Rollbacker-Note}}
| {{Editor-Note}} | {{tlx|Editor-Note}}
| {{Renamer note}} | {{tlx|Renamer note}}
| {{Coordinator-note}} | {{tlx|Coordinator-note}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:13.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Question mark'''}} |
| {{Suggestion}} | {{tlx|Suggestion}}
| {{Qmark}} | {{tlx|Qmark}}
| {{Question mark}} | {{tlx|Question mark}}
| {{InfoNeeded}} | {{tlx|InfoNeeded}}
| {{Not sure}} | {{tlx|Not sure}}
| {{Notsure}} | {{tlx|Notsure}}
| {{Investigating}} | {{tlx|Investigating}}
| {{Question}} | {{tlx|Question}}
| {{Question|label=foo}} | {{tlx|Question|label{{=}}foo}}
| {{MoreInfo|wrap=allow}} | {{tlx|MoreInfo}}
| {{Bug feedback}} | {{tlx|Bug feedback}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Bulb'''}} |
| {{Bulb}} | {{tlx|Bulb}}
| {{Bulb2}} | {{tlx|Bulb2}}
| {{Idea}} | {{tlx|Idea}}
| {{NewProposal}} | {{tlx|NewProposal}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Smile'''}} |
| {{Thank you}} | {{tlx|Thank you}}
| {{Thank you very much}} | {{tlx|Thank you very much}}
| {{You're welcome}} | {{tlx|You're welcome}}
| {{Sorry}} | {{tlx|Sorry}}
| {{Thank}} | {{tlx|Thank}}
| {{WikiThanks}} | {{tlx|WikiThanks}}
}}
{{Aligned table |style=padding-top:1.5em;padding-right:1.5em;
|col1style=width:11.0em;padding-left:0.9em;padding-right:0.6em;
|col2style=font-size:95%; |col2nowrap=on
|style1.1=padding-left:none;
| {{big|'''Thumb sign'''}} |
| {{Thumbs down}} | {{tlx|Thumbs down}}
| {{Thumbs up}} | {{tlx|Thumbs up}}
| {{Great}} | {{tlx|Great}}
| {{Like}} | {{tlx|Like}}
| {{Dislike}} | {{tlx|Dislike}}
}}
{{div col end}}
====Others====
{{div col |colwidth=40em}}
{{Aligned table
| {{Awaiting}} | {{tlx|Awaiting}}
| {{Commentvote}} | {{tlx|Commentvote}}
| {{Bug dupe}} | {{tlx|Bug dupe}}
| {{Clerk-Note-merged}} | {{tlx|Clerk-Note-merged}}
| {{NewBug}} | {{tlx|NewBug}}
| {{BugFixed}} | {{tlx|BugFixed}}
| {{DuplicateProposal}} | {{tlx|DuplicateProposal}}
| {{Moved to commons}} | {{tlx|Moved to commons}}
| {{Orz}} | {{tlx|Orz}}
| {{Possibly}} | {{tlx|Possibly}}
| {{Read}} | {{tlx|Read}}
| {{Redflag}} | {{tlx|Redflag}}
| {{Redundant symbol}} | {{tlx|Redundant symbol}}
| {{Reopened}} | {{tlx|Reopened}}
| {{Reverted}} | {{tlx|Reverted}}
| {{Twomanrule}} | {{tlx|Twomanrule}}
| {{UnderReview}} | {{tlx|UnderReview}}
| {{Facepalm}} | {{tlx|Facepalm}}
| {{Scissors}} | {{tlx|Scissors}}
| {{Self-trout}} | {{tlx|Self-trout}}
| {{Sent}} | {{tlx|Sent}}
| {{Snow}} | {{tlx|Snow}}
| {{Stale GAN}} | {{tlx|Stale GAN}}
| {{SULcheck}} | {{tlx|SULcheck}}
}}
{{Aligned table
| {{ToDo}} | {{tlx|ToDo}}
| {{Undone}} | {{tlx|Undone}}
| {{Uploaded}} | {{tlx|Uploaded}}
| {{Warnsign}} | {{tlx|Warnsign}}
| {{Withdrawn}} | {{tlx|Withdrawn}}
| {{Working}} | {{tlx|Working}}
| {{WPcrystalball}} | {{tlx|WPcrystalball}}
| {{Completed}} | {{tlx|Completed}}
| {{Sblock}} | {{tlx|Sblock}}
| {{Possible}} | {{tlx|Possible}}
| {{Impossible}} | {{tlx|Impossible}}
| {{Possilikely}} | {{tlx|Possilikely}}
| {{Unlikely}} | {{tlx|Unlikely}}
| {{Duck}} | {{tlx|Duck}}
| {{Megaphoneduck}} | {{tlx|Megaphoneduck}}
| {{Clerk Request}} | {{tlx|Clerk Request}}
| {{Relisted}} | {{tlx|Relisted}}
| {{Nosleepers}} | {{tlx|Nosleepers}}
| {{Behaviour}} | {{tlx|Behaviour}}
| {{StaleIP}} | {{tlx|StaleIP}}
| {{8ball}} | {{tlx|8ball}}
| {{Crystalball}} | {{tlx|Crystalball}}
| {{Fishing}} | {{tlx|Fishing}}
| {{Pixiedust}} | {{tlx|Pixiedust}}
}}
{{div col end}}
===Multi-sign templates===
The following templates implement several icons:
* {{tl|AIV}} – used by [[Wikipedia:Administrator intervention against vandalism]]
* {{tl|EP}} – used for servicing requests in edit-protected areas
* {{tl|RFPP}} – used by [[Wikipedia:Requests for page protection]]
* {{tl|UAA}} – used by [[Wikipedia:Usernames for administrator attention]]
* {{tl|Smiley}} – used for informal communication purposes
===Others===
* [[Template:Resolved/See also]], the smaller family of thread-level hatnote templates, similar to this but with a box around them; any template above can be converted to one of those with {{tl|Resbox}}
* [[Template:Table cell templates/doc]], the family of table-specific templates that work only in tables
* [[:Category:Image with comment templates]]
* [[:Category:Resolution templates]]&lt;noinclude&gt;
[[Category:Documentation see also templates]]
[[Category:Image with comment templates| ]]
&lt;/noinclude&gt;</text>
<sha1>80i5u5y15cuts55n82d5s5t01y2dd8p</sha1>
</revision>
</page>
<page>
<title>Template:Donetask</title>
<ns>10</ns>
<id>27675778</id>
<revision>
<id>810135353</id>
<parentid>723448118</parentid>
<timestamp>2017-11-13T15:02:56Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Donetask]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="192">{{done|1=Task complete.}} {{{1|}}}&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Resolution templates]]
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>cnpgsridwr0p84goutwjifk1pthr810</sha1>
</revision>
</page>
<page>
<title>Template:Duck</title>
<ns>10</ns>
<id>21622125</id>
<revision>
<id>814612634</id>
<parentid>804536512</parentid>
<timestamp>2017-12-09T21:50:58Z</timestamp>
<contributor>
<username>ToThAc</username>
<id>30690290</id>
</contributor>
<minor/>
<comment>Avoiding redirect</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="157">[[File:Cyberduck icon.png|20px|alt=|link=]]&amp;nbsp;'''{{{1|It [[Wikipedia:The duck test|looks like a duck]] to me}}}'''&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>k35aeg43c99k94tyzrv3hxj12tbuodn</sha1>
</revision>
</page>
<page>
<title>Template:DuplicateProposal</title>
<ns>10</ns>
<id>30153479</id>
<revision>
<id>810206857</id>
<parentid>782447914</parentid>
<timestamp>2017-11-13T23:02:18Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:DuplicateProposal]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="271">[[File:Folder-copy.svg|28px|alt=copy]] &amp;nbsp; '''Duplicate proposal'''{{#if: {{{1|}}} | &amp;nbsp; ({{{1}}})}}&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
[[Category:Wikipedia article alerts|τ]]
}}&lt;/noinclude&gt;</text>
<sha1>9uibimcwo47sfb6h4llc3b99p7nfi5c</sha1>
</revision>
</page>
<page>
<title>Template:Duplicate bug</title>
<ns>10</ns>
<id>32468105</id>
<revision>
<id>810202697</id>
<parentid>723449413</parentid>
<timestamp>2017-11-13T22:32:19Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Duplicate bug]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="224">[[File:Pictogram voting oppose.svg|18px|link=|alt=]] '''Duplicate {{#if:{{{1|}}}|of {{{1}}}|bug}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>fok8la4brei2adjm635b3ct0q9mkb7c</sha1>
</revision>
</page>
<page>
<title>Template:Editor-Note</title>
<ns>10</ns>
<id>28432132</id>
<revision>
<id>810205479</id>
<parentid>621847624</parentid>
<timestamp>2017-11-13T22:52:21Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Editor-Note]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="774">[[File:Symbol comment vote.svg|17px|link=|alt=]] '''Editor note{{{1|}}}{{{2|:}}}'''&lt;noinclude&gt;
{{documentation|content=
==Usage==
*&lt;tt&gt;&lt;nowiki&gt;{{Editor-Note}}&lt;/nowiki&gt;&lt;/tt&gt; produces {{Editor-Note}}
*&lt;tt&gt;&lt;nowiki&gt;{{Editor-Note|s}}&lt;/nowiki&gt;&lt;/tt&gt; produces {{Editor-Note|s}}
*&lt;tt&gt;&lt;nowiki&gt;{{Editor-Note|2=}}&lt;/nowiki&gt;&lt;/tt&gt; will hide the : after note, {{Editor-Note|2=}}
*&lt;tt&gt;&lt;nowiki&gt;{{-Note|s|&amp;mdash;}}&lt;/nowiki&gt;&lt;/tt&gt; will produce {{Editor-Note|s|–}}
Et cetera. Note, if you're using parameter 2 (the part that changes the colon) and ''not'' parameter 1 (to change note to notes, or whatnot), you need to include 2= before it, or it will count it as parameter 1.
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:SPI templates]]
}}&lt;/noinclude&gt;</text>
<sha1>mo3hacwgmbqwhpjfn68rwzr1x8ptj3d</sha1>
</revision>
</page>
<page>
<title>Template:Endorse</title>
<ns>10</ns>
<id>18241764</id>
<revision>
<id>782449207</id>
<parentid>621850364</parentid>
<timestamp>2017-05-27T00:14:52Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<minor/>
<comment>adjacent text &quot;Clerk endorsed&quot; is sufficient alt text</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="226">[[File:Symbol support2 vote.svg|link=|alt=|16px|]]&amp;nbsp;'''Clerk endorsed'''&lt;noinclude&gt;{{documentation|content=
{{Pp-template|small=yes}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>jq6qssk6e7v78xkao8al2nw3pcpdty3</sha1>
</revision>
</page>
<page>
<title>Template:Expired</title>
<ns>10</ns>
<id>19638929</id>
<revision>
<id>810135671</id>
<parentid>243510802</parentid>
<timestamp>2017-11-13T15:05:02Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Expired]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="80">{{cross}}'''This offer has expired'''
&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>52jnruoioloc9i3l6ke79srd6jsrvsx</sha1>
</revision>
</page>
<page>
<title>Template:Facepalm</title>
<ns>10</ns>
<id>33289010</id>
<revision>
<id>818279535</id>
<parentid>818278524</parentid>
<timestamp>2018-01-02T17:36:10Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>self-rv. now-redundant cat.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1503">{{{{{|safesubst:}}}#switch: {{{{{|safesubst:}}}lc:{{{1}}}}} | supreme | sfod=[[File:Facepalm3.svg|{{{size|20px}}} |link= |alt=]] '''Supreme facepalm of destiny''' | #default=[[File:Facepalm3.svg|{{{size|15px}}} |link= |alt=]] '''{{{1|Facepalm}}}'''}}&lt;noinclude&gt;
{{Documentation|content=
This template can be used by editors as an &quot;expression of embarrassment, frustration, disbelief, disgust, shame or general woe&quot; (see [[Facepalm]]) '''i.e.''', as a light-hearted mockery, amusement at an unlikely lapse, or humorous disbelief at perceived idiocy, forgetfulness or mistake on your own or another editor's part. However, doing so in reference to the mistakes of others is liable to be regarded as a violation of [[WP:CIVIL|civility]].
Its use as an expression of abuse, mockery, or for the denigration of others is unacceptable. If there is any doubt that a recipient would take it in good humor, '''you should not use it'''.
[[WP:TL;DR|TLDR]]: When using this template, [[meta:Don't be a jerk|don't be a jerk]].
: ''See also: {{tl|trout}}''
== Usage ==
* {{tld|facepalm}} → {{facepalm}}
* {{tld|facepalm|size{{=}}10px}} → {{facepalm|size=10px}}
* {{tld|facepalm|supreme}} or {{tld|facepalm|sfod}} → {{facepalm|supreme}}
* {{tld|facepalm|supreme|size{{=}}10px}} → {{facepalm|supreme|size=10px}}
* {{tld|facepalm|Sorry, my mistake!}} → {{facepalm|Sorry, my mistake!}}
==See also==
{{Done/See also}}
[[Category:Wikipedia emoticons]]
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>5jlk5moilb4y0m5t0cp4ld7hl384c99</sha1>
</revision>
</page>
<page>
<title>Template:Fail</title>
<ns>10</ns>
<id>18956703</id>
<revision>
<id>810136050</id>
<parentid>639889713</parentid>
<timestamp>2017-11-13T15:07:30Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Fail]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="180">&lt;big style=&quot;color:#DF0A24; font-size:1.4em;&quot;&gt;&amp;#x2717;&lt;/big&gt;&amp;nbsp;'''Fail'''&lt;noinclude&gt;
{{Documentation|Template:No pass/doc}}
[[Category:Image with comment templates]]
&lt;/noinclude&gt;</text>
<sha1>7va7e2dd8szc6fnfvy28ois87yqzpp1</sha1>
</revision>
</page>
<page>
<title>Template:Fishing</title>
<ns>10</ns>
<id>5164305</id>
<restrictions>edit=autoconfirmed:move=autoconfirmed</restrictions>
<revision>
<id>782462468</id>
<parentid>721406272</parentid>
<timestamp>2017-05-27T02:03:02Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<minor/>
<comment>minimal alt attribute for linked image</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="163">[[File:Crystal 128 babelfish.svg|16px|alt=fish]]&amp;nbsp;'''[[WP:CheckUser|CheckUser]] is not for [[WP:NOTFISHING|fishing]]'''&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>sc8os9epyn148l3fri23erfeep5x9zh</sha1>
</revision>
</page>
<page>
<title>Template:Fixed</title>
<ns>10</ns>
<id>6061713</id>
<revision>
<id>776609276</id>
<parentid>776609197</parentid>
<timestamp>2017-04-22T03:03:56Z</timestamp>
<contributor>
<username>Xaosflux</username>
<id>502540</id>
</contributor>
<comment>Undid revision 776609197 by [[Special:Contributions/Xaosflux|Xaosflux]] ([[User talk:Xaosflux|talk]]) - see talk page</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="112">[[File:Pictogram voting keep.svg|18px|link=|alt=]] '''{{{1|Fixed}}}'''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>iciuqw2yax1k43w0n9688wdeni0645r</sha1>
</revision>
</page>
<page>
<title>Template:Fixed by reporter</title>
<ns>10</ns>
<id>14789796</id>
<revision>
<id>810201835</id>
<parentid>621835432</parentid>
<timestamp>2017-11-13T22:26:19Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Fixed by reporter]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="194">{{Fixed|Fixed by reporter}}&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Checkmark insertion templates]]
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>s5o507unlb9l6mm40i0os68xgkk36i7</sha1>
</revision>
</page>
<page>
<title>Template:GA2ndopinion</title>
<ns>10</ns>
<id>13072727</id>
<revision>
<id>810203576</id>
<parentid>621843606</parentid>
<timestamp>2017-11-13T22:38:13Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:GA2ndopinion]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="496">[[File:Symbol neutral vote.svg|15px|link=|alt=]]&amp;nbsp;'''Second opinion requested'''{{#if:{{{1&lt;includeonly&gt;|&lt;/includeonly&gt;}}}|&amp;#32;&amp;mdash;&amp;#32;I have [[Talk:{{{1|}}}|partially reviewed]] this article, but would like to request the opinion of a more experienced reviewer, or a reviewer that is more knowledgeable on the subject matter.}}&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:Wikipedia GA templates]]
}}&lt;/noinclude&gt;</text>
<sha1>70xk3haavauuc572utkjp9ntv6k3sa0</sha1>
</revision>
</page>
<page>
<title>Template:GAOnHold</title>
<ns>10</ns>
<id>6309646</id>
<revision>
<id>810203887</id>
<parentid>621844305</parentid>
<timestamp>2017-11-13T22:40:32Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:GAOnHold]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="297">{{icon|GAH}}&amp;nbsp;'''GA on hold'''{{#if:{{{1&lt;includeonly&gt;|&lt;/includeonly&gt;}}}|&amp;#32;&amp;mdash;&amp;#32;Notes left on [[Talk:{{{1|}}}|talk page]].}}&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:Wikipedia GA templates]]
}}&lt;/noinclude&gt;</text>
<sha1>l02pym7oej7bko5rzs9q3ix9ozf8gyj</sha1>
</revision>
</page>
<page>
<title>Template:Gray</title>
<ns>10</ns>
<id>4821803</id>
<revision>
<id>613849647</id>
<parentid>488791880</parentid>
<timestamp>2014-06-21T20:27:24Z</timestamp>
<contributor>
<username>Anthony Appleyard</username>
<id>119438</id>
</contributor>
<minor/>
<comment>Anthony Appleyard moved page [[Template:Grey]] to [[Template:Gray]]: Requested at [[WP:RM]] as uncontroversial ([[Special:Permalink/613843068|permalink]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="151">&lt;span style=&quot;color:gray&quot;&gt;{{{1}}}&lt;/span&gt;&lt;noinclude&gt;
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>0se1essniolp1jxmajbn58fwfmjy6un</sha1>
</revision>
</page>
<page>
<title>Template:Great</title>
<ns>10</ns>
<id>18002761</id>
<revision>
<id>804536576</id>
<parentid>782450813</parentid>
<timestamp>2017-10-09T17:20:41Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Great]]&quot;: [[WP:High-risk templates|Highly visible template]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="200">[[File:Thumbs-up-icon.svg|15px|alt=thumbs up]]&amp;nbsp;{{{1|'''''Great!'''''}}}&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>hogt8xzs0la78jy4zjrqviljh69r68j</sha1>
</revision>
</page>
<page>
<title>Template:Grey</title>
<ns>10</ns>
<id>43113154</id>
<redirect title="Template:Gray" />
<revision>
<id>819621257</id>
<parentid>613849649</parentid>
<timestamp>2018-01-10T10:52:29Z</timestamp>
<contributor>
<username>Stranger195</username>
<id>19277499</id>
</contributor>
<comment>add shell and {{R from British}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="77">#REDIRECT [[Template:Gray]]
{{Rcat shell|{{R from move}}{{R from British}}}}</text>
<sha1>70mzv6s5ub2pry9t8o7ad5gl1ki9w09</sha1>
</revision>
</page>
<page>
<title>Template:Half done</title>
<ns>10</ns>
<id>31587914</id>
<revision>
<id>810137248</id>
<parentid>721351721</parentid>
<timestamp>2017-11-13T15:14:09Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Half done]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="218">[[File:yellow check.svg|18px|Check mark|alt=yellow tick|link=]]&lt;span style=&quot;display:none&quot;&gt;Y&lt;/span&gt; '''{{{{{|safesubst:}}}ucfirst:{{{1|Half done}}}}}'''&lt;!--template:half done--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>dg3rtxcu7a6hhggbowxc903wdb2wtln</sha1>
</revision>
</page>
<page>
<title>Template:Helped</title>
<ns>10</ns>
<id>35944006</id>
<revision>
<id>810135271</id>
<parentid>788079950</parentid>
<timestamp>2017-11-13T15:02:22Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Helped]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="354">[[File:Yes check.svg|20px|link=|alt=]] '''{{ucfirst:{{{1|Helped}}}}}'''&lt;!--template:helped--&gt;&lt;noinclude&gt;{{documentation|content=
==Usage==
You may either use {{tlx|Helped}} by itself for the default message or you may add a custom message as an optional parameter.
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>sxgfdsumjhso0tyvlnj8vv440oagqkc</sha1>
</revision>
</page>
<page>
<title>Template:High priority</title>
<ns>10</ns>
<id>52809884</id>
<revision>
<id>810204767</id>
<parentid>782462240</parentid>
<timestamp>2017-11-13T22:46:50Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:High priority]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="236">[[File:Exclamationdiamond.svg|30px|link=|alt=]]&amp;nbsp;'''{{{1|High Priority}}}'''{{{{{|safesubst:}}}#if:{{{note|{{{reason|}}}}}}|&lt;nowiki /&gt;: {{{note|{{{reason}}}}}}}}&lt;!--template:High priority--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>hcrpobs3jmqi3z7v0aenyly9p4ufecp</sha1>
</revision>
</page>
<page>
<title>Template:Hmmm</title>
<ns>10</ns>
<id>29322247</id>
<revision>
<id>599375292</id>
<parentid>599375247</parentid>
<timestamp>2014-03-13T01:47:40Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Hmmm: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="178">[[File:Blue question mark (italic).svg|{{{{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|20}}px|alt=??|link=]]&lt;span style=&quot;display:none&quot;&gt;??&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>sqjkylig65p6arry3mwshg65ngln1ti</sha1>
</revision>
</page>
<page>
<title>Template:IPblock</title>
<ns>10</ns>
<id>8076357</id>
<revision>
<id>621836182</id>
<parentid>609665832</parentid>
<timestamp>2014-08-18T22:35:32Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>updte</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="119">[[File:Artículo bueno-blue.svg|16px|link=|alt=]]&amp;nbsp;'''{{{1|IP blocked}}}'''&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>dz9p0r1u7wlws9sw2yrbhewmr7ee9yw</sha1>
</revision>
</page>
<page>
<title>Template:Idea</title>
<ns>10</ns>
<id>34015983</id>
<revision>
<id>810205999</id>
<parentid>776609774</parentid>
<timestamp>2017-11-13T22:56:00Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Idea]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="120">[[File:Bulbgraph.svg|18px|link=|alt=]] '''{{{1|Idea}}}:'''&lt;!--template:idea--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>6c44xxarelzyw64ycc15p4tslvk4f0l</sha1>
</revision>
</page>
<page>
<title>Template:Implemented</title>
<ns>10</ns>
<id>28846789</id>
<revision>
<id>810134147</id>
<parentid>782406720</parentid>
<timestamp>2017-11-13T14:53:59Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Implemented]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="627">{{#switch:{{{2}}}|#default=[[File:Artículo bueno.svg|20px|link=|alt=]]|b=[[File:Gnome-emblem-default.svg|28px|link=|alt=]]}}&amp;nbsp;'''Implemented'''{{#if: {{{1|}}} | &amp;nbsp;({{{1}}})}}&lt;!--template:implemented--&gt;&lt;noinclude&gt;{{documentation|content=
==Usage==
;Optional parameters
:The first unnamed parameter adds additional text: {{tlx|Implemented|additional text}}
::{{implemented|additional text}}
:If &lt;code&gt;b&lt;/code&gt; is given as the second unnamed parameter, an alternate image is shown: {{tlx|Implemented|&amp;nbsp;|b}}
::{{implemented||b}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>i8gxznvjl7a55sidurxabill6esln98</sha1>
</revision>
</page>
<page>
<title>Template:Impossible</title>
<ns>10</ns>
<id>34338669</id>
<revision>
<id>810208178</id>
<parentid>621951492</parentid>
<timestamp>2017-11-13T23:11:35Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Impossible]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="167">[[File:Symbol no support vote.svg|16px|Action was not done and/or was not feasible|link=|alt=]]&amp;nbsp;'''{{{1|Not possible}}}'''&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>803bqd7h7dhl941mq5p8dyxiz5qt4h5</sha1>
</revision>
</page>
<page>
<title>Template:Inconclusive</title>
<ns>10</ns>
<id>5358393</id>
<revision>
<id>621951618</id>
<parentid>609665838</parentid>
<timestamp>2014-08-19T18:55:11Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>add doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="300">[[File:Symbol unsupport vote.svg|16px|link=|alt=]]&amp;nbsp;'''Inconclusive'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|Inconclusive}} on a talk page makes the following appear:
:{{Inconclusive}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>r3rmaz6zik6e33att5tcotpanxqb451</sha1>
</revision>
</page>
<page>
<title>Template:InfoNeeded</title>
<ns>10</ns>
<id>6061804</id>
<revision>
<id>810205685</id>
<parentid>723450235</parentid>
<timestamp>2017-11-13T22:53:46Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:InfoNeeded]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="197">[[File:Crystal Clear app help index.png|20px|alt=|link=]]&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Wikipedia-specific image insertion templates]]
}}&lt;/noinclude&gt;</text>
<sha1>lz72vw6fori0nbw7whhzg6x3t9is7ui</sha1>
</revision>
</page>
<page>
<title>Template:Inprogress</title>
<ns>10</ns>
<id>12601342</id>
<revision>
<id>791561414</id>
<parentid>782462971</parentid>
<timestamp>2017-07-21T02:08:14Z</timestamp>
<contributor>
<username>Mz7</username>
<id>11916782</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Inprogress]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="129">[[File:Crystal Clear app clock-orange.svg|16px|alt=clock]]&amp;nbsp;'''{{{1|In progress}}}'''&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>8d6ld5oho35gp4gdg1jx01h5ghrlb18</sha1>
</revision>
</page>
<page>
<title>Template:Invalid</title>
<ns>10</ns>
<id>12007403</id>
<revision>
<id>621842915</id>
<parentid>351191072</parentid>
<timestamp>2014-08-18T23:41:33Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>add doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="216">[[File:Pictogram voting oppose.svg|18px|link=|alt=]] '''Invalid'''&lt;noinclude&gt;{{documentation|content=
{{Pp-template|small=yes}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>jul8xdl0dki665xvpmywn8q118x1xxk</sha1>
</revision>
</page>
<page>
<title>Template:Investigating</title>
<ns>10</ns>
<id>28846743</id>
<revision>
<id>810205856</id>
<parentid>782462071</parentid>
<timestamp>2017-11-13T22:55:01Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Investigating]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="194">[[Image:Symbol question.svg|20px|link=|alt=]]&amp;nbsp;'''Investigating'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>bw5qs1ddygghbwx7zd2xam9hdhesgv6</sha1>
</revision>
</page>
<page>
<title>Template:Ipbedone</title>
<ns>10</ns>
<id>36194362</id>
<revision>
<id>810202093</id>
<parentid>504283372</parentid>
<timestamp>2017-11-13T22:28:11Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Ipbedone]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="131">[[Image:Artículo bueno-blue.svg|16px|link=|alt=]] '''{{{1|IP block exemption granted}}}'''&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>p1zz90smztigs2wl2w0q3i9s84duf39</sha1>
</revision>
</page>
<page>
<title>Template:Isdoing</title>
<ns>10</ns>
<id>19342371</id>
<revision>
<id>810204483</id>
<parentid>717164553</parentid>
<timestamp>2017-11-13T22:44:58Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Isdoing]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="167">[[Image:Pictogram voting wait.svg|17px|link=|alt=]]&amp;nbsp;'''[[User:{{{1|}}}|{{{1|}}}]] is doing...'''&lt;!--template:isdoing--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>exiwts1tjz07vnthj6773iwcmyx0w7w</sha1>
</revision>
</page>
<page>
<title>Template:Later</title>
<ns>10</ns>
<id>12007418</id>
<revision>
<id>810204345</id>
<parentid>613160639</parentid>
<timestamp>2017-11-13T22:44:00Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Later]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="203">[[Image:Pictogram voting wait.svg|18px|link=|alt=]] '''Later'''&lt;noinclude&gt;
{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
}}
&lt;/noinclude&gt;</text>
<sha1>9ipbxx2mmurcezvakf3p69np4wrbrqj</sha1>
</revision>
</page>
<page>
<title>Template:Like</title>
<ns>10</ns>
<id>24865203</id>
<revision>
<id>662210596</id>
<parentid>659296902</parentid>
<timestamp>2015-05-13T21:18:10Z</timestamp>
<contributor>
<username>Salvidrim!</username>
<id>10051232</id>
</contributor>
<comment>Reverted to revision 599397654 by [[Special:Contributions/Callanecc|Callanecc]] ([[User talk:Callanecc|talk]]): Tfd closed as keeep. ·</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1261">{{#switch:{{lc:{{{icon|}}}}}
|old = &lt;span style=&quot;display:inline-block;padding:0 .5em;line-height:1.80em;border:1px solid; {{border-radius|3px}}; text-align:center;&quot;&gt;[[File:{{{image|Symbol thumbs up.svg}}} |text-top|link=|alt=👍|16px]]&amp;nbsp;{{#if:{{{num|}}}|{{{num|}}} {{PLURAL:{{{num|}}}|user {{{1|likes}}}|users {{{1|like}}}}} this.|{{#if:{{{username|}}}| [[User:{{{username|}}}|{{{username|}}}]] likes this.|{{{1|Like}}}}}}}&lt;/span&gt;
|fb = &lt;span style=&quot;display:inline-block;padding:0 .5em;line-height:1.80em;border:1px solid #CAD4E7; font-family:'Lucida Grande',Tahoma,Verdana,sans-serif; {{border-radius|3px}} background:#ECEEF5; text-align:center;&quot;&gt;[[File:{{{image|Facebook like thumb.png}}} |text-top|link=|alt=👍|16px]]&amp;nbsp;&lt;span style=&quot;color:#3B5998;&quot;&gt;{{#if:{{{num|}}}|{{{num|}}} {{PLURAL:{{{num|}}}|user {{{1|likes}}}|users {{{1|like}}}}} this.|{{#if:{{{username|}}}| [[User:{{{username|}}}|{{{username|}}}]] likes this.|{{{1|Like}}}}}}}&lt;/span&gt;&lt;/span&gt;
|[[File:{{{image|Wikipedia like.png}}} |25px|link=|alt=👍]] '''{{#if:{{{num|}}}|{{{num|}}} {{PLURAL:{{{num|}}}|user {{{1|likes}}}|users {{{1|like}}}}} this.|{{#if:{{{username|}}}| [[User:{{{username|}}}|{{{username|}}}]] likes this.|{{{1|Like}}}}}}}'''}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>sko6q5dpe07t4k1011s51buwhlq038r</sha1>
</revision>
</page>
<page>
<title>Template:Likely</title>
<ns>10</ns>
<id>5218318</id>
<revision>
<id>621950686</id>
<parentid>609665844</parentid>
<timestamp>2014-08-19T18:46:23Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>add doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="292">[[File:Symbol support vote.svg|16px|link=|alt=]]&amp;nbsp;'''Likely'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|Likely}} makes the following appear:
:{{Likely}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:SPI templates]]
}}&lt;/noinclude&gt;</text>
<sha1>rrac1fk6x8e40wfteam046zw4clvg3a</sha1>
</revision>
</page>
<page>
<title>Template:Marked</title>
<ns>10</ns>
<id>37878766</id>
<revision>
<id>810135496</id>
<parentid>723448499</parentid>
<timestamp>2017-11-13T15:03:51Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Marked]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="256">&lt;span style=&quot;font-size:x-large;color:green&quot;&gt;&amp;#x2713;&lt;/span&gt;&lt;noinclude&gt;{{documentation|content=
==Usage==
:&lt;code&gt;{{tld|marked}}&lt;/code&gt;
==See also==
*{{tl|Yes check}}
{{done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
}}&lt;/noinclude&gt;</text>
<sha1>ipouxfd5qfggf3fgtjaic7y6asff8mb</sha1>
</revision>
</page>
<page>
<title>Template:Megaphoneduck</title>
<ns>10</ns>
<id>28120099</id>
<revision>
<id>810208251</id>
<parentid>751635426</parentid>
<timestamp>2017-11-13T23:12:12Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Megaphoneduck]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="431">{{#ifeq:{{lc:{{{1|}}}}}|ultimate |[[File:Cyberduck icon.png|35px|alt=|link=]][[File:Gnome-audio-volume-high.svg|35px|alt=|link=]]&amp;nbsp;'''1.75x amplified ultimate quack of ultimate destiny''' |[[File:Cyberduck icon.png|20px|alt=|link=]][[File:Gnome-audio-volume-high.svg|20px|alt=|link=]]&amp;nbsp;'''{{{1|It [[Wikipedia:The duck test|sounds like a duck]] quacking into a megaphone to me}}}'''}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>nrp077ydcl3vuzthd2sdvu3f0k23n7q</sha1>
</revision>
</page>
<page>
<title>Template:Merge done</title>
<ns>10</ns>
<id>21268391</id>
<revision>
<id>810135468</id>
<parentid>776609837</parentid>
<timestamp>2017-11-13T15:03:40Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Merge done]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="228">[[File:Merge-arrows.svg|Merge arrows|32px|link=|alt=]]&amp;nbsp;&amp;nbsp;{{{{{|safesubst:}}}tick|18}}&amp;nbsp;'''[[Wikipedia:Merging|Merger]] complete.''' {{#if:{{{1|}}}|&lt;small&gt;{{{1}}}&lt;/small&gt;|}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>3mefv2nipd5hqqn5zkv9sjz8tf17vbd</sha1>
</revision>
</page>
<page>
<title>Template:MoreInfo</title>
<ns>10</ns>
<id>5103042</id>
<restrictions>edit=autoconfirmed:move=autoconfirmed</restrictions>
<revision>
<id>610103662</id>
<parentid>609665850</parentid>
<timestamp>2014-05-25T18:46:18Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>allow wrap if {{{wrap}}} set</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="177">&lt;span class=&quot;{{#if:{{{wrap|}}} | |no}}wrap&quot;&gt;[[File:Symbol question.svg|16px|link=|alt= ]]&amp;nbsp;'''Additional information needed'''&lt;/span&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>4dgw37797ypvbjut9nf5ainjnwehfm0</sha1>
</revision>
</page>
<page>
<title>Template:Moved to commons</title>
<ns>10</ns>
<id>32737835</id>
<revision>
<id>810206893</id>
<parentid>723450984</parentid>
<timestamp>2017-11-13T23:02:35Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Moved to commons]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="222">[[File:Symbol redirect vote.svg|20px|link=|alt=]]&amp;nbsp;'''{{{1|Moved to Commons}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
}}&lt;/noinclude&gt;</text>
<sha1>gjpvtu1lw5yhm05tdwuw7n635xk5vvj</sha1>
</revision>
</page>
<page>
<title>Template:N&amp;</title>
<ns>10</ns>
<id>21457601</id>
<revision>
<id>810136101</id>
<parentid>621838917</parentid>
<timestamp>2017-11-13T15:07:47Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:N&amp;]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="240">&lt;span style=&quot;color:red;&quot; alt=&quot;Red X&quot; title=&quot;Red X&quot;&gt;&amp;#x2717;&lt;/span&gt;&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Resolution templates]]
[[Category:Wikipedia-specific image insertion templates]]
}}&lt;/noinclude&gt;</text>
<sha1>rz8op5hzn6f4xdvo41d1ofrt4m6xx8y</sha1>
</revision>
</page>
<page>
<title>Template:N.b.</title>
<ns>10</ns>
<id>26137341</id>
<revision>
<id>810204808</id>
<parentid>735672710</parentid>
<timestamp>2017-11-13T22:47:10Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:N.b.]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="158">[[File:Ambox Content.svg|23px|Nota bene|alt=Nota bene|link=]]&lt;span style=&quot;display:none&quot;&gt;*&lt;/span&gt;&lt;!--Template:N.b.--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>o7w52vspvgk7a8ds25o3c2w29hqd80o</sha1>
</revision>
</page>
<page>
<title>Template:N/A icon</title>
<ns>10</ns>
<id>32245529</id>
<revision>
<id>810203448</id>
<parentid>782449136</parentid>
<timestamp>2017-11-13T22:37:17Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:N/A icon]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="232">[[File:Symbol_unsupport_vote.svg|18px|link=|alt=]] '''{{{{{|safesubst:}}}ucfirst:{{{1|Not Applicable}}}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>gc78u825s3rwm6k3d9vodz4p2g1r07i</sha1>
</revision>
</page>
<page>
<title>Template:Na</title>
<ns>10</ns>
<id>34043929</id>
<revision>
<id>819689342</id>
<parentid>755386272</parentid>
<timestamp>2018-01-10T19:25:50Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Na]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="415">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;data-sort-value=&quot;{{{sort|No}}}&quot; style=&quot;background: {{{color|#FFD2D2}}}; color:black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-no2&quot; {{#if:{{{rowspan|}}}|rowspan=&quot;{{{rowspan}}}&quot;}} | {{{text|[[File:Dark Red x.svg|13px|link={{{link|}}}|{{{1|No}}}]]}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}&lt;/noinclude&gt;</text>
<sha1>kydq4q3kwa02stgqxzehmpo81fh1umd</sha1>
</revision>
</page>
<page>
<title>Template:Navbar-header</title>
<ns>10</ns>
<id>5624434</id>
<revision>
<id>772147365</id>
<parentid>596225820</parentid>
<timestamp>2017-03-25T16:04:14Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Navbar-header]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (in...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="572">&lt;div style=&quot;text-align:center; position:relative; white-space:nowrap; {{#if:{{{fontcolor|}}}| color:{{{fontcolor}}};}}&quot;&gt;{{{1}}}&lt;!--
--&gt;{{Navbar
| 1 = {{{2&lt;noinclude&gt;|Navbar-header&lt;/noinclude&gt;}}}
| {{#ifeq: {{{plain|}}}
|&lt;!--equals:--&gt;1
|&lt;!--then:--&gt;plain
|&lt;!--else:--&gt;mini
}} = 1
| style = position:absolute; right:0; top:0; margin:0 5px;
| {{#if: {{{fontcolor|}}}
| fontstyle | NULL }} = color:{{{fontcolor}}};
}}&lt;!--
--&gt;&lt;/div&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add cats and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>o2nxx1w6kf5t2fjkytkr25ca8g8w0ob</sha1>
</revision>
</page>
<page>
<title>Template:Nay</title>
<ns>10</ns>
<id>4894706</id>
<revision>
<id>810135930</id>
<parentid>713195618</parentid>
<timestamp>2017-11-13T15:06:49Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Nay]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="118">[[File:Red x.svg|13px|alt=Red X|link=]]&lt;span style=&quot;display: none;&quot;&gt;N&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>pv0kgw2wx2harjo87rxg5sjm9rs7iq2</sha1>
</revision>
</page>
<page>
<title>Template:Nc</title>
<ns>10</ns>
<id>36035052</id>
<redirect title="Template:No comment IP" />
<revision>
<id>810564987</id>
<parentid>810305255</parentid>
<timestamp>2017-11-16T01:37:45Z</timestamp>
<contributor>
<username>BU Rob13</username>
<id>25420061</id>
</contributor>
<comment>this breaks the redirect</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="36">#REDIRECT [[Template:No comment IP]]</text>
<sha1>l4x12tifm3ehdqaadzornw8h41n388b</sha1>
</revision>
</page>
<page>
<title>Template:NeedsDiscussion</title>
<ns>10</ns>
<id>28846806</id>
<revision>
<id>810204633</id>
<parentid>776609517</parentid>
<timestamp>2017-11-13T22:45:54Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:NeedsDiscussion]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="152">[[Image:Pictogram voting info.svg|20px|link=|alt=]]&amp;nbsp;'''Needs discussion'''&lt;!--Template:NeedsDiscussion--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>hyvug6b1ej9jmnpaltk4f6opbfbv3r7</sha1>
</revision>
</page>
<page>
<title>Template:NewBug</title>
<ns>10</ns>
<id>28847308</id>
<revision>
<id>810206732</id>
<parentid>782447811</parentid>
<timestamp>2017-11-13T23:01:25Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:NewBug]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="271">[[File:Green bug.svg|28px|alt=bug]] &amp;nbsp; '''New bug'''{{#if: {{{1|}}} | &amp;nbsp; ({{{1}}})}}
&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
[[Category:Wikipedia article alerts|Τ]]
}}&lt;/noinclude&gt;</text>
<sha1>iry5uc0eejh9dvmun7wic8qtv1emong</sha1>
</revision>
</page>
<page>
<title>Template:NewProposal</title>
<ns>10</ns>
<id>30139996</id>
<revision>
<id>810206040</id>
<parentid>786884361</parentid>
<timestamp>2017-11-13T22:56:19Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:NewProposal]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="293">[[File:Dialog-information on.svg|28px|alt=light bulb]]&amp;nbsp;'''New proposal'''{{#if: {{{1|}}} | &amp;nbsp; ({{{1}}})}}
&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
[[Category:Wikipedia article alerts|Τ]]
}}&lt;/noinclude&gt;</text>
<sha1>jxcaoguvq6wheg0zdl0424aqvru70tc</sha1>
</revision>
</page>
<page>
<title>Template:No action</title>
<ns>10</ns>
<id>23451757</id>
<revision>
<id>810202745</id>
<parentid>782449720</parentid>
<timestamp>2017-11-13T22:32:40Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:No action]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="180">[[File:Symbol declined.svg|16px|alt=no]] '''No action'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>l77c4fmgc9o6ecf2rqujezbcxk9nuif</sha1>
</revision>
</page>
<page>
<title>Template:No comment IP</title>
<ns>10</ns>
<id>34664930</id>
<revision>
<id>810202859</id>
<parentid>695540375</parentid>
<timestamp>2017-11-13T22:33:28Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:No comment IP]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="557">[[Image:Symbol oppose vote.svg|16px|link=|alt=]]&amp;nbsp;'''No comment'''&amp;nbsp;{{{1|with respect to IP address(es)}}}&lt;noinclude&gt;{{documentation|content=
==Using this template==
&lt;code&gt;&lt;nowiki&gt;{{nc}}&lt;/nowiki&gt;&lt;/code&gt; ('''n'''o '''c'''omment) is a shorthand redirect for this template.
&lt;code&gt;&lt;nowiki&gt;{{nc}}&lt;/nowiki&gt;&lt;/code&gt; gives {{nc}}
&lt;code&gt;&lt;nowiki&gt;{{nc|the anonymous accounts}}&lt;/nowiki&gt;&lt;/code&gt; gives {{no comment IP|with respect to the anonymous accounts}}
==See also==
{{done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
}}&lt;/noinclude&gt;</text>
<sha1>jdyzvu420ffr3q0kzq6ycxwpkf0ey0o</sha1>
</revision>
</page>
<page>
<title>Template:No mark</title>
<ns>10</ns>
<id>3646079</id>
<revision>
<id>810135957</id>
<parentid>782407069</parentid>
<timestamp>2017-11-13T15:06:58Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:No mark]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="322">{{Main other||[[File:X mark.svg|11px|link=|alt=]]&amp;nbsp;No}}&lt;noinclude&gt;{{documentation|content=
{{Warning|{{tl|No mark}} should not be used in [[WP:WIAA|articles]] per [[MOS:ICONDECORATION]].}}
==Usage==
:&lt;code&gt;{{tld|No mark}}&lt;/code&gt;
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>nz4y8hfn4tnohce4m0ghf3ti4zlk32g</sha1>
</revision>
</page>
<page>
<title>Template:No pass</title>
<ns>10</ns>
<id>43029465</id>
<revision>
<id>810135995</id>
<parentid>635522745</parentid>
<timestamp>2017-11-13T15:07:12Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:No pass]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="163">&lt;span style=&quot;color: red; font-size: 1.8em;&quot;&gt;&amp;#x2717;&lt;/span&gt;&amp;nbsp;'''No pass'''&lt;noinclude&gt;
{{documentation}}
[[Category:Image with comment templates]]&lt;/noinclude&gt;</text>
<sha1>a2azqqxyb0j09ppr8z1bkv6ishqzr2a</sha1>
</revision>
</page>
<page>
<title>Template:Nocomment</title>
<ns>10</ns>
<id>25139669</id>
<revision>
<id>810202787</id>
<parentid>609665862</parentid>
<timestamp>2017-11-13T22:33:05Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Nocomment]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="97">[[Image:Symbol declined.svg|16px|link=|alt=]]&amp;nbsp;'''No comment'''&lt;noinclude&gt;{{doc}}&lt;/noinclude&gt;</text>
<sha1>04u4du1ppdqsdaqohnyl4uzqmx1fqx2</sha1>
</revision>
</page>
<page>
<title>Template:Nojoy</title>
<ns>10</ns>
<id>30215045</id>
<revision>
<id>810136500</id>
<parentid>782407708</parentid>
<timestamp>2017-11-13T15:10:02Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Nojoy]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="284">[[File:Symbol unrelated.svg|17px|link=|alt=]] '''No technical evidence'''&lt;!--template:nojoy--&gt;&lt;noinclude&gt;{{documentation|content=
==Usage==
:{{tlx|Nojoy}}
==See also==
{{done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
[[Category:SPI templates]]
}}&lt;/noinclude&gt;</text>
<sha1>7hpj7udgny0nk63qb0ghlmetgw7c758</sha1>
</revision>
</page>
<page>
<title>Template:Nosleepers</title>
<ns>10</ns>
<id>43240477</id>
<revision>
<id>810180556</id>
<parentid>723451737</parentid>
<timestamp>2017-11-13T20:00:06Z</timestamp>
<contributor>
<username>Ymblanter</username>
<id>14596827</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Nosleepers]]&quot;: [[WP:High-risk templates|Highly visible template]]: request at [[WP:RFPP]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="285">[[File:Nuvola apps remote green.png|16px|link=|alt=]]&amp;nbsp;'''No sleepers{{{1| [[WP:PIXIEDUST|immediately visible]]}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
[[Category:SPI templates]]
}}&lt;/noinclude&gt;</text>
<sha1>8bqjlxbrb0c4t9o78fpjsp7ftryiovj</sha1>
</revision>
</page>
<page>
<title>Template:NotBug</title>
<ns>10</ns>
<id>28846862</id>
<revision>
<id>810202644</id>
<parentid>782449886</parentid>
<timestamp>2017-11-13T22:32:00Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:NotBug]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="183">[[File:Symbol declined.svg|20px|alt=no]]&amp;nbsp;'''Not bug'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>db7hgfexnblw39aea5mw3gtddlpw3xh</sha1>
</revision>
</page>
<page>
<title>Template:Not a bug</title>
<ns>10</ns>
<id>41836434</id>
<revision>
<id>810136386</id>
<parentid>750238912</parentid>
<timestamp>2017-11-13T15:09:24Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Not a bug]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="179">{{Wontfix|Not a bug}}&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:Resolution templates]]
}}&lt;/noinclude&gt;</text>
<sha1>lrd5eiznwr0zz50mjh8g5wsx9wyd419</sha1>
</revision>
</page>
<page>
<title>Template:Not done</title>
<ns>10</ns>
<id>6865545</id>
<revision>
<id>776610353</id>
<parentid>776604245</parentid>
<timestamp>2017-04-22T03:15:06Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>Per [[Wikipedia:Alternative text for images#Examples]], the icon is purely decorative and does not need alt text.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="124">[[File:X mark.svg|18px|link=|alt=]] '''{{{1|Not done}}}'''&lt;!--template:not done--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>7lqeu2bz529hfw7vzcvat5h7d5gr8gj</sha1>
</revision>
</page>
<page>
<title>Template:Not done-t</title>
<ns>10</ns>
<id>16498704</id>
<revision>
<id>678691771</id>
<parentid>635561666</parentid>
<timestamp>2015-08-31T01:12:15Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Not done-t: Highly visible template; lowering to template protection ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only administrators] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="153">&lt;span style=&quot;color:#C30; font-size:1.4em;&quot;&gt;&amp;#x2717;&lt;/span&gt;&amp;nbsp;'''{{{1|Not done}}}'''&lt;!--template:not done-t--&gt;&lt;noinclude&gt;
{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>54xa7sftapox89k6uuvxmqgndqbgsxw</sha1>
</revision>
</page>
<page>
<title>Template:Not done not likely</title>
<ns>10</ns>
<id>26384711</id>
<revision>
<id>810135803</id>
<parentid>610098658</parentid>
<timestamp>2017-11-13T15:05:59Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Not done not likely]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="149">{{{{{|safesubst:}}}cross|18}} '''{{{{{|safesubst:}}}ucfirst:{{{1|Not done and not likely to be done}}}}}'''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>3e5txufh8tqghwmr6q21obf3eamejqf</sha1>
</revision>
</page>
<page>
<title>Template:Not sure</title>
<ns>10</ns>
<id>25088797</id>
<revision>
<id>810205750</id>
<parentid>452765520</parentid>
<timestamp>2017-11-13T22:54:11Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Not sure]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="115">[[File:Purple question mark.svg|18px|link=|alt= ]] '''{{{1|Not sure}}}'''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>j3iwn5z3tr7gazj3rahwfdutbfiadsk</sha1>
</revision>
</page>
<page>
<title>Template:Notabug</title>
<ns>10</ns>
<id>52314525</id>
<redirect title="Template:Not a bug" />
<revision>
<id>810136362</id>
<parentid>750238915</parentid>
<timestamp>2017-11-13T15:09:16Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Notabug]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="49">#REDIRECT [[Template:Not a bug]]
{{R from move}}</text>
<sha1>5bgxfotlanynzdz8uugnivma9t1qg0b</sha1>
</revision>
</page>
<page>
<title>Template:Note2</title>
<ns>10</ns>
<id>21215565</id>
<revision>
<id>810204678</id>
<parentid>782462901</parentid>
<timestamp>2017-11-13T22:46:12Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Note2]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="408">[[File:Pictogram voting info.svg|20px|link=|alt=]] '''{{ucfirst:{{{1|Note:}}}}}'''&lt;!--template:note2--&gt;&lt;noinclude&gt;
{{documentation|content=
{{Distinguish|Template:Note}}
==Usage==
You may either use {{tlx|Note2}} by itself for the default message or you may add a custom message as an optional parameter.
==See also==
{{done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
}}&lt;/noinclude&gt;</text>
<sha1>leq2ijvklxq0jsnohho6wj36b9xb5jr</sha1>
</revision>
</page>
<page>
<title>Template:Notfixed</title>
<ns>10</ns>
<id>23211250</id>
<revision>
<id>810136410</id>
<parentid>682147447</parentid>
<timestamp>2017-11-13T15:09:33Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Notfixed]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="226">[[File:Pictogram voting delete.svg|18px|link=|alt=]] '''Not fixed'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:Resolution templates]]
}}&lt;/noinclude&gt;</text>
<sha1>79kk4g1eriv4jacj0nen10vwz75ontt</sha1>
</revision>
</page>
<page>
<title>Template:Notsure</title>
<ns>10</ns>
<id>15429243</id>
<revision>
<id>810205816</id>
<parentid>627176978</parentid>
<timestamp>2017-11-13T22:54:45Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Notsure]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="334">[[Image:Symbol question.svg|20px|alt=|link=]] '''Not sure. '''&lt;noinclude&gt;
{{#invoke:documentation|main|_content={{ {{#invoke:documentation|contentTitle}}}}}}
&lt;!--Categories where indicated at the bottom of this page, please; interwikis at Wikidata (see [[Wikipedia:Wikidata]])--&gt;
[[Category:Image with comment templates]]
&lt;/noinclude&gt;</text>
<sha1>7om104ifglcopwj3q9sftcx076al16a</sha1>
</revision>
</page>
<page>
<title>Template:Ns0</title>
<ns>10</ns>
<id>24382166</id>
<redirect title="Template:Main other" />
<revision>
<id>323931230</id>
<parentid>315384918</parentid>
<timestamp>2009-11-04T18:26:18Z</timestamp>
<contributor>
<username>Davidgothberg</username>
<id>109101</id>
</contributor>
<comment>Redirecting to [[Template:Main other]], since that one is compatible with this one. I have discussed this with Rich who created this template, and he is okay with it.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="33">#REDIRECT [[Template:Main other]]</text>
<sha1>dvqyxp27hv2ap4cn236u5axdbx0r3vd</sha1>
</revision>
</page>
<page>
<title>Template:OnHoldUntil</title>
<ns>10</ns>
<id>22887616</id>
<revision>
<id>810203964</id>
<parentid>621844427</parentid>
<timestamp>2017-11-13T22:41:09Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:OnHoldUntil]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="193">[[File:Symbol wait.svg|15px|link=|alt=]] '''On hold until {{{1|}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>igfvm4c3uj4ongslu1qjzylqep4h9sy</sha1>
</revision>
</page>
<page>
<title>Template:On hold</title>
<ns>10</ns>
<id>17200123</id>
<revision>
<id>794649601</id>
<parentid>621844373</parentid>
<timestamp>2017-08-09T07:43:03Z</timestamp>
<contributor>
<username>Mz7</username>
<id>11916782</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:On hold]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="186">[[File:Symbol wait.svg|15px|link=|alt=]] '''{{{1|On hold}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>b1bbf06o8ptdfjf0knspdjy86mlnw6b</sha1>
</revision>
</page>
<page>
<title>Template:Opblocked</title>
<ns>10</ns>
<id>15688064</id>
<revision>
<id>810136287</id>
<parentid>782407497</parentid>
<timestamp>2017-11-13T15:08:49Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Opblocked]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="259">[[File:Pictogram voting delete.svg|20px|link=|alt=]] '''Blocked'''&lt;noinclude&gt;{{documentation|content=
A block notice for [[WP:OP|Wikipedia:WikiProject on open proxies]].
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>638g2jcngfq02qn127gxfpxrtah1c59</sha1>
</revision>
</page>
<page>
<title>Template:Orz</title>
<ns>10</ns>
<id>33577207</id>
<revision>
<id>810206937</id>
<parentid>723447817</parentid>
<timestamp>2017-11-13T23:02:56Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Orz]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="205">[[File:Symbol 囧 vote.svg|20px|alt=|link=]] &lt;big&gt;'''Orz...'''&lt;/big&gt;&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
}}&lt;/noinclude&gt;</text>
<sha1>sx2e1ll2zpimfjzjp9qz8zr59syt9pt</sha1>
</revision>
</page>
<page>
<title>Template:PImplemented</title>
<ns>10</ns>
<id>28849358</id>
<revision>
<id>810134217</id>
<parentid>782406409</parentid>
<timestamp>2017-11-13T14:54:23Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:PImplemented]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="393">[[File:Checkhalf.png|20px|alt=check]] '''{{ucfirst:{{{1|Partially implemented}}}}}'''&lt;!--Template:PImplemented--&gt;&lt;noinclude&gt;{{documentation|content=
==Usage==
You may either use {{tlx|PImplemented}} by itself for the default message or you may add a custom message as an optional parameter.
==See also==
{{done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
}}&lt;/noinclude&gt;</text>
<sha1>6ky2v5xunnxfmyqrrcj8yj7ppc3dsba</sha1>
</revision>
</page>
<page>
<title>Template:Partly done</title>
<ns>10</ns>
<id>31837845</id>
<revision>
<id>810137273</id>
<parentid>721352045</parentid>
<timestamp>2017-11-13T15:14:17Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Partly done]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="222">[[File:yellow check.svg|18px|Check mark|alt=yellow tick|link=]]&lt;span style=&quot;display:none&quot;&gt;Y&lt;/span&gt; '''{{{{{|safesubst:}}}ucfirst:{{{1|Partly done}}}}}'''&lt;!--template:partly done--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>4tia7uieeqx6wqsvpj9oxwwuyb6zblw</sha1>
</revision>
</page>
<page>
<title>Template:Partly done-t</title>
<ns>10</ns>
<id>36423384</id>
<revision>
<id>810137291</id>
<parentid>715225331</parentid>
<timestamp>2017-11-13T15:14:26Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Partly done-t]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="156">&lt;big style=&quot;color: goldenrod; font-size:1.6em;&quot;&gt;&amp;#x2713;&lt;/big&gt;&amp;nbsp;'''{{{1|Partly done}}}'''&lt;!--template:done-t--&gt;&lt;noinclude&gt;
{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>kj6445eo91l72jmtaflnxc8qr2ivqwy</sha1>
</revision>
</page>
<page>
<title>Template:Pass</title>
<ns>10</ns>
<id>20845047</id>
<revision>
<id>819682646</id>
<parentid>635522239</parentid>
<timestamp>2018-01-10T18:59:36Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Pass]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefini...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="261">&lt;span style=&quot;font-size: 1.8em; color: #24B14C;&quot;&gt;✓&lt;/span&gt;&amp;nbsp;'''Pass'''&lt;noinclude&gt;
{{Documentation
| content =
{{Done/See also}}
[[Category:Checkmark insertion templates]]
[[Category:Image with comment templates]]
}}&lt;!--(end Documentation)--&gt;
&lt;/noinclude&gt;</text>
<sha1>6qp967mkrwm4cekk2p58ejxb8vwap1w</sha1>
</revision>
</page>
<page>
<title>Template:Pblock</title>
<ns>10</ns>
<id>36289253</id>
<revision>
<id>810202168</id>
<parentid>503154505</parentid>
<timestamp>2017-11-13T22:28:39Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Pblock]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="118">[[Image:Artículo bueno-blue.svg|16px|link=|alt=]] '''{{{1|Proxy blocked}}}'''&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>l3wzpt0trv30jb5trsf2coyzkkuc39c</sha1>
</revision>
</page>
<page>
<title>Template:PendingRequest</title>
<ns>10</ns>
<id>28847348</id>
<revision>
<id>810203851</id>
<parentid>782450424</parentid>
<timestamp>2017-11-13T22:40:14Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:PendingRequest]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="395">[[File:Symbol_wait.svg|20px|link=|alt=]] '''{{ucfirst:{{{1|Pending approval}}}}}'''&lt;!--Template:PendingRequest--&gt;&lt;noinclude&gt;{{documentation|content=
==Usage==
You may either use {{tlx|PendingRequest}} by itself for the default message or you may add a custom message as an optional parameter.
==See also==
{{done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
}}&lt;/noinclude&gt;</text>
<sha1>s4u838y35bp5k2wktiv4yk3j4iscdp2</sha1>
</revision>
</page>
<page>
<title>Template:Pixiedust</title>
<ns>10</ns>
<id>19434324</id>
<revision>
<id>810180235</id>
<parentid>621850009</parentid>
<timestamp>2017-11-13T19:58:01Z</timestamp>
<contributor>
<username>Ymblanter</username>
<id>14596827</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Pixiedust]]&quot;: [[WP:High-risk templates|Highly visible template]]: request at [[WP:RFPP]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="332">[[File:Pixie dust.png|16px|link=|alt=]]&amp;nbsp;'''{{{1|[[Wikipedia:CheckUser|CheckUser]]}}} is not magic [[pixie dust]]'''&lt;noinclude&gt;{{documentation|content=
==Usage==
{{tbullet|Pixiedust}}
Or with a parameter
{{tbulletp|Pixiedust|Fairydust}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>5xu6w5maxv2tv406ahzn6sdbgzzkyem</sha1>
</revision>
</page>
<page>
<title>Template:Possible</title>
<ns>10</ns>
<id>5218313</id>
<revision>
<id>690777032</id>
<parentid>621951274</parentid>
<timestamp>2015-11-15T17:03:29Z</timestamp>
<contributor>
<username>Sam Sailor</username>
<id>19244234</id>
</contributor>
<comment>Rm indent</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="295">[[File:Symbol possible vote.svg|16px|alt=|link=]]&amp;nbsp;'''{{{1|Possible}}}'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|possible}} on a talk page makes the following appear:
{{possible}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>g00l7pnibfavjns8b0ok2t28rifgctq</sha1>
</revision>
</page>
<page>
<title>Template:Possibly</title>
<ns>10</ns>
<id>32490781</id>
<revision>
<id>810206979</id>
<parentid>782447978</parentid>
<timestamp>2017-11-13T23:03:15Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Possibly]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="206">[[File:Symbol possible vote.svg|20px|link=|alt=]]&amp;nbsp;'''Possibly'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
}}&lt;/noinclude&gt;</text>
<sha1>63fkt9u27a9t0m421bk84ogs3xq87y8</sha1>
</revision>
</page>
<page>
<title>Template:Possilikely</title>
<ns>10</ns>
<id>43225321</id>
<revision>
<id>810208221</id>
<parentid>723430102</parentid>
<timestamp>2017-11-13T23:11:54Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Possilikely]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="274">[[File:Symbol version generic.svg|16px|link=|alt=]]&amp;nbsp;'''Possilikely''' (a mix between possible and likely)&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
[[Category:SPI templates]]
}}&lt;/noinclude&gt;</text>
<sha1>osokrr9vzh4hn80fqfno2mopaumtkeh</sha1>
</revision>
</page>
<page>
<title>Template:Posted</title>
<ns>10</ns>
<id>24115502</id>
<revision>
<id>810203029</id>
<parentid>723449514</parentid>
<timestamp>2017-11-13T22:34:36Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Posted]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="140">{{Added|Posted}}&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>2hf13oxx1mdqgn55vu83400v4d459uz</sha1>
</revision>
</page>
<page>
<title>Template:ProposalOnHold</title>
<ns>10</ns>
<id>30139997</id>
<revision>
<id>810204003</id>
<parentid>782463057</parentid>
<timestamp>2017-11-13T22:41:29Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:ProposalOnHold]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="295">[[File:Gnome-appointment-soon.svg|28px|alt=clock]] &amp;nbsp; '''Proposal on hold'''{{#if: {{{1|}}} | &amp;nbsp; ({{{1}}})}}
&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
[[Category:Wikipedia article alerts|Τ]]
}}&lt;/noinclude&gt;</text>
<sha1>4dlhb158tog6s7qdk2u43hszmxct42d</sha1>
</revision>
</page>
<page>
<title>Template:Psblock</title>
<ns>10</ns>
<id>36289264</id>
<revision>
<id>810202229</id>
<parentid>500051945</parentid>
<timestamp>2017-11-13T22:29:02Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Psblock]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="110">[[Image:Artículo bueno-blue.svg|16px|link=|alt=]] '''{{{1|Proxies blocked}}}'''&lt;noinclude&gt;{{doc}}&lt;/noinclude&gt;</text>
<sha1>2zpc2cmheze4jm7t4homyryvw917tc8</sha1>
</revision>
</page>
<page>
<title>Template:Qmark</title>
<ns>10</ns>
<id>29373278</id>
<revision>
<id>733056872</id>
<parentid>599377040</parentid>
<timestamp>2016-08-05T02:24:56Z</timestamp>
<contributor>
<username>Xaosflux</username>
<id>502540</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Qmark: &gt;100000 transclusions, increase to TEP - highly visible ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="183">[[File:Blue question mark (italic).svg|{{{{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|20}}px|alt=Question|link=]]&lt;span style=&quot;display:none&quot;&gt;?&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>6vjt6na1qcgt9b3v08f7po2jny4j6ij</sha1>
</revision>
</page>
<page>
<title>Template:Question</title>
<ns>10</ns>
<id>4143470</id>
<revision>
<id>782461663</id>
<parentid>721352096</parentid>
<timestamp>2017-05-27T01:54:54Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<minor/>
<comment>adjacent text {{{label}}} or &quot;Question&quot; is sufficient alt text</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="291">[[File:Symbol question.svg|17px|link=|alt=]]&amp;nbsp;&lt;span style=&quot;font-weight:bold&quot;&gt;{{{label|Question}}}: &lt;/span&gt;{{{1| }}}&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:Wikipedia administration templates]]
}}&lt;/noinclude&gt;</text>
<sha1>6u48p8aj92r5fdk5b4ojg1s78077qk2</sha1>
</revision>
</page>
<page>
<title>Template:Question mark</title>
<ns>10</ns>
<id>8246216</id>
<revision>
<id>810205647</id>
<parentid>611264381</parentid>
<timestamp>2017-11-13T22:53:30Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Question mark]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="170">[[Image:Question mark.svg|{{{{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|13}}px|alt=Question|link=]]&lt;span style=&quot;display:none&quot;&gt;?&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>psihnv8jezmoas2rpq4stcltzmjkxse</sha1>
</revision>
</page>
<page>
<title>Template:Rblock</title>
<ns>10</ns>
<id>34217353</id>
<revision>
<id>810202273</id>
<parentid>468287747</parentid>
<timestamp>2017-11-13T22:29:21Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Rblock]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="108">[[Image:Artículo bueno-blue.svg|16px|link=|alt=]] '''{{{1|Range blocked}}}'''&lt;noinclude&gt;{{doc}}&lt;/noinclude&gt;</text>
<sha1>9phg854kt0oev31l6fgxxovbdcinr5u</sha1>
</revision>
</page>
<page>
<title>Template:Read</title>
<ns>10</ns>
<id>35842007</id>
<revision>
<id>810207018</id>
<parentid>782448036</parentid>
<timestamp>2017-11-13T23:03:33Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Read]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="147">[[File:Farm-Fresh eye.png|15px|alt=eye]] I have read the above message. I will reply when I have a moment.&lt;noinclude&gt;
{{Template doc}}
&lt;/noinclude&gt;</text>
<sha1>g9yji6vqkhvla8u6180ecmywt8kgy0k</sha1>
</revision>
</page>
<page>
<title>Template:Redflag</title>
<ns>10</ns>
<id>16272541</id>
<revision>
<id>810207087</id>
<parentid>782448090</parentid>
<timestamp>2017-11-13T23:04:01Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Redflag]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="281">[[File:Red flag II.svg|20px|alt=flag]]&amp;nbsp;'''{{{1|Redflag}}}'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|redflag}} on a talk page makes the following appear:
:{{redflag}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>l3f546rutjt5lru73gb71fw95kblq5f</sha1>
</revision>
</page>
<page>
<title>Template:Redundant symbol</title>
<ns>10</ns>
<id>13713826</id>
<revision>
<id>810207126</id>
<parentid>782448149</parentid>
<timestamp>2017-11-13T23:04:20Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Redundant symbol]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="298">[[File:Fairytale Trash.svg|25px|alt=trash]]&amp;nbsp;'''Redundant'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|Redundant symbol}} on a talk page makes the following appear:
:{{Redundant symbol}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>h43a1n3lzenu0x9t9hcom3cg3seznix</sha1>
</revision>
</page>
<page>
<title>Template:Relisted</title>
<ns>10</ns>
<id>10286586</id>
<revision>
<id>663267461</id>
<parentid>609665877</parentid>
<timestamp>2015-05-20T14:53:56Z</timestamp>
<contributor>
<username>Steel1943</username>
<id>2952402</id>
</contributor>
<comment>Image --&gt; File</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="107">[[File:Symbol move vote.svg|16px|link=|alt=]]&amp;nbsp;'''Relisted'''&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>plmmpnmg6a5v68l8hc9gfd4vagar7rl</sha1>
</revision>
</page>
<page>
<title>Template:Remark</title>
<ns>10</ns>
<id>12938792</id>
<revision>
<id>810205113</id>
<parentid>621847056</parentid>
<timestamp>2017-11-13T22:49:35Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Remark]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="324">[[File:Symbol comment vote.svg|20px|link=|alt=]] '''Remark:'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Used instead of [[Template:A note]] for general comments in an area where decisive comments are made; ie at [[WP:XFD|XFD]]s.
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>mh1fcs2r50kdxht6wlcigissbkkzbjw</sha1>
</revision>
</page>
<page>
<title>Template:Remind</title>
<ns>10</ns>
<id>12007435</id>
<revision>
<id>810205042</id>
<parentid>773237927</parentid>
<timestamp>2017-11-13T22:49:09Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Remind]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="191">[[File:Pictogram voting comment.svg|18px|link=|alt=]] '''Remind'''
&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>817nzun3faau1x5iph59x433cf07g2e</sha1>
</revision>
</page>
<page>
<title>Template:Removed</title>
<ns>10</ns>
<id>20612193</id>
<revision>
<id>810202965</id>
<parentid>782449494</parentid>
<timestamp>2017-11-13T22:34:13Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Removed]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="218">[[File:Crystal_Clear_action_edit_remove.png|20px|alt=minus]] '''{{ucfirst:{{{1|Removed}}}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>sk2rc66i1c473ygjnvuc9ko9v14m6gp</sha1>
</revision>
</page>
<page>
<title>Template:Renamer note</title>
<ns>10</ns>
<id>46980148</id>
<revision>
<id>810205521</id>
<parentid>666965749</parentid>
<timestamp>2017-11-13T22:52:38Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Renamer note]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="131">[[File:Symbol comment vote.svg|16px|link=|alt=]]&amp;nbsp;'''Renamer note{{{1|}}}{{{2|:}}}'''&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>t6p95aehbsdr0r5iav8ilz4dc2n5dgj</sha1>
</revision>
</page>
<page>
<title>Template:Reopened</title>
<ns>10</ns>
<id>19946585</id>
<revision>
<id>810207168</id>
<parentid>782448215</parentid>
<timestamp>2017-11-13T23:04:37Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Reopened]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="290">[[File:Symbol recycling vote.svg|20px|alt=recycle]]&amp;nbsp;'''Reopened'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|reopened}} makes the following appear:
:{{reopened}}
==See also==
* {{tl|Relist}}
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>jtkogyxwku2a01dthlc63qjue4pnk2a</sha1>
</revision>
</page>
<page>
<title>Template:Resolved1</title>
<ns>10</ns>
<id>36729881</id>
<revision>
<id>810136823</id>
<parentid>621236177</parentid>
<timestamp>2017-11-13T15:11:50Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Resolved1]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="98">[[File:U2713.svg|18px|link=|alt=]] {{{1|'''Resolved'''}}}&lt;noinclude&gt;
{{documentation}}&lt;/noinclude&gt;</text>
<sha1>qrv6kunnd4f1lq6egxru9r7w4uu7e8p</sha1>
</revision>
</page>
<page>
<title>Template:Resolved mark</title>
<ns>10</ns>
<id>16663601</id>
<revision>
<id>810134250</id>
<parentid>622831980</parentid>
<timestamp>2017-11-13T14:54:36Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Resolved mark]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="198">[[Image:Symbol confirmed.svg|20px|link=|alt=]] '''Resolved'''&lt;noinclude&gt;{{documentation|content={{Template:Resolved mark/doc|type=checkmark}}}}
&lt;!--Categories go on the /doc subpage --&gt;
&lt;/noinclude&gt;</text>
<sha1>3hw3ui4knsnwc8w724j8xgu5lu8z7yb</sha1>
</revision>
</page>
<page>
<title>Template:Resolved mark large</title>
<ns>10</ns>
<id>37535148</id>
<revision>
<id>810134127</id>
<parentid>776610164</parentid>
<timestamp>2017-11-13T14:53:48Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Resolved mark large]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="212">[[File:Symbol confirmed.svg|24px|link=|alt=]] {{resize|98%|'''Resolved'''}}&lt;noinclude&gt;{{documentation|content={{Template:Resolved mark/doc|type=checkmark}}}}
&lt;!--Categories go on the /doc subpage --&gt;
&lt;/noinclude&gt;</text>
<sha1>4ufqc8byi0i4yyhe3zi712jkcthgfvx</sha1>
</revision>
</page>
<page>
<title>Template:Responded</title>
<ns>10</ns>
<id>29437601</id>
<revision>
<id>810135429</id>
<parentid>782406976</parentid>
<timestamp>2017-11-13T15:03:25Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Responded]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="168">:[[File:Yes check.svg|20px|link=|alt=]] '''{{ucfirst:{{{1|Responded at the appropriate venue.}}}}}'''&lt;!--template:responded--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>k7adj3mpmaurbel32frr2ntlx27bz9w</sha1>
</revision>
</page>
<page>
<title>Template:Reverted</title>
<ns>10</ns>
<id>24663820</id>
<revision>
<id>810207215</id>
<parentid>782448284</parentid>
<timestamp>2017-11-13T23:04:57Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Reverted]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="294">[[File:Wikipedia Rollbacker.svg|20px|alt=arrow]]&amp;nbsp;'''{{{1|Reverted}}}'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|Reverted}} on a talk page makes the following appear:
:{{Reverted}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>es5qom1fn5ggl36amnvnjdavkejs40q</sha1>
</revision>
</page>
<page>
<title>Template:Reviewing request</title>
<ns>10</ns>
<id>21806558</id>
<revision>
<id>810204037</id>
<parentid>782463125</parentid>
<timestamp>2017-11-13T22:41:48Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Reviewing request]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="206">:[[File:Pictogram voting wait blue.svg|25px|link=|alt=]] '''Reviewing request.'''&lt;noinclude&gt;
{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>l4uh6pr6e8ij7mrtzh5nwk1m3vpwuo7</sha1>
</revision>
</page>
<page>
<title>Template:Rollbacker-Note</title>
<ns>10</ns>
<id>48915274</id>
<revision>
<id>810205433</id>
<parentid>782462696</parentid>
<timestamp>2017-11-13T22:52:02Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Rollbacker-Note]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="134">[[File:Symbol comment vote.svg|17px|link=|alt=]]&amp;nbsp;'''Rollbacker note{{{1|}}}{{{2|:}}}'''&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>sakr5ipvdzrtr5sl2q4sal123g4jt8u</sha1>
</revision>
</page>
<page>
<title>Template:SULcheck</title>
<ns>10</ns>
<id>47706922</id>
<revision>
<id>810207550</id>
<parentid>679230640</parentid>
<timestamp>2017-11-13T23:07:19Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:SULcheck]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="130">[[File:Symbol Translate.svg|18px|link=]] '''{{{1|SUL Check}}}'''&lt;!--template:SULcheck--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>c59lykrwduhzxte1vez3smobxao0aab</sha1>
</revision>
</page>
<page>
<title>Template:Sblock</title>
<ns>10</ns>
<id>33397842</id>
<revision>
<id>810208130</id>
<parentid>609665882</parentid>
<timestamp>2017-11-13T23:11:18Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Sblock]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="125">[[Image:Symbol version newer.svg|16px|link=|alt=]]&amp;nbsp;'''{{{1|Blocked but awaiting tags}}}'''&lt;noinclude&gt;{{doc}}&lt;/noinclude&gt;</text>
<sha1>15mwld0ft9n1gx4n34duz2fhr2tv0zw</sha1>
</revision>
</page>
<page>
<title>Template:Scissors</title>
<ns>10</ns>
<id>33293169</id>
<revision>
<id>810207354</id>
<parentid>782448589</parentid>
<timestamp>2017-11-13T23:05:57Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Scissors]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="291">[[File:Small pair of blue scissors.jpg|{{{size|30px}}}|alt=scissors]] '''{{{1|Running with scissors is a very silly thing to do!}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Wikipedia emoticons]]
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>qj3oroypff31s80m2xo5olbb6xgtv3m</sha1>
</revision>
</page>
<page>
<title>Template:Self-trout</title>
<ns>10</ns>
<id>38954805</id>
<revision>
<id>810207392</id>
<parentid>782448685</parentid>
<timestamp>2017-11-13T23:06:14Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Self-trout]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="511">[[File:Rainbow trout transparent.png|20px|link=template:self-trout|alt=trout]]&amp;nbsp;'''Self-trout'''&lt;noinclude&gt;
{{Documentation|content=
This template can be used by editors self-mockingly, in situations where they have done something silly and other editors would be likely to [[WP:TROUT|trout]] them.
: ''See also: {{tl|trout}}''
== Usage ==
* {{tld|Self-trout}} &amp;rarr; {{Self-trout}}
==See also==
{{Done/See also}}
[[Category:Wikipedia emoticons]]
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>n9xg8hsyf9m97j4cyqm1w620klrxh7n</sha1>
</revision>
</page>
<page>
<title>Template:Semi-done</title>
<ns>10</ns>
<id>23085706</id>
<revision>
<id>810137312</id>
<parentid>782406783</parentid>
<timestamp>2017-11-13T15:14:35Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Semi-done]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="210">[[File:Cornflower blue check.svg|18px|link=|alt=]] '''{{ucfirst:{{{1|semi-done}}}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>4zrvsjuemkywid1sl0126uyqyedk9be</sha1>
</revision>
</page>
<page>
<title>Template:Sent</title>
<ns>10</ns>
<id>33036614</id>
<revision>
<id>810207429</id>
<parentid>452752852</parentid>
<timestamp>2017-11-13T23:06:32Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Sent]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="158">[[File:Crystal message2.png|20px|alt=Yes|link=]] '''{{{{{|safesubst:}}}ucfirst:{{{1|Sent}}}}}'''&lt;!--template:sent--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>tc3y72nvc4d25vbirk3t2ybrtuzd9ob</sha1>
</revision>
</page>
<page>
<title>Template:Smallrejected</title>
<ns>10</ns>
<id>21474897</id>
<revision>
<id>810135884</id>
<parentid>683838372</parentid>
<timestamp>2017-11-13T15:06:28Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Smallrejected]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="496">{{Main other||[[File:Red x.svg|18px|link=|alt=]] '''{{{1|Rejected}}}'''}}&lt;noinclude&gt;
{{documentation|content=
{{Warning|{{tl|Smallrejected}} should not be used in [[WP:WIAA|articles]] per [[MOS:ICONDECORATION]].}}
== Usage ==
Text can be changed by providing desired content in a parameter.
For examples, &lt;code&gt;&lt;nowiki&gt;{{smallrejected|prohibited}}&lt;/nowiki&gt;&lt;/code&gt; produces {{smallrejected|prohibited}}.
== See also ==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>nuvw7rnkdvyg21njv82kqzjdabzotd9</sha1>
</revision>
</page>
<page>
<title>Template:Snow</title>
<ns>10</ns>
<id>32135851</id>
<revision>
<id>810207472</id>
<parentid>782448743</parentid>
<timestamp>2017-11-13T23:06:50Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Snow]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="164">{{{1|&lt;span style=&quot;display:none&quot;&gt;&lt;/span&gt;}}} per [[WP:SNOW|snowball clause]] [[File:Bouncing Snowball.png|15px|link=|alt=]]&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>of5na08eexed7fy40pasuvytgr5aab0</sha1>
</revision>
</page>
<page>
<title>Template:Sorry</title>
<ns>10</ns>
<id>47873837</id>
<revision>
<id>810206095</id>
<parentid>776603899</parentid>
<timestamp>2017-11-13T22:56:39Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Sorry]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="99">[[File:Face-smile.svg|18px|alt=Smiley|link=]] '''Sorry!'''&lt;noinclude&gt;
{{documentation}}&lt;/noinclude&gt;</text>
<sha1>37z0uido3w5o296l9tuzgpfia05mgvu</sha1>
</revision>
</page>
<page>
<title>Template:Stale-small</title>
<ns>10</ns>
<id>36077174</id>
<revision>
<id>810135826</id>
<parentid>496541859</parentid>
<timestamp>2017-11-13T15:06:10Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Stale-small]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="120">{{{{{|safesubst:}}}cross|18}} '''{{{{{|safesubst:}}}ucfirst:{{{1|Stale}}}}}'''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>mhmajtblvhe0ttf18mhbu7gc53iq7gq</sha1>
</revision>
</page>
<page>
<title>Template:StaleIP</title>
<ns>10</ns>
<id>12433801</id>
<revision>
<id>624668796</id>
<parentid>621957258</parentid>
<timestamp>2014-09-08T13:22:30Z</timestamp>
<contributor>
<username>DoRD</username>
<id>11250185</id>
</contributor>
<comment>no, this does not refer to an IP address in current usage</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="298">[[File:Time2wait.svg|16px|link=|alt=]]&amp;nbsp;'''Stale'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|StaleIP}} on a talk page makes the following appear:
:{{StaleIP}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:SPI templates]]
}}&lt;/noinclude&gt;</text>
<sha1>elqffyt0w69nde8n4s30nwhzzvoyoyy</sha1>
</revision>
</page>
<page>
<title>Template:Stale GAN</title>
<ns>10</ns>
<id>24979524</id>
<revision>
<id>810207582</id>
<parentid>723451311</parentid>
<timestamp>2017-11-13T23:07:37Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Stale GAN]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="267">[[File:Ambox warning pn.svg|15px|alt=|link=]] '''This review has not received any comments in two weeks.'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Wikipedia GA templates]]
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>k9rmum6f1l8a4xuqfto9c8pagyztk85</sha1>
</revision>
</page>
<page>
<title>Template:Started</title>
<ns>10</ns>
<id>37789458</id>
<revision>
<id>810204545</id>
<parentid>782463014</parentid>
<timestamp>2017-11-13T22:45:18Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Started]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="120">[[File:Crystal Clear app clock-orange.svg|16px|alt=clock]] '''{{{1|Started}}}'''&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>tkxx3sakocb5vxrn3fhohhquh288tzz</sha1>
</revision>
</page>
<page>
<title>Template:Suggestion</title>
<ns>10</ns>
<id>21880130</id>
<revision>
<id>810205606</id>
<parentid>782462016</parentid>
<timestamp>2017-11-13T22:53:12Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Suggestion]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="586">[[File:Question mark liberal.jpg|20px|alt=question mark]] '''Suggestion'''&lt;noinclude&gt;{{documentation|content=
== TemplateData ==
{{TemplateDataHeader}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;Visual indicator of a suggestion; for use in discussions in talk-spaces. The template takes no parameters.&quot;,
&quot;params&quot;: {
&quot;no parameters&quot;: {
&quot;label&quot;: &quot;do not add parameters&quot;,
&quot;description&quot;: &quot;no parameters supported&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
}
}
}&lt;/templatedata&gt;
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>5outjmgxjasjvexj406ycjpb06xjh3w</sha1>
</revision>
</page>
<page>
<title>Template:Tallyho</title>
<ns>10</ns>
<id>43284123</id>
<redirect title="Template:Technically indistinguishable" />
<revision>
<id>810273645</id>
<parentid>810217868</parentid>
<timestamp>2017-11-14T08:05:09Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Tallyho]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="68">#REDIRECT [[Template:Technically indistinguishable]]
{{R from move}}</text>
<sha1>jto8dvsm1a92ylv4pijyykhtv3yj9tz</sha1>
</revision>
</page>
<page>
<title>Template:Technically indistinguishable</title>
<ns>10</ns>
<id>30227202</id>
<revision>
<id>810134561</id>
<parentid>804536898</parentid>
<timestamp>2017-11-13T14:57:10Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Technically indistinguishable]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="277">[[File:Symbol confirmed.svg|16px|link=|alt=]]&amp;nbsp;'''Technically indistinguishable'''&lt;noinclude&gt;{{documentation|content=
{{improve documentation}}
==See also==
{{done/See also}}
[[Category:Image with comment templates|{{PAGENAME}}]]
[[Category:SPI templates]]
}}&lt;/noinclude&gt;</text>
<sha1>0ii3bhbb4sx44v1ojxchfkg7hypavr1</sha1>
</revision>
</page>
<page>
<title>Template:Thank</title>
<ns>10</ns>
<id>8404972</id>
<revision>
<id>804536859</id>
<parentid>721352525</parentid>
<timestamp>2017-10-09T17:20:54Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Thank]]&quot;: [[WP:High-risk templates|Highly visible template]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="91">[[File:Face-wink.svg|25px|link=]]&amp;nbsp;'''Thanks'''&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>og3c5ccv3srk0vh67969b73uzgo9k5f</sha1>
</revision>
</page>
<page>
<title>Template:Thank you</title>
<ns>10</ns>
<id>17182786</id>
<revision>
<id>711321108</id>
<parentid>678691775</parentid>
<timestamp>2016-03-22T05:05:33Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>Implementing nowrap span and |link=, per talk</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="145">&lt;span class=&quot;nowrap&quot;&gt;[[File:Face-smile.svg|18px|link=]] '''Thank you'''&lt;/span&gt;&lt;!--Template:Thank you--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>2ssr87nis321hc0nl8saicqs9py90qx</sha1>
</revision>
</page>
<page>
<title>Template:Thank you very much</title>
<ns>10</ns>
<id>38364828</id>
<revision>
<id>804536855</id>
<parentid>721352544</parentid>
<timestamp>2017-10-09T17:20:54Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Thank you very much]]&quot;: [[WP:High-risk templates|Highly visible template]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="208">[[File:Face-smile.svg|18px|link=]]&amp;nbsp;'''Thank you very much{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#if:{{{1|}}}|, {{{1|}}}}}!'''&lt;!--Template:Thank you very much--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>369vyo5jx92ns7c6pq8fhndeceh44a1</sha1>
</revision>
</page>
<page>
<title>Template:Thumbs down</title>
<ns>10</ns>
<id>14863002</id>
<revision>
<id>810206182</id>
<parentid>776603987</parentid>
<timestamp>2017-11-13T22:57:19Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Thumbs down]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="174">[[File:Symbol thumbs down.svg|12px|Negative|alt=Thumbs down icon|link=]]{{#if:{{{1&lt;includeonly&gt;|&lt;/includeonly&gt;}}}
|&amp;nbsp;{{{1}}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>3lgslscd417nox0nxyn8xo0lnf72yni</sha1>
</revision>
</page>
<page>
<title>Template:Thumbs up</title>
<ns>10</ns>
<id>14862995</id>
<revision>
<id>810206229</id>
<parentid>721352653</parentid>
<timestamp>2017-11-13T22:57:39Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Thumbs up]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="456">&lt;!---Thumbs-up image:
--&gt;[[File:Symbol thumbs up.svg&lt;!--
(size:)--&gt;|{{#if:{{{2|}}} |{{#ifeq:{{{1}}}|bigger |18px}} |12px}}&lt;!--
(alt:)--&gt;|Thumbs up&lt;!--
(link:)--&gt;|link=]]&lt;!-- suppress link
----Optional text:
--&gt;{{{{{|safesubst:}}}#if:{{{2|}}} |&amp;nbsp;{{{2}}}
| {{{{{|safesubst:}}}#if:{{{1|&lt;noinclude&gt;x&lt;/noinclude&gt;}}}
|&amp;nbsp;{{{1|&lt;noinclude&gt;[''optional text'']&lt;/noinclude&gt;}}}&lt;!--
--&gt;}} }}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>5l7o4rhlasppkfa2s200g7ppkz1vvzw</sha1>
</revision>
</page>
<page>
<title>Template:Tick</title>
<ns>10</ns>
<id>6865420</id>
<revision>
<id>678691774</id>
<parentid>552197755</parentid>
<timestamp>2015-08-31T01:12:15Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Tick: Highly visible template; lowering to template protection ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only administrators] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="180">[[File:Yes check.svg|{{{{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|20}}px|alt=Yes|link=]]&lt;span style=&quot;display:none&quot;&gt;Y&lt;/span&gt;&lt;!--template:tick--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>6gn7idj4j5a6kv4lojwezg7nwtob11h</sha1>
</revision>
</page>
<page>
<title>Template:ToDo</title>
<ns>10</ns>
<id>28990706</id>
<revision>
<id>810207823</id>
<parentid>723451436</parentid>
<timestamp>2017-11-13T23:09:24Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:ToDo]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="281">[[File:Crystal Clear filesystem file temporary.png|17px|link=|alt=]]&amp;nbsp;'''{{{1|ToDo}}}'''&lt;noinclude&gt;
{{documentation|content=
{{Hatnote|You may be looking for the template: {{tlp|To do}}}}
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>bykw9lmc6jhu4aydh0kjmctga4b1dip</sha1>
</revision>
</page>
<page>
<title>Template:Tobedone</title>
<ns>10</ns>
<id>27108759</id>
<revision>
<id>810204390</id>
<parentid>688580817</parentid>
<timestamp>2017-11-13T22:44:17Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Tobedone]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="197">[[File:Pictogram voting wait.svg|18px|link=|alt=]] '''{{{1|Pending}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>2o4nnkcpju9iraqe66y6bhikpbb6xdr</sha1>
</revision>
</page>
<page>
<title>Template:Twomanrule</title>
<ns>10</ns>
<id>23005668</id>
<revision>
<id>810207252</id>
<parentid>782448388</parentid>
<timestamp>2017-11-13T23:05:14Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Twomanrule]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="285">[[File:Searchtool.svg|18px|alt=lens]]&amp;nbsp;'''{{{1|Review}}}'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|Twomanrule}} on a talk page makes the following appear:
:{{Twomanrule}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>02udqfixajwt2gnd3vxxjw2rtn6xsz3</sha1>
</revision>
</page>
<page>
<title>Template:Unapproved</title>
<ns>10</ns>
<id>28846724</id>
<revision>
<id>782449924</id>
<parentid>777062273</parentid>
<timestamp>2017-05-27T00:20:46Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<minor/>
<comment>minimal alt attribute for CC-BY-SA decorative image</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="191">[[File:Symbol declined.svg|20px|alt=no]] '''{{{1|Not approved}}}'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>imelv5l0br4krwemdwpm0atrcngcgyi</sha1>
</revision>
</page>
<page>
<title>Template:UnderReview</title>
<ns>10</ns>
<id>12902635</id>
<revision>
<id>810207306</id>
<parentid>782448429</parentid>
<timestamp>2017-11-13T23:05:32Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:UnderReview]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="554">[[File:Searchtool-80%.png|15px|alt=lens]]&amp;nbsp;'''Review''' - This section is under or has been partially reviewed by&lt;noinclude&gt;{{documentation|content=
== Usage ==
This template is used to indicate that you are currently reviewing a subcategory from the [[Wikipedia:WikiProject Good articles/Project quality task force/Sweeps/List|WikiProject Good articles sweep list]].
Usage:&lt;pre&gt;&lt;nowiki&gt;
{{UnderReview}} ~~~~
&lt;/nowiki&gt;&lt;/pre&gt;
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:Wikipedia GA templates]]
}}&lt;/noinclude&gt;</text>
<sha1>6u92g9brgdzp2pn7tq5zdiu6rim5s0p</sha1>
</revision>
</page>
<page>
<title>Template:Undone</title>
<ns>10</ns>
<id>22558817</id>
<revision>
<id>810207872</id>
<parentid>782462422</parentid>
<timestamp>2017-11-13T23:09:43Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Undone]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="110">[[File:Kde crystalsvg eraser.png|18px|alt=eraser]]&amp;nbsp;'''Undone'''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>999f9nuo1rm6jz1a3iwuhdrpehbe86u</sha1>
</revision>
</page>
<page>
<title>Template:Unlikely</title>
<ns>10</ns>
<id>8380295</id>
<restrictions>edit=autoconfirmed:move=autoconfirmed</restrictions>
<revision>
<id>632464394</id>
<parentid>621951736</parentid>
<timestamp>2014-11-04T20:31:02Z</timestamp>
<contributor>
<username>PhilKnight</username>
<id>1812441</id>
</contributor>
<comment>[[Category:SPI templates]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="309">[[File:Symbol unlikely.svg|16px|link=|alt=]]&amp;nbsp;'''Unlikely'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|unlikely}} on a talk page makes the following appear:
:{{unlikely}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:SPI templates]]
}}&lt;/noinclude&gt;</text>
<sha1>fu9vuamg3bds1c3ivgq0sz2weiiqosi</sha1>
</revision>
</page>
<page>
<title>Template:Unnecessary</title>
<ns>10</ns>
<id>8122059</id>
<revision>
<id>782449666</id>
<parentid>721402944</parentid>
<timestamp>2017-05-27T00:18:38Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<minor/>
<comment>minimal alt attribute for linked CC-BY-SA decorative image</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="187">[[File:Symbol declined.svg|16px|alt=no]]&amp;nbsp;'''Unnecessary'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>64gsq9lu7o9ucangkpbsot5aq7rqmbo</sha1>
</revision>
</page>
<page>
<title>Template:Unprod</title>
<ns>10</ns>
<id>25992629</id>
<revision>
<id>810135376</id>
<parentid>723448180</parentid>
<timestamp>2017-11-13T15:03:06Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Unprod]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="222">{{done}} - as a contested [[WP:PROD|proposed deletion]], the article has been restored on request.&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>iyu11cqnszfrwuvlzjeue7j4mrbnxur</sha1>
</revision>
</page>
<page>
<title>Template:Unrelated</title>
<ns>10</ns>
<id>5103246</id>
<revision>
<id>810136746</id>
<parentid>621841491</parentid>
<timestamp>2017-11-13T15:11:25Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Unrelated]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="218">[[Image:Symbol unrelated.svg|16px|link=|alt=]]&amp;nbsp;'''Unrelated'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
[[Category:SPI templates]]
}}&lt;/noinclude&gt;</text>
<sha1>atambxbuwncxfizhtgcm0bjx2fye7t0</sha1>
</revision>
</page>
<page>
<title>Template:Uploaded</title>
<ns>10</ns>
<id>31685802</id>
<revision>
<id>621958990</id>
<parentid>599377122</parentid>
<timestamp>2014-08-19T19:56:19Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>ce</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="118">[[File:Icon - upload photo.svg|18px|alt=|link=]]&amp;nbsp;'''{{{1|Uploaded}}}'''&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>aytgbdcahxpm501dqp07ya8x1vcap9w</sha1>
</revision>
</page>
<page>
<title>Template:User-blocked</title>
<ns>10</ns>
<id>38889449</id>
<revision>
<id>810136315</id>
<parentid>782407589</parentid>
<timestamp>2017-11-13T15:08:58Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:User-blocked]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="195">[[File:Pictogram voting delete.svg|20px|link=|alt=]] '''User blocked'''&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>6jxywtsroam4xwgysy5df1ia1viuezu</sha1>
</revision>
</page>
<page>
<title>Template:Verified</title>
<ns>10</ns>
<id>17729583</id>
<revision>
<id>810134426</id>
<parentid>622837148</parentid>
<timestamp>2017-11-13T14:56:02Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Verified]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="202">[[File:Symbol confirmed.svg|20px|link=|alt=]]&amp;nbsp;'''Verified'''&lt;noinclude&gt;{{documentation|content={{Template:Resolved mark/doc|type=checkmark}}}}
&lt;!--Categories go on the /doc subpage --&gt;
&lt;/noinclude&gt;</text>
<sha1>fzkxib8k58w0i6344mrq9sum39yniri</sha1>
</revision>
</page>
<page>
<title>Template:WPcrystalball</title>
<ns>10</ns>
<id>11994062</id>
<revision>
<id>810208081</id>
<parentid>721402776</parentid>
<timestamp>2017-11-13T23:10:59Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:WPcrystalball]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="329">[[File:Emoji u1f52e.svg|20px]]&amp;nbsp;'''Wikipedia is not a [[Wikipedia:Crystal ball|crystal ball]]'''.&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|WPcrystalball}} on a talk page makes the following appear:
:{{WPcrystalball}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>fyy5myyjs2mm8onhhi3qf0sf9yeuzn4</sha1>
</revision>
</page>
<page>
<title>Template:Warnsign</title>
<ns>10</ns>
<id>28143018</id>
<revision>
<id>810207919</id>
<parentid>621959514</parentid>
<timestamp>2017-11-13T23:10:01Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Warnsign]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="231">[[File:Ambox warning pn.svg|20px|link=|alt=⚠]]&amp;nbsp;'''{{{{{|safesubst:}}}ucfirst:{{{1|Warning}}}}}'''&lt;noinclude&gt;
{{Documentation}}
&lt;!--Please add this template's categories to the /doc subpage, not here - thanks!--&gt;
&lt;/noinclude&gt;</text>
<sha1>1pssf1jjsub1k8rvvma596xy33lwgkp</sha1>
</revision>
</page>
<page>
<title>Template:WikiThanks</title>
<ns>10</ns>
<id>15337466</id>
<revision>
<id>810206145</id>
<parentid>766972931</parentid>
<timestamp>2017-11-13T22:57:01Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:WikiThanks]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="144">{{{icon|[[Image:Tournesol.png|{{{size|33px}}}|link=]] }}}&lt;!-- Template:WikiThanks --&gt;{{{1|Thank you}}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>cmpkazrvd1vp6vi1cg5l16vdqw56au3</sha1>
</revision>
</page>
<page>
<title>Template:Withdraw</title>
<ns>10</ns>
<id>23304390</id>
<revision>
<id>810136472</id>
<parentid>717163122</parentid>
<timestamp>2017-11-13T15:09:50Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Withdraw]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="260">[[File:Pictogram voting delete.svg|15px|link=|alt=]] '''{{{2|I withdraw my nomination}}}''' {{{1|}}}&lt;noinclude&gt;{{documentation|content=
{{Distinguish|Template:Withdrawn}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>d5de9x64jcak61cu2mmmrqayo3ar4qo</sha1>
</revision>
</page>
<page>
<title>Template:Withdrawn</title>
<ns>10</ns>
<id>28721745</id>
<revision>
<id>810207968</id>
<parentid>621959923</parentid>
<timestamp>2017-11-13T23:10:20Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Withdrawn]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="132">[[File:Cancelled process mini.svg|200x20px|link=|alt=]]&amp;nbsp;'''{{{1|Request withdrawn}}}'''&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>74x3yqvol40832g9xeslbohcexuwzfj</sha1>
</revision>
</page>
<page>
<title>Template:Won't fix</title>
<ns>10</ns>
<id>12007345</id>
<revision>
<id>810136444</id>
<parentid>544849961</parentid>
<timestamp>2017-11-13T15:09:41Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Won't fix]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="176">[[Image:Pictogram voting delete.svg|18px|link=|alt=]] '''{{{{{|safesubst:}}}ucfirst:{{{1|Won't fix}}}}}'''&lt;!--Template:Won't fix--&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>1wy14eo2fyp9hvhz0n7u5mjqkukfah2</sha1>
</revision>
</page>
<page>
<title>Template:Wontfix</title>
<ns>10</ns>
<id>33231818</id>
<redirect title="Template:Won&#039;t fix" />
<revision>
<id>819689816</id>
<parentid>452746695</parentid>
<timestamp>2018-01-10T19:26:25Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Wontfix]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indef...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="32">#REDIRECT [[Template:Won't fix]]</text>
<sha1>gz6iw7w6s0b81ivdmegmicwawm3u05y</sha1>
</revision>
</page>
<page>
<title>Template:Working</title>
<ns>10</ns>
<id>14157199</id>
<revision>
<id>810208029</id>
<parentid>621960390</parentid>
<timestamp>2017-11-13T23:10:42Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Working]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="193">[[File:Icon tools.svg|20px|link=|alt=]]&amp;nbsp;'''{{{1|Working}}}'''&lt;noinclude&gt;
{{Documentation}}
&lt;!--Please add this template's categories to the /doc subpage, not here - thanks!--&gt;
&lt;/noinclude&gt;</text>
<sha1>c6x52bjmz5li2q8lifjek3ctbfgup0k</sha1>
</revision>
</page>
<page>
<title>Template:Works for me</title>
<ns>10</ns>
<id>12007449</id>
<revision>
<id>810203078</id>
<parentid>621951146</parentid>
<timestamp>2017-11-13T22:34:56Z</timestamp>
<contributor>
<username>AlexiusHoratius</username>
<id>2306142</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Works for me]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="311">[[File:Pictogram voting support.svg|18px|link=|alt=]]&amp;nbsp;'''{{{1|Works for me}}}'''&lt;noinclude&gt;{{documentation|content=
== Usage ==
Placing {{Tl|works for me}} on a talk page makes the following appear:
:{{works for me}}
==See also==
{{done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>6imuz90bwvz86u9sy1boiqfh2xkdrd0</sha1>
</revision>
</page>
<page>
<title>Template:X mark</title>
<ns>10</ns>
<id>5298708</id>
<revision>
<id>819686607</id>
<parentid>709981835</parentid>
<timestamp>2018-01-10T19:17:59Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:X mark]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="133">[[File:Black x.svg|16px|X mark|alt={{{alt|No}}}|link=]]&lt;span style=&quot;display:none;&quot;&gt;N&lt;/span&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>j7fcrbtlx2efzutpan9d0pwvm5wbcwy</sha1>
</revision>
</page>
<page>
<title>Template:X mark-n</title>
<ns>10</ns>
<id>5347930</id>
<revision>
<id>810136121</id>
<parentid>558575882</parentid>
<timestamp>2017-11-13T15:07:56Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:X mark-n]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="126">[[Image:X mark 18x18 04.gif|X mark|alt=No|link=]]&lt;SPAN STYLE=&quot;display:none&quot;&gt;N&lt;/SPAN&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>8bl0uua3qt1ydxlrvcsybf2rpwivtth</sha1>
</revision>
</page>
<page>
<title>Template:X mark big</title>
<ns>10</ns>
<id>8246203</id>
<revision>
<id>774075944</id>
<parentid>721350694</parentid>
<timestamp>2017-04-06T03:58:52Z</timestamp>
<contributor>
<username>El C</username>
<id>92203</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:X mark big]]&quot;: [[WP:High-risk templates|Highly visible template]]: RFPP ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="196">[[File:X mark.svg|{{{{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|23}}px|X mark big|alt=Red X|link=]]&lt;span style=&quot;display:none&quot;&gt;N&lt;/span&gt;&lt;!--template:x mark big--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>3u3wum0wyilhp2o49pvgaw7gowel8rx</sha1>
</revision>
</page>
<page>
<title>Template:Xed box</title>
<ns>10</ns>
<id>41136681</id>
<revision>
<id>810136147</id>
<parentid>782449068</parentid>
<timestamp>2017-11-13T15:08:05Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Xed box]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="77">[[File:☒.svg|alt=X'ed box|link=]]&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>oapay81xynjdv16iai4zvxaa265locn</sha1>
</revision>
</page>
<page>
<title>Template:Xmark</title>
<ns>10</ns>
<id>20575555</id>
<revision>
<id>810135710</id>
<parentid>723448656</parentid>
<timestamp>2017-11-13T15:05:15Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Xmark]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="136">{{cross|18}}&lt;noinclude&gt;{{documentation|content=
==See also==
{{Done/See also}}
[[Category:Image with comment templates]]
}}&lt;/noinclude&gt;</text>
<sha1>gt88nz5jszys38796zx04wkvcskfxxf</sha1>
</revision>
</page>
<page>
<title>Template:Y&amp;</title>
<ns>10</ns>
<id>21457587</id>
<revision>
<id>810135568</id>
<parentid>621840433</parentid>
<timestamp>2017-11-13T15:04:22Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Y&amp;]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="237">&lt;span style=&quot;color:green;&quot; alt=&quot;Green tick&quot; title=&quot;Green tick&quot;&gt;&amp;#x2713;&lt;/span&gt;&lt;noinclude&gt;{{documentation|content=
==See also==
{{done/See also}}
[[Category:Checkmark insertion templates]]
[[Category:Resolution templates]]
}}&lt;/noinclude&gt;</text>
<sha1>ixme0v6wbbppvu6tebs55dp2hjix13e</sha1>
</revision>
</page>
<page>
<title>Template:Ya</title>
<ns>10</ns>
<id>34043751</id>
<revision>
<id>819686595</id>
<parentid>755386161</parentid>
<timestamp>2018-01-10T19:17:59Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Ya]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="464">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;data-sort-value=&quot;{{{sort|Yes}}}&quot; style=&quot;background: {{{color|#D2FFD2}}}; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-yes2&quot; {{#if:{{{rowspan|}}}|rowspan=&quot;{{{rowspan}}}&quot;}} |{{{text|[[File:Green check.svg|13px|link={{{link|}}}|{{{1|Yes}}}]]}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
[[Category:Checkmark insertion templates]]
&lt;/noinclude&gt;</text>
<sha1>ixn188e0v57o0f7tdcnodmm2soypsyr</sha1>
</revision>
</page>
<page>
<title>Template:Yellow tick</title>
<ns>10</ns>
<id>36830714</id>
<revision>
<id>810137216</id>
<parentid>599377380</parentid>
<timestamp>2017-11-13T15:13:59Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Yellow tick]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="190">[[File:Yellow check.svg|{{{{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|20}}px|alt=Yes|link=]]&lt;span style=&quot;display:none&quot;&gt;Y&lt;/span&gt;&lt;!--template:yellow tick--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>aaalfetwjlddra8cweeb76yna09jrh5</sha1>
</revision>
</page>
<page>
<title>Template:Yes check</title>
<ns>10</ns>
<id>3646070</id>
<revision>
<id>810135550</id>
<parentid>776609885</parentid>
<timestamp>2017-11-13T15:04:13Z</timestamp>
<contributor>
<username>Fish and karate</username>
<id>224548</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Yes check]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="184">{{Main other||[[File:Yes check.svg|11px|link=|alt=]]&amp;nbsp;Yes}}&lt;noinclude&gt;{{documentation|Template:Resolved mark/doc}}[[Category:Image with comment templates|{{PAGENAME}}]]&lt;/noinclude&gt;</text>
<sha1>qf49dqbwd1ehotemtg65wuk3jhpknuz</sha1>
</revision>
</page>
<page>
<title>Template:You're welcome</title>
<ns>10</ns>
<id>31640045</id>
<revision>
<id>819688309</id>
<parentid>776603728</parentid>
<timestamp>2018-01-10T19:22:37Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:You're welcome]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access]...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="139">[[File:Face-smile.svg|18px|alt=Smiley|link=]] '''You're welcome!'''&lt;!--Template:You're welcome--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>dqb69ae5k81fleu8ruahjfkhho5llv9</sha1>
</revision>
</page>
<page>
<title>Module:Check for unknown parameters</title>
<ns>828</ns>
<id>42286729</id>
<revision>
<id>726655795</id>
<parentid>726655742</parentid>
<timestamp>2016-06-23T14:41:43Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="2400">-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- not on the list
local p = {}
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
local function isnotempty(s)
return s and trim(s) ~= ''
end
function p.check (frame)
local args = frame.args
local pargs = frame:getParent().args
local ignoreblank = isnotempty(frame.args['ignoreblank'])
local showblankpos = isnotempty(frame.args['showblankpositional'])
local knownargs = {}
local unknown = frame.args['unknown'] or 'Found _VALUE_, '
local preview = frame.args['preview']
local values = {}
local res = {}
local regexps = {}
-- create the list of known args, regular expressions, and the return string
for k, v in pairs(args) do
if type(k) == 'number' then
v = trim(v)
knownargs[v] = 1
elseif k:find('^regexp[1-9][0-9]*$') then
table.insert(regexps, '^' .. v .. '$')
end
end
if isnotempty(preview) then
preview = '&lt;div class=&quot;hatnote&quot; style=&quot;color:red&quot;&gt;&lt;strong&gt;Warning:&lt;/strong&gt; ' .. preview .. ' (this message is shown only in preview).&lt;/div&gt;'
elseif preview == nil then
preview = unknown
end
-- loop over the parent args, and make sure they are on the list
for k, v in pairs(pargs) do
if type(k) == 'string' and knownargs[k] == nil then
local knownflag = false
for i, regexp in ipairs(regexps) do
if mw.ustring.match(k, regexp) then
knownflag = true
break
end
end
if not knownflag and ( not ignoreblank or isnotempty(v) ) then
k = mw.ustring.gsub(k, '[^%w\-_ ]', '?')
table.insert(values, k)
end
elseif type(k) == 'number' and
knownargs[tostring(k)] == nil and
( showblankpos or isnotempty(v) )
then
local vlen = mw.ustring.len(v)
v = mw.ustring.sub(v, 1, (vlen &lt; 25) and vlen or 25)
v = mw.ustring.gsub(v, '[^%w\-_ ]', '?')
table.insert(values, k .. ' = ' .. v .. ((vlen &gt;= 25) and ' ...' or ''))
end
end
-- add resuls to the output tables
if #values &gt; 0 then
if frame:preprocess( &quot;{{REVISIONID}}&quot; ) == &quot;&quot; then
unknown = preview
end
for k, v in pairs(values) do
if v == '' then
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
v = ' '
end
local r = unknown:gsub('_VALUE_', v)
table.insert(res, r)
end
end
return table.concat(res)
end
return p</text>
<sha1>hrayw1t1r2ij1wg65qi0jh0x6y31ba4</sha1>
</revision>
</page>
<page>
<title>Module:Icon</title>
<ns>828</ns>
<id>45181164</id>
<revision>
<id>643803192</id>
<parentid>643801146</parentid>
<timestamp>2015-01-23T10:26:03Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected Module:Icon: [[WP:High-risk templates|High-risk Lua module]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="659">-- This module implements [[Template:Icon]].
local data = mw.loadData('Module:Icon/data')
local p = {}
function p._main(args)
local code = args.class or args[1]
local iconData
if code then
code = code:match('^%s*(.-)%s*$'):lower() -- trim whitespace and put in lower case
iconData = data[code]
end
if not iconData then
iconData = data._DEFAULT
end
return string.format(
'[[File:%s%s|%s|link=]]',
iconData.image,
iconData.tooltip and '|' .. iconData.tooltip or '',
args.size or '16x16px'
)
end
function p.main(frame)
local args = {}
for k, v in pairs(frame:getParent().args) do
args[k] = v
end
return p._main(args)
end
return p</text>
<sha1>4z7aot4f3pniw3w3az56t0kryggws40</sha1>
</revision>
</page>
<page>
<title>Module:Icon/data</title>
<ns>828</ns>
<id>45181103</id>
<revision>
<id>796570470</id>
<parentid>777430533</parentid>
<timestamp>2017-08-21T19:12:52Z</timestamp>
<contributor>
<username>Train2104</username>
<id>10341578</id>
</contributor>
<comment>+ tfl per editreq</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="8677">-- This module stores icon data for [[Module:Icon]].
--------------------------------------------------------------------------------
-- Icon data
--------------------------------------------------------------------------------
local data = {
fa = {
image = &quot;Featured article star.svg&quot;,
tooltip = &quot;Featured article&quot;,
},
far = {
image = &quot;Cscr-star piece.png&quot;,
tooltip = &quot;Featured article review&quot;,
},
farc = {
image = &quot;Cscr-star piece.png&quot;,
tooltip = &quot;Featured article removal candidate&quot;,
},
ffa = {
aliases = {&quot;dfa&quot;},
image = &quot;Featured article star - cross.svg&quot;,
tooltip = &quot;Former featured article&quot;,
},
fac = {
aliases = {&quot;fan&quot;},
image = &quot;Cscr-candidate.svg&quot;,
tooltip = &quot;Featured article candidate&quot;,
},
ffac = {
aliases = {&quot;nofa&quot;},
image = &quot;Featured article star - cross.svg&quot;,
tooltip = &quot;Failed featured article candidate&quot;,
},
fl = {
image = &quot;Featured article star.svg&quot;,
tooltip = &quot;Featured list&quot;,
},
flrc = {
aliases = {&quot;flr&quot;},
image = &quot;Cscr-star piece.png&quot;,
tooltip = &quot;Featured list removal candidate&quot;,
},
ffl = {
aliases = {&quot;dfl&quot;},
image = &quot;Cscr-featured-strike.svg&quot;,
tooltip = &quot;Former featured list&quot;,
},
flc = {
aliases = {&quot;fln&quot;},
image = &quot;Cscr-candidate.svg&quot;,
tooltip = &quot;Featured list candidate&quot;,
},
fflc = {
aliases = {&quot;nofl&quot;},
image = &quot;Cscr-former.svg&quot;,
tooltip = &quot;Failed featured list candidate&quot;,
},
a = {
image = &quot;Symbol a class.svg&quot;,
tooltip = &quot;A-Class article&quot;,
},
dac = {
aliases = {&quot;daa&quot;},
image = &quot;Symbol unsupport A vote.svg&quot;,
tooltip = &quot;Demoted A-Class article&quot;,
},
acc = {
aliases = {&quot;acn&quot;, &quot;aac&quot;},
image = &quot;A candidate.svg&quot;,
tooltip = &quot;A-Class article candidate&quot;,
},
noac = {
aliases = {&quot;faac&quot;},
image = &quot;Symbol unsupport A vote.svg&quot;,
tooltip = &quot;Failed A-Class article candidate&quot;,
},
ga = {
image = &quot;Symbol support vote.svg&quot;,
tooltip = &quot;Good article&quot;,
},
gar = {
image = &quot;GA Candidate Neutral vote(ChaosNil).svg&quot;,
tooltip = &quot;Good article reassessment&quot;,
},
dga = {
image = &quot;Symbol unsupport vote.svg&quot;,
tooltip = &quot;Delisted good article&quot;,
},
gan = {
aliases = {&quot;gac&quot;},
image = &quot;GA candidate.svg&quot;,
tooltip = &quot;Good article nominee&quot;,
},
ga2 = {
image = &quot;Symbol neutral vote.svg&quot;,
tooltip = &quot;Good article, 2nd opinion&quot;,
},
gah = {
image = &quot;Symbol wait.svg&quot;,
tooltip = &quot;Good article on hold&quot;,
},
fgan = {
aliases = {&quot;noga&quot;, &quot;gaf&quot;, &quot;gf&quot;},
image = &quot;Symbol oppose vote.svg&quot;,
tooltip = &quot;Failed good article nominee&quot;,
},
fp = {
image = &quot;Cscr-featured.svg&quot;,
tooltip = &quot;Featured picture&quot;,
},
fpc = {
aliases = {&quot;fpn&quot;},
image = &quot;Cscr-candidate.svg&quot;,
tooltip = &quot;Featured picture candidate&quot;,
},
ffp = {
image = &quot;Cscr-former.svg&quot;,
tooltip = &quot;Former featured picture&quot;,
},
vp = {
image = &quot;ENWP VP Logo.svg&quot;,
tooltip = &quot;Valued picture&quot;,
},
vpc = {
image = &quot;Valued pics 1.svg&quot;,
tooltip = &quot;Valued picture candidate&quot;,
},
fs = {
image = &quot;Cscr-featured.svg&quot;,
tooltip = &quot;Featured sound&quot;,
},
ffs = {
image = &quot;Cscr-former.svg&quot;,
tooltip = &quot;Former featured sound&quot;,
},
fsc = {
image = &quot;Cscr-candidate.svg&quot;,
tooltip = &quot;Featured sound candidate&quot;,
},
fpo = {
image = &quot;Linecons big-star.svg&quot;,
tooltip = &quot;Before the featured portal process ceased in 2017, this had been designated as a featured portal.&quot;,
},
fpor = {
image = &quot;Cscr-star piece.png&quot;,
tooltip = &quot;Featured portal review&quot;,
},
ffpo = {
image = &quot;Featured article star - cross.svg&quot;,
tooltip = &quot;Former featured portal&quot;,
},
fpoc = {
image = &quot;Cscr-candidate.svg&quot;,
tooltip = &quot;Featured portal candidate&quot;,
},
ft = {
image = &quot;Cscr-featuredtopic.svg&quot;,
tooltip = &quot;Featured topic&quot;,
},
ftrc = {
image = &quot;Cscr-star piece.png&quot;,
tooltip = &quot;Featured topic removal candidate&quot;,
},
fft = {
aliases = {&quot;dft&quot;},
image = &quot;DFT candidate_cluster.svg&quot;,
tooltip = &quot;Former featured topic&quot;,
},
ftc = {
aliases = {&quot;ftn&quot;},
image = &quot;FT candidate cluster.svg&quot;,
tooltip = &quot;Featured topic candidate&quot;,
},
gt = {
image = &quot;Support cluster.svg&quot;,
tooltip = &quot;Good topic&quot;,
},
gtrc = {
image = &quot;Symbol unsupport vote.svg&quot;,
tooltip = &quot;Good topic removal candidate&quot;,
},
gtc = {
aliases = {&quot;gtn&quot;},
image = &quot;GA candidate cluster.svg&quot;,
tooltip = &quot;Good topic candidate&quot;,
},
bplus = {
aliases = {&quot;b+&quot;},
image = &quot;Symbol bplus class.svg&quot;,
tooltip = &quot;Bplus-Class article&quot;,
},
b = {
image = &quot;Symbol b class.svg&quot;,
tooltip = &quot;B-Class article&quot;,
},
br = {
aliases = {&quot;bcr&quot;},
image = &quot;Bclass-checklist.svg&quot;,
tooltip = &quot;B-Class review&quot;,
},
c = {
image = &quot;Symbol c class.svg&quot;,
tooltip = &quot;C-Class article&quot;,
},
start = {
image = &quot;Symbol start class.svg&quot;,
tooltip = &quot;Start-Class article&quot;,
},
stub = {
image = &quot;Symbol stub class.svg&quot;,
tooltip = &quot;Stub-Class article&quot;,
},
list = {
aliases = {&quot;comparison&quot;},
image = &quot;Symbol list class.svg&quot;,
tooltip = &quot;List-Class article&quot;,
},
no = {
image = &quot;Crystal button cancel.svg&quot;,
tooltip = &quot;Unknown-Class article&quot;,
},
book = {
image = &quot;Symbol book class2.svg&quot;,
tooltip = &quot;Wikipedia book&quot;,
},
category = {
aliases = {&quot;cat&quot;, &quot;categ&quot;},
image = &quot;Folder Hexagonal Icon.svg&quot;,
tooltip = &quot;Category&quot;,
},
disambiguation = {
aliases = {&quot;dab&quot;, &quot;disamb&quot;, &quot;disambig&quot;},
image = &quot;Symbol dab class.svg&quot;,
tooltip = &quot;Disambiguation page&quot;,
},
image = {
aliases = {&quot;file&quot;},
image = &quot;Video-x-generic.svg&quot;,
tooltip = &quot;File&quot;,
},
portal = {
image = &quot;Portal-puzzle.svg&quot;,
tooltip = &quot;Portal&quot;,
},
project = {
image = &quot;Symbol information vote.svg&quot;,
tooltip = &quot;Project page&quot;,
},
redirect = {
aliases = {&quot;red&quot;, &quot;redir&quot;},
image = &quot;Symbol redirect vote2.svg&quot;,
tooltip = &quot;Redirect&quot;,
},
template = {
aliases = {&quot;temp&quot;, &quot;templ&quot;},
image = &quot;Symbol template class.svg&quot;,
tooltip = &quot;Template&quot;,
},
essay = {
image = &quot;Essay.svg&quot;,
tooltip = &quot;Essay&quot;,
},
na = {
image = &quot;Symbol neutral vote.svg&quot;,
tooltip = &quot;Non-article page&quot;,
},
aa = {
image = &quot;Yes check.svg&quot;,
tooltip = &quot;Audited article of limited subject matter&quot;,
},
da = {
image = &quot;Symbol oppose vote.svg&quot;,
tooltip = &quot;Demoted article&quot;,
},
dyk = {
image = &quot;Symbol question.svg&quot;,
tooltip = &quot;Did You Know?&quot;,
},
dyk2 = {
image = &quot;DYK questionmark icon.svg&quot;,
tooltip = &quot;Did You Know?&quot;,
},
pr = {
image = &quot;Nuvola apps kedit.png&quot;,
tooltip = &quot;Peer review&quot;,
},
ppr = {
image = &quot;Nuvola apps kedit.png&quot;,
tooltip = &quot;Portal peer review&quot;,
},
q = {
aliases = {&quot;question&quot;},
image = &quot;Symbol question.svg&quot;,
tooltip = &quot;Question&quot;,
},
qi = {
image = &quot;Quality images logo.svg&quot;,
tooltip = &quot;Quality image on Wikimedia Commons&quot;,
},
vi = {
image = &quot;Valued image seal.svg&quot;,
tooltip = &quot;Valued image on Wikimedia Commons&quot;,
},
tfa = {
image = &quot;Wikipedia-logo.svg&quot;,
tooltip = &quot;Today's Featured Article&quot;,
},
tfl = {
image = &quot;Wikipedia-logo.svg&quot;,
tooltip = &quot;Today's Featured List&quot;,
},
itn = {
image = &quot;Globe current.svg&quot;,
tooltip = &quot;In The News&quot;,
},
otd = {
image = &quot;Nuvola apps date.svg&quot;,
tooltip = &quot;On This Day&quot;,
},
wikiproject = {
image = &quot;People icon.svg&quot;,
tooltip = &quot;WikiProject&quot;,
},
wikipedia = {
image = &quot;Wikipedia-logo.svg&quot;,
tooltip = &quot;Wikipedia page&quot;,
},
commons = {
image = &quot;Commons-logo.svg&quot;,
tooltip = &quot;Commons page&quot;,
},
wikiquote = {
image = &quot;Wikiquote-logo.svg&quot;,
tooltip = &quot;Wikiquote page&quot;,
},
wikiversity = {
image = &quot;Wikiversity-logo.svg&quot;,
tooltip = &quot;Wikiversity page&quot;,
},
wikibooks = {
image = &quot;Wikibooks-logo.svg&quot;,
tooltip = &quot;Wikibooks page&quot;,
},
wikisource = {
image = &quot;Wikisource-logo.svg&quot;,
tooltip = &quot;Wikisource page&quot;,
},
wiktionary = {
image = &quot;Wiktionary-logo.svg&quot;,
tooltip = &quot;Wiktionary page&quot;,
},
wikinews = {
image = &quot;Wikinews-logo.svg&quot;,
tooltip = &quot;Wikinews page&quot;,
},
wikispecies = {
image = &quot;Wikispecies-logo.svg&quot;,
tooltip = &quot;Wikispecies page&quot;,
},
wikidata = {
image = &quot;Wikidata-logo.svg&quot;,
tooltip = &quot;Wikidata page&quot;,
},
wikivoyage = {
image = &quot;Wikivoyage-logo.svg&quot;,
tooltip = &quot;Wikivoyage page&quot;,
},
meta = {
image = &quot;Wikimedia Community Logo.svg&quot;,
tooltip = &quot;Meta-wiki page&quot;,
},
four = {
image = &quot;Four Award.svg&quot;,
tooltip = &quot;Four Award&quot;,
},
million = {
image = &quot;Million award logo.svg&quot;,
tooltip = &quot;Million Award&quot;,
},
_DEFAULT = {
image = &quot;Symbol question.svg&quot;,
}
}
--------------------------------------------------------------------------------
-- End icon data
--------------------------------------------------------------------------------
-- Make aliases work the same as normal keys, and remove the &quot;aliases&quot; subtables.
for k, t in pairs(data) do
if t.aliases then
for i, alias in ipairs(t.aliases) do
data[alias] = t
end
t.aliases = nil
end
data[k] = t
end
return data</text>
<sha1>e5c76ghuovcxpqk3bwtv0cv7z38l4db</sha1>
</revision>
</page>
<page>
<title>Template:Big/TemplateData</title>
<ns>10</ns>
<id>41643543</id>
<revision>
<id>775613554</id>
<parentid>774498374</parentid>
<timestamp>2017-04-16T01:05:38Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<comment>TFD closed as keep ([[WP:XFDC|XFDcloser]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="298">
==TemplateData==
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;Makes the font larger. Equivalent to &lt;big&gt;...&lt;/big&gt;&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Text&quot;,
&quot;description&quot;: &quot;The text to enlarge.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
}
}
}
&lt;/templatedata&gt;</text>
<sha1>af9w0hlmy0uvsc8kl5rfgi5oyav9vhx</sha1>
</revision>
</page>
<page>
<title>Template:Big/doc</title>
<ns>10</ns>
<id>9859006</id>
<revision>
<id>820024635</id>
<parentid>820024602</parentid>
<timestamp>2018-01-12T17:11:20Z</timestamp>
<contributor>
<username>Shellwood</username>
<id>2366721</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contributions/72.95.111.144|72.95.111.144]] ([[User talk:72.95.111.144|talk]]) ([[WP:HG|HG]]) (3.1.22)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1213">{{Documentation subpage}}
{{High-use|26,000+}}
{{COinS safe|n}}
&lt;!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]) --&gt;
== Usage ==
Since {{tag|big}} is obsolete, this template may be used as a replacement for presentation markup.
It takes one parameter: The text to enlarge.
* {{tlx|big|&lt;var&gt;text to make larger&lt;/var&gt;}}
If the value passed to the template contains an &quot;=&quot; (equals sign) character it must be done like so:
* {{tlx|big|1&amp;#61;&lt;var&gt;text to make larger&lt;/var&gt;}}
or the offending &quot;=&quot; character(s) must be replaced with &lt;code&gt;&amp;amp;#61;&lt;/code&gt;.
This template is compatible with the {{tl|IPA}}, and similar templates:
* &lt;code&gt;&lt;nowiki&gt;{{big|{{IPA|ὡ}}}}&lt;/nowiki&gt;&lt;/code&gt;
Example of typical usage:
* &lt;code&gt;&lt;nowiki&gt;Blah blah blah {{big|æ}} versus {{big|œ}} blah blah.&lt;/nowiki&gt;&lt;/code&gt;
This looks like:
* Blah blah blah {{big|æ}} versus {{big|œ}} blah blah.
{{Big/TemplateData}}
== See also ==
{{font size templates}}
&lt;includeonly&gt;
&lt;!-- Categories go below this line, please; interwikis go to Wikidata, thank you! --&gt;
[[Category:Resizing templates]]
[[Category:Wikipedia XHTML tag-replacing templates]]
&lt;/includeonly&gt;</text>
<sha1>2uzndwgjjm87tnbzqf6uuzkm6nou60m</sha1>
</revision>
</page>
<page>
<title>Template:CNone</title>
<ns>10</ns>
<id>51441664</id>
<revision>
<id>821200502</id>
<parentid>736708367</parentid>
<timestamp>2018-01-19T00:28:40Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:CNone]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="329">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#ececec;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&quot; |{{{1|&lt;!-- Accessibility text for screen readers only --&gt;&lt;span style=&quot;display: none&quot;&gt;Does not appear&lt;/span&gt;}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>pr227hj74we71dxa4dt0yob3noybyiu</sha1>
</revision>
</page>
<page>
<title>Template:COinS safe</title>
<ns>10</ns>
<id>35856550</id>
<revision>
<id>819681947</id>
<parentid>732446866</parentid>
<timestamp>2018-01-10T18:58:42Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:COinS safe]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (in...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="646">{{notice
|image={{#ifeq: {{{1|}}}|n|Stop hand nuvola.svg}}
|{{#ifeq: {{{1|}}}|n
|This template should not be used in citation templates such as {{cs1}} and {{cs2}}, because it includes markup that will pollute the [[COinS]] metadata they produce; see [[Wikipedia:COinS|COinS in Wikipedia]]. {{{addtext|}}}[[Category:Templates not safe for use in citation templates]]
|This template is safe for use in citation templates that produce [[COinS]] metadata; see [[Wikipedia:COinS|COinS in Wikipedia]]. If HTML or other markup is added, then the template must be reevaluated. {{{addtext|}}}
}}
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>c2dqiwivkw3mjukaabgvf1lcaiebzlo</sha1>
</revision>
</page>
<page>
<title>Template:Cs1</title>
<ns>10</ns>
<id>34325704</id>
<revision>
<id>804500247</id>
<parentid>744974365</parentid>
<timestamp>2017-10-09T12:22:45Z</timestamp>
<contributor>
<username>Xezbeth</username>
<id>86247</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Cs1]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="114">[[Help:Citation Style 1|Citation Style 1]]&lt;noinclude&gt;
[[Category:Documentation assistance templates]]
&lt;/noinclude&gt;</text>
<sha1>3gpz7ptxi5prfsj5lb0kawozsw3dsyw</sha1>
</revision>
</page>
<page>
<title>Template:Cs2</title>
<ns>10</ns>
<id>34325727</id>
<revision>
<id>819682105</id>
<parentid>475492755</parentid>
<timestamp>2018-01-10T18:58:50Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Cs2]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="114">[[Help:Citation Style 2|Citation Style 2]]&lt;noinclude&gt;
[[Category:Documentation assistance templates]]
&lt;/noinclude&gt;</text>
<sha1>flktvttft09cz4qya95oiidtjdco4xs</sha1>
</revision>
</page>
<page>
<title>Template:Font size templates</title>
<ns>10</ns>
<id>46713691</id>
<revision>
<id>791301422</id>
<parentid>775038693</parentid>
<timestamp>2017-07-19T10:51:09Z</timestamp>
<contributor>
<username>Rob984</username>
<id>18028366</id>
</contributor>
<comment>clarify {{resize| can be used either with or without a value.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="799">{| class=&quot;wikitable&quot;
|+ Font size templates
|-
! Template !! Size !! Semantics !! Sample
|-
| {{tlx|small}} || 85% || {{tag|small|o}} || {{small|HHHHH}}
|-
| {{tlx|smaller}} || 90% || {{CNone|none}} || {{smaller|HHHHH}}
|-
| {{tlx|resize}} || 90% || {{CNone|none}} || {{resize|HHHHH}}
|-
| {{tlx|midsize}} || 92% || {{CNone|none}} || {{midsize|HHHHH}}
|-
| {{CNone|none}} || 100% || {{CNone|none}} || HHHHH
|-
| {{tlx|larger}} || 110% || {{CNone|none}} || {{larger|HHHHH}}
|-
| {{tlx|big}} || 120% || {{CNone|none}} || {{big|HHHHH}}
|-
| {{tlx|large}} || large || {{CNone|none}} || {{large|HHHHH}}
|-
| {{tlx|huge}} || 180% || {{CNone|none}} || {{huge|HHHHH}}
|-
| {{tlx|resize|&lt;var&gt;x&lt;/var&gt;%}} || custom || {{CNone|none}} ||
|-
| {{tlx|font|size{{=}}&lt;var&gt;x&lt;/var&gt;%}} || custom || {{CNone|none}} ||
|}</text>
<sha1>eeeeszq0iw0rnkfd3aw8akvqyyvxw8x</sha1>
</revision>
</page>
<page>
<title>Template:Huge</title>
<ns>10</ns>
<id>25917607</id>
<revision>
<id>819687572</id>
<parentid>631128787</parentid>
<timestamp>2018-01-10T19:21:40Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Huge]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefini...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="871">{{#switch: {{{valign|sub}}}
| normal = &lt;span style=&quot;line-height:{{{3|{{{2|180%}}}}}}&quot;&gt;&lt;span style=&quot;font-size:{{{2|180%}}};&quot;&gt;{{{1}}}&lt;/span&gt;&lt;/span&gt;
| super = &lt;span style=&quot;vertical-align:super;&quot;&gt;&lt;span style=&quot;vertical-align:super;line-height:{{{3|{{{2|180%}}}}}}&quot;&gt;&lt;span style=&quot;font-size:{{{2|180%}}}; vertical-align:super;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
| sub = &lt;span style=&quot;vertical-align:sub;&quot;&gt;&lt;span style=&quot;vertical-align:sub;line-height:{{{3|{{{2|180%}}}}}}&quot;&gt;&lt;span style=&quot;font-size:{{{2|180%}}}; vertical-align:sub;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
| &lt;span style=&quot;vertical-align:sub;&quot;&gt;&lt;span style=&quot;vertical-align:sub;line-height:{{{3|{{{2|180%}}}}}}&quot;&gt;&lt;span style=&quot;font-size:{{{2|180%}}}; vertical-align:sub;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
}}&lt;noinclude&gt;
&lt;!-- Please add categories to the /doc subpage; interwikis go to Wikidata, thank you. --&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>384t5a4xxt2h7dl1bucj91ggtrmmo9k</sha1>
</revision>
</page>
<page>
<title>Template:Large</title>
<ns>10</ns>
<id>8183126</id>
<revision>
<id>819682416</id>
<parentid>668584496</parentid>
<timestamp>2018-01-10T18:59:19Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Large]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefin...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="104">{{Resize|large|{{{1}}}}}&lt;noinclude&gt;
{{Documentation|Template:Resize/doc}}
{{/TemplateData}}
&lt;/noinclude&gt;</text>
<sha1>2zp2pwk30fexwt32reeoki6wold9zek</sha1>
</revision>
</page>
<page>
<title>Template:Larger</title>
<ns>10</ns>
<id>29575837</id>
<revision>
<id>668584571</id>
<parentid>635490349</parentid>
<timestamp>2015-06-25T07:35:37Z</timestamp>
<contributor>
<username>Salix alba</username>
<id>212526</id>
</contributor>
<comment>need</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="103">{{Resize|110%|{{{1}}}}}&lt;noinclude&gt;
{{Documentation|Template:Resize/doc}}
{{/TemplateData}}
&lt;/noinclude&gt;</text>
<sha1>6mllj6ibekos6l4nt00iol89fysqwj3</sha1>
</revision>
</page>
<page>
<title>Template:Midsize</title>
<ns>10</ns>
<id>36842629</id>
<revision>
<id>634090235</id>
<parentid>509461718</parentid>
<timestamp>2014-11-16T16:07:05Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>Documentation to /doc page</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="126">&lt;span style=&quot;font-size:{{{size|92}}}%;line-height:{{{height|1.30}}}em;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>lo3ju40f68a2dd1d60x6orj47uqvunh</sha1>
</revision>
</page>
<page>
<title>Template:Notice</title>
<ns>10</ns>
<id>1720676</id>
<revision>
<id>753895133</id>
<parentid>743144696</parentid>
<timestamp>2016-12-09T19:33:56Z</timestamp>
<contributor>
<username>Xaosflux</username>
<id>502540</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Notice]]&quot;: extensively used in mediawiki message; also is already fprot via cascading ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1028">{{Mbox
| name = Notice
| demospace = {{{demospace|}}}
| style = {{#if:{{{style|}}} |{{#if:{{{small|}}}||margin:inherit auto;width:80%;}} {{{style}}} }}
| subst = &lt;includeonly&gt;{{subst:substcheck}}&lt;/includeonly&gt;
| type = notice
| image = {{#if:{{{image|}}} |[[File:{{{image}}}|40px|Notice]]}}
| small = {{{small|}}}
| smallimage = {{#if:{{{image|}}} |[[File:{{{image}}}|30px|Notice]]}}
| imageright = {{#if:{{{imageright|}}} |{{{imageright}}} |{{#if:{{{shortcut|{{{shortcut1|}}}}}} |{{Ombox/shortcut|{{{shortcut|{{{shortcut1|}}}}}}|{{{shortcut2|}}}|{{{shortcut3|}}}|{{{shortcut4|}}}|{{{shortcut5|}}}}}}} }}
| textstyle = {{{textstyle|text-align: {{#if:{{{center|}}}|center|{{{align|left}}}}};}}}
| text = {{#if:{{{header|{{{heading|{{{title|}}}}}}}}} |&lt;div style=&quot;{{{headstyle|text-align: {{#if:{{{center|}}}|center|left}};}}}&quot;&gt;'''{{{header|{{{heading|{{{title|}}}}}}}}}'''&lt;/div&gt;}}&lt;!--
--&gt;{{{text|{{{content|{{{reason|{{{1}}}}}}}}}}}}
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>hu1vs9nujatnw5yhxq7ebmo5ynozxay</sha1>
</revision>
</page>
<page>
<title>Template:Small</title>
<ns>10</ns>
<id>2385304</id>
<revision>
<id>772120953</id>
<parentid>724652062</parentid>
<timestamp>2017-03-25T12:38:48Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Small]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (inde...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="227">&lt;small&gt;{{{1}}}&lt;/small&gt;{{#if:{{{1|}}}||&lt;includeonly&gt;[[Category:Pages using small with an empty input parameter]]&lt;/includeonly&gt;}}&lt;noinclude&gt;
&lt;!--Categories and interwikis go in the /doc sub-page.--&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>96iwidee2498xqoreidy0ouswl2zp8o</sha1>
</revision>
</page>
<page>
<title>Template:Bigmath/doc</title>
<ns>10</ns>
<id>19303153</id>
<revision>
<id>779507167</id>
<parentid>721645502</parentid>
<timestamp>2017-05-09T09:15:14Z</timestamp>
<contributor>
<username>BetterMath</username>
<id>27435083</id>
</contributor>
<minor/>
<comment>grammar</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1932">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
=== Usage ===
Use this template to embed stand-alone formulae in wikitext. The mathematical capabilities of this template are very limited; use tables with &lt;code&gt;class=&quot;texhtml&quot;&lt;/code&gt; for formulae requiring non-linear layout.
=== Examples ===
&lt;source lang=&quot;html&quot;&gt;
{{bigmath|{{sfrac|&amp;part;&amp;sup2;&lt;var&gt;f&lt;/var&gt;|&amp;part;&lt;var&gt;r&lt;/var&gt;&amp;sup2;}} + {{sfrac|&amp;part;&lt;var&gt;f&lt;/var&gt;|&lt;var&gt;r&lt;/var&gt; &amp;part;&lt;var&gt;r&lt;/var&gt;}} + {{sfrac|&amp;part;&amp;sup2;&lt;var&gt;f&lt;/var&gt;|&lt;var&gt;r&lt;/var&gt;&amp;sup2;&amp;part;&amp;sup2;&lt;var&gt;&amp;theta;&lt;/var&gt;}} {{=}} 0}}
&lt;/source&gt;
produces:
: {{bigmath|{{sfrac|&amp;part;&amp;sup2;&lt;var&gt;f&lt;/var&gt;|&amp;part;&lt;var&gt;r&lt;/var&gt;&amp;sup2;}} + {{sfrac|&amp;part;&lt;var&gt;f&lt;/var&gt;|&lt;var&gt;r&lt;/var&gt; &amp;part;&lt;var&gt;r&lt;/var&gt;}} + {{sfrac|&amp;part;&amp;sup2;&lt;var&gt;f&lt;/var&gt;|&lt;var&gt;r&lt;/var&gt;&amp;sup2;&amp;part;&amp;sup2;&lt;var&gt;&amp;theta;&lt;/var&gt;}} {{=}} 0}}
Use prefix &quot;1=&quot; to allow simple equals-signs. Italicize letters by double-tic (&lt;code&gt;&lt;nowiki&gt;''f''&lt;/nowiki&gt;&lt;/code&gt;):
&lt;source lang=&quot;html&quot;&gt;
{{bigmath|1={{sfrac|&amp;part;&amp;sup2; ''f''|&amp;part;''r''&amp;sup2;}} + {{sfrac
|&amp;part;''f''|''r'' &amp;part;''r''}} = 0}}
&lt;/source&gt;
produces:
: {{bigmath|1={{sfrac|&amp;part;&amp;sup2; ''f''|&amp;part;''r''&amp;sup2;}} + {{sfrac
|&amp;part;''f''|''r'' &amp;part;''r''}} = 0}}
Note that any extra spaces placed in the template will appear in the output. A long line can be split before any vertical-bar pipe ('|').
In contrast, there is &lt;source lang=&quot;tex&quot;&gt;&lt;math display=block&gt;\frac{\part^2 f}{\part r^2} + \frac{\part f}{\part r} = 0&lt;/math&gt;&lt;/source&gt; which produces
&lt;math forcemathmode=mathml display=block&gt;\frac{\part^2 f}{\part r^2} + \frac{\part f}{\part r} = 0.&lt;/math&gt;
This might be an alternative for more complex examples. If that's still too small, leave a comment on https://phabricator.wikimedia.org/T135419 please.
=== See also ===
{{Math templates |notation}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES HERE, THANKS --&gt;
[[Category:Mathematical formatting templates]]
&lt;/includeonly&gt;</text>
<sha1>qg4v2w7kclaiprzw4sanrts4tjmlgb3</sha1>
</revision>
</page>
<page>
<title>Template:Startflatlist</title>
<ns>10</ns>
<id>42217688</id>
<redirect title="Template:Flatlist" />
<revision>
<id>659675523</id>
<parentid>659674435</parentid>
<timestamp>2015-04-28T13:11:14Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>Protected Template:Startflatlist: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="31">#REDIRECT [[Template:Flatlist]]</text>
<sha1>ly1wav42zl1oihvre3ttvke0u7ipu0l</sha1>
</revision>
</page>
<page>
<title>Module:Color contrast</title>
<ns>828</ns>
<id>43027253</id>
<revision>
<id>823705246</id>
<parentid>823704630</parentid>
<timestamp>2018-02-02T22:01:27Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>typo</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="6632">--
-- This module implements
-- {{Color contrast ratio}}
-- {{Greater color contrast ratio}}
-- {{ColorToLum}}
-- {{RGBColorToLum}}
--
local p = {}
local HTMLcolor = mw.loadData( 'Module:Color contrast/colors' )
local function sRGB ( v )
if (v &lt;= 0.03928) then
v = v / 12.92
else
v = math.pow((v+0.055)/1.055, 2.4)
end
return v
end
local function rgbdec2lum( R, G, B )
if ( 0 &lt;= R and R &lt; 256 and 0 &lt;= G and G &lt; 256 and 0 &lt;= B and B &lt; 256 ) then
return 0.2126 * sRGB(R/255) + 0.7152 * sRGB(G/255) + 0.0722 * sRGB(B/255)
else
return ''
end
end
local function hsl2lum( h, s, l )
if ( 0 &lt;= h and h &lt; 360 and 0 &lt;= s and s &lt;= 1 and 0 &lt;= l and l &lt;= 1 ) then
local c = (1 - math.abs(2*l - 1))*s
local x = c*(1 - math.abs( math.fmod(h/60, 2) - 1) )
local m = l - c/2
local r, g, b = m, m, m
if( 0 &lt;= h and h &lt; 60 ) then
r = r + c
g = g + x
elseif( 60 &lt;= h and h &lt; 120 ) then
r = r + x
g = g + c
elseif( 120 &lt;= h and h &lt; 180 ) then
g = g + c
b = b + x
elseif( 180 &lt;= h and h &lt; 240 ) then
g = g + x
b = b + c
elseif( 240 &lt;= h and h &lt; 300 ) then
r = r + x
b = b + c
elseif( 300 &lt;= h and h &lt; 360 ) then
r = r + c
b = b + x
end
return rgbdec2lum(255*r, 255*g, 255*b)
else
return ''
end
end
local function color2lum( c )
if (c == nil) then
return ''
end
-- whitespace
c = c:match( '^%s*(.-)[%s;]*$' )
-- unstrip nowiki strip markers
c = mw.text.unstripNoWiki(c)
-- lowercase
c = c:lower()
-- first try to look it up
local L = HTMLcolor[c]
if (L ~= nil) then
return L
end
-- convert from hsl
if mw.ustring.match(c,'^hsl%([%s]*[0-9][0-9%.]*[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
local h, s, l = mw.ustring.match(c,'^hsl%([%s]*([0-9][0-9%.]*)[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
return hsl2lum(tonumber(h), tonumber(s)/100, tonumber(l)/100)
end
-- convert from rgb
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*,[%s]*[0-9][0-9]*[%s]*%)$') then
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*,[%s]*([0-9][0-9]*)[%s]*%)$')
return rgbdec2lum(tonumber(R), tonumber(G), tonumber(B))
end
-- convert from rgb percent
if mw.ustring.match(c,'^rgb%([%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*,[%s]*[0-9][0-9%.]*%%[%s]*%)$') then
local R, G, B = mw.ustring.match(c,'^rgb%([%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*,[%s]*([0-9][0-9%.]*)%%[%s]*%)$')
return rgbdec2lum(255*tonumber(R)/100, 255*tonumber(G)/100, 255*tonumber(B)/100)
end
-- remove leading # (if there is one) and whitespace
c = mw.ustring.match(c, '^[%s#]*([a-f0-9]*)[%s]*$')
-- split into rgb
local cs = mw.text.split(c or '', '')
if( #cs == 6 ) then
local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[2])
local G = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[4])
local B = 16*tonumber('0x' .. cs[5]) + tonumber('0x' .. cs[6])
return rgbdec2lum(R, G, B)
elseif ( #cs == 3 ) then
local R = 16*tonumber('0x' .. cs[1]) + tonumber('0x' .. cs[1])
local G = 16*tonumber('0x' .. cs[2]) + tonumber('0x' .. cs[2])
local B = 16*tonumber('0x' .. cs[3]) + tonumber('0x' .. cs[3])
return rgbdec2lum(R, G, B)
end
-- failure, return blank
return ''
end
function p._greatercontrast(args)
local bias = tonumber(args['bias'] or '0') or 0
local css = (args['css'] and args['css'] ~= '') and true or false
local v1 = color2lum(args[1] or '')
local c2 = args[2] or '#FFFFFF'
local v2 = color2lum(c2)
local c3 = args[3] or '#000000'
local v3 = color2lum(c3)
local ratio1 = -1;
local ratio2 = -1;
if (type(v1) == 'number' and type(v2) == 'number') then
ratio1 = (v2 + 0.05)/(v1 + 0.05)
ratio1 = (ratio1 &lt; 1) and 1/ratio1 or ratio1
end
if (type(v1) == 'number' and type(v3) == 'number') then
ratio2 = (v3 + 0.05)/(v1 + 0.05)
ratio2 = (ratio2 &lt; 1) and 1/ratio2 or ratio2
end
if css then
local c1 = args[1] or ''
if mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or
mw.ustring.match(c1, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then
c1 = '#' .. c1
end
if mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or
mw.ustring.match(c2, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then
c2 = '#' .. c2
end
if mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') or
mw.ustring.match(v3, '^[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]$') then
c3 = '#' .. c3
end
return 'background-color:' .. c1 .. '; color:' .. ((ratio1 &gt; 0) and (ratio2 &gt; 0) and ((ratio1 + bias &gt; ratio2) and c2 or c3) or '') .. ';'
end
return (ratio1 &gt; 0) and (ratio2 &gt; 0) and ((ratio1 + bias &gt; ratio2) and c2 or c3) or ''
end
function p._ratio(args)
local v1 = color2lum(args[1])
local v2 = color2lum(args[2])
if (type(v1) == 'number' and type(v2) == 'number') then
-- v1 should be the brighter of the two.
if v2 &gt; v1 then
v1, v2 = v2, v1
end
return (v1 + 0.05)/(v2 + 0.05)
else
return args['error'] or '?'
end
end
function p._styleratio(args)
local style = (args[1] or ''):lower()
local bg, fg = 'white', 'black'
local lum_bg, lum_fg = 1, 0
if args[2] then
local lum = color2lum(args[2])
if lum ~= '' then bg, lum_bg = args[2], lum end
end
if args[3] then
local lum = color2lum(args[3])
if lum ~= '' then fg, lum_fg = args[3], lum end
end
local slist = mw.text.split(mw.ustring.gsub(mw.ustring.gsub(style or '', '&amp;#[Xx]23;', '#'), '&amp;#35;', '#'), ';')
for k = 1,#slist do
local s = slist[k]
local k,v = s:match( '^[%s]*([^:]-):([^:]-)[%s;]*$' )
k = k or ''
v = v or ''
if (k:match('^[%s]*(background)[%s]*$') or k:match('^[%s]*(background%-color)[%s]*$')) then
local lum = color2lum(v)
if( lum ~= '' ) then bg, lum_bg = v, lum end
elseif (k:match('^[%s]*(color)[%s]*$')) then
local lum = color2lum(v)
if( lum ~= '' ) then bg, lum_fg = v, lum end
end
end
if lum_bg &gt; lum_fg then
return (lum_bg + 0.05)/(lum_fg + 0.05)
else
return (lum_fg + 0.05)/(lum_bg + 0.05)
end
end
function p.lum(frame)
return color2lum(frame.args[1] or frame:getParent().args[1])
end
function p.ratio(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._ratio(args)
end
function p.styleratio(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._styleratio(args)
end
function p.greatercontrast(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
return p._greatercontrast(args)
end
return p</text>
<sha1>43ryh3q2kthxzrpu56wy019djsecqot</sha1>
</revision>
</page>
<page>
<title>Module:Color contrast/colors</title>
<ns>828</ns>
<id>47337125</id>
<revision>
<id>673825843</id>
<parentid>673821532</parentid>
<timestamp>2015-07-30T19:00:09Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>tabularise, because you know it makes sense - https://github.com/godlygeek/tabular</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="6119">return {
aliceblue = 0.92880068253475,
antiquewhite = 0.84646951707754,
aqua = 0.7874,
aquamarine = 0.8078549208338,
azure = 0.97265264954166,
beige = 0.8988459998705,
bisque = 0.80732327372979,
black = 0,
blanchedalmond = 0.85084439608156,
blue = 0.0722,
blueviolet = 0.12622014321946,
brown = 0.098224287876511,
burlywood = 0.51559844533893,
cadetblue = 0.29424681085422,
chartreuse = 0.76032025902623,
chocolate = 0.23898526114557,
coral = 0.37017930872924,
cornflowerblue = 0.30318641994179,
cornsilk = 0.93562110372965,
crimson = 0.16042199953026,
cyan = 0.7874,
darkblue = 0.018640801980939,
darkcyan = 0.20329317839046,
darkgoldenrod = 0.27264703559993,
darkgray = 0.39675523072563,
darkgreen = 0.091143429047575,
darkgrey = 0.39675523072563,
darkkhaki = 0.45747326349994,
darkmagenta = 0.07353047651207,
darkolivegreen = 0.12651920884889,
darkorange = 0.40016167026524,
darkorchid = 0.13413142174857,
darkred = 0.054889674531132,
darksalmon = 0.40541471563381,
darkseagreen = 0.43789249325969,
darkslateblue = 0.065792846227988,
darkslategray = 0.067608151928044,
darkslategrey = 0.067608151928044,
darkturquoise = 0.4874606277449,
darkviolet = 0.10999048339343,
deeppink = 0.23866895828276,
deepskyblue = 0.44481603395575,
dimgray = 0.14126329114027,
dimgrey = 0.14126329114027,
dodgerblue = 0.27442536991456,
firebrick = 0.10724525535015,
floralwhite = 0.95922484825004,
forestgreen = 0.18920812076002,
fuchsia = 0.2848,
gainsboro = 0.71569350050648,
ghostwhite = 0.94311261886323,
gold = 0.69860877428159,
goldenrod = 0.41919977809569,
gray = 0.2158605001139,
green = 0.15438342968146,
greenyellow = 0.80609472611453,
grey = 0.2158605001139,
honeydew = 0.96336535554782,
hotpink = 0.34658438169715,
indianred = 0.21406134963884,
indigo = 0.03107561486337,
ivory = 0.99071270600615,
khaki = 0.77012343394121,
lavender = 0.80318750514521,
lavenderblush = 0.90172748631046,
lawngreen = 0.73905893124963,
lemonchiffon = 0.94038992245622,
lightblue = 0.63709141280807,
lightcoral = 0.35522120733135,
lightcyan = 0.94587293494829,
lightgoldenrodyellow = 0.93348351018297,
lightgray = 0.65140563741982,
lightgreen = 0.69091979956865,
lightgrey = 0.65140563741982,
lightpink = 0.58566152734898,
lightsalmon = 0.4780675225206,
lightseagreen = 0.35050145117042,
lightskyblue = 0.56195637618331,
lightslategray = 0.23830165007287,
lightslategrey = 0.23830165007287,
lightsteelblue = 0.53983888284666,
lightyellow = 0.98161818392882,
lime = 0.7152,
limegreen = 0.44571042246098,
linen = 0.88357340984379,
magenta = 0.2848,
maroon = 0.045891942324215,
mediumaquamarine = 0.49389703310801,
mediumblue = 0.044077780212328,
mediumorchid = 0.21639251153773,
mediumpurple = 0.22905858091648,
mediumseagreen = 0.34393112338131,
mediumslateblue = 0.20284629471622,
mediumspringgreen = 0.70704308194184,
mediumturquoise = 0.5133827926448,
mediumvioletred = 0.14371899849357,
midnightblue = 0.02071786635086,
mintcream = 0.97834604947588,
mistyrose = 0.82183047859185,
moccasin = 0.80083000991567,
navajowhite = 0.76519682342785,
navy = 0.015585128108224,
oldlace = 0.91900633405549,
olive = 0.20027537200568,
olivedrab = 0.22593150951929,
orange = 0.4817026703631,
orangered = 0.25516243753416,
orchid = 0.31348806761439,
palegoldenrod = 0.78792647887614,
palegreen = 0.77936759006353,
paleturquoise = 0.76436077921714,
palevioletred = 0.28754994117889,
papayawhip = 0.87797100199835,
peachpuff = 0.74905589878251,
peru = 0.30113074877936,
pink = 0.63271070702466,
plum = 0.45734221587969,
powderblue = 0.68254586500605,
purple = 0.061477070432439,
rebeccapurple = 0.07492341159447,
red = 0.2126,
rosybrown = 0.32319457649407,
royalblue = 0.16663210743188,
saddlebrown = 0.097922285020521,
salmon = 0.36977241527596,
sandybrown = 0.46628543696283,
seagreen = 0.19734199706275,
seashell = 0.92737862206922,
sienna = 0.13697631337098,
silver = 0.52711512570581,
skyblue = 0.55291668518184,
slateblue = 0.14784278062136,
slategray = 0.20896704076536,
slategrey = 0.20896704076536,
snow = 0.96533341834849,
springgreen = 0.73052306068529,
steelblue = 0.20562642207625,
tan = 0.48237604163921,
teal = 0.16996855778968,
thistle = 0.56818401093733,
tomato = 0.30638612719415,
turquoise = 0.5895536427578,
violet = 0.40315452986676,
wheat = 0.74909702820482,
white = 1,
whitesmoke = 0.91309865179342,
yellow = 0.9278,
yellowgreen = 0.50762957208707,
}</text>
<sha1>chi69ar1btd4wp6xbk3uez6sfu0vipn</sha1>
</revision>
</page>
<page>
<title>Module:Navbox</title>
<ns>828</ns>
<id>38634746</id>
<revision>
<id>819819538</id>
<parentid>790205321</parentid>
<timestamp>2018-01-11T12:41:17Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>(1) add tracking for css borders in group/above/belowstyle (2) extended background colour check to above and belowstyle (3) add [[User:Johnuniq|Johnuniq]]'s change to enable using this module directly in [[Template:Navbox subgroup|Navbox subgroup]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="12076">--
-- This module implements {{Navbox}}
--
local p = {}
local navbar = require('Module:Navbar')._navbar
local getArgs -- lazily initialized
local args
local border
local listnums = {}
local ODD_EVEN_MARKER = '\127_ODDEVEN_\127'
local RESTART_MARKER = '\127_ODDEVEN0_\127'
local REGEX_MARKER = '\127_ODDEVEN(%d?)_\127'
local function striped(wikitext)
-- Return wikitext with markers replaced for odd/even striping.
-- Child (subgroup) navboxes are flagged with a category that is removed
-- by parent navboxes. The result is that the category shows all pages
-- where a child navbox is not contained in a parent navbox.
local orphanCat = '[[Category:Navbox orphans]]'
if border == 'subgroup' and args.orphan ~= 'yes' then
-- No change; striping occurs in outermost navbox.
return wikitext .. orphanCat
end
local first, second = 'odd', 'even'
if args.evenodd then
if args.evenodd == 'swap' then
first, second = second, first
else
first = args.evenodd
second = first
end
end
local changer
if first == second then
changer = first
else
local index = 0
changer = function (code)
if code == '0' then
-- Current occurrence is for a group before a nested table.
-- Set it to first as a valid although pointless class.
-- The next occurrence will be the first row after a title
-- in a subgroup and will also be first.
index = 0
return first
end
index = index + 1
return index % 2 == 1 and first or second
end
end
local regex = orphanCat:gsub('([%[%]])', '%%%1')
return (wikitext:gsub(regex, ''):gsub(REGEX_MARKER, changer)) -- () omits gsub count
end
local function processItem(item, nowrapitems)
if item:sub(1, 2) == '{|' then
-- Applying nowrap to lines in a table does not make sense.
-- Add newlines to compensate for trim of x in |parm=x in a template.
return '\n' .. item ..'\n'
end
if nowrapitems == 'yes' then
local lines = {}
for line in (item .. '\n'):gmatch('([^\n]*)\n') do
local prefix, content = line:match('^([*:;#]+)%s*(.*)')
if prefix and not content:match('^&lt;span class=&quot;nowrap&quot;&gt;') then
line = prefix .. '&lt;span class=&quot;nowrap&quot;&gt;' .. content .. '&lt;/span&gt;'
end
table.insert(lines, line)
end
item = table.concat(lines, '\n')
end
if item:match('^[*:;#]') then
return '\n' .. item ..'\n'
end
return item
end
local function renderNavBar(titleCell)
if args.navbar ~= 'off' and args.navbar ~= 'plain' and not (not args.name and mw.getCurrentFrame():getParent():getTitle():gsub('/sandbox$', '') == 'Template:Navbox') then
titleCell:wikitext(navbar{
args.name,
mini = 1,
fontstyle = (args.basestyle or '') .. ';' .. (args.titlestyle or '') .. ';background:none transparent;border:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;'
})
end
end
--
-- Title row
--
local function renderTitleRow(tbl)
if not args.title then return end
local titleRow = tbl:tag('tr')
if args.titlegroup then
titleRow
:tag('th')
:attr('scope', 'row')
:addClass('navbox-group')
:addClass(args.titlegroupclass)
:cssText(args.basestyle)
:cssText(args.groupstyle)
:cssText(args.titlegroupstyle)
:wikitext(args.titlegroup)
end
local titleCell = titleRow:tag('th'):attr('scope', 'col')
if args.titlegroup then
titleCell
:css('border-left', '2px solid #fdfdfd')
:css('width', '100%')
end
local titleColspan = 2
if args.imageleft then titleColspan = titleColspan + 1 end
if args.image then titleColspan = titleColspan + 1 end
if args.titlegroup then titleColspan = titleColspan - 1 end
titleCell
:cssText(args.basestyle)
:cssText(args.titlestyle)
:addClass('navbox-title')
:attr('colspan', titleColspan)
renderNavBar(titleCell)
titleCell
:tag('div')
:attr('id', mw.uri.anchorEncode(args.title))
:addClass(args.titleclass)
:css('font-size', '114%')
:css('margin', '0 4em')
:wikitext(processItem(args.title))
end
--
-- Above/Below rows
--
local function getAboveBelowColspan()
local ret = 2
if args.imageleft then ret = ret + 1 end
if args.image then ret = ret + 1 end
return ret
end
local function renderAboveRow(tbl)
if not args.above then return end
tbl:tag('tr')
:tag('td')
:addClass('navbox-abovebelow')
:addClass(args.aboveclass)
:cssText(args.basestyle)
:cssText(args.abovestyle)
:attr('colspan', getAboveBelowColspan())
:tag('div')
:wikitext(processItem(args.above, args.nowrapitems))
end
local function renderBelowRow(tbl)
if not args.below then return end
tbl:tag('tr')
:tag('td')
:addClass('navbox-abovebelow')
:addClass(args.belowclass)
:cssText(args.basestyle)
:cssText(args.belowstyle)
:attr('colspan', getAboveBelowColspan())
:tag('div')
:wikitext(processItem(args.below, args.nowrapitems))
end
--
-- List rows
--
local function renderListRow(tbl, index, listnum)
local row = tbl:tag('tr')
if index == 1 and args.imageleft then
row
:tag('td')
:addClass('navbox-image')
:addClass(args.imageclass)
:css('width', '1px') -- Minimize width
:css('padding', '0px 2px 0px 0px')
:cssText(args.imageleftstyle)
:attr('rowspan', #listnums)
:tag('div')
:wikitext(processItem(args.imageleft))
end
if args['group' .. listnum] then
local groupCell = row:tag('th')
groupCell
:attr('scope', 'row')
:addClass('navbox-group')
:addClass(args.groupclass)
:cssText(args.basestyle)
:css('width', args.groupwidth or '1%') -- If groupwidth not specified, minimize width
groupCell
:cssText(args.groupstyle)
:cssText(args['group' .. listnum .. 'style'])
:wikitext(args['group' .. listnum])
end
local listCell = row:tag('td')
if args['group' .. listnum] then
listCell
:css('text-align', 'left')
:css('border-left-width', '2px')
:css('border-left-style', 'solid')
else
listCell:attr('colspan', 2)
end
if not args.groupwidth then
listCell:css('width', '100%')
end
local rowstyle -- usually nil so cssText(rowstyle) usually adds nothing
if index % 2 == 1 then
rowstyle = args.oddstyle
else
rowstyle = args.evenstyle
end
local listText = args['list' .. listnum]
local oddEven = ODD_EVEN_MARKER
if listText:sub(1, 12) == '&lt;/div&gt;&lt;table' then
-- Assume list text is for a subgroup navbox so no automatic striping for this row.
oddEven = listText:find('&lt;th[^&gt;]*&quot;navbox%-title&quot;') and RESTART_MARKER or 'odd'
end
listCell
:css('padding', '0px')
:cssText(args.liststyle)
:cssText(rowstyle)
:cssText(args['list' .. listnum .. 'style'])
:addClass('navbox-list')
:addClass('navbox-' .. oddEven)
:addClass(args.listclass)
:tag('div')
:css('padding', (index == 1 and args.list1padding) or args.listpadding or '0em 0.25em')
:wikitext(processItem(listText, args.nowrapitems))
if index == 1 and args.image then
row
:tag('td')
:addClass('navbox-image')
:addClass(args.imageclass)
:css('width', '1px') -- Minimize width
:css('padding', '0px 0px 0px 2px')
:cssText(args.imagestyle)
:attr('rowspan', #listnums)
:tag('div')
:wikitext(processItem(args.image))
end
end
--
-- Tracking categories
--
local function needsHorizontalLists()
if border == 'subgroup' or args.tracking == 'no' then
return false
end
local listClasses = {
['plainlist'] = true, ['hlist'] = true, ['hlist hnum'] = true,
['hlist hwrap'] = true, ['hlist vcard'] = true, ['vcard hlist'] = true,
['hlist vevent'] = true,
}
return not (listClasses[args.listclass] or listClasses[args.bodyclass])
end
local function hasBackgroundColors()
for _, key in ipairs({'titlestyle', 'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do
if tostring(args[key]):find('background', 1, true) then
return true
end
end
end
local function hasBorders()
for _, key in ipairs({'groupstyle', 'basestyle', 'abovestyle', 'belowstyle'}) do
if tostring(args[key]):find('border', 1, true) then
return true
end
end
end
local function isIllegible()
local styleratio = require('Module:Color contrast')._styleratio
for key, style in pairs(args) do
if tostring(key):match(&quot;style$&quot;) then
if styleratio{mw.text.unstripNoWiki(style)} &lt; 4.5 then
return true
end
end
end
return false
end
local function getTrackingCategories()
local cats = {}
if needsHorizontalLists() then table.insert(cats, 'Navigational boxes without horizontal lists') end
if hasBackgroundColors() then table.insert(cats, 'Navboxes using background colours') end
if isIllegible() then table.insert(cats, 'Potentially illegible navboxes') end
if hasBorders() then table.insert(cats, 'Navboxes using borders') end
return cats
end
local function renderTrackingCategories(builder)
local title = mw.title.getCurrentTitle()
if title.namespace ~= 10 then return end -- not in template space
local subpage = title.subpageText
if subpage == 'doc' or subpage == 'sandbox' or subpage == 'testcases' then return end
for _, cat in ipairs(getTrackingCategories()) do
builder:wikitext('[[Category:' .. cat .. ']]')
end
end
--
-- Main navbox tables
--
local function renderMainTable()
local tbl = mw.html.create('table')
:addClass('nowraplinks')
:addClass(args.bodyclass)
if args.title and (args.state ~= 'plain' and args.state ~= 'off') then
tbl
:addClass('collapsible')
:addClass(args.state or 'autocollapse')
end
tbl:css('border-spacing', 0)
if border == 'subgroup' or border == 'none' then
tbl
:addClass('navbox-subgroup')
:cssText(args.bodystyle)
:cssText(args.style)
else -- regular navbox - bodystyle and style will be applied to the wrapper table
tbl
:addClass('navbox-inner')
:css('background', 'transparent')
:css('color', 'inherit')
end
tbl:cssText(args.innerstyle)
renderTitleRow(tbl)
renderAboveRow(tbl)
for i, listnum in ipairs(listnums) do
renderListRow(tbl, i, listnum)
end
renderBelowRow(tbl)
return tbl
end
function p._navbox(navboxArgs)
args = navboxArgs
for k, _ in pairs(args) do
if type(k) == 'string' then
local listnum = k:match('^list(%d+)$')
if listnum then table.insert(listnums, tonumber(listnum)) end
end
end
table.sort(listnums)
border = mw.text.trim(args.border or args[1] or '')
if border == 'child' then
border = 'subgroup'
end
-- render the main body of the navbox
local tbl = renderMainTable()
-- render the appropriate wrapper around the navbox, depending on the border param
local res = mw.html.create()
if border == 'none' then
local nav = res:tag('div')
:attr('role', 'navigation')
:node(tbl)
if args.title then
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title))
else
nav:attr('aria-label', 'Navbox')
end
elseif border == 'subgroup' then
-- We assume that this navbox is being rendered in a list cell of a parent navbox, and is
-- therefore inside a div with padding:0em 0.25em. We start with a &lt;/div&gt; to avoid the
-- padding being applied, and at the end add a &lt;div&gt; to balance out the parent's &lt;/div&gt;
res
:wikitext('&lt;/div&gt;')
:node(tbl)
:wikitext('&lt;div&gt;')
else
local nav = res:tag('div')
:attr('role', 'navigation')
:addClass('navbox')
:cssText(args.bodystyle)
:cssText(args.style)
:css('padding', '3px')
:node(tbl)
if args.title then
nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title))
else
nav:attr('aria-label', 'Navbox')
end
end
renderTrackingCategories(res)
return striped(tostring(res))
end
function p.navbox(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
args = getArgs(frame, {wrappers = {'Template:Navbox', 'Template:Navbox subgroup'}})
if frame.args.border then
-- This allows Template:Navbox_subgroup to use {{#invoke:Navbox|navbox|border=...}}.
args.border = frame.args.border
end
-- Read the arguments in the order they'll be output in, to make references number in the right order.
local _
_ = args.title
_ = args.above
for i = 1, 20 do
_ = args[&quot;group&quot; .. tostring(i)]
_ = args[&quot;list&quot; .. tostring(i)]
end
_ = args.below
return p._navbox(args)
end
return p</text>
<sha1>agfujr0g49peekpzrn4lgskcr1edwwp</sha1>
</revision>
</page>
<page>
<title>Module:Unsubst</title>
<ns>828</ns>
<id>40945493</id>
<revision>
<id>784254967</id>
<parentid>784251604</parentid>
<timestamp>2017-06-07T09:01:50Z</timestamp>
<contributor>
<username>Jc86035</username>
<id>17245768</id>
</contributor>
<minor/>
<comment>fix whitespace removal; remove empty parameters after handling aliases and prevent removal of two or fewer consecutive empty parameters in a sequence</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3688">local checkType = require('libraryUtil').checkType
local p = {}
local BODY_PARAM = '$B'
local specialParams = {
['$params'] = 'parameter list',
['$aliases'] = 'parameter aliases',
['$flags'] = 'flags',
['$B'] = 'template content'
}
function p.main(frame, body)
-- If we are substing, this function returns a template invocation, and if
-- not, it returns the template body. The template body can be specified in
-- the body parameter, or in the template parameter defined in the
-- BODY_PARAM variable. This function can be called from Lua or from
-- #invoke.
-- Return the template body if we aren't substing.
if not mw.isSubsting() then
if body ~= nil then
return body
elseif frame.args[BODY_PARAM] ~= nil then
return frame.args[BODY_PARAM]
else
error(string.format(
&quot;no template content specified (use parameter '%s' from #invoke)&quot;,
BODY_PARAM
), 2)
end
end
-- Sanity check for the frame object.
if type(frame) ~= 'table'
or type(frame.getParent) ~= 'function'
or not frame:getParent()
then
error(
&quot;argument #1 to 'main' must be a frame object with a parent &quot; ..
&quot;frame available&quot;,
2
)
end
-- Find the invocation name.
local mTemplateInvocation = require('Module:Template invocation')
local name = mTemplateInvocation.name(frame:getParent():getTitle())
-- Combine passed args with passed defaults
local args = {}
if string.find( ','..(frame.args['$flags'] or '')..',', ',%s*override%s*,' ) then
for k, v in pairs( frame:getParent().args ) do
args[k] = v
end
for k, v in pairs( frame.args ) do
if not specialParams[k] then
if v == '__DATE__' then
v = mw.getContentLanguage():formatDate( 'F Y' )
end
args[k] = v
end
end
else
for k, v in pairs( frame.args ) do
if not specialParams[k] then
if v == '__DATE__' then
v = mw.getContentLanguage():formatDate( 'F Y' )
end
args[k] = v
end
end
for k, v in pairs( frame:getParent().args ) do
args[k] = v
end
end
-- Trim parameters, if not specified otherwise
if not string.find( ','..(frame.args['$flags'] or '')..',', ',%s*keep%-whitespace%s*,' ) then
for k, v in pairs( args ) do args[k] = mw.ustring.match(v, '^%s*(.*)%s*$') or '' end
end
-- Pull information from parameter aliases
local aliases = {}
if frame.args['$aliases'] then
local list = mw.text.split( frame.args['$aliases'], '%s*,%s*' )
for k, v in ipairs( list ) do
local tmp = mw.text.split( v, '%s*&gt;%s*' )
aliases[tonumber(mw.ustring.match(tmp[1], '^[1-9][0-9]*$')) or tmp[1]] = ((tonumber(mw.ustring.match(tmp[2], '^[1-9][0-9]*$'))) or tmp[2])
end
end
for k, v in pairs( aliases ) do
if args[k] and ( not args[v] or args[v] == '' ) then
args[v] = args[k]
end
args[k] = nil
end
-- Remove empty parameters, if specified
if string.find( ','..(frame.args['$flags'] or '')..',', ',%s*remove%-empty%s*,' ) then
local tmp = 0
for k, v in ipairs( args ) do
if v ~= '' or ( args[k+1] and args[k+1] ~= '' ) or ( args[k+2] and args[k+2] ~= '' ) then
tmp = k
else
break
end
end
for k, v in pairs( args ) do
if v == '' then
if not (type(k) == 'number' and k &lt; tmp) then args[k] = nil end
end
end
end
-- Order parameters
if frame.args['$params'] then
local params, tmp = mw.text.split( frame.args['$params'], '%s*,%s*' ), {}
for k, v in ipairs(params) do
v = tonumber(mw.ustring.match(v, '^[1-9][0-9]*$')) or v
if args[v] then tmp[v], args[v] = args[v], nil end
end
for k, v in pairs(args) do tmp[k], args[k] = args[k], nil end
args = tmp
end
return mTemplateInvocation.invocation(name, args)
end
p[''] = p.main -- For backwards compatibility
return p</text>
<sha1>dnfbu3ol9y1rn4f58ap519pwafevpgq</sha1>
</revision>
</page>
<page>
<title>Template:Bug/doc</title>
<ns>10</ns>
<id>37782481</id>
<revision>
<id>653500027</id>
<parentid>635757657</parentid>
<timestamp>2015-03-25T19:29:49Z</timestamp>
<contributor>
<username>DMacks</username>
<id>712163</id>
</contributor>
<comment>/* See also */ list all variants</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="740">{{Documentation subpage}}
== Usage ==
;Linking to a bug
:&lt;code&gt;&lt;nowiki&gt;{{Bug|1}}&lt;/nowiki&gt;&lt;/code&gt; produces: {{bug|1}}
;Linking to a comment on a bug
:&lt;code&gt;&lt;nowiki&gt;{{Bug|1|comment=8}}&lt;/nowiki&gt;&lt;/code&gt; produces: {{bug|1|comment=8}}
;Linking to a bug with a label
:&lt;code&gt;&lt;nowiki&gt;{{Bug|1|label=label text}}&lt;/nowiki&gt;&lt;/code&gt; produces: {{bug|1|label=label text}}
== See also ==
* Links to Wikimedia Phabricator:
** {{tl|Phab}}, inline link
** {{tl|Tracked}}, float-right box
* Links to Wikimedia's old Bugzilla (now migrated to Phabricator):
** {{tl|Bug}}, inline link
** {{tl|Bugzilla}}, inline link (multiple items)
&lt;includeonly&gt;
&lt;!-- CATEGORIES AND INTERWIKIS HERE, THANKS --&gt;
[[Category:External link templates|{{PAGENAME}}]]
&lt;/includeonly&gt;</text>
<sha1>0q3sktvknjuxzu8soqle79fsl9azr6d</sha1>
</revision>
</page>
<page>
<title>Template:Dated maintenance category</title>
<ns>10</ns>
<id>22598546</id>
<revision>
<id>589732290</id>
<parentid>584337311</parentid>
<timestamp>2014-01-08T08:14:55Z</timestamp>
<contributor>
<username>John of Reading</username>
<id>11308236</id>
</contributor>
<comment>Second attempt. Those spaces upset inline templates such as {{As of}}. Instead, try an unconditional &lt;nowiki/&gt;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="660">&lt;nowiki/&gt;&lt;!--This nowiki helps to prevent whitespace at the top of articles--&gt;{{#ifeq:{{FULLROOTPAGENAME}}|Wikipedia:Template messages|&lt;!--Do not categorize--&gt;|&lt;!--
--&gt;{{#ifexpr:{{#if:{{NAMESPACE}}|0|1}}+{{#ifeq:{{{onlyarticles|no}}}|yes|0|1}}
|{{#if:{{{3|}}}
|[[Category:{{{1}}} {{{2}}} {{{3}}}]]&lt;!--
--&gt;{{#ifexist:Category:{{{1}}} {{{2}}} {{{3}}}
|&lt;!--
--&gt;|[[Category:Articles with invalid date parameter in template]]&lt;!--
--&gt;}}
|[[Category:{{#if:{{{5|}}}
|{{{5}}}&lt;!--
--&gt;|{{{1}}}&lt;!--
--&gt;}}]]&lt;!--
--&gt;}}{{#if:{{{4|}}}
|[[Category:{{{4}}}]]}}&lt;!--
--&gt;}}&lt;!--
--&gt;}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>7p59j4cq4i8wg65odpv5287yu50sczo</sha1>
</revision>
</page>
<page>
<title>Template:Deprecated template</title>
<ns>10</ns>
<id>3363053</id>
<revision>
<id>819687344</id>
<parentid>819416801</parentid>
<timestamp>2018-01-10T19:21:24Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Deprecated template]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed ac...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1258">{{ {{{|safesubst:}}}#invoke:Unsubst||$params=old,by,new,note,historical,nocat|date=__DATE__|$B=
{{Ombox
| type = content
| text = [[{{{old|Template:{{{1|{{PAGENAME}}}}}}}}]] is [[deprecation|deprecated]]{{#if:{{{by|}}}|&amp;#32;by {{{by}}}}}{{#if:{{{historical|}}}|, but preserved for historical reasons}}.{{#if:{{{new|{{{2&lt;includeonly&gt;|&lt;/includeonly&gt;}}}}}}
| &amp;#32;Please {{#if:{{{3|}}}
|use {{tlx|{{{new|{{{2}}}}}}|{{{3}}}}}
|{{#if:{{{new|}}}
|see [[{{{new}}}]]
|use [[Template:{{{2}}}]]
}}
}} instead.
}} {{{note|}}}
}}{{#ifeq:{{{nocat|}}}|true
||{{Template other
|{{When on basepage&lt;!-- Don't categorise subpages, like /doc, /sandbox or /testcases --&gt;
|{{#ifeq:{{PAGENAME}}|{{ucfirst:{{{1|{{PAGENAME}}}}}}}&lt;!-- Only for the deprecated template itself --&gt;
|&lt;includeonly&gt;{{#if:{{{historical|}}}|[[Category:Deprecated templates kept for historical reasons]]|{{Dated maintenance category|Deprecated templates|from|{{{date|}}}}}}}&lt;/includeonly&gt;
}}
}}
|{{#ifeq:{{{old|}}}|{{FULLPAGENAME}}||[[Category:Pages using deprecated templates]]}}
}}
}}
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>4sda845evlqa1nm88l2ks1wpykhbp4l</sha1>
</revision>
</page>
<page>
<title>Template:FULLROOTPAGENAME</title>
<ns>10</ns>
<id>34701984</id>
<revision>
<id>774489771</id>
<parentid>476439833</parentid>
<timestamp>2017-04-08T20:24:42Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:FULLROOTPAGENAME]]&quot;: [[WP:High-risk templates|Highly visible template]]: Allowing template editors ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="420">{{ {{{|safesubst:}}}#if: {{ {{{|safesubst:}}}Ns has subpages | {{ {{{|safesubst:}}}#if:{{{1|}}}|{{ {{{|safesubst:}}}NAMESPACE:{{{1}}}}}|{{ {{{|safesubst:}}}NAMESPACE}}}} }}
| {{ {{{|safesubst:}}}#titleparts:{{ {{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|{{ {{{|safesubst:}}}FULLPAGENAME}}}}|1}}
| {{ {{{|safesubst:}}}#if:{{{1|}}}|{{{1}}}|{{ {{{|safesubst:}}}FULLPAGENAME}}}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>t4jn967jlk6ph7qu71w2b8f5083yjrl</sha1>
</revision>
</page>
<page>
<title>Module:Ns has subpages</title>
<ns>828</ns>
<id>44657407</id>
<revision>
<id>637438142</id>
<parentid>637436476</parentid>
<timestamp>2014-12-10T06:37:29Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected Module:Ns has subpages: [[WP:High-risk templates|High-risk Lua module]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1678">-- This module implements [[Template:Ns has subpages]].
-- While the template is fairly simple, this information is made available to
-- Lua directly, so using a module means that we don't have to update the
-- template as new namespaces are added.
local p = {}
function p._main(ns, frame)
-- Get the current namespace if we were not passed one.
if not ns then
ns = mw.title.getCurrentTitle().namespace
end
-- Look up the namespace table from mw.site.namespaces. This should work
-- for a majority of cases.
local nsTable = mw.site.namespaces[ns]
-- Try using string matching to get the namespace from page names.
-- Do a quick and dirty bad title check to try and make sure we do the same
-- thing as {{NAMESPACE}} in most cases.
if not nsTable and type(ns) == 'string' and not ns:find('[&lt;&gt;|%[%]{}]') then
local nsStripped = ns:gsub('^[_%s]*:', '')
nsStripped = nsStripped:gsub(':.*$', '')
nsTable = mw.site.namespaces[nsStripped]
end
-- If we still have no match then try the {{NAMESPACE}} parser function,
-- which should catch the remainder of cases. Don't use a mw.title object,
-- as this would increment the expensive function count for each new page
-- tested.
if not nsTable then
frame = frame or mw.getCurrentFrame()
local nsProcessed = frame:callParserFunction('NAMESPACE', ns)
nsTable = nsProcessed and mw.site.namespaces[nsProcessed]
end
return nsTable and nsTable.hasSubpages
end
function p.main(frame)
local ns = frame:getParent().args[1]
if ns then
ns = ns:match('^%s*(.-)%s*$') -- trim whitespace
ns = tonumber(ns) or ns
end
local hasSubpages = p._main(ns, frame)
return hasSubpages and 'yes' or ''
end
return p</text>
<sha1>qb0b1z2vff7kifnw21v205d791esbiz</sha1>
</revision>
</page>
<page>
<title>Template:C/doc</title>
<ns>10</ns>
<id>21889774</id>
<revision>
<id>787563312</id>
<parentid>732629594</parentid>
<timestamp>2017-06-26T03:05:18Z</timestamp>
<contributor>
<username>Hyacinth</username>
<id>17171</id>
</contributor>
<comment>/* See also */ {{Internal category-link templates}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1403">{{Documentation subpage}}
&lt;!----PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE----&gt;
: {{tlx|c&amp;nbsp;|''category name''}}
: {{tlx|c&amp;nbsp;|''category name''&amp;nbsp;|''link text''}}
===Usage===
Use {{tl|c}} to create a [[Wikipedia:Namespace|namespace]]-free link to a category, e.g. {{c|Philosophy}} rather than {{cl|Philosophy}}, {{cls|Philosophy}}:
: {{tlf|c|Philosophy}} produces: {{c|Philosophy}}
: {{tlf|c|Category:philosophy}} produces: {{c|Category:philosophy}}
To specify the text used for the link –&amp;nbsp;e.g. &quot;Philosophy category&quot; in place of &quot;Philosophy&quot;&amp;nbsp;– add it as the next parameter:
: {{tlf|c|Philosophy|Philosophy category}} produces: {{c|Philosophy|Philosophy category}}
: {{tlf|c|Category:philosophy|Philosophy category}} produces: {{c|Category:philosophy|Philosophy category}}
===See also===
* {{tl|cl}}, which produces the second type of link shown in the Usage section ({{cl|Philosophy}}, i.e. including the namespace prefix).
* {{tl|cls}}, which produces the third type shown in the Usage section ({{cls|Philosophy}}, i.e. including an abbreviated namespace prefix).
* {{tl|lcs}}, which produces output such as: {{lcs|Philosophy}}
* {{tl|icon}} for standard Wikipedia icons.
{{Internal category-link templates}}
&lt;includeonly&gt;{{basepage subpage
| &lt;!----CATEGORIES BELOW THIS LINE, PLEASE:----&gt;
[[Category:Internal category-link templates]]
}}&lt;/includeonly&gt;</text>
<sha1>t3pxecfn6xb8bhio331luu6xbjc65a2</sha1>
</revision>
</page>
<page>
<title>Template:Category link</title>
<ns>10</ns>
<id>2348433</id>
<revision>
<id>740512040</id>
<parentid>642633572</parentid>
<timestamp>2016-09-21T14:41:05Z</timestamp>
<contributor>
<username>Anthony Appleyard</username>
<id>119438</id>
</contributor>
<minor/>
<comment>Anthony Appleyard moved page [[Template:Cl]] to [[Template:Category link]] over redirect: [[Special:Permalink/740508935|Requested]] by Nyuszika7H at [[WP:RM/TR]]: The template should be located at the natural, unabbreviated title and &amp;#123;&amp;#123;[[Temp...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="659">{{#ifeq:{{#titleparts:{{PAGENAME}}|1}}|Stub types for deletion |[[:Category:{{{1}}}|Cat:{{{1}}}]] | [[:Category:{{{1}}}|{{{2|Category:{{{1}}}}}}]]{{#ifeq:{{Yesno|{{{count|no}}}}}|yes|&lt;small&gt; {{#ifexpr:{{PAGESINCAT:{{{1}}}|{{UC:{{{count_type|ALL}}}}}|R}}&gt;={{{backlog|{{#expr:{{PAGESINCAT:{{{1}}}|{{UC:{{{count_type|ALL}}}}}|R}}+1}}}}}|&lt;span style=&quot;font-weight: bold; color: #DD0000;&quot;&gt;}}(&amp;thinsp;{{PAGESINCAT:{{{1}}}|{{UC:{{{count_type|ALL}}}}}}}&amp;thinsp;){{#ifexpr:{{PAGESINCAT:{{{1}}}|{{UC:{{{count_type|ALL}}}}}|R}}&gt;={{{backlog|{{#expr:{{PAGESINCAT:{{{1}}}|{{UC:{{{count_type|ALL}}}}}|R}}+1}}}}}|&lt;/span&gt;}}&lt;/small&gt;}}}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>npwya2pxpmrb7ss01243bg1cub9s7jq</sha1>
</revision>
</page>
<page>
<title>Template:Category link with count</title>
<ns>10</ns>
<id>30847816</id>
<revision>
<id>804533676</id>
<parentid>788662203</parentid>
<timestamp>2017-10-09T17:05:01Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Category link with count]]&quot;: [[WP:High-risk templates|Highly visible template]]; thousands of transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="307">[[:Category:{{#ifeq:{{str left|{{{1}}}|9}}|Category:|{{str right|{{{1}}}|9}}|{{{1}}}}}]]&amp;nbsp;({{PAGESINCATEGORY:{{#ifeq:{{str left|{{{1}}}|9}}|Category:|{{str right|{{{1}}}|9}}|{{{1}}}}}|{{{2|all}}}}})&lt;noinclude&gt;
{{Documentation|Template:Clc/doc}}
[[Category:Internal category-link templates]]
&lt;/noinclude&gt;</text>
<sha1>5h9duat6ms1mq6bpe5n7ochhcqi0htr</sha1>
</revision>
</page>
<page>
<title>Template:Cl</title>
<ns>10</ns>
<id>51693276</id>
<redirect title="Template:Category link" />
<revision>
<id>756288266</id>
<parentid>740512042</parentid>
<timestamp>2016-12-23T05:42:33Z</timestamp>
<contributor>
<username>Zyxw</username>
<id>473593</id>
</contributor>
<comment>category</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="98">#REDIRECT [[Template:Category link]]
{{R from move}}
[[Category:Internal category-link templates]]</text>
<sha1>8k0kiqolx9fwqc6npgr72e11lwc81r0</sha1>
</revision>
</page>
<page>
<title>Template:Clc</title>
<ns>10</ns>
<id>52342109</id>
<redirect title="Template:Category link with count" />
<revision>
<id>804533685</id>
<parentid>756288329</parentid>
<timestamp>2017-10-09T17:05:01Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Clc]]&quot;: [[WP:High-risk templates|Highly visible template]]; thousands of transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="94">#REDIRECT [[Template:Category link with count]]
[[Category:Internal category-link templates]]</text>
<sha1>0wg8cwrtejxmqn6jgp5uft9mqk2li1z</sha1>
</revision>
</page>
<page>
<title>Template:Cls</title>
<ns>10</ns>
<id>38994272</id>
<revision>
<id>717809265</id>
<parentid>717589609</parentid>
<timestamp>2016-04-29T21:01:54Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>rm #titleparts</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="102">[[:Category:{{PAGENAME:{{{1}}}}}|Cat:{{PAGENAME:{{{1}}}}}]]&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>8500u42819dfqcvopwvth8bxx67chmx</sha1>
</revision>
</page>
<page>
<title>Template:Internal category-link templates</title>
<ns>10</ns>
<id>54393451</id>
<revision>
<id>787562912</id>
<timestamp>2017-06-26T03:01:34Z</timestamp>
<contributor>
<username>Hyacinth</username>
<id>17171</id>
</contributor>
<comment>{| style=&quot;width:100%;margin:0;padding:0;&quot; cellspacing=&quot;1&quot; cellpadding=&quot;0&quot; |- style=&quot;vertical-align:top;&quot; | style=&quot;width:50%;&quot; | {| style=&quot;margin:0;padding:0;line-height:1.15em;padding-right:2.5em;&quot; |- | style=&quot;width:12.5em;&quot; | '''Template''' | style=&quot;text</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="835">{| style=&quot;width:100%;margin:0;padding:0;&quot; cellspacing=&quot;1&quot; cellpadding=&quot;0&quot;
|- style=&quot;vertical-align:top;&quot;
| style=&quot;width:50%;&quot; |
{| style=&quot;margin:0;padding:0;line-height:1.15em;padding-right:2.5em;&quot;
|-
| style=&quot;width:12.5em;&quot; | '''Template'''
| style=&quot;text-align:left;&quot; | '''Example output'''
|-
| {{tl|c}}
| style=&quot;text-align:left;&quot; | {{c|Example}}
|-
| {{tl|cl}}
| style=&quot;text-align:left;&quot; | {{cl|Example}}
|-
| {{tl|cls}}
| style=&quot;text-align:left;&quot; | {{cls|Example}}
|}
|
{| style=&quot;margin:0;padding:0;line-height:1.15em;padding-right:2.5em;&quot;
|-
| style=&quot;width:12.5em;&quot; | '''Template'''
| style=&quot;text-align:left;&quot; | '''Example output'''
|-
| {{tl|clc}}
| style=&quot;text-align:left;&quot; | {{clc|Example}}
|-
| {{tl|lc}}
| style=&quot;text-align:left;&quot; | {{lc|Example}}
|-
| {{tl|lcs}}
| style=&quot;text-align:left;&quot; | {{lcs|Example}}
|}
|}</text>
<sha1>bjsb6u5cm80loufavta5osm6ap4gohe</sha1>
</revision>
</page>
<page>
<title>Template:Lc</title>
<ns>10</ns>
<id>4080151</id>
<revision>
<id>749269855</id>
<parentid>717809697</parentid>
<timestamp>2016-11-13T11:39:53Z</timestamp>
<contributor>
<username>DePiep</username>
<id>199625</id>
</contributor>
<comment>sandbox other - un-pollute category</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="287">{{Lx |cfd2={{{cfd2|}}} |1=:Category: |2={{PAGENAME:{{{1|&lt;includeonly&gt;{{&lt;/includeonly&gt;PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;}}}}} |3=Category talk |4=talk}}&lt;!--
--&gt;&lt;noinclude&gt;{{Documentation|Template:Ln/doc}}
{{sandbox other| |
[[Category:Internal category-link templates]]
}}&lt;/noinclude&gt;</text>
<sha1>nt2ig0850euzec0m9hp6gqguj0q3ctv</sha1>
</revision>
</page>
<page>
<title>Template:Lcs</title>
<ns>10</ns>
<id>4265077</id>
<revision>
<id>717809595</id>
<parentid>717590259</parentid>
<timestamp>2016-04-29T21:04:06Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>rm #titleparts</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1022">&lt;span class=&quot;plainlinksneverexpand&quot; style=&quot;padding-right:3px;&quot;&gt;&lt;!--
--&gt;[[:Category:{{PAGENAME:{{{1|&lt;includeonly&gt;{{&lt;/includeonly&gt;PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;}}}}}&lt;!--
--&gt;|Category:{{PAGENAME:{{{1|&lt;includeonly&gt;{{&lt;/includeonly&gt;PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;}}}}}&lt;!--
--&gt;]]&lt;/span&gt;&lt;!--
--&gt;&lt;span class=&quot;plainlinks&quot; style=&quot;font-size:85%;&quot;&gt;&lt;!--
--&gt;([{{fullurl:Category:{{PAGENAME:{{{1|&lt;includeonly&gt;{{&lt;/includeonly&gt;PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;}}}}}|action=edit}} edit]&amp;#160;&lt;!--(&amp;#160;=nbsp)
--&gt;[[:Category talk:{{PAGENAME:{{{1|&lt;includeonly&gt;{{&lt;/includeonly&gt;PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;}}}}}|talk]]&amp;#160;&lt;!--
--&gt;[{{fullurl:Special:Whatlinkshere/Category:{{PAGENAME:{{{1|&lt;includeonly&gt;{{&lt;/includeonly&gt;PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;}}}}}|limit=500}} links]&amp;#160;&lt;!--
--&gt;[{{fullurl:Category:{{PAGENAME:{{{1|&lt;includeonly&gt;{{&lt;/includeonly&gt;PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;}}}}}|action=history}} history]&lt;!--
--&gt;)&lt;!--
--&gt;&lt;/span&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>bx0jy3v54lat2q7gza3nmoq8c5v9lc2</sha1>
</revision>
</page>
<page>
<title>Template:Lx</title>
<ns>10</ns>
<id>4357498</id>
<revision>
<id>738984725</id>
<parentid>738984034</parentid>
<timestamp>2016-09-12T03:36:39Z</timestamp>
<contributor>
<username>JJMC89</username>
<id>24812038</id>
</contributor>
<comment>self revert +1</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="863">&lt;includeonly&gt;&lt;span class=&quot;plainlinks nourlexpansion lx&quot; {{#if:{{{cfd2|}}}|style=&quot;font-family: monospace;&quot;}}&gt;&lt;!--
--&gt;{{#if:{{{cfd2|}}}||[[{{{1}}}{{{2}}}]]&amp;nbsp;}}&lt;!--
--&gt;&lt;span style=&quot;font-size:90%;&quot;&gt;(&lt;!--
--&gt;{{#if:{{{noedit|}}}||[{{fullurl:{{{1}}}{{{2}}}|action=edit}} edit] &amp;#124;}} &lt;!--
--&gt;{{#if:{{{notalk|}}}||[[{{{3}}}{{{5|:}}}{{{2}}}|{{{4}}}]] &amp;#124;}} &lt;!--
--&gt;{{#if:{{{nohistory|}}}||[{{fullurl:{{{1}}}{{{2}}}|action=history}} history] &amp;#124;}} &lt;!--
--&gt;{{#if:{{{nolinks|}}}||[{{fullurl:Special:Whatlinkshere/{{{1}}}{{{2}}}|limit=1000}} links] &amp;#124;}} &lt;!--
--&gt;{{#if:{{{nowatch|}}}||[{{fullurl:{{{1}}}{{{2}}}|action=watch}} watch] &amp;#124;}} &lt;!--
--&gt;{{#if:{{{nologs|}}}||[{{fullurl:Special:Log|page={{urlencode:{{{1}}}{{{2}}}}}}} logs]}}&lt;!--
--&gt;)&lt;/span&gt;&lt;/span&gt;&lt;!--
--&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>8ub7mvstddqu9ut9pjrum7dnf2y138r</sha1>
</revision>
</page>
<page>
<title>Template:Yesno</title>
<ns>10</ns>
<id>22255088</id>
<revision>
<id>821904792</id>
<parentid>669640856</parentid>
<timestamp>2018-01-23T08:37:08Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<comment>add support for on/off, per discussion</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="366">{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#switch: {{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;lc: {{{1|¬}}} }}
|no
|n
|false
|off
|0 = {{{no|&lt;!-- null --&gt;}}}
| = {{{blank|{{{no|&lt;!-- null --&gt;}}}}}}
|¬ = {{{¬|}}}
|yes
|y
|true
|on
|1 = {{{yes|yes}}}
|#default = {{{def|{{{yes|yes}}}}}}
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>r1wh7ajnm478r67owpatavjany80n9e</sha1>
</revision>
</page>
<page>
<title>Template:CSS list-style-type values/doc</title>
<ns>10</ns>
<id>31080787</id>
<revision>
<id>766523310</id>
<parentid>465514033</parentid>
<timestamp>2017-02-20T17:53:26Z</timestamp>
<contributor>
<username>DocWatson42</username>
<id>38455</id>
</contributor>
<minor/>
<comment>Made three minor corrections.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1019">{{Documentation subpage}}
&lt;!-- Categories and interwikis go at the bottom of this page. --&gt;
=== Usage ===
This template lists CSS &lt;code&gt;list-style-type&lt;/code&gt; values along with a short sample and a table that shows browser support. It calls {{tl|CSS list-style-type values/core}}, a meta-template that creates the tables.
;Parameters
Internet Explorer
* {{para|ie6}}
* {{para|ie7}}
* {{para|ie8}}
* {{para|ie9}}
* {{para|ie10}}
Firefox
* {{para|ff3}}
* {{para|ff4}}
* {{para|ff5}}
Safari
* {{para|s4}}
* {{para|s5}}
Chrome
* {{para|c9}}
* {{para|c10}}
* {{para|c11}}
* {{para|c12}}
Opera
* {{para|o10}}
* {{para|o11}}
* {{para|o12}}
;Values
* yes: default; calls {{tl|yes}}, sets cell background to green
* no: calls {{tl|no}}, sets cell background to red
* dunno: calls {{tl|dunno}}, shows ?
For more values, see the documentation for {{tl|yes}}.
=== See also ===
===References===
{{reflist}}
&lt;includeonly&gt;
&lt;!-- Categories and interwikis go here: --&gt;
[[Category:Wikipedia help templates]]
&lt;/includeonly&gt;</text>
<sha1>6am5hgn71nunp2tbtdvdxbr4rx788gh</sha1>
</revision>
</page>
<page>
<title>Module:Citation/CS1</title>
<ns>828</ns>
<id>38573037</id>
<revision>
<id>808669341</id>
<parentid>782677680</parentid>
<timestamp>2017-11-04T10:41:27Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<comment>synch from sandbox;</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="163266">
local cs1 ={};
--[[--------------------------&lt; F O R W A R D D E C L A R A T I O N S &gt;--------------------------------------
]]
local dates, year_date_check, reformat_dates, date_hyphen_to_dash, -- functions in Module:Citation/CS1/Date_validation
date_name_xlate
local is_set, in_array, substitute, error_comment, set_error, select_one, -- functions in Module:Citation/CS1/Utilities
add_maint_cat, wrap_style, safe_for_italics, is_wikilink, make_wikilink;
local z ={}; -- tables in Module:Citation/CS1/Utilities
local extract_ids, extract_id_access_levels, build_id_list, is_embargoed; -- functions in Module:Citation/CS1/Identifiers
local make_coins_title, get_coins_pages, COinS; -- functions in Module:Citation/CS1/COinS
local cfg = {}; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration
local whitelist = {}; -- table of tables listing valid template parameter names; defined in Module:Citation/CS1/Whitelist
--[[--------------------------&lt; P A G E S C O P E V A R I A B L E S &gt;--------------------------------------
delare variables here that have page-wide scope that are not brought in from other modules; thatare created here
and used here
]]
local added_deprecated_cat; -- boolean flag so that the category is added only once
local added_prop_cats = {}; -- list of property categories that have been added to z.properties_cats
local added_vanc_errs; -- boolean flag so we only emit one Vancouver error / category
local Frame; -- holds the module's frame table
--[[--------------------------&lt; F I R S T _ S E T &gt;------------------------------------------------------------
Locates and returns the first set value in a table of values where the order established in the table,
left-to-right (or top-to-bottom), is the order in which the values are evaluated. Returns nil if none are set.
This version replaces the original 'for _, val in pairs do' and a similar version that used ipairs. With the pairs
version the order of evaluation could not be guaranteed. With the ipairs version, a nil value would terminate
the for-loop before it reached the actual end of the list.
]]
local function first_set (list, count)
local i = 1;
while i &lt;= count do -- loop through all items in list
if is_set( list[i] ) then
return list[i]; -- return the first set list member
end
i = i + 1; -- point to next
end
end
--[[--------------------------&lt; A D D _ P R O P _ C A T &gt;--------------------------------------------------------
Adds a category to z.properties_cats using names from the configuration file with additional text if any.
foreign_lang_source and foreign_lang_source_2 keys have a language code appended to them so that multiple languages
may be categorized but multiples of the same language are not categorized.
added_prop_cats is a table declared in page scope variables above
]]
local function add_prop_cat (key, arguments)
if not added_prop_cats [key] then
added_prop_cats [key] = true; -- note that we've added this category
key = key:gsub ('(foreign_lang_source_?2?)%a%a%a?', '%1'); -- strip lang code from keyname
table.insert( z.properties_cats, substitute (cfg.prop_cats [key], arguments)); -- make name then add to table
end
end
--[[--------------------------&lt; A D D _ V A N C _ E R R O R &gt;----------------------------------------------------
Adds a single Vancouver system error message to the template's output regardless of how many error actually exist.
To prevent duplication, added_vanc_errs is nil until an error message is emitted.
added_vanc_errs is a boolean declared in page scope variables above
]]
local function add_vanc_error (source)
if not added_vanc_errs then
added_vanc_errs = true; -- note that we've added this category
table.insert( z.message_tail, { set_error( 'vancouver', {source}, true ) } );
end
end
--[[--------------------------&lt; I S _ S C H E M E &gt;------------------------------------------------------------
does this thing that purports to be a uri scheme seem to be a valid scheme? The scheme is checked to see if it
is in agreement with http://tools.ietf.org/html/std66#section-3.1 which says:
Scheme names consist of a sequence of characters beginning with a
letter and followed by any combination of letters, digits, plus
(&quot;+&quot;), period (&quot;.&quot;), or hyphen (&quot;-&quot;).
returns true if it does, else false
]]
local function is_scheme (scheme)
return scheme and scheme:match ('^%a[%a%d%+%.%-]*:'); -- true if scheme is set and matches the pattern
end
--[=[-------------------------&lt; I S _ D O M A I N _ N A M E &gt;--------------------------------------------------
Does this thing that purports to be a domain name seem to be a valid domain name?
Syntax defined here: http://tools.ietf.org/html/rfc1034#section-3.5
BNF defined here: https://tools.ietf.org/html/rfc4234
Single character names are generally reserved; see https://tools.ietf.org/html/draft-ietf-dnsind-iana-dns-01#page-15;
see also [[Single-letter second-level domain]]
list of tlds: https://www.iana.org/domains/root/db
rfc952 (modified by rfc 1123) requires the first and last character of a hostname to be a letter or a digit. Between
the first and last characters the name may use letters, digits, and the hyphen.
Also allowed are IPv4 addresses. IPv6 not supported
domain is expected to be stripped of any path so that the last character in the last character of the tld. tld
is two or more alpha characters. Any preceding '//' (from splitting a url with a scheme) will be stripped
here. Perhaps not necessary but retained incase it is necessary for IPv4 dot decimal.
There are several tests:
the first character of the whole domain name including subdomains must be a letter or a digit
internationalized domain name (ascii characters with .xn-- ASCII Compatible Encoding (ACE) prefix xn-- in the tld) see https://tools.ietf.org/html/rfc3490
single-letter/digit second-level domains in the .org and .cash TLDs
q, x, and z SL domains in the .com TLD
i and q SL domains in the .net TLD
single-letter SL domains in the ccTLDs (where the ccTLD is two letters)
two-character SL domains in gTLDs (where the gTLD is two or more letters)
three-plus-character SL domains in gTLDs (where the gTLD is two or more letters)
IPv4 dot-decimal address format; TLD not allowed
returns true if domain appears to be a proper name and tld or IPv4 address, else false
]=]
local function is_domain_name (domain)
if not domain then
return false; -- if not set, abandon
end
domain = domain:gsub ('^//', ''); -- strip '//' from domain name if present; done here so we only have to do it once
if not domain:match ('^[%a%d]') then -- first character must be letter or digit
return false;
end
-- Do most common case first
if domain:match ('%f[%a%d][%a%d][%a%d%-]+[%a%d]%.%a%a+$') then -- three or more character hostname.hostname or hostname.tld
return true;
elseif domain:match ('%f[%a%d][%a%d][%a%d%-]+[%a%d]%.xn%-%-[%a%d]+$') then -- internationalized domain name with ACE prefix
return true;
elseif domain:match ('%f[%a%d][%a%d]%.cash$') then -- one character/digit .cash hostname
return true;
elseif domain:match ('%f[%a%d][%a%d]%.org$') then -- one character/digit .org hostname
return true;
elseif domain:match ('%f[%a][qxz]%.com$') then -- assigned one character .com hostname (x.com times out 2015-12-10)
return true;
elseif domain:match ('%f[%a][iq]%.net$') then -- assigned one character .net hostname (q.net registered but not active 2015-12-10)
return true;
elseif domain:match ('%f[%a%d][%a%d]%.%a%a$') then -- one character hostname and cctld (2 chars)
return true;
elseif domain:match ('%f[%a%d][%a%d][%a%d]%.%a%a+$') then -- two character hostname and tld
return true;
elseif domain:match ('^%d%d?%d?%.%d%d?%d?%.%d%d?%d?%.%d%d?%d?') then -- IPv4 address
return true;
else
return false;
end
end
--[[--------------------------&lt; I S _ U R L &gt;------------------------------------------------------------------
returns true if the scheme and domain parts of a url appear to be a valid url; else false.
This function is the last step in the validation process. This function is separate because there are cases that
are not covered by split_url(), for example is_parameter_ext_wikilink() which is looking for bracketted external
wikilinks.
]]
local function is_url (scheme, domain)
if is_set (scheme) then -- if scheme is set check it and domain
return is_scheme (scheme) and is_domain_name (domain);
else
return is_domain_name (domain); -- scheme not set when url is protocol relative
end
end
--[[--------------------------&lt; S P L I T _ U R L &gt;------------------------------------------------------------
Split a url into a scheme, authority indicator, and domain.
First remove Fully Qualified Domain Name terminator (a dot following tld) (if any) and any path(/), query(?) or fragment(#).
If protocol relative url, return nil scheme and domain else return nil for both scheme and domain.
When not protocol relative, get scheme, authority indicator, and domain. If there is an authority indicator (one
or more '/' characters immediately following the scheme's colon), make sure that there are only 2.
Strip off any port and path;
]]
local function split_url (url_str)
local scheme, authority, domain;
url_str = url_str:gsub ('([%a%d])%.?[/%?#].*$', '%1'); -- strip FQDN terminator and path(/), query(?), fragment (#) (the capture prevents false replacement of '//')
if url_str:match ('^//%S*') then -- if there is what appears to be a protocol relative url
domain = url_str:match ('^//(%S*)')
elseif url_str:match ('%S-:/*%S+') then -- if there is what appears to be a scheme, optional authority indicator, and domain name
scheme, authority, domain = url_str:match ('(%S-:)(/*)(%S+)'); -- extract the scheme, authority indicator, and domain portions
authority = authority:gsub ('//', '', 1); -- replace place 1 pair of '/' with nothing;
if is_set(authority) then -- if anything left (1 or 3+ '/' where authority should be) then
return scheme; -- return scheme only making domain nil which will cause an error message
end
domain = domain:gsub ('(%a):%d+', '%1'); -- strip port number if present
end
return scheme, domain;
end
--[[--------------------------&lt; L I N K _ P A R A M _ O K &gt;---------------------------------------------------
checks the content of |title-link=, |series-link=, |author-link= etc for properly formatted content: no wikilinks, no urls
Link parameters are to hold the title of a wikipedia article so none of the WP:TITLESPECIALCHARACTERS are allowed:
# &lt; &gt; [ ] | { } _
except the underscore which is used as a space in wiki urls and # which is used for section links
returns false when the value contains any of these characters.
When there are no illegal characters, this function returns TRUE if value DOES NOT appear to be a valid url (the
|&lt;param&gt;-link= parameter is ok); else false when value appears to be a valid url (the |&lt;param&gt;-link= parameter is NOT ok).
]]
local function link_param_ok (value)
local scheme, domain;
if value:find ('[&lt;&gt;%[%]|{}]') then -- if any prohibited characters
return false;
end
scheme, domain = split_url (value); -- get scheme or nil and domain or nil from url;
return not is_url (scheme, domain); -- return true if value DOES NOT appear to be a valid url
end
--[[--------------------------&lt; L I N K _ T I T L E _ O K &gt;---------------------------------------------------
Use link_param_ok() to validate |&lt;param&gt;-link= value and its matching |&lt;title&gt;= value.
|&lt;title&gt;= may be wikilinked but not when |&lt;param&gt;-link= has a value. This function emits an error message when
that condition exists
]]
local function link_title_ok (link, lorig, title, torig)
local orig;
if is_set (link) then -- don't bother if &lt;param&gt;-link doesn't have a value
if not link_param_ok (link) then -- check |&lt;param&gt;-link= markup
orig = lorig; -- identify the failing link parameter
elseif title:find ('%[%[') then -- check |title= for wikilink markup
orig = torig; -- identify the failing |title= parameter
end
end
if is_set (orig) then
table.insert( z.message_tail, { set_error( 'bad_paramlink', orig)}); -- url or wikilink in |title= with |title-link=;
end
end
--[[--------------------------&lt; C H E C K _ U R L &gt;------------------------------------------------------------
Determines whether a URL string appears to be valid.
First we test for space characters. If any are found, return false. Then split the url into scheme and domain
portions, or for protocol relative (//example.com) urls, just the domain. Use is_url() to validate the two
portions of the url. If both are valid, or for protocol relative if domain is valid, return true, else false.
Because it is different from a standard url, and because this module used external_link() to make external links
that work for standard and news: links, we validate newsgroup names here. The specification for a newsgroup name
is at https://tools.ietf.org/html/rfc5536#section-3.1.4
]]
local function check_url( url_str )
if nil == url_str:match (&quot;^%S+$&quot;) then -- if there are any spaces in |url=value it can't be a proper url
return false;
end
local scheme, domain;
scheme, domain = split_url (url_str); -- get scheme or nil and domain or nil from url;
if 'news:' == scheme then -- special case for newsgroups
return domain:match('^[%a%d%+%-_]+%.[%a%d%+%-_%.]*[%a%d%+%-_]$');
end
return is_url (scheme, domain); -- return true if value appears to be a valid url
end
--[=[-------------------------&lt; I S _ P A R A M E T E R _ E X T _ W I K I L I N K &gt;----------------------------
Return true if a parameter value has a string that begins and ends with square brackets [ and ] and the first
non-space characters following the opening bracket appear to be a url. The test will also find external wikilinks
that use protocol relative urls. Also finds bare urls.
The frontier pattern prevents a match on interwiki links which are similar to scheme:path urls. The tests that
find bracketed urls are required because the parameters that call this test (currently |title=, |chapter=, |work=,
and |publisher=) may have wikilinks and there are articles or redirects like '//Hus' so, while uncommon, |title=[[//Hus]]
is possible as might be [[en://Hus]].
]=]
local function is_parameter_ext_wikilink (value)
local scheme, domain;
if value:match ('%f[%[]%[%a%S*:%S+.*%]') then -- if ext wikilink with scheme and domain: [xxxx://yyyyy.zzz]
scheme, domain = split_url (value:match ('%f[%[]%[(%a%S*:%S+).*%]'));
elseif value:match ('%f[%[]%[//%S+.*%]') then -- if protocol relative ext wikilink: [//yyyyy.zzz]
scheme, domain = split_url (value:match ('%f[%[]%[(//%S+).*%]'));
elseif value:match ('%a%S*:%S+') then -- if bare url with scheme; may have leading or trailing plain text
scheme, domain = split_url (value:match ('(%a%S*:%S+)'));
elseif value:match ('//%S+') then -- if protocol relative bare url: //yyyyy.zzz; may have leading or trailing plain text
scheme, domain = split_url (value:match ('(//%S+)')); -- what is left should be the domain
else
return false; -- didn't find anything that is obviously a url
end
return is_url (scheme, domain); -- return true if value appears to be a valid url
end
--[[-------------------------&lt; C H E C K _ F O R _ U R L &gt;-----------------------------------------------------
loop through a list of parameters and their values. Look at the value and if it has an external link, emit an error message.
]]
local function check_for_url (parameter_list)
local error_message = '';
for k, v in pairs (parameter_list) do -- for each parameter in the list
if is_parameter_ext_wikilink (v) then -- look at the value; if there is a url add an error message
if is_set(error_message) then -- once we've added the first portion of the error message ...
error_message=error_message .. &quot;, &quot;; -- ... add a comma space separator
end
error_message=error_message .. &quot;&amp;#124;&quot; .. k .. &quot;=&quot;; -- add the failed parameter
end
end
if is_set (error_message) then -- done looping, if there is an error message, display it
table.insert( z.message_tail, { set_error( 'param_has_ext_link', {error_message}, true ) } );
end
end
--[[--------------------------&lt; S A F E _ F O R _ U R L &gt;------------------------------------------------------
Escape sequences for content that will be used for URL descriptions
]]
local function safe_for_url( str )
if str:match( &quot;%[%[.-%]%]&quot; ) ~= nil then
table.insert( z.message_tail, { set_error( 'wikilink_in_url', {}, true ) } );
end
return str:gsub( '[%[%]\n]', {
['['] = '&amp;#91;',
[']'] = '&amp;#93;',
['\n'] = ' ' } );
end
--[[--------------------------&lt; E X T E R N A L _ L I N K &gt;----------------------------------------------------
Format an external link with error checking
]]
local function external_link( URL, label, source, access)
local error_str = &quot;&quot;;
local domain;
local path;
local base_url;
if not is_set( label ) then
label = URL;
if is_set( source ) then
error_str = set_error( 'bare_url_missing_title', { wrap_style ('parameter', source) }, false, &quot; &quot; );
else
error( cfg.messages[&quot;bare_url_no_origin&quot;] );
end
end
if not check_url( URL ) then
error_str = set_error( 'bad_url', {wrap_style ('parameter', source)}, false, &quot; &quot; ) .. error_str;
end
domain, path = URL:match ('^([/%.%-%+:%a%d]+)([/%?#].*)$'); -- split the url into scheme plus domain and path
if path then -- if there is a path portion
path = path:gsub ('[%[%]]', {['[']='%5b',[']']='%5d'}); -- replace '[' and ']' with their percent encoded values
URL=domain..path; -- and reassemble
end
if is_set (access) then -- access level (subscription, registration, limited)
label = safe_for_url (label); -- replace square brackets and newlines
base_url = table.concat ( -- assemble external link with access signal
{
'&lt;span class=&quot;plainlinks&quot;&gt;[', -- opening css and url markup
URL, -- the url
' ', -- the required space
label,
'&lt;span style=&quot;padding-left:0.15em&quot;&gt;', -- signal spacing css
cfg.presentation[access], -- the appropriate icon
'&lt;/span&gt;', -- close signal spacing span
']&lt;/span&gt;' -- close url markup and plain links span
});
else
base_url = table.concat({ &quot;[&quot;, URL, &quot; &quot;, safe_for_url( label ), &quot;]&quot; }); -- no signal markup
end
return table.concat({ base_url, error_str });
end
--[[--------------------------&lt; D E P R E C A T E D _ P A R A M E T E R &gt;--------------------------------------
Categorize and emit an error message when the citation contains one or more deprecated parameters. The function includes the
offending parameter name to the error message. Only one error message is emitted regardless of the number of deprecated
parameters in the citation.
added_deprecated_cat is a boolean declared in page scope variables above
]]
local function deprecated_parameter(name)
if not added_deprecated_cat then
added_deprecated_cat = true; -- note that we've added this category
table.insert( z.message_tail, { set_error( 'deprecated_params', {name}, true ) } ); -- add error message
end
end
--[=[-------------------------&lt; K E R N _ Q U O T E S &gt;--------------------------------------------------------
Apply kerning to open the space between the quote mark provided by the Module and a leading or trailing quote
mark contained in a |title= or |chapter= parameter's value.
This function will positive kern either single or double quotes:
&quot;'Unkerned title with leading and trailing single quote marks'&quot;
&quot; 'Kerned title with leading and trailing single quote marks' &quot; (in real life the kerning isn't as wide as this example)
Double single quotes (italic or bold wikimarkup) are not kerned.
Replaces unicode quotemarks in plain text or in the label portion of a [[L|D]] style wikilink with typewriter
quote marks regardless of the need for kerning. Unicode quote marks are not replaced in simple [[D]] wikilinks.
Call this function for chapter titles, for website titles, etc; not for book titles.
]=]
local function kern_quotes (str)
local cap='';
local cap2='';
local wl_type, label, link;
wl_type, label, link = is_wikilink (str); -- wl_type is: 0, no wl (text in label variable); 1, [[D]]; 2, [[L|D]]
if 1 == wl_type then -- [[D]] simple wikilink with or without quote marks
if mw.ustring.match (str, '%[%[[\&quot;“”\'‘’].+[\&quot;“”\'‘’]%]%]') then -- leading and trailing quote marks
str = substitute (cfg.presentation['kern-wl-both'], str);
elseif mw.ustring.match (str, '%[%[[\&quot;“”\'‘’].+%]%]') then -- leading quote marks
str = substitute (cfg.presentation['kern-wl-left'], str);
elseif mw.ustring.match (str, '%[%[.+[\&quot;“”\'‘’]%]%]') then -- trailing quote marks
str = substitute (cfg.presentation['kern-wl-right'], str);
end
else -- plain text or [[L|D]]; text in label variable
label= mw.ustring.gsub (label, '[“”]', '\&quot;'); -- replace “” (U+201C &amp; U+201D) with &quot; (typewriter double quote mark)
label= mw.ustring.gsub (label, '[‘’]', '\''); -- replace ‘’ (U+2018 &amp; U+2019) with ' (typewriter single quote mark)
cap, cap2 = mw.ustring.match (label, &quot;^([\&quot;\'])([^\'].+)&quot;); -- match leading double or single quote but not doubled single quotes (italic markup)
if is_set (cap) then
label = substitute (cfg.presentation['kern-left'], {cap, cap2});
end
cap, cap2 = mw.ustring.match (label, &quot;^(.+[^\'])([\&quot;\'])$&quot;) -- match trailing double or single quote but not doubled single quotes (italic markup)
if is_set (cap) then
label = substitute (cfg.presentation['kern-right'], {cap, cap2});
end
if 2 == wl_type then
str = make_wikilink (link, label); -- reassemble the wikilink
else
str = label;
end
end
return str;
end
--[[--------------------------&lt; F O R M A T _ S C R I P T _ V A L U E &gt;----------------------------------------
|script-title= holds title parameters that are not written in Latin based scripts: Chinese, Japanese, Arabic, Hebrew, etc. These scripts should
not be italicized and may be written right-to-left. The value supplied by |script-title= is concatenated onto Title after Title has been wrapped
in italic markup.
Regardless of language, all values provided by |script-title= are wrapped in &lt;bdi&gt;...&lt;/bdi&gt; tags to isolate rtl languages from the English left to right.
|script-title= provides a unique feature. The value in |script-title= may be prefixed with a two-character ISO639-1 language code and a colon:
|script-title=ja:*** *** (where * represents a Japanese character)
Spaces between the two-character code and the colon and the colon and the first script character are allowed:
|script-title=ja : *** ***
|script-title=ja: *** ***
|script-title=ja :*** ***
Spaces preceding the prefix are allowed: |script-title = ja:*** ***
The prefix is checked for validity. If it is a valid ISO639-1 language code, the lang attribute (lang=&quot;ja&quot;) is added to the &lt;bdi&gt; tag so that browsers can
know the language the tag contains. This may help the browser render the script more correctly. If the prefix is invalid, the lang attribute
is not added. At this time there is no error message for this condition.
Supports |script-title= and |script-chapter=
TODO: error messages when prefix is invalid ISO639-1 code; when script_value has prefix but no script;
]]
local function format_script_value (script_value)
local lang=''; -- initialize to empty string
local name;
if script_value:match('^%l%l%s*:') then -- if first 3 non-space characters are script language prefix
lang = script_value:match('^(%l%l)%s*:%s*%S.*'); -- get the language prefix or nil if there is no script
if not is_set (lang) then
return ''; -- script_value was just the prefix so return empty string
end
-- if we get this far we have prefix and script
name = mw.language.fetchLanguageName( lang, &quot;en&quot; ); -- get language name so that we can use it to categorize
if is_set (name) then -- is prefix a proper ISO 639-1 language code?
script_value = script_value:gsub ('^%l%l%s*:%s*', ''); -- strip prefix from script
-- is prefix one of these language codes?
if in_array (lang, cfg.script_lang_codes) then
add_prop_cat ('script_with_name', {name, lang})
else
add_prop_cat ('script')
end
lang = ' lang=&quot;' .. lang .. '&quot; '; -- convert prefix into a lang attribute
else
lang = ''; -- invalid so set lang to empty string
end
end
script_value = substitute (cfg.presentation['bdi'], {lang, script_value}); -- isolate in case script is rtl
return script_value;
end
--[[--------------------------&lt; S C R I P T _ C O N C A T E N A T E &gt;------------------------------------------
Initially for |title= and |script-title=, this function concatenates those two parameter values after the script value has been
wrapped in &lt;bdi&gt; tags.
]]
local function script_concatenate (title, script)
if is_set (script) then
script = format_script_value (script); -- &lt;bdi&gt; tags, lang atribute, categorization, etc; returns empty string on error
if is_set (script) then
title = title .. ' ' .. script; -- concatenate title and script title
end
end
return title;
end
--[[--------------------------&lt; W R A P _ M S G &gt;--------------------------------------------------------------
Applies additional message text to various parameter values. Supplied string is wrapped using a message_list
configuration taking one argument. Supports lower case text for {{citation}} templates. Additional text taken
from citation_config.messages - the reason this function is similar to but separate from wrap_style().
]]
local function wrap_msg (key, str, lower)
if not is_set( str ) then
return &quot;&quot;;
end
if true == lower then
local msg;
msg = cfg.messages[key]:lower(); -- set the message to lower case before
return substitute( msg, str ); -- including template text
else
return substitute( cfg.messages[key], str );
end
end
--[[--------------------------&lt; F O R M A T _ C H A P T E R _ T I T L E &gt;--------------------------------------
Format the four chapter parameters: |script-chapter=, |chapter=, |trans-chapter=, and |chapter-url= into a single Chapter meta-
parameter (chapter_url_source used for error messages).
]]
local function format_chapter_title (scriptchapter, chapter, transchapter, chapterurl, chapter_url_source, no_quotes, access)
local chapter_error = '';
if not is_set (chapter) then
chapter = ''; -- to be safe for concatenation
else
if false == no_quotes then
chapter = kern_quotes (chapter); -- if necessary, separate chapter title's leading and trailing quote marks from Module provided quote marks
chapter = wrap_style ('quoted-title', chapter);
end
end
chapter = script_concatenate (chapter, scriptchapter) -- &lt;bdi&gt; tags, lang atribute, categorization, etc; must be done after title is wrapped
if is_set (transchapter) then
transchapter = wrap_style ('trans-quoted-title', transchapter);
if is_set (chapter) then
chapter = chapter .. ' ' .. transchapter;
else -- here when transchapter without chapter or script-chapter
chapter = transchapter; --
chapter_error = ' ' .. set_error ('trans_missing_title', {'chapter'});
end
end
if is_set (chapterurl) then
chapter = external_link (chapterurl, chapter, chapter_url_source, access); -- adds bare_url_missing_title error if appropriate
end
return chapter .. chapter_error;
end
--[[--------------------------&lt; H A S _ I N V I S I B L E _ C H A R S &gt;----------------------------------------
This function searches a parameter's value for nonprintable or invisible characters. The search stops at the
first match.
This function will detect the visible replacement character when it is part of the wikisource.
Detects but ignores nowiki and math stripmarkers. Also detects other named stripmarkers (gallery, math, pre, ref)
and identifies them with a slightly different error message. See also coins_cleanup().
Detects but ignores the character pattern that results from the transclusion of {{'}} templates.
Output of this function is an error message that identifies the character or the Unicode group, or the stripmarker
that was detected along with its position (or, for multi-byte characters, the position of its first byte) in the
parameter value.
]]
local function has_invisible_chars (param, v)
local position = ''; -- position of invisible char or starting position of stripmarker
local dummy; -- end of matching string; not used but required to hold end position when a capture is returned
local capture; -- used by stripmarker detection to hold name of the stripmarker
local i=1;
local stripmarker, apostrophe;
capture = string.match (v, '[%w%p ]*'); -- Test for values that are simple ASCII text and bypass other tests if true
if capture == v then -- if same there are no unicode characters
return;
end
while cfg.invisible_chars[i] do
local char=cfg.invisible_chars[i][1] -- the character or group name
local pattern=cfg.invisible_chars[i][2] -- the pattern used to find it
position, dummy, capture = mw.ustring.find (v, pattern) -- see if the parameter value contains characters that match the pattern
if position and (char == 'zero width joiner') then -- if we found a zero width joiner character
if mw.ustring.find (v, cfg.indic_script) then -- its ok if one of the indic scripts
position = nil; -- unset position
end
end
if position then
if 'nowiki' == capture or 'math' == capture then -- nowiki, math stripmarker (not an error condition)
stripmarker = true; -- set a flag
elseif true == stripmarker and 'delete' == char then -- because stripmakers begin and end with the delete char, assume that we've found one end of a stripmarker
position = nil; -- unset
else
local err_msg;
if capture then
err_msg = capture .. ' ' .. char;
else
err_msg = char .. ' ' .. 'character';
end
table.insert( z.message_tail, { set_error( 'invisible_char', {err_msg, wrap_style ('parameter', param), position}, true ) } ); -- add error message
return; -- and done with this parameter
end
end
i=i+1; -- bump our index
end
end
--[[--------------------------&lt; A R G U M E N T _ W R A P P E R &gt;----------------------------------------------
Argument wrapper. This function provides support for argument mapping defined in the configuration file so that
multiple names can be transparently aliased to single internal variable.
]]
local function argument_wrapper( args )
local origin = {};
return setmetatable({
ORIGIN = function( self, k )
local dummy = self[k]; --force the variable to be loaded.
return origin[k];
end
},
{
__index = function ( tbl, k )
if origin[k] ~= nil then
return nil;
end
local args, list, v = args, cfg.aliases[k];
if type( list ) == 'table' then
v, origin[k] = select_one( args, list, 'redundant_parameters' );
if origin[k] == nil then
origin[k] = ''; -- Empty string, not nil
end
elseif list ~= nil then
v, origin[k] = args[list], list;
else
-- maybe let through instead of raising an error?
-- v, origin[k] = args[k], k;
error( cfg.messages['unknown_argument_map'] );
end
-- Empty strings, not nil;
if v == nil then
v = cfg.defaults[k] or '';
origin[k] = '';
end
tbl = rawset( tbl, k, v );
return v;
end,
});
end
--[[--------------------------&lt; V A L I D A T E &gt;--------------------------------------------------------------
Looks for a parameter's name in one of several whitelists.
Parameters in the whitelist can have three values:
true - active, supported parameters
false - deprecated, supported parameters
nil - unsupported parameters
]]
local function validate( name, cite_class )
local name = tostring( name );
local state;
if in_array (cite_class, {'arxiv', 'biorxiv', 'citeseerx'}) then -- limited parameter sets allowed for these templates
state = whitelist.limited_basic_arguments[ name ];
if true == state then return true; end -- valid actively supported parameter
if false == state then
deprecated_parameter (name); -- parameter is deprecated but still supported
return true;
end
if 'arxiv' == cite_class then -- basic parameters unique to these templates
state = whitelist.arxiv_basic_arguments[name];
end
if 'biorxiv' == cite_class then
state = whitelist.biorxiv_basic_arguments[name];
end
if 'citeseerx' == cite_class then
state = whitelist.citeseerx_basic_arguments[name];
end
if true == state then return true; end -- valid actively supported parameter
if false == state then
deprecated_parameter (name); -- parameter is deprecated but still supported
return true;
end
-- limited enumerated parameters list
name = name:gsub( &quot;%d+&quot;, &quot;#&quot; ); -- replace digit(s) with # (last25 becomes last#)
state = whitelist.limited_numbered_arguments[ name ];
if true == state then return true; end -- valid actively supported parameter
if false == state then
deprecated_parameter (name); -- parameter is deprecated but still supported
return true;
end
return false; -- not supported because not found or name is set to nil
end -- end limited parameter-set templates
state = whitelist.basic_arguments[ name ]; -- all other templates; all normal parameters allowed
if true == state then return true; end -- valid actively supported parameter
if false == state then
deprecated_parameter (name); -- parameter is deprecated but still supported
return true;
end
-- all enumerated parameters allowed
name = name:gsub( &quot;%d+&quot;, &quot;#&quot; ); -- replace digit(s) with # (last25 becomes last#
state = whitelist.numbered_arguments[ name ];
if true == state then return true; end -- valid actively supported parameter
if false == state then
deprecated_parameter (name); -- parameter is deprecated but still supported
return true;
end
return false; -- not supported because not found or name is set to nil
end
--[[--------------------------&lt; N O W R A P _ D A T E &gt;--------------------------------------------------------
When date is YYYY-MM-DD format wrap in nowrap span: &lt;span ...&gt;YYYY-MM-DD&lt;/span&gt;. When date is DD MMMM YYYY or is
MMMM DD, YYYY then wrap in nowrap span: &lt;span ...&gt;DD MMMM&lt;/span&gt; YYYY or &lt;span ...&gt;MMMM DD,&lt;/span&gt; YYYY
DOES NOT yet support MMMM YYYY or any of the date ranges.
]]
local function nowrap_date (date)
local cap='';
local cap2='';
if date:match(&quot;^%d%d%d%d%-%d%d%-%d%d$&quot;) then
date = substitute (cfg.presentation['nowrap1'], date);
elseif date:match(&quot;^%a+%s*%d%d?,%s+%d%d%d%d$&quot;) or date:match (&quot;^%d%d?%s*%a+%s+%d%d%d%d$&quot;) then
cap, cap2 = string.match (date, &quot;^(.*)%s+(%d%d%d%d)$&quot;);
date = substitute (cfg.presentation['nowrap2'], {cap, cap2});
end
return date;
end
--[[--------------------------&lt; S E T _ T I T L E T Y P E &gt;----------------------------------------------------
This function sets default title types (equivalent to the citation including |type=&lt;default value&gt;) for those templates that have defaults.
Also handles the special case where it is desirable to omit the title type from the rendered citation (|type=none).
]]
local function set_titletype (cite_class, title_type)
if is_set(title_type) then
if &quot;none&quot; == title_type then
title_type = &quot;&quot;; -- if |type=none then type parameter not displayed
end
return title_type; -- if |type= has been set to any other value use that value
end
return cfg.title_types [cite_class] or ''; -- set template's default title type; else empty string for concatenation
end
--[[--------------------------&lt; H Y P H E N _ T O _ D A S H &gt;--------------------------------------------------
Converts a hyphen to a dash
]]
local function hyphen_to_dash( str )
if not is_set(str) or str:match( &quot;[%[%]{}&lt;&gt;]&quot; ) ~= nil then
return str;
end
return str:gsub( '-', '–' );
end
--[[--------------------------&lt; S A F E _ J O I N &gt;------------------------------------------------------------
Joins a sequence of strings together while checking for duplicate separation characters.
]]
local function safe_join( tbl, duplicate_char )
--[[
Note: we use string functions here, rather than ustring functions.
This has considerably faster performance and should work correctly as
long as the duplicate_char is strict ASCII. The strings
in tbl may be ASCII or UTF8.
]]
local str = ''; -- the output string
local comp = ''; -- what does 'comp' mean?
local end_chr = '';
local trim;
for _, value in ipairs( tbl ) do
if value == nil then value = ''; end
if str == '' then -- if output string is empty
str = value; -- assign value to it (first time through the loop)
elseif value ~= '' then
if value:sub(1,1) == '&lt;' then -- Special case of values enclosed in spans and other markup.
comp = value:gsub( &quot;%b&lt;&gt;&quot;, &quot;&quot; ); -- remove html markup (&lt;span&gt;string&lt;/span&gt; -&gt; string)
else
comp = value;
end
-- typically duplicate_char is sepc
if comp:sub(1,1) == duplicate_char then -- is first charactier same as duplicate_char? why test first character?
-- Because individual string segments often (always?) begin with terminal punct for th
-- preceding segment: 'First element' .. 'sepc next element' .. etc?
trim = false;
end_chr = str:sub(-1,-1); -- get the last character of the output string
-- str = str .. &quot;&lt;HERE(enchr=&quot; .. end_chr.. &quot;)&quot; -- debug stuff?
if end_chr == duplicate_char then -- if same as separator
str = str:sub(1,-2); -- remove it
elseif end_chr == &quot;'&quot; then -- if it might be wikimarkup
if str:sub(-3,-1) == duplicate_char .. &quot;''&quot; then -- if last three chars of str are sepc''
str = str:sub(1, -4) .. &quot;''&quot;; -- remove them and add back ''
elseif str:sub(-5,-1) == duplicate_char .. &quot;]]''&quot; then -- if last five chars of str are sepc]]''
trim = true; -- why? why do this and next differently from previous?
elseif str:sub(-4,-1) == duplicate_char .. &quot;]''&quot; then -- if last four chars of str are sepc]''
trim = true; -- same question
end
elseif end_chr == &quot;]&quot; then -- if it might be wikimarkup
if str:sub(-3,-1) == duplicate_char .. &quot;]]&quot; then -- if last three chars of str are sepc]] wikilink
trim = true;
elseif str:sub(-3,-1) == duplicate_char .. '&quot;]' then -- if last three chars of str are sepc&quot;] quoted external link
trim = true;
elseif str:sub(-2,-1) == duplicate_char .. &quot;]&quot; then -- if last two chars of str are sepc] external link
trim = true;
elseif str:sub(-4,-1) == duplicate_char .. &quot;'']&quot; then -- normal case when |url=something &amp; |title=Title.
trim = true;
end
elseif end_chr == &quot; &quot; then -- if last char of output string is a space
if str:sub(-2,-1) == duplicate_char .. &quot; &quot; then -- if last two chars of str are &lt;sepc&gt;&lt;space&gt;
str = str:sub(1,-3); -- remove them both
end
end
if trim then
if value ~= comp then -- value does not equal comp when value contains html markup
local dup2 = duplicate_char;
if dup2:match( &quot;%A&quot; ) then dup2 = &quot;%&quot; .. dup2; end -- if duplicate_char not a letter then escape it
value = value:gsub( &quot;(%b&lt;&gt;)&quot; .. dup2, &quot;%1&quot;, 1 ) -- remove duplicate_char if it follows html markup
else
value = value:sub( 2, -1 ); -- remove duplicate_char when it is first character
end
end
end
str = str .. value; --add it to the output string
end
end
return str;
end
--[[--------------------------&lt; I S _ S U F F I X &gt;------------------------------------------------------------
returns true is suffix is properly formed Jr, Sr, or ordinal in the range 2–9. Puncutation not allowed.
]]
local function is_suffix (suffix)
if in_array (suffix, {'Jr', 'Sr', '2nd', '3rd'}) or suffix:match ('^%dth$') then
return true;
end
return false;
end
--[[--------------------------&lt; I S _ G O O D _ V A N C _ N A M E &gt;--------------------------------------------
For Vancouver Style, author/editor names are supposed to be rendered in Latin (read ASCII) characters. When a name
uses characters that contain diacritical marks, those characters are to converted to the corresponding Latin character.
When a name is written using a non-Latin alphabet or logogram, that name is to be transliterated into Latin characters.
These things are not currently possible in this module so are left to the editor to do.
This test allows |first= and |last= names to contain any of the letters defined in the four Unicode Latin character sets
[http://www.unicode.org/charts/PDF/U0000.pdf C0 Controls and Basic Latin] 0041–005A, 0061–007A
[http://www.unicode.org/charts/PDF/U0080.pdf C1 Controls and Latin-1 Supplement] 00C0–00D6, 00D8–00F6, 00F8–00FF
[http://www.unicode.org/charts/PDF/U0100.pdf Latin Extended-A] 0100–017F
[http://www.unicode.org/charts/PDF/U0180.pdf Latin Extended-B] 0180–01BF, 01C4–024F
|lastn= also allowed to contain hyphens, spaces, and apostrophes. (http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35029/)
|firstn= also allowed to contain hyphens, spaces, apostrophes, and periods
This original test:
if nil == mw.ustring.find (last, &quot;^[A-Za-zÀ-ÖØ-öø-ƿDŽ-ɏ%-%s%']*$&quot;) or nil == mw.ustring.find (first, &quot;^[A-Za-zÀ-ÖØ-öø-ƿDŽ-ɏ%-%s%'%.]+[2-6%a]*$&quot;) then
was written ouside of the code editor and pasted here because the code editor gets confused between character insertion point and cursor position.
The test has been rewritten to use decimal character escape sequence for the individual bytes of the unicode characters so that it is not necessary
to use an external editor to maintain this code.
\195\128-\195\150 – À-Ö (U+00C0–U+00D6 – C0 controls)
\195\152-\195\182 – Ø-ö (U+00D8-U+00F6 – C0 controls)
\195\184-\198\191 – ø-ƿ (U+00F8-U+01BF – C0 controls, Latin extended A &amp; B)
\199\132-\201\143 – DŽ-ɏ (U+01C4-U+024F – Latin extended B)
]]
local function is_good_vanc_name (last, first)
local first, suffix = first:match ('(.-),?%s*([%dJS][%drndth]+)%.?$') or first; -- if first has something that looks like a generational suffix, get it
if is_set (suffix) then
if not is_suffix (suffix) then
add_vanc_error ('suffix');
return false; -- not a name with an appropriate suffix
end
end
if nil == mw.ustring.find (last, &quot;^[A-Za-z\195\128-\195\150\195\152-\195\182\195\184-\198\191\199\132-\201\143%-%s%']*$&quot;) or
nil == mw.ustring.find (first, &quot;^[A-Za-z\195\128-\195\150\195\152-\195\182\195\184-\198\191\199\132-\201\143%-%s%'%.]*$&quot;) then
add_vanc_error ('non-Latin character');
return false; -- not a string of latin characters; Vancouver requires Romanization
end;
return true;
end
--[[--------------------------&lt; R E D U C E _ T O _ I N I T I A L S &gt;------------------------------------------
Attempts to convert names to initials in support of |name-list-format=vanc.
Names in |firstn= may be separated by spaces or hyphens, or for initials, a period. See http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35062/.
Vancouver style requires family rank designations (Jr, II, III, etc) to be rendered as Jr, 2nd, 3rd, etc. See http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35085/.
This code only accepts and understands generational suffix in the Vancouver format because Roman numerals look like, and can be mistaken for, initials.
This function uses ustring functions because firstname initials may be any of the unicode Latin characters accepted by is_good_vanc_name ().
]]
local function reduce_to_initials(first)
local name, suffix = mw.ustring.match(first, &quot;^(%u+) ([%dJS][%drndth]+)$&quot;);
if not name then -- if not initials and a suffix
name = mw.ustring.match(first, &quot;^(%u+)$&quot;); -- is it just intials?
end
if name then -- if first is initials with or without suffix
if 3 &gt; mw.ustring.len (name) then -- if one or two initials
if suffix then -- if there is a suffix
if is_suffix (suffix) then -- is it legitimate?
return first; -- one or two initials and a valid suffix so nothing to do
else
add_vanc_error ('suffix'); -- one or two initials with invalid suffix so error message
return first; -- and return first unmolested
end
else
return first; -- one or two initials without suffix; nothing to do
end
end
end -- if here then name has 3 or more uppercase letters so treat them as a word
local initials, names = {}, {}; -- tables to hold name parts and initials
local i = 1; -- counter for number of initials
names = mw.text.split (first, '[%s,]+'); -- split into a table of names and possible suffix
while names[i] do -- loop through the table
if 1 &lt; i and names[i]:match ('[%dJS][%drndth]+%.?$') then -- if not the first name, and looks like a suffix (may have trailing dot)
names[i] = names[i]:gsub ('%.', ''); -- remove terminal dot if present
if is_suffix (names[i]) then -- if a legitimate suffix
table.insert (initials, ' ' .. names[i]); -- add a separator space, insert at end of initials table
break; -- and done because suffix must fall at the end of a name
end -- no error message if not a suffix; possibly because of Romanization
end
if 3 &gt; i then
table.insert (initials, mw.ustring.sub(names[i],1,1)); -- insert the intial at end of initials table
end
i = i+1; -- bump the counter
end
return table.concat(initials) -- Vancouver format does not include spaces.
end
--[[--------------------------&lt; L I S T _ P E O P L E &gt;-------------------------------------------------------
Formats a list of people (e.g. authors / editors)
]]
local function list_people(control, people, etal)
local sep;
local namesep;
local format = control.format
local maximum = control.maximum
local lastauthoramp = control.lastauthoramp;
local text = {}
if 'vanc' == format then -- Vancouver-like author/editor name styling?
sep = ','; -- name-list separator between authors is a comma
namesep = ' '; -- last/first separator is a space
else
sep = ';' -- name-list separator between authors is a semicolon
namesep = ', ' -- last/first separator is &lt;comma&gt;&lt;space&gt;
end
if sep:sub(-1,-1) ~= &quot; &quot; then sep = sep .. &quot; &quot; end
if is_set (maximum) and maximum &lt; 1 then return &quot;&quot;, 0; end -- returned 0 is for EditorCount; not used for authors
for i,person in ipairs(people) do
if is_set(person.last) then
local mask = person.mask
local one
local sep_one = sep;
if is_set (maximum) and i &gt; maximum then
etal = true;
break;
elseif (mask ~= nil) then
local n = tonumber(mask)
if (n ~= nil) then
one = string.rep(&quot;&amp;mdash;&quot;,n)
else
one = mask;
sep_one = &quot; &quot;;
end
else
one = person.last
local first = person.first
if is_set(first) then
if ( &quot;vanc&quot; == format ) then -- if vancouver format
one = one:gsub ('%.', ''); -- remove periods from surnames (http://www.ncbi.nlm.nih.gov/books/NBK7271/box/A35029/)
if not person.corporate and is_good_vanc_name (one, first) then -- and name is all Latin characters; corporate authors not tested
first = reduce_to_initials(first) -- attempt to convert first name(s) to initials
end
end
one = one .. namesep .. first;
end
if is_set(person.link) and person.link ~= control.page_name then
one = make_wikilink (person.link, one); -- link author/editor if this page is not the author's/editor's page
end
end
table.insert( text, one )
table.insert( text, sep_one )
end
end
local count = #text / 2; -- (number of names + number of separators) divided by 2
if count &gt; 0 then
if count &gt; 1 and is_set(lastauthoramp) and not etal then
text[#text-2] = &quot; &amp; &quot;; -- replace last separator with ampersand text
end
text[#text] = nil; -- erase the last separator
end
local result = table.concat(text) -- construct list
if etal and is_set (result) then -- etal may be set by |display-authors=etal but we might not have a last-first list
result = result .. sep .. ' ' .. cfg.messages['et al']; -- we've go a last-first list and etal so add et al.
end
return result, count
end
--[[--------------------------&lt; A N C H O R _ I D &gt;------------------------------------------------------------
Generates a CITEREF anchor ID if we have at least one name or a date. Otherwise returns an empty string.
namelist is one of the contributor-, author-, or editor-name lists chosen in that order. year is Year or anchor_year.
]]
local function anchor_id (namelist, year)
local names={}; -- a table for the one to four names and year
for i,v in ipairs (namelist) do -- loop through the list and take up to the first four last names
names[i] = v.last
if i == 4 then break end -- if four then done
end
table.insert (names, year); -- add the year at the end
local id = table.concat(names); -- concatenate names and year for CITEREF id
if is_set (id) then -- if concatenation is not an empty string
return &quot;CITEREF&quot; .. id; -- add the CITEREF portion
else
return ''; -- return an empty string; no reason to include CITEREF id in this citation
end
end
--[[--------------------------&lt; N A M E _ H A S _ E T A L &gt;----------------------------------------------------
Evaluates the content of author and editor name parameters for variations on the theme of et al. If found,
the et al. is removed, a flag is set to true and the function returns the modified name and the flag.
This function never sets the flag to false but returns it's previous state because it may have been set by
previous passes through this function or by the parameters |display-authors=etal or |display-editors=etal
]]
local function name_has_etal (name, etal, nocat)
if is_set (name) then -- name can be nil in which case just return
local etal_pattern = &quot;[;,]? *[\&quot;']*%f[%a][Ee][Tt] *[Aa][Ll][%.\&quot;']*$&quot; -- variations on the 'et al' theme
local others_pattern = &quot;[;,]? *%f[%a]and [Oo]thers&quot;; -- and alternate to et al.
if name:match (etal_pattern) then -- variants on et al.
name = name:gsub (etal_pattern, ''); -- if found, remove
etal = true; -- set flag (may have been set previously here or by |display-authors=etal)
if not nocat then -- no categorization for |vauthors=
add_maint_cat ('etal'); -- and add a category if not already added
end
elseif name:match (others_pattern) then -- if not 'et al.', then 'and others'?
name = name:gsub (others_pattern, ''); -- if found, remove
etal = true; -- set flag (may have been set previously here or by |display-authors=etal)
if not nocat then -- no categorization for |vauthors=
add_maint_cat ('etal'); -- and add a category if not already added
end
end
end
return name, etal; --
end
--[[--------------------------&lt; N A M E _ H A S _ E D _ M A R K U P &gt;------------------------------------------
Evaluates the content of author and editor parameters for extranious editor annotations: ed, ed., eds, (Ed.), etc.
These annotation do not belong in author parameters and are redundant in editor parameters. If found, the function
adds the editor markup maintenance category.
]]
local function name_has_ed_markup (name, list_name)
local _, pattern;
local patterns = { -- these patterns match annotations at end of name
'%f[%(%[][%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]?$', -- (ed) or (eds): leading '(', case insensitive 'ed', optional 's', '.' and/or ')'
'[,%.%s]%f[e]eds?%.?$', -- ed or eds: without '('or ')'; case sensitive (ED could be initials Ed could be name)
'%f[%(%[][%(%[]%s*[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%.?%s*[%)%]]?$', -- (editor) or (editors): leading '(', case insensitive, optional '.' and/or ')'
'[,%.%s]%f[Ee][Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%.?$', -- editor or editors: without '('or ')'; case insensitive
-- these patterns match annotations at beginning of name
'^eds?[%.,;]', -- ed. or eds.: lower case only, optional 's', requires '.'
'^[%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]', -- (ed) or (eds): also sqare brackets, case insensitive, optional 's', '.'
'^[%(%[]?%s*[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%A', -- (editor or (editors: also sq brackets, case insensitive, optional brackets, 's'
'^[%(%[]?%s*[Ee][Dd][Ii][Tt][Ee][Dd]%A', -- (edited: also sq brackets, case insensitive, optional brackets
}
if is_set (name) then
for _, pattern in ipairs (patterns) do -- spin through patterns table and
if name:match (pattern) then
add_maint_cat ('extra_text_names', cfg.special_case_translation [list_name]); -- add a maint cat for this template
break;
end
end
end
return name; -- and done
end
--[[--------------------------&lt; N A M E _ H A S _ M U L T _ N A M E S &gt;----------------------------------------
Evaluates the content of author and editor (surnames only) parameters for multiple names. Multiple names are
indicated if there is more than one comma and or semicolon. If found, the function adds the multiple name
(author or editor) maintenance category.
]]
local function name_has_mult_names (name, list_name)
local count, _;
if is_set (name) then
_, count = name:gsub ('[;,]', ''); -- count the number of separator-like characters
if 1 &lt; count then -- param could be |author= or |editor= so one separator character is acceptable
add_maint_cat ('mult_names', cfg.special_case_translation [list_name]); -- more than one separator indicates multiple names so add a maint cat for this template
end
end
return name; -- and done
end
--[[--------------------------&lt; N A M E _ C H E C K S &gt;--------------------------------------------------------
This function calls various name checking functions used to validate the content of the various name-holding
parameters.
]]
local function name_checks (last, first, list_name)
if is_set (last) then
if last:match ('^%(%(.*%)%)$') then -- if wrapped in doubled parentheses, accept as written
last = last:match ('^%(%((.*)%)%)$'); -- strip parens
else
last = name_has_mult_names (last, list_name); -- check for multiple names in the parameter (last only)
last = name_has_ed_markup (last, list_name); -- check for extraneous 'editor' annotation
end
end
if is_set (first) then
if first:match ('^%(%(.*%)%)$') then -- if wrapped in doubled parentheses, accept as written
first = first:match ('^%(%((.*)%)%)$'); -- strip parens
else
first = name_has_ed_markup (first, list_name); -- check for extraneous 'editor' annotation
end
end
return last, first; -- done
end
--[[--------------------------&lt; E X T R A C T _ N A M E S &gt;----------------------------------------------------
Gets name list from the input arguments
Searches through args in sequential order to find |lastn= and |firstn= parameters (or their aliases), and their matching link and mask parameters.
Stops searching when both |lastn= and |firstn= are not found in args after two sequential attempts: found |last1=, |last2=, and |last3= but doesn't
find |last4= and |last5= then the search is done.
This function emits an error message when there is a |firstn= without a matching |lastn=. When there are 'holes' in the list of last names, |last1= and |last3=
are present but |last2= is missing, an error message is emitted. |lastn= is not required to have a matching |firstn=.
When an author or editor parameter contains some form of 'et al.', the 'et al.' is stripped from the parameter and a flag (etal) returned
that will cause list_people() to add the static 'et al.' text from Module:Citation/CS1/Configuration. This keeps 'et al.' out of the
template's metadata. When this occurs, the page is added to a maintenance category.
]]
local function extract_names(args, list_name)
local names = {}; -- table of names
local last; -- individual name components
local first;
local link;
local mask;
local i = 1; -- loop counter/indexer
local n = 1; -- output table indexer
local count = 0; -- used to count the number of times we haven't found a |last= (or alias for authors, |editor-last or alias for editors)
local etal=false; -- return value set to true when we find some form of et al. in an author parameter
local err_msg_list_name = list_name:match (&quot;(%w+)List&quot;) .. 's list'; -- modify AuthorList or EditorList for use in error messages if necessary
while true do
last = select_one( args, cfg.aliases[list_name .. '-Last'], 'redundant_parameters', i ); -- search through args for name components beginning at 1
first = select_one( args, cfg.aliases[list_name .. '-First'], 'redundant_parameters', i );
link = select_one( args, cfg.aliases[list_name .. '-Link'], 'redundant_parameters', i );
mask = select_one( args, cfg.aliases[list_name .. '-Mask'], 'redundant_parameters', i );
last, etal = name_has_etal (last, etal, false); -- find and remove variations on et al.
first, etal = name_has_etal (first, etal, false); -- find and remove variations on et al.
last, first= name_checks (last, first, list_name); -- multiple names, extraneous annotation, etc checks
if first and not last then -- if there is a firstn without a matching lastn
table.insert( z.message_tail, { set_error( 'first_missing_last', {err_msg_list_name, i}, true ) } ); -- add this error message
elseif not first and not last then -- if both firstn and lastn aren't found, are we done?
count = count + 1; -- number of times we haven't found last and first
if 2 &lt;= count then -- two missing names and we give up
break; -- normal exit or there is a two-name hole in the list; can't tell which
end
else -- we have last with or without a first
link_title_ok (link, list_name:match (&quot;(%w+)List&quot;):lower() .. '-link' .. i, last, list_name:match (&quot;(%w+)List&quot;):lower() .. '-last' .. i); -- check for improper wikimarkup
names[n] = {last = last, first = first, link = link, mask = mask, corporate=false}; -- add this name to our names list (corporate for |vauthors= only)
n = n + 1; -- point to next location in the names table
if 1 == count then -- if the previous name was missing
table.insert( z.message_tail, { set_error( 'missing_name', {err_msg_list_name, i-1}, true ) } ); -- add this error message
end
count = 0; -- reset the counter, we're looking for two consecutive missing names
end
i = i + 1; -- point to next args location
end
return names, etal; -- all done, return our list of names
end
--[[--------------------------&lt; G E T _ I S O 6 3 9 _ C O D E &gt;------------------------------------------------
Validates language names provided in |language= parameter if not an ISO639-1 or 639-2 code.
Returns the language name and associated two- or three-character code. Because case of the source may be incorrect
or different from the case that WikiMedia uses, the name comparisons are done in lower case and when a match is
found, the Wikimedia version (assumed to be correct) is returned along with the code. When there is no match, we
return the original language name string.
mw.language.fetchLanguageNames(&lt;local wiki language&gt;, 'all') return a list of languages that in some cases may include
extensions. For example, code 'cbk-zam' and its associated name 'Chavacano de Zamboanga' (MediaWiki does not support
code 'cbk' or name 'Chavacano'.
Names but that are included in the list will be found if that name is provided in the |language= parameter. For example,
if |language=Chavacano de Zamboanga, that name will be found with the associated code 'cbk-zam'. When names are found
and the associated code is not two or three characters, this function returns only the Wikimedia language name.
Adapted from code taken from Module:Check ISO 639-1.
]]
local function get_iso639_code (lang, this_wiki_code)
if 'bangla' == lang:lower() then -- special case related to Wikimedia remap of code 'bn' at mw:Extension:CLDR
return 'Bengali', 'bn'; -- make sure rendered version is properly capitalized
end
local languages = mw.language.fetchLanguageNames(this_wiki_code, 'all') -- get a list of language names known to Wikimedia
-- ('all' is required for North Ndebele, South Ndebele, and Ojibwa)
local langlc = mw.ustring.lower(lang); -- lower case version for comparisons
for code, name in pairs(languages) do -- scan the list to see if we can find our language
if langlc == mw.ustring.lower(name) then
if 2 ~= code:len() and 3 ~= code:len() then -- two- or three-character codes only; extensions not supported
return name; -- so return the name but not the code
end
return name, code; -- found it, return name to ensure proper capitalization and the the code
end
end
return lang; -- not valid language; return language in original case and nil for the code
end
--[[--------------------------&lt; L A N G U A G E _ P A R A M E T E R &gt;------------------------------------------
Gets language name from a provided two- or three-character ISO 639 code. If a code is recognized by MediaWiki,
use the returned name; if not, then use the value that was provided with the language parameter.
When |language= contains a recognized language (either code or name), the page is assigned to the category for
that code: Category:Norwegian-language sources (no). For valid three-character code languages, the page is assigned
to the single category for '639-2' codes: Category:CS1 ISO 639-2 language sources.
Languages that are the same as the local wiki are not categorized. MediaWiki does not recognize three-character
equivalents of two-character codes: code 'ar' is recognized bit code 'ara' is not.
This function supports multiple languages in the form |language=nb, French, th where the language names or codes are
separated from each other by commas.
]]
local function language_parameter (lang)
local code; -- the two- or three-character language code
local name; -- the language name
local language_list = {}; -- table of language names to be rendered
local names_table = {}; -- table made from the value assigned to |language=
local this_wiki = mw.getContentLanguage(); -- get a language object for this wiki
local this_wiki_code = this_wiki:getCode() -- get this wiki's language code
local this_wiki_name = mw.language.fetchLanguageName(this_wiki_code, this_wiki_code); -- get this wiki's language name
names_table = mw.text.split (lang, '%s*,%s*'); -- names should be a comma separated list
for _, lang in ipairs (names_table) do -- reuse lang
if lang:match ('^%a%a%-') then -- strip ietf language tags from code; TODO: is there a need to support 3-char with tag?
lang = lang:match ('(%a%a)%-') -- keep only 639-1 code portion to lang; TODO: do something with 3166 alpha 2 country code?
end
if 2 == lang:len() or 3 == lang:len() then -- if two-or three-character code
name = mw.language.fetchLanguageName( lang:lower(), this_wiki_code); -- get language name if |language= is a proper code
end
if is_set (name) then -- if |language= specified a valid code
code = lang:lower(); -- save it
else
name, code = get_iso639_code (lang, this_wiki_code); -- attempt to get code from name (assign name here so that we are sure of proper capitalization)
end
if is_set (code) then -- only 2- or 3-character codes
if 'bn' == code then name = 'Bengali' end; -- override wikimedia when code is 'bn'
if this_wiki_code ~= code then -- when the language is not the same as this wiki's language
if 2 == code:len() then -- and is a two-character code
add_prop_cat ('foreign_lang_source' .. code, {name, code}) -- categorize it
else -- or is a recognized language (but has a three-character code)
add_prop_cat ('foreign_lang_source_2' .. code, {code}) -- categorize it differently TODO: support mutliple three-character code categories per cs1|2 template
end
end
else
add_maint_cat ('unknown_lang'); -- add maint category if not already added
end
table.insert (language_list, name);
name = ''; -- so we can reuse it
end
code = #language_list -- reuse code as number of languages in the list
if 2 &gt;= code then
name = table.concat (language_list, ' and ') -- insert '&lt;space&gt;and&lt;space&gt;' between two language names
elseif 2 &lt; code then
language_list[code] = 'and ' .. language_list[code]; -- prepend last name with 'and&lt;space&gt;'
name = table.concat (language_list, ', ') -- and concatenate with '&lt;comma&gt;&lt;space&gt;' separators
end
if this_wiki_name == name then
return ''; -- if one language and that language is this wiki's return an empty string (no annotation)
end
return (&quot; &quot; .. wrap_msg ('language', name)); -- otherwise wrap with '(in ...)'
--[[ TODO: should only return blank or name rather than full list
so we can clean up the bunched parenthetical elements Language, Type, Format
]]
end
--[[--------------------------&lt; S E T _ C S 1 _ S T Y L E &gt;----------------------------------------------------
Set style settings for CS1 citation templates. Returns separator and postscript settings
]]
local function set_cs1_style (ps)
if not is_set (ps) then -- unless explicitely set to something
ps = '.'; -- terminate the rendered citation with a period
end
return '.', ps; -- separator is a full stop
end
--[[--------------------------&lt; S E T _ C S 2 _ S T Y L E &gt;----------------------------------------------------
Set style settings for CS2 citation templates. Returns separator, postscript, ref settings
]]
local function set_cs2_style (ps, ref)
if not is_set (ps) then -- if |postscript= has not been set, set cs2 default
ps = ''; -- make sure it isn't nil
end
if not is_set (ref) then -- if |ref= is not set
ref = &quot;harv&quot;; -- set default |ref=harv
end
return ',', ps, ref; -- separator is a comma
end
--[[--------------------------&lt; G E T _ S E T T I N G S _ F R O M _ C I T E _ C L A S S &gt;----------------------
When |mode= is not set or when its value is invalid, use config.CitationClass and parameter values to establish
rendered style.
]]
local function get_settings_from_cite_class (ps, ref, cite_class)
local sep;
if (cite_class == &quot;citation&quot;) then -- for citation templates (CS2)
sep, ps, ref = set_cs2_style (ps, ref);
else -- not a citation template so CS1
sep, ps = set_cs1_style (ps);
end
return sep, ps, ref -- return them all
end
--[[--------------------------&lt; S E T _ S T Y L E &gt;------------------------------------------------------------
Establish basic style settings to be used when rendering the citation. Uses |mode= if set and valid or uses
config.CitationClass from the template's #invoke: to establish style.
]]
local function set_style (mode, ps, ref, cite_class)
local sep;
if 'cs2' == mode then -- if this template is to be rendered in CS2 (citation) style
sep, ps, ref = set_cs2_style (ps, ref);
elseif 'cs1' == mode then -- if this template is to be rendered in CS1 (cite xxx) style
sep, ps = set_cs1_style (ps);
else -- anything but cs1 or cs2
sep, ps, ref = get_settings_from_cite_class (ps, ref, cite_class); -- get settings based on the template's CitationClass
end
if 'none' == ps:lower() then -- if assigned value is 'none' then
ps = ''; -- set to empty string
end
return sep, ps, ref
end
--[=[-------------------------&lt; I S _ P D F &gt;------------------------------------------------------------------
Determines if a url has the file extension that is one of the pdf file extensions used by [[MediaWiki:Common.css]] when
applying the pdf icon to external links.
returns true if file extension is one of the recognized extensions, else false
]=]
local function is_pdf (url)
return url:match ('%.pdf$') or url:match ('%.PDF$') or url:match ('%.pdf[%?#]') or url:match ('%.PDF[%?#]');
end
--[[--------------------------&lt; S T Y L E _ F O R M A T &gt;------------------------------------------------------
Applies css style to |format=, |chapter-format=, etc. Also emits an error message if the format parameter does
not have a matching url parameter. If the format parameter is not set and the url contains a file extension that
is recognized as a pdf document by MediaWiki's commons.css, this code will set the format parameter to (PDF) with
the appropriate styling.
]]
local function style_format (format, url, fmt_param, url_param)
if is_set (format) then
format = wrap_style ('format', format); -- add leading space, parentheses, resize
if not is_set (url) then
format = format .. set_error( 'format_missing_url', {fmt_param, url_param} ); -- add an error message
end
elseif is_pdf (url) then -- format is not set so if url is a pdf file then
format = wrap_style ('format', 'PDF'); -- set format to pdf
else
format = ''; -- empty string for concatenation
end
return format;
end
--[[--------------------------&lt; G E T _ D I S P L A Y _ A U T H O R S _ E D I T O R S &gt;------------------------
Returns a number that defines the number of names displayed for author and editor name lists and a boolean flag
to indicate when et al. should be appended to the name list.
When the value assigned to |display-xxxxors= is a number greater than or equal to zero, return the number and
the previous state of the 'etal' flag (false by default but may have been set to true if the name list contains
some variant of the text 'et al.').
When the value assigned to |display-xxxxors= is the keyword 'etal', return a number that is one greater than the
number of authors in the list and set the 'etal' flag true. This will cause the list_people() to display all of
the names in the name list followed by 'et al.'
In all other cases, returns nil and the previous state of the 'etal' flag.
inputs:
max: A['DisplayAuthors'] or A['DisplayEditors']; a number or some flavor of etal
count: #a or #e
list_name: 'authors' or 'editors'
etal: author_etal or editor_etal
]]
local function get_display_authors_editors (max, count, list_name, etal)
if is_set (max) then
if 'etal' == max:lower():gsub(&quot;[ '%.]&quot;, '') then -- the :gsub() portion makes 'etal' from a variety of 'et al.' spellings and stylings
max = count + 1; -- number of authors + 1 so display all author name plus et al.
etal = true; -- overrides value set by extract_names()
elseif max:match ('^%d+$') then -- if is a string of numbers
max = tonumber (max); -- make it a number
if max &gt;= count then -- if |display-xxxxors= value greater than or equal to number of authors/editors
add_maint_cat ('disp_auth_ed', cfg.special_case_translation [list_name]);
end
else -- not a valid keyword or number
table.insert( z.message_tail, { set_error( 'invalid_param_val', {'display-' .. list_name, max}, true ) } ); -- add error message
max = nil; -- unset; as if |display-xxxxors= had not been set
end
end
return max, etal;
end
--[[--------------------------&lt; E X T R A _ T E X T _ I N _ P A G E _ C H E C K &gt;------------------------------
Adds page to Category:CS1 maint: extra text if |page= or |pages= has what appears to be some form of p. or pp.
abbreviation in the first characters of the parameter content.
check Page and Pages for extraneous p, p., pp, and pp. at start of parameter value:
good pattern: '^P[^%.P%l]' matches when |page(s)= begins PX or P# but not Px where x and X are letters and # is a dgiit
bad pattern: '^[Pp][Pp]' matches matches when |page(s)= begins pp or pP or Pp or PP
]]
local function extra_text_in_page_check (page)
local good_pattern = '^P[^%.Pp]'; -- ok to begin with uppercase P: P7 (pg 7 of section P) but not p123 (page 123) TODO: add Gg for PG or Pg?
local bad_pattern = '^[Pp]?[Pp]%.?[ %d]';
if not page:match (good_pattern) and (page:match (bad_pattern) or page:match ('^[Pp]ages?')) then
add_maint_cat ('extra_text');
end
end
--[=[-------------------------&lt; G E T _ V _ N A M E _ T A B L E &gt;----------------------------------------------
split apart a |vauthors= or |veditors= parameter. This function allows for corporate names, wrapped in doubled
parentheses to also have commas; in the old version of the code, the doubled parnetheses were included in the
rendered citation and in the metadata. Individual author names may be wikilinked
|vauthors=Jones AB, [[E. B. White|White EB]], ((Black, Brown, and Co.))
]=]
local function get_v_name_table (vparam, output_table, output_link_table)
local name_table = mw.text.split(vparam, &quot;%s*,%s*&quot;); -- names are separated by commas
local wl_type, label, link; -- wl_type not used here; just a place holder
local i = 1;
while name_table[i] do
if name_table[i]:match ('^%(%(.*[^%)][^%)]$') then -- first segment of corporate with one or more commas; this segment has the opening doubled parens
local name = name_table[i];
i=i+1; -- bump indexer to next segment
while name_table[i] do
name = name .. ', ' .. name_table[i]; -- concatenate with previous segments
if name_table[i]:match ('^.*%)%)$') then -- if this table member has the closing doubled parens
break; -- and done reassembling so
end
i=i+1; -- bump indexer
end
table.insert (output_table, name); -- and add corporate name to the output table
table.insert (output_link_table, ''); -- no wikilink
else
wl_type, label, link = is_wikilink (name_table[i]); -- wl_type is: 0, no wl (text in label variable); 1, [[D]]; 2, [[L|D]]
table.insert (output_table, label); -- add this name
if 1 == wl_type then
table.insert (output_link_table, label); -- simple wikilink [[D]]
else
table.insert (output_link_table, link); -- no wikilink or [[L|D]]; add this link if there is one, else empty string
end
end
i = i+1;
end
return output_table;
end
--[[--------------------------&lt; P A R S E _ V A U T H O R S _ V E D I T O R S &gt;--------------------------------
This function extracts author / editor names from |vauthors= or |veditors= and finds matching |xxxxor-maskn= and
|xxxxor-linkn= in args. It then returns a table of assembled names just as extract_names() does.
Author / editor names in |vauthors= or |veditors= must be in Vancouver system style. Corporate or institutional names
may sometimes be required and because such names will often fail the is_good_vanc_name() and other format compliance
tests, are wrapped in doubled paranethese ((corporate name)) to suppress the format tests.
Supports generational suffixes Jr, 2nd, 3rd, 4th–6th.
This function sets the vancouver error when a reqired comma is missing and when there is a space between an author's initials.
]]
local function parse_vauthors_veditors (args, vparam, list_name)
local names = {}; -- table of names assembled from |vauthors=, |author-maskn=, |author-linkn=
local v_name_table = {};
local v_link_table = {}; -- when name is wikilinked, targets go in this table
local etal = false; -- return value set to true when we find some form of et al. vauthors parameter
local last, first, link, mask, suffix;
local corporate = false;
vparam, etal = name_has_etal (vparam, etal, true); -- find and remove variations on et al. do not categorize (do it here because et al. might have a period)
v_name_table = get_v_name_table (vparam, v_name_table, v_link_table); -- names are separated by commas
for i, v_name in ipairs(v_name_table) do
if v_name:match ('^%(%(.+%)%)$') then -- corporate authors are wrapped in doubled parentheses to supress vanc formatting and error detection
first = ''; -- set to empty string for concatenation and because it may have been set for previous author/editor
last = v_name:match ('^%(%((.+)%)%)$') -- remove doubled parntheses
corporate = true; -- flag used in list_people()
elseif string.find(v_name, &quot;%s&quot;) then
if v_name:find('[;%.]') then -- look for commonly occurring punctuation characters;
add_vanc_error ('punctuation');
end
local lastfirstTable = {}
lastfirstTable = mw.text.split(v_name, &quot;%s&quot;)
first = table.remove(lastfirstTable); -- removes and returns value of last element in table which should be author intials
if is_suffix (first) then -- if a valid suffix
suffix = first -- save it as a suffix and
first = table.remove(lastfirstTable); -- get what should be the initials from the table
end -- no suffix error message here because letter combination may be result of Romanization; check for digits?
last = table.concat(lastfirstTable, &quot; &quot;) -- returns a string that is the concatenation of all other names that are not initials
if mw.ustring.match (last, '%a+%s+%u+%s+%a+') then
add_vanc_error ('missing comma'); -- matches last II last; the case when a comma is missing
end
if mw.ustring.match (v_name, ' %u %u$') then -- this test is in the wrong place TODO: move or replace with a more appropriate test
add_vanc_error ('name'); -- matches a space between two intiials
end
else
first = ''; -- set to empty string for concatenation and because it may have been set for previous author/editor
last = v_name; -- last name or single corporate name? Doesn't support multiword corporate names? do we need this?
end
if is_set (first) then
if not mw.ustring.match (first, &quot;^%u?%u$&quot;) then -- first shall contain one or two upper-case letters, nothing else
add_vanc_error ('initials'); -- too many initials; mixed case initials (which may be ok Romanization); hyphenated initials
end
is_good_vanc_name (last, first); -- check first and last before restoring the suffix which may have a non-Latin digit
if is_set (suffix) then
first = first .. ' ' .. suffix; -- if there was a suffix concatenate with the initials
suffix = ''; -- unset so we don't add this suffix to all subsequent names
end
else
if not corporate then
is_good_vanc_name (last, '');
end
end
link = select_one( args, cfg.aliases[list_name .. '-Link'], 'redundant_parameters', i ) or v_link_table[i];
mask = select_one( args, cfg.aliases[list_name .. '-Mask'], 'redundant_parameters', i );
names[i] = {last = last, first = first, link = link, mask = mask, corporate=corporate}; -- add this assembled name to our names list
end
return names, etal; -- all done, return our list of names
end
--[[--------------------------&lt; S E L E C T _ A U T H O R _ E D I T O R _ S O U R C E &gt;------------------------
Select one of |authors=, |authorn= / |lastn / firstn=, or |vauthors= as the source of the author name list or
select one of |editors=, |editorn= / editor-lastn= / |editor-firstn= or |veditors= as the source of the editor name list.
Only one of these appropriate three will be used. The hierarchy is: |authorn= (and aliases) highest and |authors= lowest and
similarly, |editorn= (and aliases) highest and |editors= lowest
When looking for |authorn= / |editorn= parameters, test |xxxxor1= and |xxxxor2= (and all of their aliases); stops after the second
test which mimicks the test used in extract_names() when looking for a hole in the author name list. There may be a better
way to do this, I just haven't discovered what that way is.
Emits an error message when more than one xxxxor name source is provided.
In this function, vxxxxors = vauthors or veditors; xxxxors = authors or editors as appropriate.
]]
local function select_author_editor_source (vxxxxors, xxxxors, args, list_name)
local lastfirst = false;
if select_one( args, cfg.aliases[list_name .. '-Last'], 'none', 1 ) or -- do this twice incase we have a |first1= without a |last1=; this ...
select_one( args, cfg.aliases[list_name .. '-First'], 'none', 1 ) or -- ... also catches the case where |first= is used with |vauthors=
select_one( args, cfg.aliases[list_name .. '-Last'], 'none', 2 ) or
select_one( args, cfg.aliases[list_name .. '-First'], 'none', 2 ) then
lastfirst=true;
end
if (is_set (vxxxxors) and true == lastfirst) or -- these are the three error conditions
(is_set (vxxxxors) and is_set (xxxxors)) or
(true == lastfirst and is_set (xxxxors)) then
local err_name;
if 'AuthorList' == list_name then -- figure out which name should be used in error message
err_name = 'author';
else
err_name = 'editor';
end
table.insert( z.message_tail, { set_error( 'redundant_parameters',
{err_name .. '-name-list parameters'}, true ) } ); -- add error message
end
if true == lastfirst then return 1 end; -- return a number indicating which author name source to use
if is_set (vxxxxors) then return 2 end;
if is_set (xxxxors) then return 3 end;
return 1; -- no authors so return 1; this allows missing author name test to run in case there is a first without last
end
--[[--------------------------&lt; I S _ V A L I D _ P A R A M E T E R _ V A L U E &gt;------------------------------
This function is used to validate a parameter's assigned value for those parameters that have only a limited number
of allowable values (yes, y, true, no, etc). When the parameter value has not been assigned a value (missing or empty
in the source template) the function returns true. If the parameter value is one of the list of allowed values returns
true; else, emits an error message and returns false.
]]
local function is_valid_parameter_value (value, name, possible)
if not is_set (value) then
return true; -- an empty parameter is ok
elseif in_array(value:lower(), possible) then
return true;
else
table.insert( z.message_tail, { set_error( 'invalid_param_val', {name, value}, true ) } ); -- not an allowed value so add error message
return false
end
end
--[[--------------------------&lt; T E R M I N A T E _ N A M E _ L I S T &gt;----------------------------------------
This function terminates a name list (author, contributor, editor) with a separator character (sepc) and a space
when the last character is not a sepc character or when the last three characters are not sepc followed by two
closing square brackets (close of a wikilink). When either of these is true, the name_list is terminated with a
single space character.
]]
local function terminate_name_list (name_list, sepc)
if (string.sub (name_list,-3,-1) == sepc .. '. ') then -- if already properly terminated
return name_list; -- just return the name list
elseif (string.sub (name_list,-1,-1) == sepc) or (string.sub (name_list,-3,-1) == sepc .. ']]') then -- if last name in list ends with sepc char
return name_list .. &quot; &quot;; -- don't add another
else
return name_list .. sepc .. ' '; -- otherwise terninate the name list
end
end
--[[-------------------------&lt; F O R M A T _ V O L U M E _ I S S U E &gt;----------------------------------------
returns the concatenation of the formatted volume and issue parameters as a single string; or formatted volume
or formatted issue, or an empty string if neither are set.
]]
local function format_volume_issue (volume, issue, cite_class, origin, sepc, lower)
if not is_set (volume) and not is_set (issue) then
return '';
end
if 'magazine' == cite_class or (in_array (cite_class, {'citation', 'map'}) and 'magazine' == origin) then
if is_set (volume) and is_set (issue) then
return wrap_msg ('vol-no', {sepc, volume, issue}, lower);
elseif is_set (volume) then
return wrap_msg ('vol', {sepc, volume}, lower);
else
return wrap_msg ('issue', {sepc, issue}, lower);
end
end
local vol = '';
if is_set (volume) then
if (4 &lt; mw.ustring.len(volume)) then
vol = substitute (cfg.messages['j-vol'], {sepc, volume});
else
vol = substitute (cfg.presentation['vol-bold'], {sepc, hyphen_to_dash(volume)});
end
end
if is_set (issue) then
return vol .. substitute (cfg.messages['j-issue'], issue);
end
return vol;
end
--[[-------------------------&lt; F O R M A T _ P A G E S _ S H E E T S &gt;-----------------------------------------
adds static text to one of |page(s)= or |sheet(s)= values and returns it with all of the others set to empty strings.
The return order is:
page, pages, sheet, sheets
Singular has priority over plural when both are provided.
]]
local function format_pages_sheets (page, pages, sheet, sheets, cite_class, origin, sepc, nopp, lower)
if 'map' == cite_class then -- only cite map supports sheet(s) as in-source locators
if is_set (sheet) then
if 'journal' == origin then
return '', '', wrap_msg ('j-sheet', sheet, lower), '';
else
return '', '', wrap_msg ('sheet', {sepc, sheet}, lower), '';
end
elseif is_set (sheets) then
if 'journal' == origin then
return '', '', '', wrap_msg ('j-sheets', sheets, lower);
else
return '', '', '', wrap_msg ('sheets', {sepc, sheets}, lower);
end
end
end
local is_journal = 'journal' == cite_class or (in_array (cite_class, {'citation', 'map'}) and 'journal' == origin);
if is_set (page) then
if is_journal then
return substitute (cfg.messages['j-page(s)'], page), '', '', '';
elseif not nopp then
return substitute (cfg.messages['p-prefix'], {sepc, page}), '', '', '';
else
return substitute (cfg.messages['nopp'], {sepc, page}), '', '', '';
end
elseif is_set(pages) then
if is_journal then
return substitute (cfg.messages['j-page(s)'], pages), '', '', '';
elseif tonumber(pages) ~= nil and not nopp then -- if pages is only digits, assume a single page number
return '', substitute (cfg.messages['p-prefix'], {sepc, pages}), '', '';
elseif not nopp then
return '', substitute (cfg.messages['pp-prefix'], {sepc, pages}), '', '';
else
return '', substitute (cfg.messages['nopp'], {sepc, pages}), '', '';
end
end
return '', '', '', ''; -- return empty strings
end
--[=[-------------------------&lt; A R C H I V E _ U R L _ C H E C K &gt;--------------------------------------------
Check archive.org urls to make sure they at least look like they are pointing at valid archives and not to the
save snapshot url or to calendar pages. When the archive url is 'https://web.archive.org/save/' (or http://...)
archive.org saves a snapshot of the target page in the url. That is something that Wikipedia should not allow
unwitting readers to do.
When the archive.org url does not have a complete timestamp, archive.org chooses a snapshot according to its own
algorithm or provides a calendar 'search' result. [[WP:ELNO]] discourages links to search results.
This function looks at the value assigned to |archive-url= and returns empty strings for |archive-url= and
|archive-date= and an error message when:
|archive-url= holds an archive.org save command url
|archive-url= is an archive.org url that does not have a complete timestamp (YYYYMMDDhhmmss 14 digits) in the
correct place
otherwise returns |archive-url= and |archive-date=
There are two mostly compatible archive.org urls:
//web.archive.org/&lt;timestamp&gt;... -- the old form
//web.archive.org/web/&lt;timestamp&gt;... -- the new form
The old form does not support or map to the new form when it contains a display flag. There are four identified flags
('id_', 'js_', 'cs_', 'im_') but since archive.org ignores others following the same form (two letters and an underscore)
we don't check for these specific flags but we do check the form.
This function supports a preview mode. When the article is rendered in preview mode, this funct may return a modified
archive url:
for save command errors, return undated wildcard (/*/)
for timestamp errors when the timestamp has a wildcard, return the url unmodified
for timestamp errors when the timestamp does not have a wildcard, return with timestamp limited to six digits plus wildcard (/yyyymm*/)
]=]
local function archive_url_check (url, date)
local err_msg = ''; -- start with the error message empty
local path, timestamp, flag; -- portions of the archive.or url
if (not url:match('//web%.archive%.org/')) and (not url:match('//liveweb%.archive%.org/')) then -- also deprecated liveweb Wayback machine url
return url, date; -- not an archive.org archive, return ArchiveURL and ArchiveDate
end
if url:match('//web%.archive%.org/save/') then -- if a save command url, we don't want to allow saving of the target page
err_msg = 'save command';
url = url:gsub ('(//web%.archive%.org)/save/', '%1/*/', 1); -- for preview mode: modify ArchiveURL
elseif url:match('//liveweb%.archive%.org/') then
err_msg = 'liveweb';
else
path, timestamp, flag = url:match('//web%.archive%.org/([^%d]*)(%d+)([^/]*)/'); -- split out some of the url parts for evaluation
if not is_set(timestamp) or 14 ~= timestamp:len() then -- path and flag optional, must have 14-digit timestamp here
err_msg = 'timestamp';
if '*' ~= flag then
url=url:gsub ('(//web%.archive%.org/[^%d]*%d?%d?%d?%d?%d?%d?)[^/]*', '%1*', 1) -- for preview, modify ts to be yearmo* max (0-6 digits plus splat)
end
elseif is_set(path) and 'web/' ~= path then -- older archive urls do not have the extra 'web/' path element
err_msg = 'path';
elseif is_set (flag) and not is_set (path) then -- flag not allowed with the old form url (without the 'web/' path element)
err_msg = 'flag';
elseif is_set (flag) and not flag:match ('%a%a_') then -- flag if present must be two alpha characters and underscore (requires 'web/' path element)
err_msg = 'flag';
else
return url, date; -- return archiveURL and ArchiveDate
end
end
-- if here, something not right so
table.insert( z.message_tail, { set_error( 'archive_url', {err_msg}, true ) } ); -- add error message and
if is_set (Frame:preprocess('{{REVISIONID}}')) then
return '', ''; -- return empty strings for archiveURL and ArchiveDate
else
return url, date; -- preview mode so return archiveURL and ArchiveDate
end
end
--[[--------------------------&lt; M I S S I N G _ P I P E _ C H E C K &gt;------------------------------------------
Look at the contents of a parameter. If the content has a string of characters and digits followed by an equal
sign, compare the alphanumeric string to the list of cs1|2 parameters. If found, then the string is possibly a
parameter that is missing its pipe:
{{cite ... |title=Title access-date=2016-03-17}}
cs1|2 shares some parameter names with xml/html atributes: class=, title=, etc. To prevent false positives xml/html
tags are removed before the search.
If a missing pipe is detected, this function adds the missing pipe maintenance category.
]]
local function missing_pipe_check (value)
local capture;
value = value:gsub ('%b&lt;&gt;', ''); -- remove xml/html tags because attributes: class=, title=, etc
capture = value:match ('%s+(%a[%a%d]+)%s*=') or value:match ('^(%a[%a%d]+)%s*='); -- find and categorize parameters with possible missing pipes
if capture and validate (capture) then -- if the capture is a valid parameter name
add_maint_cat ('missing_pipe');
end
end
--[[--------------------------&lt; C I T A T I O N 0 &gt;------------------------------------------------------------
This is the main function doing the majority of the citation formatting.
]]
local function citation0( config, args)
--[[
Load Input Parameters
The argument_wrapper facilitates the mapping of multiple aliases to single internal variable.
]]
local A = argument_wrapper( args );
local i
-- Pick out the relevant fields from the arguments. Different citation templates
-- define different field names for the same underlying things.
-- set default parameter values defined by |mode= parameter.
local Mode = A['Mode'];
if not is_valid_parameter_value (Mode, 'mode', cfg.keywords['mode']) then
Mode = '';
end
local author_etal;
local a = {}; -- authors list from |lastn= / |firstn= pairs or |vauthors=
local Authors;
local NameListFormat = A['NameListFormat'];
local Collaboration = A['Collaboration'];
do -- to limit scope of selected
local selected = select_author_editor_source (A['Vauthors'], A['Authors'], args, 'AuthorList');
if 1 == selected then
a, author_etal = extract_names (args, 'AuthorList'); -- fetch author list from |authorn= / |lastn= / |firstn=, |author-linkn=, and |author-maskn=
elseif 2 == selected then
NameListFormat = 'vanc'; -- override whatever |name-list-format= might be
a, author_etal = parse_vauthors_veditors (args, args.vauthors, 'AuthorList'); -- fetch author list from |vauthors=, |author-linkn=, and |author-maskn=
elseif 3 == selected then
Authors = A['Authors']; -- use content of |authors=
if 'authors' == A:ORIGIN('Authors') then -- but add a maint cat if the parameter is |authors=
add_maint_cat ('authors'); -- because use of this parameter is discouraged; what to do about the aliases is a TODO:
end
end
if is_set (Collaboration) then
author_etal = true; -- so that |display-authors=etal not required
end
end
local Others = A['Others'];
local editor_etal;
local e = {}; -- editors list from |editor-lastn= / |editor-firstn= pairs or |veditors=
local Editors;
do -- to limit scope of selected
local selected = select_author_editor_source (A['Veditors'], A['Editors'], args, 'EditorList');
if 1 == selected then
e, editor_etal = extract_names (args, 'EditorList'); -- fetch editor list from |editorn= / |editor-lastn= / |editor-firstn=, |editor-linkn=, and |editor-maskn=
elseif 2 == selected then
NameListFormat = 'vanc'; -- override whatever |name-list-format= might be
e, editor_etal = parse_vauthors_veditors (args, args.veditors, 'EditorList'); -- fetch editor list from |veditors=, |editor-linkn=, and |editor-maskn=
elseif 3 == selected then
Editors = A['Editors']; -- use content of |editors=
add_maint_cat ('editors'); -- but add a maint cat because use of this parameter is discouraged
end
end
local t = {}; -- translators list from |translator-lastn= / translator-firstn= pairs
local Translators; -- assembled translators name list
t = extract_names (args, 'TranslatorList'); -- fetch translator list from |translatorn= / |translator-lastn=, -firstn=, -linkn=, -maskn=
local interviewers_list = {};
local Interviewers = A['Interviewers']
if is_set (Interviewers) then -- add a maint cat if the |interviewers= is used
add_maint_cat ('interviewers'); -- because use of this parameter is discouraged
else
interviewers_list = extract_names (args, 'InterviewerList'); -- else, process preferred interviewers parameters
end
local c = {}; -- contributors list from |contributor-lastn= / contributor-firstn= pairs
local Contributors; -- assembled contributors name list
local Contribution = A['Contribution'];
if in_array(config.CitationClass, {&quot;book&quot;,&quot;citation&quot;}) and not is_set(A['Periodical']) then -- |contributor= and |contribution= only supported in book cites
c = extract_names (args, 'ContributorList'); -- fetch contributor list from |contributorn= / |contributor-lastn=, -firstn=, -linkn=, -maskn=
if 0 &lt; #c then
if not is_set (Contribution) then -- |contributor= requires |contribution=
table.insert( z.message_tail, { set_error( 'contributor_missing_required_param', 'contribution')}); -- add missing contribution error message
c = {}; -- blank the contributors' table; it is used as a flag later
end
if 0 == #a then -- |contributor= requires |author=
table.insert( z.message_tail, { set_error( 'contributor_missing_required_param', 'author')}); -- add missing author error message
c = {}; -- blank the contributors' table; it is used as a flag later
end
end
else -- if not a book cite
if select_one (args, cfg.aliases['ContributorList-Last'], 'redundant_parameters', 1 ) then -- are there contributor name list parameters?
table.insert( z.message_tail, { set_error( 'contributor_ignored')}); -- add contributor ignored error message
end
Contribution = nil; -- unset
end
if not is_valid_parameter_value (NameListFormat, 'name-list-format', cfg.keywords['name-list-format']) then -- only accepted value for this parameter is 'vanc'
NameListFormat = ''; -- anything else, set to empty string
end
local Year = A['Year'];
local PublicationDate = A['PublicationDate'];
local OrigYear = A['OrigYear'];
local Date = A['Date'];
local LayDate = A['LayDate'];
------------------------------------------------- Get title data
local Title = A['Title'];
local ScriptTitle = A['ScriptTitle'];
local BookTitle = A['BookTitle'];
local Conference = A['Conference'];
local TransTitle = A['TransTitle'];
local TitleNote = A['TitleNote'];
local TitleLink = A['TitleLink'];
link_title_ok (TitleLink, A:ORIGIN ('TitleLink'), Title, 'title'); -- check for wikimarkup in |title-link= or wikimarkup in |title= when |title-link= is set
local Chapter = A['Chapter'];
local ScriptChapter = A['ScriptChapter'];
local ChapterLink -- = A['ChapterLink']; -- deprecated as a parameter but still used internally by cite episode
local TransChapter = A['TransChapter'];
local TitleType = A['TitleType'];
local Degree = A['Degree'];
local Docket = A['Docket'];
local ArchiveFormat = A['ArchiveFormat'];
local ArchiveDate;
local ArchiveURL;
ArchiveURL, ArchiveDate = archive_url_check (A['ArchiveURL'], A['ArchiveDate'])
local DeadURL = A['DeadURL']
if not is_valid_parameter_value (DeadURL, 'dead-url', cfg.keywords ['deadurl']) then -- set in config.defaults to 'yes'
DeadURL = ''; -- anything else, set to empty string
end
local URL = A['URL']
local URLorigin = A:ORIGIN('URL'); -- get name of parameter that holds URL
local ChapterURL = A['ChapterURL'];
local ChapterURLorigin = A:ORIGIN('ChapterURL'); -- get name of parameter that holds ChapterURL
local ConferenceFormat = A['ConferenceFormat'];
local ConferenceURL = A['ConferenceURL'];
local ConferenceURLorigin = A:ORIGIN('ConferenceURL'); -- get name of parameter that holds ConferenceURL
local Periodical = A['Periodical'];
local Periodical_origin = A:ORIGIN('Periodical'); -- get the name of the periodical parameter
local Series = A['Series'];
local Volume;
local Issue;
local Page;
local Pages;
local At;
if in_array (config.CitationClass, cfg.templates_using_volume) then
Volume = A['Volume'];
end
-- conference &amp; map books do not support issue
if in_array (config.CitationClass, cfg.templates_using_issue) and not (in_array (config.CitationClass, {'conference', 'map'}) and not is_set (Periodical))then
Issue = A['Issue'];
end
local Position = '';
if not in_array (config.CitationClass, cfg.templates_not_using_page) then
Page = A['Page'];
Pages = hyphen_to_dash( A['Pages'] );
At = A['At'];
end
local Edition = A['Edition'];
local PublicationPlace = A['PublicationPlace']
local Place = A['Place'];
local PublisherName = A['PublisherName'];
local RegistrationRequired = A['RegistrationRequired'];
if not is_valid_parameter_value (RegistrationRequired, 'registration', cfg.keywords ['yes_true_y']) then
RegistrationRequired=nil;
end
local SubscriptionRequired = A['SubscriptionRequired'];
if not is_valid_parameter_value (SubscriptionRequired, 'subscription', cfg.keywords ['yes_true_y']) then
SubscriptionRequired=nil;
end
local UrlAccess = A['UrlAccess'];
if not is_valid_parameter_value (UrlAccess, 'url-access', cfg.keywords ['url-access']) then
UrlAccess = nil;
end
if not is_set(URL) and is_set(UrlAccess) then
UrlAccess = nil;
table.insert( z.message_tail, { set_error( 'param_access_requires_param', {'url'}, true ) } );
end
if is_set (UrlAccess) and is_set (SubscriptionRequired) then -- while not aliases, these are much the same so if both are set
table.insert( z.message_tail, { set_error( 'redundant_parameters', {wrap_style ('parameter', 'url-access') .. ' and ' .. wrap_style ('parameter', 'subscription')}, true ) } ); -- add error message
SubscriptionRequired = nil; -- unset; prefer |access= over |subscription=
end
if is_set (UrlAccess) and is_set (RegistrationRequired) then -- these are not the same but contradictory so if both are set
table.insert( z.message_tail, { set_error( 'redundant_parameters', {wrap_style ('parameter', 'url-access') .. ' and ' .. wrap_style ('parameter', 'registration')}, true ) } ); -- add error message
RegistrationRequired = nil; -- unset; prefer |access= over |registration=
end
local ChapterUrlAccess = A['ChapterUrlAccess'];
if not is_valid_parameter_value (ChapterUrlAccess, 'chapter-url-access', cfg.keywords ['url-access']) then -- same as url-access
ChapterUrlAccess = nil;
end
if not is_set(ChapterURL) and is_set(ChapterUrlAccess) then
ChapterUrlAccess = nil;
table.insert( z.message_tail, { set_error( 'param_access_requires_param', {'chapter-url'}, true ) } );
end
local Via = A['Via'];
local AccessDate = A['AccessDate'];
local Agency = A['Agency'];
local Language = A['Language'];
local Format = A['Format'];
local ChapterFormat = A['ChapterFormat'];
local DoiBroken = A['DoiBroken'];
local ID = A['ID'];
local ASINTLD = A['ASINTLD'];
local IgnoreISBN = A['IgnoreISBN'];
if not is_valid_parameter_value (IgnoreISBN, 'ignore-isbn-error', cfg.keywords ['yes_true_y']) then
IgnoreISBN = nil; -- anything else, set to empty string
end
local Embargo = A['Embargo'];
local Class = A['Class']; -- arxiv class identifier
local ID_list = extract_ids( args );
local ID_access_levels = extract_id_access_levels( args, ID_list );
local Quote = A['Quote'];
local LayFormat = A['LayFormat'];
local LayURL = A['LayURL'];
local LaySource = A['LaySource'];
local Transcript = A['Transcript'];
local TranscriptFormat = A['TranscriptFormat'];
local TranscriptURL = A['TranscriptURL']
local TranscriptURLorigin = A:ORIGIN('TranscriptURL'); -- get name of parameter that holds TranscriptURL
local LastAuthorAmp = A['LastAuthorAmp'];
if not is_valid_parameter_value (LastAuthorAmp, 'last-author-amp', cfg.keywords ['yes_true_y']) then
LastAuthorAmp = nil; -- set to empty string
end
local no_tracking_cats = A['NoTracking'];
if not is_valid_parameter_value (no_tracking_cats, 'no-tracking', cfg.keywords ['yes_true_y']) then
no_tracking_cats = nil; -- set to empty string
end
--local variables that are not cs1 parameters
local use_lowercase; -- controls capitalization of certain static text
local this_page = mw.title.getCurrentTitle(); -- also used for COinS and for language
local anchor_year; -- used in the CITEREF identifier
local COinS_date = {}; -- holds date info extracted from |date= for the COinS metadata by Module:Date verification
local DF = A['DF']; -- date format set in cs1|2 template
if not is_valid_parameter_value (DF, 'df', cfg.keywords['date-format']) then -- validate reformatting keyword
DF = ''; -- not valid, set to empty string
end
local sepc; -- separator between citation elements for CS1 a period, for CS2, a comma
local PostScript;
local Ref;
sepc, PostScript, Ref = set_style (Mode:lower(), A['PostScript'], A['Ref'], config.CitationClass);
use_lowercase = ( sepc == ',' ); -- used to control capitalization for certain static text
--check this page to see if it is in one of the namespaces that cs1 is not supposed to add to the error categories
if not is_set (no_tracking_cats) then -- ignore if we are already not going to categorize this page
if in_array (this_page.nsText, cfg.uncategorized_namespaces) then
no_tracking_cats = &quot;true&quot;; -- set no_tracking_cats
end
for _,v in ipairs (cfg.uncategorized_subpages) do -- cycle through page name patterns
if this_page.text:match (v) then -- test page name against each pattern
no_tracking_cats = &quot;true&quot;; -- set no_tracking_cats
break; -- bail out if one is found
end
end
end
-- check for extra |page=, |pages= or |at= parameters. (also sheet and sheets while we're at it)
select_one( args, {'page', 'p', 'pp', 'pages', 'at', 'sheet', 'sheets'}, 'redundant_parameters' ); -- this is a dummy call simply to get the error message and category
local NoPP = A['NoPP']
if is_set (NoPP) and is_valid_parameter_value (NoPP, 'nopp', cfg.keywords ['yes_true_y']) then
NoPP = true;
else
NoPP = nil; -- unset, used as a flag later
end
if is_set(Page) then
if is_set(Pages) or is_set(At) then
Pages = ''; -- unset the others
At = '';
end
extra_text_in_page_check (Page); -- add this page to maint cat if |page= value begins with what looks like p. or pp.
elseif is_set(Pages) then
if is_set(At) then
At = ''; -- unset
end
extra_text_in_page_check (Pages); -- add this page to maint cat if |pages= value begins with what looks like p. or pp.
end
-- both |publication-place= and |place= (|location=) allowed if different
if not is_set(PublicationPlace) and is_set(Place) then
PublicationPlace = Place; -- promote |place= (|location=) to |publication-place
end
if PublicationPlace == Place then Place = ''; end -- don't need both if they are the same
--[[
Parameter remapping for cite encyclopedia:
When the citation has these parameters:
|encyclopedia and |title then map |title to |article and |encyclopedia to |title
|encyclopedia and |article then map |encyclopedia to |title
|encyclopedia then map |encyclopedia to |title
|trans_title maps to |trans_chapter when |title is re-mapped
|url maps to |chapterurl when |title is remapped
All other combinations of |encyclopedia, |title, and |article are not modified
]]
local Encyclopedia = A['Encyclopedia'];
if ( config.CitationClass == &quot;encyclopaedia&quot; ) or ( config.CitationClass == &quot;citation&quot; and is_set (Encyclopedia)) then -- test code for citation
if is_set(Periodical) then -- Periodical is set when |encyclopedia is set
if is_set(Title) or is_set (ScriptTitle) then
if not is_set(Chapter) then
Chapter = Title; -- |encyclopedia and |title are set so map |title to |article and |encyclopedia to |title
ScriptChapter = ScriptTitle;
TransChapter = TransTitle;
ChapterURL = URL;
ChapterUrlAccess = UrlAccess;
if not is_set (ChapterURL) and is_set (TitleLink) then
Chapter = make_wikilink (TitleLink, Chapter);
end
Title = Periodical;
ChapterFormat = Format;
Periodical = ''; -- redundant so unset
TransTitle = '';
URL = '';
Format = '';
TitleLink = '';
ScriptTitle = '';
end
else -- |title not set
Title = Periodical; -- |encyclopedia set and |article set or not set so map |encyclopedia to |title
Periodical = ''; -- redundant so unset
end
end
end
-- Special case for cite techreport.
if (config.CitationClass == &quot;techreport&quot;) then -- special case for cite techreport
if is_set(A['Number']) then -- cite techreport uses 'number', which other citations alias to 'issue'
if not is_set(ID) then -- can we use ID for the &quot;number&quot;?
ID = A['Number']; -- yes, use it
else -- ID has a value so emit error message
table.insert( z.message_tail, { set_error('redundant_parameters', {wrap_style ('parameter', 'id') .. ' and ' .. wrap_style ('parameter', 'number')}, true )});
end
end
end
-- special case for cite mailing list
if (config.CitationClass == &quot;mailinglist&quot;) then
Periodical = A ['MailingList'];
elseif 'mailinglist' == A:ORIGIN('Periodical') then
Periodical = ''; -- unset because mailing list is only used for cite mailing list
end
-- Account for the oddity that is {{cite conference}}, before generation of COinS data.
if 'conference' == config.CitationClass then
if is_set(BookTitle) then
Chapter = Title;
-- ChapterLink = TitleLink; -- |chapterlink= is deprecated
ChapterURL = URL;
ChapterUrlAccess = UrlAccess;
ChapterURLorigin = URLorigin;
URLorigin = '';
ChapterFormat = Format;
TransChapter = TransTitle;
Title = BookTitle;
Format = '';
-- TitleLink = '';
TransTitle = '';
URL = '';
end
elseif 'speech' ~= config.CitationClass then
Conference = ''; -- not cite conference or cite speech so make sure this is empty string
end
-- cite map oddities
local Cartography = &quot;&quot;;
local Scale = &quot;&quot;;
local Sheet = A['Sheet'] or '';
local Sheets = A['Sheets'] or '';
if config.CitationClass == &quot;map&quot; then
Chapter = A['Map'];
ChapterURL = A['MapURL'];
ChapterUrlAccess = UrlAccess;
TransChapter = A['TransMap'];
ChapterURLorigin = A:ORIGIN('MapURL');
ChapterFormat = A['MapFormat'];
Cartography = A['Cartography'];
if is_set( Cartography ) then
Cartography = sepc .. &quot; &quot; .. wrap_msg ('cartography', Cartography, use_lowercase);
end
Scale = A['Scale'];
if is_set( Scale ) then
Scale = sepc .. &quot; &quot; .. Scale;
end
end
-- Account for the oddities that are {{cite episode}} and {{cite serial}}, before generation of COinS data.
if 'episode' == config.CitationClass or 'serial' == config.CitationClass then
local AirDate = A['AirDate'];
local SeriesLink = A['SeriesLink'];
link_title_ok (SeriesLink, A:ORIGIN ('SeriesLink'), Series, 'series'); -- check for wikimarkup in |series-link= or wikimarkup in |series= when |series-link= is set
local Network = A['Network'];
local Station = A['Station'];
local s, n = {}, {};
-- do common parameters first
if is_set(Network) then table.insert(n, Network); end
if is_set(Station) then table.insert(n, Station); end
ID = table.concat(n, sepc .. ' ');
if not is_set (Date) and is_set (AirDate) then -- promote airdate to date
Date = AirDate;
end
if 'episode' == config.CitationClass then -- handle the oddities that are strictly {{cite episode}}
local Season = A['Season'];
local SeriesNumber = A['SeriesNumber'];
if is_set (Season) and is_set (SeriesNumber) then -- these are mutually exclusive so if both are set
table.insert( z.message_tail, { set_error( 'redundant_parameters', {wrap_style ('parameter', 'season') .. ' and ' .. wrap_style ('parameter', 'seriesno')}, true ) } ); -- add error message
SeriesNumber = ''; -- unset; prefer |season= over |seriesno=
end
-- assemble a table of parts concatenated later into Series
if is_set(Season) then table.insert(s, wrap_msg ('season', Season, use_lowercase)); end
if is_set(SeriesNumber) then table.insert(s, wrap_msg ('series', SeriesNumber, use_lowercase)); end
if is_set(Issue) then table.insert(s, wrap_msg ('episode', Issue, use_lowercase)); end
Issue = ''; -- unset because this is not a unique parameter
Chapter = Title; -- promote title parameters to chapter
ScriptChapter = ScriptTitle;
ChapterLink = TitleLink; -- alias episodelink
TransChapter = TransTitle;
ChapterURL = URL;
ChapterUrlAccess = UrlAccess;
ChapterURLorigin = A:ORIGIN('URL');
Title = Series; -- promote series to title
TitleLink = SeriesLink;
Series = table.concat(s, sepc .. ' '); -- this is concatenation of season, seriesno, episode number
if is_set (ChapterLink) and not is_set (ChapterURL) then -- link but not URL
Chapter = make_wikilink (ChapterLink, Chapter);
elseif is_set (ChapterLink) and is_set (ChapterURL) then -- if both are set, URL links episode;
Series = make_wikilink (ChapterLink, Series);
end
URL = ''; -- unset
TransTitle = '';
ScriptTitle = '';
else -- now oddities that are cite serial
Issue = ''; -- unset because this parameter no longer supported by the citation/core version of cite serial
Chapter = A['Episode']; -- TODO: make |episode= available to cite episode someday?
if is_set (Series) and is_set (SeriesLink) then
Series = make_wikilink (SeriesLink, Series);
end
Series = wrap_style ('italic-title', Series); -- series is italicized
end
end
-- end of {{cite episode}} stuff
-- Account for the oddities that are {{cite arxiv}}, {{cite biorxiv}}, {{cite citeseerx}}, before generation of COinS data.
do
if in_array (config.CitationClass, {'arxiv', 'biorxiv', 'citeseerx'}) then
if not is_set (ID_list[config.CitationClass:upper()]) then -- |arxiv= or |eprint= required for cite arxiv; |biorxiv= &amp; |citeseerx= required for their templates
table.insert( z.message_tail, { set_error( config.CitationClass .. '_missing', {}, true ) } ); -- add error message
end
if 'arxiv' == config.CitationClass then
Periodical = 'arXiv'; -- set to arXiv for COinS; after that, must be set to empty string
end
if 'biorxiv' == config.CitationClass then
Periodical = 'bioRxiv'; -- set to bioRxiv for COinS; after that, must be set to empty string
end
if 'citeseerx' == config.CitationClass then
Periodical = 'CiteSeerX'; -- set to CiteSeerX for COinS; after that, must be set to empty string
end
end
end
-- handle type parameter for those CS1 citations that have default values
if in_array(config.CitationClass, {&quot;AV-media-notes&quot;, &quot;interview&quot;, &quot;mailinglist&quot;, &quot;map&quot;, &quot;podcast&quot;, &quot;pressrelease&quot;, &quot;report&quot;, &quot;techreport&quot;, &quot;thesis&quot;}) then
TitleType = set_titletype (config.CitationClass, TitleType);
if is_set(Degree) and &quot;Thesis&quot; == TitleType then -- special case for cite thesis
TitleType = Degree .. ' ' .. cfg.title_types ['thesis']:lower();
end
end
if is_set(TitleType) then -- if type parameter is specified
TitleType = substitute( cfg.messages['type'], TitleType); -- display it in parentheses
-- TODO: Hack on TitleType to fix bunched parentheses problem
end
-- legacy: promote PublicationDate to Date if neither Date nor Year are set.
if not is_set (Date) then
Date = Year; -- promote Year to Date
Year = nil; -- make nil so Year as empty string isn't used for CITEREF
if not is_set (Date) and is_set(PublicationDate) then -- use PublicationDate when |date= and |year= are not set
Date = PublicationDate; -- promote PublicationDate to Date
PublicationDate = ''; -- unset, no longer needed
end
end
if PublicationDate == Date then PublicationDate = ''; end -- if PublicationDate is same as Date, don't display in rendered citation
--[[
Go test all of the date-holding parameters for valid MOS:DATE format and make sure that dates are real dates. This must be done before we do COinS because here is where
we get the date used in the metadata.
Date validation supporting code is in Module:Citation/CS1/Date_validation
]]
do -- create defined block to contain local variables error_message, date_parameters_list, mismatch
local error_message = '';
-- AirDate has been promoted to Date so not necessary to check it
local date_parameters_list = {['access-date']=AccessDate, ['archive-date']=ArchiveDate, ['date']=Date, ['doi-broken-date']=DoiBroken,
['embargo']=Embargo, ['lay-date']=LayDate, ['publication-date']=PublicationDate, ['year']=Year};
anchor_year, Embargo, error_message = dates(date_parameters_list, COinS_date);
if is_set (Year) and is_set (Date) then -- both |date= and |year= not normally needed;
local mismatch = year_date_check (Year, Date)
if 0 == mismatch then -- |year= does not match a year-value in |date=
if is_set (error_message) then -- if there is already an error message
error_message = error_message .. ', '; -- tack on this additional message
end
error_message = error_message .. '&amp;#124;year= / &amp;#124;date= mismatch';
elseif 1 == mismatch then -- |year= matches year-value in |date=
add_maint_cat ('date_year');
end
end
if not is_set(error_message) then -- error free dates only
local modified = false; -- flag
if is_set (DF) then -- if we need to reformat dates
modified = reformat_dates (date_parameters_list, DF, false); -- reformat to DF format, use long month names if appropriate
end
if true == date_hyphen_to_dash (date_parameters_list) then -- convert hyphens to dashes where appropriate
modified = true;
add_maint_cat ('date_format'); -- hyphens were converted so add maint category
end
-- for those wikis that can and want to have English date names translated to the local language,
-- uncomment these three lines. Not supported by en.wiki (for obvious reasons)
-- if date_name_xlate (date_parameters_list) then
-- modified = true;
-- end
if modified then -- if the date_parameters_list values were modified
AccessDate = date_parameters_list['access-date']; -- overwrite date holding parameters with modified values
ArchiveDate = date_parameters_list['archive-date'];
Date = date_parameters_list['date'];
DoiBroken = date_parameters_list['doi-broken-date'];
LayDate = date_parameters_list['lay-date'];
PublicationDate = date_parameters_list['publication-date'];
end
else
table.insert( z.message_tail, { set_error( 'bad_date', {error_message}, true ) } ); -- add this error message
end
end -- end of do
-- Account for the oddity that is {{cite journal}} with |pmc= set and |url= not set. Do this after date check but before COInS.
-- Here we unset Embargo if PMC not embargoed (|embargo= not set in the citation) or if the embargo time has expired. Otherwise, holds embargo date
Embargo = is_embargoed (Embargo);
if config.CitationClass == &quot;journal&quot; and not is_set(URL) and is_set(ID_list['PMC']) then
if not is_set (Embargo) then -- if not embargoed or embargo has expired
URL=cfg.id_handlers['PMC'].prefix .. ID_list['PMC']; -- set url to be the same as the PMC external link if not embargoed
URLorigin = cfg.id_handlers['PMC'].parameters[1]; -- set URLorigin to parameter name for use in error message if citation is missing a |title=
if is_set(AccessDate) then -- access date requires |url=; pmc created url is not |url=
table.insert( z.message_tail, { set_error( 'accessdate_missing_url', {}, true ) } );
AccessDate = ''; -- unset
end
end
end
-- At this point fields may be nil if they weren't specified in the template use. We can use that fact.
-- Test if citation has no title
if not is_set(Title) and
not is_set(TransTitle) and
not is_set(ScriptTitle) then
if 'episode' == config.CitationClass then -- special case for cite episode; TODO: is there a better way to do this?
table.insert( z.message_tail, { set_error( 'citation_missing_title', {'series'}, true ) } );
else
table.insert( z.message_tail, { set_error( 'citation_missing_title', {'title'}, true ) } );
end
end
if 'none' == Title and in_array (config.CitationClass, {'journal', 'citation'}) and is_set (Periodical) and 'journal' == A:ORIGIN('Periodical') then -- special case for journal cites
Title = ''; -- set title to empty string
add_maint_cat ('untitled');
end
check_for_url ({ -- add error message when any of these parameters contains a URL
['title']=Title,
[A:ORIGIN('Chapter')]=Chapter,
[A:ORIGIN('Periodical')]=Periodical,
[A:ORIGIN('PublisherName')] = PublisherName
});
-- COinS metadata (see &lt;http://ocoins.info/&gt;) for automated parsing of citation information.
-- handle the oddity that is cite encyclopedia and {{citation |encyclopedia=something}}. Here we presume that
-- when Periodical, Title, and Chapter are all set, then Periodical is the book (encyclopedia) title, Title
-- is the article title, and Chapter is a section within the article. So, we remap
local coins_chapter = Chapter; -- default assuming that remapping not required
local coins_title = Title; -- et tu
if 'encyclopaedia' == config.CitationClass or ('citation' == config.CitationClass and is_set (Encyclopedia)) then
if is_set (Chapter) and is_set (Title) and is_set (Periodical) then -- if all are used then
coins_chapter = Title; -- remap
coins_title = Periodical;
end
end
local coins_author = a; -- default for coins rft.au
if 0 &lt; #c then -- but if contributor list
coins_author = c; -- use that instead
end
-- this is the function call to COinS()
local OCinSoutput = COinS({
['Periodical'] = Periodical,
['Encyclopedia'] = Encyclopedia,
['Chapter'] = make_coins_title (coins_chapter, ScriptChapter), -- Chapter and ScriptChapter stripped of bold / italic wikimarkup
['Degree'] = Degree; -- cite thesis only
['Title'] = make_coins_title (coins_title, ScriptTitle), -- Title and ScriptTitle stripped of bold / italic wikimarkup
['PublicationPlace'] = PublicationPlace,
['Date'] = COinS_date.rftdate, -- COinS_date has correctly formatted date if Date is valid;
['Season'] = COinS_date.rftssn,
['Chron'] = COinS_date.rftchron or (not COinS_date.rftdate and Date) or '', -- chron but if not set and invalid date format use Date; keep this last bit?
['Series'] = Series,
['Volume'] = Volume,
['Issue'] = Issue,
['Pages'] = get_coins_pages (first_set ({Sheet, Sheets, Page, Pages, At}, 5)), -- pages stripped of external links
['Edition'] = Edition,
['PublisherName'] = PublisherName,
['URL'] = first_set ({ChapterURL, URL}, 2),
['Authors'] = coins_author,
['ID_list'] = ID_list,
['RawPage'] = this_page.prefixedText,
}, config.CitationClass);
-- Account for the oddities that are {{cite arxiv}}, {{cite biorxiv}}, and {{cite citeseerx}} AFTER generation of COinS data.
if in_array (config.CitationClass, {'arxiv', 'biorxiv', 'citeseerx'}) then -- we have set rft.jtitle in COinS to arXiv, bioRxiv, or CiteSeerX now unset so it isn't displayed
Periodical = ''; -- periodical not allowed in these templates; if article has been published, use cite journal
end
-- special case for cite newsgroup. Do this after COinS because we are modifying Publishername to include some static text
if 'newsgroup' == config.CitationClass then
if is_set (PublisherName) then
PublisherName = substitute (cfg.messages['newsgroup'], external_link( 'news:' .. PublisherName, PublisherName, A:ORIGIN('PublisherName'), nil ));
end
end
-- Now perform various field substitutions.
-- We also add leading spaces and surrounding markup and punctuation to the
-- various parts of the citation, but only when they are non-nil.
local EditorCount; -- used only for choosing {ed.) or (eds.) annotation at end of editor name-list
do
local last_first_list;
local control = {
format = NameListFormat, -- empty string or 'vanc'
maximum = nil, -- as if display-authors or display-editors not set
lastauthoramp = LastAuthorAmp,
page_name = this_page.text, -- get current page name so that we don't wikilink to it via editorlinkn
mode = Mode
};
do -- do editor name list first because the now unsupported coauthors used to modify control table
control.maximum , editor_etal = get_display_authors_editors (A['DisplayEditors'], #e, 'editors', editor_etal);
last_first_list, EditorCount = list_people(control, e, editor_etal);
if is_set (Editors) then
if editor_etal then
Editors = Editors .. ' ' .. cfg.messages['et al']; -- add et al. to editors parameter beause |display-editors=etal
EditorCount = 2; -- with et al., |editors= is multiple names; spoof to display (eds.) annotation
else
EditorCount = 2; -- we don't know but assume |editors= is multiple names; spoof to display (eds.) annotation
end
else
Editors = last_first_list; -- either an author name list or an empty string
end
if 1 == EditorCount and (true == editor_etal or 1 &lt; #e) then -- only one editor displayed but includes etal then
EditorCount = 2; -- spoof to display (eds.) annotation
end
end
do -- now do interviewers
control.maximum = #interviewers_list; -- number of interviewerss
Interviewers = list_people(control, interviewers_list, false); -- et al not currently supported
end
do -- now do translators
control.maximum = #t; -- number of translators
Translators = list_people(control, t, false); -- et al not currently supported
end
do -- now do contributors
control.maximum = #c; -- number of contributors
Contributors = list_people(control, c, false); -- et al not currently supported
end
do -- now do authors
control.maximum , author_etal = get_display_authors_editors (A['DisplayAuthors'], #a, 'authors', author_etal);
last_first_list = list_people(control, a, author_etal);
if is_set (Authors) then
Authors, author_etal = name_has_etal (Authors, author_etal, false); -- find and remove variations on et al.
if author_etal then
Authors = Authors .. ' ' .. cfg.messages['et al']; -- add et al. to authors parameter
end
else
Authors = last_first_list; -- either an author name list or an empty string
end
end -- end of do
if is_set (Authors) and is_set (Collaboration) then
Authors = Authors .. ' (' .. Collaboration .. ')'; -- add collaboration after et al.
end
end
-- apply |[xx-]format= styling; at the end, these parameters hold correctly styled format annotation,
-- an error message if the associated url is not set, or an empty string for concatenation
ArchiveFormat = style_format (ArchiveFormat, ArchiveURL, 'archive-format', 'archive-url');
ConferenceFormat = style_format (ConferenceFormat, ConferenceURL, 'conference-format', 'conference-url');
Format = style_format (Format, URL, 'format', 'url');
LayFormat = style_format (LayFormat, LayURL, 'lay-format', 'lay-url');
TranscriptFormat = style_format (TranscriptFormat, TranscriptURL, 'transcript-format', 'transcripturl');
-- special case for chapter format so no error message or cat when chapter not supported
if not (in_array(config.CitationClass, {'web', 'news', 'journal', 'magazine', 'pressrelease', 'podcast', 'newsgroup', 'arxiv', 'biorxiv', 'citeseerx'}) or
('citation' == config.CitationClass and is_set (Periodical) and not is_set (Encyclopedia))) then
ChapterFormat = style_format (ChapterFormat, ChapterURL, 'chapter-format', 'chapter-url');
end
if not is_set(URL) then
if in_array(config.CitationClass, {&quot;web&quot;,&quot;podcast&quot;, &quot;mailinglist&quot;}) then -- |url= required for cite web, cite podcast, and cite mailinglist
table.insert( z.message_tail, { set_error( 'cite_web_url', {}, true ) } );
end
-- do we have |accessdate= without either |url= or |chapter-url=?
if is_set(AccessDate) and not is_set(ChapterURL)then -- ChapterURL may be set when URL is not set;
table.insert( z.message_tail, { set_error( 'accessdate_missing_url', {}, true ) } );
AccessDate = '';
end
end
local OriginalURL, OriginalURLorigin, OriginalFormat, OriginalAccess;
DeadURL = DeadURL:lower(); -- used later when assembling archived text
if is_set( ArchiveURL ) then
if is_set (ChapterURL) then -- URL not set so if chapter-url is set apply archive url to it
OriginalURL = ChapterURL; -- save copy of source chapter's url for archive text
OriginalURLorigin = ChapterURLorigin; -- name of chapter-url parameter for error messages
OriginalFormat = ChapterFormat; -- and original |format=
if 'no' ~= DeadURL then
ChapterURL = ArchiveURL -- swap-in the archive's url
ChapterURLorigin = A:ORIGIN('ArchiveURL') -- name of archive-url parameter for error messages
ChapterFormat = ArchiveFormat or ''; -- swap in archive's format
end
elseif is_set (URL) then
OriginalURL = URL; -- save copy of original source URL
OriginalURLorigin = URLorigin; -- name of url parameter for error messages
OriginalFormat = Format; -- and original |format=
OriginalAccess = UrlAccess;
if 'no' ~= DeadURL then -- if URL set then archive-url applies to it
URL = ArchiveURL -- swap-in the archive's url
URLorigin = A:ORIGIN('ArchiveURL') -- name of archive url parameter for error messages
Format = ArchiveFormat or ''; -- swap in archive's format
UrlAccess = nil; -- restricted access levels do not make sense for archived urls
end
end
end
if in_array(config.CitationClass, {'web','news','journal', 'magazine', 'pressrelease', 'podcast', 'newsgroup', 'arxiv', 'biorxiv', 'citeseerx'}) or -- if any of the 'periodical' cites except encyclopedia
('citation' == config.CitationClass and is_set (Periodical) and not is_set (Encyclopedia)) then
local chap_param;
if is_set (Chapter) then -- get a parameter name from one of these chapter related meta-parameters
chap_param = A:ORIGIN ('Chapter')
elseif is_set (TransChapter) then
chap_param = A:ORIGIN ('TransChapter')
elseif is_set (ChapterURL) then
chap_param = A:ORIGIN ('ChapterURL')
elseif is_set (ScriptChapter) then
chap_param = A:ORIGIN ('ScriptChapter')
else is_set (ChapterFormat)
chap_param = A:ORIGIN ('ChapterFormat')
end
if is_set (chap_param) then -- if we found one
table.insert( z.message_tail, { set_error( 'chapter_ignored', {chap_param}, true ) } ); -- add error message
Chapter = ''; -- and set them to empty string to be safe with concatenation
TransChapter = '';
ChapterURL = '';
ScriptChapter = '';
ChapterFormat = '';
end
else -- otherwise, format chapter / article title
local no_quotes = false; -- default assume that we will be quoting the chapter parameter value
if is_set (Contribution) and 0 &lt; #c then -- if this is a contribution with contributor(s)
if in_array (Contribution:lower(), cfg.keywords.contribution) then -- and a generic contribution title
no_quotes = true; -- then render it unquoted
end
end
Chapter = format_chapter_title (ScriptChapter, Chapter, TransChapter, ChapterURL, ChapterURLorigin, no_quotes, ChapterUrlAccess); -- Contribution is also in Chapter
if is_set (Chapter) then
Chapter = Chapter .. ChapterFormat ;
if 'map' == config.CitationClass and is_set (TitleType) then
Chapter = Chapter .. ' ' .. TitleType; -- map annotation here; not after title
end
Chapter = Chapter.. sepc .. ' ';
elseif is_set (ChapterFormat) then -- |chapter= not set but |chapter-format= is so ...
Chapter = ChapterFormat .. sepc .. ' '; -- ... ChapterFormat has error message, we want to see it
end
end
-- Format main title.
Title = mw.ustring.gsub(Title, '%'..sepc..'$', ''); -- remove any trailing separator character
if is_set(TitleLink) and is_set(Title) then
Title = make_wikilink (TitleLink, Title);
end
if in_array(config.CitationClass, {'web', 'news', 'journal', 'magazine', 'pressrelease', 'podcast', 'newsgroup', 'mailinglist', 'interview', 'arxiv', 'biorxiv', 'citeseerx'}) or
('citation' == config.CitationClass and is_set (Periodical) and not is_set (Encyclopedia)) or
('map' == config.CitationClass and is_set (Periodical)) then -- special case for cite map when the map is in a periodical treat as an article
Title = kern_quotes (Title); -- if necessary, separate title's leading and trailing quote marks from Module provided quote marks
Title = wrap_style ('quoted-title', Title);
Title = script_concatenate (Title, ScriptTitle); -- &lt;bdi&gt; tags, lang atribute, categorization, etc; must be done after title is wrapped
TransTitle= wrap_style ('trans-quoted-title', TransTitle );
elseif 'report' == config.CitationClass then -- no styling for cite report
Title = script_concatenate (Title, ScriptTitle); -- &lt;bdi&gt; tags, lang atribute, categorization, etc; must be done after title is wrapped
TransTitle= wrap_style ('trans-quoted-title', TransTitle ); -- for cite report, use this form for trans-title
else
Title = wrap_style ('italic-title', Title);
Title = script_concatenate (Title, ScriptTitle); -- &lt;bdi&gt; tags, lang atribute, categorization, etc; must be done after title is wrapped
TransTitle = wrap_style ('trans-italic-title', TransTitle);
end
local TransError = &quot;&quot;;
if is_set(TransTitle) then
if is_set(Title) then
TransTitle = &quot; &quot; .. TransTitle;
else
TransError = &quot; &quot; .. set_error( 'trans_missing_title', {'title'} );
end
end
if is_set(Title) then
if not is_set(TitleLink) and is_set(URL) then
Title = external_link( URL, Title, URLorigin, UrlAccess ) .. TransTitle .. TransError .. Format;
URL = ''; -- unset these because no longer needed
Format = &quot;&quot;;
else
Title = Title .. TransTitle .. TransError;
end
else
Title = TransTitle .. TransError;
end
if is_set(Place) then
Place = &quot; &quot; .. wrap_msg ('written', Place, use_lowercase) .. sepc .. &quot; &quot;;
end
if is_set (Conference) then
if is_set (ConferenceURL) then
Conference = external_link( ConferenceURL, Conference, ConferenceURLorigin, nil );
end
Conference = sepc .. &quot; &quot; .. Conference .. ConferenceFormat;
elseif is_set(ConferenceURL) then
Conference = sepc .. &quot; &quot; .. external_link( ConferenceURL, nil, ConferenceURLorigin, nil );
end
if not is_set(Position) then
local Minutes = A['Minutes'];
local Time = A['Time'];
if is_set(Minutes) then
if is_set (Time) then
table.insert( z.message_tail, { set_error( 'redundant_parameters', {wrap_style ('parameter', 'minutes') .. ' and ' .. wrap_style ('parameter', 'time')}, true ) } );
end
Position = &quot; &quot; .. Minutes .. &quot; &quot; .. cfg.messages['minutes'];
else
if is_set(Time) then
local TimeCaption = A['TimeCaption']
if not is_set(TimeCaption) then
TimeCaption = cfg.messages['event'];
if sepc ~= '.' then
TimeCaption = TimeCaption:lower();
end
end
Position = &quot; &quot; .. TimeCaption .. &quot; &quot; .. Time;
end
end
else
Position = &quot; &quot; .. Position;
At = '';
end
Page, Pages, Sheet, Sheets = format_pages_sheets (Page, Pages, Sheet, Sheets, config.CitationClass, Periodical_origin, sepc, NoPP, use_lowercase);
At = is_set(At) and (sepc .. &quot; &quot; .. At) or &quot;&quot;;
Position = is_set(Position) and (sepc .. &quot; &quot; .. Position) or &quot;&quot;;
if config.CitationClass == 'map' then
local Section = A['Section'];
local Sections = A['Sections'];
local Inset = A['Inset'];
if is_set( Inset ) then
Inset = sepc .. &quot; &quot; .. wrap_msg ('inset', Inset, use_lowercase);
end
if is_set( Sections ) then
Section = sepc .. &quot; &quot; .. wrap_msg ('sections', Sections, use_lowercase);
elseif is_set( Section ) then
Section = sepc .. &quot; &quot; .. wrap_msg ('section', Section, use_lowercase);
end
At = At .. Inset .. Section;
end
if is_set (Language) then
Language = language_parameter (Language); -- format, categories, name from ISO639-1, etc
else
Language=&quot;&quot;; -- language not specified so make sure this is an empty string;
--[[ TODO: need to extract the wrap_msg from language_parameter
so that we can solve parentheses bunching problem with Format/Language/TitleType
]]
end
Others = is_set(Others) and (sepc .. &quot; &quot; .. Others) or &quot;&quot;;
if is_set (Translators) then
Others = sepc .. ' ' .. wrap_msg ('translated', Translators, use_lowercase) .. Others;
end
if is_set (Interviewers) then
Others = sepc .. ' ' .. wrap_msg ('interview', Interviewers, use_lowercase) .. Others;
end
TitleNote = is_set(TitleNote) and (sepc .. &quot; &quot; .. TitleNote) or &quot;&quot;;
if is_set (Edition) then
if Edition:match ('%f[%a][Ee]d%.?$') or Edition:match ('%f[%a][Ee]dition$') then
add_maint_cat ('extra_text', 'edition');
end
Edition = &quot; &quot; .. wrap_msg ('edition', Edition);
else
Edition = '';
end
Series = is_set(Series) and (sepc .. &quot; &quot; .. Series) or &quot;&quot;;
OrigYear = is_set(OrigYear) and (&quot; [&quot; .. OrigYear .. &quot;]&quot;) or &quot;&quot;; -- TODO: presentation
Agency = is_set(Agency) and (sepc .. &quot; &quot; .. Agency) or &quot;&quot;;
Volume = format_volume_issue (Volume, Issue, config.CitationClass, Periodical_origin, sepc, use_lowercase);
------------------------------------ totally unrelated data
if is_set(Via) then
Via = &quot; &quot; .. wrap_msg ('via', Via);
end
--[[
Subscription implies paywall; Registration does not. If both are used in a citation, the subscription required link
note is displayed. There are no error messages for this condition.
]]
if is_set (SubscriptionRequired) then
SubscriptionRequired = sepc .. &quot; &quot; .. cfg.messages['subscription']; -- subscription required message
elseif is_set (RegistrationRequired) then
SubscriptionRequired = sepc .. &quot; &quot; .. cfg.messages['registration']; -- registration required message
else
SubscriptionRequired = ''; -- either or both might be set to something other than yes true y
end
if is_set(AccessDate) then
local retrv_text = &quot; &quot; .. cfg.messages['retrieved']
AccessDate = nowrap_date (AccessDate); -- wrap in nowrap span if date in appropriate format
if (sepc ~= &quot;.&quot;) then retrv_text = retrv_text:lower() end -- if mode is cs2, lower case
AccessDate = substitute (retrv_text, AccessDate); -- add retrieved text
AccessDate = substitute (cfg.presentation['accessdate'], {sepc, AccessDate}); -- allow editors to hide accessdates
end
if is_set(ID) then ID = sepc ..&quot; &quot;.. ID; end
if &quot;thesis&quot; == config.CitationClass and is_set(Docket) then
ID = sepc ..&quot; Docket &quot;.. Docket .. ID;
end
if &quot;report&quot; == config.CitationClass and is_set(Docket) then -- for cite report when |docket= is set
ID = sepc .. ' ' .. Docket; -- overwrite ID even if |id= is set
end
ID_list = build_id_list( ID_list, {IdAccessLevels=ID_access_levels, DoiBroken = DoiBroken, ASINTLD = ASINTLD, IgnoreISBN = IgnoreISBN, Embargo=Embargo, Class = Class} );
if is_set(URL) then
URL = &quot; &quot; .. external_link( URL, nil, URLorigin, UrlAccess );
end
if is_set(Quote) then
if Quote:sub(1,1) == '&quot;' and Quote:sub(-1,-1) == '&quot;' then -- if first and last characters of quote are quote marks
Quote = Quote:sub(2,-2); -- strip them off
end
Quote = sepc ..&quot; &quot; .. wrap_style ('quoted-text', Quote ); -- wrap in &lt;q&gt;...&lt;/q&gt; tags
PostScript = &quot;&quot;; -- cs1|2 does not supply terminal punctuation when |quote= is set
end
local Archived
if is_set(ArchiveURL) then
if not is_set(ArchiveDate) then
ArchiveDate = set_error('archive_missing_date');
end
if &quot;no&quot; == DeadURL then
local arch_text = cfg.messages['archived'];
if sepc ~= &quot;.&quot; then arch_text = arch_text:lower() end
Archived = sepc .. &quot; &quot; .. substitute( cfg.messages['archived-not-dead'],
{ external_link( ArchiveURL, arch_text, A:ORIGIN('ArchiveURL'), nil ) .. ArchiveFormat, ArchiveDate } );
if not is_set(OriginalURL) then
Archived = Archived .. &quot; &quot; .. set_error('archive_missing_url');
end
elseif is_set(OriginalURL) then -- DeadURL is empty, 'yes', 'true', 'y', 'unfit', 'usurped'
local arch_text = cfg.messages['archived-dead'];
if sepc ~= &quot;.&quot; then arch_text = arch_text:lower() end
if in_array (DeadURL, {'unfit', 'usurped', 'bot: unknown'}) then
Archived = sepc .. &quot; &quot; .. 'Archived from the original on ' .. ArchiveDate; -- format already styled
if 'bot: unknown' == DeadURL then
add_maint_cat ('bot:_unknown'); -- and add a category if not already added
else
add_maint_cat ('unfit'); -- and add a category if not already added
end
else -- DeadURL is empty, 'yes', 'true', or 'y'
Archived = sepc .. &quot; &quot; .. substitute( arch_text,
{ external_link( OriginalURL, cfg.messages['original'], OriginalURLorigin, OriginalAccess ) .. OriginalFormat, ArchiveDate } ); -- format already styled
end
else
local arch_text = cfg.messages['archived-missing'];
if sepc ~= &quot;.&quot; then arch_text = arch_text:lower() end
Archived = sepc .. &quot; &quot; .. substitute( arch_text,
{ set_error('archive_missing_url'), ArchiveDate } );
end
elseif is_set (ArchiveFormat) then
Archived = ArchiveFormat; -- if set and ArchiveURL not set ArchiveFormat has error message
else
Archived = &quot;&quot;
end
local Lay = '';
if is_set(LayURL) then
if is_set(LayDate) then LayDate = &quot; (&quot; .. LayDate .. &quot;)&quot; end
if is_set(LaySource) then
LaySource = &quot; &amp;ndash; ''&quot; .. safe_for_italics(LaySource) .. &quot;''&quot;;
else
LaySource = &quot;&quot;;
end
if sepc == '.' then
Lay = sepc .. &quot; &quot; .. external_link( LayURL, cfg.messages['lay summary'], A:ORIGIN('LayURL'), nil ) .. LayFormat .. LaySource .. LayDate
else
Lay = sepc .. &quot; &quot; .. external_link( LayURL, cfg.messages['lay summary']:lower(), A:ORIGIN('LayURL'), nil ) .. LayFormat .. LaySource .. LayDate
end
elseif is_set (LayFormat) then -- Test if |lay-format= is given without giving a |lay-url=
Lay = sepc .. LayFormat; -- if set and LayURL not set, then LayFormat has error message
end
if is_set(Transcript) then
if is_set(TranscriptURL) then
Transcript = external_link( TranscriptURL, Transcript, TranscriptURLorigin, nil );
end
Transcript = sepc .. ' ' .. Transcript .. TranscriptFormat;
elseif is_set(TranscriptURL) then
Transcript = external_link( TranscriptURL, nil, TranscriptURLorigin, nil );
end
local Publisher;
if is_set(PublicationDate) then
PublicationDate = wrap_msg ('published', PublicationDate);
end
if is_set(PublisherName) then
if is_set(PublicationPlace) then
Publisher = sepc .. &quot; &quot; .. PublicationPlace .. &quot;: &quot; .. PublisherName .. PublicationDate;
else
Publisher = sepc .. &quot; &quot; .. PublisherName .. PublicationDate;
end
elseif is_set(PublicationPlace) then
Publisher= sepc .. &quot; &quot; .. PublicationPlace .. PublicationDate;
else
Publisher = PublicationDate;
end
-- Several of the above rely upon detecting this as nil, so do it last.
if is_set(Periodical) then
if is_set(Title) or is_set(TitleNote) then
Periodical = sepc .. &quot; &quot; .. wrap_style ('italic-title', Periodical)
else
Periodical = wrap_style ('italic-title', Periodical)
end
end
--[[
Handle the oddity that is cite speech. This code overrides whatever may be the value assigned to TitleNote (through |department=) and forces it to be &quot; (Speech)&quot; so that
the annotation directly follows the |title= parameter value in the citation rather than the |event= parameter value (if provided).
]]
if &quot;speech&quot; == config.CitationClass then -- cite speech only
TitleNote = &quot; (Speech)&quot;; -- annotate the citation
if is_set (Periodical) then -- if Periodical, perhaps because of an included |website= or |journal= parameter
if is_set (Conference) then -- and if |event= is set
Conference = Conference .. sepc .. &quot; &quot;; -- then add appropriate punctuation to the end of the Conference variable before rendering
end
end
end
-- Piece all bits together at last. Here, all should be non-nil.
-- We build things this way because it is more efficient in LUA
-- not to keep reassigning to the same string variable over and over.
local tcommon;
local tcommon2; -- used for book cite when |contributor= is set
if in_array(config.CitationClass, {&quot;journal&quot;,&quot;citation&quot;}) and is_set(Periodical) then
if is_set(Others) then Others = Others .. sepc .. &quot; &quot; end
tcommon = safe_join( {Others, Title, TitleNote, Conference, Periodical, Format, TitleType, Series, Language, Edition, Publisher, Agency, Volume}, sepc );
elseif in_array(config.CitationClass, {&quot;book&quot;,&quot;citation&quot;}) and not is_set(Periodical) then -- special cases for book cites
if is_set (Contributors) then -- when we are citing foreword, preface, introduction, etc
tcommon = safe_join( {Title, TitleNote}, sepc ); -- author and other stuff will come after this and before tcommon2
tcommon2 = safe_join( {Conference, Periodical, Format, TitleType, Series, Language, Volume, Others, Edition, Publisher, Agency}, sepc );
else
tcommon = safe_join( {Title, TitleNote, Conference, Periodical, Format, TitleType, Series, Language, Volume, Others, Edition, Publisher, Agency}, sepc );
end
elseif 'map' == config.CitationClass then -- special cases for cite map
if is_set (Chapter) then -- map in a book; TitleType is part of Chapter
tcommon = safe_join( {Title, Format, Edition, Scale, Series, Language, Cartography, Others, Publisher, Volume}, sepc );
elseif is_set (Periodical) then -- map in a periodical
tcommon = safe_join( {Title, TitleType, Format, Periodical, Scale, Series, Language, Cartography, Others, Publisher, Volume}, sepc );
else -- a sheet or stand-alone map
tcommon = safe_join( {Title, TitleType, Format, Edition, Scale, Series, Language, Cartography, Others, Publisher}, sepc );
end
elseif 'episode' == config.CitationClass then -- special case for cite episode
tcommon = safe_join( {Title, TitleNote, TitleType, Series, Transcript, Language, Edition, Publisher}, sepc );
else -- all other CS1 templates
tcommon = safe_join( {Title, TitleNote, Conference, Periodical, Format, TitleType, Series, Language,
Volume, Others, Edition, Publisher, Agency}, sepc );
end
if #ID_list &gt; 0 then
ID_list = safe_join( { sepc .. &quot; &quot;, table.concat( ID_list, sepc .. &quot; &quot; ), ID }, sepc );
else
ID_list = ID;
end
local idcommon = safe_join( { ID_list, URL, Archived, AccessDate, Via, SubscriptionRequired, Lay, Quote }, sepc );
local text;
local pgtext = Position .. Sheet .. Sheets .. Page .. Pages .. At;
if is_set(Date) then
if is_set (Authors) or is_set (Editors) then -- date follows authors or editors when authors not set
Date = &quot; (&quot; .. Date ..&quot;)&quot; .. OrigYear .. sepc .. &quot; &quot;; -- in paranetheses
else -- neither of authors and editors set
if (string.sub(tcommon,-1,-1) == sepc) then -- if the last character of tcommon is sepc
Date = &quot; &quot; .. Date .. OrigYear; -- Date does not begin with sepc
else
Date = sepc .. &quot; &quot; .. Date .. OrigYear; -- Date begins with sepc
end
end
end
if is_set(Authors) then
if (not is_set (Date)) then -- when date is set it's in parentheses; no Authors termination
Authors = terminate_name_list (Authors, sepc); -- when no date, terminate with 0 or 1 sepc and a space
end
if is_set(Editors) then
local in_text = &quot; &quot;;
local post_text = &quot;&quot;;
if is_set(Chapter) and 0 == #c then
in_text = in_text .. cfg.messages['in'] .. &quot; &quot;
if (sepc ~= '.') then
in_text = in_text:lower() -- lowercase for cs2
end
else
if EditorCount &lt;= 1 then
post_text = &quot;, &quot; .. cfg.messages['editor'];
else
post_text = &quot;, &quot; .. cfg.messages['editors'];
end
end
Editors = terminate_name_list (in_text .. Editors .. post_text, sepc); -- terminate with 0 or 1 sepc and a space
end
if is_set (Contributors) then -- book cite and we're citing the intro, preface, etc
local by_text = sepc .. ' ' .. cfg.messages['by'] .. ' ';
if (sepc ~= '.') then by_text = by_text:lower() end -- lowercase for cs2
Authors = by_text .. Authors; -- author follows title so tweak it here
if is_set (Editors) and is_set (Date) then -- when Editors make sure that Authors gets terminated
Authors = terminate_name_list (Authors, sepc); -- terminate with 0 or 1 sepc and a space
end
if (not is_set (Date)) then -- when date is set it's in parentheses; no Contributors termination
Contributors = terminate_name_list (Contributors, sepc); -- terminate with 0 or 1 sepc and a space
end
text = safe_join( {Contributors, Date, Chapter, tcommon, Authors, Place, Editors, tcommon2, pgtext, idcommon }, sepc );
else
text = safe_join( {Authors, Date, Chapter, Place, Editors, tcommon, pgtext, idcommon }, sepc );
end
elseif is_set(Editors) then
if is_set(Date) then
if EditorCount &lt;= 1 then
Editors = Editors .. &quot;, &quot; .. cfg.messages['editor'];
else
Editors = Editors .. &quot;, &quot; .. cfg.messages['editors'];
end
else
if EditorCount &lt;= 1 then
Editors = Editors .. &quot; (&quot; .. cfg.messages['editor'] .. &quot;)&quot; .. sepc .. &quot; &quot;
else
Editors = Editors .. &quot; (&quot; .. cfg.messages['editors'] .. &quot;)&quot; .. sepc .. &quot; &quot;
end
end
text = safe_join( {Editors, Date, Chapter, Place, tcommon, pgtext, idcommon}, sepc );
else
if in_array(config.CitationClass, {&quot;journal&quot;,&quot;citation&quot;}) and is_set(Periodical) then
text = safe_join( {Chapter, Place, tcommon, pgtext, Date, idcommon}, sepc );
else
text = safe_join( {Chapter, Place, tcommon, Date, pgtext, idcommon}, sepc );
end
end
if is_set(PostScript) and PostScript ~= sepc then
text = safe_join( {text, sepc}, sepc ); --Deals with italics, spaces, etc.
text = text:sub(1,-sepc:len()-1);
end
text = safe_join( {text, PostScript}, sepc );
-- Now enclose the whole thing in a &lt;cite/&gt; element
local options = {};
if is_set(config.CitationClass) and config.CitationClass ~= &quot;citation&quot; then
options.class = config.CitationClass;
options.class = &quot;citation &quot; .. config.CitationClass; -- class=citation required for blue highlight when used with |ref=
else
options.class = &quot;citation&quot;;
end
if is_set(Ref) and Ref:lower() ~= &quot;none&quot; then -- set reference anchor if appropriate
local id = Ref
if ('harv' == Ref ) then
local namelist = {}; -- holds selected contributor, author, editor name list
local year = first_set ({Year, anchor_year}, 2); -- Year first for legacy citations and for YMD dates that require disambiguation
if #c &gt; 0 then -- if there is a contributor list
namelist = c; -- select it
elseif #a &gt; 0 then -- or an author list
namelist = a;
elseif #e &gt; 0 then -- or an editor list
namelist = e;
end
if #namelist &gt; 0 then -- if there are names in namelist
id = anchor_id (namelist, year); -- go make the CITEREF anchor
else
id = ''; -- unset
end
end
options.id = id;
end
if string.len(text:gsub(&quot;&lt;span[^&gt;/]*&gt;(.-)&lt;/span&gt;&quot;, &quot;%1&quot;):gsub(&quot;%b&lt;&gt;&quot;,&quot;&quot;)) &lt;= 2 then -- remove &lt;span&gt; tags and other html-like markup; then get length of what remains
z.error_categories = {};
text = set_error('empty_citation');
z.message_tail = {};
end
local render = {}; -- here we collect the final bits for concatenation into the rendered citation
if is_set(options.id) then -- here we wrap the rendered citation in &lt;cite ...&gt;...&lt;/cite&gt; tags
table.insert (render, substitute (cfg.presentation['cite-id'], {mw.uri.anchorEncode(options.id), mw.text.nowiki(options.class), text})); -- when |ref= is set
else
table.insert (render, substitute (cfg.presentation['cite'], {mw.text.nowiki(options.class), text})); -- all other cases
end
table.insert (render, substitute (cfg.presentation['ocins'], {OCinSoutput})); -- append metadata to the citation
if #z.message_tail ~= 0 then
table.insert (render, ' ');
for i,v in ipairs( z.message_tail ) do
if is_set(v[1]) then
if i == #z.message_tail then
table.insert (render, error_comment( v[1], v[2] ));
else
table.insert (render, error_comment( v[1] .. &quot;; &quot;, v[2] ));
end
end
end
end
if #z.maintenance_cats ~= 0 then
table.insert (render, '&lt;span class=&quot;citation-comment&quot; style=&quot;display:none; color:#33aa33; margin-left:0.3em&quot;&gt;');
for _, v in ipairs( z.maintenance_cats ) do -- append maintenance categories
table.insert (render, v);
table.insert (render, ' (');
table.insert (render, make_wikilink (':Category:' .. v, 'link'));
table.insert (render, ') ');
end
table.insert (render, '&lt;/span&gt;');
end
no_tracking_cats = no_tracking_cats:lower();
if in_array(no_tracking_cats, {&quot;&quot;, &quot;no&quot;, &quot;false&quot;, &quot;n&quot;}) then
for _, v in ipairs( z.error_categories ) do
table.insert (render, make_wikilink ('Category:' .. v));
end
for _, v in ipairs( z.maintenance_cats ) do -- append maintenance categories
table.insert (render, make_wikilink ('Category:' .. v));
end
for _, v in ipairs( z.properties_cats ) do -- append properties categories
table.insert (render, make_wikilink ('Category:' .. v));
end
end
return table.concat (render);
end
--[[--------------------------&lt; C S 1 . C I T A T I O N &gt;------------------------------------------------------
This is used by templates such as {{cite book}} to create the actual citation text.
]]
function cs1.citation(frame)
Frame = frame; -- save a copy incase we need to display an error message in preview mode
local pframe = frame:getParent()
local validation, utilities, identifiers, metadata;
if nil ~= string.find (frame:getTitle(), 'sandbox', 1, true) then -- did the {{#invoke:}} use sandbox version?
cfg = mw.loadData ('Module:Citation/CS1/Configuration/sandbox'); -- load sandbox versions of support modules
whitelist = mw.loadData ('Module:Citation/CS1/Whitelist/sandbox');
utilities = require ('Module:Citation/CS1/Utilities/sandbox');
validation = require ('Module:Citation/CS1/Date_validation/sandbox');
identifiers = require ('Module:Citation/CS1/Identifiers/sandbox');
metadata = require ('Module:Citation/CS1/COinS/sandbox');
else -- otherwise
cfg = mw.loadData ('Module:Citation/CS1/Configuration'); -- load live versions of support modules
whitelist = mw.loadData ('Module:Citation/CS1/Whitelist');
utilities = require ('Module:Citation/CS1/Utilities');
validation = require ('Module:Citation/CS1/Date_validation');
identifiers = require ('Module:Citation/CS1/Identifiers');
metadata = require ('Module:Citation/CS1/COinS');
end
utilities.set_selected_modules (cfg); -- so that functions in Utilities can see the cfg tables
identifiers.set_selected_modules (cfg, utilities); -- so that functions in Identifiers can see the selected cfg tables and selected Utilities module
validation.set_selected_modules (cfg, utilities); -- so that functions in Date validataion can see selected cfg tables and the selected Utilities module
metadata.set_selected_modules (cfg, utilities); -- so that functions in COinS can see the selected cfg tables and selected Utilities module
dates = validation.dates; -- imported functions from Module:Citation/CS1/Date validation
year_date_check = validation.year_date_check;
reformat_dates = validation.reformat_dates;
date_hyphen_to_dash = validation.date_hyphen_to_dash;
date_name_xlate = validation.date_name_xlate;
is_set = utilities.is_set; -- imported functions from Module:Citation/CS1/Utilities
in_array = utilities.in_array;
substitute = utilities.substitute;
error_comment = utilities.error_comment;
set_error = utilities.set_error;
select_one = utilities.select_one;
add_maint_cat = utilities.add_maint_cat;
wrap_style = utilities.wrap_style;
safe_for_italics = utilities.safe_for_italics;
is_wikilink = utilities.is_wikilink;
make_wikilink = utilities.make_wikilink;
z = utilities.z; -- table of error and category tables in Module:Citation/CS1/Utilities
extract_ids = identifiers.extract_ids; -- imported functions from Module:Citation/CS1/Identifiers
build_id_list = identifiers.build_id_list;
is_embargoed = identifiers.is_embargoed;
extract_id_access_levels = identifiers.extract_id_access_levels;
make_coins_title = metadata.make_coins_title; -- imported functions from Module:Citation/CS1/COinS
get_coins_pages = metadata.get_coins_pages;
COinS = metadata.COinS;
local args = {}; -- table where we store all of the template's arguments
local suggestions = {}; -- table where we store suggestions if we need to loadData them
local error_text, error_state;
local config = {}; -- table to store parameters from the module {{#invoke:}}
for k, v in pairs( frame.args ) do
config[k] = v;
-- args[k] = v; -- debug tool that allows us to render a citation from module {{#invoke:}}
end
local capture; -- the single supported capture when matching unknown parameters using patterns
for k, v in pairs( pframe.args ) do
if v ~= '' then
if not validate( k, config.CitationClass ) then
error_text = &quot;&quot;;
if type( k ) ~= 'string' then
-- Exclude empty numbered parameters
if v:match(&quot;%S+&quot;) ~= nil then
error_text, error_state = set_error( 'text_ignored', {v}, true );
end
elseif validate( k:lower(), config.CitationClass ) then
error_text, error_state = set_error( 'parameter_ignored_suggest', {k, k:lower()}, true );
else
if nil == suggestions.suggestions then -- if this table is nil then we need to load it
if nil ~= string.find (frame:getTitle(), 'sandbox', 1, true) then -- did the {{#invoke:}} use sandbox version?
suggestions = mw.loadData( 'Module:Citation/CS1/Suggestions/sandbox' ); -- use the sandbox version
else
suggestions = mw.loadData( 'Module:Citation/CS1/Suggestions' ); -- use the live version
end
end
for pattern, param in pairs (suggestions.patterns) do -- loop through the patterns to see if we can suggest a proper parameter
capture = k:match (pattern); -- the whole match if no caputre in pattern else the capture if a match
if capture then -- if the pattern matches
param = substitute( param, capture ); -- add the capture to the suggested parameter (typically the enumerator)
error_text, error_state = set_error( 'parameter_ignored_suggest', {k, param}, true ); -- set the error message
end
end
if not is_set (error_text) then -- couldn't match with a pattern, is there an expicit suggestion?
if suggestions.suggestions[ k:lower() ] ~= nil then
error_text, error_state = set_error( 'parameter_ignored_suggest', {k, suggestions.suggestions[ k:lower() ]}, true );
else
error_text, error_state = set_error( 'parameter_ignored', {k}, true );
v = ''; -- unset value assigned to unrecognized parameters (this for the limited parameter lists)
end
end
end
if error_text ~= '' then
table.insert( z.message_tail, {error_text, error_state} );
end
end
missing_pipe_check (v); -- do we think that there is a parameter that is missing a pipe?
args[k] = v;
elseif args[k] ~= nil or (k == 'postscript') then
args[k] = v;
end
end
for k, v in pairs( args ) do
if 'string' == type (k) then -- don't evaluate positional parameters
has_invisible_chars (k, v);
end
end
return citation0( config, args)
end
return cs1;</text>
<sha1>rfgy4t0rhkedydsipwgno5eqfxioklp</sha1>
</revision>
</page>
<page>
<title>Module:Citation/CS1/COinS</title>
<ns>828</ns>
<id>48828620</id>
<revision>
<id>808669310</id>
<parentid>778352763</parentid>
<timestamp>2017-11-04T10:41:13Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<comment>synch from sandbox;</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="16800">
local coins = {};
--[[--------------------------&lt; F O R W A R D D E C L A R A T I O N S &gt;--------------------------------------
]]
local is_set, in_array, remove_wiki_link; -- functions in Module:Citation/CS1/Utilities
local cfg; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration
--[[--------------------------&lt; S T R I P _ A P O S T R O P H E _ M A R K U P &gt;--------------------------------
Strip wiki italic and bold markup from argument so that it doesn't contaminate COinS metadata.
This function strips common patterns of apostrophe markup. We presume that editors who have taken the time to
markup a title have, as a result, provided valid markup. When they don't, some single apostrophes are left behind.
]]
local function strip_apostrophe_markup (argument)
if not is_set (argument) then return argument; end
if argument:find ( &quot;''&quot;, 1, true ) == nil then -- Is there at least one double apostrophe? If not, exit.
return argument;
end
while true do
if argument:find ( &quot;'''''&quot;, 1, true ) then -- bold italic (5)
argument=argument:gsub(&quot;%'%'%'%'%'&quot;, &quot;&quot;); -- remove all instances of it
elseif argument:find ( &quot;''''&quot;, 1, true ) then -- italic start and end without content (4)
argument=argument:gsub(&quot;%'%'%'%'&quot;, &quot;&quot;);
elseif argument:find ( &quot;'''&quot;, 1, true ) then -- bold (3)
argument=argument:gsub(&quot;%'%'%'&quot;, &quot;&quot;);
elseif argument:find ( &quot;''&quot;, 1, true ) then -- italic (2)
argument=argument:gsub(&quot;%'%'&quot;, &quot;&quot;);
else
break;
end
end
return argument; -- done
end
--[[--------------------------&lt; M A K E _ C O I N S _ T I T L E &gt;----------------------------------------------
Makes a title for COinS from Title and / or ScriptTitle (or any other name-script pairs)
Apostrophe markup (bold, italics) is stripped from each value so that the COinS metadata isn't corrupted with strings
of %27%27...
]]
local function make_coins_title (title, script)
if is_set (title) then
title = strip_apostrophe_markup (title); -- strip any apostrophe markup
else
title=''; -- if not set, make sure title is an empty string
end
if is_set (script) then
script = script:gsub ('^%l%l%s*:%s*', ''); -- remove language prefix if present (script value may now be empty string)
script = strip_apostrophe_markup (script); -- strip any apostrophe markup
else
script=''; -- if not set, make sure script is an empty string
end
if is_set (title) and is_set (script) then
script = ' ' .. script; -- add a space before we concatenate
end
return title .. script; -- return the concatenation
end
--[[--------------------------&lt; E S C A P E _ L U A _ M A G I C _ C H A R S &gt;----------------------------------
Returns a string where all of lua's magic characters have been escaped. This is important because functions like
string.gsub() treat their pattern and replace strings as patterns, not literal strings.
]]
local function escape_lua_magic_chars (argument)
argument = argument:gsub(&quot;%%&quot;, &quot;%%%%&quot;); -- replace % with %%
argument = argument:gsub(&quot;([%^%$%(%)%.%[%]%*%+%-%?])&quot;, &quot;%%%1&quot;); -- replace all other lua magic pattern characters
return argument;
end
--[[--------------------------&lt; G E T _ C O I N S _ P A G E S &gt;------------------------------------------------
Extract page numbers from external wikilinks in any of the |page=, |pages=, or |at= parameters for use in COinS.
]]
local function get_coins_pages (pages)
local pattern;
if not is_set (pages) then return pages; end -- if no page numbers then we're done
while true do
pattern = pages:match(&quot;%[(%w*:?//[^ ]+%s+)[%w%d].*%]&quot;); -- pattern is the opening bracket, the url and following space(s): &quot;[url &quot;
if nil == pattern then break; end -- no more urls
pattern = escape_lua_magic_chars (pattern); -- pattern is not a literal string; escape lua's magic pattern characters
pages = pages:gsub(pattern, &quot;&quot;); -- remove as many instances of pattern as possible
end
pages = pages:gsub(&quot;[%[%]]&quot;, &quot;&quot;); -- remove the brackets
pages = pages:gsub(&quot;–&quot;, &quot;-&quot; ); -- replace endashes with hyphens
pages = pages:gsub(&quot;&amp;%w+;&quot;, &quot;-&quot; ); -- and replace html entities (&amp;ndash; etc.) with hyphens; do we need to replace numerical entities like &amp;#32; and the like?
return pages;
end
--[=[-------------------------&lt; C O I N S _ R E P L A C E _ M A T H _ S T R I P M A R K E R &gt;------------------
There are three options for math markup rendering that depend on the editor's math preference settings. These
settings are at [[Special:Preferences#mw-prefsection-rendering]] and are
PNG images
TeX source
MathML with SVG or PNG fallback
All three are heavy with html and css which doesn't belong in the metadata.
Without this function, the metadata saved in the raw wikitext contained the rendering determined by the settings
of the last editor to save the page.
This function gets the rendered form of an equation according to the editor's preference before the page is saved. It
then searches the rendering for the text equivalent of the rendered equation and replaces the rendering with that so
that the page is saved without extraneous html/css markup and with a reasonably readable text form of the equation.
When a replacement is made, this function returns true and the value with replacement; otherwise false and the intital
value. To replace multipe equations it is necesary to call this function from within a loop.
]=]
local function coins_replace_math_stripmarker (value)
local stripmarker = cfg.stripmarkers['math'];
local rendering = value:match (stripmarker); -- is there a math stripmarker
if not rendering then -- when value doesn't have a math stripmarker, abandon this test
return false, value;
end
rendering = mw.text.unstripNoWiki (rendering); -- convert stripmarker into rendered value (or nil? ''? when math render error)
if rendering:match ('alt=&quot;[^&quot;]+&quot;') then -- if PNG math option
rendering = rendering:match ('alt=&quot;([^&quot;]+)&quot;'); -- extract just the math text
elseif rendering:match ('$%s+.+%s+%$') then -- if TeX math option; $ is legit character that is escapes as \$
rendering = rendering:match ('$%s+(.+)%s+%$') -- extract just the math text
elseif rendering:match ('&lt;annotation[^&gt;]+&gt;.+&lt;/annotation&gt;') then -- if MathML math option
rendering = rendering:match ('&lt;annotation[^&gt;]+&gt;(.+)&lt;/annotation&gt;') -- extract just the math text
else
return false, value; -- had math stripmarker but not one of the three defined forms
end
return true, value:gsub (stripmarker, rendering, 1);
end
--[[--------------------------&lt; C O I N S _ C L E A N U P &gt;----------------------------------------------------
Cleanup parameter values for the metadata by removing or replacing invisible characters and certain html entities.
2015-12-10: there is a bug in mw.text.unstripNoWiki (). It replaces math stripmarkers with the appropriate content
when it shouldn't. See https://phabricator.wikimedia.org/T121085 and Wikipedia_talk:Lua#stripmarkers_and_mw.text.unstripNoWiki.28.29
TODO: move the replacement patterns and replacement values into a table in /Configuration similar to the invisible
characters table?
]]
local function coins_cleanup (value)
local replaced = true; -- default state to get the do loop running
while replaced do -- loop until all math stripmarkers replaced
replaced, value = coins_replace_math_stripmarker (value); -- replace math stripmarker with text representation of the equation
end
value = value:gsub (cfg.stripmarkers['math'], &quot;MATH RENDER ERROR&quot;); -- one or more couldn't be replaced; insert vague error message
value = mw.text.unstripNoWiki (value); -- replace nowiki stripmarkers with their content
value = value:gsub ('&lt;span class=&quot;nowrap&quot; style=&quot;padding%-left:0%.1em;&quot;&gt;&amp;#39;(s?)&lt;/span&gt;', &quot;'%1&quot;); -- replace {{'}} or {{'s}} with simple apostrophe or apostrophe-s
value = value:gsub ('&amp;nbsp;', ' '); -- replace &amp;nbsp; entity with plain space
value = value:gsub ('\226\128\138', ' '); -- replace hair space with plain space
if not mw.ustring.find (value, cfg.indic_script) then -- don't remove zero width joiner characters from indic script
value = value:gsub ('&amp;zwj;', ''); -- remove &amp;zwj; entities
value = mw.ustring.gsub (value, '[\226\128\141\226\128\139\194\173]', ''); -- remove zero-width joiner, zero-width space, soft hyphen
end
value = value:gsub ('[\009\010\013]', ' '); -- replace horizontal tab, line feed, carriage return with plain space
return value;
end
--[[--------------------------&lt; C O I N S &gt;--------------------------------------------------------------------
COinS metadata (see &lt;http://ocoins.info/&gt;) allows automated tools to parse the citation information.
]]
local function COinS(data, class)
if 'table' ~= type(data) or nil == next(data) then
return '';
end
for k, v in pairs (data) do -- spin through all of the metadata parameter values
if 'ID_list' ~= k and 'Authors' ~= k then -- except the ID_list and Author tables (author nowiki stripmarker done when Author table processed)
data[k] = coins_cleanup (v);
end
end
local ctx_ver = &quot;Z39.88-2004&quot;;
-- treat table strictly as an array with only set values.
local OCinSoutput = setmetatable( {}, {
__newindex = function(self, key, value)
if is_set(value) then
rawset( self, #self+1, table.concat{ key, '=', mw.uri.encode( remove_wiki_link( value ) ) } );
end
end
});
if in_array (class, {'arxiv', 'biorxiv', 'citeseerx', 'journal', 'news'}) or (in_array (class, {'conference', 'interview', 'map', 'press release', 'web'}) and is_set(data.Periodical)) or
('citation' == class and is_set(data.Periodical) and not is_set (data.Encyclopedia)) then
OCinSoutput.rft_val_fmt = &quot;info:ofi/fmt:kev:mtx:journal&quot;; -- journal metadata identifier
if in_array (class, {'arxiv', 'biorxiv', 'citeseerx'}) then -- set genre according to the type of citation template we are rendering
OCinSoutput[&quot;rft.genre&quot;] = &quot;preprint&quot;; -- cite arxiv, cite biorxiv, cite citeseerx
elseif 'conference' == class then
OCinSoutput[&quot;rft.genre&quot;] = &quot;conference&quot;; -- cite conference (when Periodical set)
elseif 'web' == class then
OCinSoutput[&quot;rft.genre&quot;] = &quot;unknown&quot;; -- cite web (when Periodical set)
else
OCinSoutput[&quot;rft.genre&quot;] = &quot;article&quot;; -- journal and other 'periodical' articles
end
OCinSoutput[&quot;rft.jtitle&quot;] = data.Periodical; -- journal only
OCinSoutput[&quot;rft.atitle&quot;] = data.Title; -- 'periodical' article titles
-- these used only for periodicals
OCinSoutput[&quot;rft.ssn&quot;] = data.Season; -- keywords: winter, spring, summer, fall
OCinSoutput[&quot;rft.chron&quot;] = data.Chron; -- free-form date components
OCinSoutput[&quot;rft.volume&quot;] = data.Volume; -- does not apply to books
OCinSoutput[&quot;rft.issue&quot;] = data.Issue;
OCinSoutput[&quot;rft.pages&quot;] = data.Pages; -- also used in book metadata
elseif 'thesis' ~= class then -- all others except cite thesis are treated as 'book' metadata; genre distinguishes
OCinSoutput.rft_val_fmt = &quot;info:ofi/fmt:kev:mtx:book&quot;; -- book metadata identifier
if 'report' == class or 'techreport' == class then -- cite report and cite techreport
OCinSoutput[&quot;rft.genre&quot;] = &quot;report&quot;;
elseif 'conference' == class then -- cite conference when Periodical not set
OCinSoutput[&quot;rft.genre&quot;] = &quot;conference&quot;;
OCinSoutput[&quot;rft.atitle&quot;] = data.Chapter; -- conference paper as chapter in proceedings (book)
elseif in_array (class, {'book', 'citation', 'encyclopaedia', 'interview', 'map'}) then
if is_set (data.Chapter) then
OCinSoutput[&quot;rft.genre&quot;] = &quot;bookitem&quot;;
OCinSoutput[&quot;rft.atitle&quot;] = data.Chapter; -- book chapter, encyclopedia article, interview in a book, or map title
else
if 'map' == class or 'interview' == class then
OCinSoutput[&quot;rft.genre&quot;] = 'unknown'; -- standalone map or interview
else
OCinSoutput[&quot;rft.genre&quot;] = 'book'; -- book and encyclopedia
end
end
else --{'audio-visual', 'AV-media-notes', 'DVD-notes', 'episode', 'interview', 'mailinglist', 'map', 'newsgroup', 'podcast', 'press release', 'serial', 'sign', 'speech', 'web'}
OCinSoutput[&quot;rft.genre&quot;] = &quot;unknown&quot;;
end
OCinSoutput[&quot;rft.btitle&quot;] = data.Title; -- book only
OCinSoutput[&quot;rft.place&quot;] = data.PublicationPlace; -- book only
OCinSoutput[&quot;rft.series&quot;] = data.Series; -- book only
OCinSoutput[&quot;rft.pages&quot;] = data.Pages; -- book, journal
OCinSoutput[&quot;rft.edition&quot;] = data.Edition; -- book only
OCinSoutput[&quot;rft.pub&quot;] = data.PublisherName; -- book and dissertation
else -- cite thesis
OCinSoutput.rft_val_fmt = &quot;info:ofi/fmt:kev:mtx:dissertation&quot;; -- dissertation metadata identifier
OCinSoutput[&quot;rft.title&quot;] = data.Title; -- dissertation (also patent but that is not yet supported)
OCinSoutput[&quot;rft.degree&quot;] = data.Degree; -- dissertation only
OCinSoutput['rft.inst'] = data.PublisherName; -- book and dissertation
end
-- and now common parameters (as much as possible)
OCinSoutput[&quot;rft.date&quot;] = data.Date; -- book, journal, dissertation
for k, v in pairs( data.ID_list ) do -- what to do about these? For now assume that they are common to all?
-- if k == 'ISBN' then v = clean_isbn( v ) end
if k == 'ISBN' then v = v:gsub( &quot;[^-0-9X]&quot;, &quot;&quot; ); end
local id = cfg.id_handlers[k].COinS;
if string.sub( id or &quot;&quot;, 1, 4 ) == 'info' then -- for ids that are in the info:registry
OCinSoutput[&quot;rft_id&quot;] = table.concat{ id, &quot;/&quot;, v };
elseif string.sub (id or &quot;&quot;, 1, 3 ) == 'rft' then -- for isbn, issn, eissn, etc that have defined COinS keywords
OCinSoutput[ id ] = v;
elseif id then -- when cfg.id_handlers[k].COinS is not nil
OCinSoutput[&quot;rft_id&quot;] = table.concat{ cfg.id_handlers[k].prefix, v }; -- others; provide a url
end
end
--[[
for k, v in pairs( data.ID_list ) do -- what to do about these? For now assume that they are common to all?
local id, value = cfg.id_handlers[k].COinS;
if k == 'ISBN' then value = clean_isbn( v ); else value = v; end
if string.sub( id or &quot;&quot;, 1, 4 ) == 'info' then
OCinSoutput[&quot;rft_id&quot;] = table.concat{ id, &quot;/&quot;, v };
else
OCinSoutput[ id ] = value;
end
end
]]
local last, first;
for k, v in ipairs( data.Authors ) do
last, first = coins_cleanup (v.last), coins_cleanup (v.first or ''); -- replace any nowiki strip markers, non-printing or invisible characers
if k == 1 then -- for the first author name only
if is_set(last) and is_set(first) then -- set these COinS values if |first= and |last= specify the first author name
OCinSoutput[&quot;rft.aulast&quot;] = last; -- book, journal, dissertation
OCinSoutput[&quot;rft.aufirst&quot;] = first; -- book, journal, dissertation
elseif is_set(last) then
OCinSoutput[&quot;rft.au&quot;] = last; -- book, journal, dissertation -- otherwise use this form for the first name
end
else -- for all other authors
if is_set(last) and is_set(first) then
OCinSoutput[&quot;rft.au&quot;] = table.concat{ last, &quot;, &quot;, first }; -- book, journal, dissertation
elseif is_set(last) then
OCinSoutput[&quot;rft.au&quot;] = last; -- book, journal, dissertation
end
end
end
OCinSoutput.rft_id = data.URL;
OCinSoutput.rfr_id = table.concat{ &quot;info:sid/&quot;, mw.site.server:match( &quot;[^/]*$&quot; ), &quot;:&quot;, data.RawPage };
OCinSoutput = setmetatable( OCinSoutput, nil );
-- sort with version string always first, and combine.
--table.sort( OCinSoutput );
table.insert( OCinSoutput, 1, &quot;ctx_ver=&quot; .. ctx_ver ); -- such as &quot;Z39.88-2004&quot;
return table.concat(OCinSoutput, &quot;&amp;&quot;);
end
--[[--------------------------&lt; S E T _ S E L E C T E D _ M O D U L E S &gt;--------------------------------------
Sets local cfg table and imported functions table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr, utilities_page_ptr)
cfg = cfg_table_ptr;
is_set = utilities_page_ptr.is_set; -- import functions from select Module:Citation/CS1/Utilities module
in_array = utilities_page_ptr.in_array;
remove_wiki_link = utilities_page_ptr.remove_wiki_link;
end
return {
make_coins_title = make_coins_title,
get_coins_pages = get_coins_pages,
COinS = COinS,
set_selected_modules = set_selected_modules,
}</text>
<sha1>coep8us87urtrppcmr74si4z4ldv4gs</sha1>
</revision>
</page>
<page>
<title>Module:Citation/CS1/Configuration</title>
<ns>828</ns>
<id>39043527</id>
<revision>
<id>808669336</id>
<parentid>777956985</parentid>
<timestamp>2017-11-04T10:41:24Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<comment>synch from sandbox;</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="48126">
local citation_config = {};
-- override &lt;code&gt;...&lt;/code&gt; styling to remove color, border, and padding. &lt;code&gt; css is specified here:
-- https://git.wikimedia.org/blob/mediawiki%2Fcore.git/69cd73811f7aadd093050dbf20ed70ef0b42a713/skins%2Fcommon%2FcommonElements.css#L199
local code_style=&quot;color:inherit; border:inherit; padding:inherit;&quot;;
--[[--------------------------&lt; U N C A T E G O R I Z E D _ N A M E S P A C E S &gt;------------------------------
List of namespaces that should not be included in citation error categories. Same as setting notracking = true by default
Note: Namespace names should use underscores instead of spaces.
]]
local uncategorized_namespaces = { 'User', 'Talk', 'User_talk', 'Wikipedia_talk', 'File_talk', 'Template_talk',
'Help_talk', 'Category_talk', 'Portal_talk', 'Book_talk', 'Draft', 'Draft_talk', 'Education_Program_talk',
'Module_talk', 'MediaWiki_talk' };
local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases'}; -- list of Lua patterns found in page names of pages we should not categorize
--[[--------------------------&lt; M E S S A G E S &gt;--------------------------------------------------------------
Translation table
The following contains fixed text that may be output as part of a citation.
This is separated from the main body to aid in future translations of this
module.
]]
local messages = {
['archived-dead'] = 'Archived from $1 on $2',
['archived-not-dead'] = '$1 from the original on $2',
['archived-missing'] = 'Archived from the original$1 on $2',
['archived'] = 'Archived',
['by'] = 'By', -- contributions to authored works: introduction, foreword, afterword
['cartography'] = 'Cartography by $1',
['editor'] = 'ed.',
['editors'] = 'eds.',
['edition'] = '($1 ed.)',
['episode'] = 'Episode $1',
['et al'] = 'et al.',
['in'] = 'In', -- edited works
['inactive'] = 'inactive',
['inset'] = '$1 inset',
['interview'] = 'Interview with $1',
['lay summary'] = 'Lay summary',
['newsgroup'] = '[[Usenet newsgroup|Newsgroup]]:&amp;nbsp;$1',
['original'] = 'the original',
['published'] = ' (published $1)',
['retrieved'] = 'Retrieved $1',
['season'] = 'Season $1',
['section'] = '§ $1',
['sections'] = '§§ $1',
['series'] = 'Series $1',
['translated'] = 'Translated by $1',
['type'] = ' ($1)', -- for titletype
['written'] = 'Written at $1',
['vol'] = '$1 Vol.&amp;nbsp;$2', -- $1 is sepc; bold journal style volume is in presentation{}
['vol-no'] = '$1 Vol.&amp;nbsp;$2 no.&amp;nbsp;$3', -- sepc, volume, issue
['issue'] = '$1 No.&amp;nbsp;$2', -- $1 is sepc
['j-vol'] = '$1 $2', -- sepc, volume; bold journal volume is in presentation{}
['j-issue'] = ' ($1)',
['nopp'] = '$1 $2'; -- page(s) without prefix; $1 is sepc
['p-prefix'] = &quot;$1 p.&amp;nbsp;$2&quot;, -- $1 is sepc
['pp-prefix'] = &quot;$1 pp.&amp;nbsp;$2&quot;, -- $1 is sepc
['j-page(s)'] = ': $1', -- same for page and pages
['sheet'] = '$1 Sheet&amp;nbsp;$2', -- $1 is sepc
['sheets'] = '$1 Sheets&amp;nbsp;$2', -- $1 is sepc
['j-sheet'] = ': Sheet&amp;nbsp;$1',
['j-sheets'] = ': Sheets&amp;nbsp;$1',
['subscription'] = '&lt;span style=&quot;font-size:90%; color:#555&quot;&gt;(Subscription required (&lt;span title=&quot;The site requires a paid subscription to access this page.&quot; style=&quot;border-bottom:1px dotted;cursor:help&quot;&gt;help&lt;/span&gt;))&lt;/span&gt;' ..
'[[Category:Pages containing links to subscription-only content]]',
['registration']='&lt;span style=&quot;font-size:90%; color:#555&quot;&gt;(Registration required (&lt;span title=&quot;The site requires registration to access this page.&quot; style=&quot;border-bottom:1px dotted;cursor:help&quot;&gt;help&lt;/span&gt;))&lt;/span&gt;' ..
'[[Category:Pages with login required references or sources]]',
['language'] = '(in $1)',
['via'] = &quot; &amp;ndash; via $1&quot;,
['event'] = 'Event occurs at',
['minutes'] = 'minutes in',
['parameter-separator'] = ', ',
['parameter-final-separator'] = ', and ',
['parameter-pair-separator'] = ' and ',
-- Determines the location of the help page
['help page link'] = 'Help:CS1 errors',
['help page label'] = 'help',
-- Internal errors (should only occur if configuration is bad)
['undefined_error'] = 'Called with an undefined error condition',
['unknown_manual_ID'] = 'Unrecognized manual ID mode',
['unknown_ID_mode'] = 'Unrecognized ID mode',
['unknown_argument_map'] = 'Argument map not defined for this variable',
['bare_url_no_origin'] = 'Bare url found but origin indicator is nil or empty',
}
--[[--------------------------&lt; P R E S E N T A T I O N &gt;------------------------------------------------------
Fixed presentation markup. Originally part of citation_config.messages it has been moved into its own, more semantically
correct place.
]]
local presentation =
{
-- Error output
-- .error class is specified at https://git.wikimedia.org/blob/mediawiki%2Fcore.git/9553bd02a5595da05c184f7521721fb1b79b3935/skins%2Fcommon%2Fshared.css#L538
-- .citation-comment class is specified at Help:CS1_errors#Controlling_error_message_display
['hidden-error'] = '&lt;span style=&quot;display:none;font-size:100%&quot; class=&quot;error citation-comment&quot;&gt;$1&lt;/span&gt;',
['visible-error'] = '&lt;span style=&quot;font-size:100%&quot; class=&quot;error citation-comment&quot;&gt;$1&lt;/span&gt;',
['accessdate'] = '&lt;span class=&quot;reference-accessdate&quot;&gt;$1$2&lt;/span&gt;', -- to allow editors to hide accessdate using personal css
['bdi'] = '&lt;bdi$1&gt;$2&lt;/bdi&gt;', -- bidirectional isolation used with |script-title= and the like
['cite'] = '&lt;cite class=&quot;$1&quot;&gt;$2&lt;/cite&gt;'; -- |ref= not set so no id=&quot;...&quot; attribute
['cite-id'] = '&lt;cite id=&quot;$1&quot; class=&quot;$2&quot;&gt;$3&lt;/cite&gt;'; -- for use when |ref= is set
['format'] = ' &lt;span style=&quot;font-size:85%;&quot;&gt;($1)&lt;/span&gt;', -- for |format=, |chapter-format=, etc
-- various access levels, for |access=, |doi-access=, |arxiv=, ...
-- narrow no-break space &amp;#8239; may work better than nowrap css. Or not? browser support?
['access-signal'] = '&lt;span class=&quot;plainlinks&quot;&gt;$1&amp;#8239;$2&lt;/span&gt;', -- external link with appropriate lock icon
['free'] = '[[File:Lock-green.svg|9px|link=|alt=Freely accessible|Freely accessible]]',
['registration'] = '[[File:Lock-blue-alt-2.svg|9px|link=|alt=Free registration required|Free registration required]]',
['limited'] = '[[File:Lock-blue-alt-2.svg|9px|link=|alt=Free access subject to limited trial, subscription normally required|Free access subject to limited trial, subscription normally required]]',
['subscription'] = '[[File:Lock-red-alt.svg|9px|link=|alt=Paid subscription required|Paid subscription required]]',
['italic-title'] = &quot;''$1''&quot;,
['kern-left'] = '&lt;span style=&quot;padding-left:0.2em;&quot;&gt;$1&lt;/span&gt;$2', -- spacing to use when title contains leading single or double quote mark
['kern-right'] = '$1&lt;span style=&quot;padding-right:0.2em;&quot;&gt;$2&lt;/span&gt;', -- spacing to use when title contains trailing single or double quote mark
-- these for simple wikilinked titles [[&quot;text]], [[text&quot;]] and [[&quot;text&quot;]]
-- span wraps entire wikilink
['kern-wl-left'] = '&lt;span style=&quot;padding-left:0.2em;&quot;&gt;$1&lt;/span&gt;', -- when title contains leading single or double quote mark
['kern-wl-right'] = '&lt;span style=&quot;padding-right:0.2em;&quot;&gt;$1&lt;/span&gt;', -- when title contains trailing single or double quote mark
['kern-wl-both'] = '&lt;span style=&quot;padding-left:0.2em;padding-right:0.2em;&quot;&gt;$1&lt;/span&gt;', -- when title contains leading and trailing single or double quote marks
['nowrap1'] = '&lt;span class=&quot;nowrap&quot;&gt;$1&lt;/span&gt;', -- for nowrapping an item: &lt;span ...&gt;yyyy-mm-dd&lt;/span&gt;
['nowrap2'] = '&lt;span class=&quot;nowrap&quot;&gt;$1&lt;/span&gt; $2', -- for nowrapping portions of an item: &lt;span ...&gt;dd mmmm&lt;/span&gt; yyyy (note white space)
['ocins'] = '&lt;span title=&quot;$1&quot; class=&quot;Z3988&quot;&gt;&lt;span style=&quot;display:none;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;', -- Note: Using display: none on the COinS span breaks some clients
['parameter'] = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=&lt;/code&gt;',
['quoted-text'] = '&lt;q&gt;$1&lt;/q&gt;', -- for wrapping |quote= content
['quoted-title'] = '&quot;$1&quot;',
['trans-italic-title'] = &quot;&amp;#91;''$1''&amp;#93;&quot;,
['trans-quoted-title'] = &quot;&amp;#91;$1&amp;#93;&quot;,
['vol-bold'] = '$1 &lt;b&gt;$2&lt;/b&gt;', -- sepc, volume; for bold journal cites; for other cites ['vol'] in messages{}
}
--[[--------------------------&lt; A L I A S E S &gt;----------------------------------------------------------------
Aliases table for commonly passed parameters
]]
local aliases = {
['AccessDate'] = {'access-date', 'accessdate'},
['Agency'] = 'agency',
['AirDate'] = {'air-date', 'airdate'},
['ArchiveDate'] = {'archive-date', 'archivedate'},
['ArchiveFormat'] = 'archive-format',
['ArchiveURL'] = {'archive-url', 'archiveurl'},
['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
['At'] = 'at',
['Authors'] = {'authors', 'people', 'host', 'credits'},
['BookTitle'] = {'book-title', 'booktitle'},
['Cartography'] = 'cartography',
['Chapter'] = {'chapter', 'contribution', 'entry', 'article', 'section'},
['ChapterFormat'] = {'chapter-format', 'contribution-format', 'section-format'};
['ChapterURL'] = {'chapter-url', 'chapterurl', 'contribution-url', 'contributionurl', 'section-url', 'sectionurl'},
['ChapterUrlAccess'] = 'chapter-url-access',
['Class'] = 'class', -- cite arxiv and arxiv identifiers
['Collaboration'] = 'collaboration',
['Conference'] = {'conference', 'event'},
['ConferenceFormat'] = {'conference-format', 'event-format'},
['ConferenceURL'] = {'conference-url', 'conferenceurl', 'event-url', 'eventurl'},
['Contribution'] = 'contribution', -- introduction, foreword, afterword, etc; required when |contributor= set
['Date'] = 'date',
['DeadURL'] = {'dead-url', 'deadurl'},
['Degree'] = 'degree',
['DF'] = 'df',
['DisplayAuthors'] = {'display-authors', 'displayauthors'},
['DisplayEditors'] = {'display-editors', 'displayeditors'},
['Docket'] = 'docket',
['DoiBroken'] = {'doi-broken', 'doi-broken-date', 'doi-inactive-date', 'doi_brokendate', 'doi_inactivedate'},
['Edition'] = 'edition',
['Editors'] = 'editors',
['Embargo'] = 'embargo',
['Encyclopedia'] = {'encyclopedia', 'encyclopaedia'}, -- this one only used by citation
['Episode'] = 'episode', -- cite serial only TODO: make available to cite episode?
['Format'] = 'format',
['ID'] = {'id', 'ID'},
['IgnoreISBN'] = {'ignore-isbn-error', 'ignoreisbnerror'},
['Inset'] = 'inset',
['Issue'] = {'issue', 'number'},
['Interviewers'] = 'interviewers',
['Language'] = {'language', 'in'},
['LastAuthorAmp'] = {'last-author-amp', 'lastauthoramp'},
['LayDate'] = {'lay-date', 'laydate'},
['LayFormat'] = 'lay-format',
['LaySource'] = {'lay-source', 'laysource'},
['LayURL'] = {'lay-url', 'lay-summary', 'layurl', 'laysummary'},
['MailingList'] = {'mailinglist', 'mailing-list'}, -- cite mailing list only
['Map'] = 'map', -- cite map only
['MapFormat'] = 'map-format', -- cite map only
['MapURL'] = {'mapurl', 'map-url'}, -- cite map only
['MessageID'] = 'message-id',
['Minutes'] = 'minutes',
['Mode'] = 'mode',
['NameListFormat'] = 'name-list-format',
['Network'] = 'network',
['NoPP'] = {'no-pp', 'nopp'},
['NoTracking'] = {'template-doc-demo', 'template doc demo', 'no-cat', 'nocat',
'no-tracking', 'notracking'},
['Number'] = 'number', -- this case only for cite techreport
['OrigYear'] = {'orig-year', 'origyear'},
['Others'] = 'others',
['Page'] = {'p', 'page'},
['Pages'] = {'pp', 'pages'},
['Periodical'] = {'journal', 'newspaper', 'magazine', 'work',
'website', 'periodical', 'encyclopedia', 'encyclopaedia', 'dictionary', 'mailinglist'},
['Place'] = {'place', 'location'},
['PostScript'] = 'postscript',
['PublicationDate'] = {'publicationdate', 'publication-date'},
['PublicationPlace'] = {'publication-place', 'publicationplace'},
['PublisherName'] = {'publisher', 'distributor', 'institution', 'newsgroup'},
['Quote'] = {'quote', 'quotation'},
['Ref'] = 'ref',
['RegistrationRequired'] = 'registration',
['Scale'] = 'scale',
['ScriptChapter'] = 'script-chapter',
['ScriptTitle'] = 'script-title',
['Section'] = 'section',
['Season'] = 'season',
['Sections'] = 'sections', -- cite map only
['Series'] = {'series', 'version'},
['SeriesSeparator'] = 'series-separator',
['SeriesLink'] = {'series-link', 'serieslink'},
['SeriesNumber'] = {'series-number', 'series-no', 'seriesnumber', 'seriesno'},
['Sheet'] = 'sheet', -- cite map only
['Sheets'] = 'sheets', -- cite map only
['Station'] = 'station',
['SubscriptionRequired'] = 'subscription',
['Time'] = 'time',
['TimeCaption'] = {'time-caption', 'timecaption'},
['Title'] = 'title',
['TitleLink'] = {'title-link', 'episode-link', 'titlelink', 'episodelink'},
['TitleNote'] = 'department',
['TitleType'] = {'type', 'medium'},
['TransChapter'] = {'trans-chapter', 'trans_chapter'},
['TransMap'] = 'trans-map', -- cite map only
['Transcript'] = 'transcript',
['TranscriptFormat'] = 'transcript-format',
['TranscriptURL'] = {'transcript-url', 'transcripturl'},
['TransTitle'] = {'trans-title', 'trans_title'},
['URL'] = {'url', 'URL'},
['UrlAccess'] = {'url-access'},
['Vauthors'] = 'vauthors',
['Veditors'] = 'veditors',
['Via'] = 'via',
['Volume'] = 'volume',
['Year'] = 'year',
['AuthorList-First'] = {&quot;first#&quot;, &quot;given#&quot;, &quot;author-first#&quot;, &quot;author#-first&quot;},
['AuthorList-Last'] = {&quot;last#&quot;, &quot;author#&quot;, &quot;surname#&quot;, &quot;author-last#&quot;, &quot;author#-last&quot;, &quot;subject#&quot;},
['AuthorList-Link'] = {&quot;authorlink#&quot;, &quot;author-link#&quot;, &quot;author#-link&quot;, &quot;subjectlink#&quot;, &quot;author#link&quot;, &quot;subject-link#&quot;, &quot;subject#-link&quot;, &quot;subject#link&quot;},
['AuthorList-Mask'] = {&quot;author-mask#&quot;, &quot;authormask#&quot;, &quot;author#mask&quot;, &quot;author#-mask&quot;},
['ContributorList-First'] = {'contributor-first#', 'contributor#-first', 'contributor-given#', 'contributor#-given'},
['ContributorList-Last'] = {'contributor#', 'contributor-last#', 'contributor#-last', 'contributor-surname#', 'contributor#-surname'},
['ContributorList-Link'] = {'contributor-link#', 'contributor#-link'},
['ContributorList-Mask'] = {'contributor-mask#', 'contributor#-mask'},
['EditorList-First'] = {&quot;editor-first#&quot;, &quot;editor#-first&quot;, &quot;editor-given#&quot;, &quot;editor#-given&quot;},
['EditorList-Last'] = {&quot;editor#&quot;, &quot;editor-last#&quot;, &quot;editor#-last&quot;, &quot;editor-surname#&quot;, &quot;editor#-surname&quot;},
['EditorList-Link'] = {&quot;editor-link#&quot;, &quot;editor#-link&quot;, &quot;editorlink#&quot;, &quot;editor#link&quot;},
['EditorList-Mask'] = {&quot;editor-mask#&quot;, &quot;editor#-mask&quot;, &quot;editormask#&quot;, &quot;editor#mask&quot;},
['InterviewerList-First'] = {'interviewer-first#', 'interviewer#-first'},
['InterviewerList-Last'] = {'interviewer#', 'interviewer-last#', 'interviewer#-last'},
['InterviewerList-Link'] = {'interviewer-link#', 'interviewer#-link'},
['InterviewerList-Mask'] = {'interviewer-mask#', 'interviewer#-mask'},
['TranslatorList-First'] = {'translator-first#', 'translator#-first', 'translator-given#', 'translator#-given'},
['TranslatorList-Last'] = {'translator#', 'translator-last#', 'translator#-last', 'translator-surname#', 'translator#-surname'},
['TranslatorList-Link'] = {'translator-link#', 'translator#-link'},
['TranslatorList-Mask'] = {'translator-mask#', 'translator#-mask'},
}
--[[--------------------------&lt; S P E C I A L C A S E T R A N S L A T I O N S &gt;----------------------------
This table is primarily here to support internationalization. Translations in this table are used, for example,
when an error message, category name, etc is extracted from the English alias key. There may be other cases where
this translation table may be useful.
]]
local special_case_translation = {
['AuthorList'] = &quot;authors list&quot;, -- these for multiple names maint categories
['ContributorList'] = &quot;contributors list&quot;,
['EditorList'] = &quot;editors list&quot;,
['InterviewerList'] = &quot;interviewers list&quot;,
['TranslatorList'] = &quot;translators list&quot;,
['authors'] = &quot;authors&quot;, -- used in get_display_authors_editors()
['editors'] = &quot;editors&quot;,
}
--[[--------------------------&lt; D E F A U L T S &gt;--------------------------------------------------------------
Default parameter values
TODO: keep this? Only one default?
]]
local defaults = {
['DeadURL'] = 'yes',
}
--[[--------------------------&lt; D A T E _ N A M E S &gt;----------------------------------------------------------
This table of tables lists local language date names and fallback English date names. The code in Date_validation
will look first in the local table for valid date names. If date names are not found in the local table, the code
will look in the English table.
Because citations can be copied to the local wiki from en.wiki, the English is required when the date-name translation
function date_name_xlate() is used.
In these tables, season numbering is defined by ISO DIS 8601:2016 part 2 §4.7 'Divisions of a year'. The standard
defines various divisions using numbers 21-41. cs1|2 only supports generic seasons. ISO DIS 8601:2016 does support
the distinction between north and south hemispere seasons but cs1|2 has no way to make that distinction.
The standard does not address 'named' dates so, for the purposes of cs1|2, Christmas is defined here as 99, which
should be out of the ISO DIS 8601:2016 range of uses for a while.
]]
local date_names = {
['en'] = { -- English
['long'] = {['January']=1, ['February']=2, ['March']=3, ['April']=4, ['May']=5, ['June']=6, ['July']=7, ['August']=8, ['September']=9, ['October']=10, ['November']=11, ['December']=12};
['short'] = {['Jan']=1, ['Feb']=2, ['Mar']=3, ['Apr']=4, ['May']=5, ['Jun']=6, ['Jul']=7, ['Aug']=8, ['Sep']=9, ['Oct']=10, ['Nov']=11, ['Dec']=12};
['season'] = {['Winter']=24, ['Spring']=21, ['Summer']=22, ['Fall']=23, ['Autumn']=23};
['named'] = {['Christmas']=99};
},
['local'] = { -- replace these English date names with the local language equivalents
['long'] = {['January']=1, ['February']=2, ['March']=3, ['April']=4, ['May']=5, ['June']=6, ['July']=7, ['August']=8, ['September']=9, ['October']=10, ['November']=11, ['December']=12};
['short'] = {['Jan']=1, ['Feb']=2, ['Mar']=3, ['Apr']=4, ['May']=5, ['Jun']=6, ['Jul']=7, ['Aug']=8, ['Sep']=9, ['Oct']=10, ['Nov']=11, ['Dec']=12};
['season'] = {['Winter']=24, ['Spring']=21, ['Summer']=22, ['Fall']=23, ['Autumn']=23};
['named'] = {['Christmas']=99};
}
}
--[[--------------------------&lt; V O L U M E , I S S U E , P A G E S &gt;----------------------------------------
These tables hold cite class values (from the template invocation) and identify those templates that support
|volume=, |issue=, and |page(s)= parameters. Cite conference and cite map require further qualification which
is handled in the main module.
]]
local templates_using_volume = {'citation', 'audio-visual', 'book', 'conference', 'encyclopaedia', 'interview', 'journal', 'magazine', 'map', 'news', 'report', 'techreport', 'thesis'}
local templates_using_issue = {'citation', 'conference', 'episode', 'interview', 'journal', 'magazine', 'map', 'news'}
local templates_not_using_page = {'audio-visual', 'episode', 'mailinglist', 'newsgroup', 'podcast', 'serial', 'sign', 'speech'}
--[[--------------------------&lt; K E Y W O R D S &gt;--------------------------------------------------------------
This table holds keywords for those parameters that have defined sets of acceptible keywords.
]]
local keywords = {
['yes_true_y'] = {'yes', 'true', 'y'}, -- ignore-isbn-error, last-author-amp, no-tracking, nopp, registration, subscription
-- ['deadurl'] = {'yes', 'true', 'y', 'no', 'unfit', 'usurped', 'unfit no archive', 'usurped no archive'}, -- hidden 2016-04-10; see Help_talk:Citation_Style_1#Recycled_urls
['deadurl'] = {'yes', 'true', 'y', 'no', 'unfit', 'usurped', 'bot: unknown'},
['mode'] = {'cs1', 'cs2', 'mla'},
['name-list-format'] = {'vanc'},
['contribution'] = {'afterword', 'foreword', 'introduction', 'preface'}, -- generic contribution titles that are rendered unquoted in the 'chapter' position
['date-format'] = {'dmy', 'dmy-all', 'mdy', 'mdy-all', 'ymd', 'ymd-all'},
['url-access'] = {'subscription', 'limited', 'registration'}, -- access level of a URL (subscription required, limited access, free registration required), free to read by default
['id-access'] = {'free'}, -- access level of an identifier (free to read), subscription required (or no full text) by default
}
--[[--------------------------&lt; S T R I P M A R K E R S &gt;------------------------------------------------------
Common pattern definition location for stripmarkers so that we don't have to go hunting for them if (when)
MediaWiki changes their form.
]]
local stripmarkers = {
['any'] = '\127[^\127]*UNIQ%-%-(%a+)%-[%a%d]+%-QINU[^\127]*\127', -- capture returns name of stripmarker
['math'] = '\127[^\127]*UNIQ%-%-math%-[%a%d]+%-QINU[^\127]*\127' -- math stripmarkers used in coins_cleanup() and coins_replace_math_stripmarker()
}
--[[--------------------------&lt; I N V I S I B L E _ C H A R A C T E R S &gt;--------------------------------------
This table holds non-printing or invisible characters indexed either by name or by Unicode group. Values are decimal
representations of UTF-8 codes. The table is organized as a table of tables because the lua pairs keyword returns
table data in an arbitrary order. Here, we want to process the table from top to bottom because the entries at
the top of the table are also found in the ranges specified by the entries at the bottom of the table.
This list contains patterns for templates like {{'}} which isn't an error but transcludes characters that are
invisible. These kinds of patterns must be recognized by the functions that use this list.
Also here is a pattern that recognizes stripmarkers that begin and end with the delete characters. The nowiki
stripmarker is not an error but some others are because the parameter values that include them become part of the
template's metadata before stripmarker replacement.
]]
local invisible_chars = {
{'replacement', '\239\191\189'}, -- U+FFFD, EF BF BD
{'zero width joiner', '\226\128\141'}, -- U+200D, E2 80 8D
{'zero width space', '\226\128\139'}, -- U+200B, E2 80 8B
{'hair space', '\226\128\138'}, -- U+200A, E2 80 8A
{'soft hyphen', '\194\173'}, -- U+00AD, C2 AD
{'horizontal tab', '\009'}, -- U+0009 (HT), 09
{'line feed', '\010'}, -- U+000A (LF), 0A
{'carriage return', '\013'}, -- U+000D (CR), 0D
{'stripmarker', stripmarkers.any}, -- stripmarker; may or may not be an error; capture returns the stripmaker type
{'delete', '\127'}, -- U+007F (DEL), 7F; must be done after stripmarker test
{'C0 control', '[\000-\008\011\012\014-\031]'}, -- U+0000–U+001F (NULL–US), 00–1F (except HT, LF, CR (09, 0A, 0D))
{'C1 control', '[\194\128-\194\159]'}, -- U+0080–U+009F (XXX–APC), C2 80 – C2 9F
-- {'Specials', '[\239\191\185-\239\191\191]'}, -- U+FFF9-U+FFFF, EF BF B9 – EF BF BF
-- {'Private use area', '[\238\128\128-\239\163\191]'}, -- U+E000–U+F8FF, EE 80 80 – EF A3 BF
-- {'Supplementary Private Use Area-A', '[\243\176\128\128-\243\191\191\189]'}, -- U+F0000–U+FFFFD, F3 B0 80 80 – F3 BF BF BD
-- {'Supplementary Private Use Area-B', '[\244\128\128\128-\244\143\191\189]'}, -- U+100000–U+10FFFD, F4 80 80 80 – F4 8F BF BD
}
-- Indic script makes use of zero width joiner as a character modifier so zwj characters must be left in. This
-- pattern covers all of the unicode characters for these languages:
-- Devanagari 0900–097F – https://unicode.org/charts/PDF/U0900.pdf
-- Devanagari extended A8E0–A8FF – https://unicode.org/charts/PDF/UA8E0.pdf
-- Bengali 0980–09FF – https://unicode.org/charts/PDF/U0980.pdf
-- Gurmukhi 0A00–0A7F – https://unicode.org/charts/PDF/U0A00.pdf
-- Gujarati 0A80–0AFF – https://unicode.org/charts/PDF/U0A80.pdf
-- Oriya 0B00–0B7F – https://unicode.org/charts/PDF/U0B00.pdf
-- Tamil 0B80–0BFF – https://unicode.org/charts/PDF/U0B80.pdf
-- Telugu 0C00–0C7F – https://unicode.org/charts/PDF/U0C00.pdf
-- Kannada 0C80–0CFF – https://unicode.org/charts/PDF/U0C80.pdf
-- Malayalam 0D00–0D7F – https://unicode.org/charts/PDF/U0D00.pdf
-- the pattern is used by has_invisible_chars() and coins_cleanup()
-- TODO: find a better place for this?
local indic_script = '[\224\164\128-\224\181\191\234\163\160-\234\163\191]';
--[[--------------------------&lt; L A N G U A G E S &gt;------------------------------------------------------------
This table is used to hold ISO 639-1 two-character language codes that apply only to |script-title= and |script-chapter=
]]
local script_lang_codes = {'am', 'ar', 'be', 'bg', 'bn', 'bs', 'dv', 'el', -- ISO 639-1 codes only for |script-title= and |script-chapter=
'fa', 'gu', 'he', 'hy', 'ja', 'ka', 'kn', 'ko',
'ku', 'mk', 'ml', 'mr', 'my', 'ps', 'ru', 'sd',
'sr', 'tg', 'th', 'uk', 'ug', 'ur', 'yi', 'zh'};
--[[--------------------------&lt; M A I N T E N A N C E _ C A T E G O R I E S &gt;----------------------------------
Here we name maintenance categories to be used in maintenance messages.
]]
local maint_cats = {
['ASIN'] = 'CS1 maint: ASIN uses ISBN',
['authors'] = 'CS1 maint: Uses authors parameter',
['bot:_unknown'] = 'CS1 maint: BOT: original-url status unknown',
['date_format'] = 'CS1 maint: Date format',
['date_year'] = 'CS1 maint: Date and year',
['disp_auth_ed'] = 'CS1 maint: display-$1', -- $1 is authors or editors; gets value from special_case_translation table
['editors'] = 'CS1 maint: Uses editors parameter',
['embargo'] = 'CS1 maint: PMC embargo expired',
['english'] = 'CS1 maint: English language specified',
['etal'] = 'CS1 maint: Explicit use of et al.',
['extra_text'] = 'CS1 maint: Extra text',
['extra_text_names'] = 'CS1 maint: Extra text: $1', -- $1 is &lt;name&gt;s list; gets value from special_case_translation table
['ignore_isbn_err'] = 'CS1 maint: Ignored ISBN errors',
['interviewers'] = 'CS1 maint: Uses interviewers parameter',
['missing_pipe'] = 'CS1 maint: Missing pipe',
['mult_names'] = 'CS1 maint: Multiple names: $1', -- $1 is &lt;name&gt;s list; gets value from special_case_translation table
['pmc_format'] = 'CS1 maint: PMC format',
['unfit'] = 'CS1 maint: Unfit url',
['unknown_lang'] = 'CS1 maint: Unrecognized language',
['untitled'] = 'CS1 maint: Untitled periodical',
}
--[[--------------------------&lt; P R O P E R T I E S _ C A T E G O R I E S &gt;------------------------------------
Here we name properties categories
]]
local prop_cats = {
['foreign_lang_source'] = 'CS1 $1-language sources ($2)', -- |language= categories; $1 is language name, $2 is ISO639-1 code
['foreign_lang_source_2'] = 'CS1 foreign language sources (ISO 639-2)|$1', -- |language= category; a cat for ISO639-2 languages; $1 is the ISO 639-2 code
['script'] = 'CS1 uses foreign language script', -- when language specified by |script-title=xx: doesn't have its own category
['script_with_name'] = 'CS1 uses $1-language script ($2)', -- |script-title=xx: has matching category; $1 is language name, $2 is ISO639-1 code
}
--[[--------------------------&lt; T I T L E _ T Y P E S &gt;--------------------------------------------------------
Here we map a template's CitationClass to TitleType (default values for |type= parameter)
]]
local title_types = {
['AV-media-notes'] = 'Media notes',
['interview'] = 'Interview',
['mailinglist'] = 'Mailing list',
['map'] = 'Map',
['podcast'] = 'Podcast',
['pressrelease'] = 'Press release',
['report'] = 'Report',
['techreport'] = 'Technical report',
['thesis'] = 'Thesis',
}
--[[--------------------------&lt; E R R O R _ C O N D I T I O N S &gt;----------------------------------------------
Error condition table
The following contains a list of IDs for various error conditions defined in the code. For each ID, we specify a
text message to display, an error category to include, and whether the error message should be wrapped as a hidden comment.
Anchor changes require identical changes to matching anchor in Help:CS1 errors
]]
local error_conditions = {
accessdate_missing_url = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;access-date=&lt;/code&gt; requires &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;url=&lt;/code&gt;',
anchor = 'accessdate_missing_url',
category = 'Pages using citations with accessdate and no URL',
hidden = true },
archive_missing_date = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;archive-url=&lt;/code&gt; requires &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;archive-date=&lt;/code&gt;',
anchor = 'archive_missing_date',
category = 'Pages with archiveurl citation errors',
hidden = false },
archive_missing_url = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;archive-url=&lt;/code&gt; requires &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;url=&lt;/code&gt;',
anchor = 'archive_missing_url',
category = 'Pages with archiveurl citation errors',
hidden = false },
archive_url = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;archive-url=&lt;/code&gt; is malformed: $1',
anchor = 'archive_url',
category = 'Pages with archiveurl citation errors',
hidden = false },
arxiv_missing = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;arxiv=&lt;/code&gt; required',
anchor = 'arxiv_missing',
category = 'CS1 errors: arXiv', -- same as bad arxiv
hidden = false },
arxiv_params_not_supported = {
message = 'Unsupported parameter(s) in cite arXiv',
anchor = 'arxiv_params_not_supported',
category = 'CS1 errors: arXiv', -- same as bad arxiv
hidden = false },
bad_arxiv = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;arxiv=&lt;/code&gt; value',
anchor = 'bad_arxiv',
category = 'CS1 errors: arXiv',
hidden = false },
bad_asin = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;asin=&lt;/code&gt; value',
anchor = 'bad_asin',
category ='CS1 errors: ASIN',
hidden = false },
bad_bibcode = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;bibcode=&lt;/code&gt; $1',
anchor = 'bad_bibcode',
category = 'CS1 errors: bibcode',
hidden = false },
bad_biorxiv = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;biorxiv=&lt;/code&gt; value',
anchor = 'bad_biorxiv',
category = 'CS1 errors: bioRxiv',
hidden = false },
bad_citeseerx = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;citeseerx=&lt;/code&gt; value',
anchor = 'bad_citeseerx',
category = 'CS1 errors: citeseerx',
hidden = false },
bad_date = {
message = 'Check date values in: &lt;code style=&quot;'..code_style..'&quot;&gt;$1&lt;/code&gt;',
anchor = 'bad_date',
category = 'CS1 errors: dates',
hidden = false },
bad_doi = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;doi=&lt;/code&gt; value',
anchor = 'bad_doi',
category = 'CS1 errors: DOI',
hidden = false },
bad_hdl = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;hdl=&lt;/code&gt; value',
anchor = 'bad_hdl',
category = 'CS1 errors: HDL',
hidden = false },
bad_isbn = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;isbn=&lt;/code&gt; value: $1',
anchor = 'bad_isbn',
category = 'CS1 errors: ISBN',
hidden = false },
bad_ismn = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;ismn=&lt;/code&gt; value',
anchor = 'bad_ismn',
category = 'CS1 errors: ISMN',
hidden = false },
bad_issn = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1issn=&lt;/code&gt; value',
anchor = 'bad_issn',
category = 'CS1 errors: ISSN',
hidden = false },
bad_jfm = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;jfm=&lt;/code&gt; value',
anchor = 'bad_jfm',
category = 'CS1 errors: JFM',
hidden = false },
bad_lccn = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;lccn=&lt;/code&gt; value',
anchor = 'bad_lccn',
category = 'CS1 errors: LCCN',
hidden = false },
bad_usenet_id = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;message-id=&lt;/code&gt; value',
anchor = 'bad_message_id',
category = 'CS1 errors: message-id',
hidden = false },
bad_mr = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;mr=&lt;/code&gt; value',
anchor = 'bad_mr',
category = 'CS1 errors: MR',
hidden = false },
bad_ol = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;ol=&lt;/code&gt; value',
anchor = 'bad_ol',
category = 'CS1 errors: OL',
hidden = false },
bad_paramlink = { -- for |title-link=, |author/editor/translator-link=, |series-link=, |episode-link=
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=&lt;/code&gt; value',
anchor = 'bad_paramlink',
category = 'CS1 errors: parameter link',
hidden = false },
bad_pmc = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;pmc=&lt;/code&gt; value',
anchor = 'bad_pmc',
category = 'CS1 errors: PMC',
hidden = false },
bad_pmid = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;pmid=&lt;/code&gt; value',
anchor = 'bad_pmid',
category = 'CS1 errors: PMID',
hidden = false },
bad_oclc = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;oclc=&lt;/code&gt; value',
anchor = 'bad_oclc',
category = 'CS1 errors: OCLC',
hidden = false },
bad_ssrn = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;ssrn=&lt;/code&gt; value',
anchor = 'bad_ssrn',
category = 'CS1 errors: SSRN',
hidden = false },
bad_url = {
message = 'Check $1 value',
anchor = 'bad_url',
category = 'Pages with URL errors',
hidden = false },
bad_zbl = {
message = 'Check &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;zbl=&lt;/code&gt; value',
anchor = 'bad_zbl',
category = 'CS1 errors: ZBL',
hidden = false },
bare_url_missing_title = {
message = '$1 missing title',
anchor = 'bare_url_missing_title',
category = 'Pages with citations having bare URLs',
hidden = false },
biorxiv_missing = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;biorxiv=&lt;/code&gt; required',
anchor = 'biorxiv_missing',
category = 'CS1 errors: bioRxiv', -- same as bad bioRxiv
hidden = false },
chapter_ignored = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=&lt;/code&gt; ignored',
anchor = 'chapter_ignored',
category = 'CS1 errors: chapter ignored',
hidden = false },
citation_missing_title = {
message = 'Missing or empty &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=&lt;/code&gt;',
anchor = 'citation_missing_title',
category = 'Pages with citations lacking titles',
hidden = false },
citeseerx_missing = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;citeseerx=&lt;/code&gt; required',
anchor = 'citeseerx_missing',
category = 'CS1 errors: citeseerx', -- same as bad citeseerx
hidden = false },
cite_web_url = { -- this error applies to cite web and to cite podcast
message = 'Missing or empty &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;url=&lt;/code&gt;',
anchor = 'cite_web_url',
category = 'Pages using web citations with no URL',
hidden = true },
contributor_ignored = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;contributor=&lt;/code&gt; ignored&lt;/code&gt;',
anchor = 'contributor_ignored',
category = 'CS1 errors: contributor',
hidden = false },
contributor_missing_required_param = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;contributor=&lt;/code&gt; requires &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=&lt;/code&gt;',
anchor = 'contributor_missing_required_param',
category = 'CS1 errors: contributor',
hidden = false },
deprecated_params = {
message = 'Cite uses deprecated parameter &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=&lt;/code&gt;',
anchor = 'deprecated_params',
category = 'CS1 errors: deprecated parameters',
hidden = false },
empty_citation = {
message = 'Empty citation',
anchor = 'empty_citation',
category = 'Pages with empty citations',
hidden = false },
first_missing_last = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;first$2=&lt;/code&gt; missing &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;last$2=&lt;/code&gt; in $1',
anchor = 'first_missing_last',
category = 'CS1 errors: missing author or editor',
hidden = false },
format_missing_url = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=&lt;/code&gt; requires &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$2=&lt;/code&gt;',
anchor = 'format_missing_url',
category = 'Pages using citations with format and no URL',
hidden = true },
invalid_param_val = {
message = 'Invalid &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=$2&lt;/code&gt;',
anchor = 'invalid_param_val',
category = 'CS1 errors: invalid parameter value',
hidden = false },
invisible_char = {
message = '$1 in $2 at position $3',
anchor = 'invisible_char',
category = 'CS1 errors: invisible characters',
hidden = false },
missing_name = {
message = 'Missing &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;last$2=&lt;/code&gt; in $1',
anchor = 'missing_name',
category = 'CS1 errors: missing author or editor',
hidden = false },
param_access_requires_param = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1-access=&lt;/code&gt; requires &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=&lt;/code&gt;',
anchor = 'param_access_requires_param',
category = 'CS1 errors: param-access',
hidden = false },
param_has_ext_link = {
message = 'External link in &lt;code style=&quot;'..code_style..'&quot;&gt;$1&lt;/code&gt;',
anchor = 'param_has_ext_link',
category = 'CS1 errors: external links',
hidden = false },
parameter_ignored = {
message = 'Unknown parameter &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=&lt;/code&gt; ignored',
anchor = 'parameter_ignored',
category = 'Pages with citations using unsupported parameters',
hidden = false },
parameter_ignored_suggest = {
message = 'Unknown parameter &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=&lt;/code&gt; ignored (&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$2=&lt;/code&gt; suggested)',
anchor = 'parameter_ignored_suggest',
category = 'Pages with citations using unsupported parameters',
hidden = false },
redundant_parameters = {
message = 'More than one of $1 specified',
anchor = 'redundant_parameters',
category = 'Pages with citations having redundant parameters',
hidden = false },
text_ignored = {
message = 'Text &quot;$1&quot; ignored',
anchor = 'text_ignored',
category = 'Pages with citations using unnamed parameters',
hidden = false },
trans_missing_title = {
message = '&lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;trans-$1=&lt;/code&gt; requires &lt;code style=&quot;'..code_style..'&quot;&gt;&amp;#124;$1=&lt;/code&gt;',
anchor = 'trans_missing_title',
category = 'CS1 errors: translated title',
hidden = false },
vancouver = {
message = 'Vancouver style error: $1',
anchor = 'vancouver',
category = 'CS1 errors: Vancouver style',
hidden = false },
wikilink_in_url = {
message = 'URL–wikilink conflict', -- uses ndash
anchor = 'wikilink_in_url',
category = 'CS1 errors: URL–wikilink conflict', -- uses ndash
hidden = false },
}
--[[--------------------------&lt; I D _ H A N D L E R S &gt;--------------------------------------------------------
The following contains a list of values for various defined identifiers. For each identifier we specify a
variety of information necessary to properly render the identifier in the citation.
parameters: a list of parameter aliases for this identifier
link: Wikipedia article name
label: the alternate name to apply to link
mode: 'manual' when there is a specific function in the code to handle the identifier;
'external' for identifiers that link outside of Wikipedia;
prefix: the first part of a url that will be concatenated with a second part which usually contains the identifier
encode: true if uri should be percent encoded; otherwise false
COinS: identifier link or keyword for use in COinS:
for identifiers registered at info-uri.info use: info:....
for identifiers that have COinS keywords, use the keyword: rft.isbn, rft.issn, rft.eissn
for others make a url using the value in prefix, use the keyword: pre (not checked; any text other than 'info' or 'rft' works here)
set to nil to leave the identifier out of the COinS
separator: character or text between label and the identifier in the rendered citation
access: use this parameter to set the access level for all instances of this identifier.
the value must be a valid access level for an identifier (see ['id-access'] in this file).
custom_access: to enable custom access level for an identifier, set this parameter
to the parameter that should control it (normally 'id-access')
]]
local id_handlers = {
['ARXIV'] = {
parameters = {'arxiv', 'eprint'},
link = 'arXiv',
label = 'arXiv',
mode = 'manual',
prefix = '//arxiv.org/abs/', -- protocol relative tested 2013-09-04
encode = false,
COinS = 'info:arxiv',
separator = ':',
access = 'free', -- free to read
},
['ASIN'] = {
parameters = { 'asin', 'ASIN' },
link = 'Amazon Standard Identification Number',
label = 'ASIN',
mode = 'manual',
prefix = '//www.amazon.',
COinS = nil, -- no COinS for this id (needs thinking on implementation because |asin-tld=)
separator = '&amp;nbsp;',
encode = false;
},
['BIBCODE'] = {
parameters = {'bibcode'},
link = 'Bibcode',
label = 'Bibcode',
mode = 'manual',
prefix = 'http://adsabs.harvard.edu/abs/',
encode = false,
COinS = 'info:bibcode',
separator = ':',
custom_access = 'bibcode-access',
},
['BIORXIV'] = {
parameters = {'biorxiv'},
link = 'bioRxiv',
label = 'bioRxiv',
mode = 'manual',
prefix = '//doi.org/10.1101/',
COinS = 'pre', -- use prefix value
access = 'free', -- free to read
encode = true,
separator = '&amp;nbsp;',
},
['CITESEERX'] = {
parameters = {'citeseerx'},
link = 'CiteSeerX',
label = 'CiteSeerX',
mode = 'manual', -- manual for custom validation of the &quot;doi&quot;
prefix = '//citeseerx.ist.psu.edu/viewdoc/summary?doi=',
COinS = 'pre', -- use prefix value
access = 'free', -- free to read
encode = true,
separator = '&amp;nbsp;',
},
['DOI'] = {
parameters = { 'doi', 'DOI' },
link = 'Digital object identifier',
label = 'doi',
mode = 'manual',
prefix = '//doi.org/',
COinS = 'info:doi',
separator = ':',
encode = true,
custom_access = 'doi-access',
},
['EISSN'] = {
parameters = {'eissn', 'EISSN'},
link = 'International_Standard_Serial_Number#Electronic_ISSN',
label = 'eISSN',
mode = 'manual',
prefix = '//www.worldcat.org/issn/',
COinS = 'rft.eissn',
encode = false,
separator = '&amp;nbsp;',
},
['HDL'] = {
parameters = { 'hdl', 'HDL' },
link = 'Handle System',
label = 'hdl',
mode = 'manual',
prefix = '//hdl.handle.net/',
COinS = 'info:hdl',
separator = ':',
encode = true,
custom_access = 'hdl-access',
},
['ISBN'] = {
parameters = {'isbn', 'ISBN', 'isbn13', 'ISBN13'},
link = 'International Standard Book Number',
label = 'ISBN',
mode = 'manual',
prefix = 'Special:BookSources/',
COinS = 'rft.isbn',
separator = '&amp;nbsp;',
},
['ISMN'] = {
parameters = {'ismn', 'ISMN'},
link = 'International Standard Music Number',
label = 'ISMN',
mode = 'manual',
prefix = '', -- not currently used;
COinS = 'nil', -- nil because we can't use pre or rft or info:
separator = '&amp;nbsp;',
},
['ISSN'] = {
parameters = {'issn', 'ISSN'},
link = 'International Standard Serial Number',
label = 'ISSN',
mode = 'manual',
prefix = '//www.worldcat.org/issn/',
COinS = 'rft.issn',
encode = false,
separator = '&amp;nbsp;',
},
['JFM'] = {
parameters = {'jfm', 'JFM'},
link = 'Jahrbuch über die Fortschritte der Mathematik',
label = 'JFM',
mode = 'manual',
prefix = '//zbmath.org/?format=complete&amp;q=an:',
COinS = 'pre', -- use prefix value
encode = true,
separator = '&amp;nbsp;',
},
['JSTOR'] = {
parameters = {'jstor', 'JSTOR'},
link = 'JSTOR',
label = 'JSTOR',
mode = 'external',
prefix = '//www.jstor.org/stable/', -- protocol relative tested 2013-09-04
COinS = 'pre', -- use prefix value
encode = false,
separator = '&amp;nbsp;',
custom_access = 'jstor-access',
},
['LCCN'] = {
parameters = {'LCCN', 'lccn'},
link = 'Library of Congress Control Number',
label = 'LCCN',
mode = 'manual',
prefix = '//lccn.loc.gov/', -- protocol relative tested 2015-12-28
COinS = 'info:lccn', -- use prefix value
encode = false,
separator = '&amp;nbsp;',
},
['MR'] = {
parameters = {'MR', 'mr'},
link = 'Mathematical Reviews',
label = 'MR',
mode = 'manual',
prefix = '//www.ams.org/mathscinet-getitem?mr=', -- protocol relative tested 2013-09-04
COinS = 'pre', -- use prefix value
encode = true,
separator = '&amp;nbsp;',
},
['OCLC'] = {
parameters = {'OCLC', 'oclc'},
link = 'OCLC',
label = 'OCLC',
mode = 'manual',
prefix = '//www.worldcat.org/oclc/',
COinS = 'info:oclcnum',
encode = true,
separator = '&amp;nbsp;',
},
['OL'] = {
parameters = { 'ol', 'OL' },
link = 'Open Library',
label = 'OL',
mode = 'manual',
prefix = '//openlibrary.org/',
COinS = nil, -- no COinS for this id (needs thinking on implementation because /authors/books/works/OL)
separator = '&amp;nbsp;',
encode = true,
custom_access = 'ol-access',
},
['OSTI'] = {
parameters = {'OSTI', 'osti'},
link = 'Office of Scientific and Technical Information',
label = 'OSTI',
mode = 'external',
prefix = '//www.osti.gov/energycitations/product.biblio.jsp?osti_id=', -- protocol relative tested 2013-09-04
COinS = 'pre', -- use prefix value
encode = true,
separator = '&amp;nbsp;',
custom_access = 'osti-access',
},
['PMC'] = {
parameters = {'PMC', 'pmc'},
link = 'PubMed Central',
label = 'PMC',
mode = 'manual',
prefix = '//www.ncbi.nlm.nih.gov/pmc/articles/PMC',
suffix = &quot; &quot;,
COinS = 'pre', -- use prefix value
encode = true,
separator = '&amp;nbsp;',
access = 'free', -- free to read
},
['PMID'] = {
parameters = {'PMID', 'pmid'},
link = 'PubMed Identifier',
label = 'PMID',
mode = 'manual',
prefix = '//www.ncbi.nlm.nih.gov/pubmed/',
COinS = 'info:pmid',
encode = false,
separator = '&amp;nbsp;',
},
['RFC'] = {
parameters = {'RFC', 'rfc'},
link = 'Request for Comments',
label = 'RFC',
mode = 'external',
prefix = '//tools.ietf.org/html/rfc',
COinS = 'pre', -- use prefix value
encode = false,
separator = '&amp;nbsp;',
access = 'free', -- free to read
},
['SSRN'] = {
parameters = {'SSRN', 'ssrn'},
link = 'Social Science Research Network',
label = 'SSRN',
mode = 'manual',
prefix = '//ssrn.com/abstract=', -- protocol relative tested 2013-09-04
COinS = 'pre', -- use prefix value
encode = true,
separator = '&amp;nbsp;',
access = 'free', -- always free to read
},
['USENETID'] = {
parameters = {'message-id'},
link = 'Usenet',
label = 'Usenet:',
mode = 'manual',
prefix = 'news:',
encode = false,
COinS = 'pre', -- use prefix value
separator = '&amp;nbsp;',
},
['ZBL'] = {
parameters = {'ZBL', 'zbl'},
link = 'Zentralblatt MATH',
label = 'Zbl',
mode = 'manual',
prefix = '//zbmath.org/?format=complete&amp;q=an:',
COinS = 'pre', -- use prefix value
encode = true,
separator = '&amp;nbsp;',
},
}
return {
aliases = aliases,
special_case_translation = special_case_translation,
defaults = defaults,
date_names = date_names,
error_conditions = error_conditions,
id_handlers = id_handlers,
keywords = keywords,
stripmarkers=stripmarkers,
invisible_chars = invisible_chars,
indic_script = indic_script,
maint_cats = maint_cats,
messages = messages,
presentation = presentation,
prop_cats = prop_cats,
script_lang_codes = script_lang_codes,
title_types = title_types,
uncategorized_namespaces = uncategorized_namespaces,
uncategorized_subpages = uncategorized_subpages,
templates_using_volume = templates_using_volume,
templates_using_issue = templates_using_issue,
templates_not_using_page = templates_not_using_page,
}</text>
<sha1>nyggdgsglal9rkpt7n8hoxndrr30510</sha1>
</revision>
</page>
<page>
<title>Module:Citation/CS1/Date validation</title>
<ns>828</ns>
<id>42164542</id>
<revision>
<id>808669328</id>
<parentid>732205419</parentid>
<timestamp>2017-11-04T10:41:20Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<comment>synch from sandbox;</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="43216">
local p = {}
--[[--------------------------&lt; F O R W A R D D E C L A R A T I O N S &gt;--------------------------------------
]]
local is_set, in_array; -- imported functions from selected Module:Citation/CS1/Utilities
local cfg; -- table of tables imported from slected Module:Citation/CS1/Configuration
--[=[-------------------------&lt; I S _ V A L I D _ A C C E S S D A T E &gt;----------------------------------------
returns true if:
Wikipedia start date &lt;= accessdate &lt; today + 2 days
Wikipedia start date is 2001-01-15T00:00:00 UTC which is 979516800 seconds after 1970-01-01T00:00:00 UTC (the start of Unix time)
accessdate is the date provided in |accessdate= at time 00:00:00 UTC
today is the current date at time 00:00:00 UTC plus 48 hours
if today is 2015-01-01T00:00:00 then
adding 24 hours gives 2015-01-02T00:00:00 – one second more than today
adding 24 hours gives 2015-01-03T00:00:00 – one second more than tomorrow
This function does not work if it is fed month names for languages other than English. Wikimedia #time: parser
apparently doesn't understand non-Engish date month names. This function will always return false when the date
contains a non-English month name because good1 is false after the call to lang.formatDate(). To get around that
call this function with YYYY-MM-DD format dates.
]=]
local function is_valid_accessdate (accessdate)
local lang = mw.getContentLanguage();
local good1, good2;
local access_ts, tomorrow_ts; -- to hold unix time stamps representing the dates
good1, access_ts = pcall( lang.formatDate, lang, 'U', accessdate ); -- convert accessdate value to unix timesatmp
good2, tomorrow_ts = pcall( lang.formatDate, lang, 'U', 'today + 2 days' ); -- today midnight + 2 days is one second more than all day tomorrow
if good1 and good2 then
access_ts = tonumber (access_ts); -- convert to numbers for the comparison
tomorrow_ts = tonumber (tomorrow_ts);
else
return false; -- one or both failed to convert to unix time stamp
end
if 979516800 &lt;= access_ts and access_ts &lt; tomorrow_ts then -- Wikipedia start date &lt;= accessdate &lt; tomorrow's date
return true;
else
return false; -- accessdate out of range
end
end
--[[--------------------------&lt; G E T _ M O N T H _ N U M B E R &gt;----------------------------------------------
returns a number according to the month in a date: 1 for January, etc. Capitalization and spelling must be correct. If not a valid month, returns 0
]]
local function get_month_number (month)
return cfg.date_names['local'].long[month] or cfg.date_names['local'].short[month] or -- look for local names first
cfg.date_names['en'].long[month] or cfg.date_names['en'].short[month] or -- failing that, look for English names
0; -- not a recognized month name
end
--[[--------------------------&lt; I S _ V A L I D _ E M B A R G O _ D A T E &gt;------------------------------------
returns true and date value if that value has proper dmy, mdy, ymd format.
returns false and 9999 (embargoed forever) when date value is not proper format; assumes that when |embargo= is
set, the editor intended to embargo a pmc but |embargo= does not hold a single date.
]]
local function is_valid_embargo_date (v)
if v:match ('^%d%d%d%d%-%d%d%-%d%d$') or -- ymd
v:match ('^%d%d?%s+%a+%s+%d%d%d%d$') or -- dmy
v:match ('^%a+%s+%d%d?%s*,%s*%d%d%d%d$') then -- mdy
return true, v;
end
return false, '9999'; -- if here not good date so return false and set embargo date to long time in future
end
--[[--------------------------&lt; G E T _ S E A S O N _ N U M B E R &gt;--------------------------------------------
returns a number according to the sequence of seasons in a year: 1 for Winter, etc. Capitalization and spelling must be correct. If not a valid season, returns 0
Uses ISO DIS 8601 2016 part 2 §4.7 Divisions of a year for hemishpere-independent seasons:
21-24 = Spring, Summer, Autumn, Winter, independent of “Hemisphere”
These additional divisions not currently supported:
25-28 = Spring - Northern Hemisphere, Summer- Northern Hemisphere, Autumn - Northern Hemisphere, Winter - Northern Hemisphere
29-32 = Spring – Southern Hemisphere, Summer– Southern Hemisphere, Autumn – Southern Hemisphere, Winter - Southern Hemisphere
33-36 = Quarter 1, Quarter 2, Quarter 3, Quarter 4 (3 months each)
37-39 = Quadrimester 1, Quadrimester 2, Quadrimester 3 (4 months each)
40-41 = Semestral 1, Semestral-2 (6 months each)
]]
local function get_season_number (season)
return cfg.date_names['local'].season[season] or -- look for local names first
cfg.date_names['en'].season[season] or -- failing that, look for English names
0; -- not a recognized season name
end
--[[--------------------------&lt; I S _ P R O P E R _ N A M E &gt;--------------------------------------------------
returns a non-zero number if date contains a recognized proper name. Capitalization and spelling must be correct.
]]
local function is_proper_name (name)
return cfg.date_names['local'].named[name] or -- look for local names dates first
cfg.date_names['en'].named[name] or -- failing that, look for English names
0; -- not a recognized named date
end
--[[--------------------------&lt; I S _ V A L I D _ M O N T H _ O R _ S E A S O N &gt;------------------------------
--returns true if month or season is valid (properly spelled, capitalized, abbreviated)
]]
local function is_valid_month_or_season (month_season)
if 0 == get_month_number (month_season) then -- if month text isn't one of the twelve months, might be a season
if 0 == get_season_number (month_season) then -- not a month, is it a season?
return false; -- return false not a month or one of the five seasons
end
end
return true;
end
--[[--------------------------&lt; I S _ V A L I D _ Y E A R &gt;----------------------------------------------------
Function gets current year from the server and compares it to year from a citation parameter. Years more than one year in the future are not acceptable.
]]
local year_limit;
local function is_valid_year(year)
if not is_set(year_limit) then
year_limit = tonumber(os.date(&quot;%Y&quot;))+1; -- global variable so we only have to fetch it once
end
return tonumber(year) &lt;= year_limit; -- false if year is in the future more than one year
end
--[[--------------------------&lt; I S _ V A L I D _ D A T E &gt;----------------------------------------------------
Returns true if day is less than or equal to the number of days in month and year is no farther into the future
than next year; else returns false.
Assumes Julian calendar prior to year 1582 and Gregorian calendar thereafter. Accounts for Julian calendar leap
years before 1582 and Gregorian leap years after 1582. Where the two calendars overlap (1582 to approximately
1923) dates are assumed to be Gregorian.
]]
local function is_valid_date (year, month, day)
local days_in_month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
local month_length;
if not is_valid_year(year) then -- no farther into the future than next year
return false;
end
month = tonumber(month); -- required for YYYY-MM-DD dates
if (2==month) then -- if February
month_length = 28; -- then 28 days unless
if 1582 &gt; tonumber(year) then -- Julian calendar
if 0==(year%4) then
month_length = 29;
end
else -- Gregorian calendar
if (0==(year%4) and (0~=(year%100) or 0==(year%400))) then -- is a leap year?
month_length = 29; -- if leap year then 29 days in February
end
end
else
month_length=days_in_month[month];
end
if tonumber (day) &gt; month_length then
return false;
end
return true;
end
--[[--------------------------&lt; I S _ V A L I D _ M O N T H _ R A N G E _ S T Y L E &gt;--------------------------
Months in a range are expected to have the same style: Jan–Mar or October–December but not February–Mar or Jul–August.
There is a special test for May because it can be either short or long form.
Returns true when style for both months is the same
]]
local function is_valid_month_range_style (month1, month2)
local len1 = month1:len();
local len2 = month2:len();
if len1 == len2 then
return true; -- both months are short form so return true
elseif 'May' == month1 or 'May'== month2 then
return true; -- both months are long form so return true
elseif 3 == len1 or 3 == len2 then
return false; -- months are mixed form so return false
else
return true; -- both months are long form so return true
end
end
--[[--------------------------&lt; I S _ V A L I D _ M O N T H _ S E A S O N _ R A N G E &gt;------------------------
Check a pair of months or seasons to see if both are valid members of a month or season pair.
Month pairs are expected to be left to right, earliest to latest in time.
All season ranges are accepted as valid because there are publishers out there who have published a Summer–Spring YYYY issue so ... ok
]]
local function is_valid_month_season_range(range_start, range_end)
local range_start_number = get_month_number (range_start);
local range_end_number;
if 0 == range_start_number then -- is this a month range?
range_start_number = get_season_number (range_start); -- not a month; is it a season? get start season number
range_end_number = get_season_number (range_end); -- get end season number
if (0 ~= range_start_number) and (0 ~= range_end_number) then
return true; -- any season pairing is accepted
end
return false; -- range_start and/or range_end is not a season
end
-- here when range_start is a month
range_end_number = get_month_number (range_end); -- get end month number
if range_start_number &lt; range_end_number then -- range_start is a month; does range_start precede range_end?
if is_valid_month_range_style (range_start, range_end) then -- do months have the same style?
return true; -- proper order and same style
end
end
return false; -- range_start month number is greater than or equal to range end number; or range end isn't a month
end
--[[--------------------------&lt; M A K E _ C O I N S _ D A T E &gt;------------------------------------------------
This function receives a table of date parts for one or two dates and an empty table reference declared in
Module:Citation/CS1. The function is called only for |date= parameters and only if the |date=&lt;value&gt; is
determined to be a valid date format. The question of what to do with invalid date formats is not answered here.
The date parts in the input table are converted to an ISO 8601 conforming date string:
single whole dates: yyyy-mm-dd
month and year dates: yyyy-mm
year dates: yyyy
ranges: yyyy-mm-dd/yyyy-mm-dd
yyyy-mm/yyyy-mm
yyyy/yyyy
Dates in the Julian calendar are reduced to year or year/year so that we don't have to do calendar conversion from
Julian to Proleptic Gregorian.
The input table has:
year, year2 – always present; if before 1582, ignore months and days if present
month, month2 – 0 if not provided, 1-12 for months, 21-24 for seasons; 31– proper name dates
day, day2 – 0 if not provided, 1-31 for days
the output table receives:
rftdate: an IS8601 formatted date
rftchron: a free-form version of the date, usually without year which is in rftdate (season ranges and propername dates)
rftssn: one of four season keywords: winter, spring, summer, fall (lowercase)
]]
local function make_COinS_date (input, tCOinS_date)
local date; -- one date or first date in a range
local date2 = ''; -- end of range date
if 1582 &gt; tonumber(input.year) or 20 &lt; tonumber(input.month) then -- Julian calendar or season so &amp;rft.date gets year only
date = input.year;
if 0 ~= input.year2 and input.year ~= input.year2 then -- if a range, only the second year portion when not the same as range start year
date = string.format ('%.4d/%.4d', tonumber(input.year), tonumber(input.year2)) -- assemble the date range
end
if 20 &lt; tonumber(input.month) then -- if season or propername date
local season = {[21]='winter', [22]='spring', [23]='summer', [24]='fall', [31]='Christmas'}; -- seasons lowercase, no autumn; proper names use title case
if 0 == input.month2 then -- single season date
if 30 &lt;tonumber(input.month) then
tCOinS_date.rftchron = season[input.month]; -- proper name dates
else
tCOinS_date.rftssn = season[input.month]; -- seasons
end
else -- season range with a second season specified
if input.year ~= input.year2 then -- season year – season year range or season year–year
tCOinS_date.rftssn = season[input.month]; -- start of range season; keep this?
if 0~= input.month2 then
tCOinS_date.rftchron = string.format ('%s %s – %s %s', season[input.month], input.year, season[input.month2], input.year2);
end
else -- season–season year range
tCOinS_date.rftssn = season[input.month]; -- start of range season; keep this?
tCOinS_date.rftchron = season[input.month] .. '–' .. season[input.month2]; -- season–season year range
end
end
end
tCOinS_date.rftdate = date;
return; -- done
end
if 0 ~= input.day then
date = string.format ('%s-%.2d-%.2d', input.year, tonumber(input.month), tonumber(input.day)); -- whole date
elseif 0 ~= input.month then
date = string.format ('%s-%.2d', input.year, tonumber(input.month)); -- year and month
else
date = string.format ('%s', input.year); -- just year
end
if 0 ~= input.year2 then
if 0 ~= input.day2 then
date2 = string.format ('/%s-%.2d-%.2d', input.year2, tonumber(input.month2), tonumber(input.day2)); -- whole date
elseif 0 ~= input.month2 then
date2 = string.format ('/%s-%.2d', input.year2, tonumber(input.month2)); -- year and month
else
date2 = string.format ('/%s', input.year2); -- just year
end
end
tCOinS_date.rftdate = date .. date2; -- date2 has the '/' separator
return;
end
--[[--------------------------&lt; C H E C K _ D A T E &gt;----------------------------------------------------------
Check date format to see that it is one of the formats approved by WP:DATESNO or WP:DATERANGE. Exception: only
allowed range separator is endash. Additionally, check the date to see that it is a real date: no 31 in 30-day
months; no 29 February when not a leap year. Months, both long-form and three character abbreviations, and seasons
must be spelled correctly. Future years beyond next year are not allowed.
If the date fails the format tests, this function returns false and does not return values for anchor_year and
COinS_date. When this happens, the date parameter is used in the COinS metadata and the CITEREF identifier gets
its year from the year parameter if present otherwise CITEREF does not get a date value.
Inputs:
date_string - date string from date-holding parameters (date, year, accessdate, embargo, archivedate, etc.)
Returns:
false if date string is not a real date; else
true, anchor_year, COinS_date
anchor_year can be used in CITEREF anchors
COinS_date is ISO 8601 format date; see make_COInS_date()
]]
local function check_date (date_string, tCOinS_date, test_accessdate)
local year; -- assume that year2, months, and days are not used;
local year2=0; -- second year in a year range
local month=0;
local month2=0; -- second month in a month range
local day=0;
local day2=0; -- second day in a day range
local anchor_year;
local coins_date;
if date_string:match(&quot;^%d%d%d%d%-%d%d%-%d%d$&quot;) then -- year-initial numerical year month day format
year, month, day=string.match(date_string, &quot;(%d%d%d%d)%-(%d%d)%-(%d%d)&quot;);
if 12 &lt; tonumber(month) or 1 &gt; tonumber(month) or 1582 &gt; tonumber(year) or 0 == tonumber(day) then return false; end -- month or day number not valid or not Gregorian calendar
anchor_year = year;
elseif date_string:match(&quot;^%a+ +[1-9]%d?, +[1-9]%d%d%d%a?$&quot;) then -- month-initial: month day, year
month, day, anchor_year, year=string.match(date_string, &quot;(%a+)%s*(%d%d?),%s*((%d%d%d%d?)%a?)&quot;);
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
elseif mw.ustring.match(date_string, &quot;^%a+ +[1-9]%d?[%-–][1-9]%d?, +[1-9]%d%d%d%a?$&quot;) then -- month-initial day range: month day–day, year; days are separated by endash
month, day, day2, anchor_year, year=mw.ustring.match(date_string, &quot;(%a+) +(%d%d?)[%-–](%d%d?), +((%d%d%d%d)%a?)&quot;);
if tonumber(day) &gt;= tonumber(day2) then return false; end -- date range order is left to right: earlier to later; dates may not be the same;
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
month2=month; -- for metadata
year2=year;
elseif date_string:match(&quot;^[1-9]%d? +%a+ +[1-9]%d%d%d%a?$&quot;) then -- day-initial: day month year
day, month, anchor_year, year=string.match(date_string, &quot;(%d%d*)%s*(%a+)%s*((%d%d%d%d?)%a?)&quot;);
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
elseif mw.ustring.match(date_string, &quot;^[1-9]%d?[%-–][1-9]%d? +%a+ +[1-9]%d%d%d%a?$&quot;) then -- day-range-initial: day–day month year; days are separated by endash
day, day2, month, anchor_year, year=mw.ustring.match(date_string, &quot;(%d%d?)[%-–](%d%d?) +(%a+) +((%d%d%d%d)%a?)&quot;);
if tonumber(day) &gt;= tonumber(day2) then return false; end -- date range order is left to right: earlier to later; dates may not be the same;
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
month2=month; -- for metadata
year2=year;
elseif mw.ustring.match(date_string, &quot;^[1-9]%d? +%a+ [%-–] [1-9]%d? +%a+ +[1-9]%d%d%d%a?$&quot;) then -- day initial month-day-range: day month - day month year; uses spaced endash
day, month, day2, month2, anchor_year, year=mw.ustring.match(date_string, &quot;(%d%d?) +(%a+) [%-–] (%d%d?) +(%a+) +((%d%d%d%d)%a?)&quot;);
if (not is_valid_month_season_range(month, month2)) or not is_valid_year(year) then return false; end -- date range order is left to right: earlier to later;
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
year2=year;
elseif mw.ustring.match(date_string, &quot;^%a+ +[1-9]%d? [%-–] %a+ +[1-9]%d?, +[1-9]%d%d%d%a?$&quot;) then -- month initial month-day-range: month day – month day, year; uses spaced endash
month, day, month2, day2, anchor_year, year=mw.ustring.match(date_string, &quot;(%a+) +(%d%d?) [%-–] (%a+) +(%d%d?), +((%d%d%d%d)%a?)&quot;);
if (not is_valid_month_season_range(month, month2)) or not is_valid_year(year) then return false; end
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
year2=year;
elseif mw.ustring.match(date_string, &quot;^[1-9]%d? +%a+ +[1-9]%d%d%d [%-–] [1-9]%d? +%a+ +[1-9]%d%d%d%a?$&quot;) then -- day initial month-day-year-range: day month year - day month year; uses spaced endash
day, month, year, day2, month2, anchor_year, year2=mw.ustring.match(date_string, &quot;(%d%d?) +(%a+) +(%d%d%d%d) [%-–] (%d%d?) +(%a+) +((%d%d%d%d)%a?)&quot;);
if tonumber(year2) &lt;= tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) or not is_valid_month_range_style(month, month2) then return false; end -- year2 no more than one year in the future; months same style
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
elseif mw.ustring.match(date_string, &quot;^%a+ +[1-9]%d?, +[1-9]%d%d%d [%-–] %a+ +[1-9]%d?, +[1-9]%d%d%d%a?$&quot;) then -- month initial month-day-year-range: month day, year – month day, year; uses spaced endash
month, day, year, month2, day2, anchor_year, year2=mw.ustring.match(date_string, &quot;(%a+) +(%d%d?), +(%d%d%d%d) [%-–] (%a+) +(%d%d?), +((%d%d%d%d)%a?)&quot;);
if tonumber(year2) &lt;= tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) or not is_valid_month_range_style(month, month2) then return false; end -- year2 no more than one year in the future; months same style
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
elseif mw.ustring.match(date_string, &quot;^%a+ +[1-9]%d%d%d[%-–]%d%d%a?$&quot;) then -- special case Winter/Summer year-year (YYYY-YY); year separated with unspaced endash
local century;
month, year, century, anchor_year, year2=mw.ustring.match(date_string, &quot;(%a+) +((%d%d)%d%d)[%-–]((%d%d)%a?)&quot;);
if 'Winter' ~= month and 'Summer' ~= month then return false end; -- 'month' can only be Winter or Summer
anchor_year=year..'–'..anchor_year; -- assemble anchor_year from both years
year2 = century..year2; -- add the century to year2 for comparisons
if 1 ~= tonumber(year2) - tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
month = get_season_number (month);
elseif mw.ustring.match(date_string, &quot;^%a+ +[1-9]%d%d%d[%-–][1-9]%d%d%d%a?$&quot;) then -- special case Winter/Summer year-year; year separated with unspaced endash
month, year, anchor_year, year2=mw.ustring.match(date_string, &quot;(%a+) +(%d%d%d%d)[%-–]((%d%d%d%d)%a?)&quot;);
if 'Winter' ~= month and 'Summer' ~= month then return false end; -- 'month' can only be Winter or Summer
anchor_year=year..'–'..anchor_year; -- assemble anchor_year from both years
if 1 ~= tonumber(year2) - tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
month = get_season_number (month); -- for metadata
elseif mw.ustring.match(date_string, &quot;^%a+ +[1-9]%d%d%d +[%-–] +%a+ +[1-9]%d%d%d%a?$&quot;) then -- month/season year - month/season year; separated by spaced endash
month, year, month2, anchor_year, year2=mw.ustring.match(date_string, &quot;(%a+) +(%d%d%d%d) +[%-–] +(%a+) +((%d%d%d%d)%a?)&quot;);
anchor_year=year..'–'..anchor_year; -- assemble anchor_year from both years
if tonumber(year) &gt;= tonumber(year2) then return false; end -- left to right, earlier to later, not the same
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
if 0 ~= get_month_number(month) and 0 ~= get_month_number(month2) and is_valid_month_range_style(month, month2) then -- both must be month year, same month style
month = get_month_number(month);
month2 = get_month_number(month2);
elseif 0 ~= get_season_number(month) and 0 ~= get_season_number(month2) then -- both must be or season year, not mixed
month = get_season_number(month);
month2 = get_season_number(month2);
else
return false;
end
elseif mw.ustring.match(date_string, &quot;^%a+[%-–]%a+ +[1-9]%d%d%d%a?$&quot;) then -- month/season range year; months separated by endash
month, month2, anchor_year, year=mw.ustring.match(date_string, &quot;(%a+)[%-–](%a+)%s*((%d%d%d%d)%a?)&quot;);
if (not is_valid_month_season_range(month, month2)) or (not is_valid_year(year)) then return false; end
if 0 ~= get_month_number(month) then -- determined to be a valid range so just check this one to know if month or season
month = get_month_number(month);
month2 = get_month_number(month2);
else
month = get_season_number(month);
month2 = get_season_number(month2);
end
year2=year;
elseif date_string:match(&quot;^%a+ +%d%d%d%d%a?$&quot;) then -- month/season year or proper-name year
month, anchor_year, year=date_string:match(&quot;(%a+)%s*((%d%d%d%d)%a?)&quot;);
if not is_valid_year(year) then return false; end
if not is_valid_month_or_season (month) and 0 == is_proper_name (month) then return false; end
if 0 ~= get_month_number(month) then -- determined to be a valid range so just check this one to know if month or season
month = get_month_number(month);
elseif 0 ~= get_season_number(month) then
month = get_season_number(month);
else
month = is_proper_name (month); -- must be proper name; not supported in COinS
end
elseif mw.ustring.match(date_string, &quot;^[1-9]%d%d%d?[%-–][1-9]%d%d%d?%a?$&quot;) then -- Year range: YYY-YYY or YYY-YYYY or YYYY–YYYY; separated by unspaced endash; 100-9999
year, anchor_year, year2=mw.ustring.match(date_string, &quot;(%d%d%d%d?)[%-–]((%d%d%d%d?)%a?)&quot;);
anchor_year=year..'–'..anchor_year; -- assemble anchor year from both years
if tonumber(year) &gt;= tonumber(year2) then return false; end -- left to right, earlier to later, not the same
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
elseif mw.ustring.match(date_string, &quot;^[1-9]%d%d%d[%-–]%d%d%a?$&quot;) then -- Year range: YYYY–YY; separated by unspaced endash
local century;
year, century, anchor_year, year2=mw.ustring.match(date_string, &quot;((%d%d)%d%d)[%-–]((%d%d)%a?)&quot;);
anchor_year=year..'–'..anchor_year; -- assemble anchor year from both years
if 13 &gt; tonumber(year2) then return false; end -- don't allow 2003-05 which might be May 2003
year2 = century..year2; -- add the century to year2 for comparisons
if tonumber(year) &gt;= tonumber(year2) then return false; end -- left to right, earlier to later, not the same
if not is_valid_year(year2) then return false; end -- no year farther in the future than next year
elseif date_string:match(&quot;^[1-9]%d%d%d?%a?$&quot;) then -- year; here accept either YYY or YYYY
anchor_year, year=date_string:match(&quot;((%d%d%d%d?)%a?)&quot;);
if false == is_valid_year(year) then
return false;
end
else
return false; -- date format not one of the MOS:DATE approved formats
end
if test_accessdate then -- test accessdate here because we have numerical date parts
if 0 ~= year and 0 ~= month and 0 ~= day and -- all parts of a single date required
0 == year2 and 0 == month2 and 0 == day2 then -- none of these; accessdate must not be a range
if not is_valid_accessdate (year..'-'..month..'-'..day) then
return false; -- return false when accessdate out of bounds
end
else
return false; -- return false when accessdate is a range of two dates
end
end
local result=true; -- check whole dates for validity; assume true because not all dates will go through this test
if 0 ~= year and 0 ~= month and 0 ~= day and 0 == year2 and 0 == month2 and 0 == day2 then -- YMD (simple whole date)
result=is_valid_date(year,month,day);
elseif 0 ~= year and 0 ~= month and 0 ~= day and 0 == year2 and 0 == month2 and 0 ~= day2 then -- YMD-d (day range)
result=is_valid_date(year,month,day);
result=result and is_valid_date(year,month,day2);
elseif 0 ~= year and 0 ~= month and 0 ~= day and 0 == year2 and 0 ~= month2 and 0 ~= day2 then -- YMD-md (day month range)
result=is_valid_date(year,month,day);
result=result and is_valid_date(year,month2,day2);
elseif 0 ~= year and 0 ~= month and 0 ~= day and 0 ~= year2 and 0 ~= month2 and 0 ~= day2 then -- YMD-ymd (day month year range)
result=is_valid_date(year,month,day);
result=result and is_valid_date(year2,month2,day2);
end
if false == result then return false; end
if nil ~= tCOinS_date then -- this table only passed into this function when testing |date= parameter values
make_COinS_date ({year=year, month=month, day=day, year2=year2, month2=month2, day2=day2}, tCOinS_date); -- make an ISO 8601 date string for COinS
end
return true, anchor_year; -- format is good and date string represents a real date
end
--[[--------------------------&lt; D A T E S &gt;--------------------------------------------------------------------
Cycle the date-holding parameters in passed table date_parameters_list through check_date() to check compliance with MOS:DATE. For all valid dates, check_date() returns
true. The |date= parameter test is unique, it is the only date holding parameter from which values for anchor_year (used in CITEREF identifiers) and COinS_date (used in
the COinS metadata) are derived. The |date= parameter is the only date-holding parameter that is allowed to contain the no-date keywords &quot;n.d.&quot; or &quot;nd&quot; (without quotes).
Unlike most error messages created in this module, only one error message is created by this function. Because all of the date holding parameters are processed serially,
a single error message is created as the dates are tested.
]]
local function dates(date_parameters_list, tCOinS_date)
local anchor_year; -- will return as nil if the date being tested is not |date=
local COinS_date; -- will return as nil if the date being tested is not |date=
local embargo_date; -- if embargo date is a good dmy, mdy, ymd date then holds original value else reset to 9999
local error_message = &quot;&quot;;
local good_date = false;
for k, v in pairs(date_parameters_list) do -- for each date-holding parameter in the list
if is_set(v) then -- if the parameter has a value
if v:match(&quot;^c%. [1-9]%d%d%d?%a?$&quot;) then -- special case for c. year or with or without CITEREF disambiguator - only |date= and |year=
local year = v:match(&quot;c%. ([1-9]%d%d%d?)%a?&quot;); -- get the year portion so it can be tested
if 'date'==k then
anchor_year, COinS_date = v:match(&quot;((c%. [1-9]%d%d%d?)%a?)&quot;); -- anchor year and COinS_date only from |date= parameter
good_date = is_valid_year(year);
elseif 'year'==k then
good_date = is_valid_year(year);
end
elseif 'date'==k then -- if the parameter is |date=
if v:match(&quot;^n%.d%.%a?$&quot;) then -- if |date=n.d. with or without a CITEREF disambiguator
good_date, anchor_year, COinS_date = true, v:match(&quot;((n%.d%.)%a?)&quot;); --&quot;n.d.&quot;; no error when date parameter is set to no date
elseif v:match(&quot;^nd%a?$&quot;) then -- if |date=nd with or without a CITEREF disambiguator
good_date, anchor_year, COinS_date = true, v:match(&quot;((nd)%a?)&quot;); --&quot;nd&quot;; no error when date parameter is set to no date
else
good_date, anchor_year, COinS_date = check_date (v, tCOinS_date); -- go test the date
end
elseif 'year'==k then -- if the parameter is |year= it should hold only a year value
if v:match(&quot;^[1-9]%d%d%d?%a?$&quot;) then -- if |year= 3 or 4 digits only with or without a CITEREF disambiguator
good_date, anchor_year, COinS_date = true, v:match(&quot;((%d+)%a?)&quot;);
end
elseif 'access-date'==k then -- if the parameter is |date=
good_date = check_date (v, nil, true); -- go test the date; nil is a placeholder; true is the test_accessdate flag
elseif 'embargo'==k then -- if the parameter is |embargo=
good_date = check_date (v); -- go test the date
if true == good_date then -- if the date is a valid date
good_date, embargo_date = is_valid_embargo_date (v); -- is |embargo= date a single dmy, mdy, or ymd formatted date? yes:returns embargo; no: returns 9999
end
else -- any other date-holding parameter
good_date = check_date (v); -- go test the date
end
if false==good_date then -- assemble one error message so we don't add the tracking category multiple times
if is_set(error_message) then -- once we've added the first portion of the error message ...
error_message=error_message .. &quot;, &quot;; -- ... add a comma space separator
end
error_message=error_message .. &quot;&amp;#124;&quot; .. k .. &quot;=&quot;; -- add the failed parameter
end
end
end
return anchor_year, embargo_date, error_message; -- and done
end
--[[--------------------------&lt; Y E A R _ D A T E _ C H E C K &gt;------------------------------------------------
Compare the value provided in |year= with the year value(s) provided in |date=. This function returns a numeric value:
0 - year value does not match the year value in date
1 - (default) year value matches the year value in date or one of the year values when date contains two years
2 - year value matches the year value in date when date is in the form YYYY-MM-DD and year is disambiguated (|year=YYYYx)
]]
local function year_date_check (year_string, date_string)
local year;
local date1;
local date2;
local result = 1; -- result of the test; assume that the test passes
year = year_string:match ('(%d%d%d%d?)');
if date_string:match ('%d%d%d%d%-%d%d%-%d%d') and year_string:match ('%d%d%d%d%a') then --special case where both date and year are required YYYY-MM-DD and YYYYx
date1 = date_string:match ('(%d%d%d%d)');
year = year_string:match ('(%d%d%d%d)');
if year ~= date1 then
result = 0; -- years don't match
else
result = 2; -- years match; but because disambiguated, don't add to maint cat
end
elseif date_string:match (&quot;%d%d%d%d?.-%d%d%d%d?&quot;) then -- any of the standard range formats of date with two three- or four-digit years
date1, date2 = date_string:match (&quot;(%d%d%d%d?).-(%d%d%d%d?)&quot;);
if year ~= date1 and year ~= date2 then
result = 0;
end
elseif mw.ustring.match(date_string, &quot;%d%d%d%d[%-–]%d%d&quot;) then -- YYYY-YY date ranges
local century;
date1, century, date2 = mw.ustring.match(date_string, &quot;((%d%d)%d%d)[%-–]+(%d%d)&quot;);
date2 = century..date2; -- convert YY to YYYY
if year ~= date1 and year ~= date2 then
result = 0;
end
elseif date_string:match (&quot;%d%d%d%d?&quot;) then -- any of the standard formats of date with one year
date1 = date_string:match (&quot;(%d%d%d%d?)&quot;);
if year ~= date1 then
result = 0;
end
else
result = 0; -- no recognizable year in date
end
return result;
end
--[[-------------------------&lt; R E F O R M A T T A B L E S &gt;------------------------------------------------
These table are used exclusively for reformatting dates
]]
local source_patterns = { -- this table holds patterns that match allowed date formats used to extract date components
['dmy'] = '^(%d%d?)%s+(%a+)%s+(%d%d%d%d)$',
['mdy'] = '^(%a+)%s+(%d%d?),%s+(%d%d%d%d)$',
['ymd'] = '^(%d%d%d%d)%-(%d%d)-(%d%d)$',
}
local short_formats = { -- this table holds format strings used by os.date() for short month names
['dmy'] = '%e %b %Y',
['mdy'] = '%b %e, %Y',
['ymd'] = '%F',
}
local long_formats = { -- this table holds format strings used by os.date() for long month names
['dmy'] = '%e %B %Y',
['mdy'] = '%B %e, %Y',
['ymd'] = '%F',
}
--[[-------------------------&lt; G E T _ D M Y _ D A T E _ P A R T S &gt;------------------------------------------
extracts year, month and day from DMY formatted date, places them in the source_date table, and returns.
]]
local function get_dmy_date_parts (date, source_date)
source_date.day, source_date.month, source_date.year = date:match (source_patterns['dmy']); -- get date components as strings
source_date.month = get_month_number (source_date.month); -- get month number
end
--[[-------------------------&lt; G E T _ M D Y _ D A T E _ P A R T S &gt;------------------------------------------
extracts year, month and day from MDY formatted date, places them in the source_date table, and returns.
]]
local function get_mdy_date_parts (date, source_date)
source_date.month, source_date.day, source_date.year = date:match (source_patterns['mdy']); -- get date components as strings
source_date.month = get_month_number (source_date.month); -- get month number
end
--[[-------------------------&lt; G E T _ Y M D _ D A T E _ P A R T S &gt;------------------------------------------
extracts year, month and day from YMD formatted date, places them in the source_date table, and returns.
]]
local function get_ymd_date_parts (date, source_date)
source_date.year, source_date.month, source_date.day = date:match (source_patterns['ymd']); -- get date components as strings
end
--[[-------------------------&lt; R E F O R M A T _ D A T E S &gt;--------------------------------------------------
Reformats existing dates into the format specified by format and short.
format is one of several keywords: dmy, dmy-all, mdy, mdy-all, ymd, ymd-all. The all version includes access- and
archive-dates; otherwise these dates are not reformatted
Date ranges, season dates, proper name dates are not currently supported.
For i18n: This code works only at en.wiki because os.date() doesn't support any languages other than English.
mw.getContentLanguage():formatDate() will work at non-English wikis only when the date format is yyyy-mm-dd. This is
the same issue that plagues is_valid_accessdate()
It is possible that a solution like that written for ht:Module:Citation/CS1/Date_validation date_name_xlate() could be applied to this problem
]]
local function reformat_dates (date_parameters_list, format, short)
local all = false; -- set to false to skip access- and archive-dates
local format_str;
local source_date = {};
if format:match('%a+%-all') then
format = format:match('(%a+)%-all'); -- extract the format
all = true; -- set to true to format access- and archive-dates
end
for param_name, param_val in pairs (date_parameters_list) do -- for each date-holding parameter in the list
if is_set (param_val) then -- if the parameter has a value
if not all and in_array (param_name, {'access-date', 'archive-date'}) then -- if access- or archive-date and format not xxx-all
param_val = ''; -- set to empty string so we don't process this date
end
for source, pattern in pairs (source_patterns) do
if param_val:match (pattern) then
if 'ymd' == source then
get_ymd_date_parts (param_val, source_date); -- get the date parts into the source_date table
elseif 'dmy' == source then
get_dmy_date_parts (param_val, source_date); -- get the date parts into the source_date table
elseif 'mdy' == source then
get_mdy_date_parts (param_val, source_date); -- get the date parts into the source_date table
end
if 'ymd' == format and 1582 &gt; tonumber(source_date.year) then -- ymd format dates not allowed before 1582
return false; -- abandon reformatting
end
if short then
format_str = short_formats[format];
else
format_str = long_formats[format];
end
-- convert date and save;
date_parameters_list[param_name] = mw.text.trim (os.date (format_str, os.time(source_date))); -- strip leading space when single digit day and %e is first format
end
end
end
end
return true; -- declare success and done
end
--[[--------------------------&lt; D A T E _ H Y P H E N _ T O _ D A S H &gt;----------------------------------------
Loops through the list of date-holding parameters and converts any hyphen to an ndash. Not called if the cs1|2
template has any date errors.
Modifies the date_parameters_list and returns true if hyphens are replaced, else returns false.
]]
local function date_hyphen_to_dash (date_parameters_list)
local result = false;
local n;
for param_name, param_val in pairs(date_parameters_list) do -- for each date-holding parameter in the list
if not param_val:match ('%d%d%d%d%-%d%d%-%d%d') then -- for those that are not ymd dates
param_val, n = param_val:gsub ('%-', '–'); -- replace any hyphen with ndash
if 0 ~= n then
date_parameters_list[param_name] = param_val; -- update the list
result = true;
end
end
end
return result; -- so we know if any hyphens were replaced
end
--[[-------------------------&lt; D A T E _ N A M E _ X L A T E &gt;------------------------------------------------
Attempts to translate English month names to local-language month names using names supplied by MediaWiki's
date parser function. This is simple name-for-name replacement and may not work for all languages.
]]
local function date_name_xlate (date_parameters_list)
local xlate;
local mode; -- long or short month names
local modified = false;
local date;
for param_name, param_val in pairs(date_parameters_list) do -- for each date-holding parameter in the list
if is_set(param_val) then -- if the parameter has a value
date = param_val;
for month in mw.ustring.gmatch (date, '%a+') do -- iterate through all dates in the date (single date or date range)
if cfg.date_names.en.long[month] then
mode = 'F'; -- English name is long so use long local name
elseif cfg.date_names.en.short[month] then
mode = 'M'; -- English name is short so use short local name
else
mode = nil; -- not an English month name; could be local language month name or an English season name
end
if mode then -- might be a season
xlate = mw.getContentLanguage():formatDate(mode, '1' .. month); -- translate the month name to this local language
date = mw.ustring.gsub (date, month, xlate); -- replace the English with the translation
date_parameters_list[param_name] = date; -- save the translated date
modified = true;
end
end
end
end
return modified;
end
--[[--------------------------&lt; S E T _ S E L E C T E D _ M O D U L E S &gt;--------------------------------------
Sets local imported functions table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr, utilities_page_ptr)
is_set = utilities_page_ptr.is_set; -- import functions from selected Module:Citation/CS1/Utilities module
in_array = utilities_page_ptr.in_array; -- import functions from selected Module:Citation/CS1/Utilities module
cfg = cfg_table_ptr; -- import tables from selected Module:Citation/CS1/Configuration
end
return { -- return exported functions
dates = dates,
year_date_check = year_date_check,
reformat_dates = reformat_dates,
date_hyphen_to_dash = date_hyphen_to_dash,
date_name_xlate = date_name_xlate,
set_selected_modules = set_selected_modules
}</text>
<sha1>b8y1188nwelzc8ed2egv39q5uiun27u</sha1>
</revision>
</page>
<page>
<title>Module:Citation/CS1/Identifiers</title>
<ns>828</ns>
<id>48812124</id>
<revision>
<id>808671501</id>
<parentid>808669323</parentid>
<timestamp>2017-11-04T11:07:23Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<comment>asin() calls isbn() so asin() must follow isbn();</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="46446">
local identifiers = {};
--[[--------------------------&lt; F O R W A R D D E C L A R A T I O N S &gt;--------------------------------------
]]
local is_set, in_array, set_error, select_one, add_maint_cat, substitute, make_wikilink; -- functions in Module:Citation/CS1/Utilities
local z; -- table of tables defined in Module:Citation/CS1/Utilities
local cfg; -- table of configuration tables that are defined in Module:Citation/CS1/Configuration
--============================&lt;&lt; H E L P E R F U N C T I O N S &gt;&gt;============================================
--[[--------------------------&lt; E X T E R N A L _ L I N K _ I D &gt;----------------------------------------------
Formats a wiki style external link
]]
local function external_link_id(options)
local url_string = options.id;
local ext_link;
if options.encode == true or options.encode == nil then
url_string = mw.uri.encode( url_string );
end
ext_link = mw.ustring.format ('[%s%s%s %s]', options.prefix, url_string, options.suffix or &quot;&quot;, mw.text.nowiki(options.id));
if is_set(options.access) then
ext_link = substitute (cfg.presentation['access-signal'], {ext_link, cfg.presentation[options.access]}); -- add the free-to-read / paywall lock
end
return table.concat ({
make_wikilink (options.link, options.label),
options.separator or '&amp;nbsp;',
ext_link
});
end
--[[--------------------------&lt; I N T E R N A L _ L I N K _ I D &gt;----------------------------------------------
Formats a wiki style internal link
]]
local function internal_link_id(options)
return table.concat (
{
make_wikilink (options.link, options.label),
options.separator or '&amp;nbsp;',
make_wikilink (
table.concat (
{
options.prefix,
options.id,
options.suffix or ''
}),
mw.text.nowiki (options.id)
);
});
end
--[[--------------------------&lt; I S _ E M B A R G O E D &gt;------------------------------------------------------
Determines if a PMC identifier's online version is embargoed. Compares the date in |embargo= against today's date. If embargo date is
in the future, returns the content of |embargo=; otherwise, returns and empty string because the embargo has expired or because
|embargo= was not set in this cite.
]]
local function is_embargoed (embargo)
if is_set (embargo) then
local lang = mw.getContentLanguage();
local good1, embargo_date, good2, todays_date;
good1, embargo_date = pcall( lang.formatDate, lang, 'U', embargo );
good2, todays_date = pcall( lang.formatDate, lang, 'U' );
if good1 and good2 then -- if embargo date and today's date are good dates
if tonumber( embargo_date ) &gt;= tonumber( todays_date ) then -- is embargo date is in the future?
return embargo; -- still embargoed
else
add_maint_cat ('embargo')
return ''; -- unset because embargo has expired
end
end
end
return ''; -- |embargo= not set return empty string
end
--[[--------------------------&lt; IS _ V A L I D _ I S X N &gt;-----------------------------------------------------
ISBN-10 and ISSN validator code calculates checksum across all isbn/issn digits including the check digit.
ISBN-13 is checked in isbn().
If the number is valid the result will be 0. Before calling this function, issbn/issn must be checked for length
and stripped of dashes, spaces and other non-isxn characters.
]]
local function is_valid_isxn (isxn_str, len)
local temp = 0;
isxn_str = { isxn_str:byte(1, len) }; -- make a table of byte values '0' → 0x30 .. '9' → 0x39, 'X' → 0x58
len = len+1; -- adjust to be a loop counter
for i, v in ipairs( isxn_str ) do -- loop through all of the bytes and calculate the checksum
if v == string.byte( &quot;X&quot; ) then -- if checkdigit is X (compares the byte value of 'X' which is 0x58)
temp = temp + 10*( len - i ); -- it represents 10 decimal
else
temp = temp + tonumber( string.char(v) )*(len-i);
end
end
return temp % 11 == 0; -- returns true if calculation result is zero
end
--[[--------------------------&lt; IS _ V A L I D _ I S X N _ 1 3 &gt;-----------------------------------------------
ISBN-13 and ISMN validator code calculates checksum across all 13 isbn/ismn digits including the check digit.
If the number is valid, the result will be 0. Before calling this function, isbn-13/ismn must be checked for length
and stripped of dashes, spaces and other non-isxn-13 characters.
]]
local function is_valid_isxn_13 (isxn_str)
local temp=0;
isxn_str = { isxn_str:byte(1, 13) }; -- make a table of byte values '0' → 0x30 .. '9' → 0x39
for i, v in ipairs( isxn_str ) do
temp = temp + (3 - 2*(i % 2)) * tonumber( string.char(v) ); -- multiply odd index digits by 1, even index digits by 3 and sum; includes check digit
end
return temp % 10 == 0; -- sum modulo 10 is zero when isbn-13/ismn is correct
end
--[[--------------------------&lt; N O R M A L I Z E _ L C C N &gt;--------------------------------------------------
lccn normalization (http://www.loc.gov/marc/lccn-namespace.html#normalization)
1. Remove all blanks.
2. If there is a forward slash (/) in the string, remove it, and remove all characters to the right of the forward slash.
3. If there is a hyphen in the string:
a. Remove it.
b. Inspect the substring following (to the right of) the (removed) hyphen. Then (and assuming that steps 1 and 2 have been carried out):
1. All these characters should be digits, and there should be six or less. (not done in this function)
2. If the length of the substring is less than 6, left-fill the substring with zeroes until the length is six.
Returns a normalized lccn for lccn() to validate. There is no error checking (step 3.b.1) performed in this function.
]]
local function normalize_lccn (lccn)
lccn = lccn:gsub (&quot;%s&quot;, &quot;&quot;); -- 1. strip whitespace
if nil ~= string.find (lccn,'/') then
lccn = lccn:match (&quot;(.-)/&quot;); -- 2. remove forward slash and all character to the right of it
end
local prefix
local suffix
prefix, suffix = lccn:match (&quot;(.+)%-(.+)&quot;); -- 3.a remove hyphen by splitting the string into prefix and suffix
if nil ~= suffix then -- if there was a hyphen
suffix=string.rep(&quot;0&quot;, 6-string.len (suffix)) .. suffix; -- 3.b.2 left fill the suffix with 0s if suffix length less than 6
lccn=prefix..suffix; -- reassemble the lccn
end
return lccn;
end
--============================&lt;&lt; I D E N T I F I E R F U N C T I O N S &gt;&gt;====================================
--[[--------------------------&lt; A R X I V &gt;--------------------------------------------------------------------
See: http://arxiv.org/help/arxiv_identifier
format and error check arXiv identifier. There are three valid forms of the identifier:
the first form, valid only between date codes 9108 and 0703 is:
arXiv:&lt;archive&gt;.&lt;class&gt;/&lt;date code&gt;&lt;number&gt;&lt;version&gt;
where:
&lt;archive&gt; is a string of alpha characters - may be hyphenated; no other punctuation
&lt;class&gt; is a string of alpha characters - may be hyphenated; no other punctuation
&lt;date code&gt; is four digits in the form YYMM where YY is the last two digits of the four-digit year and MM is the month number January = 01
first digit of YY for this form can only 9 and 0
&lt;number&gt; is a three-digit number
&lt;version&gt; is a 1 or more digit number preceded with a lowercase v; no spaces (undocumented)
the second form, valid from April 2007 through December 2014 is:
arXiv:&lt;date code&gt;.&lt;number&gt;&lt;version&gt;
where:
&lt;date code&gt; is four digits in the form YYMM where YY is the last two digits of the four-digit year and MM is the month number January = 01
&lt;number&gt; is a four-digit number
&lt;version&gt; is a 1 or more digit number preceded with a lowercase v; no spaces
the third form, valid from January 2015 is:
arXiv:&lt;date code&gt;.&lt;number&gt;&lt;version&gt;
where:
&lt;date code&gt; and &lt;version&gt; are as defined for 0704-1412
&lt;number&gt; is a five-digit number
]]
local function arxiv (id, class)
local handler = cfg.id_handlers['ARXIV'];
local year, month, version;
local err_cat = '';
local text;
if id:match(&quot;^%a[%a%.%-]+/[90]%d[01]%d%d%d%d$&quot;) or id:match(&quot;^%a[%a%.%-]+/[90]%d[01]%d%d%d%dv%d+$&quot;) then -- test for the 9108-0703 format w/ &amp; w/o version
year, month = id:match(&quot;^%a[%a%.%-]+/([90]%d)([01]%d)%d%d%d[v%d]*$&quot;);
year = tonumber(year);
month = tonumber(month);
if ((not (90 &lt; year or 8 &gt; year)) or (1 &gt; month or 12 &lt; month)) or -- if invalid year or invalid month
((91 == year and 7 &gt; month) or (7 == year and 3 &lt; month)) then -- if years ok, are starting and ending months ok?
err_cat = ' ' .. set_error( 'bad_arxiv' ); -- set error message
end
elseif id:match(&quot;^%d%d[01]%d%.%d%d%d%d$&quot;) or id:match(&quot;^%d%d[01]%d%.%d%d%d%dv%d+$&quot;) then -- test for the 0704-1412 w/ &amp; w/o version
year, month = id:match(&quot;^(%d%d)([01]%d)%.%d%d%d%d[v%d]*$&quot;);
year = tonumber(year);
month = tonumber(month);
if ((7 &gt; year) or (14 &lt; year) or (1 &gt; month or 12 &lt; month)) or -- is year invalid or is month invalid? (doesn't test for future years)
((7 == year) and (4 &gt; month)) then --or -- when year is 07, is month invalid (before April)?
err_cat = ' ' .. set_error( 'bad_arxiv' ); -- set error message
end
elseif id:match(&quot;^%d%d[01]%d%.%d%d%d%d%d$&quot;) or id:match(&quot;^%d%d[01]%d%.%d%d%d%d%dv%d+$&quot;) then -- test for the 1501- format w/ &amp; w/o version
year, month = id:match(&quot;^(%d%d)([01]%d)%.%d%d%d%d%d[v%d]*$&quot;);
year = tonumber(year);
month = tonumber(month);
if ((15 &gt; year) or (1 &gt; month or 12 &lt; month)) then -- is year invalid or is month invalid? (doesn't test for future years)
err_cat = ' ' .. set_error( 'bad_arxiv' ); -- set error message
end
else
err_cat = ' ' .. set_error( 'bad_arxiv' ); -- arXiv id doesn't match any format
end
text = external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode, access=handler.access}) .. err_cat;
if is_set (class) then
class = ' [[' .. '//arxiv.org/archive/' .. class .. ' ' .. class .. ']]'; -- external link within square brackets, not wikilink
else
class = ''; -- empty string for concatenation
end
return text .. class;
end
--[[--------------------------&lt; B I B C O D E &gt;--------------------------------------------------------------------
Validates (sort of) and formats a bibcode id.
Format for bibcodes is specified here: http://adsabs.harvard.edu/abs_doc/help_pages/data.html#bibcodes
But, this: 2015arXiv151206696F is apparently valid so apparently, the only things that really matter are length, 19 characters
and first four digits must be a year. This function makes these tests:
length must be 19 characters
characters in position
1–4 must be digits and must represent a year in the range of 1000 – next year
5 must be a letter
6 must be letter, ampersand, or dot (ampersand cannot directly precede a dot; &amp;. )
7–8 must be letter, digit, ampersand, or dot (ampersand cannot directly precede a dot; &amp;. )
9–18 must be letter, digit, or dot
19 must be a letter or dot
]]
local function bibcode (id, access)
local handler = cfg.id_handlers['BIBCODE'];
local err_type;
local year;
local text = external_link_id({link=handler.link, label=handler.label,
prefix=handler.prefix, id=id, separator=handler.separator, encode=handler.encode,
access=access});
if 19 ~= id:len() then
err_type = 'length';
else
year = id:match (&quot;^(%d%d%d%d)[%a][%a&amp;%.][%a&amp;%.%d][%a&amp;%.%d][%a%d%.]+[%a%.]$&quot;) --
if not year then -- if nil then no pattern match
err_type = 'value'; -- so value error
else
local next_year = tonumber(os.date ('%Y'))+1; -- get the current year as a number and add one for next year
year = tonumber (year); -- convert year portion of bibcode to a number
if (1000 &gt; year) or (year &gt; next_year) then
err_type = 'year'; -- year out of bounds
end
if id:find('&amp;%.') then
err_type = 'journal'; -- journal abbreviation must not have '&amp;.' (if it does its missing a letter)
end
end
end
if is_set (err_type) then -- if there was an error detected
text = text .. ' ' .. set_error( 'bad_bibcode', {err_type});
end
return text;
end
--[[--------------------------&lt; B I O R X I V &gt;-----------------------------------------------------------------
Format bioRxiv id and do simple error checking. BiorXiv ids are exactly 6 digits.
The bioRxiv id is the number following the last slash in the bioRxiv-issued DOI:
https://doi.org/10.1101/078733 -&gt; 078733
]]
local function biorxiv(id)
local handler = cfg.id_handlers['BIORXIV'];
local err_cat = ''; -- presume that bioRxiv id is valid
if nil == id:match(&quot;^%d%d%d%d%d%d$&quot;) then -- if bioRxiv id has anything but six digits
err_cat = ' ' .. set_error( 'bad_biorxiv'); -- set an error message
end
return external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=id,separator=handler.separator,
encode=handler.encode, access=handler.access}) .. err_cat;
end
--[[--------------------------&lt; C I T E S E E R X &gt;------------------------------------------------------------
CiteSeerX use their own notion of &quot;doi&quot; (not to be confused with the identifiers resolved via doi.org).
The description of the structure of this identifier can be found at Help_talk:Citation_Style_1/Archive_26#CiteSeerX_id_structure
]]
local function citeseerx (id)
local handler = cfg.id_handlers['CITESEERX'];
local matched;
local text = external_link_id({link=handler.link, label=handler.label,
prefix=handler.prefix, id=id, separator=handler.separator, encode=handler.encode,
access=handler.access});
matched = id:match (&quot;^10%.1%.1%.[1-9]%d?%d?%d?%.[1-9]%d?%d?%d?$&quot;);
if not matched then
text = text .. ' ' .. set_error( 'bad_citeseerx' );
end
return text;
end
--[[--------------------------&lt; D O I &gt;------------------------------------------------------------------------
Formats a DOI and checks for DOI errors.
DOI names contain two parts: prefix and suffix separated by a forward slash.
Prefix: directory indicator '10.' followed by a registrant code
Suffix: character string of any length chosen by the registrant
This function checks a DOI name for: prefix/suffix. If the doi name contains spaces or endashes, or, if it ends
with a period or a comma, this function will emit a bad_doi error message.
DOI names are case-insensitive and can incorporate any printable Unicode characters so the test for spaces, endash,
and terminal punctuation may not be technically correct but it appears, that in practice these characters are rarely
if ever used in doi names.
]]
local function doi(id, inactive, access)
local cat = &quot;&quot;
local handler = cfg.id_handlers['DOI'];
local text;
if is_set(inactive) then
local inactive_year = inactive:match(&quot;%d%d%d%d&quot;) or ''; -- try to get the year portion from the inactive date
if is_set(inactive_year) then
table.insert( z.error_categories, &quot;Pages with DOIs inactive since &quot; .. inactive_year );
else
table.insert( z.error_categories, &quot;Pages with inactive DOIs&quot; ); -- when inactive doesn't contain a recognizable year
end
inactive = &quot; (&quot; .. cfg.messages['inactive'] .. &quot; &quot; .. inactive .. &quot;)&quot;
end
text = external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode, access=access}) .. (inactive or '')
if nil == id:match(&quot;^10%.[^%s–]-/[^%s–]-[^%.,]$&quot;) then -- doi must begin with '10.', must contain a fwd slash, must not contain spaces or endashes, and must not end with period or comma
cat = ' ' .. set_error( 'bad_doi' );
end
return text .. cat
end
--[[--------------------------&lt; H D L &gt;------------------------------------------------------------------------
Formats an HDL with minor error checking.
HDL names contain two parts: prefix and suffix separated by a forward slash.
Prefix: character string using any character in the UCS-2 character set except '/'
Suffix: character string of any length using any character in the UCS-2 character set chosen by the registrant
This function checks a HDL name for: prefix/suffix. If the HDL name contains spaces, endashes, or, if it ends
with a period or a comma, this function will emit a bad_hdl error message.
HDL names are case-insensitive and can incorporate any printable Unicode characters so the test for endashes and
terminal punctuation may not be technically correct but it appears, that in practice these characters are rarely
if ever used in HDLs.
]]
local function hdl(id, access)
local handler = cfg.id_handlers['HDL'];
local text = external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode, access=access})
if nil == id:match(&quot;^[^%s–]-/[^%s–]-[^%.,]$&quot;) then -- hdl must contain a fwd slash, must not contain spaces, endashes, and must not end with period or comma
text = text .. ' ' .. set_error( 'bad_hdl' );
end
return text;
end
--[[--------------------------&lt; I S B N &gt;----------------------------------------------------------------------
Determines whether an ISBN string is valid
]]
local function isbn( isbn_str )
if nil ~= isbn_str:match(&quot;[^%s-0-9X]&quot;) then
return false, 'invalid character'; -- fail if isbn_str contains anything but digits, hyphens, or the uppercase X
end
isbn_str = isbn_str:gsub( &quot;-&quot;, &quot;&quot; ):gsub( &quot; &quot;, &quot;&quot; ); -- remove hyphens and spaces
local len = isbn_str:len();
if len ~= 10 and len ~= 13 then
return false, 'length'; -- fail if incorrect length
end
if len == 10 then
if isbn_str:match( &quot;^%d*X?$&quot; ) == nil then -- fail if isbn_str has 'X' anywhere but last position
return false, 'invalid form';
end
return is_valid_isxn(isbn_str, 10), 'checksum';
else
if isbn_str:match( &quot;^%d+$&quot; ) == nil then
return false, 'invalid character'; -- fail if isbn13 is not all digits
end
if isbn_str:match( &quot;^97[89]%d*$&quot; ) == nil then
return false, 'invalid prefix'; -- fail when isbn13 does not begin with 978 or 979
end
return is_valid_isxn_13 (isbn_str), 'checksum';
end
end
--[[--------------------------&lt; A M A Z O N &gt;------------------------------------------------------------------
Formats a link to Amazon. Do simple error checking: asin must be mix of 10 numeric or uppercase alpha
characters. If a mix, first character must be uppercase alpha; if all numeric, asins must be 10-digit
isbn. If 10-digit isbn, add a maintenance category so a bot or awb script can replace |asin= with |isbn=.
Error message if not 10 characters, if not isbn10, if mixed and first character is a digit.
This function is positioned here because it calls isbn()
]]
local function asin(id, domain)
local err_cat = &quot;&quot;
if not id:match(&quot;^[%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u][%d%u]$&quot;) then
err_cat = ' ' .. set_error ('bad_asin'); -- asin is not a mix of 10 uppercase alpha and numeric characters
else
if id:match(&quot;^%d%d%d%d%d%d%d%d%d[%dX]$&quot;) then -- if 10-digit numeric (or 9 digits with terminal X)
if isbn( id ) then -- see if asin value is isbn10
add_maint_cat ('ASIN');
elseif not is_set (err_cat) then
err_cat = ' ' .. set_error ('bad_asin'); -- asin is not isbn10
end
elseif not id:match(&quot;^%u[%d%u]+$&quot;) then
err_cat = ' ' .. set_error ('bad_asin'); -- asin doesn't begin with uppercase alpha
end
end
if not is_set(domain) then
domain = &quot;com&quot;;
elseif in_array (domain, {'jp', 'uk'}) then -- Japan, United Kingdom
domain = &quot;co.&quot; .. domain;
elseif in_array (domain, {'au', 'br', 'mx'}) then -- Australia, Brazil, Mexico
domain = &quot;com.&quot; .. domain;
end
local handler = cfg.id_handlers['ASIN'];
return external_link_id({link=handler.link,
label=handler.label, prefix=handler.prefix .. domain .. &quot;/dp/&quot;,
id=id, encode=handler.encode, separator = handler.separator}) .. err_cat;
end
--[[--------------------------&lt; I S M N &gt;----------------------------------------------------------------------
Determines whether an ISMN string is valid. Similar to isbn-13, ismn is 13 digits begining 979-0-... and uses the
same check digit calculations. See http://www.ismn-international.org/download/Web_ISMN_Users_Manual_2008-6.pdf
section 2, pages 9–12.
]]
local function ismn (id)
local handler = cfg.id_handlers['ISMN'];
local text;
local valid_ismn = true;
local id_copy;
id_copy = id; -- save a copy because this testing is destructive
id=id:gsub( &quot;[%s-–]&quot;, &quot;&quot; ); -- strip spaces, hyphens, and endashes from the ismn
if 13 ~= id:len() or id:match( &quot;^9790%d*$&quot; ) == nil then -- ismn must be 13 digits and begin 9790
valid_ismn = false;
else
valid_ismn=is_valid_isxn_13 (id); -- validate ismn
end
-- text = internal_link_id({link = handler.link, label = handler.label, -- use this (or external version) when there is some place to link to
-- prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode})
text = table.concat (
{
make_wikilink (handler.link, handler.label),
handler.separator,
id_copy
}); -- because no place to link to yet
if false == valid_ismn then
text = text .. ' ' .. set_error( 'bad_ismn' ) -- add an error message if the ismn is invalid
end
return text;
end
--[[--------------------------&lt; I S S N &gt;----------------------------------------------------------------------
Validate and format an issn. This code fixes the case where an editor has included an ISSN in the citation but
has separated the two groups of four digits with a space. When that condition occurred, the resulting link looked
like this:
|issn=0819 4327 gives: [http://www.worldcat.org/issn/0819 4327 0819 4327] -- can't have spaces in an external link
This code now prevents that by inserting a hyphen at the issn midpoint. It also validates the issn for length
and makes sure that the checkdigit agrees with the calculated value. Incorrect length (8 digits), characters
other than 0-9 and X, or checkdigit / calculated value mismatch will all cause a check issn error message. The
issn is always displayed with a hyphen, even if the issn was given as a single group of 8 digits.
]]
local function issn(id, e)
local issn_copy = id; -- save a copy of unadulterated issn; use this version for display if issn does not validate
local handler;
local text;
local valid_issn = true;
if e then
handler = cfg.id_handlers['EISSN'];
else
handler = cfg.id_handlers['ISSN'];
end
id=id:gsub( &quot;[%s-–]&quot;, &quot;&quot; ); -- strip spaces, hyphens, and endashes from the issn
if 8 ~= id:len() or nil == id:match( &quot;^%d*X?$&quot; ) then -- validate the issn: 8 digits long, containing only 0-9 or X in the last position
valid_issn=false; -- wrong length or improper character
else
valid_issn=is_valid_isxn(id, 8); -- validate issn
end
if true == valid_issn then
id = string.sub( id, 1, 4 ) .. &quot;-&quot; .. string.sub( id, 5 ); -- if valid, display correctly formatted version
else
id = issn_copy; -- if not valid, use the show the invalid issn with error message
end
text = external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode})
if false == valid_issn then
text = text .. ' ' .. set_error( 'bad_issn', e and 'e' or '' ) -- add an error message if the issn is invalid
end
return text
end
--[[--------------------------&lt; J F M &gt;-----------------------------------------------------------------------
A numerical identifier in the form nn.nnnn.nn
]]
local function jfm (id)
local handler = cfg.id_handlers['JFM'];
local id_num;
local err_cat = '';
id_num = id:match ('^[Jj][Ff][Mm](.*)$'); -- identifier with jfm prefix; extract identifier
if is_set (id_num) then
add_maint_cat ('jfm_format');
else -- plain number without mr prefix
id_num = id; -- if here id does not have prefix
end
if id_num and id_num:match('^%d%d%.%d%d%d%d%.%d%d$') then
id = id_num; -- jfm matches pattern
else
err_cat = ' ' .. set_error( 'bad_jfm' ); -- set an error message
end
return external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode}) .. err_cat;
end
--[[--------------------------&lt; L C C N &gt;----------------------------------------------------------------------
Format LCCN link and do simple error checking. LCCN is a character string 8-12 characters long. The length of
the LCCN dictates the character type of the first 1-3 characters; the rightmost eight are always digits.
http://info-uri.info/registry/OAIHandler?verb=GetRecord&amp;metadataPrefix=reg&amp;identifier=info:lccn/
length = 8 then all digits
length = 9 then lccn[1] is lower case alpha
length = 10 then lccn[1] and lccn[2] are both lower case alpha or both digits
length = 11 then lccn[1] is lower case alpha, lccn[2] and lccn[3] are both lower case alpha or both digits
length = 12 then lccn[1] and lccn[2] are both lower case alpha
]]
local function lccn(lccn)
local handler = cfg.id_handlers['LCCN'];
local err_cat = ''; -- presume that LCCN is valid
local id = lccn; -- local copy of the lccn
id = normalize_lccn (id); -- get canonical form (no whitespace, hyphens, forward slashes)
local len = id:len(); -- get the length of the lccn
if 8 == len then
if id:match(&quot;[^%d]&quot;) then -- if LCCN has anything but digits (nil if only digits)
err_cat = ' ' .. set_error( 'bad_lccn' ); -- set an error message
end
elseif 9 == len then -- LCCN should be adddddddd
if nil == id:match(&quot;%l%d%d%d%d%d%d%d%d&quot;) then -- does it match our pattern?
err_cat = ' ' .. set_error( 'bad_lccn' ); -- set an error message
end
elseif 10 == len then -- LCCN should be aadddddddd or dddddddddd
if id:match(&quot;[^%d]&quot;) then -- if LCCN has anything but digits (nil if only digits) ...
if nil == id:match(&quot;^%l%l%d%d%d%d%d%d%d%d&quot;) then -- ... see if it matches our pattern
err_cat = ' ' .. set_error( 'bad_lccn' ); -- no match, set an error message
end
end
elseif 11 == len then -- LCCN should be aaadddddddd or adddddddddd
if not (id:match(&quot;^%l%l%l%d%d%d%d%d%d%d%d&quot;) or id:match(&quot;^%l%d%d%d%d%d%d%d%d%d%d&quot;)) then -- see if it matches one of our patterns
err_cat = ' ' .. set_error( 'bad_lccn' ); -- no match, set an error message
end
elseif 12 == len then -- LCCN should be aadddddddddd
if not id:match(&quot;^%l%l%d%d%d%d%d%d%d%d%d%d&quot;) then -- see if it matches our pattern
err_cat = ' ' .. set_error( 'bad_lccn' ); -- no match, set an error message
end
else
err_cat = ' ' .. set_error( 'bad_lccn' ); -- wrong length, set an error message
end
if not is_set (err_cat) and nil ~= lccn:find ('%s') then
err_cat = ' ' .. set_error( 'bad_lccn' ); -- lccn contains a space, set an error message
end
return external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=lccn,separator=handler.separator, encode=handler.encode}) .. err_cat;
end
--[[--------------------------&lt; M R &gt;--------------------------------------------------------------------------
A seven digit number; if not seven digits, zero-fill leading digits to make seven digits.
]]
local function mr (id)
local handler = cfg.id_handlers['MR'];
local id_num;
local id_len;
local err_cat = '';
id_num = id:match ('^[Mm][Rr](%d+)$'); -- identifier with mr prefix
if is_set (id_num) then
add_maint_cat ('mr_format');
else -- plain number without mr prefix
id_num = id:match ('^%d+$'); -- if here id is all digits
end
id_len = id_num and id_num:len() or 0;
if (7 &gt;= id_len) and (0 ~= id_len) then
id = string.rep ('0', 7-id_len ) .. id_num; -- zero-fill leading digits
else
err_cat = ' ' .. set_error( 'bad_mr' ); -- set an error message
end
return external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode}) .. err_cat;
end
--[[--------------------------&lt; O C L C &gt;----------------------------------------------------------------------
Validate and format an oclc id. https://www.oclc.org/batchload/controlnumber.en.html
]]
local function oclc (id)
local handler = cfg.id_handlers['OCLC'];
local number;
local err_msg = ''; -- empty string for concatenation
if id:match('^ocm%d%d%d%d%d%d%d%d$') then -- ocm prefix and 8 digits; 001 field (12 characters)
number = id:match('ocm(%d+)'); -- get the number
elseif id:match('^ocn%d%d%d%d%d%d%d%d%d$') then -- ocn prefix and 9 digits; 001 field (12 characters)
number = id:match('ocn(%d+)'); -- get the number
elseif id:match('^on%d%d%d%d%d%d%d%d%d%d+$') then -- on prefix and 10 or more digits; 001 field (12 characters)
number = id:match('^on(%d%d%d%d%d%d%d%d%d%d+)$'); -- get the number
elseif id:match('^%(OCoLC%)[1-9]%d*$') then -- (OCoLC) prefix and variable number digits; no leading zeros; 035 field
number = id:match('%(OCoLC%)([1-9]%d*)'); -- get the number
if 9 &lt; number:len() then
number = nil; -- contrain to 1 to 9 digits; change this when oclc issues 10-digit numbers
end
elseif id:match('^%d+$') then -- no prefix
number = id; -- get the number
if 10 &lt; number:len() then
number = nil; -- contrain to 1 to 10 digits; change this when oclc issues 11-digit numbers
end
end
if number then -- proper format
id = number; -- exclude prefix, if any, from external link
else
err_msg = ' ' .. set_error( 'bad_oclc' ) -- add an error message if the id is malformed
end
local text = external_link_id({link=handler.link, label=handler.label,
prefix=handler.prefix, id=id, separator=handler.separator, encode=handler.encode}) .. err_msg;
return text;
end
--[[--------------------------&lt; O P E N L I B R A R Y &gt;--------------------------------------------------------
Formats an OpenLibrary link, and checks for associated errors.
]]
local function openlibrary(id, access)
local code;
local handler = cfg.id_handlers['OL'];
local ident;
ident, code = id:gsub('^OL', ''):match(&quot;^(%d+([AMW]))$&quot;); -- optional OL prefix followed immediately by digits followed by 'A', 'M', or 'W'; remove OL prefix
if not is_set (ident) then -- if malformed return an error
return external_link_id({link=handler.link, label=handler.label,
prefix=handler.prefix .. 'OL',
id=id, separator=handler.separator, encode = handler.encode,
access = access}) .. ' ' .. set_error( 'bad_ol' );
end
id = ident; -- use ident without the optional OL prefix (it has been removed)
if ( code == &quot;A&quot; ) then
return external_link_id({link=handler.link, label=handler.label,
prefix=handler.prefix .. 'authors/OL',
id=id, separator=handler.separator, encode = handler.encode,
access = access})
end
if ( code == &quot;M&quot; ) then
return external_link_id({link=handler.link, label=handler.label,
prefix=handler.prefix .. 'books/OL',
id=id, separator=handler.separator, encode = handler.encode,
access = access})
end
if ( code == &quot;W&quot; ) then
return external_link_id({link=handler.link, label=handler.label,
prefix=handler.prefix .. 'works/OL',
id=id, separator=handler.separator, encode = handler.encode,
access = access})
end
end
--[[--------------------------&lt; P M C &gt;------------------------------------------------------------------------
Format a PMC, do simple error checking, and check for embargoed articles.
The embargo parameter takes a date for a value. If the embargo date is in the future the PMC identifier will not
be linked to the article. If the embargo date is today or in the past, or if it is empty or omitted, then the
PMC identifier is linked to the article through the link at cfg.id_handlers['PMC'].prefix.
PMC embargo date testing is done in function is_embargoed () which is called earlier because when the citation
has |pmc=&lt;value&gt; but does not have a |url= then |title= is linked with the PMC link. Function is_embargoed ()
returns the embargo date if the PMC article is still embargoed, otherwise it returns an empty string.
PMCs are sequential numbers beginning at 1 and counting up. This code checks the PMC to see that it contains only digits and is less
than test_limit; the value in local variable test_limit will need to be updated periodically as more PMCs are issued.
]]
local function pmc(id, embargo)
local test_limit = 6000000; -- update this value as PMCs approach
local handler = cfg.id_handlers['PMC'];
local err_cat = ''; -- presume that PMC is valid
local id_num;
local text;
id_num = id:match ('^[Pp][Mm][Cc](%d+)$'); -- identifier with pmc prefix
if is_set (id_num) then
add_maint_cat ('pmc_format');
else -- plain number without pmc prefix
id_num = id:match ('^%d+$'); -- if here id is all digits
end
if is_set (id_num) then -- id_num has a value so test it
id_num = tonumber(id_num); -- convert id_num to a number for range testing
if 1 &gt; id_num or test_limit &lt; id_num then -- if PMC is outside test limit boundaries
err_cat = ' ' .. set_error( 'bad_pmc' ); -- set an error message
else
id = tostring (id_num); -- make sure id is a string
end
else -- when id format incorrect
err_cat = ' ' .. set_error( 'bad_pmc' ); -- set an error message
end
if is_set (embargo) then -- is PMC is still embargoed?
text = table.concat ( -- still embargoed so no external link
{
make_wikilink (handler.link, handler.label),
handler.separator,
id,
err_cat
});
else
text = external_link_id({link = handler.link, label = handler.label, -- no embargo date or embargo has expired, ok to link to article
prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode, access=handler.access}) .. err_cat;
end
return text;
end
--[[--------------------------&lt; P M I D &gt;----------------------------------------------------------------------
Format PMID and do simple error checking. PMIDs are sequential numbers beginning at 1 and counting up. This
code checks the PMID to see that it contains only digits and is less than test_limit; the value in local variable
test_limit will need to be updated periodically as more PMIDs are issued.
]]
local function pmid(id)
local test_limit = 32000000; -- update this value as PMIDs approach
local handler = cfg.id_handlers['PMID'];
local err_cat = ''; -- presume that PMID is valid
if id:match(&quot;[^%d]&quot;) then -- if PMID has anything but digits
err_cat = ' ' .. set_error( 'bad_pmid' ); -- set an error message
else -- PMID is only digits
local id_num = tonumber(id); -- convert id to a number for range testing
if 1 &gt; id_num or test_limit &lt; id_num then -- if PMID is outside test limit boundaries
err_cat = ' ' .. set_error( 'bad_pmid' ); -- set an error message
end
end
return external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode}) .. err_cat;
end
--[[--------------------------&lt; S S R N &gt;----------------------------------------------------------------------
Format an ssrn, do simple error checking
SSRNs are sequential numbers beginning at 100? and counting up. This code checks the ssrn to see that it is
only digits and is greater than 99 and less than test_limit; the value in local variable test_limit will need
to be updated periodically as more SSRNs are issued.
]]
local function ssrn (id)
local test_limit = 3500000; -- update this value as SSRNs approach
local handler = cfg.id_handlers['SSRN'];
local err_cat = ''; -- presume that SSRN is valid
local id_num;
local text;
id_num = id:match ('^%d+$'); -- id must be all digits
if is_set (id_num) then -- id_num has a value so test it
id_num = tonumber(id_num); -- convert id_num to a number for range testing
if 100 &gt; id_num or test_limit &lt; id_num then -- if SSRN is outside test limit boundaries
err_cat = ' ' .. set_error( 'bad_ssrn' ); -- set an error message
end
else -- when id format incorrect
err_cat = ' ' .. set_error( 'bad_ssrn' ); -- set an error message
end
text = external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode, access=handler.access}) .. err_cat;
return text;
end
--[[--------------------------&lt; U S E N E T _ I D &gt;------------------------------------------------------------
Validate and format a usenet message id. Simple error checking, looks for 'id-left@id-right' not enclosed in
'&lt;' and/or '&gt;' angle brackets.
]]
local function usenet_id (id)
local handler = cfg.id_handlers['USENETID'];
local text = external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode})
if not id:match('^.+@.+$') or not id:match('^[^&lt;].*[^&gt;]$')then -- doesn't have '@' or has one or first or last character is '&lt; or '&gt;'
text = text .. ' ' .. set_error( 'bad_usenet_id' ) -- add an error message if the message id is invalid
end
return text
end
--[[--------------------------&lt; Z B L &gt;-----------------------------------------------------------------------
A numerical identifier in the form nnnn.nnnnn - leading zeros in the first quartet optional
]]
local function zbl (id)
local handler = cfg.id_handlers['ZBL'];
local id_num;
local err_cat = '';
id_num = id:match ('^[Zz][Bb][Ll](.*)$'); -- identifier with zbl prefix; extract identifier
if is_set (id_num) then
add_maint_cat ('zbl_format');
else -- plain number without zbl prefix
id_num = id; -- if here id does not have prefix
end
if id_num:match('^%d?%d?%d?%d%.%d%d%d%d%d$') then
id = id_num; -- id matches pattern
else
err_cat = ' ' .. set_error( 'bad_zbl' ); -- set an error message
end
return external_link_id({link = handler.link, label = handler.label,
prefix=handler.prefix,id=id,separator=handler.separator, encode=handler.encode}) .. err_cat;
end
--============================&lt;&lt; I N T E R F A C E F U N C T I O N S &gt;&gt;==========================================
--[[--------------------------&lt; B U I L D _ I D _ L I S T &gt;--------------------------------------------------------
Takes a table of IDs created by extract_ids() and turns it into a table of formatted ID outputs.
inputs:
id_list – table of identifiers built by extract_ids()
options – table of various template parameter values used to modify some manually handled identifiers
]]
local function build_id_list( id_list, options )
local new_list, handler = {};
local function fallback(k) return { __index = function(t,i) return cfg.id_handlers[k][i] end } end;
for k, v in pairs( id_list ) do -- k is uc identifier name as index to cfg.id_handlers; e.g. cfg.id_handlers['ISBN'], v is a table
-- fallback to read-only cfg
handler = setmetatable( { ['id'] = v, ['access'] = options.IdAccessLevels[k] }, fallback(k) );
if handler.mode == 'external' then
table.insert( new_list, {handler.label, external_link_id( handler ) } );
elseif handler.mode == 'internal' then
table.insert( new_list, {handler.label, internal_link_id( handler ) } );
elseif handler.mode ~= 'manual' then
error( cfg.messages['unknown_ID_mode'] );
elseif k == 'ARXIV' then
table.insert( new_list, {handler.label, arxiv( v, options.Class ) } );
elseif k == 'ASIN' then
table.insert( new_list, {handler.label, asin( v, options.ASINTLD ) } );
elseif k == 'BIBCODE' then
table.insert( new_list, {handler.label, bibcode( v, handler.access ) } );
elseif k == 'BIORXIV' then
table.insert( new_list, {handler.label, biorxiv( v ) } );
elseif k == 'CITESEERX' then
table.insert( new_list, {handler.label, citeseerx( v ) } );
elseif k == 'DOI' then
table.insert( new_list, {handler.label, doi( v, options.DoiBroken, handler.access ) } );
elseif k == 'EISSN' then
table.insert( new_list, {handler.label, issn( v, true ) } ); -- true distinguishes eissn from issn
elseif k == 'HDL' then
table.insert( new_list, {handler.label, hdl( v, handler.access ) } );
elseif k == 'ISBN' then
local ISBN = internal_link_id( handler );
local check;
local err_type = '';
check, err_type = isbn( v );
if not check then
if is_set(options.IgnoreISBN) then -- ISBN is invalid; if |ignore-isbn-error= set
add_maint_cat ('ignore_isbn_err'); -- ad a maint category
else
ISBN = ISBN .. set_error( 'bad_isbn', {err_type}, false, &quot; &quot;, &quot;&quot; ); -- else display an error message
end
elseif is_set(options.IgnoreISBN) then -- ISBN is OK; if |ignore-isbn-error= set
add_maint_cat ('ignore_isbn_err'); -- because |ignore-isbn-error= unnecessary
end
table.insert( new_list, {handler.label, ISBN } );
elseif k == 'ISMN' then
table.insert( new_list, {handler.label, ismn( v ) } );
elseif k == 'ISSN' then
table.insert( new_list, {handler.label, issn( v ) } );
elseif k == 'JFM' then
table.insert( new_list, {handler.label, jfm( v ) } );
elseif k == 'LCCN' then
table.insert( new_list, {handler.label, lccn( v ) } );
elseif k == 'MR' then
table.insert( new_list, {handler.label, mr( v ) } );
elseif k == 'OCLC' then
table.insert( new_list, {handler.label, oclc( v ) } );
elseif k == 'OL' or k == 'OLA' then
table.insert( new_list, {handler.label, openlibrary( v, handler.access ) } );
elseif k == 'PMC' then
table.insert( new_list, {handler.label, pmc( v, options.Embargo ) } );
elseif k == 'PMID' then
table.insert( new_list, {handler.label, pmid( v ) } );
elseif k == 'SSRN' then
table.insert( new_list, {handler.label, ssrn( v ) } );
elseif k == 'USENETID' then
table.insert( new_list, {handler.label, usenet_id( v ) } );
elseif k == 'ZBL' then
table.insert( new_list, {handler.label, zbl( v ) } );
else
error( cfg.messages['unknown_manual_ID'] );
end
end
local function comp( a, b ) -- used in following table.sort()
return a[1]:lower() &lt; b[1]:lower();
end
table.sort( new_list, comp );
for k, v in ipairs( new_list ) do
new_list[k] = v[2];
end
return new_list;
end
--[[--------------------------&lt; E X T R A C T _ I D S &gt;------------------------------------------------------------
Populates ID table from arguments using configuration settings. Loops through cfg.id_handlers and searches args for
any of the parameters listed in each cfg.id_handlers['...'].parameters. If found, adds the parameter and value to
the identifier list. Emits redundant error message is more than one alias exists in args
]]
local function extract_ids( args )
local id_list = {}; -- list of identifiers found in args
for k, v in pairs( cfg.id_handlers ) do -- k is uc identifier name as index to cfg.id_handlers; e.g. cfg.id_handlers['ISBN'], v is a table
v = select_one( args, v.parameters, 'redundant_parameters' ); -- v.parameters is a table of aliases for k; here we pick one from args if present
if is_set(v) then id_list[k] = v; end -- if found in args, add identifier to our list
end
return id_list;
end
--[[--------------------------&lt; E X T R A C T _ I D _ A C C E S S _ L E V E L S &gt;--------------------------------------
Fetches custom id access levels from arguments using configuration settings.
Parameters which have a predefined access level (e.g. arxiv) do not use this
function as they are directly rendered as free without using an additional parameter.
]]
local function extract_id_access_levels( args, id_list )
local id_accesses_list = {};
for k, v in pairs( cfg.id_handlers ) do
local access_param = v.custom_access;
local k_lower = string.lower(k);
if is_set(access_param) then
local access_level = args[access_param];
if is_set(access_level) then
if not in_array (access_level:lower(), cfg.keywords['id-access']) then
table.insert( z.message_tail, { set_error( 'invalid_param_val', {access_param, access_level}, true ) } );
access_level = nil;
end
if not is_set(id_list[k]) then
table.insert( z.message_tail, { set_error( 'param_access_requires_param', {k_lower}, true ) } );
end
if is_set(access_level) then
access_level = access_level:lower();
end
id_accesses_list[k] = access_level;
end
end
end
return id_accesses_list;
end
--[[--------------------------&lt; S E T _ S E L E C T E D _ M O D U L E S &gt;--------------------------------------
Sets local cfg table and imported functions table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr, utilities_page_ptr)
cfg = cfg_table_ptr;
is_set = utilities_page_ptr.is_set; -- import functions from select Module:Citation/CS1/Utilities module
in_array = utilities_page_ptr.in_array;
set_error = utilities_page_ptr.set_error;
select_one = utilities_page_ptr.select_one;
add_maint_cat = utilities_page_ptr.add_maint_cat;
substitute = utilities_page_ptr.substitute;
make_wikilink = utilities_page_ptr.make_wikilink;
z = utilities_page_ptr.z; -- table of tables in Module:Citation/CS1/Utilities
end
return {
build_id_list = build_id_list,
extract_ids = extract_ids,
extract_id_access_levels = extract_id_access_levels,
is_embargoed = is_embargoed;
set_selected_modules = set_selected_modules;
}</text>
<sha1>kg8ng3yyy7h87bxt8aj5samd9gdseeq</sha1>
</revision>
</page>
<page>
<title>Module:Citation/CS1/Utilities</title>
<ns>828</ns>
<id>48808487</id>
<revision>
<id>808669316</id>
<parentid>729837287</parentid>
<timestamp>2017-11-04T10:41:15Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<comment>synch from sandbox;</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="13878">local u = {}
local z = {
error_categories = {}; -- for categorizing citations that contain errors
error_ids = {};
message_tail = {};
maintenance_cats = {}; -- for categorizing citations that aren't erroneous per se, but could use a little work
properties_cats = {}; -- for categorizing citations based on certain properties, language of source for instance
};
--[[--------------------------&lt; F O R W A R D D E C L A R A T I O N S &gt;--------------------------------------
]]
local cfg; -- table of tables imported from selected Module:Citation/CS1/Configuration
--[[--------------------------&lt; I S _ S E T &gt;------------------------------------------------------------------
Returns true if argument is set; false otherwise. Argument is 'set' when it exists (not nil) or when it is not an empty string.
]]
local function is_set( var )
return not (var == nil or var == '');
end
--[[--------------------------&lt; I N _ A R R A Y &gt;--------------------------------------------------------------
Whether needle is in haystack
]]
local function in_array( needle, haystack )
if needle == nil then
return false;
end
for n,v in ipairs( haystack ) do
if v == needle then
return n;
end
end
return false;
end
--[[--------------------------&lt; S U B S T I T U T E &gt;----------------------------------------------------------
Populates numbered arguments in a message string using an argument table.
]]
local function substitute( msg, args )
return args and mw.message.newRawMessage( msg, args ):plain() or msg;
end
--[[--------------------------&lt; E R R O R _ C O M M E N T &gt;----------------------------------------------------
Wraps error messages with css markup according to the state of hidden.
]]
local function error_comment( content, hidden )
return substitute( hidden and cfg.presentation['hidden-error'] or cfg.presentation['visible-error'], content );
end
--[=[-------------------------&lt; M A K E _ W I K I L I N K &gt;----------------------------------------------------
Makes a wikilink; when bot link and display text is provided, returns a wikilink in the form [[L|D]]; if only
link is provided, returns a wikilink in the form [[L]]; if neither are provided or link is omitted, returns an
empty string.
]=]
local function make_wikilink (link, display)
if is_set (link) then
if is_set (display) then
return table.concat ({'[[', link, '|', display, ']]'});
else
return table.concat ({'[[', link, ']]'});
end
else
return '';
end
end
--[[--------------------------&lt; S E T _ E R R O R &gt;--------------------------------------------------------------
Sets an error condition and returns the appropriate error message. The actual placement of the error message in the output is
the responsibility of the calling function.
]]
local function set_error( error_id, arguments, raw, prefix, suffix )
local error_state = cfg.error_conditions[ error_id ];
prefix = prefix or &quot;&quot;;
suffix = suffix or &quot;&quot;;
if error_state == nil then
error( cfg.messages['undefined_error'] ); -- because missing error handler in Module:Citation/CS1/Configuration
elseif is_set( error_state.category ) then
table.insert( z.error_categories, error_state.category );
end
local message = substitute( error_state.message, arguments );
message = table.concat (
{
message,
' (',
make_wikilink (
table.concat (
{
cfg.messages['help page link'],
'#',
error_state.anchor
}),
cfg.messages['help page label']),
')'
});
-- message = table.concat ({message, ' (', substitute (cfg.presentation['wikilink'],
-- {cfg.messages['help page link'] .. '#' .. error_state.anchor, cfg.messages['help page label']}), ')'});
-- message = message .. &quot; ([[&quot; .. cfg.messages['help page link'] ..
-- &quot;#&quot; .. error_state.anchor .. &quot;|&quot; ..
-- cfg.messages['help page label'] .. &quot;]])&quot;;
z.error_ids[ error_id ] = true;
if in_array( error_id, { 'bare_url_missing_title', 'trans_missing_title' } )
and z.error_ids['citation_missing_title'] then
return '', false;
end
message = table.concat({ prefix, message, suffix });
if raw == true then
return message, error_state.hidden;
end
return error_comment( message, error_state.hidden );
end
--[[-------------------------&lt; I S _ A L I A S _ U S E D &gt;-----------------------------------------------------
This function is used by select_one() to determine if one of a list of alias parameters is in the argument list
provided by the template.
Input:
args – pointer to the arguments table from calling template
alias – one of the list of possible aliases in the aliases lists from Module:Citation/CS1/Configuration
index – for enumerated parameters, identifies which one
enumerated – true/false flag used choose how enumerated aliases are examined
value – value associated with an alias that has previously been selected; nil if not yet selected
selected – the alias that has previously been selected; nil if not yet selected
error_list – list of aliases that are duplicates of the alias already selected
Returns:
value – value associated with alias we selected or that was previously selected or nil if an alias not yet selected
selected – the alias we selected or the alias that was previously selected or nil if an alias not yet selected
]]
local function is_alias_used (args, alias, index, enumerated, value, selected, error_list)
if enumerated then -- is this a test for an enumerated parameters?
alias = alias:gsub ('#', index); -- replace '#' with the value in index
else
alias = alias:gsub ('#', ''); -- remove '#' if it exists
end
if is_set(args[alias]) then -- alias is in the template's argument list
if value ~= nil and selected ~= alias then -- if we have already selected one of the aliases
local skip;
for _, v in ipairs(error_list) do -- spin through the error list to see if we've added this alias
if v == alias then
skip = true;
break; -- has been added so stop looking
end
end
if not skip then -- has not been added so
table.insert( error_list, alias ); -- add error alias to the error list
end
else
value = args[alias]; -- not yet selected an alias, so select this one
selected = alias;
end
end
return value, selected; -- return newly selected alias, or previously selected alias
end
--[[--------------------------&lt; A D D _ M A I N T _ C A T &gt;------------------------------------------------------
Adds a category to z.maintenance_cats using names from the configuration file with additional text if any.
To prevent duplication, the added_maint_cats table lists the categories by key that have been added to z.maintenance_cats.
]]
local added_maint_cats = {} -- list of maintenance categories that have been added to z.maintenance_cats
local function add_maint_cat (key, arguments)
if not added_maint_cats [key] then
added_maint_cats [key] = true; -- note that we've added this category
table.insert( z.maintenance_cats, substitute (cfg.maint_cats [key], arguments)); -- make name then add to table
end
end
--[[--------------------------&lt; S A F E _ F O R _ I T A L I C S &gt;----------------------------------------------
Protects a string that will be wrapped in wiki italic markup '' ... ''
Note: We cannot use &lt;i&gt; for italics, as the expected behavior for italics specified by ''...'' in the title is that
they will be inverted (i.e. unitalicized) in the resulting references. In addition, &lt;i&gt; and '' tend to interact
poorly under Mediawiki's HTML tidy.
]]
local function safe_for_italics( str )
if not is_set(str) then
return str;
else
if str:sub(1,1) == &quot;'&quot; then str = &quot;&lt;span&gt;&lt;/span&gt;&quot; .. str; end
if str:sub(-1,-1) == &quot;'&quot; then str = str .. &quot;&lt;span&gt;&lt;/span&gt;&quot;; end
-- Remove newlines as they break italics.
return str:gsub( '\n', ' ' );
end
end
--[[--------------------------&lt; W R A P _ S T Y L E &gt;----------------------------------------------------------
Applies styling to various parameters. Supplied string is wrapped using a message_list configuration taking one
argument; protects italic styled parameters. Additional text taken from citation_config.presentation - the reason
this function is similar to but separate from wrap_msg().
]]
local function wrap_style (key, str)
if not is_set( str ) then
return &quot;&quot;;
elseif in_array( key, { 'italic-title', 'trans-italic-title' } ) then
str = safe_for_italics( str );
end
return substitute( cfg.presentation[key], {str} );
end
--[[--------------------------&lt; S E L E C T _ O N E &gt;----------------------------------------------------------
Chooses one matching parameter from a list of parameters to consider. The list of parameters to consider is just
names. For parameters that may be enumerated, the position of the numerator in the parameter name is identified
by the '#' so |author-last1= and |author1-last= are represented as 'author-last#' and 'author#-last'.
Because enumerated parameter |&lt;param&gt;1= is an alias of |&lt;param&gt;= we must test for both possibilities.
Generates an error if more than one match is present.
]]
local function select_one( args, aliases_list, error_condition, index )
local value = nil; -- the value assigned to the selected parameter
local selected = ''; -- the name of the parameter we have chosen
local error_list = {};
if index ~= nil then index = tostring(index); end
for _, alias in ipairs( aliases_list ) do -- for each alias in the aliases list
if alias:match ('#') then -- if this alias can be enumerated
if '1' == index then -- when index is 1 test for enumerated and non-enumerated aliases
value, selected = is_alias_used (args, alias, index, false, value, selected, error_list); -- first test for non-enumerated alias
end
value, selected = is_alias_used (args, alias, index, true, value, selected, error_list); -- test for enumerated alias
else
value, selected = is_alias_used (args, alias, index, false, value, selected, error_list); --test for non-enumerated alias
end
end
if #error_list &gt; 0 and 'none' ~= error_condition then -- for cases where this code is used outside of extract_names()
local error_str = &quot;&quot;;
for _, k in ipairs( error_list ) do
if error_str ~= &quot;&quot; then error_str = error_str .. cfg.messages['parameter-separator'] end
error_str = error_str .. wrap_style ('parameter', k);
end
if #error_list &gt; 1 then
error_str = error_str .. cfg.messages['parameter-final-separator'];
else
error_str = error_str .. cfg.messages['parameter-pair-separator'];
end
error_str = error_str .. wrap_style ('parameter', selected);
table.insert( z.message_tail, { set_error( error_condition, {error_str}, true ) } );
end
return value, selected;
end
--[=[-------------------------&lt; R E M O V E _ W I K I _ L I N K &gt;----------------------------------------------
Gets the display text from a wikilink like [[A|B]] or [[B]] gives B
The str:gsub() returns either A|B froma [[A|B]] or B from [[B]] or B from B (no wikilink markup).
In l(), l:gsub() removes the link and pipe (if they exist); the second :gsub() trims white space from the label
if str was wrapped in wikilink markup. Presumably, this is because without wikimarkup in str, there is no match
in the initial gsub, the replacement function l() doesn't get called.
]=]
local function remove_wiki_link (str)
return (str:gsub( &quot;%[%[([^%[%]]*)%]%]&quot;, function(l)
return l:gsub( &quot;^[^|]*|(.*)$&quot;, &quot;%1&quot; ):gsub(&quot;^%s*(.-)%s*$&quot;, &quot;%1&quot;);
end));
end
--[=[-------------------------&lt; I S _ W I K I L I N K &gt;--------------------------------------------------------
Determines if str is a wikilink, extracts, and returns the the wikilink type, link text, and display text parts.
If str is a complex wikilink ([[L|D]]):
returns wl_type 2 and D and L from [[L|D]];
if str is a simple wikilink ([[D]])
returns wl_type 1 and D from [[D]] and L as empty string;
if not a wikilink:
returns wl_type 0, str as D, and L as empty string.
trims leading and trailing white space and pipes from L and D ([[L|]] and [[|D]] are accepted by MediaWiki and
treated like [[D]]; while [[|D|]] is not accepted by MediaWiki, here, we accept it and return D without the pipes).
]=]
local function is_wikilink (str)
local D, L
local wl_type = 2; -- assume that str is a complex wikilink [[L|D]]
L, D = str:match ('%[%[([^|]+)|([^%]]+)%]%]'); -- get L and D from [[L|D]]
if not is_set (D) then -- if no separate link
D = str:match ('%[%[([^%]]*)|*%]%]'); -- get D from [[D]]
wl_type = 1;
end
if not is_set (D) then -- no wikilink markup
D = str; -- return the string as D
wl_type = 0; -- but say that it is not a wikilink
end
D = mw.text.trim (D, '%s|'); -- trim white space and pipe characters
L = L and mw.text.trim (L, '%s|');
return wl_type, D, L or '';
end
--[[--------------------------&lt; S E T _ S E L E C T E D _ M O D U L E S &gt;--------------------------------------
Sets local cfg table to same (live or sandbox) as that used by the other modules.
]]
local function set_selected_modules (cfg_table_ptr)
cfg = cfg_table_ptr;
end
return { -- return exported functions and tables
is_set = is_set,
in_array = in_array,
substitute = substitute,
error_comment = error_comment,
set_error = set_error,
select_one = select_one,
add_maint_cat = add_maint_cat,
wrap_style = wrap_style,
safe_for_italics = safe_for_italics,
remove_wiki_link = remove_wiki_link,
is_wikilink = is_wikilink,
make_wikilink = make_wikilink,
set_selected_modules = set_selected_modules,
z = z,
}</text>
<sha1>paqzmjiy0g42xcm0br82k5z9jczlnm6</sha1>
</revision>
</page>
<page>
<title>Module:Citation/CS1/Whitelist</title>
<ns>828</ns>
<id>39013723</id>
<revision>
<id>808669331</id>
<parentid>777956977</parentid>
<timestamp>2017-11-04T10:41:22Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<comment>synch from sandbox;</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="18772">
--[[--------------------------&lt; P A R A M E T E R S N O T S U P P O R T E D &gt;------------------------------
This is a list of parameters that once were but now are no longer supported:
['albumlink'] = nil, -- unique alias of titlelink used by old cite AV media notes
['albumtype'] = nil, -- controled inappropriate functionality in the old cite AV media notes
['artist'] = nil, -- unique alias of others used by old cite AV media notes
['ARXIV'] = nil, -- not an initialization
['Author'] = nil, -- non-standard capitalization
['authorformat'] = nil, -- primarily used to support Vancouver format which functionality now part of name-list-format
['author-format'] = nil, -- primarily used to support Vancouver format which functionality now part of name-list-format
['author-name-separator'] = nil,-- primarily used to support Vancouver format which functionality now part of name-list-format
['author-separator'] = nil, -- primarily used to support Vancouver format which functionality now part of name-list-format
['began'] = nil, -- module handles date ranges; cite episode and cite series
['BIBCODE'] = nil, -- not an initialization
['callsign'] = nil, -- cite interview removed
['call-sign'] = nil, -- cite interview removed
['chapterlink'] = nil, -- if ever necessary to link to a chapter article, |chapter= can be wikilinked
['chapter-link'] = nil, --
['city'] = nil, -- cite interview removed
['coauthor'] = nil, -- redundant to |authorn=; not made part of metadata
['coauthors'] = nil, -- redundant to |authorn=; not made part of metadata
['cointerviewers'] = nil, -- unique alias of others used by old cite interview
['day'] = nil, -- deprecated in {{citation/core}} and somehow undeprecated in Module:Citation/CS1 and now finally removed
['director'] = nil, -- unique alias of author used by old cite DVD-notes
['DoiBroken'] = nil, -- not used, non-standard captialization
['Editor'] = nil, -- non-standard capitalization
['editorformat'] = nil, -- primarily used to support Vancouver format which functionality now part of name-list-format
['EditorSurname'] = nil, -- non-standard capitalization
['editor-format'] = nil, -- primarily used to support Vancouver format which functionality now part of name-list-format
['EditorGiven'] = nil, -- non-standard capitalization
['editor-name-separator'] = nil,-- primarily used to support Vancouver format which functionality now part of name-list-format
['editor-separator'] = nil, -- primarily used to support Vancouver format which functionality now part of name-list-format
['Embargo'] = nil, -- not used, non-standard capitalization
['ended'] = nil, -- module handles date ranges; cite episode and cite series
['month'] = nil, -- functionality supported by |date=
['name-separator'] = nil, -- primarily used to support Vancouver format which functionality now part of name-list-format
['notestitle'] = nil, -- unique alias of chapter used by old cite AV media notes
['PPrefix'] = nil, -- non-standard capitalization
['PPPrefix'] = nil, -- not used, non-standard capitalization
['pp-prefix'] = nil, -- not used, not documented
['p-prefix'] = nil, -- not used, not documented
['program'] = nil, -- cite interview removed
['publisherid'] = nil, -- unique alias of id used by old cite AV media notes and old cite DVD-notes
['Ref'] = nil, -- non-standard capitalization
['separator'] = nil, -- this functionality now provided by |mode=
['titleyear'] = nil, -- unique alias of origyear used by old cite DVD-notes
['Author#'] = nil, -- non-standard capitalization
['authors#'] = nil, -- no need for multiple lists of author names
['Editor#'] = nil, -- non-standard capitalization
['editors#'] = nil, -- no need for multiple lists of editor names
['EditorGiven#'] = nil, -- non-standard capitalization
['EditorSurname#'] = nil, -- non-standard capitalization
]]
--[[--------------------------&lt; S U P P O R T E D P A R A M E T E R S &gt;--------------------------------------
Because a steady-state signal conveys no useful information, whitelist.basic_arguments[] list items can have three values:
true - these parameters are valid and supported parameters
false - these parameters are deprecated but still supported
nil - these parameters are no longer supported (when setting a parameter to nil, leave a comment stating the reasons for invalidating the parameter)
]]
local whitelist = {}
local basic_arguments = {
['accessdate'] = true,
['access-date'] = true,
['agency'] = true,
['airdate'] = true,
['air-date'] = true,
['archivedate'] = true,
['archive-date'] = true,
['archive-format'] = true,
['archiveurl'] = true,
['archive-url'] = true,
['article'] = true,
['arxiv'] = true,
['asin'] = true,
['ASIN'] = true,
['asin-tld'] = true,
['ASIN-TLD'] = true,
['at'] = true,
['author'] = true,
['author-first'] = true,
['author-last'] = true,
['authorlink'] = true,
['author-link'] = true,
['authormask'] = true,
['author-mask'] = true,
['authors'] = true,
['bibcode'] = true,
['bibcode-access'] = true,
['biorxiv'] = true,
['booktitle'] = true,
['book-title'] = true,
['cartography'] = true,
['chapter'] = true,
['chapter-format'] = true,
['chapterurl'] = true,
['chapter-url'] = true,
['chapter-url-access'] = true,
['citeseerx'] = true,
['class'] = true, -- cite arxiv and arxiv identifiers
['collaboration'] = true,
['conference'] = true,
['conference-format'] = true,
['conferenceurl'] = true,
['conference-url'] = true,
['contribution'] = true,
['contribution-format'] = true,
['contributionurl'] = true,
['contribution-url'] = true,
['contributor'] = true,
['contributor-first'] = true,
['contributor-last'] = true,
['contributor-given'] = true,
['contributor-surname'] = true,
['contributor-link'] = true,
['contributor-mask'] = true,
['credits'] = true, -- cite episode, cite serial
['date'] = true,
['deadurl'] = true,
['dead-url'] = true,
['degree'] = true,
['department'] = true,
['df'] = true,
['dictionary'] = true,
['displayauthors'] = true,
['display-authors'] = true,
['displayeditors'] = true,
['display-editors'] = true,
['docket'] = true,
['doi'] = true,
['DOI'] = true,
['doi-access'] = true,
['doi-broken'] = true,
['doi_brokendate'] = false,
['doi-broken-date'] = true,
['doi_inactivedate'] = false,
['doi-inactive-date'] = true,
['edition'] = true,
['editor'] = true,
['editor-first'] = true,
['editor-given'] = true,
['editor-last'] = true,
['editorlink'] = true,
['editor-link'] = true,
['editormask'] = true,
['editor-mask'] = true,
['editors'] = true,
['editor-surname'] = true,
['eissn'] = true,
['EISSN'] = true,
['embargo'] = true,
['encyclopaedia'] = true,
['encyclopedia'] = true,
['entry'] = true,
['episode'] = true, -- cite serial only TODO: make available to cite episode?
['episodelink'] = true, -- cite episode and cite serial
['episode-link'] = true, -- cite episode and cite serial
['eprint'] = true, -- cite arxiv and arxiv identifiers
['event'] = true,
['event-format'] = true,
['eventurl'] = true,
['event-url'] = true,
['first'] = true,
['format'] = true,
['given'] = true,
['hdl'] = true,
['HDL'] = true,
['hdl-access'] = true,
['host'] = true,
['id'] = true,
['ID'] = true,
['ignoreisbnerror'] = true,
['ignore-isbn-error'] = true,
['in'] = true,
['inset'] = true,
['institution'] = true,
['interviewer'] = true,
['interviewer-first'] = true,
['interviewer-last'] = true,
['interviewerlink'] = true,
['interviewer-link'] = true,
['interviewermask'] = true,
['interviewer-mask'] = true,
['interviewers'] = true,
['isbn'] = true,
['ISBN'] = true,
['isbn13'] = true,
['ISBN13'] = true,
['ismn'] = true,
['ISMN'] = true,
['issn'] = true,
['ISSN'] = true,
['issue'] = true,
['jfm'] = true,
['JFM'] = true,
['journal'] = true,
['jstor'] = true,
['JSTOR'] = true,
['jstor-access'] = true,
['language'] = true,
['last'] = true,
['lastauthoramp'] = true,
['last-author-amp'] = true,
['laydate'] = true,
['lay-date'] = true,
['laysource'] = true,
['lay-source'] = true,
['laysummary'] = true,
['lay-summary'] = true,
['lay-format'] = true,
['layurl'] = true,
['lay-url'] = true,
['lccn'] = true,
['LCCN'] = true,
['location'] = true,
['magazine'] = true,
['mailinglist'] = true, -- cite mailing list only
['mailing-list'] = true, -- cite mailing list only
['map'] = true, -- cite map only
['map-format'] = true, -- cite map only
['mapurl'] = true, -- cite map only
['map-url'] = true, -- cite map only
['medium'] = true,
['message-id'] = true, -- cite newsgroup
['minutes'] = true,
['mode'] = true,
['mr'] = true,
['MR'] = true,
['name-list-format'] = true,
['network'] = true,
['newsgroup'] = true,
['newspaper'] = true,
['nocat'] = true,
['no-cat'] = true,
['nopp'] = true,
['no-pp'] = true,
['notracking'] = true,
['no-tracking'] = true,
['number'] = true,
['oclc'] = true,
['OCLC'] = true,
['ol'] = true,
['OL'] = true,
['ol-access'] = true,
['origyear'] = true,
['orig-year'] = true,
['osti'] = true,
['OSTI'] = true,
['osti-access'] = true,
['others'] = true,
['p'] = true,
['page'] = true,
['pages'] = true,
['people'] = true,
['periodical'] = true,
['place'] = true,
['pmc'] = true,
['PMC'] = true,
['pmid'] = true,
['PMID'] = true,
['postscript'] = true,
['pp'] = true,
['publicationdate'] = true,
['publication-date'] = true,
['publicationplace'] = true,
['publication-place'] = true,
['publisher'] = true,
['quotation'] = true,
['quote'] = true,
['ref'] = true,
['registration'] = true,
['rfc'] = true,
['RFC'] = true,
['scale'] = true,
['script-chapter'] = true,
['script-title'] = true,
['season'] = true,
['section'] = true,
['section-format'] = true,
['sections'] = true, -- cite map only
['sectionurl'] = true,
['section-url'] = true,
['series'] = true,
['serieslink'] = true,
['series-link'] = true,
['seriesno'] = true,
['series-no'] = true,
['seriesnumber'] = true,
['series-number'] = true,
['series-separator'] = true,
['sheet'] = true, -- cite map only
['sheets'] = true, -- cite map only
['ssrn'] = true,
['SSRN'] = true,
['station'] = true,
['subject'] = true,
['subjectlink'] = true,
['subject-link'] = true,
['subscription'] = true,
['surname'] = true,
['template doc demo'] = false,
['template-doc-demo'] = true,
['time'] = true,
['timecaption'] = true,
['time-caption'] = true,
['title'] = true,
['titlelink'] = true,
['title-link'] = true,
['trans_chapter'] = false,
['trans-chapter'] = true,
['trans-map'] = true,
['transcript'] = true,
['transcript-format'] = true,
['transcripturl'] = true,
['transcript-url'] = true,
['trans_title'] = false,
['trans-title'] = true,
['translator'] = true,
['translator-first'] = true,
['translator-last'] = true,
['translator-given'] = true,
['translator-surname'] = true,
['translator-link'] = true,
['translator-mask'] = true,
['type'] = true,
['url'] = true,
['URL'] = true,
['url-access'] = true,
['vauthors'] = true,
['veditors'] = true,
['version'] = true,
['via'] = true,
['volume'] = true,
['website'] = true,
['work'] = true,
['year'] = true,
['zbl'] = true,
['ZBL'] = true,
}
local numbered_arguments = {
['author#'] = true,
['author-first#'] = true,
['author#-first'] = true,
['author-last#'] = true,
['author#-last'] = true,
['author-link#'] = true,
['author#link'] = true,
['author#-link'] = true,
['authorlink#'] = true,
['author-mask#'] = true,
['author#mask'] = true,
['author#-mask'] = true,
['authormask#'] = true,
['contributor#'] = true,
['contributor-first#'] = true,
['contributor#-first'] = true,
['contributor-last#'] = true,
['contributor#-last'] = true,
['contributor-given#'] = true,
['contributor#-given'] = true,
['contributor-surname#'] = true,
['contributor#-surname'] = true,
['contributor-link#'] = true,
['contributor#-link'] = true,
['contributor-mask#'] = true,
['contributor#-mask'] = true,
['editor#'] = true,
['editor-first#'] = true,
['editor#-first'] = true,
['editor#-given'] = true,
['editor-given#'] = true,
['editor-last#'] = true,
['editor#-last'] = true,
['editor-link#'] = true,
['editor#link'] = true,
['editor#-link'] = true,
['editorlink#'] = true,
['editor-mask#'] = true,
['editor#mask'] = true,
['editor#-mask'] = true,
['editormask#'] = true,
['editor#-surname'] = true,
['editor-surname#'] = true,
['first#'] = true,
['given#'] = true,
['interviewer#'] = true,
['interviewer-first#'] = true,
['interviewer#-first'] = true,
['interviewer-last#'] = true,
['interviewer#-last'] = true,
['interviewer-link#'] = true,
['interviewer#-link'] = true,
['interviewer-mask#'] = true,
['interviewer#-mask'] = true,
['last#'] = true,
['subject#'] = true,
['subject-link#'] = true,
['subject#link'] = true,
['subject#-link'] = true,
['subjectlink#'] = true,
['surname#'] = true,
['translator#'] = true,
['translator-first#'] = true,
['translator#-first'] = true,
['translator-last#'] = true,
['translator#-last'] = true,
['translator-given#'] = true,
['translator#-given'] = true,
['translator-surname#'] = true,
['translator#-surname'] = true,
['translator-link#'] = true,
['translator#-link'] = true,
['translator-mask#'] = true,
['translator#-mask'] = true,
}
--[[--------------------------&lt; C I T E A R X I V S U P P O R T E D P A R A M E T E R S &gt;----------------
This is an experiment that attempts to use validate() and a limited list of valid parameters to validate the
parameters provided in a cite arxiv template. This method might be expanded to other templates being considered.
Because a steady-state signal conveys no useful information, whitelist.basic_arguments[] list items can have three values:
true - these parameters are valid and supported parameters
false - these parameters are deprecated but still supported
nil - these parameters are no longer supported (when setting a parameter to nil, leave a comment stating the reasons for invalidating the parameter)
]]
--[[
This is a list of parameters that once were but now are no longer supported:
['ARXIV'] = nil, -- not an initialization
['version'] = nil, -- this is the cite arxiv parameter; |version= still supported by other cs1|2 templates
]]
local arxiv_basic_arguments = {
['arxiv'] = true,
['class'] = true, -- cite arxiv and arxiv identifiers
['eprint'] = true, -- cite arxiv and arxiv identifiers
}
--[[--------------------------&lt; C I T E B I O R X I V S U P P O R T E D P A R A M E T E R S &gt;------------
This is an experiment that attempts to use validate() and a limited list of valid parameters to validate the
parameters provided in a cite biorxiv template. This method might be expanded to other templates being considered.
Because a steady-state signal conveys no useful information, whitelist.basic_arguments[] list items can have three values:
true - these parameters are valid and supported parameters
false - these parameters are deprecated but still supported
nil - these parameters are no longer supported (when setting a parameter to nil, leave a comment stating the reasons for invalidating the parameter)
]]
local biorxiv_basic_arguments = {
['biorxiv'] = true,
}
--[[--------------------------&lt; C I T E C I T E S E E R X S U P P O R T E D P A R A M E T E R S &gt;--------
This is an experiment that attempts to use validate() and a limited list of valid parameters to validate the
parameters provided in a cite citeseerx template. This method might be expanded to other templates being considered.
Because a steady-state signal conveys no useful information, whitelist.basic_arguments[] list items can have three values:
true - these parameters are valid and supported parameters
false - these parameters are deprecated but still supported
nil - these parameters are no longer supported (when setting a parameter to nil, leave a comment stating the reasons for invalidating the parameter)
]]
local citeseerx_basic_arguments = {
['citeseerx'] = true,
}
--[[--------------------------&lt; L I M I T E D S U P P O R T E D P A R A M E T E R S &gt;----------------------
This is an experiment that attempts to use validate() and a limited list of valid parameters to validate the
parameters provided in a cite arxiv, cite biorxiv, or cite citeseerx templates. These parameters are common to
all three templates
Because a steady-state signal conveys no useful information, whitelist.basic_arguments[] list items can have three values:
true - these parameters are valid and supported parameters
false - these parameters are deprecated but still supported
nil - these parameters are no longer supported (when setting a parameter to nil, leave a comment stating the reasons for invalidating the parameter)
]]
local limited_basic_arguments = {
['at'] = true,
['author'] = true,
['author-first'] = true,
['author-last'] = true,
['authorlink'] = true,
['author-link'] = true,
['authormask'] = true,
['author-mask'] = true,
['authors'] = true,
['collaboration'] = true,
['date'] = true,
['df'] = true,
['display-authors'] = true,
['first'] = true,
['given'] = true,
['language'] = true,
['last'] = true,
['lastauthoramp'] = true,
['last-author-amp'] = true,
['mode'] = true,
['name-list-format'] = true,
['nocat'] = true,
['no-cat'] = true,
['notracking'] = true,
['no-tracking'] = true,
['p'] = true,
['page'] = true,
['pages'] = true,
['postscript'] = true,
['pp'] = true,
['quotation'] = true,
['quote'] = true,
['ref'] = true,
['surname'] = true,
['template doc demo'] = true,
['template-doc-demo'] = true,
['title'] = true,
['url'] = true,
['URL'] = true,
['vauthors'] = true,
['year'] = true,
}
local limited_numbered_arguments = {
['author#'] = true,
['author-first#'] = true,
['author#-first'] = true,
['author-last#'] = true,
['author#-last'] = true,
['author-link#'] = true,
['author#link'] = true,
['author#-link'] = true,
['authorlink#'] = true,
['author-mask#'] = true,
['author#mask'] = true,
['author#-mask'] = true,
['authormask#'] = true,
['first#'] = true,
['given#'] = true,
['last#'] = true,
['surname#'] = true,
}
return {
basic_arguments = basic_arguments,
numbered_arguments = numbered_arguments,
limited_basic_arguments = limited_basic_arguments,
limited_numbered_arguments = limited_numbered_arguments,
arxiv_basic_arguments = arxiv_basic_arguments,
biorxiv_basic_arguments = biorxiv_basic_arguments,
citeseerx_basic_arguments = citeseerx_basic_arguments
};</text>
<sha1>tab19gewmgi7eq8x1hvmbogile54m43</sha1>
</revision>
</page>
<page>
<title>Template:CSS3 multiple column layout/doc</title>
<ns>10</ns>
<id>31496390</id>
<revision>
<id>803236404</id>
<parentid>626726937</parentid>
<timestamp>2017-10-01T09:05:56Z</timestamp>
<contributor>
<ip>69.145.120.143</ip>
</contributor>
<comment>/* Usage */Love</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1046">{{Documentation subpage}} {{CSS3 multiple column layout}}
&lt;noinclude&gt;{{about|the compatibility information template|the layout templates|Template:Columns-list|and|Template:Div col}}&lt;/noinclude&gt;
&lt;!-----------------------------------------------------------------------------
Add categories where indicated at the bottom of this page, please.
------------------------------------------------------------------------------&gt;
===Usage===
This template (opposite) documents browser support for CSS3 multiple column layout..
===References===
{{refbegin}}
* {{cite web |title=CSS Multi-column Layout Module |url=http://www.w3.org/TR/css3-multicol/ |publisher=W3C}}
* {{cite web |title=When can I use... Support tables for HTML5, CSS3, etc |url=http://caniuse.com/}}
* {{Wikitraffic}}
{{refend}}
&lt;includeonly&gt;
&lt;!-----------------------------------------------------------------------------
Categories here, please:
------------------------------------------------------------------------------&gt;
[[Category:Wikipedia help templates]]
&lt;/includeonly&gt;</text>
<sha1>nv41juvhpm6fme72zsp9d42j7k5yyin</sha1>
</revision>
</page>
<page>
<title>Template:Wikitraffic</title>
<ns>10</ns>
<id>31404610</id>
<revision>
<id>424012851</id>
<parentid>422531379</parentid>
<timestamp>2011-04-14T11:40:34Z</timestamp>
<contributor>
<username>Gadget850</username>
<id>339034</id>
</contributor>
<comment>fix</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="185">[http://stats.wikimedia.org/wikimedia/squids/SquidReportClients.htm Wikimedia Traffic Analysis Report - Browsers]&lt;noinclude&gt;
[[Category:Documentation assistance templates]]
&lt;/noinclude&gt;</text>
<sha1>dyif7c587l3s1xpvd1htlxd519l8o3p</sha1>
</revision>
</page>
<page>
<title>Template:Cat main/doc</title>
<ns>10</ns>
<id>9948977</id>
<revision>
<id>823757015</id>
<parentid>799188974</parentid>
<timestamp>2018-02-03T05:55:18Z</timestamp>
<contributor>
<username>A876</username>
<id>1234701</id>
</contributor>
<comment>one template was renamed.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2981">{{Documentation subpage}}
&lt;!-- Place categories where indicated at the bottom of this page and interwikis at Wikidata --&gt;
&lt;includeonly&gt;{{high-risk| 123000+ }}&lt;/includeonly&gt;
{{lua|Module:Cat main}}
==Usage==
This template is for use on Category pages, to refer to the primary article associated with this category, which most of the time, describes the entire set containing the category.
'''This template is not a replacement for adding a category to the main article.''' The main article of a category should always have the category set. Furthermore the main article should always have a space as [[WP:SORTKEY|sortkey]] so that it appears on top of a category. Example: the article [[Internet]] should have the category &lt;nowiki&gt;[[Category:Internet| ]]&lt;/nowiki&gt;.
Normal usage (uses category name for wiki link):
*{{tlx|Cat main}} &amp;rarr; {{Cat main}}
If the name of the main article is different than the name of the category &amp;mdash; for example: if the main article for [[:Category:Dead or Alive]] is [[:Dead or Alive (series)]] &amp;mdash; then you will need to use one parameter to specify the article:
*{{tlx|Cat main|Dead or Alive (series)}} &amp;rarr; {{Cat main|Dead or Alive (series)}}
===Multiple articles===
Simply append more articles as additional arguments (up to five):
*{{tlx|Cat main|1 BC}} results in {{Cat main|1 BC}}
*{{tlx|Cat main|1 BC|2 BC}} results in {{Cat main|1 BC|2 BC}}
*{{tlx|Cat main|1 BC|2 BC|3 BC|4 BC|5 BC}} results in {{Cat main|1 BC|2 BC|3 BC|4 BC|5 BC}}
===Pages which aren't articles===
*{{tlx|Cat main|WP:WikiProject|article{{=}}no}} &amp;rarr; {{Cat main|WP:WikiProject|article=no}}
==TemplateData==
{{TemplateData header}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;Specifies the primary article(s) associated with this category&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Article 1&quot;,
&quot;description&quot;: &quot;Name of primary article, if different from category name&quot;,
&quot;type&quot;: &quot;string/wiki-page-name&quot;,
&quot;default&quot;: &quot;&quot;,
&quot;required&quot;: false
},
&quot;2&quot;: {
&quot;label&quot;: &quot;Article 2&quot;,
&quot;description&quot;: &quot;Name of second main article&quot;,
&quot;type&quot;: &quot;string/wiki-page-name&quot;,
&quot;default&quot;: &quot;&quot;,
&quot;required&quot;: false
},
&quot;3&quot;: {
&quot;label&quot;: &quot;Article 3&quot;,
&quot;description&quot;: &quot;Name of third main article&quot;,
&quot;type&quot;: &quot;string/wiki-page-name&quot;,
&quot;default&quot;: &quot;&quot;,
&quot;required&quot;: false
},
&quot;4&quot;: {
&quot;label&quot;: &quot;Article 4&quot;,
&quot;description&quot;: &quot;Name of fourth main article&quot;,
&quot;type&quot;: &quot;string/wiki-page-name&quot;,
&quot;default&quot;: &quot;&quot;,
&quot;required&quot;: false
},
&quot;5&quot;: {
&quot;label&quot;: &quot;Article 5&quot;,
&quot;description&quot;: &quot;Name of fifth main article&quot;,
&quot;type&quot;: &quot;string/wiki-page-name&quot;,
&quot;default&quot;: &quot;&quot;,
&quot;required&quot;: false
}
}}&lt;/templatedata&gt;
==See also==
*{{tl|Cat more}}
*{{tl|Category explanation}}
*{{tl|Category main section}}
*{{tl|Main category}}
*{{tl|Main}}
{{Hatnote templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Hatnote templates for category pages]]
}}&lt;/includeonly&gt;</text>
<sha1>ln0957lrr303jihlzxxfs1ntartq897</sha1>
</revision>
</page>
<page>
<title>Template:Hatnote templates</title>
<ns>10</ns>
<id>24144114</id>
<revision>
<id>823756277</id>
<parentid>816352302</parentid>
<timestamp>2018-02-03T05:45:47Z</timestamp>
<contributor>
<username>A876</username>
<id>1234701</id>
</contributor>
<comment>one template was renamed. other templates case to match normal use and examples.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2696">{{Navbox
| name = Hatnote templates
| state = {{{state|&lt;includeonly&gt;autocollapse&lt;/includeonly&gt;}}}
| bodyclass = hlist
| belowclass = hlist
| title = [[WP:Hatnote#Hatnote templates|Hatnote templates]]
| above =
*[[Wikipedia:Hatnote]]
*[[Wikipedia:Disambiguation]]
*[[Wikipedia:Redirect]]
| group1 = Main articles
| list1 =
*{{tl|Main}}
*{{tl|Cat main}} (for categories)
| group2 = Generic
| list2 =
*{{tl|Hatnote}}
*{{tl|Selfref}} (for [[WP:Manual of Style/Self-references to avoid|self-references]])
| group3 = Other uses
| list3 =
*{{tl|About}}
*{{tl|About2}} (for custom text)
*Variations: {{tl|Other uses}}
*{{tl|Other uses2}} (automatically supplies disambiguation suffix)
*{{tl|Other uses of}} (provides context for disambiguation)
*{{tl|Distinguish-otheruses}}
*{{tl|Distinguish-otheruses2}} (automatically supplies disambiguation suffix)
| group4 = For (other topic)
| list4 =
*{{tl|For}}
*{{tl|For2}} (for custom text)
*{{tl|About}}
| group5 = Further information
| list5 =
*{{tl|Further}}
*{{tl|Further2}} (for custom text)
*{{tl|Details}}
*{{tl|Outline}}
| group6 = See also
| list6 =
*{{tl|See also}}
*{{tl|Category see also}}
*{{tl|Category see also if exists}}
| group7 = Other people
| list7 =
*{{tl|Other people}}
*{{tl|About-otherpeople|USE|NAME|PAGE1}} (adds &quot;about&quot; description)
*{{tl|Other people5}} (for &quot;similar&quot; names)
| group8 = Other topics
| list8 =
*{{tl|Other hurricanes}}
*{{tl|Other places}}
*{{tl|Other ships}}
| group9 = Redirect
| list9 =
*{{tl|Redirect}}
*{{tl|Redirect2}} (for two redirects)
*{{tl|Redirect-multi}} (for multiple redirects)
*{{tl|Redirect-several}} (for several redirects, without listing each)
*{{tl|Redirect3}} (for custom text)
| group10 = &quot;Not to be confused with...&quot;
| list10 =
*{{tl|Distinguish}}
*{{tl|Distinguish2}} (for custom text)
*{{tl|Redirect-distinguish}}
*{{tl|Redirect-distinguish2}} (for custom text)
*{{tl|Redirect-distinguish6}}
*{{tl|About-distinguish}}
*{{tl|About-distinguish2}} (for custom text)
| group11 = Transclusion
| list11 =
*{{tl|Transcluding article}}
*{{tl|Transcluded section}}
| group12 = Hatnote categories
| list12 =
*[[:Category:Hatnote templates|Hatnote templates]]
*[[:Category:Hatnote modules|Hatnote modules]]
*[[:Category:Hatnote templates for category pages|for category pages]]
*[[:Category:Hatnote templates for names|for [family] names]]
*[[:Category:Hatnote templates for lists|for lists]]
*[[:Category:Hatnote templates for user pages|for user pages]]
| below =
*[[WP:Hatnote#Hatnote templates|Hatnote templates documentation]]
*{{Icon|cat}} [[:Category:Hatnote templates]]
}}&lt;noinclude&gt;{{Documentation}}&lt;templatedata&gt;
{
&quot;params&quot;: {
&quot;state&quot;: {}
}
}
&lt;/templatedata&gt;
&lt;/noinclude&gt;</text>
<sha1>5us8gu9yhrf0dzw9nx8vvpprzq9rotu</sha1>
</revision>
</page>
<page>
<title>Module:Cat main</title>
<ns>828</ns>
<id>43158943</id>
<revision>
<id>619880269</id>
<parentid>614645722</parentid>
<timestamp>2014-08-04T22:11:07Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected Module:Cat main: [[WP:High-risk templates|High-risk Lua module]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1615">-- This module implements {{cat main}}.
local mHatnote = require('Module:Hatnote')
local yesno = require('Module:Yesno')
local mTableTools -- lazily initialise
local mArguments -- lazily initialise
local p = {}
function p.catMain(frame)
mTableTools = require('Module:TableTools')
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {wrappers = 'Template:Cat main'})
local pages = mTableTools.compressSparseArray(args)
local options = {
article = args.article,
selfref = args.selfref
}
return p._catMain(options, unpack(pages))
end
function p._catMain(options, ...)
options = options or {}
-- Get the links table.
local links = mHatnote.formatPages(...)
if not links[1] then
local page = mw.title.getCurrentTitle().text
links[1] = mHatnote._formatLink(page)
end
for i, link in ipairs(links) do
links[i] = string.format(&quot;'''%s'''&quot;, link)
end
-- Get the pagetype.
local pagetype
if yesno(options.article) ~= false then
pagetype = 'article'
else
pagetype = 'page'
end
-- Work out whether we need to be singular or plural.
local stringToFormat
if #links &gt; 1 then
stringToFormat = 'The main %ss for this [[Help:Categories|category]] are %s.'
else
stringToFormat = 'The main %s for this [[Help:Categories|category]] is %s.'
end
-- Get the text.
local text = string.format(
stringToFormat,
pagetype,
mw.text.listToText(links)
)
-- Pass it through to Module:Hatnote.
local hnOptions = {}
hnOptions.selfref = options.selfref
hnOptions.extraclasses = 'relarticle mainarticle'
return mHatnote._hatnote(text, hnOptions)
end
return p</text>
<sha1>3tnns6ffpe7ptgg8twn9qf1mf64wvyq</sha1>
</revision>
</page>
<page>
<title>Template:Category handler/doc</title>
<ns>10</ns>
<id>25092515</id>
<revision>
<id>786577863</id>
<parentid>786571778</parentid>
<timestamp>2017-06-20T09:27:36Z</timestamp>
<contributor>
<username>Dlohcierekim</username>
<id>1025532</id>
</contributor>
<minor/>
<comment>Reverted 1 edit by [[Special:Contributions/Ysso95|Ysso95]] ([[User talk:Ysso95|talk]]) to last revision by Adem20. ([[WP:TW|TW]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="14658">{{documentation subpage}}
{{#ifeq: {{FULLPAGENAME}} | Template:Category handler | {{high-risk|2,900,000+}} }}
{{lua|Module:Category handler}}
&lt;!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE --&gt;
This is the {{tl|category handler}} meta-template.
It helps other templates to automate both categorization and [[Wikipedia:Category suppression|category suppression]].
Already when used with its default settings this template prevents auto-categorization in some namespaces and on some pages where we usually don't want categorization. Thus even the most basic usage like &quot;&lt;code&gt;&lt;nowiki&gt;{{category handler|[[Category:Somecat]]}}&lt;/nowiki&gt;&lt;/code&gt;&quot; sees to that templates don't auto-categorize in the wrong places.
This template makes it easy to choose in what namespaces a template should and should not categorize. And it makes it easy to use different categories in different namespaces. And this template uses a central blacklist where we can add pages and page types where templates should not auto-categorize.
=== When not to use this template ===
If a template only needs to categorize in one of the namespaces main (articles), file (images) or category, then using this template is overkill. Then instead use one of {{tl|main other}}, {{tl|file other}}, or {{tl|category other}}. But if your template needs to categorize in any other namespace, then we recommend you use this template, since it provides proper category suppression and makes it easy to select how to categorize in the different namespaces.
=== Namespaces ===
This template detects and groups all the different [[Wikipedia:Namespace|namespaces]] used on Wikipedia into several types. These types are used as parameter names in this template.
:'''main''' = Main/article space, as in normal Wikipedia articles.
:'''talk''' = Any talk space, such as page names that start with &quot;Talk:&quot;, &quot;User talk:&quot;, &quot;File talk:&quot; and so on.
:'''user, wikipedia, file, mediawiki, template, help, category, portal''' and '''book''' = The other namespaces except the talk pages.
:'''other''' = Any namespaces that were not specified as a parameter to the template. See examples below.
=== Basic usage ===
This template takes two or more parameters. Here's an example with the full template code for an article message box:
&lt;pre&gt;
{{Ambox
| text = This is a box used in articles.
}}{{category handler
| [[Category:Somecat]]
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!--Add categories to the /doc subpage--&gt;
&lt;/noinclude&gt;
&lt;/pre&gt;
The above example uses the default settings for {{tlf|category handler}}. That means the box will categorize on pages in the following namespaces:
:'''main''', '''file''', '''help''', '''category''', '''portal''' and '''book'''
But it will ''not'' categorize in the following namespaces:
:'''talk''', '''user''', '''wikipedia''', '''mediawiki''' and '''template'''
And it will ''not'' categorize on blacklisted pages. (See section [[#Blacklist|blacklist]] below.)
The reason this template does not categorize in some of the namespaces is that in those namespaces most templates are just demonstrated or listed, not used. Thus most templates should not categorize in those namespaces.
Any template that is meant for one or more of the namespaces where this template categorizes can use the basic syntax as shown above.
=== Advanced usage ===
This template takes one or more parameters named after the different page types as listed in section [[#Namespaces|namespaces]] above. By using those parameters you can specify exactly in which namespaces your template should categorize. Like this:
&lt;pre&gt;
{{mbox
| text = This is a box for articles and talk pages.
}}{{category handler
| main = [[Category:Somecat1]] &lt;!--Categorize in main (article) space--&gt;
| talk = [[Category:Somecat2]] &lt;!--Categorize in talk space--&gt;
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true&quot; works--&gt;
}}
&lt;/pre&gt;
The above box will only categorize in main and talk space. But it will not categorize on /archive pages since they are blacklisted. (See section [[#Blacklist|blacklist]] below.) And if you need to demonstrate (discuss) that box on a talkpage, then you can feed &quot;&lt;code&gt;nocat=true&lt;/code&gt;&quot; to prevent that template from categorizing. (See section [[#Nocat|nocat]] below.) Like this:
&lt;pre&gt;
== My new template ==
Hey guys, have you seen my new template?
{{mytemp|nocat=true}}
Nice, isn't it?
--~~~~
&lt;/pre&gt;
Sometimes we want to use the same category in several namespaces, then do like this:
&lt;pre&gt;
{{mbox
| text = This is a box used in several namespaces.
}}{{category handler
| main = [[Category:Somecat1]]
| 1 = [[Category:Somecat2]] &lt;!--For help and user space--&gt;
| help = 1
| user = 1
| talk = &lt;!--No categories on talk pages--&gt;
| other = [[Category:Somecat3]] &lt;!--For all other namespaces--&gt;
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
}}
&lt;/pre&gt;
In the above example we use a numbered parameter to feed one of the categories, and then we tell this template to use that numbered parameter for both the help and user space.
This template understands the numbered parameters 1 to 10.
The '''other''' parameter defines what should be used in the remaining namespaces that have not explicitly been fed data.
Note the empty but defined '''talk''' parameter. That stops this template from showing what has been fed to the '''other''' parameter, when in talk space.
This template also has a parameter called '''all'''. It works like this:
&lt;pre&gt;
{{mbox
| text = This is a box used in all namespaces.
}}{{category handler
| all = [[Category:Somecat1]] &lt;!--Categorize in all namespaces--&gt;
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
}}
&lt;/pre&gt;
The above example will categorize in all namespaces, but not on blacklisted pages. If you want to demonstrate that box on a page, then use &quot;&lt;code&gt;nocat=true&lt;/code&gt;&quot; to prevent the template from categorizing.
We suggest avoiding the '''all''' parameter, since templates should preferably only categorize in the namespaces they need to.
The all parameter can also be combined with the rest of the parameters. Like this:
&lt;pre&gt;
{{mbox
| text = This is a box used in all namespaces.
}}{{category handler
| all = [[Category:Somecat1]] &lt;!--Categorize in all namespaces--&gt;
| main = [[Category:Somecat2]] &lt;!--And add this in main space--&gt;
| other = [[Category:Somecat3]] &lt;!--And add this in all other namespaces--&gt;
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
}}
&lt;/pre&gt;
If the above box is placed on an article, then it will add the categories &quot;Somecat1&quot; and &quot;Somecat2&quot;. But on all other types of pages it will instead add &quot;Somecat1&quot; and &quot;Somecat3&quot;. As the example shows, the all parameter works independently of the rest of the parameters.
=== Subpages ===
This template understands the '''subpage''' parameter. Like this:
&lt;pre&gt;
{{category handler
| subpage = no &lt;!--Don't categorize on subpages--&gt;
| wikipedia = [[Category:Somecat]]
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
}}
&lt;/pre&gt;
If &quot;&lt;code&gt;subpage=no&lt;/code&gt;&quot; then this template will ''not'' categorize on subpages. For the rare occasion you ''only'' want to categorize on subpages, then use &quot;&lt;code&gt;subpage=only&lt;/code&gt;&quot;. If '''subpage''' is empty or undefined then this template categorizes both on basepages and on subpages.
=== Blacklist ===
This template has a blacklist of the pages and page types where templates should not auto-categorize. Thus templates that use this meta-template will for instance not categorize on /archive pages and on the subpages of [[Wikipedia:Template messages]].
If you want a template to categorize on a blacklisted page, then feed &quot;&lt;code&gt;&lt;nowiki&gt;nocat = false&lt;/nowiki&gt;&lt;/code&gt;&quot; to the template when you place it on the page, thus skipping the blacklist check. Note that this template only categorizes if it has data for the namespace. For instance, if the basic syntax is used (see [[#Basic usage|basic usage]] above), then even if you set &quot;&lt;code&gt;nocat = false&lt;/code&gt;&quot; the template will not categorize on a talk page, since it has no data for talk pages. But it has data for help space, so on a blacklisted help page it will categorize.
The blacklist is in the sub-template {{tl|category handler/blacklist}}. To see or update the blacklist, go there.
=== The &quot;nocat&quot; parameter ===
This template understands the '''nocat''' parameter:
* If &quot;&lt;code&gt;nocat = true&lt;/code&gt;&quot; then this template does ''not'' categorize.
* If '''nocat''' is empty or undefined then this template categorizes as usual.
* If &quot;&lt;code&gt;nocat = false&lt;/code&gt;&quot; this template categorizes even when on blacklisted pages. (See section [[#Blacklist|blacklist]] above.)
Templates that use {{tlf|category handler}} should forward '''nocat''', so they too understand '''nocat'''. The code &quot;&lt;code&gt;&lt;nowiki&gt;nocat = {{{nocat|}}}&lt;/nowiki&gt;&lt;/code&gt;&quot; shown in the examples on this page does that.
=== The &quot;categories&quot; parameter ===
For backwards compatibility this template also understands the '''categories''' parameter. It works the same as '''nocat'''. Like this:
* If &quot;&lt;code&gt;categories = no&lt;/code&gt;&quot; then this template does ''not'' categorize.
* If '''categories''' is empty or undefined then this template categorizes as usual.
* If &quot;&lt;code&gt;categories = yes&lt;/code&gt;&quot; this template categorizes even when on blacklisted pages.
When adding this template to a template that already uses the &quot;&lt;code&gt;categories = no&lt;/code&gt;&quot; logic, then you can do the following to not break any existing usage:
&lt;pre&gt;
{{category handler
| [[Category:Somecat]]
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
| categories = {{{categories|}}} &lt;!--So &quot;categories=no&quot; works--&gt;
}}
&lt;/pre&gt;
=== The &quot;category2&quot; parameter ===
For backwards compatibility this template kind of supports the old &quot;category =&quot; parameter. But the parameter name &quot;category&quot; is already used in this template to feed category data for when in category space. So instead this template uses '''category2''' for the usage similar to '''nocat'''. Like this:
* If &quot;&lt;code&gt;category2 =&lt;/code&gt;&quot; (empty but defined), or &quot;&lt;code&gt;category2 = no&lt;/code&gt;&quot;, or if '''category2''' is fed any other data (except as described in the next two points), then this template does ''not'' categorize.
* If '''category2''' is undefined or if &quot;&lt;code&gt;category2 = ¬&lt;/code&gt;&quot;, then this template categorizes as usual.
* If &quot;&lt;code&gt;category2 = yes&lt;/code&gt;&quot; this template categorizes even when on blacklisted pages.
When adding this template to a template that already uses the &quot;&lt;code&gt;category =&lt;/code&gt;&quot; logic, then you can do like this to not break any existing usage:
&lt;pre&gt;
{{category handler
| [[Category:Somecat]]
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
| category2 = {{{category|¬}}} &lt;!--So &quot;category =&quot; works--&gt;
}}
&lt;/pre&gt;
Note that the &quot;&lt;code&gt;¬&lt;/code&gt;&quot; is necessary, it helps this template to detect if the '''category''' parameter is defined but empty, or undefined.
=== Categories and text ===
Besides from categories, you can feed anything else to this template, for instance some text. Like this:
&lt;pre&gt;
{{tmbox
| text = This is a talk page message box.
}}{{category handler
| talk = [[Category:Somecat]]
| other = :::::This template should only be used on talk pages.
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
}}
&lt;/pre&gt;
When the template above is shown on anything else than a talk page, it will look like this (note the text below the box):
{{tmbox
| text = This is a talk page message box.
| nocat = true &lt;!--So this box doesn't add &quot;Category:Talk message boxes&quot;--&gt;
}}{{category handler
| talk = [[Category:Somecat]]
| other = :::::This template should only be used on talk pages.
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
}}
That text will not show on blacklisted pages, so don't use this method to show any important information. Feeding &quot;&lt;code&gt;nocat = true&lt;/code&gt;&quot; to the template hides the text, just as it suppresses any categories.
=== The &quot;page&quot; parameter ===
For testing and demonstration purposes this template can take a parameter named '''page'''. Like this:
&lt;pre&gt;
{{category handler
| main = Category:Some cat
| talk = Category:Talk cat
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
| page = User talk:Example
}}
&lt;/pre&gt;
In the above code we on purpose left out the brackets around the category names so we see the output on the page. No matter on what kind of page the code above is used it will return this:
:{{category handler
| main = Category:Some cat
| talk = Category:Talk cat
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
| page = User talk:Example
}}
The '''page''' parameter makes this template behave exactly as if on that page. Even the blacklist works. The pagename doesn't have to be an existing page.
If the '''page''' parameter is empty or undefined, the name of the current page determines the result.
You can make it so your template also understands the '''page''' parameter. That means you can test how your template will categorize on different pages, without having to actually edit those pages. Then do like this:
&lt;pre&gt;
{{category handler
| main = Category:Some cat
| talk = Category:Talk cat
| nocat = {{{nocat|}}} &lt;!--So &quot;nocat=true/false&quot; works--&gt;
| page = {{{page|}}} &lt;!--For testing--&gt;
}}
&lt;/pre&gt;
=== Parameters ===
List of all parameters:
&lt;pre&gt;
{{category handler
| [[Category:Somecat]]
| subpage = no / only
| 1 =
...
| 10 =
| all = [[Category:Somecat]] / Text
| main = 1 / ... / 10 / [[Category:Somecat]] / Text
...
| other = 1 / ... / 10 / [[Category:Somecat]] / Text
| nocat = {{{nocat|}}} / true / false
| categories = {{{categories|}}} / no / yes
| category2 = {{{category|¬}}} / 'empty' / no / 'not defined' / ¬ / yes
| page = {{{page|}}} / User:Example
}}
&lt;/pre&gt;
Note that empty values to the &quot;main&quot; ... &quot;other&quot; parameters have special meaning (see examples above). The &quot;all&quot; parameter doesn't understand numbered parameters, since there should never be a need for that.
=== Technical details ===
The centralised category suppression blacklist is in the sub-template {{tl|category handler/blacklist}}. To see or update the blacklist, go there.
For its internal parameter processing, this template uses the sub-template {{tl|category handler/numbered}}.
For more technical details see the [[Template talk:Category handler|talk page]].
=== See also ===
* [[Wikipedia:Category suppression]] – The how-to guide.
* [[Wikipedia:WikiProject Category Suppression]] – The WikiProject.
* [[Wikipedia:Namespace]] – Lists all the namespaces.
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
[[Category:Wikipedia metatemplates]]
}}&lt;/includeonly&gt;</text>
<sha1>2wbpsa9aqujwjohr0l3nn6542vhe99c</sha1>
</revision>
</page>
<page>
<title>Template:Tmbox</title>
<ns>10</ns>
<id>14314129</id>
<revision>
<id>577969176</id>
<parentid>388085963</parentid>
<timestamp>2013-10-20T12:46:44Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>switch to Lua version</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="146">{{#invoke:Message box|tmbox}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>jcav8pdjkvcwg8gc4m0b4gox7yjnxku</sha1>
</revision>
</page>
<page>
<title>Template:Category see also/doc</title>
<ns>10</ns>
<id>20506240</id>
<revision>
<id>822579981</id>
<parentid>781917954</parentid>
<timestamp>2018-01-27T05:59:00Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>add {{Lua|Module:Category see also}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3851">{{Lua|Module:Category see also}}
{{Documentation subpage}}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
==Usage==
;Usual syntax
: '''&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;Category see also|List of one or more category names}}&lt;/code&gt;'''
'''Parameters:'''
* Most are pipe character-separated category page names; up to 40 pages
* LABEL=''Some other phrase''... → replaces defaults: ''&quot;See also category:&quot; or &quot;See also categories:&quot;'' (prefix messages).
:: The phrase is normally italicized. When defining LABEL any wikimarkup or HTML text will be accepted.
: You may assume a space before the first category link.
* {{para|project}}: Any valid interwiki or interproject prefix from de:, fr:, es: access to other language Wikipedias to cross-sister wiki's using sister projects abbreviations such as B:, Q:, S:, v: etc., and, where applicable, both interlingual and cross-project links can be rendered as follows:
:: {{para|project|''es''}} for linking categories on es.wikipedia.org, the Spanish-language Wikipedia, or
:: {{para|project|''de:V''}} for linking categories on de.wikiversity.org, the German-language [[Wikiversity]], or
:: {{para|project|''fr:B''}} for linking categories on fr.wikibooks.org, the French-language [[Wikibooks]].
* The template asks a block-level element, effectively forming its own paragraph; it may not be used inline in text.
;Simple examples
# &lt;code&gt;&lt;nowiki&gt;{{Category see also|A}}&lt;/nowiki&gt;&lt;/code&gt; → {{Category see also|A}}
# &lt;code&gt;&lt;nowiki&gt;{{Category see also|A|B}}&lt;/nowiki&gt;&lt;/code&gt; → {{Category see also|A|B}}
# &lt;code&gt;&lt;nowiki&gt;{{Category see also|A|B|C}}&lt;/nowiki&gt;&lt;/code&gt; → {{Category see also|A|B|C}}
;example w/default message:
: &lt;code&gt;&lt;nowiki&gt;{{Category see also|aaa|bbb|ccc|ddd|eee}}&lt;/nowiki&gt;&lt;/code&gt; → {{Category see also|aaa|bbb|ccc|ddd|eee}}
;example w/LABEL parameter option
: &lt;code&gt;&lt;nowiki&gt;{{Category see also|LABEL=See this list to evaluate whether one would be a better choice of|aaa|bbb|ccc|ddd|eee|fff}}&lt;/nowiki&gt;&lt;/code&gt; → {{Category see also|LABEL=See this list to evaluate whether one would be a better choice of|aaa|bbb|ccc|ddd|eee|fff}}
;Pragmatic example:
Bobsledding and luge are Olympic sports properly subcategorized under 'sledding', so shouldn't appear (strictly speaking categorically) as sub-categories of 'winter sports'. However, a lay reader using categories might expect to find them there. So to show their presence and guide proper selections for editors choosing categories, one can include the sub-sub-categories as a see also annotation on the [[:Category:Winter sports]] page.
: &lt;code&gt;&lt;nowiki&gt;{{Category see also|Luge|Bobsleigh}}&lt;/nowiki&gt;&lt;/code&gt; → {{Category see also|Luge|Bobsleigh}}
==Redirects==
* {{tl|Related category}}
* {{tl|Cat see also}}
==See also==
* {{tl|Category see also if exists}}
* {{tl|See also}}
{{Hatnote templates}}
== TemplateData ==
{{TemplateData header}}
&lt;templatedata&gt;
{
&quot;params&quot;: {
&quot;1&quot;: {
&quot;required&quot;: true
},
&quot;2&quot;: {},
&quot;3&quot;: {},
&quot;4&quot;: {},
&quot;5&quot;: {},
&quot;6&quot;: {},
&quot;7&quot;: {},
&quot;8&quot;: {},
&quot;9&quot;: {},
&quot;10&quot;: {},
&quot;11&quot;: {},
&quot;12&quot;: {},
&quot;13&quot;: {},
&quot;14&quot;: {},
&quot;15&quot;: {},
&quot;16&quot;: {},
&quot;17&quot;: {},
&quot;18&quot;: {},
&quot;19&quot;: {},
&quot;20&quot;: {},
&quot;21&quot;: {},
&quot;22&quot;: {},
&quot;23&quot;: {},
&quot;24&quot;: {},
&quot;25&quot;: {},
&quot;26&quot;: {},
&quot;27&quot;: {},
&quot;28&quot;: {},
&quot;29&quot;: {},
&quot;30&quot;: {},
&quot;31&quot;: {},
&quot;32&quot;: {},
&quot;33&quot;: {},
&quot;34&quot;: {},
&quot;35&quot;: {},
&quot;36&quot;: {},
&quot;37&quot;: {},
&quot;38&quot;: {},
&quot;39&quot;: {},
&quot;40&quot;: {},
&quot;41&quot;: {},
&quot;LABEL&quot;: {},
&quot;project&quot;: {
&quot;example&quot;: &quot;es, de:V, fr:B&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;en&quot;
}
}
}
&lt;/templatedata&gt;
&lt;includeonly&gt;{{sandbox other||
[[Category:Exclude in print]]
[[Category:Hatnote templates for category pages]]
[[Category:Internal category-link templates]]
[[Category:Interwiki link templates]]
[[Category:Wikipedia see also]]
}}&lt;/includeonly&gt;</text>
<sha1>pfgwbmbioxgl6h6ip7lelpiqiscxvrm</sha1>
</revision>
</page>
<page>
<title>Template:Sandbox other</title>
<ns>10</ns>
<id>48540583</id>
<revision>
<id>804535669</id>
<parentid>796349027</parentid>
<timestamp>2017-10-09T17:16:26Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Sandbox other]]&quot;: [[WP:High-risk templates|Highly visible template]]; 2,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="101">{{#ifeq:{{SUBPAGENAME}}|sandbox |{{{1|}}}|{{{2|}}}}}&lt;!--
--&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>8j5u9twyuvxrh14t71bd3kdusw7c4ja</sha1>
</revision>
</page>
<page>
<title>Module:Category see also</title>
<ns>828</ns>
<id>54026359</id>
<revision>
<id>822579325</id>
<parentid>780456974</parentid>
<timestamp>2018-01-27T05:50:30Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Module:Category see also]]&quot;: [[WP:High-risk templates|High-risk Lua module]]: 50,000+ transclusions ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3481">-- This module implements {{Category see also}}
local mHatnote = require('Module:Hatnote')
local p = {}
local function makeWikitextError(msg)
return string.format(
'&lt;strong class=&quot;error&quot;&gt;Error: %s ([[Template:Category see also]])&lt;/strong&gt;',
msg
)
end
-- Gets the length of the sequence seq. Usually this should be done with the #
-- operator, but we need to work with tables that get their values through an
-- __index metamethod.
local function getSequenceLength(seq)
local length = 0
for i in ipairs(seq) do
length = i
end
return length
end
-- Given a table of options, returns a function that formats categories for
-- those options.
--
-- Options:
-- project - a project code such as &quot;fr&quot; (for the French Wikipedia)
-- showPrefix - a boolean value for whether to show the &quot;Category:&quot; prefix
-- (and the project prefix if specified)
--
-- This is implemented as a function generator rather than a simple function
-- so that we can just process the options once, instead of every time we
-- generate a category.
local function newCategoryLinker(options)
local formatString
if options.project then
if options.showPrefix then
formatString = '[[:' .. options.project .. ':Category:%s]]'
else
formatString = '[[:' .. options.project .. ':Category:%s|%s]]'
end
else
if options.showPrefix then
formatString = '[[:Category:%s]]'
else
formatString = '[[:Category:%s|%s]]'
end
end
return function (category)
local title = mw.title.new(category)
local pageName, display
if not title then
-- category is not a valid title, usually because of invalid
-- characters like &lt; or [. Raise an error and suppress the stack
-- level information so that we can catch it and format the error
-- message as wikitext.
error(string.format(
&quot;'%s' is not a valid category name&quot;,
category
), 0)
elseif title.namespace == 14 then -- Category namespace
pageName = title.text
display = title.text
else
pageName = title.prefixedText
display = category
end
-- We can get away with using two arguments even when
-- options.showDisplay is false, as string.format ignores extra
-- arguments as long as there is an argument for each flag in the
-- format string.
return formatString:format(pageName, display)
end
end
function p._main(args)
local nLinks = getSequenceLength(args)
if nLinks &lt; 1 then
return makeWikitextError('at least one parameter required')
end
local makeCategoryLink = newCategoryLinker{
project = args.project,
showPrefix = nLinks == 1,
}
local links = {}
for i, cat in ipairs(args) do
local success, categoryLink = pcall(makeCategoryLink, cat)
if success then
links[i] = categoryLink
else
-- If there was an error, then categoryLink is the error message.
return makeWikitextError(categoryLink)
end
end
local formatString
if nLinks == 1 then
formatString = '%s: %s.'
else
formatString = '%s: the categories %s.'
end
-- Don't output a comma before the &quot;and&quot; if we have only two links.
local conjunction
if nLinks == 2 then
conjunction = ' and '
else
conjunction = ', and '
end
local hatnoteText = formatString:format(
args.LABEL or 'See also',
mw.text.listToText(links, ', ', conjunction)
)
return mHatnote._hatnote(hatnoteText, {selfref = true})
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Category see also',
})
return p._main(args)
end
return p</text>
<sha1>ackncnm8uwpmexk2x424udyq1o7l1q3</sha1>
</revision>
</page>
<page>
<title>Template:!xt</title>
<ns>10</ns>
<id>24460381</id>
<revision>
<id>819844031</id>
<parentid>819842045</parentid>
<timestamp>2018-01-11T16:01:08Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>+class</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="400">{{#ifeq:{{NAMESPACE}}|{{ns:0}}|{{FormattingError|[[:{{#invoke:TEMPLATENAME|main}}]] is only for examples of style and formatting. Do not use it in actual articles.}}|&lt;span class=&quot;example deprecated-content example-bad&quot; style=&quot;font-family: Georgia, 'DejaVu Serif', serif; color: #8B0000;&quot; {{#if:{{{title|}}}|title=&quot;{{{title}}}&quot;}}&gt;{{{1|Example text}}}&lt;/span&gt;}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>as9fbbw0jw0vo3kag3jnc5uddujfcl5</sha1>
</revision>
</page>
<page>
<title>Template:AWB standard installation</title>
<ns>10</ns>
<id>38544087</id>
<revision>
<id>804500682</id>
<parentid>675608526</parentid>
<timestamp>2017-10-09T12:28:15Z</timestamp>
<contributor>
<username>Xezbeth</username>
<id>86247</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:AWB standard installation]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="703">{{ mbox
| image = [[File:AWB logo draft.png|44x50px|alt=|link=]]
| text = This template is used by the standard installation of [[Wikipedia:AutoWikiBrowser|AutoWikiBrowser]] (AWB). If you are planning to make changes to this template, how it should be used, or nominate it for deletion, please notify AWB's user base and maintainers beforehand at [[Wikipedia talk:AutoWikiBrowser|Wikipedia talk:AWB]] as a courtesy.{{#if:{{{1|}}}|&lt;p&gt;
{{{1}}}}}}}&lt;includeonly&gt;{{#if:{{{nocat|}}}||{{#ifeq:{{PAGENAME}}|{{BASEPAGENAME}}|[[Category:Templates used by AutoWikiBrowser|{{PAGENAME}}]]}}}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;&lt;/noinclude&gt;</text>
<sha1>eemcljcgp5x7metgbo0ndo0nnpwmnjl</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style 1</title>
<ns>10</ns>
<id>34197376</id>
<revision>
<id>804500169</id>
<parentid>774447218</parentid>
<timestamp>2017-10-09T12:21:54Z</timestamp>
<contributor>
<username>Xezbeth</username>
<id>86247</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Citation Style 1]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1528">{{Navbox
|name = Citation Style 1
|title = [[Help:Citation Style 1|Citation Style 1]]
|below = [[Help talk:Citation Style 1|Citation Style 1 noticeboard]]
|state={{{state|autocollapse}}}
|listclass=hlist
|selected={{{1|}}}
|group1 = General &lt;br /&gt;templates
|abbr1 = general
|list1 =
; {{tl|Cite arXiv}}
: [[arXiv]] preprints
; {{tl|Cite AV media}}
: audio and visual
; {{tl|Cite AV media notes}}
: audio and visual liner notes
; {{tl|cite bioRxiv}}
: [[bioRxiv]] preprints
; {{tl|Cite book}}
: books
; {{tl|Cite conference}}
: conference papers
; {{tl|Cite encyclopedia}}
: edited collections
; {{tl|Cite episode}}
: radio or television episodes
; {{tl|Cite interview}}
: interviews
; {{tl|Cite journal}}
: academic journals and papers
; {{tl|Cite magazine}}
: magazines
; {{tl|Cite mailing list}}
: public mailing lists
; {{tl|Cite map}}
: maps
; {{tl|Cite news}}
: news articles
; {{tl|Cite newsgroup}}
: online newsgroups
; {{tl|Cite podcast}}
: audio or video podcast
; {{tl|Cite press release}}
: press releases
; {{tl|Cite report}}
: unpublished reports
; {{tl|Cite serial}}
: audio or video serials
; {{tl|Cite sign}}
: signs, plaques
; {{tl|Cite speech}}
: speeches
; {{tl|Cite techreport}}
: technical reports
; {{tl|Cite thesis}}
: theses
; {{tl|Cite web}}
: web sources
|group3 = Categories
|abbr3 = cat
|list3 =
* [[:Category:Citation Style 1 templates|Citation Style 1 templates]]
|group4 = Documentation
|abbr4 = doc
|list4 =
* {{tl|Citation Style documentation}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>d5txg3skgar9hxcb3jjszfaf878wa08</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation</title>
<ns>10</ns>
<id>34148357</id>
<revision>
<id>745311971</id>
<parentid>730341611</parentid>
<timestamp>2016-10-20T12:11:47Z</timestamp>
<contributor>
<username>RP88</username>
<id>2236783</id>
</contributor>
<comment>add 'media' option</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="577">&lt;includeonly&gt;{{Citation Style documentation/{{{1|}}}
|aliases={{{aliases|}}}
|aliases2={{{aliases2|}}}
|arxiv={{{arxiv|}}}
|type_default={{{type_default|}}}
|title_format={{{title_format|}}}
|title_title={{{title_title|}}}
|contributor={{{contributor|}}}
|coauthors={{{coauthors|}}}
|date2={{{date2|}}}
|others={{{others|}}}
|cs2={{{cs2|}}}
|lua={{{lua|}}}
|map={{{map|}}}
|pmc={{{pmc|}}}
|work={{{work|}}}
|department={{{department|}}}
|began={{{began|}}}
|link={{{link|}}}
|media={{{media|}}}
|2={{{2|}}}
|3={{{3|}}}
}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>faly5wxropa03glouk9wbeyvi60371f</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/agency</title>
<ns>10</ns>
<id>34760499</id>
<revision>
<id>730185847</id>
<parentid>730141719</parentid>
<timestamp>2016-07-17T09:17:11Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>simpler</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="198">* &lt;b id=&quot;csdoc_agency&quot;&gt;agency&lt;/b&gt;: The [[news agency]] (wire service) that provided the content; examples: [[Associated Press]], [[Reuters]], [[Agence France-Presse]]. May be wikilinked if relevant.</text>
<sha1>t92s0n6ueqfi1dkomzkpy5h0vtalxks</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/author</title>
<ns>10</ns>
<id>34353323</id>
<revision>
<id>762654506</id>
<parentid>761795312</parentid>
<timestamp>2017-01-30T00:53:32Z</timestamp>
<contributor>
<username>Kanguole</username>
<id>5563803</id>
</contributor>
<comment>add aliases</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="6502">* &lt;b id=&quot;csdoc_author&quot;&gt;last&lt;/b&gt;: Surname of a single author. Do not wikilink—use '''author-link''' instead. For corporate authors or authors for whom only one name is listed by the source, use '''last''' or one of its aliases (e.g. {{para|author|Bono}}). Aliases: '''surname''', '''author''', '''last1''', '''surname1''', '''author1'''{{#if:{{{aliases|}}}|, {{{aliases}}}}}.
** '''author''': this parameter is used to hold the complete name of a single author (first and last) or to hold the name of a corporate author. This parameter should never hold the names of more than one author.
** '''first''': Given or first names of author; for example: ''Firstname Middlename'' or ''Firstname M.'' or ''Firstname M., Sr.'' Do not wikilink—use '''author-link''' instead. Aliases: '''given''', '''first1''', '''given1'''. Requires '''last'''; first name will not display if '''last''' is empty.
** OR: for multiple authors, use '''last1''', '''first1''' through '''last&lt;var&gt;n&lt;/var&gt;''', '''first&lt;var&gt;n&lt;/var&gt;''', where ''n'' is any consecutive number for an unlimited number of authors (each '''first&lt;var&gt;n&lt;/var&gt;''' requires a corresponding '''last&lt;var&gt;n&lt;/var&gt;'''). {{Crossref|See the [[#csdoc_display|'''display''']] parameters to change how many authors are displayed.}} Aliases: '''surname1''', '''given1''' through '''surname&lt;var&gt;n&lt;/var&gt;''', '''given&lt;var&gt;n&lt;/var&gt;''', or '''author1''' through '''author&lt;var&gt;n&lt;/var&gt;'''. For an individual author plus an institutional author, you can use {{para|first1|...}}{{para|last1|...}}{{para|author2|...}}.
** '''author-link''': Title of existing Wikipedia article about the author—not the author's website; do not wikilink. Aliases: '''author-link1''', '''authorlink''', '''authorlink1''', '''author1-link''', '''author1link'''.
**OR: for multiple authors, use '''author-link1''' through '''author-link&lt;var&gt;n&lt;/var&gt;'''. Aliases: '''authorlink1''' through '''authorlink&lt;var&gt;n&lt;/var&gt;''', or '''author1-link''' through '''author&lt;var&gt;n&lt;/var&gt;-link''', or '''author1link''' through '''author&lt;var&gt;n&lt;/var&gt;link'''.
**'''name-list-format''': displays authors and editors in [[Vancouver style]] when set to &lt;code&gt;vanc&lt;/code&gt; and when the list uses &lt;code&gt;last&lt;/code&gt;/&lt;code&gt;first&lt;/code&gt; parameters for the name list(s).
*'''vauthors''': comma-separated list of author names in [[Vancouver style]]; enclose corporate or institutional author names in doubled parentheses:
*:{{para|vauthors|Smythe JB, ((Megabux Corporation))}}
** '''author-link''' and '''author-mask''' may be used for the individual names in {{para|vauthors}} as described above{{#if:{{{arxiv|}}}||
*'''authors''': Free-form list of author names; use of this parameter is discouraged because it does not contribute to a citation's metadata; not an alias of '''last'''.}}{{#if: {{{coauthors|}}}|
* {{xtd|'''coauthors'''}}: (deprecated) &lt;s&gt;Names of coauthors. Requires '''author''', '''authors''', or '''last''n'''''&lt;/s&gt; Include coauthors in '''author''' or '''authors''' or use separate '''author''n''''' or '''last''n'''''/'''first''n''''' to list coauthors.}}{{#if: {{{contributor|}}}|
* '''contributor-last''': Surname of contributor. Do not wikilink—use '''contributor-link''' instead. For book cites only, requires '''contribution'''; used primarily to cite afterword, foreword, introduction, or preface to '''author'''{{'s}} work. Aliases: '''contributor-surname''', '''contributor1''', '''contributor1-last''', '''contributor-last1'''.
**'''contributor-first''': Given or first names of contributor. Do not wikilink—use '''contributor-link''' instead. Aliases: '''contributor-given''', '''contributor1-first''', '''contributor-first1'''.
** OR: for multiple contributors, use '''contributor-last1''', '''contributor-first1''' through '''contributor-last&lt;var&gt;n&lt;/var&gt;''', '''contributor-first&lt;var&gt;n&lt;/var&gt;''' where ''n'' is any consecutive number for an unlimited number of contributors (each '''contributor-first&lt;var&gt;n&lt;/var&gt;''' requires a corresponding '''contributor-last&lt;var&gt;n&lt;/var&gt;'''). Aliases: '''contributor1-last''', '''contributor1-first''' through '''contributor&lt;var&gt;n&lt;/var&gt;-last''', '''contributor&lt;var&gt;n&lt;/var&gt;-first''', or '''contributor1''' through '''contributor&lt;var&gt;n&lt;/var&gt;'''.
** '''contributor-link''': Title of existing Wikipedia article about the contributor—not the contributor's website; do not wikilink. Aliases: '''contributor-link1''', '''contributor1-link'''.
**OR: for multiple contributors, use '''contributor-link1''' through '''contributor-link&lt;var&gt;n&lt;/var&gt;'''. Aliases: '''contributor1-link''' through '''contributor&lt;var&gt;n&lt;/var&gt;-link'''.}}
* &lt;b id=&quot;csdoc_translator&quot;&gt;translator-last&lt;/b&gt;: Surname of translator. Do not wikilink—use '''translator-link''' instead. Aliases: '''translator-surname''', '''translator1''', '''translator1-last''', '''translator-last1'''.
**'''translator-first''': Given or first names of translator. Do not wikilink—use '''translator-link''' instead. Aliases: '''translator-given''', '''translator1-first''', '''translator-first1'''.
** OR: for multiple translators, use '''translator-last1''', '''translator-first1''' through '''translator-last&lt;var&gt;n&lt;/var&gt;''', '''translator-first&lt;var&gt;n&lt;/var&gt;''', where ''n'' is any consecutive number for an unlimited number of translators (each '''translator-first&lt;var&gt;n&lt;/var&gt;''' requires a corresponding '''translator-last&lt;var&gt;n&lt;/var&gt;'''). Aliases: '''translator1-last''', '''translator1-first''' through '''translator&lt;var&gt;n&lt;/var&gt;-last''', '''translator&lt;var&gt;n&lt;/var&gt;-first''', or '''translator1''' through '''translator&lt;var&gt;n&lt;/var&gt;'''.
** '''translator-link''': Title of existing Wikipedia article about the translator—not the translator's website; do not wikilink. Aliases: '''translator-link1''', '''translator1-link'''.
**OR: for multiple translators, use '''translator-link1''' through '''translator-link&lt;var&gt;n&lt;/var&gt;'''. Aliases: '''translator1-link''' through '''translator&lt;var&gt;n&lt;/var&gt;-link'''.
* &lt;b id=&quot;csdoc_collaboration&quot;&gt;collaboration&lt;/b&gt;: Name of a group of authors or collaborators; requires '''author''', '''last''', or '''vauthors''' listing one or more primary authors; follows author name-list; appends &quot;et al.&quot; to author name-list.{{#if: {{{others|}}}|
* &lt;b id=&quot;csdoc_others&quot;&gt;others&lt;/b&gt;: To record other contributors to the work, including illustrators. For the parameter value, write ''Illustrated by John Smith''.}}
*Note: When using {{sfnote|lc=y}} or {{paren|lc=y}} styles with templates, do not use multiple names in one field, or else the anchor will not match the inline link.</text>
<sha1>nf9rx37u9wtxfhdigkmag2vahwr1j3o</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/coins</title>
<ns>10</ns>
<id>34353312</id>
<revision>
<id>817627960</id>
<parentid>729203593</parentid>
<timestamp>2017-12-29T16:00:50Z</timestamp>
<contributor>
<username>OwenBlacker</username>
<id>62026</id>
</contributor>
<comment>Fixed [[MOS:BADHEAD|bad heading]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2062">This template embeds [[COinS]] metadata in the HTML output, allowing [[reference management software]] to retrieve bibliographic metadata. {{crossref|See [[Wikipedia:COinS]].}} As a general rule, only one data item per parameter. Do not include explanatory or alternate text:
* Use {{xt|{{para|date|27 September 2007}}}} not {{!xt|{{para|date|27 September 2007 (print version 25 September)}}}}
Use of templates within the citation template is discouraged because many of these templates will add extraneous HTML or CSS that will be included raw in the metadata. Also, HTML entities, for example &lt;code&gt;&amp;amp;nbsp;&lt;/code&gt;, &lt;code&gt;&amp;amp;ndash;&lt;/code&gt;, etc, should not be used in parameters that contribute to the metadata. Do not include Wiki markup &lt;code&gt;&lt;nowiki&gt;''&lt;/nowiki&gt;&lt;/code&gt; (italic font) or &lt;code&gt;&lt;nowiki&gt;'''&lt;/nowiki&gt;&lt;/code&gt; (bold font) because these markup characters will contaminate the metadata.
==== COinS metadata is created for these parameters ====
*{{para|periodical}}, {{para|journal}}, {{para|newspaper}}, {{para|magazine}}, {{para|work}}, {{para|website}}, {{para|encyclopedia}}, {{para|encyclopaedia}}, {{para|dictionary}}
*{{para|chapter}}, {{para|contribution}}, {{para|entry}}, {{para|article}}, {{para|section}}
*{{para|title}}
*{{para|publication-place}}, {{para|publicationplace}}, {{para|place}}, {{para|location}}
*{{para|date}}, {{para|year}}, {{para|publication-date}}, {{para|publicationdate}}
*{{para|series}}, {{para|version}}
*{{para|volume}}
*{{para|issue}}, {{para|number}}
*{{para|page}}, {{para|pages}}, {{para|at}}
*{{para|edition}}
*{{para|publisher}}, {{para|distributor}}, {{para|institution}}
*{{para|url}}
*{{para|chapter-url}}, {{para|chapterurl}}, {{para|contribution-url}}, {{para|contributionurl}}, {{para|section-url}}, {{para|sectionurl}}
*{{para|author#}}, {{para|author-last#}}, {{para|author#-last}}, {{para|last#}}, {{para|surname#}}
*{{para|author-first#}}, {{para|author#-first}}, {{para|first#}}, {{para|given#}}
*any of the named identifiers ({{para|isbn}}, {{para|issn}}, {{para|doi}}, {{para|pmc}}, etc)</text>
<sha1>qhmqqbmxupbgtkah54hr72br4yfxqto</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/cs1</title>
<ns>10</ns>
<id>39854131</id>
<revision>
<id>785622487</id>
<parentid>785621202</parentid>
<timestamp>2017-06-14T14:48:26Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<comment>Undid revision 785621202 by [[Special:Contributions/EdChem|EdChem]] ([[User talk:EdChem|talk]]) cite tweet is a meta-template that uses the cs1 template cite web;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2019">{{Infobox
|bodystyle =
|name = Citation Style documentation/cs1
|title = {{cs1}} templates
|titlestyle =
|headerstyle =
|labelstyle = width:47%; font-size:80%
|datastyle =
|label1 = {{tl|Cite arXiv}}
|data1 = [[arXiv]] preprints
|label2 = {{tl|Cite AV media}}
|data2 = audio and visual
|label3 = {{tl|Cite AV media notes}}
|data3 = audio and visual liner notes
|label4 = {{tl|Cite bioRxiv}}
|data4 = [[bioRxiv]] preprints
|label5 = {{tl|Cite book}}
|data5 = books
|label6 = {{tl|Cite conference}}
|data6 = conference papers
|label7 = {{tl|Cite encyclopedia}}
|data7 = edited collections
|label8 = {{tl|Cite episode}}
|data8 = radio or television episodes
|label9 = {{tl|Cite interview}}
|data9 = interviews
|label10 = {{tl|Cite journal}}
|data10 = academic journals and papers
|label11 = {{tl|Cite magazine}}
|data11 = magazines, periodicals
|label12 = {{tl|Cite mailing list}}
|data12 = public mailing lists
|label13 = {{tl|Cite map}}
|data13 = maps
|label14 = {{tl|Cite news}}
|data14 = news articles
|label15 = {{tl|Cite newsgroup}}
|data15 = online newsgroups
|label16 = {{tl|Cite podcast}}
|data16 = audio or video podcast
|label17 = {{tl|Cite press release}}
|data17 = press releases
|label18 = {{tl|Cite report}}
|data18 = reports
|label19 = {{tl|Cite serial}}
|data19 = audio or video serials
|label20 = {{tl|Cite sign}}
|data20 = signs, plaques
|label21 = {{tl|Cite speech}}
|data21 = speeches
|label22 = {{tl|Cite techreport}}
|data22 = technical reports
|label23 = {{tl|Cite thesis}}
|data23 = theses
|label24 = {{tl|Cite web}}
|data24 = any resource accessible through a URL
|header25= See also:
|data26 = {{Flatlist|
* [[:Category:Citation Style 1 meta-templates|Meta-templates]]
* [[:Category:Citation Style 1 specific-source templates|Specific-source templates]]
* [[:Category:Templates that wrap other citation templates|Wrapper templates]]
}}
}}&lt;noinclude&gt;{{documentation|content=
==See also==
*{{tl|Citation Style 1}}
}}&lt;/noinclude&gt;</text>
<sha1>4smrnjliwz4vw1h6ymv8kgyvoyq0lmy</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/date</title>
<ns>10</ns>
<id>34353537</id>
<revision>
<id>730186067</id>
<parentid>730141334</parentid>
<timestamp>2016-07-17T09:20:12Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>simpler</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2539">* &lt;b id=&quot;csdoc_date&quot;&gt;date&lt;/b&gt;: Date of source being referenced. Can be full date (day, month, and year) or partial date (month and year, season and year, or year). Use same format as other publication dates in the citations.{{r|date|group=date}} Required when '''year''' is used to disambiguate {{tlx|sfn}} links to multiple-work citations by the same author in the same year.{{sup|[[Template:Sfn#More_than_one_work_in_a_year|[more]]]}} Do not wikilink. Displays after the authors and is enclosed in parentheses. If there is no author, then displays after publisher.{{#if:{{{aliases|}}}|&amp;#32;Aliases: {{{aliases}}}}} {{crossref|For acceptable date formats, see {{section link|Help:Citation Style 1|Dates}}.}}
:For approximate year, precede with &quot;&lt;code&gt;c. &lt;/code&gt;&quot;, like this: {{para|date|c. 1900}}.
{{anchor|Undated}}
:For no date, or &quot;undated&quot;, add as {{para|date|n.d.}}
* &lt;b id=&quot;csdoc_year&quot;&gt;year&lt;/b&gt;: Year of source being referenced. Use of {{para|date}} is recommended unless all of the following conditions are met:
*# The template uses {{para|ref|harv}}, or the template is {{tlx|citation}}, or {{para|mode|cs2}}
*# The {{para|date}} format is YYYY-MM-DD.
*# The citation requires a &lt;code&gt;[[Wikipedia:Citation templates and reference anchors|CITEREF]]&lt;/code&gt; [[Template:Sfn#More than one work in a year|disambiguator]].
* &lt;b id=&quot;csdoc_origyear&quot;&gt;orig-year&lt;/b&gt;: Original publication year; displays after the date or year. For clarity, please supply specifics. For example: {{para|orig-year|First published 1859}} or {{para|orig-year|Composed 1904}}. Alias: '''origyear'''
* &lt;b id=&quot;csdoc_df&quot;&gt;df&lt;/b&gt;: date format; sets rendered dates to the specified format; does not support date ranges or seasonal dates. Accepts one value which may be one of these:
*:&lt;code&gt;dmy&lt;/code&gt; – set publication dates to day month year format; access- and archive-dates are not modified;
*:&lt;code&gt;mdy&lt;/code&gt; – as above for month day, year format
*:&lt;code&gt;ymd&lt;/code&gt; – as above for year initial numeric format YYYY-MM-DD
*:&lt;code&gt;dmy-all&lt;/code&gt; – set publication, access-, and archive-dates to day month year format;
*:&lt;code&gt;mdy-all&lt;/code&gt; – as above for month day, year format
*:&lt;code&gt;ymd-all&lt;/code&gt; – as above for year initial numeric format YYYY-MM-DD
{{#if:{{{aliases2|}}}|&amp;#32;Aliases:{{{aliases2}}}}}
{{reflist|group=date|refs=&lt;ref name=date&gt;Publication dates in references within an article should all have the same format. This may be a different format from that used for archive and access dates. {{crossref|See [[MOS:DATEUNIFY]].}}&lt;/ref&gt;}}</text>
<sha1>8x1nfra16rveghs2sx9nca9g5ttq6ct</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/deprecated</title>
<ns>10</ns>
<id>36907242</id>
<revision>
<id>786109652</id>
<parentid>777803295</parentid>
<timestamp>2017-06-17T09:51:44Z</timestamp>
<contributor>
<ip>82.203.24.241</ip>
</contributor>
<comment>Grammar!</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="43">None of the cs1|2 parameters is deprecated.</text>
<sha1>50v239ux62zow4amqmm1iror37r1tko</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/display</title>
<ns>10</ns>
<id>34353646</id>
<revision>
<id>751204041</id>
<parentid>730186299</parentid>
<timestamp>2016-11-24T01:20:18Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<comment>mode correction;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3047">* &lt;span id=&quot;csdoc_display&quot;&gt;&lt;/span&gt;&lt;b id=&quot;csdoc_mode&quot;&gt;mode&lt;/b&gt;: Sets element separator, default terminal punctuation, and certain capitalization according to the value provided. For {{para|mode|cs1}}, element separator and terminal punctuation is a period (&lt;code&gt;.&lt;/code&gt;); where appropriate, initial letters of certain words are capitalized ('Retrieved...'). For {{para|mode|cs2}}, element separator is a comma (&lt;code&gt;,&lt;/code&gt;); terminal punctuation is omitted; where appropriate, initial letters of certain words are not capitalized ('retrieved...'). To override default terminal punctuation use '''postscript'''.
* &lt;b id=&quot;csdoc_author-mask&quot;&gt;author-mask&lt;/b&gt;: Replaces the name of the first author with [[dash#Em dash|em dashes]] or text. Set '''author-mask''' to a numeric value ''n'' to set the dash ''n'' em spaces wide; set '''author-mask''' to a text value to display the text without a trailing author separator; for example, &quot;with&quot;. You must still include the values for all authors for metadata purposes. Primarily intended for use with bibliographies or bibliography styles where multiple works by a single author are listed sequentially such as {{sfnote|lc=y}}. Do not use in a list generated by {{tlx|reflist}}, {{tag|references|s}} or similar as there is no control of the order in which references are displayed. You can also use '''editor-mask''' and '''translator-mask''' in the same way.
* &lt;b id=&quot;csdoc_display-authors&quot;&gt;&lt;span id=&quot;csdoc_displayauthors&quot;&gt;&lt;/span&gt;display-authors&lt;/b&gt;: Controls the number of author names that are displayed when a citation is published. To change the displayed number of authors, set '''display-authors''' to the desired number. For example, {{para|display-authors|2}} will display only the first two authors in a citation. By default, all authors are displayed. {{para|display-authors|etal}} displays all authors in the list followed by et al. Aliases: '''displayauthors'''.
* &lt;b id=&quot;csdoc_display-editors&quot;&gt;&lt;span id=&quot;csdoc_displayeditors&quot;&gt;&lt;/span&gt;display-editors&lt;/b&gt;: Controls the number of editor names that are displayed when a citation is published. To change the displayed number of editors, set '''display-editors''' to the desired number. For example, {{para|display-editors|2}} will display only the first two editors in a citation. By default, all editors are displayed. {{para|display-editors|etal}} displays all editors in the list followed by et al. Aliases: '''displayeditors'''.
* &lt;b id=&quot;csdoc_lastauthoramp&quot;&gt;last-author-amp&lt;/b&gt;: Switches the separator between the last two names of the author list to space ampersand space (&lt;code&gt; &amp; &lt;/code&gt;) when set to &lt;code&gt;y&lt;/code&gt;, &lt;code&gt;yes&lt;/code&gt;, or &lt;code&gt;true&lt;/code&gt;. Example: {{para|last-author-amp|yes}}
* &lt;b id=&quot;csdoc_postscript&quot;&gt;postscript&lt;/b&gt;: Controls the closing punctuation for a citation; defaults to {{#if: {{{cs2|}}}|none|a period (&lt;code&gt;.&lt;/code&gt;); for no terminating punctuation, specify {{para|postscript|none}} – leaving {{para|postscript}} empty is the same as omitting it, but is ambiguous}}. Ignored if '''quote''' is defined.</text>
<sha1>miw3ss266oeplq6qw8sidm6vihxhuft</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/editor</title>
<ns>10</ns>
<id>34353451</id>
<revision>
<id>762653663</id>
<parentid>730186391</parentid>
<timestamp>2017-01-30T00:47:23Z</timestamp>
<contributor>
<username>Kanguole</username>
<id>5563803</id>
</contributor>
<comment>add aliases</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2734">* &lt;b id=&quot;csdoc_editors&quot;&gt;editor-last&lt;/b&gt;: Surname of editor. Do not wikilink—use '''editor-link''' instead. Where the surname is usually written first—as in Chinese—or for corporate authors, simply use '''editor-last''' to include the same format as the source. Aliases: '''editor-last1''', '''editor1-last''', '''editor-surname''', '''editor-surname1''', '''editor1-surname''', '''editor''', '''editor1'''.
** '''editor''': this parameter is used to hold the complete name of a single editor (first and last). This parameter should never hold the names of more than one editor.
** '''editor-first''': Given or first names of editor, including title(s); example: ''Firstname Middlename'' or ''Firstname M.'' or ''Dr. Firstname M., Sr.'' Do not wikilink—use '''editor-link''' instead. Aliases: '''editor-first1''', '''editor1-first''', '''editor-given''', '''editor-given1''', '''editor1-given'''.
**OR: for multiple editors, use '''editor-last1''', '''editor-first1''' through '''editor-last&lt;var&gt;n&lt;/var&gt;''', '''editor-first&lt;var&gt;n&lt;/var&gt;''' (Aliases: '''editor&lt;var&gt;n&lt;/var&gt;-last''', '''editor-surname&lt;var&gt;n&lt;/var&gt;''' or '''editor&lt;var&gt;n&lt;/var&gt;-surname'''; '''editor&lt;var&gt;n&lt;/var&gt;-first''', '''editor-given&lt;var&gt;n&lt;/var&gt;''' or '''editor&lt;var&gt;n&lt;/var&gt;-given'''; '''editor&lt;var&gt;n&lt;/var&gt;'''). For an individual editor plus an institutional editor, you can use {{para|editor-first1|...}}{{para|editor-last1|...}}{{para|editor2|...}}.
:* '''editor-link''': Title of existing Wikipedia article about the editor—not the editor's website; do not wikilink. Aliases: '''editor-link1'''.
:*OR: for multiple editors, use '''editor-link1''' through '''editor-link&lt;var&gt;n&lt;/var&gt;''' (alias '''editor&lt;var&gt;n&lt;/var&gt;-link''').
:*'''name-list-format''': displays authors and editors in [[Vancouver style]] when set to &lt;code&gt;vanc&lt;/code&gt; and when the list uses &lt;code&gt;last&lt;/code&gt;/&lt;code&gt;first&lt;/code&gt; parameters for the name list(s)
*'''veditors''': comma separated list of editor names in [[Vancouver style]]; enclose corporate or institutional names in doubled parentheses:
*:{{para|veditors|Smythe JB, ((Megabux Corporation))}}
:* '''editor-link''n''''' and '''editor-mask''n''''' may be used for the individual names in {{para|veditors}}, as described above
*'''editors''': Free-form list of editor names; use of this parameter is discouraged; not an alias of '''editor-last'''
:Display:
::Use '''display-editors''' to control the length of the displayed editor name list and to specify when &quot;et al.&quot; is included.
::If authors: Authors are first, followed by the included work, then &quot;In&quot; and the editors, then the main work.
::If no authors: Editors appear before the included work; a single editor is followed by &quot;ed.&quot;; multiple editors are followed by &quot;eds.&quot;</text>
<sha1>7b4ns0cndhjx913n6cre8r3wor7a8oe</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/id1</title>
<ns>10</ns>
<id>34353609</id>
<revision>
<id>740881520</id>
<parentid>740881285</parentid>
<timestamp>2016-09-23T22:57:00Z</timestamp>
<contributor>
<username>Headbomb</username>
<id>1461430</id>
</contributor>
<comment>example</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="353">* &lt;b id=&quot;csdoc_id&quot;&gt;id&lt;/b&gt;: A [[unique identifier]], used where none of the specialized identifiers are applicable; wikilink or use a template as applicable. For example, {{para|id|NCJ 122967}} will append &quot;NCJ 122967&quot; at the end of the citation. You can use templates such as {{para|id|&lt;nowiki&gt;{{NCJ|122967}}&lt;/nowiki&gt;}} to append {{NCJ|122967}} instead.</text>
<sha1>ei6iyemquu1jx7dirqal70ub1uml8n9</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/id2</title>
<ns>10</ns>
<id>34353614</id>
<revision>
<id>822469302</id>
<parentid>816462147</parentid>
<timestamp>2018-01-26T15:19:59Z</timestamp>
<contributor>
<username>KolbertBot</username>
<id>31691822</id>
</contributor>
<minor/>
<comment>Bot: [[User:KolbertBot|HTTP→HTTPS]] (v481)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5912">These identifiers create links and are designed to accept a single value. Using multiple values or other text will break the link and/or invalidate the identifier. In general, the parameters should include only the variable part of the identifier, e.g. &lt;code&gt;rfc=822&lt;/code&gt; or &lt;code&gt;pmc=345678&lt;/code&gt;.
* &lt;b id=&quot;csdoc_arxiv&quot;&gt;arxiv&lt;/b&gt;: [[arXiv]] [https://arxiv.org/help/arxiv_identifier identifier]; for example: &lt;code&gt;arxiv=hep-th/9205027&lt;/code&gt; (before April 2007) or &lt;code&gt;arxiv=0706.0001&lt;/code&gt; or &lt;code&gt;arxiv=1501.00001&lt;/code&gt; (since April 2007). Do not include extraneous file extensions like &quot;.pdf&quot; or &quot;.html&quot;.
* &lt;b id=&quot;csdoc_asin&quot;&gt;asin&lt;/b&gt;: [[Amazon Standard Identification Number]]; if first character of '''asin''' value is a digit, use '''isbn'''. Because this link favours one specific distributor, include it only if standard identifiers are not available.
** &lt;b id=&quot;csdoc_asin-tld&quot;&gt;asin-tld&lt;/b&gt;: ASIN top-level domain for Amazon sites other than the US; valid values: &lt;code&gt;au&lt;/code&gt;, &lt;code&gt;br&lt;/code&gt;, &lt;code&gt;ca&lt;/code&gt;, &lt;code&gt;cn&lt;/code&gt;, &lt;code&gt;co.jp&lt;/code&gt;, &lt;code&gt;co.uk&lt;/code&gt;, &lt;code&gt;de&lt;/code&gt;, &lt;code&gt;es&lt;/code&gt;, &lt;code&gt;fr&lt;/code&gt;, &lt;code&gt;it&lt;/code&gt;, &lt;code&gt;mx&lt;/code&gt;
* &lt;b id=&quot;csdoc_bibcode&quot;&gt;bibcode&lt;/b&gt;: [[Bibcode]]; used by a number of astronomical data systems; for example: &lt;code&gt;1974AJ.....79..819H&lt;/code&gt;
* &lt;b id=&quot;csdoc_biorxiv&quot;&gt;biorxiv&lt;/b&gt;: [[bioRxiv]] id, a 6-digit number at the end of the biorXiv URL (e.g. &lt;code&gt;078733&lt;/code&gt; for http://biorxiv.org/content/early/2016/10/01/078733 or https://dx.doi.org/10.1101/078733)
* &lt;b id=&quot;csdoc_citeseerx&quot;&gt;citeseerx&lt;/b&gt;: [[CiteSeerX]] id, a string of digits and dots found in a CiteSeerX URL (e.g. &lt;code&gt;10.1.1.176.341&lt;/code&gt; for http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.176.341 )
* &lt;b id=&quot;csdoc_doi&quot;&gt;doi&lt;/b&gt;: [[Digital object identifier]]; for example: &lt;code&gt;10.1038/news070508-7&lt;/code&gt;. It is checked to ensure it begins with ({{code|10.}}).
** &lt;b id=&quot;csdoc_doi_brokendate&quot;&gt;doi-broken-date&lt;/b&gt;: Date the DOI was found to be non-working at https://dx.doi.org. Use the same format as other dates in the article. Alias: '''doi-inactive-date'''
* &lt;b id=&quot;csdoc_eissn&quot;&gt;eissn&lt;/b&gt;: [[International Standard Serial Number]] for the electronic media of a serial publication; eight characters may be split into two groups of four using a [[hyphen]], but not an [[Dash#En dash|en dash]] or a space. Alias: '''EISSN'''
* &lt;b id=&quot;csdoc_hdl&quot;&gt;hdl&lt;/b&gt;: [[Handle System]] identifier for digital objects and other resources on the Internet. Alias: '''HDL'''
* &lt;b id=&quot;csdoc_isbn&quot;&gt;isbn&lt;/b&gt;: [[International Standard Book Number]]; for example: &lt;code&gt;978-0-8126-9593-9&lt;/code&gt;. {{crossref|(See [[Wikipedia:ISBN]] and {{section link|ISBN|Overview}}.)}} Dashes in the ISBN are optional, but preferred. Use the ISBN actually printed on or in the book. Use the 13-digit ISBN – beginning with 978 or 979 – when it is available. If only a 10-digit ISBN is printed on or in the book, use it. ISBNs can be found on the page with the publisher's information – usually the back of the title page – or beneath the barcode as a number beginning with 978 or 979 (barcodes beginning with any other numbers are not ISBNs). For sources with the older 9-digit SBN system, prefix the number with a zero; thus, ''SBN 902888-45-5'' should be entered as {{para|isbn|0-902888-45-5}}. Do not convert a 10-digit ISBN to 13-digit by just adding the 978 prefix; the last digit is a calculated check digit and just making changes to the numbers will make the ISBN invalid. This parameter should hold only the ISBN without ''any'' additional characters. It is checked for length, invalid characters – anything other than numbers, spaces, and hyphens, with &quot;X&quot; permitted as the last character in a 10-digit ISBN – and the proper check digit. Alias: '''ISBN'''
* &lt;b id=&quot;csdoc_ismn&quot;&gt;ismn&lt;/b&gt;: [[International Standard Music Number]]; for example: &lt;code&gt;979-0-9016791-7-7&lt;/code&gt;. [[Hyphens]] or spaces in the ISMN are optional. Use the ISMN actually printed on or in the work. This parameter should hold only the ISMN without ''any'' additional characters. It is checked for length, invalid characters – anything other than numbers, spaces, and hyphens – and the proper check digit. Alias: '''ISMN'''
* &lt;b id=&quot;csdoc_issn&quot;&gt;issn&lt;/b&gt;: [[International Standard Serial Number]]; eight characters may be split into two groups of four using a [[hyphen]], but not an [[Dash#En dash|en dash]] or a space. Alias: '''ISSN'''
* &lt;b id=&quot;csdoc_jfm&quot;&gt;jfm&lt;/b&gt;: [[Jahrbuch über die Fortschritte der Mathematik]]
* &lt;b id=&quot;csdoc_jstor&quot;&gt;jstor&lt;/b&gt;: [[JSTOR]] reference number; for example: &lt;code&gt;jstor=3793107&lt;/code&gt; will generate [[JSTOR]] [https://www.jstor.org/stable/3793107 3793107].
* &lt;b id=&quot;csdoc_lccn&quot;&gt;lccn&lt;/b&gt;: [[Library of Congress Control Number]]. When present, alphabetic prefix characters are to be lower case.
* &lt;b id=&quot;csdoc_mr&quot;&gt;mr&lt;/b&gt;: [[Mathematical Reviews]]
* &lt;b id=&quot;csdoc_oclc&quot;&gt;oclc&lt;/b&gt;: [[Wikipedia:OCLC|OCLC]]; WorldCat's Online Computer Library Center
* &lt;b id=&quot;csdoc_ol&quot;&gt;ol&lt;/b&gt;: [[Open Library]] identifier; do not include &quot;OL&quot; in the value.
* &lt;b id=&quot;csdoc_osti&quot;&gt;osti&lt;/b&gt;: [[Office of Scientific and Technical Information]]
* &lt;b id=&quot;csdoc_pmc&quot;&gt;pmc&lt;/b&gt;: [[PubMed Central]]; use article number for full-text free repository of a journal article, e.g. &lt;code&gt;pmc=345678&lt;/code&gt;. Do not include &quot;PMC&quot; in the value. {{crossref|See also the '''pmid''' parameter, below; these are two different identifiers.}}
** &lt;b id=&quot;csdoc_Embargo&quot;&gt;embargo&lt;/b&gt;: Date that '''pmc''' goes live; if this date is in the future, then '''pmc''' is not linked until that date.
* &lt;b id=&quot;csdoc_pmid&quot;&gt;pmid&lt;/b&gt;: [[PubMed]]; use unique identifier. {{crossref|See also the '''pmc''' parameter, above; these are two different identifiers.}}
* &lt;b id=&quot;csdoc_rfc&quot;&gt;rfc&lt;/b&gt;: [[Request for Comments]]
* &lt;b id=&quot;csdoc_ssrn&quot;&gt;ssrn&lt;/b&gt;: [[Social Science Research Network]]
* &lt;b id=&quot;csdoc_zbl&quot;&gt;zbl&lt;/b&gt;: [[Zentralblatt MATH]]</text>
<sha1>iniq27qmzbbw7qw4zc5v3992d16jmfz</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/language</title>
<ns>10</ns>
<id>34353546</id>
<revision>
<id>730186960</id>
<parentid>730141548</parentid>
<timestamp>2016-07-17T09:31:42Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>simpler</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="786">* &lt;b id=&quot;csdoc_language&quot;&gt;language&lt;/b&gt;: The language in which the source is written. Displays in parentheses with &quot;in&quot; before the language name or names. Use the full language name or [[List of ISO 639-1 codes|ISO 639-1]] code. When the source uses more than one language, list them individually, separated by commas, e.g. {{para|language|French, German}}. The use of language names or language codes recognized by Wikimedia adds the page to the appropriate subcategory of {{cl|CS1 foreign language sources}}; do not use templates or wikilinks. Note: When the language is &quot;English&quot; (or &quot;en&quot;), no language is displayed in the citation. Note: When two or more languages are listed there is no need to include &quot;and&quot; before the last language. &quot;and&quot; is inserted automatically by the template.</text>
<sha1>2ubtpommx06kvodvbhcqq2jeswefgxq</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/lay</title>
<ns>10</ns>
<id>34353638</id>
<revision>
<id>730187007</id>
<parentid>730141226</parentid>
<timestamp>2016-07-17T09:32:12Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>simpler</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="395">* &lt;b id=&quot;csdoc_lay&quot;&gt;lay-url&lt;/b&gt;: URL link to a non-technical summary or review of the source; the URL title is set to &quot;Lay summary&quot;. Aliases: '''lay-summary''', '''laysummary'''.
** '''lay-source''': Name of the source of the laysummary. Displays in italics and preceded by an endash. Alias: '''laysource'''.
** '''lay-date''': Date of the summary. Displays in parentheses. Alias: '''laydate'''.</text>
<sha1>76qo9stvppknr57qf2cfi5k3up7wpc5</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/lead</title>
<ns>10</ns>
<id>37758573</id>
<revision>
<id>675608450</id>
<parentid>675607154</parentid>
<timestamp>2015-08-11T16:35:03Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Gadget850</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="75">This {{cs1}} template is used to create [[WP:CITE|citations]] for {{{2|}}}.</text>
<sha1>rb2qz7f7zsv9heko47icoioecass1w8</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/lua</title>
<ns>10</ns>
<id>38990352</id>
<revision>
<id>675608448</id>
<parentid>675607173</parentid>
<timestamp>2015-08-11T16:35:02Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Mr. Stradivarius</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="61">{{lua|Module:Citation/CS1&lt;noinclude&gt;|nocat=true&lt;/noinclude&gt;}}</text>
<sha1>e2uks1yk196ovcrlzjmlrr3sl7xejwx</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/pages</title>
<ns>10</ns>
<id>34353591</id>
<revision>
<id>805099575</id>
<parentid>805099464</parentid>
<timestamp>2017-10-13T01:37:54Z</timestamp>
<contributor>
<username>Jonesey95</username>
<id>9755426</id>
</contributor>
<comment>add pp. to at= example</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1633">* &lt;b id=&quot;csdoc_page&quot;&gt;page&lt;/b&gt;: The number of a single page in the source that supports the content. Use either {{para|page}} or {{para|pages}}, but not both. Displays preceded by {{code|p.}} unless {{para|nopp|y}}{{#if: {{{work|}}}|&amp;#32;or '''work''' (or an [[#csdoc_work|alias]]) is defined}}.
*OR: &lt;b id=&quot;csdoc_pages&quot;&gt;pages&lt;/b&gt;: A range of pages in the source that supports the content. Use either {{para|page}} or {{para|pages}}, but not both. Separate using an en dash (–); separate non-sequential pages with a comma (,); do not use to indicate the total number of pages in the source. Displays preceded by {{code|pp.}} unless {{para|nopp|y}}{{#if: {{{work|}}}|&amp;#32;or '''work''' (or an [[#csdoc_work|alias]]) is defined}}. Hyphens are automatically converted to en dashes; if hyphens are appropriate, for example: pp. 3-1–3-15, use {{para|pages|&lt;nowiki&gt;3{{hyphen}}1&amp;amp;ndash;3{{hyphen}}15&lt;/nowiki&gt;}} or {{para|at|pp. 3-1&amp;amp;ndash;3-15}}.
**&lt;b id=&quot;csdoc_nopp&quot;&gt;nopp&lt;/b&gt;: Set to &lt;var&gt;y&lt;/var&gt;, &lt;var&gt;yes&lt;/var&gt;, or &lt;var&gt;true&lt;/var&gt; to suppress the {{code|p.}} or {{code|pp.}} notations where this is inappropriate; for example, where {{para|page|Front cover}} or {{para|pages|[[passim]]}}.
*OR: &lt;b id=&quot;csdoc_at&quot;&gt;at&lt;/b&gt;: For sources where a page number is inappropriate or insufficient. Overridden by {{para|page}} or {{para|pages}}. Use only one of {{para|page}}, {{para|pages}}, or {{para|at}}.
:Examples: page (p.) or pages (pp.); section (sec.), column (col.), paragraph (para.); track; hours, minutes and seconds; act, scene, canto, book, part, folio, stanza, back cover, liner notes, indicia, colophon, dust jacket, verse.</text>
<sha1>0p1sp93qqi71d47it2bpxs5crffuph0</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/publisher</title>
<ns>10</ns>
<id>34353539</id>
<revision>
<id>801049693</id>
<parentid>792143503</parentid>
<timestamp>2017-09-17T10:22:18Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<comment>per [[Help_talk:Citation_Style_1/Archive_17#RFC:_Should_all_CS1_citation_templates_put_the_publisher_name_between_parentheses_when_there_is_a_work_title.3F|rfc]];</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2600">* &lt;b id=&quot;csdoc_publisher&quot;&gt;publisher&lt;/b&gt;: Name of publisher; may be wikilinked if relevant. The [[publisher]] is the company that publishes the work being cited. Do not use the '''publisher''' parameter for the name of a work (e.g. a book, encyclopedia, newspaper, magazine, journal, website). Not normally used for periodicals. Corporate designations such as &quot;Ltd&quot;, &quot;Inc&quot; or &quot;GmbH&quot; are not usually included. Omit where the publisher's name is substantially the same as the name of the work (for example, The New York Times Co. publishes ''The New York Times'' newspaper, so there is no reason to name the publisher). Displays after '''title'''{{#ifeq:{{{work|}}}|no|.|&lt;nowiki/&gt;; if '''work''' is defined, then '''publisher''' is enclosed in parentheses.}}
* &lt;span id=&quot;csdoc_location&quot;&gt;&lt;/span&gt;&lt;b id=&quot;csdoc_place&quot;&gt;place&lt;/b&gt;: Geographical place of publication; generally not wikilinked; omit when the name of the work includes the location; examples: ''The Boston Globe'', ''The Times of India''. Displays after the title. Alias: '''location'''
* &lt;b id=&quot;csdoc_publication-place&quot;&gt;publication-place&lt;/b&gt;: If any one of '''publication-place''', '''place''', or '''location''' is defined, the location will show after the title; if '''publication-place''' and '''place''' or '''location''' are defined, then '''place''' or '''location''' is shown before the title prefixed with &quot;written at&quot; and '''publication-place''' is shown after the title.
* &lt;b id=&quot;csdoc_publication-date&quot;&gt;publication-date&lt;/b&gt;: Date of publication when different from the date the work was written. Displays only if '''year''' or '''date''' are defined and only if different, else '''publication-date''' is used and displayed as '''date'''. Use the same format as other dates in the article; do not wikilink. Follows '''publisher'''; if '''work''' is not defined, then '''publication-date''' is preceded by &quot;published&quot; and enclosed in parenthesis.
* &lt;b id=&quot;csdoc_via&quot;&gt;via&lt;/b&gt;: Name of the content deliverer (if ''different'' from '''publisher'''). '''via''' is not a replacement for '''publisher''', but provides additional detail. It may be used when the content deliverer presents the source in a format other than the original (e.g. [[NewsBank]]), when the URL provided does not make clear the identity of the deliverer, where no URL or DOI is available (EBSCO), if the deliverer requests attribution, or as requested in [[WP:The Wikipedia Library]] (e.g. [[WP:Credo accounts/Citations|Credo]], [[HighBeam]]). {{crossref|See also [[#csdoc_registration|'''registration''']] and [[#csdoc_subscription|'''subscription''']] parameters.}}</text>
<sha1>3jxennt9md604mc5v5oxp0otl6u2a9w</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/quote</title>
<ns>10</ns>
<id>34353635</id>
<revision>
<id>743017692</id>
<parentid>743000546</parentid>
<timestamp>2016-10-07T07:59:53Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>what was the point of that?</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="250">*&lt;b id=&quot;csdoc_quote&quot;&gt;quote&lt;/b&gt;: Relevant text quoted from the source. Displays enclosed in quotes.{{#if: {{{cs2|}}}||&amp;#32;When supplied, the citation terminator (a period by default) is suppressed, so the quote must include terminating punctuation.}}</text>
<sha1>q0xala3p0dv9njnq9d7i77hcwpv2pqs</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/ref</title>
<ns>10</ns>
<id>34353641</id>
<revision>
<id>730187619</id>
<parentid>730141954</parentid>
<timestamp>2016-07-17T09:41:13Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>simpler</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="915">* &lt;b id=&quot;csdoc_ref&quot;&gt;ref&lt;/b&gt;: the citation's HTML anchor identifier. When set, {{para|ref|&lt;var&gt;ID&lt;/var&gt;}} generates an anchor with the given &lt;var&gt;ID&lt;/var&gt; (the &lt;code&gt;id&lt;/code&gt; attribute in the citation's {{tag|cite|params=id=&quot;&lt;var&gt;ID&lt;/var&gt;&quot;|o}} HTML tag). Setting {{para|ref|&lt;var&gt;ID&lt;/var&gt;}} identifies the template as a target and allows [[Wikipedia:Citing sources/Further considerations#Wikilinks to full references|wikilinking to full references]], especially useful with short-form citations like [[Wikipedia:Citing sources#Shortened footnotes|shortened notes]] and [[Wikipedia:Parenthetical referencing|parenthetical referencing]]. The special value {{para|ref|harv}} generates an anchor identifier suitable for use with {{tl|sfn}} and {{tl|harv}} templates. When {{para|mode|cs2}} defaults to {{para|ref|harv}}. {{crossref|See {{section link|Template:Citation/doc|Anchors for Harvard referencing templates}}.}}</text>
<sha1>qcrkinfsurcl419udjn0d46rhk10p3k</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/registration</title>
<ns>10</ns>
<id>40705162</id>
<revision>
<id>792885050</id>
<parentid>792884879</parentid>
<timestamp>2017-07-29T10:45:50Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<minor/>
<comment>and correct subscription lock;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3536">Citations of online sources that require registration or a subscription are acceptable in Wikipedia as documented in [[WP:PAYWALL|Verifiability – Access to sources]]. As a courtesy to readers and other editors, editors can signal the access restrictions of the external links included in a citation.
Four access levels can be used:
* [[File:Lock-green.svg|9px|link=|alt=Freely accessible|Freely accessible]] &lt;code&gt;free&lt;/code&gt;: the source is free to read for anyone (this applies in particular to articles in open access)
* [[File:Lock-blue-alt-2.svg|9px|link=|alt=Free registration required|Free registration required]] &lt;code&gt;registration&lt;/code&gt;: a free registration is required to access the source
* [[File:Lock-blue-alt-2.svg|9px|link=|alt=Free access subject to limited trial, subscription normally required|Free access subject to limited trial, subscription normally required]] &lt;code&gt;limited&lt;/code&gt;: there are other constraints (such as a cap on daily views) to freely access this source
* [[File:Lock-red-alt.svg|9px|link=|alt=Paid subscription required|Paid subscription required]] &lt;code&gt;subscription&lt;/code&gt;: the source is only accessible via a paid subscription
As there are often multiple external links with different access levels in the same citation, these values are attributed to a particular external link.
=====Access level of {{para|url}}=====
Links inserted with {{para|url}} are expected to be free to read by default. If not, editors can use one of
* {{para|url-access|subscription}}
* {{para|url-access|registration}}
* {{para|url-access|limited}}
to indicate the relevant access restriction.
=====Access level of identifiers=====
Links inserted by identifiers such as {{para|doi}} are not expected to offer a free full text by default. If they do, editors can use {{para|doi-access|free}} (in the case of {{para|doi}}) to indicate the relevant access level. The following identifiers are supported:
:* {{para|bibcode}} with {{para|bibcode-access|free}}
:* {{para|doi}} with {{para|doi-access|free}}
:* {{para|hdl}} with {{para|hdl-access|free}}
:* {{para|jstor}} with {{para|jstor-access|free}}
:* {{para|ol}} with {{para|ol-access|free}}
:* {{para|osti}} with {{para|osti-access|free}}
Some identifiers always link to free full texts. In this case, the access level is automatically indicated by the template. This is the case for {{para|arxiv}}, {{para|biorxiv}}, {{para|citeseerx}}, {{para|pmc}}, {{para|rfc}} and {{para|ssrn}}.
=====Ambiguous access parameters=====
The parameters {{para|registration|yes}} and {{para|subscription|yes}} can also be used to indicate the access level of a citation. However, they do not indicate which link they apply to, so editors are encouraged to use {{para|url-access|registration}} and {{para|url-access|subscription}} instead, when the restriction applies to {{para|url}}. If the restriction applies to an identifier, these parameters should be omitted.
These parameters add a link note to the end of the citation:
* '''registration''': For online sources that require registration, set {{para|registration|yes}} (or &lt;code&gt;y&lt;/code&gt;, or &lt;code&gt;true&lt;/code&gt;); superseded by '''subscription''' if both are set.
* '''subscription''': For online sources that require a subscription, set {{para|subscription|yes}} (or &lt;code&gt;y&lt;/code&gt;, or &lt;code&gt;true&lt;/code&gt;); supersedes '''registration''' if both are set.
Setting {{para|registration}} or {{para|subscription}} to any value other than &lt;code&gt;y&lt;/code&gt;, &lt;code&gt;yes&lt;/code&gt;, or &lt;code&gt;true&lt;/code&gt; will generate an error message.</text>
<sha1>gdpn35i88ee2lmaljd1fuhqlvsfwo9v</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/required</title>
<ns>10</ns>
<id>34903095</id>
<revision>
<id>636279633</id>
<parentid>479123129</parentid>
<timestamp>2014-12-02T06:46:53Z</timestamp>
<contributor>
<username>Jonesey95</username>
<id>9755426</id>
</contributor>
<comment>Updating documentation per [[Help_talk:Citation_Style_1/Archive_5#RFC:_Citation_Style_1_parameter_naming_convention|July 2014 RFC]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="308">:This parameter is required and will generate an error if not defined. On errors, main, help and template pages are placed into [[:Category:Articles with incorrect citation syntax]]. Set {{para|template-doc-demo|true}} to disable categorization; mainly used for documentation where the error is demonstrated.</text>
<sha1>aj4sni3wf9rlxqjcde2ug6vdfj5nriq</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/sep period</title>
<ns>10</ns>
<id>34353315</id>
<revision>
<id>675608353</id>
<parentid>675607303</parentid>
<timestamp>2015-08-11T16:34:32Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Jonesey95</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="60">By default, sets of fields are terminated with a period (.).</text>
<sha1>3cwdbwgja9vozlyigmj5ov41j5smhso</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/series</title>
<ns>10</ns>
<id>34353523</id>
<revision>
<id>675608351</id>
<parentid>675607327</parentid>
<timestamp>2015-08-11T16:34:31Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Gadget850</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="145">* '''series''' or '''version''': When the source is part of a series, such as a book series or a journal where the issue numbering has restarted.</text>
<sha1>bpzj3co2ltc6g5e3ifqbyo1s786br7m</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/syntax</title>
<ns>10</ns>
<id>34353306</id>
<revision>
<id>675608348</id>
<parentid>675607352</parentid>
<timestamp>2015-08-11T16:34:31Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Gadget850</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="436">Nested parameters rely on their parent parameters:
*''parent''
*OR: ''parent2''—may be used instead of ''parent''
**''child''—may be used with ''parent'' (and is ignored if ''parent'' is not used)
**OR: ''child2''—may be used instead of ''child'' (and is ignored if ''parent2'' is not used)
:Where aliases are listed, only one of the parameters may be defined; if multiple aliased parameters are defined, then only one will show.</text>
<sha1>45x58kikrsszo0di6z1x9p46qbpmlec</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/type</title>
<ns>10</ns>
<id>34353502</id>
<revision>
<id>791166002</id>
<parentid>762167095</parentid>
<timestamp>2017-07-18T15:14:54Z</timestamp>
<contributor>
<username>Waldir</username>
<id>182472</id>
</contributor>
<comment>format examples so they stand out</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="363">* '''type''': Provides additional information about the media type of the source; format in sentence case. Displays in parentheses following the title. {{#if:{{{type_default|}}}|Defaults to {{{type_default}}}.|Examples: {{xt|Thesis}}, {{xt|Booklet}}, {{xt|CD liner}}, {{xt|Press release}}.}} Alias: '''medium'''{{#ifeq:{{{type_default|}}}|Thesis|, '''degree'''}}.</text>
<sha1>1myk2cawe9qaxihxo6vow6zgur9d7ox</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/url</title>
<ns>10</ns>
<id>34353621</id>
<revision>
<id>819616088</id>
<parentid>818955880</parentid>
<timestamp>2018-01-10T10:04:18Z</timestamp>
<contributor>
<username>Rayhartung</username>
<id>20352893</id>
</contributor>
<comment>[[WP:PAGELINKS]] now also about PDF pages; put sentence back into {{crossref}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="4366">* &lt;b id=&quot;csdoc_url&quot;&gt;url&lt;/b&gt;: URL of an online location where the {{#if:{{{media|}}}|media|text of the publication}} can be found. Cannot be used if '''title''' is wikilinked. If applicable, the link may point to the specific page(s) referenced. Remove tracking parameters from URLs, e.g. &lt;code&gt;#ixzz2rBr3aO94&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;?utm_source=google&amp;utm_medium=...&amp;utm_term=...&amp;utm_campaign=...&lt;/nowiki&gt;&lt;/code&gt;. {{crossref|For linking to pages in PDF files or in Google Books, see [[WP:PAGELINKS]].}} Do not link to any commercial booksellers, such as Amazon.com. Invalid URLs, including those containing spaces, will result in an error message.
** &lt;b id=&quot;csdoc_accessdate&quot;&gt;access-date&lt;/b&gt;: Full date when the content pointed to by '''url''' was last verified to support the text in the article; do not wikilink; requires '''url'''; use the same format as other access and archive dates in the citations.{{r|date|group=date}} ''Not required for linked documents that do not change.'' For example, '''access-date''' is not required for links to copies of published research papers accessible via DOI or a published book, but should be used for links to news articles on commercial websites (these can change from time to time, even if they are also published in a physical medium). Note that '''access-date''' is the date that the URL was checked to not just be working, but to support the assertion being cited (which the current version of the page may not do). Can be [[Help:Citation Style 1/accessdate|hidden or styled]] by registered editors. Alias: '''accessdate'''.
** &lt;b id=&quot;csdoc_archiveurl&quot;&gt;archive-url&lt;/b&gt;: The URL of an [[Web archiving|archived]] copy of a web page if the original URL is no longer available. Typically used to refer to services such as [[WebCite]] {{crossref|(see [[Wikipedia:Using WebCite]])}} and [[Internet Archive]] {{crossref|(see [[Wikipedia:Using the Wayback Machine]])}}; requires '''archive-date''' and '''url'''. By default (overridden by {{para|dead-url|no}}) the archived link is displayed first, with the original link at the end. Alias: '''archiveurl'''.
*** &lt;b id=&quot;csdoc_archivedate&quot;&gt;archive-date&lt;/b&gt;: Date when the original URL was archived; preceded in display by default text &quot;archived from the original on&quot;. Use the same format as other access and archive dates in the citations. This does not necessarily have to be the same format that was used for citing publication dates.{{r|date|group=date}} Do not wikilink. Alias: '''archivedate'''.
*** &lt;b id=&quot;csdoc_deadurl&quot;&gt;dead-url&lt;/b&gt;: the default value of this optional parameter, if omitted, is {{para|dead-url|yes}}. Equivalent values are &lt;var&gt;y&lt;/var&gt; or &lt;var&gt;true&lt;/var&gt;. When the URL is still live, but pre-emptively archived, then set {{para|dead-url|no}}; this changes the display order, with the title retaining the original link and the archive linked at the end. When the original URL has been usurped for the purposes of spam, advertising, or is otherwise unsuitable, setting {{para|dead-url|unfit}} or {{para|dead-url|usurped}} suppresses display of the original URL (but {{para|url}} is still required). Alias: '''deadurl'''.
** &lt;b id=&quot;csdoc_template doc demo&quot;&gt;template-doc-demo&lt;/b&gt;: The archive parameters will be error-checked to ensure that all the required parameters are included, or else {{tl|citation error}} is invoked. With errors, main, help and template pages are placed into one of the subcategories of [[:Category:Articles with incorrect citation syntax]]. Set {{para|template-doc-demo|true}} to disable categorization; mainly used for documentation where the error is demonstrated. Alias: '''no-cat'''.
* &lt;b id=&quot;csdoc_format&quot;&gt;format&lt;/b&gt;: Format of the work referred to by '''url'''; for example: PDF, DOC, or XLS; displayed in parentheses after '''title'''. (For media format, use '''type'''.) HTML is implied and should not be specified. Automatically added when a PDF icon is displayed. Does not change the [[Help:External link icons|external link icon]]. Note: External link icons do not include [[Wikipedia:ALT|alt text]]; thus, they do not add format information for the visually impaired.
{{MediaWiki URL rules}}
{{reflist|group=date|refs=&lt;ref name=date&gt;Access-date and archive-date in references should all have the same format – either the format used for publication dates, or YYYY-MM-DD. {{crossref|See [[MOS:DATEUNIFY]].}}&lt;/ref&gt;}}</text>
<sha1>brcy5htrdriv0x59qd04rbh9ir8len6</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/usage</title>
<ns>10</ns>
<id>37748773</id>
<revision>
<id>675608329</id>
<parentid>675607462</parentid>
<timestamp>2015-08-11T16:34:27Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Gadget850</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="287">Copy a blank version to use. All parameter names must be in lowercase. Use the &quot;|&quot; (pipe) character between each parameter. Delete unused parameters to avoid clutter in the edit window. Some samples may include the current date. If the date is not current, then {{purge|purge}} the page.</text>
<sha1>r9871arvco4xk4omc11y1i8p2fiufou</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/usage common</title>
<ns>10</ns>
<id>37768101</id>
<revision>
<id>675608326</id>
<parentid>675607487</parentid>
<timestamp>2015-08-11T16:34:26Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Gadget850</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="127">{| class=&quot;wikitable&quot; style=&quot;width: 100%&quot;
|+ Most commonly used parameters in horizontal format
|- style=&quot;vertical-align:top;&quot;
|</text>
<sha1>g59aluhs3riv40zrn04wrzig2rndz5x</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/usage full</title>
<ns>10</ns>
<id>37768090</id>
<revision>
<id>675608323</id>
<parentid>675607511</parentid>
<timestamp>2015-08-11T16:34:25Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Gadget850</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="116">{| class=&quot;wikitable&quot; style=&quot;width: 100%&quot;
|+ Full parameter set in horizontal format
|- style=&quot;vertical-align:top;&quot;
|</text>
<sha1>ibig78ze0cv5pm1gtveggipwk9so1ba</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/usage vertical</title>
<ns>10</ns>
<id>37768122</id>
<revision>
<id>675608319</id>
<parentid>675607537</parentid>
<timestamp>2015-08-11T16:34:25Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Gadget850</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="157">{| class=&quot;wikitable&quot;
|+ Full parameter set in vertical format
! Vertical list !! Prerequisites !! Brief instructions / notes
|- style=&quot;vertical-align:top;&quot;
|</text>
<sha1>7ya57kwky8ltmh98iar22xeljvztwew</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/usage vertical common</title>
<ns>10</ns>
<id>37792221</id>
<revision>
<id>736859411</id>
<parentid>675608315</parentid>
<timestamp>2016-08-30T09:09:36Z</timestamp>
<contributor>
<username>Cabayi</username>
<id>6561336</id>
</contributor>
<comment>/* top */[Wikipedia:Templates for discussion/Log/2016 August 18#Template:No documentation]], replaced: {{NODOC → {{Improve documentation using [[Project:AWB|AWB]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="195">{| class=&quot;wikitable&quot; style=&quot;width: 30em&quot;
|+ Most commonly used parameters in vertical format
|- style=&quot;vertical-align:top;&quot;
|&lt;noinclude&gt;
|}
{{doc|content={{Improve documentation}}}}
&lt;/noinclude&gt;</text>
<sha1>ejwktkxohds52qb98qyeawvg453d0ek</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/usage vertical end</title>
<ns>10</ns>
<id>37770922</id>
<revision>
<id>675608312</id>
<parentid>675607590</parentid>
<timestamp>2015-08-11T16:34:23Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Jonesey95</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="113">|}
* If a field name is listed in the '''Prerequisites''' column, it is a prerequisite for the field to the left.</text>
<sha1>iba42liqck57p33wcbds1eq8kf39tbj</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/usage vertical mid</title>
<ns>10</ns>
<id>37768146</id>
<revision>
<id>675608303</id>
<parentid>675607611</parentid>
<timestamp>2015-08-11T16:34:21Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/M777|M777]] ([[User talk:M777|talk]]) to last version by Gadget850</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="31">| style=&quot;vertical-align:top;&quot; |</text>
<sha1>dngspsil9irpijhjhntztbj8cw6cmxw</sha1>
</revision>
</page>
<page>
<title>Template:Citation Style documentation/web</title>
<ns>10</ns>
<id>34753477</id>
<revision>
<id>796370813</id>
<parentid>730188232</parentid>
<timestamp>2017-08-20T11:09:54Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<minor/>
<comment>+crossref;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1791">{{Crossreference|(See also [[Help:Citation Style 1#Titles and chapters|Help:Citation Style 1 §Titles and chapters]].)}}
* &lt;b id=&quot;csdoc_title&quot;&gt;title&lt;/b&gt;: Title of source page on website. Displays in quotes. If '''script-title''' is defined, '''title''' holds romanized transliteration of title in '''script-title'''.
** '''script-title''': Original title for languages that do not use a Latin-based alphabet (Arabic, Chinese, Cyrillic, Greek, Hebrew, Japanese, Korean, Vietnamese, etc); follows transliteration defined in '''title'''. May be prefixed with an [[List of ISO 639-1 codes|ISO 639-1]] two-character code to help browsers properly display the script:
**:&lt;code&gt;&lt;nowiki&gt;... |title=Tōkyō tawā |script-title=ja:東京タワー |trans-title=Tokyo Tower ...&lt;/nowiki&gt;&lt;/code&gt;
** &lt;b id=&quot;csdoc_trans_title&quot;&gt;trans-title&lt;/b&gt;: English translation of the title if the source cited is in a foreign language. Displays in square brackets after '''title'''; '''trans-title''' is included in the link. Use of the '''language''' parameter is recommended.
:Titles containing certain characters will display and link incorrectly unless those characters are encoded.
{| class=&quot;wikitable&quot; style=&quot;margin-left: 5em&quot;
! newline !! [ !! ] !! &amp;#124;
|-
| space || style=&quot;text-align: center;&quot; | &amp;amp;#91; || style=&quot;text-align: center;&quot; | &amp;amp;#93; || style=&quot;text-align: center;&quot; | &amp;amp;#124;
|-
|
| colspan=&quot;2&quot; style=&quot;text-align: center;&quot; | [[Template:Bracket|&lt;nowiki&gt;{{bracket|text}}&lt;/nowiki&gt;]] || [[Template:Pipe|&lt;nowiki&gt;{{pipe}}&lt;/nowiki&gt;]] – {{crossref|see also {{section link|Help:Table|Rendering pipe itself}}}}
|}
{{Citation Style documentation/required}}
* &lt;span id=&quot;csdoc_work&quot;&gt;&lt;/span&gt;&lt;b id=&quot;csdoc_website&quot;&gt;website&lt;/b&gt;: Title of website; may be wikilinked. Displays in italics. Aliases: '''work'''</text>
<sha1>8evyabf5uvrkszr06j3g0eiiix798rk</sha1>
</revision>
</page>
<page>
<title>Template:Cite news</title>
<ns>10</ns>
<id>4321630</id>
<revision>
<id>690395488</id>
<parentid>579832384</parentid>
<timestamp>2015-11-13T02:17:24Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Cite news: when I changed this to add template editors, I didn't realize it had cascding protection—so all my change did was make it appear as if it could be edited by them ([Edit=Allow only administrators] (indef...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="123">&lt;includeonly&gt;{{#invoke:citation/CS1|citation
|CitationClass=news
}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>pbjnspfej5gxihr9izxrzkow3f1uf3i</sha1>
</revision>
</page>
<page>
<title>Template:Cite web/doc</title>
<ns>10</ns>
<id>6781571</id>
<revision>
<id>819844807</id>
<parentid>814307091</parentid>
<timestamp>2018-01-11T16:07:21Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>update /doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="43708">{{Documentation subpage}}
{{high-risk| 2700000+ }}
{{AWB standard installation}}
{{csdoc|lua}}
{{csdoc|cs1}}
{{csdoc|lead|web sources that are not characterized by another CS1 template}}
==Usage==
{{csdoc|usage}}
{{csdoc|usage common}}
For references with author credit
:&lt;code&gt;&lt;nowiki&gt;{{cite web |url= |title= |last= |first= |date= |website= |publisher= |access-date= |quote=}}&lt;/nowiki&gt;&lt;/code&gt;
For references without author credit
:&lt;code&gt;&lt;nowiki&gt;{{cite web |url= |title= |author=&lt;!--Not stated--&gt; |date= |website= |publisher= |access-date= |quote=}}&lt;/nowiki&gt;&lt;/code&gt;
{{end}}
{{csdoc|usage vertical common}}
&lt;!-- Please synchronize this list with the corresponding one at the overview page [[Wikipedia:Citation templates#Examples]] --&gt;
&lt;pre style=&quot;margin:0px; border:none; white-space:pre;&quot;&gt;
{{cite web
|url=
|title=
|last=
|first=
|date=
|website=
|publisher=
|access-date=
|quote= }}
&lt;/pre&gt;
{{end}}
{{csdoc|usage full}}
:&lt;code&gt;&lt;nowiki&gt;{{cite web |url= |title= |last= |first= |author= |author-link= |last2= |first2= |author2= |author-link2= |date= |year= |editor-last= |editor-first= |editor= |editor-link= |editor2-last= |editor2-first= |editor2-link= |editors= |department= |website= |series= |publisher= |location= |page= |pages= |at= |language= |script-title= |trans-title= |type= |format= |arxiv= |asin= |bibcode= |doi= |doi-broken-date= |isbn= |issn= |jfm= |jstor= |lccn= |mr= |oclc= |ol= |osti= |pmc= |pmid= |rfc= |ssrn= |zbl= |id= |archive-url= |archive-date= |dead-url= |access-date= |quote= |ref= |postscript= |subscription= |registration=}}&lt;/nowiki&gt;&lt;/code&gt;
{{end}}
{{csdoc|usage vertical}}
&lt;pre style=&quot;margin:0px; border:none; white-space:pre;&quot;&gt;
{{cite web
|url=
|title=
|last=
|first=
|author-link=
|last2=
|first2=
|author-link2=
|date=
|year=
|editor-last=
|editor-first=
|editor-link=
|editor2-last=
|editor2-first=
|editor2-link=
|department=
|website=
|series=
|publisher=
|location=
|page=
|pages=
|at=
|language=
|script-title=
|trans-title=
|type=
|format=
|arxiv=
|asin=
|bibcode=
|doi=
|doi-broken-date=
|isbn=
|issn=
|jfm=
|jstor=
|lccn=
|mr=
|oclc=
|ol=
|osti=
|pmc=
|pmid=
|rfc=
|ssrn=
|zbl=
|id=
|archive-url=
|archive-date=
|dead-url=
|access-date=
|quote=
|ref=
|postscript=
|subscription=
|registration= }}
&lt;/pre&gt;
{{csdoc|usage vertical mid}}
&lt;pre style=&quot;margin:0px; border:none; white-space:pre;&quot;&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
last
&amp;nbsp;
last
last2
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
editor-last
&amp;nbsp;
editor-last
editor2-last
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
url, archive-date
archive-url
url
url
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;/pre&gt;
{{csdoc|usage vertical mid}}
&lt;pre style=&quot;margin:0px; border:none; white-space:pre;&quot;&gt;
&amp;nbsp;
required
required
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;/pre&gt;
{{csdoc|usage vertical end}}
===Choosing between {{tlf|Cite web}} and {{tlf|Cite news}}===
{{anchor|Consistency}}
Before 2014, editors had to decide whether to use {{tl|Cite web}} or {{tlf|Cite news}} based on their features. In 2014, however, {{em|most of}} the differences between the two templates were eliminated.
As of {{diff|Module:Citation/CS1|732205428|723907342|29 July 2016}}, {{tlf|Cite web}} and {{tlf|Cite news}} have the following differences:
*{{tlf|Cite news}} can be used for offline (paper) sources whereas {{tlf|Cite web}} generates a missing URL error when no URL is provided
*{{tlf|Cite news}} accepts {{para|issue}} and {{para|volume}} parameters while {{tlf|Cite web}} does not (See {{section link|1=Help talk:Citation Style 1/Archive 10|2=&amp;#x7C;volume=, &amp;#x7C;issue=, &amp;#x7C;page(s)= and cite magazine}}.)
But given the same set of valid parameters, their output is exactly the same:
&lt;!-- ATTENTION!
The following example only serves to demonstrate parameter rending results.
Whether you must include all these parameters in actual articles is not a concern here.
--&gt;
{|
| '''Cite web''': || {{cite web |url=http://blog.chron.com/techblog/2011/07/microsoft-envisions-a-universal-os-but-it-might-not-be-called-windows/ |title=Microsoft envisions a universal OS, but it might not be called Windows |last=Silverman |first=Dwight |date=July 15, 2011 |work=[[Houston Chronicle]] |publisher=[[Hearst Corporation]] |accessdate=May 26, 2015}}
|-
| '''Cite news''': || {{cite news |url=http://blog.chron.com/techblog/2011/07/microsoft-envisions-a-universal-os-but-it-might-not-be-called-windows/ |title=Microsoft envisions a universal OS, but it might not be called Windows |last=Silverman |first=Dwight |date=July 15, 2011 |work=[[Houston Chronicle]] |publisher=[[Hearst Corporation]] |accessdate=May 26, 2015}}
|}
==Examples==
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|publisher=Open Publishing
|date=April 30, 2005
|website=Encyclopedia of Things
|access-date=&lt;/nowiki&gt;{{date|{{date}}|mdy}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|publisher=Open Publishing
|date=April 30, 2005
|website=Encyclopedia of Things
|access-date={{date|{{date}}|mdy}}}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|date=30 April 2005
|website=Encyclopedia of Things
|access-date=&lt;/nowiki&gt;{{date}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|date=30 April 2005
|website=Encyclopedia of Things
|access-date={{date}}}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|date=2005-04-30
|access-date=&lt;/nowiki&gt;{{date|{{date}}|iso}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|date=2005-04-30
|access-date={{date|{{date}}|iso}}}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|access-date=&lt;/nowiki&gt;{{date}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|access-date={{date}}}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|access-date=&lt;/nowiki&gt;{{date|{{date}}|iso}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|access-date={{date|{{date}}|iso}}}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.nfl.com/rulebook/digestofrules
|title=Digest of Rules
|publisher=National Football League
|access-date=&lt;/nowiki&gt;{{date|{{date}}|mdy}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.nfl.com/rulebook/digestofrules
|title=Digest of Rules
|publisher=National Football League
|access-date={{date|{{date}}|mdy}}}}
}}
===Using format===
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.indiapost.gov.in/Pdf/Customs/List_of_Psychotropic_Substances.pdf
|title=List of psychotropic substances under international control
|publisher=International Narcotics Control Board
|format=PDF
|access-date=&lt;/nowiki&gt;{{date}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.indiapost.gov.in/Pdf/Customs/List_of_Psychotropic_Substances.pdf
|title=List of psychotropic substances under international control
|publisher=International Narcotics Control Board
|format=PDF
|access-date={{date}}}}
}}
===Foreign language and translated title===
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.example.org/
|title=Honi soit qui mal y pense
|last=Joliet
|first=François
|date=30 April 2005
|access-date=&lt;/nowiki&gt;{{date}}&lt;nowiki&gt;
|language=French
|trans-title=Shame on those who think evil of it}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.example.org/
|title=Honi soit qui mal y pense
|last=Joliet
|first=François
|date=30 April 2005
|access-date={{date}}
|language=French
|trans-title=Shame on those who think evil of it}}
}}
===Using author-link===
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|author-link=John Doe
|publisher=Open Publishing
|date=April 30, 2005
|website=Encyclopedia of Things
|access-date=&lt;/nowiki&gt;{{date|{{date}}|mdy}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.example.org/
|title=My Favorite Things, Part II
|last=Doe
|first=John
|author-link=John Doe
|publisher=Open Publishing
|date=April 30, 2005
|website=Encyclopedia of Things
|access-date={{date|{{date}}|mdy}}}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.example.org/
|title=Our Favourite Things
|last1=Doe
|first1=John
|last2=Smith
|first2=Peter
|last3=Smythe
|first3=Jim
|publisher=Open Publishing
|date=30 April 2005
|website=Encyclopaedia of Things
|access-date=&lt;/nowiki&gt;{{date}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.example.org/
|title=Our Favourite Things
|last1=Doe
|first1=John
|last2=Smith
|first2=Peter
|last3=Smythe
|first3=Jim
|publisher=Open Publishing
|date=30 April 2005
|website=Encyclopaedia of Things
|access-date={{date}}}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.example.org/
|title=Index of Sharp Things
|publisher=Open Publishing
|date=2005-04-30
|website=Encyclopedia of Things
|access-date=&lt;/nowiki&gt;{{date|{{date}}|iso}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.example.org/
|title=Index of Sharp Things
|publisher=Open Publishing
|date=2005-04-30
|website=Encyclopedia of Things
|access-date={{date|{{date}}|iso}}}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.example.org/
|title=Index of Sharp Things
|date=30 April 2005
|website=Encyclopedia of Things
|access-date=&lt;/nowiki&gt;{{date}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.example.org/
|title=Index of Sharp Things
|date=30 April 2005
|website=Encyclopedia of Things
|access-date={{date}}}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.example.org/
|title=Index of Sharp Things
|date=April 30, 2005
|access-date=&lt;/nowiki&gt;{{date|{{date}}|mdy}}&lt;nowiki&gt;}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.example.org/
|title=Index of Sharp Things
|date=April 30, 2005
|access-date={{date|{{date}}|mdy}}}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.incb.org/pdf/e/list/green.pdf
|title=List of psychotropic substances under international control
|date=2005-04-30
|format=PDF
|access-date=&lt;/nowiki&gt;{{date|{{date}}|iso}}&lt;nowiki&gt;
|language=Greek}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.incb.org/pdf/e/list/green.pdf
|title=List of psychotropic substances under international control
|date=2005-04-30
|format=PDF
|access-date={{date|{{date}}|iso}}
|language=Greek}}
}}
{{anchor|archive-url}}
===Using &quot;archive-url&quot; and &quot;archive-date&quot; (and optionally &quot;dead-url&quot;) for webpages that have been archived===
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.incb.org/pdf/e/list/green.pdf
|title=List of psychotropic substances under international control
|date=2005-04-30
|format=PDF
|access-date=&lt;/nowiki&gt;{{date|{{date}}|iso}}&lt;nowiki&gt;
|archive-url=https://web.archive.org/web/20050907150136/http://www.incb.org/pdf/e/list/green.pdf
|archive-date=2005-09-07}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.incb.org/pdf/e/list/green.pdf
|title=List of psychotropic substances under international control
|date=2005-04-30
|format=PDF
|access-date={{date|{{date}}|iso}}
|archive-url=https://web.archive.org/web/20050907150136/http://www.incb.org/pdf/e/list/green.pdf
|archive-date=2005-09-07}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://joanjettbadrep.com/cgi-bin/fullStory.cgi?archive=currnews&amp;story=20060405-01shore.htm
|title=Interview with Maggie Downs
|date=March 31, 2006
|publisher=The Desert Sun
|archive-url=http://72.14.207.104/search?q=cache:JAxf4v-pQmgJ:joanjettbadrep.com/cgi-bin/fullStory.cgi%3Farchive%3Dcurrnews%26story%3D20060405-01shore.htm
|archive-date=April 26, 2006
|dead-url=no}}&lt;/nowiki&gt;
|r={{cite web
|url=http://joanjettbadrep.com/cgi-bin/fullStory.cgi?archive=currnews&amp;story=20060405-01shore.htm
|title=Interview with Maggie Downs
|date=March 31, 2006
|publisher=The Desert Sun
|archive-url=http://72.14.207.104/search?q=cache:JAxf4v-pQmgJ:joanjettbadrep.com/cgi-bin/fullStory.cgi%3Farchive%3Dcurrnews%26story%3D20060405-01shore.htm
|archive-date=April 26, 2006
|dead-url=no}}
}}
{{markup2|
|m=&lt;nowiki&gt;{{Cite web
|url=http://www.wunderground.com/global/stations/03772.html
|title=London, United Kingdom Forecast : Weather Underground (weather and elevation at Heathrow Airport)
|publisher=The Weather Underground
|access-date=&lt;/nowiki&gt;{{date}}&lt;nowiki&gt;
| archive-url=https://www.webcitation.org/5yo0HaAk7 |archive-date=19 May 2011 |dead-url=no}}&lt;/nowiki&gt;
|r={{Cite web
|url=http://www.wunderground.com/global/stations/03772.html
|title=London, United Kingdom Forecast : Weather Underground (weather and elevation at Heathrow Airport)
|publisher=The Weather Underground
|access-date={{date}}
| archive-url=https://www.webcitation.org/5yo0HaAk7 |archive-date=19 May 2011 |dead-url=no}}
}}
===Using quote===
{{markup2|
|m=&lt;nowiki&gt;{{cite web
|url=http://www.webexhibits.org/daylightsaving/c.html
|title=Daylight saving time: rationale and original idea
|website=WebExhibits
|year=2008
|access-date=&lt;/nowiki&gt;{{date}}&lt;nowiki&gt;
|quote=...&amp;amp;nbsp;Lord Balfour came forward with a unique concern: 'Supposing some unfortunate lady was confined with twins&amp;amp;nbsp;...'}}&lt;/nowiki&gt;
|r={{cite web
|url=http://www.webexhibits.org/daylightsaving/c.html
|title=Daylight saving time: rationale and original idea
|website=WebExhibits
|year=2008
|access-date={{date}}
|quote=...&amp;nbsp;Lord Balfour came forward with a unique concern: 'Supposing some unfortunate lady was confined with twins&amp;nbsp;...'}}
}}
==Parameters==
===Syntax===
{{csdoc|syntax}}
{{csdoc|sep_period}}
===COinS===
{{csdoc|coins}}
===Deprecated===
{{csdoc|deprecated}}
===Description===
====Authors====
{{csdoc|author|others=yes}}
====Title====
{{csdoc|web}}
{{csdoc|type}}
{{csdoc|language}}
====Date====
{{csdoc|date}}
====Publisher====
{{csdoc|publisher|work=no}}
{{csdoc|agency}}
====Series====
{{csdoc|series}}
====In-source locations====
{{csdoc|pages}}
====URL====
{{csdoc|url}}
====Anchor====
{{csdoc|ref}}
====Identifiers====
{{csdoc|id1}}
{{csdoc|id2}}
====Quote====
{{csdoc|quote}}
====Editors====
{{csdoc|editor}}
====Laysummary====
{{csdoc|lay}}
====Display options====
{{csdoc|display}}
====Subscription or registration required====
{{csdoc|registration}}
==TemplateData==
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;Formats a citation to a website using the provided information such as URL and title. Used only for sources that are not correctly described by the specific citation templates for books, journals, news sources, etc.&quot;,
&quot;params&quot;: {
&quot;url&quot;: {
&quot;label&quot;: &quot;URL&quot;,
&quot;description&quot;: &quot;The URL of the online location where the text of the publication can be found. Requires schemes of the type \&quot;http://...\&quot; or maybe even the  protocol relative scheme \&quot;//...\&quot;&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;aliases&quot;: [
&quot;URL&quot;
],
&quot;required&quot;: true,
&quot;example&quot;: &quot;https://www.metacritic.com//...&quot;
},
&quot;title&quot;: {
&quot;label&quot;: &quot;Title&quot;,
&quot;description&quot;: &quot;The title of the source page on the website; will display with quotation marks added. Usually found at the top of you web browser. Not the name of the website.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
},
&quot;date&quot;: {
&quot;label&quot;: &quot;Source date&quot;,
&quot;description&quot;: &quot;Full date when the source was published; if unknown, use access-date instead; do not wikilink&quot;,
&quot;type&quot;: &quot;date&quot;,
&quot;suggested&quot;: true
},
&quot;access-date&quot;: {
&quot;label&quot;: &quot;URL access date&quot;,
&quot;description&quot;: &quot;The full date when the original URL was accessed; do not wikilink&quot;,
&quot;type&quot;: &quot;date&quot;,
&quot;aliases&quot;: [
&quot;accessdate&quot;
],
&quot;suggested&quot;: true
},
&quot;website&quot;: {
&quot;label&quot;: &quot;Website&quot;,
&quot;description&quot;: &quot;Name of the website; may be wikilinked; will display in italics. Having both 'Publisher' and 'Website' is redundant in most cases&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;aliases&quot;: [
&quot;work&quot;
],
&quot;suggested&quot;: true,
&quot;example&quot;: &quot;Rotten Tomatoes&quot;
},
&quot;publisher&quot;: {
&quot;label&quot;: &quot;Publisher&quot;,
&quot;description&quot;: &quot;Name of the publisher; may be wikilinked. Having both 'Publisher' and 'Website' is redundant in most cases. &quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;example&quot;: &quot;\&quot;CBS Interactive\&quot; which owns \&quot;Metacritic.com\&quot;&quot;
},
&quot;last&quot;: {
&quot;label&quot;: &quot;Last name&quot;,
&quot;description&quot;: &quot;The surname of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors&quot;,
&quot;aliases&quot;: [
&quot;last1&quot;,
&quot;author&quot;,
&quot;author1&quot;,
&quot;author1-last&quot;,
&quot;author-last&quot;,
&quot;surname1&quot;,
&quot;author-last1&quot;,
&quot;subject1&quot;,
&quot;surname&quot;,
&quot;author-last&quot;,
&quot;subject&quot;
],
&quot;type&quot;: &quot;line&quot;,
&quot;suggested&quot;: true
},
&quot;first&quot;: {
&quot;label&quot;: &quot;First name&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the author; don't wikilink, use 'authorlink'; can suffix with a numeral to add additional authors&quot;,
&quot;aliases&quot;: [
&quot;given&quot;,
&quot;author-first&quot;,
&quot;first1&quot;,
&quot;given1&quot;,
&quot;author-first1&quot;,
&quot;author1-first&quot;
],
&quot;type&quot;: &quot;line&quot;,
&quot;suggested&quot;: true
},
&quot;authorlink&quot;: {
&quot;label&quot;: &quot;Author link&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the author; can suffix with a numeral to add additional authors&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;author-link&quot;,
&quot;subjectlink&quot;,
&quot;subject-link&quot;,
&quot;authorlink1&quot;,
&quot;author-link1&quot;,
&quot;author1-link&quot;,
&quot;subjectlink1&quot;,
&quot;author1link&quot;,
&quot;subject-link1&quot;,
&quot;subject1-link&quot;,
&quot;subject1link&quot;
]
},
&quot;last2&quot;: {
&quot;label&quot;: &quot;Last name 2&quot;,
&quot;description&quot;: &quot;The surname of the second author; don't wikilink, use 'authorlink2'.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;aliases&quot;: [
&quot;author2&quot;
]
},
&quot;first2&quot;: {
&quot;label&quot;: &quot;First name 2&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the second author; don't wikilink.&quot;
},
&quot;authorlink2&quot;: {
&quot;label&quot;: &quot;Author link 2&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the second author.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;author2-link&quot;
]
},
&quot;others&quot;: {
&quot;label&quot;: &quot;Others&quot;,
&quot;description&quot;: &quot;Used to record other (non-author) contributions to the work, such as 'Illustrated by John Smith' or 'Translated by John Smith'. Only one ''others'' parameter is allowed: e.g., 'Illustrated by Jane Doe; Translated by John Smith'&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;year&quot;: {
&quot;label&quot;: &quot;Year of publication&quot;,
&quot;description&quot;: &quot;Year of the source being referenced; use 'date' instead, if month and day are also known&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;orig-year&quot;: {
&quot;label&quot;: &quot;Original year&quot;,
&quot;description&quot;: &quot;Original year of publication; provide specifics&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;aliases&quot;: [
&quot;origyear&quot;
]
},
&quot;editor-last&quot;: {
&quot;label&quot;: &quot;Editor last name&quot;,
&quot;description&quot;: &quot;The surname of the editor; don't wikilink, use 'editor-link'; can suffix with a numeral to add additional editors.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;aliases&quot;: [
&quot;editor1-last&quot;,
&quot; editor&quot;,
&quot; editors&quot;
]
},
&quot;editor-first&quot;: {
&quot;label&quot;: &quot;Editor first name&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the editor; don't wikilink, use 'editor-link'; can suffix with a numeral to add additional editors; alias of 'editor1-first'&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;aliases&quot;: [
&quot;editor1-first&quot;
]
},
&quot;editor-link&quot;: {
&quot;label&quot;: &quot;Editor link&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the editor; can suffix with a numeral to add additional editors&quot;,
&quot;aliases&quot;: [
&quot;editor1-link&quot;
],
&quot;type&quot;: &quot;wiki-page-name&quot;
},
&quot;series&quot;: {
&quot;label&quot;: &quot;Series identifier&quot;,
&quot;description&quot;: &quot;Series identifier when the source is part of a series, such as a book series or a journal&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;location&quot;: {
&quot;label&quot;: &quot;Location of publication&quot;,
&quot;description&quot;: &quot;Geographical place of publication; usually not wikilinked; omit when the publication name includes place; alias of 'place'&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;publication-place&quot;: {
&quot;label&quot;: &quot;Place of publication&quot;,
&quot;description&quot;: &quot;Publication place shows after title; if 'place' or 'location' are also given, they are displayed before the title prefixed with 'written at'&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;publication-date&quot;: {
&quot;label&quot;: &quot;Publication date&quot;,
&quot;description&quot;: &quot;Date of publication when different from the date the work was written; do not wikilink&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;page&quot;: {
&quot;label&quot;: &quot;Page&quot;,
&quot;description&quot;: &quot;Page in the source that supports the content; displays after 'p.'&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;pages&quot;: {
&quot;label&quot;: &quot;Pages&quot;,
&quot;description&quot;: &quot;Pages in the source that support the content (not an indication of the number of pages in the source; displays after 'pp.'&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;nopp&quot;: {
&quot;label&quot;: &quot;No pp&quot;,
&quot;description&quot;: &quot;Set to 'y' to suppress the 'p.' or 'pp.' display with 'page' or 'pages' when inappropriate (such as 'Front cover')&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;at&quot;: {
&quot;label&quot;: &quot;At&quot;,
&quot;description&quot;: &quot;May be used instead of 'page' or 'pages' where a page number is inappropriate or insufficient&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;language&quot;: {
&quot;label&quot;: &quot;Language&quot;,
&quot;description&quot;: &quot;The language in which the source is written, if not English; use the full language name; do not use icons or templates&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;script-title&quot;: {
&quot;label&quot;: &quot;Script title&quot;,
&quot;description&quot;: &quot;For titles in languages that do not use a Latin-based alphabet (Arabic, Chinese, Cyrillic, Greek, Hebrew, Japanese, Korean, Vietnamese, etc). Prefix with two-character ISO639-1 language code followed by a colon. For Japanese use: |script-title=ja:...&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;trans-title&quot;: {
&quot;label&quot;: &quot;Translated title&quot;,
&quot;description&quot;: &quot;An English language title, if the source cited is in a foreign language; 'language' is recommended&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;aliases&quot;: [
&quot;trans_title&quot;
]
},
&quot;type&quot;: {
&quot;label&quot;: &quot;Type&quot;,
&quot;description&quot;: &quot;Additional information about the media type of the source; format in sentence case&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;format&quot;: {
&quot;label&quot;: &quot;Format&quot;,
&quot;description&quot;: &quot;Format of the work referred to by 'url'; examples: PDF, DOC, XLS; do not specify HTML&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;arxiv&quot;: {
&quot;label&quot;: &quot;arXiv identifier&quot;,
&quot;description&quot;: &quot;An identifier for arXive electronic preprints of scientific papers&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;asin&quot;: {
&quot;label&quot;: &quot;ASIN&quot;,
&quot;description&quot;: &quot;Amazon Standard Identification Number; 10 characters&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;asin-tld&quot;: {
&quot;label&quot;: &quot;ASIN TLD&quot;,
&quot;description&quot;: &quot;ASIN top-level domain for Amazon sites other than the US&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;bibcode&quot;: {
&quot;label&quot;: &quot;Bibcode&quot;,
&quot;description&quot;: &quot;Bibliographic Reference Code (REFCODE); 19 characters&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;biorxiv&quot;: {
&quot;label&quot;: &quot;biorXiv&quot;,
&quot;description&quot;: &quot;biorXiv identifier; 6 digits&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;citeseerx&quot;: {
&quot;label&quot;: &quot;CiteSeerX&quot;,
&quot;description&quot;: &quot;CiteSeerX identifier; found after the 'doi=' query parameter&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;doi&quot;: {
&quot;label&quot;: &quot;DOI&quot;,
&quot;description&quot;: &quot;Digital Object Identifier; begins with '10.'&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;doi-broken-date&quot;: {
&quot;label&quot;: &quot;DOI broken date&quot;,
&quot;description&quot;: &quot;The date that the DOI was determined to be broken&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;isbn&quot;: {
&quot;label&quot;: &quot;ISBN&quot;,
&quot;description&quot;: &quot;International Standard Book Number; use the 13-digit ISBN where possible&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;issn&quot;: {
&quot;label&quot;: &quot;ISSN&quot;,
&quot;description&quot;: &quot;International Standard Serial Number; 8 characters; may be split into two groups of four using a hyphen&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;jfm&quot;: {
&quot;label&quot;: &quot;jfm code&quot;,
&quot;description&quot;: &quot;Jahrbuch über die Fortschritte der Mathematik classification code&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;jstor&quot;: {
&quot;label&quot;: &quot;JSTOR&quot;,
&quot;description&quot;: &quot;JSTOR identifier&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;lccn&quot;: {
&quot;label&quot;: &quot;LCCN&quot;,
&quot;description&quot;: &quot;Library of Congress Control Number&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;mr&quot;: {
&quot;label&quot;: &quot;MR&quot;,
&quot;description&quot;: &quot;Mathematical Reviews identifier&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;oclc&quot;: {
&quot;label&quot;: &quot;OCLC&quot;,
&quot;description&quot;: &quot;Online Computer Library Center number&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;ol&quot;: {
&quot;label&quot;: &quot;OL&quot;,
&quot;description&quot;: &quot;Open Library identifier&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;osti&quot;: {
&quot;label&quot;: &quot;OSTI&quot;,
&quot;description&quot;: &quot;Office of Scientific and Technical Information identifier&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;pmc&quot;: {
&quot;label&quot;: &quot;PMC&quot;,
&quot;description&quot;: &quot;PubMed Center article number&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;pmid&quot;: {
&quot;label&quot;: &quot;PMID&quot;,
&quot;description&quot;: &quot;PubMed Unique Identifier&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;rfc&quot;: {
&quot;label&quot;: &quot;RFC&quot;,
&quot;description&quot;: &quot;Request for Comments number&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;ssrn&quot;: {
&quot;label&quot;: &quot;SSRN&quot;,
&quot;description&quot;: &quot;Social Science Research Network&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;zbl&quot;: {
&quot;label&quot;: &quot;Zbl&quot;,
&quot;description&quot;: &quot;Zentralblatt MATH journal identifier&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;id&quot;: {
&quot;label&quot;: &quot;id&quot;,
&quot;description&quot;: &quot;A unique identifier used where none of the specialized ones are applicable&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;archive-url&quot;: {
&quot;label&quot;: &quot;Archive URL&quot;,
&quot;aliases&quot;: [
&quot;archiveurl&quot;
],
&quot;description&quot;: &quot;The URL of an archived copy of a web page, if or in case the URL becomes unavailable; requires 'archive-date'&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;suggested&quot;: true
},
&quot;archive-date&quot;: {
&quot;label&quot;: &quot;Archive date&quot;,
&quot;aliases&quot;: [
&quot;archivedate&quot;
],
&quot;description&quot;: &quot;Date when the original URL was archived; do not wikilink&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;suggested&quot;: true
},
&quot;dead-url&quot;: {
&quot;label&quot;: &quot;Dead URL&quot;,
&quot;aliases&quot;: [
&quot;deadurl&quot;
],
&quot;description&quot;: &quot;If set to 'no', the title display is adjusted; useful for when the URL is archived preemptively but still live&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;suggested&quot;: true
},
&quot;quote&quot;: {
&quot;label&quot;: &quot;Quote&quot;,
&quot;description&quot;: &quot;Relevant text quoted from the source; displays last, enclosed in quotes; must include terminating punctuation&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;ref&quot;: {
&quot;label&quot;: &quot;Ref&quot;,
&quot;description&quot;: &quot;An anchor identifier; can be made the target of wikilinks to full references; special value 'harv' generates an anchor suitable for the harv template&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;separator&quot;: {
&quot;label&quot;: &quot;Separator&quot;,
&quot;description&quot;: &quot;The punctuation used to separate lists of authors, editors, etc.; a space must be encoded as &amp;#32; do not use an asterisk, colon, or hash mark&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;.&quot;
},
&quot;postscript&quot;: {
&quot;label&quot;: &quot;Postscript&quot;,
&quot;description&quot;: &quot;The closing punctuation for the citation; ignored if 'quote' is defined&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;.&quot;
},
&quot;layurl&quot;: {
&quot;label&quot;: &quot;Lay URL&quot;,
&quot;description&quot;: &quot;URL link to a non-technical summary or review of the source; alias of 'laysummary'&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;laysource&quot;: {
&quot;label&quot;: &quot;Lay source&quot;,
&quot;description&quot;: &quot;Name of the source of the laysummary; displays in italics, preceded by an en dash&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;laydate&quot;: {
&quot;label&quot;: &quot;Lay date&quot;,
&quot;description&quot;: &quot;Date of the summary; displays in parentheses&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;author-mask&quot;: {
&quot;label&quot;: &quot;Author mask&quot;,
&quot;description&quot;: &quot;Replaces the name of the first author with em dashes or text; set to a numeric value 'n' to set the dash 'n' em spaces wide; set to a text value to display the text without a trailing author separator; for example, 'with' instead&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;last3&quot;: {
&quot;label&quot;: &quot;Last name 3&quot;,
&quot;description&quot;: &quot;The surname of the third author; don't wikilink, use 'authorlink3'.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;aliases&quot;: [
&quot;author3&quot;
]
},
&quot;first3&quot;: {
&quot;label&quot;: &quot;First name 3&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the third author; don't wikilink.&quot;
},
&quot;authorlink3&quot;: {
&quot;label&quot;: &quot;Author link 3&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the third author.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;author3-link&quot;
]
},
&quot;last4&quot;: {
&quot;label&quot;: &quot;Last name 4&quot;,
&quot;description&quot;: &quot;The surname of the fourth author; don't wikilink, use 'authorlink4'.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;aliases&quot;: [
&quot;author4&quot;
]
},
&quot;first4&quot;: {
&quot;label&quot;: &quot;First name 4&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the fourth author; don't wikilink.&quot;
},
&quot;authorlink4&quot;: {
&quot;label&quot;: &quot;Author link 4&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the fourth author.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;author4-link&quot;
]
},
&quot;last5&quot;: {
&quot;label&quot;: &quot;Last name 5&quot;,
&quot;description&quot;: &quot;The surname of the fifth author; don't wikilink, use 'authorlink5'.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;aliases&quot;: [
&quot;author5&quot;
]
},
&quot;first5&quot;: {
&quot;label&quot;: &quot;First name 5&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the fifth author; don't wikilink.&quot;
},
&quot;authorlink5&quot;: {
&quot;label&quot;: &quot;Author link 5&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the fifth author.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;author5-link&quot;
]
},
&quot;last6&quot;: {
&quot;label&quot;: &quot;Last name 6&quot;,
&quot;description&quot;: &quot;The surname of the sixth author; don't wikilink, use 'authorlink6'.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;aliases&quot;: [
&quot;author6&quot;
]
},
&quot;first6&quot;: {
&quot;label&quot;: &quot;First name 6&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the sixth author; don't wikilink.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;aliases&quot;: [
&quot;author6-link&quot;
]
},
&quot;authorlink6&quot;: {
&quot;label&quot;: &quot;Author link 6&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the sixth author.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;
},
&quot;last7&quot;: {
&quot;label&quot;: &quot;Last name 7&quot;,
&quot;description&quot;: &quot;The surname of the seventh author; don't wikilink, use 'authorlink7'.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;aliases&quot;: [
&quot;author7&quot;
]
},
&quot;first7&quot;: {
&quot;label&quot;: &quot;First name 7&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the seventh author; don't wikilink.&quot;
},
&quot;authorlink7&quot;: {
&quot;label&quot;: &quot;Author link 7&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the seventh author.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;author7-link&quot;
]
},
&quot;last8&quot;: {
&quot;label&quot;: &quot;Last name 8&quot;,
&quot;description&quot;: &quot;The surname of the eighth author; don't wikilink, use 'authorlink8'.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;aliases&quot;: [
&quot;author8&quot;
]
},
&quot;first8&quot;: {
&quot;label&quot;: &quot;First name 8&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the eighth author; don't wikilink.&quot;
},
&quot;authorlink8&quot;: {
&quot;label&quot;: &quot;Author link 8&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the eighth author.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;author8-link&quot;
]
},
&quot;last9&quot;: {
&quot;label&quot;: &quot;Last name 9&quot;,
&quot;description&quot;: &quot;The surname of the ninth author; don't wikilink, use 'authorlink9'. If nine authors are defined, then only eight will show and 'et al.' will show in place of the last author.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;aliases&quot;: [
&quot;author9&quot;
]
},
&quot;first9&quot;: {
&quot;label&quot;: &quot;First name 9&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the ninth author; don't wikilink.&quot;
},
&quot;authorlink9&quot;: {
&quot;label&quot;: &quot;Author link 9&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the ninth author.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;author9-link&quot;
]
},
&quot;author-name-separator&quot;: {
&quot;label&quot;: &quot;Author name separator&quot;,
&quot;description&quot;: &quot;Changes the separator between last and first names; defaults to a comma and space; a space must be encoded as &amp;#32; do not use an asterisk, colon, or hash mark&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;, &quot;
},
&quot;author-separator&quot;: {
&quot;label&quot;: &quot;Author separator&quot;,
&quot;description&quot;: &quot;Changes the separator between authors; defaults to a semicolon and space; a space must be encoded as &amp;#32; do not use an asterisk, colon, or hash mark&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;; &quot;
},
&quot;display-authors&quot;: {
&quot;label&quot;: &quot;Display authors&quot;,
&quot;description&quot;: &quot;Number of authors to display before 'et al.' is used; default is to do so after 8 of 9 are listed.&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;default&quot;: &quot;8&quot;,
&quot;aliases&quot;: [
&quot;displayauthors&quot;
]
},
&quot;lastauthoramp&quot;: {
&quot;label&quot;: &quot;Last author ampersand&quot;,
&quot;description&quot;: &quot;When set to any value, changes the separator between the last two names of the author list to 'space ampersand space'&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;editor2-last&quot;: {
&quot;label&quot;: &quot;Editor last name 2&quot;,
&quot;description&quot;: &quot;The surname of the second editor; don't wikilink, use 'editor2-link'.&quot;,
&quot;aliases&quot;: [
&quot;editor2&quot;
],
&quot;type&quot;: &quot;line&quot;
},
&quot;editor2-first&quot;: {
&quot;label&quot;: &quot;Editor first name 2&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the second editor; don't wikilink.&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;editor3-last&quot;: {
&quot;label&quot;: &quot;Editor last name 3&quot;,
&quot;description&quot;: &quot;The surname of the third editor; don't wikilink, use 'editor3-link'.&quot;,
&quot;aliases&quot;: [
&quot;editor3&quot;
],
&quot;type&quot;: &quot;line&quot;
},
&quot;editor3-first&quot;: {
&quot;label&quot;: &quot;Editor first name 3&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the third editor; don't wikilink.&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;editor4-last&quot;: {
&quot;label&quot;: &quot;Editor last name 4&quot;,
&quot;description&quot;: &quot;The surname of the fourth editor; don't wikilink, use 'editor4-link'.&quot;,
&quot;aliases&quot;: [
&quot;editor4&quot;
],
&quot;type&quot;: &quot;line&quot;
},
&quot;editor4-first&quot;: {
&quot;label&quot;: &quot;Editor first name 4&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the fourth editor; don't wikilink.&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;editor5-last&quot;: {
&quot;label&quot;: &quot;Editor last name 5&quot;,
&quot;description&quot;: &quot;The surname of the fifth editor; don't wikilink, use 'editor5-link'.&quot;,
&quot;aliases&quot;: [
&quot;editor5&quot;
],
&quot;type&quot;: &quot;line&quot;
},
&quot;editor5-first&quot;: {
&quot;label&quot;: &quot;Editor first name 5&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the fifth editor; don't wikilink.&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;editor6-last&quot;: {
&quot;label&quot;: &quot;Editor last name 6&quot;,
&quot;description&quot;: &quot;The surname of the sixth editor; don't wikilink, use 'editor6-link'.&quot;,
&quot;aliases&quot;: [
&quot;editor6&quot;
],
&quot;type&quot;: &quot;line&quot;
},
&quot;editor6-first&quot;: {
&quot;label&quot;: &quot;Editor first name 6&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the sixth editor; don't wikilink.&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;editor7-last&quot;: {
&quot;label&quot;: &quot;Editor last name 7&quot;,
&quot;description&quot;: &quot;The surname of the seventh editor; don't wikilink, use 'editor7-link'.&quot;,
&quot;aliases&quot;: [
&quot;editor7&quot;
],
&quot;type&quot;: &quot;line&quot;
},
&quot;editor7-first&quot;: {
&quot;label&quot;: &quot;Editor first name 7&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the seventh editor; don't wikilink.&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;editor8-last&quot;: {
&quot;label&quot;: &quot;Editor last name 8&quot;,
&quot;description&quot;: &quot;The surname of the eighth editor; don't wikilink, use 'editor8-link'.&quot;,
&quot;aliases&quot;: [
&quot;editor8&quot;
],
&quot;type&quot;: &quot;line&quot;
},
&quot;editor8-first&quot;: {
&quot;label&quot;: &quot;Editor first name 8&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the eighth editor; don't wikilink.&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;editor9-last&quot;: {
&quot;label&quot;: &quot;Editor last name 9&quot;,
&quot;description&quot;: &quot;The surname of the ninth editor; don't wikilink, use 'editor9-link'.&quot;,
&quot;aliases&quot;: [
&quot;editor9&quot;
],
&quot;type&quot;: &quot;line&quot;
},
&quot;editor9-first&quot;: {
&quot;label&quot;: &quot;Editor first name 9&quot;,
&quot;description&quot;: &quot;Given or first name, middle names, or initials of the ninth editor; don't wikilink.&quot;,
&quot;type&quot;: &quot;line&quot;
},
&quot;editor2-link&quot;: {
&quot;label&quot;: &quot;Editor link 2&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the second editor.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;editor2link&quot;,
&quot;editorlink2&quot;
]
},
&quot;editor3-link&quot;: {
&quot;label&quot;: &quot;Editor link 3&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the third editor.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;editor3link&quot;,
&quot;editorlink3&quot;
]
},
&quot;editor4-link&quot;: {
&quot;label&quot;: &quot;Editor link 4&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the fourth editor.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;editor4link&quot;,
&quot;editorlink4&quot;
]
},
&quot;editor5-link&quot;: {
&quot;label&quot;: &quot;Editor link 5&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the fifth editor.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;editor5link&quot;,
&quot;editorlink5&quot;
]
},
&quot;editor6-link&quot;: {
&quot;label&quot;: &quot;Editor link 6&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the sixth editor.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;editor6link&quot;,
&quot;editorlink6&quot;
]
},
&quot;editor7-link&quot;: {
&quot;label&quot;: &quot;Editor link 7&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the seventh editor.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;editor7link&quot;,
&quot;editorlink7&quot;
]
},
&quot;editor8-link&quot;: {
&quot;label&quot;: &quot;Editor link 8&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the eighth editor.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;editor8link&quot;,
&quot;editorlink8&quot;
]
},
&quot;editor9-link&quot;: {
&quot;label&quot;: &quot;Editor link 9&quot;,
&quot;description&quot;: &quot;Title of existing Wikipedia article about the ninth editor.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;aliases&quot;: [
&quot;editor9link&quot;,
&quot;editorlink9&quot;
]
},
&quot;subscription&quot;: {
&quot;label&quot;: &quot;Subscription required&quot;,
&quot;description&quot;: &quot;When set to yes, displays “(subscription required)” to indicate an online source that requires subscription&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;registration&quot;: {
&quot;label&quot;: &quot;Registration required&quot;,
&quot;description&quot;: &quot;When set to yes, displays “(registration required)” to indicate an online source that requires registration&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;edition&quot;: {
&quot;label&quot;: &quot;Edition&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;Specify the edition or revision of the source, when applicable. For example: '2nd' or '5.1'. What you supply here is suffixed by ' ed.'&quot;
},
&quot;url-access&quot;: {
&quot;label&quot;: &quot;URL access level&quot;,
&quot;description&quot;: &quot;Classification of the access restrictions on the URL ('registration', 'subscription' or 'limited')&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;bibcode-access&quot;: {
&quot;label&quot;: &quot;Bibcode access level&quot;,
&quot;description&quot;: &quot;If the full text is available from ADS via this Bibcode, type 'free'.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;doi-access&quot;: {
&quot;label&quot;: &quot;DOI access level&quot;,
&quot;description&quot;: &quot;If the full text is free to read via the DOI, type 'free'.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;hdl-access&quot;: {
&quot;label&quot;: &quot;HDL access level&quot;,
&quot;description&quot;: &quot;If the full text is free to read via the HDL, type 'free'.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;jstor-access&quot;: {
&quot;label&quot;: &quot;Jstor access level&quot;,
&quot;description&quot;: &quot;If the full text is free to read on Jstor, type 'free'.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;ol-access&quot;: {
&quot;label&quot;: &quot;OpenLibrary access level&quot;,
&quot;description&quot;: &quot;If the full text is free to read on OpenLibrary, type 'free'.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;osti-access&quot;: {
&quot;label&quot;: &quot;OSTI access level&quot;,
&quot;description&quot;: &quot;If the full text is free to read on OSTI, type 'free'.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;authors&quot;: {
&quot;label&quot;: &quot;Authors list&quot;,
&quot;description&quot;: &quot;List of authors as a free form list. Use of this parameter is discouraged, \&quot;lastn\&quot; to \&quot;firstn\&quot; are preferable. Warning: do not use if last or any of its aliases are used.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;aliases&quot;: [
&quot;people&quot;,
&quot;host&quot;,
&quot;credits&quot;
]
}
},
&quot;maps&quot;: {
&quot;proveit&quot;: {
&quot;main&quot;: &quot;title&quot;,
&quot;textarea&quot;: [
&quot;quote&quot;
]
},
&quot;citoid&quot;: {
&quot;title&quot;: &quot;title&quot;,
&quot;url&quot;: &quot;url&quot;,
&quot;subject&quot;: &quot;title&quot;,
&quot;publicationTitle&quot;: &quot;website&quot;,
&quot;blogTitle&quot;: &quot;website&quot;,
&quot;forumTitle&quot;: &quot;website&quot;,
&quot;seriesTitle&quot;: &quot;website&quot;,
&quot;websiteTitle&quot;: &quot;website&quot;,
&quot;publisher&quot;: &quot;publisher&quot;,
&quot;date&quot;: &quot;date&quot;,
&quot;PMCID&quot;: &quot;pmc&quot;,
&quot;PMID&quot;: &quot;pmid&quot;,
&quot;oclc&quot;: &quot;oclc&quot;,
&quot;pages&quot;: &quot;pages&quot;,
&quot;series&quot;: &quot;series&quot;,
&quot;accessDate&quot;: &quot;access-date&quot;,
&quot;DOI&quot;: &quot;doi&quot;,
&quot;language&quot;: &quot;language&quot;,
&quot;contributor&quot;: &quot;others&quot;,
&quot;author&quot;: [
[
&quot;first&quot;,
&quot;last&quot;
],
[
&quot;first2&quot;,
&quot;last2&quot;
],
[
&quot;first3&quot;,
&quot;last3&quot;
],
[
&quot;first4&quot;,
&quot;last4&quot;
],
[
&quot;first5&quot;,
&quot;last5&quot;
],
[
&quot;first6&quot;,
&quot;last6&quot;
],
[
&quot;first7&quot;,
&quot;last7&quot;
],
[
&quot;first8&quot;,
&quot;last8&quot;
],
[
&quot;first9&quot;,
&quot;last9&quot;
]
],
&quot;editor&quot;: [
[
&quot;editor-first&quot;,
&quot;editor-last&quot;
],
[
&quot;editor2-first&quot;,
&quot;editor2-last&quot;
],
[
&quot;editor3-first&quot;,
&quot;editor3-last&quot;
],
[
&quot;editor4-first&quot;,
&quot;editor4-last&quot;
],
[
&quot;editor5-first&quot;,
&quot;editor5-last&quot;
],
[
&quot;editor6-first&quot;,
&quot;editor6-last&quot;
],
[
&quot;editor7-first&quot;,
&quot;editor7-last&quot;
],
[
&quot;editor8-first&quot;,
&quot;editor8-last&quot;
],
[
&quot;editor9-first&quot;,
&quot;editor9-last&quot;
]
]
}
},
&quot;paramOrder&quot;: [
&quot;url&quot;,
&quot;title&quot;,
&quot;last&quot;,
&quot;first&quot;,
&quot;authorlink&quot;,
&quot;authors&quot;,
&quot;last2&quot;,
&quot;first2&quot;,
&quot;authorlink2&quot;,
&quot;date&quot;,
&quot;year&quot;,
&quot;editor-last&quot;,
&quot;editor-first&quot;,
&quot;editor-link&quot;,
&quot;editor2-last&quot;,
&quot;editor2-first&quot;,
&quot;editor2-link&quot;,
&quot;website&quot;,
&quot;series&quot;,
&quot;publisher&quot;,
&quot;location&quot;,
&quot;page&quot;,
&quot;pages&quot;,
&quot;at&quot;,
&quot;language&quot;,
&quot;script-title&quot;,
&quot;trans-title&quot;,
&quot;type&quot;,
&quot;format&quot;,
&quot;others&quot;,
&quot;orig-year&quot;,
&quot;publication-place&quot;,
&quot;publication-date&quot;,
&quot;nopp&quot;,
&quot;arxiv&quot;,
&quot;asin&quot;,
&quot;asin-tld&quot;,
&quot;bibcode&quot;,
&quot;biorxiv&quot;,
&quot;citeseerx&quot;,
&quot;doi&quot;,
&quot;doi-broken-date&quot;,
&quot;isbn&quot;,
&quot;issn&quot;,
&quot;jfm&quot;,
&quot;jstor&quot;,
&quot;lccn&quot;,
&quot;mr&quot;,
&quot;oclc&quot;,
&quot;ol&quot;,
&quot;osti&quot;,
&quot;pmc&quot;,
&quot;pmid&quot;,
&quot;rfc&quot;,
&quot;ssrn&quot;,
&quot;zbl&quot;,
&quot;id&quot;,
&quot;url-access&quot;,
&quot;archive-url&quot;,
&quot;archive-date&quot;,
&quot;dead-url&quot;,
&quot;access-date&quot;,
&quot;quote&quot;,
&quot;ref&quot;,
&quot;postscript&quot;,
&quot;subscription&quot;,
&quot;registration&quot;,
&quot;separator&quot;,
&quot;layurl&quot;,
&quot;laysource&quot;,
&quot;laydate&quot;,
&quot;author-mask&quot;,
&quot;last3&quot;,
&quot;first3&quot;,
&quot;authorlink3&quot;,
&quot;last4&quot;,
&quot;first4&quot;,
&quot;authorlink4&quot;,
&quot;last5&quot;,
&quot;first5&quot;,
&quot;authorlink5&quot;,
&quot;last6&quot;,
&quot;first6&quot;,
&quot;authorlink6&quot;,
&quot;last7&quot;,
&quot;first7&quot;,
&quot;authorlink7&quot;,
&quot;last8&quot;,
&quot;first8&quot;,
&quot;authorlink8&quot;,
&quot;last9&quot;,
&quot;first9&quot;,
&quot;authorlink9&quot;,
&quot;author-name-separator&quot;,
&quot;author-separator&quot;,
&quot;display-authors&quot;,
&quot;lastauthoramp&quot;,
&quot;editor3-last&quot;,
&quot;editor3-first&quot;,
&quot;editor3-link&quot;,
&quot;editor4-last&quot;,
&quot;editor4-first&quot;,
&quot;editor4-link&quot;,
&quot;editor5-last&quot;,
&quot;editor5-first&quot;,
&quot;editor5-link&quot;,
&quot;editor6-last&quot;,
&quot;editor6-first&quot;,
&quot;editor6-link&quot;,
&quot;editor7-last&quot;,
&quot;editor7-first&quot;,
&quot;editor7-link&quot;,
&quot;editor8-last&quot;,
&quot;editor8-first&quot;,
&quot;editor8-link&quot;,
&quot;editor9-last&quot;,
&quot;editor9-first&quot;,
&quot;editor9-link&quot;,
&quot;edition&quot;,
&quot;bibcode-access&quot;,
&quot;doi-access&quot;,
&quot;hdl-access&quot;,
&quot;jstor-access&quot;,
&quot;ol-access&quot;,
&quot;osti-access&quot;
],
&quot;format&quot;: &quot;inline&quot;
}
&lt;/templatedata&gt;
==See also==
{{Citation Style 1}}
{{Wikipedia referencing}}
{{UF-COinS}}
&lt;includeonly&gt;
{{#ifeq:{{SUBPAGENAME}}|sandbox||
[[Category:Citation Style 1 templates|W]]
}}
&lt;/includeonly&gt;</text>
<sha1>s8dnbzg36ps05ay2rif4dexv3bzglmz</sha1>
</revision>
</page>
<page>
<title>Template:Code</title>
<ns>10</ns>
<id>878369</id>
<revision>
<id>714246016</id>
<parentid>714215769</parentid>
<timestamp>2016-04-08T15:37:16Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<comment>Update from sandbox</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="174">{{#tag:syntaxhighlight|{{{code|{{{1}}}}}}|lang={{{lang|{{{2|text}}}}}}|class={{{class|}}}|id={{{id|}}}|style={{{style|}}}|inline=1}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>iyuiy1uoe39isuphgfdwgy4hc8jrsnl</sha1>
</revision>
</page>
<page>
<title>Template:Crossref</title>
<ns>10</ns>
<id>42793362</id>
<redirect title="Template:Crossreference" />
<revision>
<id>804500384</id>
<parentid>770818753</parentid>
<timestamp>2017-10-09T12:24:30Z</timestamp>
<contributor>
<username>Xezbeth</username>
<id>86247</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Crossref]]&quot;: [[Wikipedia:High-risk templates|Highly visible]] template redirect ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="84">#REDIRECT [[Template:Crossreference]]
{{Rcat shell|
{{R from template shortcut}}
}}</text>
<sha1>pq7z0nmw7a74xqvemqbunajs03rcg15</sha1>
</revision>
</page>
<page>
<title>Template:Crossreference</title>
<ns>10</ns>
<id>44147271</id>
<revision>
<id>804500343</id>
<parentid>796607345</parentid>
<timestamp>2017-10-09T12:23:56Z</timestamp>
<contributor>
<username>Xezbeth</username>
<id>86247</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Crossreference]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="327">{{Hatnote inline|1={{{1|{{{text|{{{content|&lt;noinclude&gt;sample content&lt;/noinclude&gt;}}}}}}}}}|extraclasses={{{class|{{{extraclasses|}}}}}}|selfref={{#if:{{{selfref|{{{printworthy|{{{unprintworthy|}}}}}}}}}||yes}}}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>i6gx3jctinkehrzyjydrmmdpauf5j4h</sha1>
</revision>
</page>
<page>
<title>Template:Csdoc</title>
<ns>10</ns>
<id>34198828</id>
<redirect title="Template:Citation Style documentation" />
<revision>
<id>623878625</id>
<parentid>623870691</parentid>
<timestamp>2014-09-02T16:23:24Z</timestamp>
<contributor>
<username>Gadget850</username>
<id>339034</id>
</contributor>
<minor/>
<comment>Protected Template:Csdoc ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="79">#REDIRECT [[Template:Citation Style documentation]]{{R from template shortcut}}</text>
<sha1>1wt7ij6rzt3vfufgon1tw1ycigvclx0</sha1>
</revision>
</page>
<page>
<title>Template:Date</title>
<ns>10</ns>
<id>4561148</id>
<revision>
<id>680696824</id>
<parentid>680684124</parentid>
<timestamp>2015-09-12T16:05:30Z</timestamp>
<contributor>
<username>SiBr4</username>
<id>16981284</id>
</contributor>
<comment>Moved sandbox live to fix wrong output when substituted</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3913">{{{{{|safesubst:}}}#switch:none
|{{{{{|safesubst:}}}#iferror: {{{{{|safesubst:}}}#time:Y_M_d|{{{1|}}} }} | none }} &lt;noinclude&gt;&lt;!-- #time: can't handle --&gt;&lt;/noinclude&gt;
|{{{{{|safesubst:}}}#iferror: {{{{{|safesubst:}}}#expr: {{{1|}}}+0 }}
|&lt;noinclude&gt;&lt;!--not a pure number--&gt;&lt;/noinclude&gt;
|{{{{{|safesubst:}}}#ifexpr: {{{1|}}}+0 &gt; 10000000000000
|&lt;noinclude&gt;&lt;!-- a yyyymmddhhmmss timestamp --&gt;&lt;/noinclude&gt;
|{{{{{|safesubst:}}}#ifeq: {{{{{|safesubst:}}}#expr:{{{1|}}}+0}} | {{{1|}}}
| none &lt;noinclude&gt;&lt;!-- pure number eg 123.456 --&gt;&lt;/noinclude&gt;
| &lt;noinclude&gt;&lt;!-- assume yy-mm-dd --&gt;&lt;/noinclude&gt;
}}
}}
}}
|{{{{{|safesubst:}}}#switch: {{{{{|safesubst:}}}lc:{{{2|}}}}} | none | asis | link | lnone =none }}
|{{{{{|safesubst:}}}#ifexpr: {{{{{|safesubst:}}}#time:Y|{{{1|}}} }} &lt; 1000 | none }}
|{{{{{|safesubst:}}}#switch: {{{{{|safesubst:}}}#time:Ynj|{{{1|}}} }}|100031|110031|130031|140031|150031=none}}
|= {{{{{|safesubst:}}}#if:{{{1|}}}
|{{{{{|safesubst:}}}#switch:{{{2}}}
|link|lnone|l=[[{{{1}}}]]
|{{{1}}}
}}
}}&lt;noinclude&gt;&lt;!-- error or &quot;none&quot;, so no formatting --&gt;&lt;/noinclude&gt;
|&lt;noinclude&gt;&lt;!-- continue with formatting --&gt;&lt;/noinclude&gt;
{{{{{|safesubst:}}}#ifeq:&lt;noinclude&gt;&lt;!--
--&gt;&lt;/noinclude&gt;{{{{{|safesubst:}}}#time:Y|{{{1}}} 2008}}&lt;noinclude&gt;&lt;!--
--&gt;&lt;/noinclude&gt;{{{{{|safesubst:}}}#iferror: {{{{{|safesubst:}}}#ifexpr: {{{1}}}&gt;10000000000000 | no }} | }}&lt;noinclude&gt;&lt;!--
--&gt;&lt;/noinclude&gt;{{{{{|safesubst:}}}#time:Y|{{{1}}} 2004}}
|20082004
|&lt;noinclude&gt;&lt;!-- no year --&gt;&lt;/noinclude&gt;
{{{{{|safesubst:}}}#ifeq:{{{{{|safesubst:}}}#time:d|{{{1}}} 2036}}|{{{{{|safesubst:}}}#time:d|{{{1}}} }}
|&lt;noinclude&gt;&lt;!-- month+day --&gt;&lt;/noinclude&gt;{{{{{|safesubst:}}}#time:
{{{{{|safesubst:}}}#switch: {{{{{|safesubst:}}}lc: {{{{{|safesubst:}}}#ifeq:{{{3|}}}|y|L}}{{{2|}}} }}
| lmdy | liso | lymd = [[:F j]]
| mdy | iso | ymd = F j
| ldmy | l = [[:j F]]
| #default = j F
}}|{{{1}}} 2000 }}&lt;noinclude&gt;&lt;!-- default='dmy' or null or &quot;&quot; or unsupported option --&gt;&lt;/noinclude&gt;
|&lt;noinclude&gt;&lt;!-- month only --&gt;&lt;/noinclude&gt;{{{{{|safesubst:}}}#time:
{{{{{|safesubst:}}}#switch: {{{{{|safesubst:}}}lc: {{{{{|safesubst:}}}#ifeq:{{{3|}}}|y|L}}{{{2|}}} }}
| lmdy | liso | lymd
| ldmy | l = [[F]]
| #default = F
}}|{{{1}}} 2000 }}&lt;noinclude&gt;&lt;!-- default='dmy'/'mdy'/'ymd'/'iso'/null/&quot;&quot;/unsupported opt --&gt;&lt;/noinclude&gt;
}}
|&lt;noinclude&gt;&lt;!-- with year--&gt;&lt;/noinclude&gt;
{{{{{|safesubst:}}}#if: {{{{{|safesubst:}}}#iferror:{{{{{|safesubst:}}}#time:j|2 {{{1|}}}}}|*D*|{{{{{|safesubst:}}}#iferror:{{{{{|safesubst:}}}#time:j|2000 {{{1|}}}}}|*D*| }}}}
|&lt;noinclude&gt;&lt;!-- day+month+year --&gt;&lt;/noinclude&gt;{{{{{|safesubst:}}}#time:
{{{{{|safesubst:}}}#switch: {{{{{|safesubst:}}}lc: {{{{{|safesubst:}}}#ifeq:{{{3|}}}|y|L}}{{{2|}}} }}
| lmdy = [[:F j]], [[Y]]
| mdy = F j, Y
| liso = [[Y|Y-]][[F j|m-d]]&lt;noinclude&gt;&lt;!-- i.e. [[Y-m-d]] --&gt;&lt;/noinclude&gt;
| iso = Y-m-d
| lymd = [[Y]] [[:F j]]
| ymd = Y F j
| ldmy | l = [[:j F]] [[Y]]
| #default = j F Y
}}|{{{1|}}} }}&lt;noinclude&gt;&lt;!-- #default='dmy' or null or &quot;&quot; or unsupported option --&gt;&lt;/noinclude&gt;
|&lt;noinclude&gt;&lt;!-- month+year --&gt;&lt;/noinclude&gt;{{{{{|safesubst:}}}#time:
{{{{{|safesubst:}}}#switch: {{{{{|safesubst:}}}lc: {{{{{|safesubst:}}}#ifeq:{{{3|}}}|y|L}}{{{2|}}} }}
| lmdy | liso | lymd | ldmy | l = [[:F Y]]
| #default = F Y
}}|{{{1|}}} }}&lt;noinclude&gt;&lt;!-- default='dmy'/'iso'/'mdy'/null/&quot;&quot;/unsupported option --&gt;&lt;/noinclude&gt;
}}
}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>jxm2144lpkh9elnaxf686scqnmicx1z</sha1>
</revision>
</page>
<page>
<title>Template:Diff</title>
<ns>10</ns>
<id>10317200</id>
<revision>
<id>714526695</id>
<parentid>666508071</parentid>
<timestamp>2016-04-10T08:58:51Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<comment>Add title= to easy copy/paste of diff links</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="471">&lt;span class=&quot;plainlinks&quot;&gt;[{{#if:{{{title|{{{page|{{{1|}}}}}}}}}
|{{fullurl:{{{title|{{{page|{{{1}}}}}}}}}|{{#if:{{{diff|{{{2|}}}}}}
|diff={{trim|{{{diff|{{{2}}}}}}}}&amp;
}}oldid={{trim|{{{oldid|{{{3|}}}}}}}}}}
|{{SERVER}}{{SCRIPTPATH}}/index.php?title={{#if:{{{diff|{{{2|}}}}}}
|&amp;diff={{trim|{{{diff|{{{2}}}}}}}}
}}&amp;oldid={{trim|{{{oldid|{{{3|}}}}}}}}
}}{{#ifeq:{{{diffonly|}}}|yes|&amp;diffonly=1}} {{{label|{{{4|}}}}}}]&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>5wzn64ljt4oe5kygi2ud9mgme7as3lq</sha1>
</revision>
</page>
<page>
<title>Template:Em</title>
<ns>10</ns>
<id>28990025</id>
<revision>
<id>800858570</id>
<parentid>716632165</parentid>
<timestamp>2017-09-16T03:11:40Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<comment>added role parameter and attribute</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="306">&lt;em {{#if:{{{role|}}}|role=&quot;{{{role}}}&quot;}} {{#if:{{{class|}}}|class=&quot;{{{class}}}&quot;}} {{#if:{{{id|}}}|id=&quot;{{{id}}}&quot;}} {{#if:{{{style|}}}|style=&quot;{{{style}}}&quot;}} {{#if:{{{title|}}}|title=&quot;{{{title}}}&quot;}}&gt;{{{1}}}&lt;/em&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>g9i6h00ap35wxdar0fg1tibei9ktn9g</sha1>
</revision>
</page>
<page>
<title>Template:End</title>
<ns>10</ns>
<id>1098678</id>
<revision>
<id>774487481</id>
<parentid>388684907</parentid>
<timestamp>2017-04-08T20:05:57Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:End]]&quot;: [[WP:High-risk templates|Highly visible template]]: Allowing template editors ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="42">|}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>jfq5vhv0krcabpnbtiweayxoubqi5xt</sha1>
</revision>
</page>
<page>
<title>Template:Hatnote inline</title>
<ns>10</ns>
<id>42792474</id>
<revision>
<id>819682260</id>
<parentid>737487846</parentid>
<timestamp>2018-01-10T18:59:05Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Hatnote inline]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access]...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="313">{{Hatnote inline/invoke|1={{{1|{{{text|{{{content}}}}}}}}}|extraclasses={{{class|{{{extraclasses|}}}}}}|selfref={{#if:{{{printworthy|{{{selfref|}}}}}}||yes}}|category={{{category|}}}|inline=true}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>d1mkan8k04vxp11qm5ojh1p847rwvwf</sha1>
</revision>
</page>
<page>
<title>Template:Hatnote inline/invoke</title>
<ns>10</ns>
<id>42799349</id>
<revision>
<id>819682238</id>
<parentid>725826535</parentid>
<timestamp>2018-01-10T18:59:05Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Hatnote inline/invoke]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="170">&lt;includeonly&gt;{{#invoke:Hatnote inline|hatnote}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation|content=This is an includeonly part of [[Template:Hatnote inline]].}}&lt;/noinclude&gt;</text>
<sha1>m1z1xbnw86i1o2sdaq1aetcb7vbbg8j</sha1>
</revision>
</page>
<page>
<title>Template:Markup2</title>
<ns>10</ns>
<id>41949964</id>
<revision>
<id>718989345</id>
<parentid>631059056</parentid>
<timestamp>2016-05-06T21:37:41Z</timestamp>
<contributor>
<username>Wugapodes</username>
<id>24484530</id>
</contributor>
<comment>fixing problem where first bullet renders as * when title is given</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="356">{{#if: {{{t|}}}|'''{{{t|}}}'''
*&lt;code&gt;{{{m|}}}&lt;/code&gt;
:{{{r|}}}|*&lt;code&gt;{{{m|}}}&lt;/code&gt;
:{{{r|}}}}}{{#if: {{{m2|}}}|
*&lt;code&gt;{{{m2|}}}&lt;/code&gt;
:{{{r2|}}}}}{{#if: {{{m3|}}}|
*&lt;code&gt;{{{m3|}}}&lt;/code&gt;
:{{{r3|}}}}}{{#if: {{{m4|}}}|
*&lt;code&gt;{{{m4|}}}&lt;/code&gt;
:{{{r4|}}}}}{{#if: {{{m5|}}}|
*&lt;code&gt;{{{m5|}}}&lt;/code&gt;
:{{{r5|}}}}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>7xlv46sy254fi18c80dzycem7st84j6</sha1>
</revision>
</page>
<page>
<title>Template:MediaWiki URL rules</title>
<ns>10</ns>
<id>35595705</id>
<revision>
<id>796785946</id>
<parentid>699815086</parentid>
<timestamp>2017-08-23T01:52:43Z</timestamp>
<contributor>
<username>HLHJ</username>
<id>3350485</id>
</contributor>
<comment>wikilinked &quot;citation template parameters&quot;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1236">:URLs must begin with a supported [[URI scheme]]. &lt;code&gt;http://&lt;/code&gt; and &lt;code&gt;https://&lt;/code&gt; will be supported by all browsers; however, &lt;code&gt;ftp://&lt;/code&gt;, &lt;code&gt;gopher://&lt;/code&gt;, &lt;code&gt;irc://&lt;/code&gt;, &lt;code&gt;ircs://&lt;/code&gt;, &lt;code&gt;mailto:&lt;/code&gt; and &lt;code&gt;news:&lt;/code&gt; may require a plug-in or an external application and should normally be avoided. [[IPv6]] host-names are currently not supported.
:If URLs in [[Wikipedia:Citation_templates#Examples|citation template parameters]] contain certain characters, then they will not display and link correctly. Those characters need to be [[percent-encoded]]. For example, a space must be replaced by &lt;code&gt;%20&lt;/code&gt;. To encode the URL, replace the following characters with:
{| class=&quot;wikitable&quot; style=&quot;margin-left: 5em&quot;
! sp !! &quot; !! ' !! &lt; !! &gt; !! [ !! ] !! { !! &lt;nowiki&gt;|&lt;/nowiki&gt; !! }
|-
|| %20 || %22 || %27 || %3c || %3e || %5b || %5d || %7b || %7c || %7d
|}
:Single apostrophes do not need to be encoded; however, unencoded multiples will be parsed as italic or bold markup. Single curly closing braces also do not need to be encoded; however, an unencoded pair will be parsed as the double closing braces for the template transclusion.&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>au40nj2aicb81uzha3xsgl96vjd52ai</sha1>
</revision>
</page>
<page>
<title>Template:NCJ</title>
<ns>10</ns>
<id>8000544</id>
<revision>
<id>492196230</id>
<parentid>492031370</parentid>
<timestamp>2012-05-12T13:05:48Z</timestamp>
<contributor>
<username>Gadget850</username>
<id>339034</id>
</contributor>
<comment>doc page</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="159">[[National Criminal Justice Reference Service|NCJ]] [//www.ncjrs.gov/App/Publications/abstract.aspx?ID={{{1}}} {{{1}}}]&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>8pls5wi0ax8g6ia84h99uivkf1w7rxt</sha1>
</revision>
</page>
<page>
<title>Template:Paren</title>
<ns>10</ns>
<id>34625646</id>
<revision>
<id>575048223</id>
<parentid>475492581</parentid>
<timestamp>2013-09-29T20:51:45Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>fx fmt</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="316">[[Wikipedia:Parenthetical referencing|{{#ifeq:{{{lc}}}|{{{lc|}}}|parenthetical referencing|Parenthetical referencing}}]]&lt;noinclude&gt;{{documentation|content=
==Usage==
===Optional===
For the first letter to be in lower case, use:
{{para|lc|&lt;var&gt;y&lt;/var&gt;}}
}}
[[Category:Documentation assistance templates]]
&lt;/noinclude&gt;</text>
<sha1>lbo8pmvijutb03hj6ovwnswic8o5249</sha1>
</revision>
</page>
<page>
<title>Template:Purge</title>
<ns>10</ns>
<id>1188537</id>
<revision>
<id>772120883</id>
<parentid>662264785</parentid>
<timestamp>2017-03-25T12:38:46Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Purge]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (inde...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="64">{{#invoke:Purge|main}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>jp4ln3hv505tbr6kcpy61x7wo9joahj</sha1>
</revision>
</page>
<page>
<title>Template:R</title>
<ns>10</ns>
<id>24429562</id>
<revision>
<id>810555122</id>
<parentid>810551970</parentid>
<timestamp>2017-11-16T00:06:18Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>don't point to sandbox</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1544">&lt;includeonly&gt;{{r/ref|{{{1}}}|{{{group|{{{grp|{{{g|}}}}}}}}}|{{{p|{{{p1|{{{page|{{{page1|{{{pp|{{{pp1|{{{pages|{{{pages1|}}}}}}}}}}}}}}}}}}}}}}}}|{{{q|{{{q1|{{{quote|{{{quote1|}}}}}}}}}}}}}}&lt;!--
--&gt;{{#if:{{{2|}}}|{{r/ref|{{{2}}}|{{{group|{{{grp|{{{g|}}}}}}}}}|{{{p2|{{{page2|{{{pp2|{{{pages2|}}}}}}}}}}}}|{{{q2|{{{quote2|}}}}}}}}&lt;!--
--&gt;{{#if:{{{3|}}}|{{r/ref|{{{3}}}|{{{group|{{{grp|{{{g|}}}}}}}}}|{{{p3|{{{page3|{{{pp3|{{{pages3|}}}}}}}}}}}}|{{{q3|{{{quote3|}}}}}}}}&lt;!--
--&gt;{{#if:{{{4|}}}|{{r/ref|{{{4}}}|{{{group|{{{grp|{{{g|}}}}}}}}}|{{{p4|{{{page4|{{{pp4|{{{pages4|}}}}}}}}}}}}|{{{q4|{{{quote4|}}}}}}}}&lt;!--
--&gt;{{#if:{{{5|}}}|{{r/ref|{{{5}}}|{{{group|{{{grp|{{{g|}}}}}}}}}|{{{p5|{{{page5|{{{pp5|{{{pages5|}}}}}}}}}}}}|{{{q5|{{{quote5|}}}}}}}}&lt;!--
--&gt;{{#if:{{{6|}}}|{{r/ref|{{{6}}}|{{{group|{{{grp|{{{g|}}}}}}}}}|{{{p6|{{{page6|{{{pp6|{{{pages6|}}}}}}}}}}}}|{{{q6|{{{quote6|}}}}}}}}&lt;!--
--&gt;{{#if:{{{7|}}}|{{r/ref|{{{7}}}|{{{group|{{{grp|{{{g|}}}}}}}}}|{{{p7|{{{page7|{{{pp7|{{{pages7|}}}}}}}}}}}}|{{{q7|{{{quote7|}}}}}}}}&lt;!--
--&gt;{{#if:{{{8|}}}|{{r/ref|{{{8}}}|{{{group|{{{grp|{{{g|}}}}}}}}}|{{{p8|{{{page8|{{{pp8|{{{pages8|}}}}}}}}}}}}|{{{q8|{{{quote8|}}}}}}}}&lt;!--
--&gt;{{#if:{{{9|}}}|{{r/ref|{{{9}}}|{{{group|{{{grp|{{{g|}}}}}}}}}|{{{p9|{{{page9|{{{pp9|{{{pages9|}}}}}}}}}}}}|{{{q9|{{{quote9|}}}}}}}}&lt;!--
--&gt;{{#if:{{{10|}}}|&lt;sup class=&quot;error&quot; style=&quot;font-size:0.9em; line-height:0;&quot;&gt;The template only supports up to 9 references ([[Template:R|edit it]]!).&lt;/sup&gt; &lt;!--
--&gt;}}}}}}}}}}}}}}}}}}&lt;/includeonly&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>ow3nzadiiajc7r5h53otz5a7c9m2zby</sha1>
</revision>
</page>
<page>
<title>Template:R/ref</title>
<ns>10</ns>
<id>24472967</id>
<revision>
<id>810556352</id>
<parentid>810551841</parentid>
<timestamp>2017-11-16T00:17:35Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>add dashed underline if quote specified</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="428">&lt;includeonly&gt;{{#tag:ref||name={{{1}}}|group={{{2}}}}}{{#if:{{{3}}}|&lt;sup class=&quot;reference nowrap&quot;&gt;&lt;nowiki&gt;:&lt;/nowiki&gt;&lt;span {{#if:{{{4|}}}|style=&quot;border-bottom: 1px dashed;&quot; title='&quot;{{#tag:nowiki|{{#invoke:String|replace|{{trim quotes|s={{{4}}}}}|&quot;|&amp;quot;}}}}&quot;'}}&gt;{{{3}}}&lt;/span&gt;&lt;/sup&gt;}}&lt;/includeonly&gt;&lt;noinclude&gt;
==Usage==
&lt;pre&gt;{{r/ref|name|group|page numbers|quote}}&lt;/pre&gt;
[[Category:Template implementation details]]
&lt;/noinclude&gt;</text>
<sha1>bew5ph523w4kf1eopdwgk3wkjq3an27</sha1>
</revision>
</page>
<page>
<title>Template:Section link</title>
<ns>10</ns>
<id>33237980</id>
<revision>
<id>760447925</id>
<parentid>760441175</parentid>
<timestamp>2017-01-17T01:29:39Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<comment>done</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="146">{{#invoke:Section link|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>gh09dld5dhux6n50izjp2r31i71ye17</sha1>
</revision>
</page>
<page>
<title>Template:UF-COinS</title>
<ns>10</ns>
<id>12514523</id>
<revision>
<id>581340912</id>
<parentid>547588552</parentid>
<timestamp>2013-11-12T15:14:21Z</timestamp>
<contributor>
<username>Salton Finneger</username>
<id>20093492</id>
</contributor>
<comment>Add documentation link</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="309">''This template produces [[w:COinS|COinS]] metadata; see [[Wikipedia:COinS|COinS in Wikipedia]] for background information.''&lt;includeonly&gt;[[Category:Templates generating COinS|{{PAGENAME}}]]&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!--Categories--&gt;
[[Category:Templates generating COinS| ]]
&lt;/noinclude&gt;</text>
<sha1>1n3rm9n7cdau9vmi62cqpw4slpm8k1c</sha1>
</revision>
</page>
<page>
<title>Template:Wikipedia referencing</title>
<ns>10</ns>
<id>33126075</id>
<revision>
<id>819769107</id>
<parentid>807202249</parentid>
<timestamp>2018-01-11T04:49:44Z</timestamp>
<contributor>
<username>Nihonjoe</username>
<id>446342</id>
</contributor>
<comment>tools</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3210">{{Navbox
| name = Wikipedia referencing
| state = {{{state&lt;includeonly&gt;|{{{1|autocollapse}}}&lt;/includeonly&gt;}}}
| bodyclass = hlist
| title = [[Wikipedia:Verifiability|Wikipedia referencing]]
| group1 = Policies and guidelines
| list1 =
* [[Wikipedia:Verifiability|Verifiability]]
* [[Wikipedia:Biographies of living persons|Biographies of living persons]]
* [[Wikipedia:Identifying reliable sources|Identifying reliable sources]]
** [[Wikipedia:Identifying reliable sources (medicine)|Medicine]]
* [[Wikipedia:Citing sources|Citing sources]]
* [[Wikipedia:Scientific citation guidelines|Scientific citations]]
| group2 = General advice
| list2 =
* [[Wikipedia:Citation needed|Citation needed]]
* [[Help:Find sources|Find sources]]
* [[Wikipedia:Combining sources|Combining sources]]
* [[Wikipedia:Offline sources|Offline sources]]
* [[Help:Overview of referencing styles|Referencing styles]]
| group3 = [[Wikipedia:Citing sources|Citing sources]]
| list3 =
* [[Help:Citation Style 1|Citation Style 1]]
* [[Help:Citation Style 2|Citation Style 2]]
* [[Help:Citation Style Vancouver|Citation Style Vancouver]]
* [[:Category:LSA style citation templates|LSA]]
* [[:Category:Comics citation templates|Comics]]
* [[Wikipedia:Citation templates|Citation templates]]
* [[Template:Reflist|Reflist template]]
| group4 = [[Wikipedia:Inline citation|Inline citations]]
| list4 =
* [[Help:Footnotes|Footnotes]]
* [[Wikipedia:Parenthetical referencing|Parenthetical referencing]]
* [[MOS:PUNCTFOOT|Punctuation and footnotes]]
* [[Help:Shortened footnotes|Shortened footnotes]]
* [[Wikipedia:Nesting footnotes|Nesting footnotes]]
| group5 = [[Help:Referencing for beginners|Help for beginners]]
| list5 =
*[[Help:Reftags|Reference-tags]]
* [[Help:Citations quick reference|Citations quick reference]]
* [[Help:Introduction to referencing/1|Introduction to referencing]]
* [[Help:Referencing for beginners with citation templates|Referencing with citation templates]]
* [[Help:Referencing for beginners without using templates|Referencing without using templates]]
* [[Wikipedia:References dos and don'ts|Referencing dos and don'ts]]
*[[Wikipedia:Citing Wikipedia|Citing Wikipedia]]
| group6 = Advanced help
| list6 =
* [[Help:Cite link labels|Cite link labels]]
* [[Help:Citation tools|Citation tools]]
* [[Help:Cite errors|Cite errors]]
* [[Help:Cite messages|Cite messages]]
* [[Help:Converting between references formats|Converting between references formats]]
* [[Help:Reference display customization|Reference display customization]]
* [[Help:References and page numbers|References and page numbers]]
| group7 = Template documentation
| list7 =
* {{tl|Edit refs}}
* {{tl|Refref}}
* {{tl|Refref2}}
* {{tl|Refstart}}
| group8 = Tools
| list8 =
* [[Wikipedia:The Wikipedia Library|Wikipedia Library]]
}}&lt;noinclude&gt;
{{Documentation
| content =
{{Collapsible option |statename=optional}}
==See also==
* {{tl|Wikipedia editor navigation}} an amalgamation of navboxes that includes this navbox.
{{Wikipedia editor navigation templates|state=expanded}}
}}
[[Category:Documentation assistance templates]]
[[Category:Wikipedia help navigation|Referencing]]
[[Category:Wikipedia citation administration]]
&lt;/noinclude&gt;</text>
<sha1>2xvg6gc45fu5ukso6l9wb5wk06uujow</sha1>
</revision>
</page>
<page>
<title>Template:Xt</title>
<ns>10</ns>
<id>20695285</id>
<revision>
<id>818866480</id>
<parentid>729134851</parentid>
<timestamp>2018-01-06T02:04:04Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>rm. redundant class</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="369">{{#ifeq:{{NAMESPACE}}|{{ns:0}}|{{FormattingError|[[:{{#invoke:TEMPLATENAME|main}}]] is only for examples of style and formatting. Do not use it in actual articles.}}|&lt;span class=&quot;example&quot; style=&quot;font-family: Georgia, 'DejaVu Serif', serif; color: #006400;&quot; {{#if:{{{title|}}}|title=&quot;{{{title}}}&quot;}}&gt;{{{1|Example text}}}&lt;/span&gt;}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>r6unov68wl8p1cmmfuakzxmr2lcia6g</sha1>
</revision>
</page>
<page>
<title>Module:Hatnote inline</title>
<ns>828</ns>
<id>42792326</id>
<revision>
<id>727389031</id>
<parentid>726443188</parentid>
<timestamp>2016-06-28T17:26:06Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Cut module down to a wrapper on [[Module:Hatnote]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1093">--------------------------------------------------------------------------------
-- Module:Hatnote-inline --
-- --
-- This module produces hatnote-style links and links to related articles, --
-- but inside a &lt;span&gt;, instead of the &lt;div&gt; used by Module:Hatnote. It --
-- implements the {{hatnote-inline}} meta-template. --
--------------------------------------------------------------------------------
local mHatnote = require('Module:Hatnote')
local mArguments = require('Module:Arguments')
local yesno = require('Module:Yesno')
local p = {}
function p.hatnoteInline (frame)
local args = mArguments.getArgs(frame)
local hatnote = mHatnote.hatnote(frame)
if args.inline == nil or yesno(args.inline, true) then
local subs = {
['^&lt;div'] = '&lt;span',
['&lt;/div&gt;$'] = '&lt;/span&gt;'
}
for k, v in pairs(subs) do hatnote = string.gsub(hatnote, k, v) end
end
return hatnote
end
p.hatnote = p.hatnoteInline --alias
return p</text>
<sha1>jb6gsg1d59p7ypwzurylxxtvacyh17t</sha1>
</revision>
</page>
<page>
<title>Module:Purge</title>
<ns>828</ns>
<id>46701444</id>
<revision>
<id>810146905</id>
<parentid>662264650</parentid>
<timestamp>2017-11-13T16:20:48Z</timestamp>
<contributor>
<username>Dinoguy1000</username>
<id>2412089</id>
</contributor>
<comment>from the sandbox: if the pagename is specified, don't add the title text or its span</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1097">-- This module implements [[Template:Purge]].
local p = {}
local function makeUrlLink(url, display)
return string.format('[%s %s]', url, display)
end
function p._main(args)
-- Make the URL
local url
do
local title
if args.page then
title = mw.title.new(args.page)
if not title then
error(string.format(
&quot;'%s' is not a valid page name&quot;,
args.page
), 2)
end
else
title = mw.title.getCurrentTitle()
end
if args.anchor then
title.fragment = args.anchor
end
url = title:fullUrl{action = 'purge'}
end
-- Make the display
local display
if args.page then
display = args[1] or 'Purge'
else
display = mw.html.create('span')
display
:attr('title', 'Purge this page')
:wikitext(args[1] or 'Purge')
display = tostring(display)
end
-- Output the HTML
local root = mw.html.create('span')
root
:addClass('noprint')
:addClass('plainlinks')
:addClass('purgelink')
:wikitext(makeUrlLink(url, display))
return tostring(root)
end
function p.main(frame)
local args = frame:getParent().args
return p._main(args)
end
return p</text>
<sha1>7zn4wpraqp0o2q6ovvb2j9zno19p3zp</sha1>
</revision>
</page>
<page>
<title>Module:Section link</title>
<ns>828</ns>
<id>44646152</id>
<revision>
<id>809675280</id>
<parentid>809673415</parentid>
<timestamp>2017-11-10T17:54:32Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>cleanup code</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3757">-- This module implements {{section link}}.
local checkType = require('libraryUtil').checkType
local p = {}
local function makeSectionLink(page, section, display)
display = display or section
page = page or ''
return string.format('[[%s#%s|%s]]', page, section, display)
end
local function normalizeTitle(title)
title = mw.ustring.gsub(mw.ustring.gsub(title,&quot;'&quot;,&quot;&quot;),'&quot;','')
return mw.title.new(mw.ustring.gsub(title,&quot;%b&lt;&gt;&quot;,&quot;&quot;)).prefixedText
end
function p._main(page, sections, options, title)
-- Validate input.
checkType('_main', 1, page, 'string', true)
checkType('_main', 3, options, 'table', true)
if sections == nil then
sections = {}
elseif type(sections) == 'string' then
sections = {sections}
elseif type(sections) ~= 'table' then
error(string.format(
&quot;type error in argument #2 to '_main' &quot; ..
&quot;(string, table or nil expected, got %s)&quot;,
type(sections)
), 2)
end
options = options or {}
title = title or mw.title.getCurrentTitle()
-- Deal with blank page names elegantly
if page and not page:find('%S') then
page = nil
options.nopage = true
end
-- Make the link(s).
local isShowingPage = not options.nopage
if #sections &lt;= 1 then
local linkPage = page or ''
local section = sections[1] or 'Notes'
local display = '§&amp;nbsp;' .. section
if isShowingPage then
page = page or title.prefixedText
if options.display and options.display ~= '' then
if normalizeTitle(options.display) == normalizeTitle(page) then
display = options.display .. ' ' .. display
else
error(string.format(
'Display title &quot;%s&quot; was ignored since it is ' ..
&quot;not equivalent to the page's actual title&quot;,
options.display
), 0)
end
else
display = page .. ' ' .. display
end
end
return makeSectionLink(linkPage, section, display)
else
-- Multiple sections. First, make a list of the links to display.
local ret = {}
for i, section in ipairs(sections) do
ret[i] = makeSectionLink(page, section)
end
-- Assemble the list of links into a string with mw.text.listToText.
-- We use the default separator for mw.text.listToText, but a custom
-- conjunction. There is also a special case conjunction if we only
-- have two links.
local conjunction
if #sections == 2 then
conjunction = '&amp;#8203; and '
else
conjunction = ', and '
end
ret = mw.text.listToText(ret, nil, conjunction)
-- Add the intro text.
local intro = '§§&amp;nbsp;'
if isShowingPage then
intro = (page or title.prefixedText) .. ' ' .. intro
end
ret = intro .. ret
return ret
end
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Section link',
valueFunc = function (key, value)
value = value:match('^%s*(.-)%s*$') -- Trim whitespace
-- Allow blank first parameters, as the wikitext template does this.
if value ~= '' or key == 1 then
return value
end
end
})
-- Sort the arguments.
local page
local sections, options = {}, {}
for k, v in pairs(args) do
if k == 1 then
-- Doing this in the loop because of a bug in [[Module:Arguments]]
-- when using pairs with deleted arguments.
page = v
elseif type(k) == 'number' then
sections[k] = v
else
options[k] = v
end
end
-- Extract section from page, if present
if page then
local p, s = page:match('^(.-)#(.*)$')
if p then page, sections[1] = p, s end
end
-- Compress the sections array.
local function compressArray(t)
local nums, ret = {}, {}
for num in pairs(t) do
nums[#nums + 1] = num
end
table.sort(nums)
for i, num in ipairs(nums) do
ret[i] = t[num]
end
return ret
end
sections = compressArray(sections)
return p._main(page, sections, options)
end
return p</text>
<sha1>i6k7h20chm495pbr3aesn1f4l0x29mp</sha1>
</revision>
</page>
<page>
<title>Template:Cite.php/doc</title>
<ns>10</ns>
<id>43975233</id>
<revision>
<id>785924638</id>
<parentid>650913002</parentid>
<timestamp>2017-06-16T06:29:23Z</timestamp>
<contributor>
<username>Samwilson</username>
<id>417081</id>
</contributor>
<comment>Update link (the old target is a redirect)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="450">{{Documentation subpage}}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
== Usage ==
This template creates a link to [[mw:Extension:Cite]]
{{tlx|cite.php|bug}} creates {{cite.php|bug}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:MediaWiki source code templates]]
}}&lt;/includeonly&gt;</text>
<sha1>28dua6datvntl3vznortr2mcmnsk7ye</sha1>
</revision>
</page>
<page>
<title>Module:Delink</title>
<ns>828</ns>
<id>38999128</id>
<revision>
<id>695173753</id>
<parentid>617654635</parentid>
<timestamp>2015-12-14T07:03:21Z</timestamp>
<contributor>
<username>The Earwig</username>
<id>7418060</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Module:Delink]]&quot;: [[WP:High-risk templates|Highly visible template]]: 55,000+ mainspace transclusions ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="6545">-- This module de-links most wikitext.
require('Module:No globals')
local p = {}
local getArgs
local function delinkReversePipeTrick(s)
if s:match(&quot;^%[%[|.*[|\n]&quot;) then -- Check for newlines or multiple pipes.
return s
else
return s:match(&quot;%[%[|(.*)%]%]&quot;)
end
end
local function delinkPipeTrick(s)
local linkarea, display = &quot;&quot;, &quot;&quot;
-- We need to deal with colons, brackets, and commas, per [[Help:Pipe trick]].
-- First, remove the text before the first colon, if any.
if s:match(&quot;:&quot;) then
s = s:match(&quot;%[%[.-:(.*)|%]%]&quot;)
-- If there are no colons, grab all of the text apart from the square brackets and the pipe.
else
s = s:match(&quot;%[%[(.*)|%]%]&quot;)
end
-- Next up, brackets and commas.
if s:match(&quot;%(.-%)$&quot;) then -- Brackets trump commas.
s = s:match(&quot;(.-) ?%(.-%)$&quot;)
elseif s:match(&quot;,&quot;) then -- If there are no brackets, display only the text before the first comma.
s = s:match(&quot;(.-),.*$&quot;)
end
return s
end
local function delinkWikilink(s)
local result = s
-- Deal with the reverse pipe trick.
if result:match(&quot;%[%[|&quot;) then
return delinkReversePipeTrick(result)
end
result = mw.uri.decode(result, &quot;PATH&quot;) -- decode percent-encoded entities. Leave underscores and plus signs.
result = mw.text.decode(result, true) -- decode HTML entities.
-- Check for bad titles. To do this we need to find the
-- title area of the link, i.e. the part before any pipes.
local titlearea
if result:match(&quot;|&quot;) then -- Find if we're dealing with a piped link.
titlearea = result:match(&quot;^%[%[(.-)|.*%]%]&quot;)
else
titlearea = result:match(&quot;^%[%[(.-)%]%]&quot;)
end
-- Check for bad characters.
if mw.ustring.match(titlearea, &quot;[%[%]&lt;&gt;{}%%%c\n]&quot;) then
return s
end
-- Check for categories, interwikis, and files.
local colonprefix = result:match(&quot;%[%[(.-):.*%]%]&quot;) or &quot;&quot; -- Get the text before the first colon.
local ns = mw.site.namespaces[colonprefix] -- see if this is a known namespace
if mw.language.isKnownLanguageTag(colonprefix)
or ( ns and ( ns.canonicalName == &quot;File&quot; or ns.canonicalName == &quot;Category&quot; ) ) then
return &quot;&quot;
end
-- Remove the colon if the link is using the [[Help:Colon trick]].
if result:match(&quot;%[%[:&quot;) then
result = &quot;[[&quot; .. result:match(&quot;%[%[:(.*%]%])&quot;)
end
-- Deal with links using the [[Help:Pipe trick]].
if mw.ustring.match(result, &quot;^%[%[[^|]*|%]%]&quot;) then
return delinkPipeTrick(result)
end
-- Find the display area of the wikilink
if result:match(&quot;|&quot;) then -- Find if we're dealing with a piped link.
result = result:match(&quot;^%[%[.-|(.+)%]%]&quot;)
-- Remove new lines from the display of multiline piped links,
-- where the pipe is before the first new line.
result = result:gsub(&quot;\n&quot;, &quot;&quot;)
else
result = result:match(&quot;^%[%[(.-)%]%]&quot;)
end
return result
end
local function delinkURL(s)
-- Assume we have already delinked internal wikilinks, and that
-- we have been passed some text between two square brackets [foo].
-- If the text contains a line break it is not formatted as a URL, regardless of other content.
if s:match(&quot;\n&quot;) then
return s
end
-- Check if the text has a valid URL prefix and at least one valid URL character.
local valid_url_prefixes = {&quot;//&quot;, &quot;http://&quot;, &quot;https://&quot;, &quot;ftp://&quot;, &quot;gopher://&quot;, &quot;mailto:&quot;, &quot;news:&quot;, &quot;irc://&quot;}
local url_prefix
for i,v in ipairs(valid_url_prefixes) do
if mw.ustring.match(s, '^%[' .. v ..'[^&quot;%s].*%]' ) then
url_prefix = v
break
end
end
-- Get display text
if not url_prefix then
return s
end
s = s:match(&quot;^%[&quot; .. url_prefix .. &quot;(.*)%]&quot;) -- Grab all of the text after the URL prefix and before the final square bracket.
s = s:match('^.-([&quot;&lt;&gt; ].*)') or &quot;&quot; -- Grab all of the text after the first URL separator character (&quot;&lt;&gt; ).
s = mw.ustring.match(s, &quot;^%s*(%S.*)$&quot;) or &quot;&quot; -- If the separating character was a space, trim it off.
local s_decoded = mw.text.decode(s, true)
if mw.ustring.match(s_decoded, &quot;%c&quot;) then
return s
else
return s_decoded
end
end
local function delinkLinkClass(s, pattern, delinkFunction)
if not type(s) == &quot;string&quot; then
error(&quot;Attempt to de-link non-string input.&quot;, 2)
end
if not ( type(pattern) == &quot;string&quot; and mw.ustring.sub(pattern, 1, 1) == &quot;^&quot; ) then
error('Invalid pattern detected. Patterns must begin with &quot;^&quot;.', 2)
end
-- Iterate over the text string, and replace any matched text. using the
-- delink function. We need to iterate character by character rather
-- than just use gsub, otherwise nested links aren't detected properly.
local result = &quot;&quot;
while s ~= '' do
-- Replace text using one iteration of gsub.
s = mw.ustring.gsub(s, pattern, delinkFunction, 1)
-- Append the left-most character to the result string.
result = result .. mw.ustring.sub(s, 1, 1)
s = mw.ustring.sub(s, 2, -1)
end
return result
end
function p._delink(args)
local text = args[1] or &quot;&quot;
if args.refs == &quot;yes&quot; then
-- Remove any [[Help:Strip markers]] representing ref tags. In most situations
-- this is not a good idea - only use it if you know what you are doing!
text = mw.ustring.gsub(text, &quot;UNIQ%w*%-ref%-%d*%-QINU&quot;, &quot;&quot;)
end
if not (args.comments == &quot;no&quot;) then
text = text:gsub(&quot;&lt;!%-%-.-%-%-&gt;&quot;, &quot;&quot;) -- Remove html comments.
end
if not (args.wikilinks == &quot;no&quot;) then
text = delinkLinkClass(text, &quot;^%[%[.-%]%]&quot;, delinkWikilink) -- De-link wikilinks.
end
if not (args.urls == &quot;no&quot;) then
text = delinkLinkClass(text, &quot;^%[.-%]&quot;, delinkURL) -- De-link URLs.
end
if not (args.whitespace == &quot;no&quot;) then
-- Replace single new lines with a single space, but leave double new lines
-- and new lines only containing spaces or tabs before a second new line.
text = mw.ustring.gsub(text, &quot;([^\n \t][ \t]*)\n([ \t]*[^\n \t])&quot;, &quot;%1 %2&quot;)
text = text:gsub(&quot;[ \t]+&quot;, &quot; &quot;) -- Remove extra tabs and spaces.
end
return text
end
function p.delink(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return p._delink(getArgs(frame, {wrappers = 'Template:Delink'}))
end
return p</text>
<sha1>9uut60bk5e8nnvyxo8jbf7qt3b17a4v</sha1>
</revision>
</page>
<page>
<title>Template:Bulleted list</title>
<ns>10</ns>
<id>41042054</id>
<revision>
<id>696877703</id>
<parentid>695157650</parentid>
<timestamp>2015-12-26T16:25:12Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>documentation does this</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="179">{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#invoke:list|bulleted}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>6i48hhgfh5fc81eswo5wmwb9rx7sypn</sha1>
</revision>
</page>
<page>
<title>Template:Clear/doc</title>
<ns>10</ns>
<id>6840538</id>
<revision>
<id>821867462</id>
<parentid>821750693</parentid>
<timestamp>2018-01-23T02:23:13Z</timestamp>
<contributor>
<username>Hairy Dude</username>
<id>274535</id>
</contributor>
<comment>Wikipedia doesn't use XHTML any more</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1966">{{Documentation subpage}}
{{high-risk| 1610000+ }}
{{Nosubst|The markup provided will be confusing to many editors, and as this template provides documentation for itself, there is little justification for substitution.}}
{{Template shortcut|-|Br|Clr}}
This template adds &lt;code&gt;&amp;lt;div style=&quot;clear:both;&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;div style=&quot;clear:left;&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;, or &lt;code&gt;&amp;lt;div style=&quot;clear:right;&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;;
for technical HTML details, see [[Template talk:Clear]].
{{tlx|clear}}: Makes content wait until existing content is completed in all columns. Often used to stop text from flowing next to unrelated images.
==Usage==
&lt;nowiki&gt;{{clear}}&lt;/nowiki&gt;
&lt;nowiki&gt;{{clear|left}}&lt;/nowiki&gt;
&lt;nowiki&gt;{{clear|right}}&lt;/nowiki&gt;
===Example without {{tlf|clear}}===
[[File:HeidelbergTun.jpg|200px|left]]
{{Lorem}}
====New section without template====
See how this section starts at the right of the image?
{{clear}}
===Example that uses {{tlf|clear}}===
[[File:HeidelbergTun.jpg|200px|left]]
{{Lorem}}&lt;br/&gt;'''{{tnull|clear}}'''
{{clear}}
====New section with template====
See how this section appears below the image?
{{#ifeq:{{FULLPAGENAME}}|Template:Clear|
===TemplateData===
{{TemplateDataHeader}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;Makes content wait until existing content is completed in all columns. Often used to stop text from flowing next to unrelated images, so text will appear on a full width line under the image.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;side&quot;,
&quot;description&quot;: &quot;can be 'right' or 'left' so content is delayed until just the right or left column is complete. The default clears both columns.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
}
}
}&lt;/templatedata&gt;
}}
==See also==
* {{tl|Clear left}}
* {{tl|Clear right}}
* {{tl|Clear2}}
* {{tl|Float}}
* {{tl|Stack}}
&lt;includeonly&gt;
[[Category:Line-handling templates]]
[[Category:Wikipedia XHTML tag-replacing templates]]
&lt;/includeonly&gt;</text>
<sha1>t9i7rnnhj87kdxqx4zuqlqwm2twungy</sha1>
</revision>
</page>
<page>
<title>Template:Lorem</title>
<ns>10</ns>
<id>4012357</id>
<redirect title="Template:Lorem ipsum" />
<revision>
<id>769930665</id>
<parentid>680459844</parentid>
<timestamp>2017-03-12T12:54:49Z</timestamp>
<contributor>
<username>Christian75</username>
<id>1306352</id>
</contributor>
<comment>{{redr}} is deprecated - converting to {{Redirect category shell}} using [[Project:AWB|AWB]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="94">#REDIRECT [[Template:Lorem ipsum]]
{{Redirect category shell|
{{R from template shortcut}}
}}</text>
<sha1>kshxzrp4aqvwnnmkuav7zu9hdywipvc</sha1>
</revision>
</page>
<page>
<title>Template:Nosubst</title>
<ns>10</ns>
<id>37462446</id>
<revision>
<id>821203017</id>
<parentid>815711669</parentid>
<timestamp>2018-01-19T00:32:01Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Nosubst]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="215">{{Ombox
|type=notice
|image=[[File:Information icon.svg|40px|alt=|link=]]
|text='''This template should {{red|not}} be [[Wikipedia:Substitution|substituted]].''' {{{1|}}}
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>n163y7qprzqztiffvh74joqiaubpqao</sha1>
</revision>
</page>
<page>
<title>Template:Template shortcut</title>
<ns>10</ns>
<id>9251910</id>
<revision>
<id>812546753</id>
<parentid>731013625</parentid>
<timestamp>2017-11-28T13:15:39Z</timestamp>
<contributor>
<username>Evad37</username>
<id>16958448</id>
</contributor>
<comment>update style to match {{shortcut}}, per talk</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2950">&lt;div role=&quot;note&quot; class=&quot;shortcutbox shortcutbox-left plainlist plainlinks noprint&quot; style=&quot;&lt;!--
--&gt;{{#switch:{{{clear|}}} |true=clear:{{{float|right}}}; |left|right|both=clear:{{{clear|}}}; |#default=}}&lt;!--
--&gt;float: {{#ifeq:{{{float|}}}|left|left|right}};&lt;!--
--&gt;margin: {{{top|0em}}} {{#ifeq:{{{float|}}}|left|1em 0em 0em|0em 0em 1em}};&lt;!--
--&gt;border: 1px solid #aaa; background: #fff; padding: 0.3em 0.6em 0.2em 0.6em; text-align: center; font-size: 85%; font-weight: bold;&quot;&gt;&lt;!--
Adding the shortcut links:
--&gt;&lt;div style=&quot;display: inline-block; border-bottom: 1px solid #aaa; line-height: 1.5em; font-weight: normal; margin-bottom: .2em;&quot;&gt;{{#if:{{{redirect|}}} |Redirect |Shortcut}}{{#if:{{{2|}}}|s}}&lt;/div&gt; {{bulleted list
| {{#if: {{{1|&lt;noinclude&gt;{{PAGENAME}}&lt;/noinclude&gt;}}} | &amp;#123;&amp;#123;{{{pre|}}}{{#ifexist:Template:{{{1}}} |[{{fullurl:Template:{{{1}}}|redirect=no}} {{#if:true|{{{1}}}}}] |[[Template:{{{1|&lt;noinclude&gt;{{PAGENAME}}&lt;/noinclude&gt;}}}|{{#if:true|{{{1|&lt;noinclude&gt;{{PAGENAME}}&lt;/noinclude&gt;}}}}}]]}}&amp;#125;&amp;#125; }}&lt;!--
--&gt; | {{#if:{{{2|}}} | &amp;#123;&amp;#123;{{{pre2|}}}{{#ifexist:Template:{{{2}}} |[{{fullurl:Template:{{{2}}}|redirect=no}} {{#if:true|{{{2}}}}}] |[[Template:{{{2}}}|{{#if:true|{{{2}}}}}]]}}&amp;#125;&amp;#125; }}&lt;!--
--&gt; | {{#if:{{{3|}}} | &amp;#123;&amp;#123;{{{pre3|}}}{{#ifexist:Template:{{{3}}} |[{{fullurl:Template:{{{3}}}|redirect=no}} {{#if:true|{{{3}}}}}] |[[Template:{{{3}}}|{{#if:true|{{{3}}}}}]]}}&amp;#125;&amp;#125; }}&lt;!--
--&gt; | {{#if:{{{4|}}} | &amp;#123;&amp;#123;{{{pre4|}}}{{#ifexist:Template:{{{4}}} |[{{fullurl:Template:{{{4}}}|redirect=no}} {{#if:true|{{{4}}}}}] |[[Template:{{{4}}}|{{#if:true|{{{4}}}}}]]}}&amp;#125;&amp;#125; }}&lt;!--
--&gt; | {{#if:{{{5|}}} | &amp;#123;&amp;#123;{{{pre5|}}}{{#ifexist:Template:{{{5}}} |[{{fullurl:Template:{{{5}}}|redirect=no}} {{#if:true|{{{5}}}}}] |[[Template:{{{5}}}|{{#if:true|{{{5}}}}}]]}}&amp;#125;&amp;#125; }}&lt;!--
--&gt; | {{#if:{{{6|}}} | &amp;#123;&amp;#123;{{{pre6|}}}{{#ifexist:Template:{{{6}}} |[{{fullurl:Template:{{{6}}}|redirect=no}} {{#if:true|{{{6}}}}}] |[[Template:{{{6}}}|{{#if:true|{{{6}}}}}]]}}&amp;#125;&amp;#125; }}&lt;!--
--&gt; | {{#if:{{{7|}}} | &amp;#123;&amp;#123;{{{pre7|}}}{{#ifexist:Template:{{{7}}} |[{{fullurl:Template:{{{7}}}|redirect=no}} {{#if:true|{{{7}}}}}] |[[Template:{{{7}}}|{{#if:true|{{{7}}}}}]]}}&amp;#125;&amp;#125; }}&lt;!--
--&gt; | {{#if:{{{8|}}} | &amp;#123;&amp;#123;{{{pre8|}}}{{#ifexist:Template:{{{8}}} |[{{fullurl:Template:{{{8}}}|redirect=no}} {{#if:true|{{{8}}}}}] |[[Template:{{{8}}}|{{#if:true|{{{8}}}}}]]}}&amp;#125;&amp;#125; }}&lt;!--
--&gt; | {{#if:{{{9|}}} | &amp;#123;&amp;#123;{{{pre9|}}}{{#ifexist:Template:{{{9}}} |[{{fullurl:Template:{{{9}}}|redirect=no}} {{#if:true|{{{9}}}}}] |[[Template:{{{9}}}|{{#if:true|{{{9}}}}}]]}}&amp;#125;&amp;#125; }}&lt;!--
--&gt; | {{#if:{{{10|}}} | &amp;#123;&amp;#123;{{{pre10|}}}{{#ifexist:Template:{{{10}}} |[{{fullurl:Template:{{{10}}}|redirect=no}} {{#if:true|{{{10}}}}}] |[[Template:{{{10}}}|{{#if:true|{{{10}}}}}]]}}&amp;#125;&amp;#125; }}&lt;!--
--&gt;}}&lt;!--
--&gt;&lt;/div&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>6jehv2ex3xjowwoqdbctmw8s94u28h7</sha1>
</revision>
</page>
<page>
<title>Template:Column-count/doc</title>
<ns>10</ns>
<id>29216498</id>
<revision>
<id>731825243</id>
<parentid>636019161</parentid>
<timestamp>2016-07-27T19:20:06Z</timestamp>
<contributor>
<username>Eyesnore</username>
<id>18177679</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1821">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
&lt;includeonly&gt;{{high-risk|388000+}}&lt;/includeonly&gt;
{{Mbox | type=notice | text = Columns are currently supported only by newer versions of [[Gecko (layout engine)|Gecko]]-based browsers (such as [[Mozilla Firefox]]) and [[WebKit]]-based browsers (such as [[Google Chrome]] and [[Safari (web browser)|Safari]]). '''All versions of [[Internet Explorer]] through to version 9 and [[Opera (web browser)|Opera]] through to version 11.0 do not support columns.''' See [[Template:Reflist#Browser support for columns|here]] for more information.}}
This template is a shortcut for producing columns using CSS. It generates the CSS for various browsers. Supported browsers are the current versions of Firefox, Safari and Chrome.
=== Usage ===
Insert this template within a style tag of any block-style element:
&lt;code&gt;&lt;nowiki&gt;{{column-count | [number of columns]}}&lt;/nowiki&gt;&lt;/code&gt;
The default number of columns is 2.
=== Example ===
* &lt;code&gt;&amp;lt;div style=&quot;'''&lt;nowiki&gt;{{column-count|3}}&lt;/nowiki&gt;'''&quot;&gt;Lorem ipsum...&amp;lt;/div&gt;&lt;/code&gt; will produce:
&lt;div style=&quot;{{column-count|3}}&quot;&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/div&gt;
=== See also ===
* {{tl|column-width}}
* {{tl|column-rule}}
* {{tl|column-gap}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES HERE, THANKS --&gt;
[[Category:Cross-browser compatibility templates]]
&lt;/includeonly&gt;</text>
<sha1>h9wk93q6r2mnh0v5uqlbzjcacdi6crt</sha1>
</revision>
</page>
<page>
<title>Template:Column-width/doc</title>
<ns>10</ns>
<id>29216540</id>
<revision>
<id>734800913</id>
<parentid>734800869</parentid>
<timestamp>2016-08-16T20:15:45Z</timestamp>
<contributor>
<username>Sro23</username>
<id>25256595</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/107.77.212.23|107.77.212.23]] ([[User talk:107.77.212.23|talk]]) to last version by Eyesnore</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1834">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
&lt;includeonly&gt;{{high-risk|317,000+}}&lt;/includeonly&gt;
{{Mbox | type=notice | text = Columns are currently supported only by newer versions of [[Gecko (layout engine)|Gecko]]-based browsers (such as [[Mozilla Firefox]]) and [[WebKit]]-based browsers (such as [[Google Chrome]] and [[Safari (web browser)|Safari]]). '''All versions of [[Internet Explorer]] through to version 9 and [[Opera (web browser)|Opera]] through to version 11.0 do not support columns.''' See [[Template:Reflist#Browser support for columns|here]] for more information.}}
This template is a shortcut for producing columns using CSS. It generates the CSS for various browsers. Supported browsers are the current versions of Firefox, Safari and Chrome.
=== Usage ===
Insert this template within a style tag of any block-style element:
&lt;code&gt;&lt;nowiki&gt;{{column-width | [column width]}}&lt;/nowiki&gt;&lt;/code&gt;
The default column width is 30em.
=== Example ===
* &lt;code&gt;&amp;lt;div style=&quot;'''&lt;nowiki&gt;{{column-width|25em}}&lt;/nowiki&gt;'''&quot;&gt;Lorem ipsum...&amp;lt;/div&gt;&lt;/code&gt; will produce:
&lt;div style=&quot;{{column-width|25em}}&quot;&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/div&gt;
=== See also ===
* {{tl|column-count}}
* {{tl|column-rule}}
* {{tl|column-gap}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES AND INTERWIKIS HERE, THANKS --&gt;
[[Category:Cross-browser compatibility templates]]
&lt;/includeonly&gt;</text>
<sha1>13opm1xtsfzdnrh0gsq8f1jtwbjnp2l</sha1>
</revision>
</page>
<page>
<title>Template:Cross/doc</title>
<ns>10</ns>
<id>10104179</id>
<revision>
<id>794270805</id>
<parentid>732621373</parentid>
<timestamp>2017-08-06T23:56:24Z</timestamp>
<contributor>
<username>Hyacinth</username>
<id>17171</id>
</contributor>
<comment>/* See also */ *{{tl|t}} *{{tl|Hammer}} *{{tl|Strikethrough}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="582">{{Documentation subpage}}
==Usage==
This template inserts an inline red diagonal cross (''X'') image, indicating negation. It is not for use in articles.
The cross image defaults to 20px in size. To change the size, call with a pixel value as an argument, such as:
: '''&lt;nowiki&gt;{{cross|30}}&lt;/nowiki&gt;'''
==See also==
*{{tl|t}}
*{{tl|Hammer}}
*{{tl|Strikethrough}}
{{Check mark templates}}
{{Done/See also}}
&lt;includeonly&gt;
&lt;!-- ADD CATEGORIES BELOW THIS LINE --&gt;
[[Category:Single-image insertion templates]]
[[Category:Wikipedia-specific image insertion templates]]
&lt;/includeonly&gt;</text>
<sha1>8xr49ulmktbuopf6q6h1azeux3m845x</sha1>
</revision>
</page>
<page>
<title>Template:Caution</title>
<ns>10</ns>
<id>2826069</id>
<revision>
<id>709929200</id>
<parentid>675609516</parentid>
<timestamp>2016-03-13T23:18:43Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>merging in features from [[Template:Notice]] and [[Template:Warning]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1174">{{Mbox
| name = Caution
| demospace = {{{demospace|}}}
| style = {{#if:{{{style|}}} |{{#if:{{{small|}}}||margin:inherit auto;width:80%;}} {{{style}}} }}
| subst = &lt;includeonly&gt;{{subst:substcheck}}&lt;/includeonly&gt;
| type = style
| image = {{#if:{{{image|}}} |[[File:{{{image}}}|40px|Caution|link={{{imagelink|}}}]] |[[File:Ambox warning yellow.svg|40px|Caution|link={{{imagelink|}}}]]}}
| small = {{{small|}}}
| smallimage = {{#if:{{{image|}}} |[[File:{{{image}}}|40px|Caution|link={{{imagelink|}}}]] |[[File:Ambox warning yellow.svg|30px|Caution|link={{{imagelink|}}}]]}}
| imageright = {{#if:{{{imageright|}}} |{{{imageright}}} |{{#if:{{{shortcut|{{{shortcut1|}}}}}} |{{Ombox/shortcut|{{{shortcut|{{{shortcut1|}}}}}}|{{{shortcut2|}}}|{{{shortcut3|}}}|{{{shortcut4|}}}|{{{shortcut5|}}}}}}} }}
| textstyle = {{{textstyle|{{{align|text-align: {{#if:{{{center|}}}|center|left}};}}}}}}
| text = {{#if:{{{header|{{{heading|{{{title|}}}}}}}}} |&lt;div style=&quot;text-align:{{#if:{{{center|}}}|center|left}};&quot;&gt;'''{{{header|{{{heading|{{{title|}}}}}}}}}'''&lt;/div&gt;}}&lt;!--
--&gt;{{{text|{{{content|{{{reason|{{{1}}}}}}}}}}}}
}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>pd0yqegnfdsj89sf3zt5sihlrghclhd</sha1>
</revision>
</page>
<page>
<title>Template:DISPLAYTITLE/doc</title>
<ns>10</ns>
<id>31241918</id>
<revision>
<id>801272352</id>
<parentid>776961482</parentid>
<timestamp>2017-09-18T18:27:56Z</timestamp>
<contributor>
<username>NapoliRoma</username>
<id>1741963</id>
</contributor>
<comment>template link in See also: Italics title -&gt; Italic title</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="7994">{{Documentation subpage}}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
&lt;noinclude&gt;{{DISPLAYTITLE:Template:DISPLAYTITLE/''doc''}}&lt;/noinclude&gt;
{{Nutshell|See section ''[[#Description|Description]]''. DISPLAYTITLE changes the [[WP:page name|fullpagename]] in a simple and limited way. {{For| changing words and letters|Wikipedia:Moving a page}}}}
{{important|Write {{nowrap|'''&lt;nowiki&gt;{{DISPLAYTITLE:title to be displayed}}&lt;/nowiki&gt;'''}} using the &quot;''':'''&quot; character.
&lt;br /&gt;Don't write {{nowrap|'''&lt;nowiki&gt;{{DISPLAYTITLE|title to be displayed}}&lt;/nowiki&gt;'''}} using the pipe character &quot;'''&amp;#124;'''&quot;.}}
The '''[[Template:DISPLAYTITLE]]''' directly invokes [[Help:Magic words|magic word]] &lt;nowiki&gt;{{DISPLAYTITLE:}}&lt;/nowiki&gt; to set the formatting of the title of the page which contains it. It can be used to show part of a page title in italics, show a leading colon &quot;:&quot; or shift to superscripted or subscripted text.
==Examples==
Notice the use of the &quot;:&quot; instead of &quot;|&quot; as separator.
{| class=&quot;wikitable&quot;
|-
! Title !! Magic variable !! Changed title
|-
| Lorem ipsum dolor || &lt;code&gt;&lt;nowiki&gt;{{DISPLAYTITLE:Lorem ''ipsum'' dolor }}&lt;/nowiki&gt;&lt;/code&gt; || Lorem ''ipsum'' dolor
|-
| Book:Lorem ipsum dolor sit amet || &lt;code&gt;&lt;nowiki&gt;{{DISPLAYTITLE:BooK:Lorem ipsum dolor sit amet}}&lt;/nowiki&gt;&lt;/code&gt; || BooK:Lorem ipsum dolor sit amet
|-
| Portal:Lorem ipsum dolor sit || &lt;code&gt;&lt;nowiki&gt;{{DISPLAYTITLE:: _ Portal _ _ _ : _ _ _ Lorem ipsum_dolor sit}}&lt;/nowiki&gt;&lt;/code&gt; || : _ Portal _ _ _ : _ _ _ Lorem ipsum_dolor sit
|-
| Kalai's 3^d conjecture || &lt;code&gt;&lt;nowiki&gt;{{DISPLAYTITLE:Kalai's 3&lt;span style=&quot;position:absolute; top: -9999px&quot;&gt;^&lt;/span &gt;&lt;sup&gt;''d''&lt;/sup&gt; conjecture}}&lt;/nowiki&gt;&lt;/code&gt; || Kalai's 3&lt;span style=&quot;position:absolute; top: -9999px&quot;&gt;^&lt;/span &gt;&lt;sup&gt;''d''&lt;/sup&gt; conjecture
|-
| E sub 0 || &lt;code&gt;&lt;nowiki&gt;{{DISPLAYTITLE:E&lt;span style=&quot;position:absolute; top: -9999px&quot;&gt; sub &lt;/span &gt;&lt;sub&gt;0&lt;/sub&gt; &lt;/nowiki&gt;}}&lt;/code&gt; || E&lt;span style=&quot;position:absolute; top: -9999px&quot;&gt; sub &lt;/span &gt;&lt;sub&gt;0&lt;/sub&gt;
|-
| Lorem ipsum dolor sit || &lt;code&gt;&lt;nowiki&gt;{{DISPLAYTITLE:Lorem ''ipsum'' do&lt;/nowiki&gt;{{hl|L}}&lt;nowiki&gt;or sit}}&lt;/nowiki&gt;&lt;/code&gt; || Lorem ipsum dolor sit&amp;nbsp;&amp;larr; (invalid change, as capital &quot;L&quot; does not match original)
|}
Note that some parts of a title can be hidden by using a span-tag (with &quot;position:absolute; top: -9999px&quot;) to shift some text off-screen, such as: &lt;nowiki&gt;&lt;span style=&quot;position:absolute; top: -9999px&quot;&gt;^&lt;/span&gt;&lt;/nowiki&gt;, to hide a caret &quot;^&quot; before a superscript in a title, or similar to hide the word &quot;&amp;nbsp;sub&amp;nbsp;&quot; before a subscript.
==Introduction==
The title of a [[WP:Page name|page name]] can always be [[copy and paste|copied and pasted]] to affect links, inclusions, and categories. DISPLAYTITLE enforces this, so then only changes that will [[Help:Link#Conversion to canonical form|convert to canonical form]] (standard format) will actually change the displayed title. It is possible to preview the changed title while on the edit page. One invalid change, such as the capitalization of a pagename letter ''after'' the first letter will invalidate any other allowed changes, and the whole title will display unchanged.
The title of a [[WP:page name|named page]] is the fullpagename, denoted &quot;namespace:pagename&quot;. The namespace of an [[WP:article|article]] is nameless, so it does not display, and the fullpagename is ''pagename''.
It is important to note the warning sign at the top of this page preferring that the template form of DISPLAYTITLE not be used,
but that rather the magic variable form of &lt;code&gt;&lt;nowiki&gt;{{DISPLAYTITLE:}}&lt;/nowiki&gt;&lt;/code&gt; be used '''''directly''''' as documented next.
The template would simply call the magic word &quot;DISPLAYTITLE:&quot; anyway, so using ''template'' ''DISPLAYTITLE'' creates an (acceptable but) unnecessary step in page processing.
Magic variables use colon &quot;:&quot; but templates use bar/pipe &quot;|&quot; as the separator to indicate the page name to process here. Use the magic variable.
If &quot;|&quot; is used instead of &quot;:&quot;, it places the page in ''[[:Category:Pages which use a template in place of a magic word]]'', which may cause distractions.
==Description==
The title (the fullpagename) is changed using &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;[[Help:Magic word|DISPLAYTITLE''':'''namespace:pagename]]&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; anywhere in the wikitext. As usual in markup, multiple spaces are made singular. The allowed visual changes are simply:
* lower-case the initial letter of the [[WP:page name|pagename]] (example page [[eBay]])
* change the case of any letter of the namespace
* add an initial colon to the title (the fullpagename)
* change any space to an underscore &quot;_&quot; character or any underscore character to a space (example page [[mod perl]])
* add any number or mixture of spaces and underscores
** around the separator character &quot;:&quot; (between the namespace and pagename), or
** between words in the pagename
** before or after the title (where spaces alone are ignored) (example page [[_NSAKEY]])
* add bold or italic character formatting to any letters in the fullpagename (example page ''[[Allosaurus]]'')
These possibilities exist because of the definition of a [[WP:page name|page ''name'']], which allows for the ''[[WP:canonicalization|canonicalization]]'' of any title by copying and pasting the title into links, inclusions, and category names.
If there is more than one instance of DISPLAYTITLE in the wikitext, the last one overrides the previous ones. This means that if the DISPLAYTITLE automatically generated by something like some bookbox template needs to be overridden, then an explicit DISPLAYTITLE must be placed ''after'' that template to make your version display. If all efforts to change the title (with canonicalization compliance) fail, try looking at the bottom of the page for some stray magic variable DISPLAYTITLE.
==Instructions==
Template ''DISPLAYTITLE'' has the same instructions as magic variable DISPLAYTITLE. Please use &quot;:&quot; instead of &quot;|&quot;.
# Type &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;DISPLAYTITLE:&lt;/code&gt; anywhere in the wikitext.
# Type the wikitext for the fullpagename after that last &quot;''':'''&quot; character. (See the [[#Description|description]] above.)
# After that changed title type the closing &quot;&lt;code&gt;}}&lt;/code&gt;&quot;. (See the examples above.)
# Preview the page and check the results.
If there is more than one instance of DISPLAYTITLE and they do not all specify the same title, only the last instance is enacted with an error message generated. For example:
&lt;span class=&quot;error&quot;&gt;&lt;nowiki&gt;Warning: Display title &quot;&lt;i&gt;Desired title&lt;/i&gt;&quot; overrides earlier display title &quot;&lt;i&gt;Desired&lt;/i&gt; title&quot;.&lt;/nowiki&gt;&lt;/span&gt;
The preferred solution to this problem is to remove or disable one of the instances of DISPLAYTITLE. If this is not possible due to template limitations, etc., then the error message may be suppressed by using the &quot;noerror&quot; parameter, i.e. &lt;code&gt;&lt;nowiki&gt;{{DISPLAYTITLE:&lt;/nowiki&gt;&lt;var&gt;Desired Title&lt;/var&gt;&lt;nowiki&gt;|noerror}}&lt;/nowiki&gt;&lt;/code&gt;. If you use this technique, you should be aware that the last instance of DISPLAYTITLE overrides the previous ones. This means that if the DISPLAYTITLE automatically generated by an infobox template needs to be overridden, then an explicit DISPLAYTITLE must be placed ''after'' the infobox to make it work.
== Tracking category ==
* {{clc|Pages which use a template in place of a magic word}}
== See also ==
{{Div col|cols=3}}
* [[WP:Move]]
* {{tl|Lowercase title}}
* {{tl|Italic title}} {{ns|23}}
* {{tl|Correct title}}
* {{tl|Infobox film}}
* {{tl|DEFAULTSORT}} {{ns|23}}
* [[Wikipedia:Page name]]
* [[Wikipedia:Naming conventions (technical restrictions)#Forbidden characters|Forbidden characters]]
* [[Help:Parser functions]]
{{Div col end}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Magic word templates]]
[[Category:Templates that add a tracking category]]
}}&lt;/includeonly&gt;</text>
<sha1>9j9t914e7rqg1xby8js94a60e25p15k</sha1>
</revision>
</page>
<page>
<title>Template:Highlight</title>
<ns>10</ns>
<id>10635457</id>
<revision>
<id>711609468</id>
<parentid>697037277</parentid>
<timestamp>2016-03-23T21:42:33Z</timestamp>
<contributor>
<username>SLV100</username>
<id>16105993</id>
</contributor>
<comment>{{highlight/core}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="227">{{#if:{{{3|}}}|{{#ifexpr:({{#time:U|{{{3}}}}} - {{#time:U|now}}) &gt; 0|{{highlight/core|{{{1|}}}|{{#ifeq:{{{2|}}}||yellow|{{{2}}}}}}}|{{{1|}}}}}|{{highlight/core|{{{1|}}}|{{{2|yellow}}}}}}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>85f1u8asfkocafe7i187pir1dmczgpc</sha1>
</revision>
</page>
<page>
<title>Template:Highlight/core</title>
<ns>10</ns>
<id>27650698</id>
<revision>
<id>697037280</id>
<parentid>488705001</parentid>
<timestamp>2015-12-27T20:24:42Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Fuhghettaboutit moved page [[Template:Hilite/core]] to [[Template:Highlight/core]]: Requested move; see talk page</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="54">&lt;span style=&quot;background:{{{2|yellow}}}&quot;&gt;{{{1}}}&lt;/span&gt;</text>
<sha1>swh6kmszd79tj8h7pv4yz14wmrbyoy9</sha1>
</revision>
</page>
<page>
<title>Template:Hl</title>
<ns>10</ns>
<id>3858891</id>
<redirect title="Template:Highlight" />
<revision>
<id>697037360</id>
<parentid>425393231</parentid>
<timestamp>2015-12-27T20:25:19Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<comment>fix double redirect</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="61">#REDIRECT [[Template:Highlight]]
{{R from template shortcut}}</text>
<sha1>2v6tw0kwahbtowg8iui7a16bm6bjm5q</sha1>
</revision>
</page>
<page>
<title>Template:Important</title>
<ns>10</ns>
<id>2826080</id>
<redirect title="Template:Caution" />
<revision>
<id>488707327</id>
<parentid>385125784</parentid>
<timestamp>2012-04-22T20:33:17Z</timestamp>
<contributor>
<username>AGK</username>
<id>1000453</id>
</contributor>
<minor/>
<comment>Protected Template:Important: [[Wikipedia:High-risk templates|Highly-visible templates]] (‎[edit=autoconfirmed] (indefinite) ‎[move=sysop] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="30">#Redirect [[Template:Caution]]</text>
<sha1>n0nj2p3k9okb7pw8s88pukv708aktbm</sha1>
</revision>
</page>
<page>
<title>Template:Ns</title>
<ns>10</ns>
<id>38064609</id>
<revision>
<id>678769061</id>
<parentid>565670916</parentid>
<timestamp>2015-08-31T14:29:43Z</timestamp>
<contributor>
<username>NeilN</username>
<id>409043</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Ns: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="85">{{padleft:|{{#expr: {{{1|3}}}*6 }}|&amp;#160;}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>i69q83x5xa1tvzop1h4scnntqvbrvy1</sha1>
</revision>
</page>
<page>
<title>Template:Nutshell</title>
<ns>10</ns>
<id>3834038</id>
<revision>
<id>791962714</id>
<parentid>791779058</parentid>
<timestamp>2017-07-23T15:39:44Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<comment>Undid revision 791779058 by [[Special:Contributions/Primefac|Primefac]] ([[User talk:Primefac|talk]]) self-revert per new discussion</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="494">{{mbox
| image = [[File:Walnut.png|30px|link=|alt=]]
| text = '''{{{title|This page}}} in a nutshell:''' {{#if:{{{2|}}}
| {{unordered list|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}}}
| {{{1}}}
}}
| imageright = {{#if:{{{shortcut|{{{shortcut1|}}}}}} | {{Ombox/shortcut|{{{shortcut|{{{shortcut1|}}}}}}|{{{shortcut2|}}}|{{{shortcut3|}}}|{{{shortcut4|}}}|{{{shortcut5|}}} }} }}
}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>nxrb26jewj31nert8ndnduwrqwj41yf</sha1>
</revision>
</page>
<page>
<title>Module:Sidebar</title>
<ns>828</ns>
<id>38866323</id>
<revision>
<id>816157517</id>
<parentid>811717941</parentid>
<timestamp>2017-12-19T17:22:53Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>update from sandbox per discussion on talk page</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="8090">--
-- This module implements {{Sidebar}}
--
require('Module:No globals')
local p = {}
local getArgs = require('Module:Arguments').getArgs
local navbar = require('Module:Navbar')._navbar
local function trimAndAddAutomaticNewline(s)
-- For compatibility with the original {{sidebar with collapsible lists}}
-- implementation, which passed some parameters through {{#if}} to trim
-- their whitespace. This also triggered the automatic newline behavior.
-- ([[meta:Help:Newlines and spaces#Automatic newline]])
s = mw.ustring.gsub(s, &quot;^%s*(.-)%s*$&quot;, &quot;%1&quot;)
if mw.ustring.find(s, '^[#*:;]') or mw.ustring.find(s, '^{|') then
return '\n' .. s
else
return s
end
end
local function hasSubgroup(s)
if mw.ustring.find(s, 'vertical%-navbox%-subgroup') then
return true
else
return false
end
end
function p.sidebar(frame, args)
if not args then
args = getArgs(frame)
end
local root = mw.html.create()
local child = args.child and mw.text.trim(args.child) == 'yes'
root = root:tag('table')
if not child then
root
:addClass('vertical-navbox')
:addClass(args.wraplinks ~= 'true' and 'nowraplinks' or nil)
:addClass(args.bodyclass or args.class)
:css('float', args.float or 'right')
:css('clear', (args.float == 'none' and 'both') or args.float or 'right')
:css('width', args.width or '22.0em')
:css('margin', args.float == 'left' and '0 1.0em 1.0em 0' or '0 0 1.0em 1.0em')
:css('background', '#f9f9f9')
:css('border', '1px solid #aaa')
:css('padding', '0.2em')
:css('border-spacing', '0.4em 0')
:css('text-align', 'center')
:css('line-height', '1.4em')
:css('font-size', '88%')
:cssText(args.bodystyle or args.style)
if args.outertitle then
root
:tag('caption')
:addClass(args.outertitleclass)
:css('padding-bottom', '0.2em')
:css('font-size', '125%')
:css('line-height', '1.2em')
:css('font-weight', 'bold')
:cssText(args.outertitlestyle)
:wikitext(args.outertitle)
end
if args.topimage then
local imageCell = root:tag('tr'):tag('td')
imageCell
:addClass(args.topimageclass)
:css('padding', '0.4em 0')
:cssText(args.topimagestyle)
:wikitext(args.topimage)
if args.topcaption then
imageCell
:tag('div')
:css('padding-top', '0.2em')
:css('line-height', '1.2em')
:cssText(args.topcaptionstyle)
:wikitext(args.topcaption)
end
end
if args.pretitle then
root
:tag('tr')
:tag('td')
:addClass(args.pretitleclass)
:cssText(args.basestyle)
:css('padding-top', args.topimage and '0.2em' or '0.4em')
:css('line-height', '1.2em')
:cssText(args.pretitlestyle)
:wikitext(args.pretitle)
end
else
root
:addClass('vertical-navbox-subgroup')
:css('width', '100%')
:css('margin', '0px')
:css('border-spacing', '0px')
:addClass(args.bodyclass or args.class)
:cssText(args.bodystyle or args.style)
end
if args.title then
if child then
root
:wikitext(args.title)
else
root
:tag('tr')
:tag('th')
:addClass(args.titleclass)
:cssText(args.basestyle)
:css('padding', '0.2em 0.4em 0.2em')
:css('padding-top', args.pretitle and 0)
:css('font-size', '145%')
:css('line-height', '1.2em')
:cssText(args.titlestyle)
:wikitext(args.title)
end
end
if args.image then
local imageCell = root:tag('tr'):tag('td')
imageCell
:addClass(args.imageclass)
:css('padding', '0.2em 0 0.4em')
:cssText(args.imagestyle)
:wikitext(args.image)
if args.caption then
imageCell
:tag('div')
:css('padding-top', '0.2em')
:css('line-height', '1.2em')
:cssText(args.captionstyle)
:wikitext(args.caption)
end
end
if args.above then
root
:tag('tr')
:tag('td')
:addClass(args.aboveclass)
:css('padding', '0.3em 0.4em 0.3em')
:css('font-weight', 'bold')
:cssText(args.abovestyle)
:newline() -- newline required for bullet-points to work
:wikitext(args.above)
end
local rowNums = {}
for k, v in pairs(args) do
k = '' .. k
local num = k:match('^heading(%d+)$') or k:match('^content(%d+)$')
if num then table.insert(rowNums, tonumber(num)) end
end
table.sort(rowNums)
-- remove duplicates from the list (e.g. 3 will be duplicated if both heading3 and content3 are specified)
for i = #rowNums, 1, -1 do
if rowNums[i] == rowNums[i - 1] then
table.remove(rowNums, i)
end
end
for i, num in ipairs(rowNums) do
local heading = args['heading' .. num]
if heading then
root
:tag('tr')
:tag('th')
:addClass(args.headingclass)
:css('padding', '0.1em')
:cssText(args.basestyle)
:cssText(args.headingstyle)
:cssText(args['heading' .. num .. 'style'])
:newline()
:wikitext(heading)
end
local content = args['content' .. num]
if content then
root
:tag('tr')
:tag('td')
:addClass(args.contentclass)
:css('padding', hasSubgroup(content) and '0.1em 0 0.2em' or '0 0.1em 0.4em')
:cssText(args.contentstyle)
:cssText(args['content' .. num .. 'style'])
:newline()
:wikitext(content)
:done()
:newline() -- Without a linebreak after the &lt;/td&gt;, a nested list like &quot;* {{hlist| ...}}&quot; doesn't parse correctly.
end
end
if args.below then
root
:tag('tr')
:tag('td')
:addClass(args.belowclass)
:css('padding', '0.3em 0.4em 0.3em')
:css('font-weight', 'bold')
:cssText(args.belowstyle)
:newline()
:wikitext(args.below)
end
if not child then
local navbarArg = args.navbar or args.tnavbar
if navbarArg ~= 'none' and navbarArg ~= 'off' and (args.name or frame:getParent():getTitle():gsub('/sandbox$', '') ~= 'Template:Sidebar') then
root
:tag('tr')
:tag('td')
:css('text-align', 'right')
:css('font-size', '115%')
:cssText(args.navbarstyle or args.tnavbarstyle)
:wikitext(navbar{
args.name,
mini = 1,
fontstyle = args.navbarfontstyle or args.tnavbarfontstyle
})
end
end
return tostring(root) .. (child and '[[Category:Pages using sidebar with the child parameter]]' or '')
end
function p.collapsible(frame)
local args = getArgs(frame)
args.abovestyle = 'border-top: 1px solid #aaa; border-bottom: 1px solid #aaa;' .. (args.abovestyle or '')
args.belowstyle = 'border-top: 1px solid #aaa; border-bottom: 1px solid #aaa;' .. (args.belowstyle or '')
args.navbarstyle = 'padding-top: 0.6em;' .. (args.navbarstyle or args.tnavbarstyle or '')
if not args.name and frame:getParent():getTitle():gsub('/sandbox$', '') == 'Template:Sidebar with collapsible lists' then
args.navbar = 'none'
end
local contentArgs = {}
for k, v in pairs(args) do
local num = string.match(k, '^list(%d+)$')
if num then
local expand = args.expanded and (args.expanded == 'all' or args.expanded == args['list' .. num .. 'name'])
local row = mw.html.create('div')
row
:addClass('NavFrame')
:addClass((not expand) and 'collapsed' or nil)
:css('border', 'none')
:css('padding', 0)
:cssText(args.listframestyle)
:cssText(args['list' .. num .. 'framestyle'])
:tag('div')
:addClass('NavHead')
:addClass(args.listtitleclass)
:css('font-size', '105%')
:css('background', 'transparent')
:css('text-align', 'left')
:cssText(args.basestyle)
:cssText(args.listtitlestyle)
:cssText(args['list' .. num .. 'titlestyle'])
:wikitext(trimAndAddAutomaticNewline(args['list' .. num .. 'title'] or 'List'))
:done()
:tag('div')
:addClass('NavContent')
:addClass(args.listclass)
:addClass(args['list' .. num .. 'class'])
:css('font-size', '105%')
:css('padding', '0.2em 0 0.4em')
:css('text-align', 'center')
:cssText(args.liststyle)
:cssText(args['list' .. num .. 'style'])
:wikitext(trimAndAddAutomaticNewline(args['list' .. num]))
contentArgs['content' .. num] = tostring(row)
end
end
for k, v in pairs(contentArgs) do
args[k] = v
end
return p.sidebar(frame, args)
end
return p</text>
<sha1>nl0z60vm1dqd1n1127n1i9l5mn67p0m</sha1>
</revision>
</page>
<page>
<title>Template:Db-meta</title>
<ns>10</ns>
<id>1900655</id>
<revision>
<id>808255564</id>
<parentid>805333843</parentid>
<timestamp>2017-11-01T20:19:00Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>time without date isn't much good for CSDs with a seven-day grace period, like most of the F criteria</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5819">{{#ifeq: {{{raw|}}}
| yes
&lt;!-- If raw=yes, include a short deletion message with no message box --&gt;
| &lt;b&gt;{{ucfirst:{{{1}}}}}&lt;!--
--&gt;{{#if: {{{2|}}}
| .&lt;/b&gt;&amp;#32;&lt;i&gt;{{{2}}}&lt;/i&gt;. &lt;b&gt;
| .&amp;#32;}}&lt;!--
--&gt;{{#ifeq:{{{criterion}}}
| NA
|
| See [[Wikipedia:Criteria for speedy deletion#{{uc:{{{criterion}}}}}|CSD {{uc:{{{criterion}}}}}]].
}}&lt;/b&gt;&lt;!--
--&gt;{{#if: {{{rationale|}}}
| &amp;#32;&lt;span style=&quot;color:red; font-weight:bold;&quot;&gt;{{{rationale}}}&lt;/span&gt;
}}
&lt;!-- If raw != yes, then include the full deletion template with message box --&gt;
|&lt;includeonly&gt;__NOINDEX__&lt;/includeonly&gt;&lt;!--
--&gt;{{mbox
| class = mbox-db
| type = speedy
| image = none
| style = font-size:95%;
| text =
&lt;b&gt;&lt;i&gt;This {{pagetype|defaultns=all}} {{#if:{{{bot|}}}|was tagged by [[User:{{{bot}}}|{{{bot}}}]], because it}} may meet Wikipedia's [[Wikipedia:Criteria for speedy deletion|criteria for speedy deletion]]&lt;/i&gt;{{{1}}}{{#if:{{{2|}}}|.&lt;/b&gt;&amp;#32;&lt;i&gt;{{{2}}}&lt;/i&gt;. &lt;b&gt;|.&amp;#32;}}{{#ifeq:{{{criterion}}}|NA||See [[Wikipedia:Criteria for speedy deletion#{{uc:{{{criterion}}}}}|CSD {{uc:{{{criterion}}}}}]].}}&lt;/b&gt;&lt;span id=&quot;delete-reason&quot; style=&quot;display:none&quot;&gt;{{urlencode:{{#ifeq:{{{criterion}}}|NA||[[WP:CSD#{{uc:{{{criterion}}}}}|{{uc:{{{criterion}}}}}]]:}} {{{summary|}}}}}&lt;/span&gt;&lt;span id=&quot;delete-criterion&quot; style=&quot;display:none&quot;&gt;{{uc:{{{criterion}}}}}&lt;/span&gt;{{#if:{{{rationale|}}}|&amp;#32;&lt;span style=&quot;color:red; font-weight:bold;&quot;&gt;{{{rationale}}}&lt;/span&gt;}}
&lt;p class=&quot;verbose&quot;&gt;If this {{pagetype|defaultns=all}} does not meet the criteria for speedy deletion, {{#ifeq:{{{self}}}|yes|please remove this notice.&lt;br /&gt;|or you intend to fix it, please remove this notice, but '''do not remove this notice from {{#ifeq:{{NAMESPACE}}|File|files you have uploaded|pages that you have created yourself}}'''. If you {{#ifeq:{{NAMESPACE}}|File|uploaded this file|created this page}} and you disagree with the given reason for deletion, you can click the button below and leave a message explaining why you believe it should not be deleted. You can {{talk other|check back later to see|also [[{{TALKPAGENAME}}|visit the talk page]] to check}} if you have received a response to your message.
&lt;/p&gt;
&lt;!-- &quot;Contest this speedy deletion&quot; button --&gt;
{{#tag: inputbox |
type=commenttitle
default=Contested deletion
preload=Template:Hangon preload {{#switch:{{uc:{{{criterion|NA}}}}}|G3|G10|G11|G12|A1|A2|A3|A7|A9|A10|A11|R3|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|C1|T2|T3={{uc:{{{criterion}}}}}|#default=generic}}
hidden=yes
page={{#titleparts:{{TALKPAGENAME}}|255}}
buttonlabel=Contest this speedy deletion
break=no
}}
&lt;p class=&quot;verbose&quot;&gt;Note that once tagged with this notice, this {{pagetype|defaultns=all}} may be deleted at any time if it unquestionably meets the speedy deletion criteria, or if an explanation {{talk other|added below this notice|posted to the talk page}} is found to be insufficient.&lt;/p&gt;&lt;!--
--&gt;{{#ifeq:{{{help}}}|off||
&lt;!--
-- Text for the warning message to substitute on user talk pages --
--&gt;{{#if: {{{temp|}}}
|
:&lt;small&gt;'''''Nominator''': Please consider placing the [[Help:Template|template]]:''&lt;/small&gt;
:''&lt;small&gt;&lt;code&gt;&lt;nowiki&gt;{{subst:&lt;/nowiki&gt;[[Template:{{{temp}}}|{{{temp}}}]]&lt;nowiki&gt;|&lt;/nowiki&gt;{{FULLPAGENAME}}&lt;nowiki&gt;|header=1&lt;/nowiki&gt;{{{temp2|}}}&lt;nowiki&gt;}} &lt;/nowiki&gt;{{#ifeq:{{{sig|x}}}|x|&lt;nowiki&gt;~~~~&lt;/nowiki&gt;}}&lt;/code&gt;&lt;/small&gt;''
:''&lt;small&gt;on the talk page of the author.&lt;/small&gt;''
&lt;!--
--&gt;}}}}&lt;!--
Add notice about using the talk page, or a notice for administrators if the talk page exists --&gt;
{{#ifeq:{{NAMESPACE}}|{{TALKSPACE}}||{{#ifexist:{{TALKPAGENAME}}|{{Hang on/notice3}}|&lt;div class=&quot;verbose&quot;&gt;{{Hang on/notice2}}&lt;/div&gt;}}}}}}
&lt;!--Space for other notes --&gt;
{{#if:{{{notes|}}}|{{{notes}}}&lt;br&gt;}}&lt;!--
-- Message for admins --
--&gt;&lt;small&gt;&lt;span class=&quot;sysop-show&quot;&gt;''Administrators: check [[Special:Whatlinkshere/{{FULLPAGENAME}}|links]], [{{fullurl:{{FULLPAGENAME}}|action=history}} history] ([{{fullurl:{{FULLPAGENAME}}|diff=0}} last]), and [{{fullurl:Special:Log|page={{FULLPAGENAMEE}}}} logs] before [{{fullurl:{{FULLPAGENAME}}|wpReason={{urlencode:{{#ifeq:{{{criterion}}}|NA||[[WP:CSD#{{uc:{{{criterion}}}}}|{{uc:{{{criterion}}}}}]]:}} {{{summary|}}}}}&amp;action=delete}} deletion]{{#if:{{{bot|}}}|, as this page was tagged by a [[Wikipedia:Bot policy|bot]]}}{{#if:{{{anote|}}}|{{{anote}}}|.}} {{#ifeq:{{{self}}}|yes||Consider [[google:{{urlencode:{{PAGENAME}}}}|checking Google]].}}''&lt;br/&gt;&lt;/span&gt;This page was [{{fullurl:{{FULLPAGENAME}}|diff=cur}} last edited] {{#if: {{REVISIONUSER}} | by [[{{ns:2}}:{{REVISIONUSER2}}|{{REVISIONUSER2}}]] &lt;small&gt;{{toolbar|1=[[Special:Contributions/{{REVISIONUSER2}}|contribs]]|2=[[Special:Log/{{REVISIONUSER2}}|logs]]}}&lt;/small&gt; }} at {{#time:H:i, j F Y (e)|{{REVISIONTIMESTAMP}}}} ([{{fullurl:{{FULLPAGENAME}}|action=purge}} {{time ago|{{REVISIONTIMESTAMP}}}}])&lt;/small&gt;
&lt;!--
-- Add image to the right of the message box --
--&gt;{{#if: {{{image|}}}
|&lt;/td&gt;&lt;td style=&quot;text-align:center;padding:0;font-size:x-small;&quot;&gt;[[{{#if:{{{wiki|}}}|{{{wiki}}}:}}Image:{{{image}}}|150x175px]]&lt;br/&gt;''[[:{{#if:{{{wiki|}}}|{{{wiki}}}:}}Image:{{{image}}}|{{{image}}}]]''
}}&lt;!--
--&gt;}}&lt;!--
-- End main mbox code, start courtesy blanking notices and div blanking tag --
--&gt;{{#if: {{{blanked|}}} | {{mbox|image=none|text= {{{blanked-text|This page has been [[Wikipedia:Deletion policy#Courtesy blanking|blanked as a courtesy]].}}}}} |}}{{#if: {{{pleaseblank|}}} | {{mbox|type=delete|text=&lt;big&gt;{{red|Please [[Wikipedia:Courtesy blanking|blank this page]] so that it only contains the deletion template.}}&lt;/big&gt;}} |}}{{#if: {{{divblank|}}} | &lt;div id=&quot;AttackPage&quot; style=&quot;display:none&quot;&gt; |}}
}}&lt;!-- End if statement for &quot;raw&quot; parameter--&gt;{{NOINDEX}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>oknpkx7fgg5z4rgaex63sf3ivumsra0</sha1>
</revision>
</page>
<page>
<title>Template:Db/doc</title>
<ns>10</ns>
<id>9946500</id>
<revision>
<id>775285017</id>
<parentid>733797768</parentid>
<timestamp>2017-04-13T21:45:43Z</timestamp>
<contributor>
<username>Quasar G.</username>
<id>29604985</id>
</contributor>
<minor/>
<comment>ndash</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1969">{{Documentation subpage}}
{{Twinkle standard installation}}
{{Speedy deletion templates}}
This template (db = &quot;'''d'''elete '''b'''ecause&quot;) is a generic speedy deletion template, used to nominate pages for [[WP:CSD|speedy deletion]] when the reason for deletion requires further details than those provided by the criterion-specific templates (full list at [[WP:CSD#toc|WP:CSD]]).
===Usage===
* This template places the page into [[:Category:Candidates for speedy deletion]] and [[:Category:Candidates for speedy deletion for unspecified reason]].
* Do ''not'' edit this template to discuss why a particular article should or should not be deleted &amp;ndash; for that, use the article’s own discussion page.
* Use this template to explain why the page meets the [[Wikipedia:Criteria for speedy deletion|criteria for speedy deletion]]. Each speedy deletion criterion has its own template; however, if the explanation required for deletion extends beyond a mere quoting of a criterion, use this template to write a custom speedy deletion request.
* Using {{tlx|db|''reason''}} will produce the speedy deletion template shown above, except that in the place of &quot;NO REASON GIVEN&quot;, your reason will be placed. If no reason is given, however, the text &quot;NO REASON GIVEN&quot; ''will'' be displayed.
* If you wish to include a URL in the deletion reason that includes an equal sign (&quot;=&quot;), use the following syntax: {{tlx|db|2=1=''reason''}}. This applies to any equal sign, but especially ones in URLs.
* If you wish to include a vertical bar (&quot;|&quot;) that is not part of a template as part of your deletion reason, use {{tlx|!}} instead. If the vertical bar is part of a template, however, such as {{tlx|tl}}, display it normally.
* Use {{tlx|db-author}} if you are the creator and only substantial contributor to the page.
==See also==
Other types of deletion templates:
*{{tlx|Proposed deletion templates}}
&lt;includeonly&gt;
[[Category:Speedy deletion templates|*Db]]
&lt;/includeonly&gt;</text>
<sha1>55ciqu4l6cfygj0bpd675et4wyb7sn5</sha1>
</revision>
</page>
<page>
<title>Template:Hang on/notice3</title>
<ns>10</ns>
<id>31401513</id>
<revision>
<id>613307875</id>
<parentid>579422345</parentid>
<timestamp>2014-06-17T17:17:23Z</timestamp>
<contributor>
<username>Technical 13</username>
<id>14450599</id>
</contributor>
<minor/>
<comment>HTML5 standardization</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="447">&lt;span class=&quot;plainlinks&quot; style=&quot;color: green; text-align: center;&quot;&gt;Note to administrators: this {{talk other|talk page has content|{{pagetype|subjectspace=yes}} has content on its [[{{TALKPAGENAME}}|talk page]]}} which should be checked before deletion.&lt;/span&gt;
{{namespace detect
| main = [[Category:Speedy deletion candidates with talk pages]]
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Add categories to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>23o6mcgnyogh5l9u3dhv9fvqi615il8</sha1>
</revision>
</page>
<page>
<title>Template:NOINDEX</title>
<ns>10</ns>
<id>18788148</id>
<revision>
<id>772147390</id>
<parentid>746993551</parentid>
<timestamp>2017-03-25T16:04:16Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:NOINDEX]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefini...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="239">&lt;includeonly&gt;__NOINDEX__{{#ifeq:{{{visible|}}}|yes|{{{text|This page has been removed from search engines' indexes.}}}}}{{#ifeq:{{NAMESPACENUMBER}}|0|[[Category:Noindexed articles]]}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>llng0eef72kmdk3c47q3v35lh03783o</sha1>
</revision>
</page>
<page>
<title>Template:Namespace detect</title>
<ns>10</ns>
<id>17433896</id>
<revision>
<id>822697538</id>
<parentid>772147338</parentid>
<timestamp>2018-01-27T23:54:39Z</timestamp>
<contributor>
<username>JJMC89</username>
<id>24812038</id>
</contributor>
<comment>clean subst</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="173">{{SAFESUBST:&lt;noinclude /&gt;#invoke:Namespace detect|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>l3ti6zjxip68spdlt018btofjtao8um</sha1>
</revision>
</page>
<page>
<title>Template:Pagetype</title>
<ns>10</ns>
<id>23143954</id>
<revision>
<id>616197024</id>
<parentid>580855388</parentid>
<timestamp>2014-07-09T08:29:38Z</timestamp>
<contributor>
<username>Callanecc</username>
<id>10440891</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Pagetype: [[WP:High-risk templates|Highly visible template]]: With more than 5.5 million transclusions and cascade protections this should be full protected as well ([Edit=Allow only administrators] (indefinite) [Move=</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="179">{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#invoke:pagetype|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>lljnsh3xa96oyrio8us1qbonct9sq7b</sha1>
</revision>
</page>
<page>
<title>Template:REVISIONUSER2</title>
<ns>10</ns>
<id>54208267</id>
<revision>
<id>819682656</id>
<parentid>783527003</parentid>
<timestamp>2018-01-10T18:59:39Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:REVISIONUSER2]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access]...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="241">{{#if:{{{1|}}}|{{#invoke:String|replace|{{#invoke:String|replace|{{REVISIONUSER:{{{1|}}}}}|;|&amp;#59;}}|*|&amp;#42;}}|{{#invoke:String|replace|{{#invoke:String|replace|{{REVISIONUSER}}|;|&amp;#59;}}|*|&amp;#42;}}}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>jj531xgv3b7q1kogizia0jtnc0zv2i6</sha1>
</revision>
</page>
<page>
<title>Template:Redirect</title>
<ns>10</ns>
<id>1649987</id>
<revision>
<id>712706948</id>
<parentid>620012557</parentid>
<timestamp>2016-03-30T17:28:28Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Added &quot;1&quot; positional parameter to module invocation to explicitly set value of number of redirect strings rather than relying on the default (1).</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="183">&lt;includeonly&gt;{{#invoke:redirect hatnote|redirect|1}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>nahryqse47xqenividwc88opp02rhjv</sha1>
</revision>
</page>
<page>
<title>Template:Sidebar with collapsible lists</title>
<ns>10</ns>
<id>19452779</id>
<revision>
<id>772120886</id>
<parentid>565166385</parentid>
<timestamp>2017-03-25T12:38:46Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Sidebar with collapsible lists]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require temp...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="220">{{#invoke: Sidebar | collapsible }}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Please add category and language links to the section at the bottom of [[Template:Sidebar with collapsible lists/doc]] page, not here --&gt;
&lt;/noinclude&gt;</text>
<sha1>1y05i99gk0t8cfrvas2jsp753ji60g0</sha1>
</revision>
</page>
<page>
<title>Template:Speedy deletion templates</title>
<ns>10</ns>
<id>16338916</id>
<revision>
<id>790106529</id>
<parentid>769712733</parentid>
<timestamp>2017-07-11T17:14:20Z</timestamp>
<contributor>
<username>Steel1943</username>
<id>2952402</id>
</contributor>
<comment>Add</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="6666">&lt;includeonly&gt;{{Sidebar with collapsible lists
| name = Speedy deletion templates
| style = &lt;!--pre-Sidebar version included: margin:0.5em 0 0.7em 1.4em;border:1px solid #aaa;--&gt;
| basestyle = background:#ddddff;
| titlestyle = background:#ddddff; display:block;margin-bottom:0.5em;
| title = [[Wikipedia:Criteria for speedy deletion|Speedy deletion templates]]
| listtitlestyle = background:#ddddff;text-align:center;
| expanded = {{{expanded|{{{selected|{{{1|}}}}}}}}}
| list1name = general
| list1title = General criteria
| list1 =
{{Infobox |bodystyle={{subinfobox bodystyle}}
|labelstyle=width:2.5em;background:#ddddff;vertical-align:middle;text-align:center;line-height:1.35em;border-bottom:1px solid #aaa;
|datastyle=padding-left:0.25em;line-height:1.35em;border-bottom:1px solid #aaa;
|label1=[[WP:G1|G1]] |data1={{tl|db-g1}} {{tl|db-nonsense}}
|label2=[[WP:G2|G2]] |data2={{tl|db-g2}} {{tl|db-test}}
|label3=[[WP:G3|G3]] |data3={{tl|db-g3}} {{tl|db-hoax}} {{tl|db-vandalism}}
|label4=[[WP:G4|G4]] |data4={{tl|db-g4}} {{tl|db-repost}}
|label5=[[WP:G5|G5]] |data5={{tl|db-g5}} {{tl|db-banned}}
|label6=[[WP:G6|G6]] |data6={{tl|db-g6}} {{tl|db-blankdraft}} {{tl|db-copypaste}} {{tl|db-disambig}} {{tl|db-error}} {{tl|db-move}} {{tl|db-xfd}} {{tl|db-redircom}}
|label7=[[WP:G7|G7]] |data7={{tl|db-g7}} {{tl|db-author}} {{tl|db-blanked}} {{tl|db-self}}
|label8=[[WP:G8|G8]] |data8={{tl|db-g8}} {{tl|db-imagepage}} {{tl|db-redirnone}} {{tl|db-subpage}} {{tl|db-talk}} {{tl|db-templatecat}}
|label10=[[WP:G10|G10]] |data10={{tl|db-g10}} {{tl|db-attack}} {{tl|db-negublp}}
|label11=[[WP:G11|G11]] |data11={{tl|db-g11}} {{tl|db-spam}} {{tl|db-spamuser}} {{tl|db-spamuser-sandbox}}
|label12=[[WP:G12|G12]] |data12={{tl|db-g12}} {{tl|db-copyvio}}
|label13=[[WP:G13|G13]] |data13={{tl|db-g13}} {{tl|db-afc}}
}}
| list2name = articles
| list2title = Articles
| list2 =
{{Infobox |bodystyle={{subinfobox bodystyle}}
|labelstyle=width:2.5em;background:#ddddff;vertical-align:middle;text-align:center;line-height:1.35em;border-bottom:1px solid #aaa;
|datastyle=padding-left:0.25em;line-height:1.35em;border-bottom:1px solid #aaa;
|label1=[[WP:A1|A1]] |data1={{tl|db-nocontext}}
|label2=[[WP:A2|A2]] |data2={{tl|db-foreign}}
|label3=[[WP:A3|A3]] |data3={{tl|db-nocontent}} {{tl|db-empty}}
|label5=[[WP:A5|A5]] |data5={{tl|db-transwiki}}
|label7=[[WP:A7|A7]] |data7={{tl|db-a7}} {{tl|db-person}} {{tl|db-band}} {{tl|db-club}} {{tl|db-inc}} {{tl|db-web}} {{tl|db-animal}} {{tl|db-event}}
|label9=[[WP:A9|A9]] |data9={{tl|db-song}}
|label10=[[WP:A10|A10]] |data10={{tl|db-same}}
|label11=[[WP:A11|A11]] |data11={{tl|db-invented}} {{tl|db-madeup}}
}}
| list3name = redirects
| list3title = Redirects
| list3 =
{{Infobox |bodystyle={{subinfobox bodystyle}}
|labelstyle=width:2.5em;background:#ddddff;vertical-align:middle;text-align:center;line-height:1.35em;border-bottom:1px solid #aaa;
|datastyle=padding-left:0.25em;line-height:1.35em;border-bottom:1px solid #aaa;
|label2=[[WP:R2|R2]] |data2={{tl|db-rediruser}}
|label3=[[WP:R3|R3]] |data3={{tl|db-redirtypo}}
}}
| list4name = files
| list4title = Files
| list4 =
{{Infobox |bodystyle={{subinfobox bodystyle}}
|labelstyle=width:2.5em;background:#ddddff;vertical-align:middle;text-align:center;line-height:1.35em;border-bottom:1px solid #aaa;
|datastyle=padding-left:0.25em;line-height:1.35em;border-bottom:1px solid #aaa;
|label1=[[Wikipedia:Criteria for speedy deletion#F1|F1]] |data1={{tl|db-f1}} {{tl|duplicate}}
|label2=[[WP:F2|F2]] |data2={{tl|db-f2}} {{tl|db-fpcfail}}
|label3=[[WP:F3|F3]] |data3={{tl|db-noncom}}
|label4=[[WP:F4|F4]] |data4={{tl|di-no source}} {{tl|di-no license}} {{tl|di-no source no license}} {{tl|di-dw no source}} {{tl|di-dw no license}} {{tl|di-dw no source no license}}
|label5=[[WP:F5|F5]] |data5={{tl|di-orphaned fair use}}
|label6=[[WP:F6|F6]] |data6={{tl|di-no fair use rationale}} {{tl|di-missing article links}}
|label7=[[WP:F7|F7]] |data7={{tl|db-f7}} {{tl|di-replaceable fair use}} {{tl|di-disputed fair use rationale}}
|label8=[[WP:F8|F8]] |data8={{tl|db-f8}} {{tl|now Commons}}
|label9=[[WP:F9|F9]] |data9={{tl|db-filecopyvio}}
|label10=[[WP:F10|F10]] |data10={{tl|db-badfiletype}}
|label11=[[WP:F11|F11]] |data11={{tl|di-no permission}}
|label20=! |data20={{tl|di-fails NFCC}}
}}
| list5name = categories
| list5title = Categories
| list5 =
{{Infobox |bodystyle={{subinfobox bodystyle}}
|labelstyle=width:2.5em;background:#ddddff;vertical-align:middle;text-align:center;line-height:1.35em;border-bottom:1px solid #aaa;
|datastyle=padding-left:0.25em;line-height:1.35em;border-bottom:1px solid #aaa;
|label1=[[WP:C1|C1]] |data1={{tl|db-catempty}}
}}
| list6name = user
| list6title = User pages
| list6 =
{{Infobox |bodystyle={{subinfobox bodystyle}}
|labelstyle=width:2.5em;background:#ddddff;vertical-align:middle;text-align:center;line-height:1.35em;border-bottom:1px solid #aaa;
|datastyle=padding-left:0.25em;line-height:1.35em;border-bottom:1px solid #aaa;
|label1=[[WP:U1|U1]] |data1={{tl|db-userreq}}
|label2=[[WP:U2|U2]] |data2={{tl|db-nouser}}
|label3=[[WP:U3|U3]] |data3={{tl|db-gallery}}
|label5=[[WP:U5|U5]] |data5={{tl|db-notwebhost}}
}}
| list7name = templates
| list7title = Templates
| list7 =
{{Infobox |bodystyle={{subinfobox bodystyle}}
|labelstyle=width:2.5em;background:#ddddff;vertical-align:middle;text-align:center;line-height:1.35em;border-bottom:1px solid #aaa;
|datastyle=padding-left:0.25em;line-height:1.35em;border-bottom:1px solid #aaa;
|label2=[[WP:T2|T2]] |data2={{tl|db-policy}}
|label3=[[WP:T3|T3]] |data3={{tl|db-duplicatetemplate}}
}}
| list8name = portals
| list8title = Portals
| list8 =
{{Infobox |bodystyle={{subinfobox bodystyle}}
|labelstyle=width:2.5em;background:#ddddff;vertical-align:middle;text-align:center;line-height:1.35em;border-bottom:1px solid #aaa;
|datastyle=padding-left:0.25em;line-height:1.35em;border-bottom:1px solid #aaa;
|label1=[[WP:P1|P1]] |data1={{tl|db-speedy delete if article}}
|label2=[[WP:P2|P2]] |data2={{tl|db-emptyportal}}
}}
| list9name = other
| list9title = Other
| list9 =
{{Infobox |bodystyle={{subinfobox bodystyle}}
|labelstyle=width:2.5em;background:#ddddff;vertical-align:middle;text-align:center;line-height:1.35em;border-bottom:1px solid #aaa;
|datastyle=padding-left:0.25em;line-height:1.35em;padding-bottom:0.5em;border-bottom:1px solid #aaa;
|data1={{tl|db}} {{tl|db-multiple}} {{tl|db-x1}} {{tl|db-x2}}
}}
}}&lt;/includeonly&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>fjc98h674rhhu3sl34pok9m2o1jya1g</sha1>
</revision>
</page>
<page>
<title>Template:Subinfobox bodystyle</title>
<ns>10</ns>
<id>37476532</id>
<revision>
<id>695047016</id>
<parentid>616589785</parentid>
<timestamp>2015-12-13T11:50:20Z</timestamp>
<contributor>
<username>Graeme Bartlett</username>
<id>38427</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Subinfobox bodystyle: [[WP:High-risk templates|High-risk Lua module]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="164">border-collapse:collapse; border-spacing:0px; border:none; width:100%; margin:0px; font-size:100%; clear:none; float:none&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>00yc48qabn5u74elzt5sm8gxp55tjg6</sha1>
</revision>
</page>
<page>
<title>Template:Talk other</title>
<ns>10</ns>
<id>17220513</id>
<revision>
<id>388689000</id>
<parentid>334819142</parentid>
<timestamp>2010-10-04T14:46:45Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>remove {{pp-template}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="431">{{#switch:
&lt;!--If no or empty &quot;demospace&quot; parameter then detect namespace--&gt;
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} &lt;!--Use lower case &quot;demospace&quot;--&gt;
| {{#ifeq:{{NAMESPACE}}|{{TALKSPACE}}
| talk
| other
}}
}}
| talk = {{{1|}}}
| other
| #default = {{{2|}}}
}}&lt;!--End switch--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>e22qd28qco7teosx5cmjmvg7wpllg97</sha1>
</revision>
</page>
<page>
<title>Template:Time ago</title>
<ns>10</ns>
<id>19849438</id>
<revision>
<id>587462136</id>
<parentid>579194946</parentid>
<timestamp>2013-12-24T03:14:24Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>switch to [[Module:TimeAgo]], written by [[User:FunPika]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="140">{{#invoke:TimeAgo|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go in the /doc subpage and interwikis go in Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>omibars9h5uslko5wh20dskrprwv66m</sha1>
</revision>
</page>
<page>
<title>Template:Toolbar</title>
<ns>10</ns>
<id>22135277</id>
<revision>
<id>775709525</id>
<parentid>559404373</parentid>
<timestamp>2017-04-16T16:24:37Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Toolbar]]&quot;: [[WP:High-risk templates|Highly visible template]]: Allowing template editors; c.f also [[User talk:Mr. Stradivarius]] ([Edit=Require template editor access] (indefinite) [Move=Require template edito...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="103">{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#invoke:Toolbar|main}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>qclufe7lvdzex2my9nsfp5rgfunfks0</sha1>
</revision>
</page>
<page>
<title>Template:Twinkle standard installation</title>
<ns>10</ns>
<id>21957108</id>
<revision>
<id>803075988</id>
<parentid>751314092</parentid>
<timestamp>2017-09-30T08:48:03Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>br instead of p</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="674">{{ mbox
| image = [[file:Police man Twinkle Head.svg|50x40px|alt=|link=]]
| text = If you plan to make [[backward compatibility|breaking changes]] to this template, move it, or nominate it for deletion, please notify [[Wikipedia:Twinkle|Twinkle's]] users and maintainers at [[Wikipedia talk:Twinkle]] as a courtesy, as this template is used in the standard installation of Twinkle. Thank you! {{#if:{{{1|}}}|&lt;br&gt;
{{{1}}}}}}}&lt;includeonly&gt;{{#if:{{{nocat|}}}||{{#ifeq:{{PAGENAME}}|{{BASEPAGENAME}}|[[Category:Templates used by Twinkle|{{PAGENAME}}]]}}}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;&lt;/noinclude&gt;</text>
<sha1>7n4qlu8oooq55iig7wt5mfqeqdmsw2o</sha1>
</revision>
</page>
<page>
<title>Module:Namespace detect</title>
<ns>828</ns>
<id>39762919</id>
<revision>
<id>602886406</id>
<parentid>601020017</parentid>
<timestamp>2014-04-05T17:01:23Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>use demopage instead of page as the main &quot;page&quot; parameter</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="5992">--[[
--------------------------------------------------------------------------------
-- --
-- NAMESPACE DETECT --
-- --
-- This module implements the {{namespace detect}} template in Lua, with a --
-- few improvements: all namespaces and all namespace aliases are supported, --
-- and namespace names are detected automatically for the local wiki. The --
-- module can also use the corresponding subject namespace value if it is --
-- used on a talk page. Parameter names can be configured for different wikis --
-- by altering the values in the &quot;cfg&quot; table in --
-- Module:Namespace detect/config. --
-- --
--------------------------------------------------------------------------------
--]]
local data = mw.loadData('Module:Namespace detect/data')
local argKeys = data.argKeys
local cfg = data.cfg
local mappings = data.mappings
local yesno = require('Module:Yesno')
local mArguments -- Lazily initialise Module:Arguments
local mTableTools -- Lazily initilalise Module:TableTools
local ustringLower = mw.ustring.lower
local p = {}
local function fetchValue(t1, t2)
-- Fetches a value from the table t1 for the first key in array t2 where
-- a non-nil value of t1 exists.
for i, key in ipairs(t2) do
local value = t1[key]
if value ~= nil then
return value
end
end
return nil
end
local function equalsArrayValue(t, value)
-- Returns true if value equals a value in the array t. Otherwise
-- returns false.
for i, arrayValue in ipairs(t) do
if value == arrayValue then
return true
end
end
return false
end
function p.getPageObject(page)
-- Get the page object, passing the function through pcall in case of
-- errors, e.g. being over the expensive function count limit.
if page then
local success, pageObject = pcall(mw.title.new, page)
if success then
return pageObject
else
return nil
end
else
return mw.title.getCurrentTitle()
end
end
-- Provided for backward compatibility with other modules
function p.getParamMappings()
return mappings
end
local function getNamespace(args)
-- This function gets the namespace name from the page object.
local page = fetchValue(args, argKeys.demopage)
if page == '' then
page = nil
end
local demospace = fetchValue(args, argKeys.demospace)
if demospace == '' then
demospace = nil
end
local subjectns = fetchValue(args, argKeys.subjectns)
local ret
if demospace then
-- Handle &quot;demospace = main&quot; properly.
if equalsArrayValue(argKeys.main, ustringLower(demospace)) then
ret = mw.site.namespaces[0].name
else
ret = demospace
end
else
local pageObject = p.getPageObject(page)
if pageObject then
if pageObject.isTalkPage then
-- Get the subject namespace if the option is set,
-- otherwise use &quot;talk&quot;.
if yesno(subjectns) then
ret = mw.site.namespaces[pageObject.namespace].subject.name
else
ret = 'talk'
end
else
ret = pageObject.nsText
end
else
return nil -- return nil if the page object doesn't exist.
end
end
ret = ret:gsub('_', ' ')
return ustringLower(ret)
end
function p._main(args)
-- Check the parameters stored in the mappings table for any matches.
local namespace = getNamespace(args) or 'other' -- &quot;other&quot; avoids nil table keys
local params = mappings[namespace] or {}
local ret = fetchValue(args, params)
--[[
-- If there were no matches, return parameters for other namespaces.
-- This happens if there was no text specified for the namespace that
-- was detected or if the demospace parameter is not a valid
-- namespace. Note that the parameter for the detected namespace must be
-- completely absent for this to happen, not merely blank.
--]]
if ret == nil then
ret = fetchValue(args, argKeys.other)
end
return ret
end
function p.main(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {removeBlanks = false})
local ret = p._main(args)
return ret or ''
end
function p.table(frame)
--[[
-- Create a wikitable of all subject namespace parameters, for
-- documentation purposes. The talk parameter is optional, in case it
-- needs to be excluded in the documentation.
--]]
-- Load modules and initialise variables.
mTableTools = require('Module:TableTools')
local namespaces = mw.site.namespaces
local cfg = data.cfg
local useTalk = type(frame) == 'table'
and type(frame.args) == 'table'
and yesno(frame.args.talk) -- Whether to use the talk parameter.
-- Get the header names.
local function checkValue(value, default)
if type(value) == 'string' then
return value
else
return default
end
end
local nsHeader = checkValue(cfg.wikitableNamespaceHeader, 'Namespace')
local aliasesHeader = checkValue(cfg.wikitableAliasesHeader, 'Aliases')
-- Put the namespaces in order.
local mappingsOrdered = {}
for nsname, params in pairs(mappings) do
if useTalk or nsname ~= 'talk' then
local nsid = namespaces[nsname].id
-- Add 1, as the array must start with 1; nsid 0 would be lost otherwise.
nsid = nsid + 1
mappingsOrdered[nsid] = params
end
end
mappingsOrdered = mTableTools.compressSparseArray(mappingsOrdered)
-- Build the table.
local ret = '{| class=&quot;wikitable&quot;'
.. '\n|-'
.. '\n! ' .. nsHeader
.. '\n! ' .. aliasesHeader
for i, params in ipairs(mappingsOrdered) do
for j, param in ipairs(params) do
if j == 1 then
ret = ret .. '\n|-'
.. '\n| &lt;code&gt;' .. param .. '&lt;/code&gt;'
.. '\n| '
elseif j == 2 then
ret = ret .. '&lt;code&gt;' .. param .. '&lt;/code&gt;'
else
ret = ret .. ', &lt;code&gt;' .. param .. '&lt;/code&gt;'
end
end
end
ret = ret .. '\n|-'
.. '\n|}'
return ret
end
return p</text>
<sha1>j7kygz1y56jpz4doq0m2c6x1td5d8ar</sha1>
</revision>
</page>
<page>
<title>Module:NumberSpell</title>
<ns>828</ns>
<id>41631432</id>
<revision>
<id>592785612</id>
<parentid>590556735</parentid>
<timestamp>2014-01-28T12:43:00Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected Module:NumberSpell: [[Wikipedia:Lua/Modules|High-risk Lua module]]: used in [[Module:TimeAgo]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="2078">-- This module converts a number into its written English form.
-- For example, &quot;2&quot; becomes &quot;two&quot;, and &quot;79&quot; becomes &quot;seventy-nine&quot;.
local getArgs = require('Module:Arguments').getArgs
local p = {}
local max = 100 -- The maximum number that can be parsed.
local ones = {
[0] = 'zero',
[1] = 'one',
[2] = 'two',
[3] = 'three',
[4] = 'four',
[5] = 'five',
[6] = 'six',
[7] = 'seven',
[8] = 'eight',
[9] = 'nine'
}
local specials = {
[10] = 'ten',
[11] = 'eleven',
[12] = 'twelve',
[13] = 'thirteen',
[15] = 'fifteen',
[18] = 'eighteen',
[20] = 'twenty',
[30] = 'thirty',
[40] = 'forty',
[50] = 'fifty',
[60] = 'sixty',
[70] = 'seventy',
[80] = 'eighty',
[90] = 'ninety',
[100] = 'one hundred'
}
local formatRules = {
{num = 90, rule = 'ninety-%s'},
{num = 80, rule = 'eighty-%s'},
{num = 70, rule = 'seventy-%s'},
{num = 60, rule = 'sixty-%s'},
{num = 50, rule = 'fifty-%s'},
{num = 40, rule = 'forty-%s'},
{num = 30, rule = 'thirty-%s'},
{num = 20, rule = 'twenty-%s'},
{num = 10, rule = '%steen'}
}
function p.main(frame)
local args = getArgs(frame)
local num = tonumber(args[1])
local success, result = pcall(p._main, num)
if success then
return result
else
return string.format('&lt;strong class=&quot;error&quot;&gt;Error: %s&lt;/strong&gt;', result) -- &quot;result&quot; is the error message.
end
return p._main(num)
end
function p._main(num)
if type(num) ~= 'number' or math.floor(num) ~= num or num &lt; 0 or num &gt; max then
error('input must be an integer between 0 and ' .. tostring(max), 2)
end
-- Check for numbers from 0 to 9.
local onesVal = ones[num]
if onesVal then
return onesVal
end
-- Check for special numbers.
local specialVal = specials[num]
if specialVal then
return specialVal
end
-- Construct the number from its format rule.
onesVal = ones[num % 10]
if not onesVal then
error('Unexpected error parsing input ' .. tostring(num))
end
for i, t in ipairs(formatRules) do
if num &gt;= t.num then
return string.format(t.rule, onesVal)
end
end
error('No format rule found for input ' .. tostring(num))
end
return p</text>
<sha1>ttx74b1q8io6lqu49wx1uxg201rki7a</sha1>
</revision>
</page>
<page>
<title>Module:Pagetype</title>
<ns>828</ns>
<id>40875383</id>
<revision>
<id>602685322</id>
<parentid>587904054</parentid>
<timestamp>2014-04-04T05:55:12Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>Bug fixes - make page object detection respect defaultns with redirects, and fix mappings table handling after switch to mw.loadData. Also, move config data to [[Module:Pagetype/config]], plus beautification tweaks.</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="6396">--------------------------------------------------------------------------------
-- --
-- PAGETYPE --
-- --
-- This is a meta-module intended to replace {{pagetype}} and similar --
-- templates. It automatically detects namespaces, and allows for a --
-- great deal of customisation. It can easily be ported to other --
-- wikis by changing the values in the [[Module:Pagetype/config]]. --
-- --
--------------------------------------------------------------------------------
-- Load config.
local cfg = mw.loadData('Module:Pagetype/config')
-- Load required modules.
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
local nsDetectModule = require('Module:Namespace detect')
local nsDetect = nsDetectModule._main
local getParamMappings = nsDetectModule.getParamMappings
local getPageObject = nsDetectModule.getPageObject
local p = {}
local function shallowCopy(t)
-- Makes a shallow copy of a table.
local ret = {}
for k, v in pairs(t) do
ret[k] = v
end
return ret
end
local function checkPagetypeInput(namespace, val)
-- Checks to see whether we need the default value for the given namespace,
-- and if so gets it from the pagetypes table.
-- The yesno function returns true/false for &quot;yes&quot;, &quot;no&quot;, etc., and returns
-- val for other input.
local ret = yesno(val, val)
if ret and type(ret) ~= 'string' then
ret = cfg.pagetypes[namespace]
end
return ret
end
local function getPagetypeFromClass(class, param, aliasTable, default)
-- Gets the pagetype from a class specified from the first positional
-- parameter.
param = yesno(param, param)
if param ~= false then -- No check if specifically disallowed.
for _, alias in ipairs(aliasTable) do
if class == alias then
if type(param) == 'string' then
return param
else
return default
end
end
end
end
end
local function getNsDetectValue(args)
-- Builds the arguments to pass to [[Module:Namespace detect]] and returns
-- the result.
-- Get the default values.
local ndArgs = {}
local defaultns = args[cfg.defaultns]
if defaultns == cfg.defaultnsAll then
ndArgs = shallowCopy(cfg.pagetypes)
else
local defaultnsArray
if defaultns == cfg.defaultnsExtended then
defaultnsArray = cfg.extendedNamespaces
elseif defaultns == cfg.defaultnsNone then
defaultnsArray = {}
else
defaultnsArray = cfg.defaultNamespaces
end
for _, namespace in ipairs(defaultnsArray) do
ndArgs[namespace] = cfg.pagetypes[namespace]
end
end
--[[
-- Add custom values passed in from the arguments. These overwrite the
-- defaults. The possible argument names are fetched from
-- Module:Namespace detect automatically in case new namespaces are
-- added. Although we accept namespace aliases as parameters, we only pass
-- the local namespace name as a parameter to Module:Namespace detect.
-- This means that the &quot;image&quot; parameter can overwrite defaults for the
-- File: namespace, which wouldn't work if we passed the parameters through
-- separately.
--]]
local mappings = getParamMappings()
for ns, paramAliases in pairs(mappings) do
-- Copy the aliases table, as # doesn't work with tables returned from
-- mw.loadData.
paramAliases = shallowCopy(paramAliases)
local paramName = paramAliases[1]
-- Iterate backwards along the array so that any values for the local
-- namespace names overwrite those for namespace aliases.
for i = #paramAliases, 1, -1 do
local paramAlias = paramAliases[i]
local ndArg = checkPagetypeInput(paramAlias, args[paramAlias])
if ndArg == false then
-- If any arguments are false, convert them to nil to protect
-- against breakage by future changes to
-- [[Module:Namespace detect]].
ndArgs[paramName] = nil
elseif ndArg then
ndArgs[paramName] = ndArg
end
end
end
-- Check for disambiguation-class and N/A-class pages in mainspace.
if ndArgs.main then
local class = args[1]
if type(class) == 'string' then
-- Put in lower case so e.g. &quot;Dab&quot; and &quot;dab&quot; will both match.
class = mw.ustring.lower(class)
end
local dab = getPagetypeFromClass(
class,
args[cfg.dab],
cfg.dabAliases,
cfg.dabDefault
)
if dab then
ndArgs.main = dab
else
local na = getPagetypeFromClass(
class,
args[cfg.na],
cfg.naAliases,
cfg.naDefault
)
if na then
ndArgs.main = na
end
end
end
-- If there is no talk value specified, use the corresponding subject
-- namespace for talk pages.
if not ndArgs.talk then
ndArgs.subjectns = true
end
-- Add the fallback value. This can also be customised, but it cannot be
-- disabled.
local other = args[cfg.other]
-- We will ignore true/false/nil results from yesno here, but using it
-- anyway for consistency.
other = yesno(other, other)
if type(other) == 'string' then
ndArgs.other = other
else
ndArgs.other = cfg.otherDefault
end
-- Allow custom page values.
ndArgs.page = args.page
return nsDetect(ndArgs)
end
local function detectRedirects(args)
local redirect = args[cfg.redirect]
-- The yesno function returns true/false for &quot;yes&quot;, &quot;no&quot;, etc., and returns
-- redirect for other input.
redirect = yesno(redirect, redirect)
if redirect == false then
-- Detect redirects unless they have been explicitly disallowed with
-- &quot;redirect=no&quot; or similar.
return
end
local pageObject = getPageObject(args.page)
-- If we are using subject namespaces elsewhere, do so here as well.
if pageObject
and not yesno(args.talk, true)
and args[cfg.defaultns] ~= cfg.defaultnsAll
then
pageObject = getPageObject(
pageObject.subjectNsText .. ':' .. pageObject.text
)
end
-- Allow custom values for redirects.
if pageObject and pageObject.isRedirect then
if type(redirect) == 'string' then
return redirect
else
return cfg.redirectDefault
end
end
end
function p._main(args)
local redirect = detectRedirects(args)
if redirect then
return redirect
else
return getNsDetectValue(args)
end
end
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
return p</text>
<sha1>95yj90zj7nf2doh38om166uuyivtaoq</sha1>
</revision>
</page>
<page>
<title>Module:Pagetype/config</title>
<ns>828</ns>
<id>42396800</id>
<revision>
<id>683099161</id>
<parentid>628078748</parentid>
<timestamp>2015-09-28T03:41:25Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>add the gadget and gadget definition namespaces per protected edit request by [[User:GeoffreyT2000]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3776">--------------------------------------------------------------------------------
-- Module:Pagetype configuration data --
-- This page holds localisation and configuration data for Module:Pagetype. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Start configuration data --
--------------------------------------------------------------------------------
-- This table holds the values to use for &quot;main=true&quot;, &quot;user=true&quot;, etc. Keys to
-- this table should be namespace parameters that can be used with
-- [[Module:Namespace detect]].
cfg.pagetypes = {
['main'] = 'article',
['user'] = 'user page',
['project'] = 'project page',
['wikipedia'] = 'project page',
['wp'] = 'project page',
['file'] = 'file',
['image'] = 'file',
['mediawiki'] = 'interface page',
['template'] = 'template',
['help'] = 'help page',
['category'] = 'category',
['portal'] = 'portal',
['book'] = 'book',
['draft'] = 'draft',
['education program'] = 'education program page',
['timedtext'] = 'Timed Text page',
['module'] = 'module',
['topic'] = 'topic',
['gadget'] = 'gadget',
['gadget definition'] = 'gadget definition',
['talk'] = 'talk page',
['special'] = 'special page',
['media'] = 'file',
}
-- This table holds the names of the namespaces to be looked up from
-- cfg.pagetypes by default.
cfg.defaultNamespaces = {
'main',
'file',
'template',
'category',
'module',
'book'
}
-- This table holds the names of the namespaces to be looked up from
-- cfg.pagetypes if cfg.defaultnsExtended is set.
cfg.extendedNamespaces = {
'main',
'user',
'project',
'file',
'mediawiki',
'template',
'category',
'help',
'portal',
'module',
'book',
'draft'
}
-- The parameter name to set which default namespace values to be looked up from
-- cfg.pagetypes.
cfg.defaultns = 'defaultns'
-- The value of cfg.defaultns to set all namespaces, including talk.
cfg.defaultnsAll = 'all'
-- The value of cfg.defaultns to set the namespaces listed in
-- cfg.extendedNamespaces
cfg.defaultnsExtended = 'extended'
-- The value of cfg.defaultns to set no default namespaces.
cfg.defaultnsNone = 'none'
-- The parameter name to use for disambiguation pages page.
cfg.dab = 'dab'
-- This table holds the different possible aliases for disambiguation-class
-- pages. These should be lower-case.
cfg.dabAliases = {
'disambiguation',
'disambig',
'disamb',
'dab'
}
-- The default value for disambiguation pages.
cfg.dabDefault = 'page'
-- The parameter name to use for N/A-class page.
cfg.na = 'na'
-- This table holds the different possible aliases for N/A-class pages. These
-- should be lower-case.
cfg.naAliases = {'na', 'n/a'}
-- The default value for N/A-class pages.
cfg.naDefault = 'page'
-- The parameter name to use for redirects.
cfg.redirect = 'redirect'
-- The default value to use for redirects.
cfg.redirectDefault = 'redirect'
-- The parameter name for undefined namespaces.
cfg.other = 'other'
-- The value used if the module detects an undefined namespace.
cfg.otherDefault = 'page'
--------------------------------------------------------------------------------
-- End configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line</text>
<sha1>nsjvdnxzxja6ehw5fddooj4hmniipbh</sha1>
</revision>
</page>
<page>
<title>Module:Redirect hatnote</title>
<ns>828</ns>
<id>42680232</id>
<revision>
<id>726676462</id>
<parentid>719088191</parentid>
<timestamp>2016-06-23T17:28:48Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Rephrased error message to make more sense for version with multiple redirects</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3887">--[[
-- This module produces a &quot;redirect&quot; hatnote. It looks like this:
-- '&quot;X&quot; redirects here. For other uses, see Y.'
-- It implements the {{redirect}} template.
--]]
local mHatnote = require('Module:Hatnote')
local mHatList = require('Module:Hatnote list')
local mArguments --lazily initialize
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local checkTypeMulti = libraryUtil.checkTypeMulti
local p = {}
local function getTitle(...)
local success, titleObj = pcall(mw.title.new, ...)
if success then
return titleObj
else
return nil
end
end
function p.redirect(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {parentOnly=true})
--Get number of redirects
local numRedirects = tonumber(frame.args[1]) or 1
-- Create the options table.
local options = {}
options.selfref = args.selfref
return p._redirect(args, numRedirects, options)
end
function p._redirect(args, numRedirects, options, currentTitle, redirectTitle, targetTitle)
-- Validate the input. Don't bother checking currentTitle, redirectTitle or
-- targetTitle, as they are only used in testing.
checkType('_redirect', 1, args, 'table')
checkType('_redirect', 2, numRedirects, 'number', true)
numRedirects = numRedirects or 1
checkType('_redirect', 3, options, 'table', true)
options = options or {}
currentTitle = currentTitle or mw.title.getCurrentTitle()
-- Get the table of redirects
local redirect = {}
for i = 1, numRedirects do
-- Return an error if a redirect parameter is missing.
if not args[i] then
return mHatnote.makeWikitextError(
'missing redirect parameter',
'Template:Redirect#Errors',
args.category
)
end
redirect[i] = args[i]
end
-- Generate the text.
local formattedRedirect = {}
for k,v in pairs(redirect) do
formattedRedirect[k] = '&quot;' .. v .. '&quot;'
end
local text = {
mHatList.andList(formattedRedirect) .. ' ' .. (#redirect == 1 and 'redirects' or 'redirect') .. ' here.',
mHatList._forSee(args, #redirect + 1, {title = redirect[1]})
}
text = table.concat(text, ' ')
-- Functionality for adding categories
local categoryTable = {}
function addCategory(cat)
if cat and cat ~= '' then
-- Add by index to avoid duplicates
categoryTable[string.format('[[Category:%s]]', cat)] = true
end
end
--Generate tracking categories
local mhOptions = {}
for k,v in pairs(redirect) do
-- We don't need a tracking category if the template invocation has been
-- copied directly from the docs, or if we aren't in main- or category-space.
if not v:find('^REDIRECT%d*$') and v ~= 'TERM' --
and currentTitle.namespace == 0 or currentTitle.namespace == 14
then
redirectTitle = redirectTitle or getTitle(v)
if not redirectTitle or not redirectTitle.exists then
addCategory('Missing redirects')
elseif not redirectTitle.isRedirect then
addCategory('Articles with redirect hatnotes needing review')
else
local mRedirect = require('Module:Redirect')
local target = mRedirect.getTarget(redirectTitle)
targetTitle = targetTitle or target and getTitle(target)
if targetTitle and targetTitle ~= currentTitle then
addCategory('Articles with redirect hatnotes needing review')
end
end
end
-- Generate the options to pass to [[Module:Hatnote]].
if currentTitle.namespace == 0 and not mhOptions.selfref
and redirectTitle and redirectTitle.namespace ~= 0
then
-- We are on a mainspace page, and the hatnote starts with something
-- like &quot;Wikipedia:Foo redirects here&quot;, so automatically label it as
-- a self-reference.
mhOptions.selfref = true
else
mhOptions.selfref = options.selfref
end
end
--concatenate all the categories
local category = ''
for k,v in pairs(categoryTable) do
category = category .. k
end
return mHatnote._hatnote(text, mhOptions) .. category
end
return p</text>
<sha1>9hm3qnb9a1vg7dj9xxe1p46p0tk3bco</sha1>
</revision>
</page>
<page>
<title>Module:TimeAgo</title>
<ns>828</ns>
<id>41412577</id>
<revision>
<id>670679674</id>
<parentid>592785364</parentid>
<timestamp>2015-07-09T14:09:32Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>allow args.ago to suppress &quot;time&quot; in future dates, and do some refactoring</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="4416">-- Replacement for [[Template:Time ago]]
local numberSpell = require('Module:NumberSpell')._main
local yesno = require('Module:Yesno')
local p = {}
-- Table to convert entered text values to numeric values.
timeText = {
['seconds'] = 1,
['minutes'] = 60,
['hours'] = 3600,
['days'] = 86400,
['weeks'] = 604800,
['months'] = 2678400,
['years'] = 31557600
}
-- Table containing tables of possible units to use in output.
timeUnits = {
[1] = { 'second', 'seconds', &quot;second's&quot;, &quot;seconds'&quot; },
[60] = { 'minute', 'minutes', &quot;minutes'&quot;, &quot;minutes'&quot; },
[3600] = { 'hour', 'hours', &quot;hour's&quot;, &quot;hours'&quot; },
[86400] = { 'day', 'days', &quot;day's&quot;, &quot;days'&quot; },
[604800] = { 'week', 'weeks', &quot;week's&quot;, &quot;weeks'&quot; },
[2678400] = { 'month', 'months', &quot;month's&quot;, &quot;months'&quot; },
[31557600] = { 'year', 'years', &quot;year's&quot;, &quot;years'&quot; }
}
function p._main( args )
-- Initialize variables
local lang = mw.language.getContentLanguage()
local auto_magnitude_num
local min_magnitude_num
local result
local result_unit
local magnitude = args.magnitude
local min_magnitude = args.min_magnitude
local purge = args.purge
local spell_out = args.spellout
local spell_out_max = args.spelloutmax
-- Add a purge link if something (usually &quot;yes&quot;) is entered into the purge parameter
if purge then
purge = ' &lt;span class=&quot;plainlinks&quot;&gt;([' .. mw.title.getCurrentTitle():fullUrl('action=purge') .. ' purge])&lt;/span&gt;'
else
purge = ''
end
-- Check that the entered timestamp is valid. If it isn't, then give an error message.
local noError, inputTime = pcall( lang.formatDate, lang, 'U', args[1], true )
if not noError then
return '&lt;strong class=&quot;error&quot;&gt;Error: first parameter cannot be parsed as a date or time.&lt;/strong&gt;'
end
-- Store the difference between the current time and the inputted time, as well as its absolute value.
local timeDiff = lang:formatDate( 'U', nil, true ) - inputTime
local absTimeDiff = math.abs( timeDiff )
if magnitude then
auto_magnitude_num = 0
min_magnitude_num = timeText[magnitude]
else
-- Calculate the appropriate unit of time if it was not specified as an argument.
local autoMagnitudeData = {
{ denom = 63115200, amn = 31557600 },
{ denom = 5356800, amn = 2678400 },
{ denom = 172800, amn = 86400 },
{ denom = 7200, amn = 3600 },
{ denom = 120, amn = 60 }
}
for i, t in ipairs( autoMagnitudeData ) do
if absTimeDiff / t.denom &gt;= 1 then
auto_magnitude_num = t.amn
break
end
end
auto_magnitude_num = auto_magnitude_num or 1
if min_magnitude then
min_magnitude_num = timeText[min_magnitude]
else
min_magnitude_num = -1
end
end
if not min_magnitude_num then
-- Default to seconds if an invalid magnitude is entered.
min_magnitude_num = 1
end
local magnitude_num = math.max( min_magnitude_num, auto_magnitude_num )
local result_num = math.floor ( absTimeDiff / magnitude_num )
local punctuation_key, suffix
if timeDiff &gt;= 0 then -- Past
if result_num == 1 then
punctuation_key = 1
else
punctuation_key = 2
end
if args.ago == '' then
suffix = ''
else
suffix = ' ' .. (args.ago or 'ago')
end
else -- Future
if args.ago == '' then
suffix = ''
if result_num == 1 then
punctuation_key = 1
else
punctuation_key = 2
end
else
suffix = ' time'
if result_num == 1 then
punctuation_key = 3
else
punctuation_key = 4
end
end
end
result_unit = timeUnits[ magnitude_num ][ punctuation_key ]
-- Convert numerals to words if appropriate.
spell_out_max = tonumber( spell_out_max ) -- Would cause script errors if not a number.
local result_num_text
if ( spell_out == 'auto' and 1 &lt;= result_num and result_num &lt;= 9 and result_num &lt;= ( spell_out_max or 9 ) )
or ( yesno( spell_out ) and 1 &lt;= result_num and result_num &lt;= 100 and result_num &lt;= ( spell_out_max or 100 ) )
then
result_num_text = numberSpell( result_num )
else
result_num_text = tostring( result_num )
end
result = result_num_text .. ' ' .. result_unit .. suffix -- Spaces for suffix have been added in earlier.
return result .. purge
end
function p.main( frame )
local args = require( 'Module:Arguments' ).getArgs( frame, {
valueFunc = function( k, v )
if v then
v = v:match( '^%s*(.-)%s*$' ) -- Trim whitespace.
if k == 'ago' or v ~= '' then
return v
end
end
return nil
end,
wrappers = 'Template:Time ago'
})
return p._main( args )
end
return p</text>
<sha1>d114nztx65u7l0hdmz2sxdx40vtr4r2</sha1>
</revision>
</page>
<page>
<title>Module:Toolbar</title>
<ns>828</ns>
<id>39645406</id>
<revision>
<id>804526952</id>
<parentid>775709479</parentid>
<timestamp>2017-10-09T16:15:03Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>automatically fix double-leading-colon errors (which are present in many signatures that use this template per [[Special:LintErrors/multi-colon-escape]])</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1266">-- This module implements {{toolbar}}.
local mArguments -- Lazily initialise [[Module:Arguments]]
local mTableTools = require('Module:TableTools')
local yesno = require('Module:Yesno')
local p = {}
function p.main(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame)
return p._main(args)
end
function p._main(args)
local toolbarItems = p.makeToolbarItems(args)
if not toolbarItems then
-- Return the blank string if no arguments were specified, rather than
-- returning empty brackets.
return ''
elseif yesno(args.span) == false then
return string.format(
'(%s)',
toolbarItems
)
else
return string.format(
'&lt;span class=&quot;plainlinks%s&quot;%s&gt;(%s)&lt;/span&gt;',
type(args.class) == 'string' and ' ' .. args.class or '',
type(args.style) == 'string' and string.format(' style=&quot;%s&quot;', args.style) or '',
toolbarItems
)
end
end
function p.makeToolbarItems(args)
local nums = mTableTools.numKeys(args)
local sep = (args.separator or 'pipe') .. '-separator'
sep = mw.message.new(sep):plain()
local ret = {}
for i, v in ipairs(nums) do
ret[#ret + 1] = mw.ustring.gsub(args[v], &quot;%[%[::+(.-)%]%]&quot;, &quot;[[:%1]]&quot;)
end
if #ret &gt; 0 then
return table.concat(ret, sep)
else
return nil
end
end
return p</text>
<sha1>dat0yzyzu635n4je30cyef668afrodq</sha1>
</revision>
</page>
<page>
<title>Template:Delink/doc</title>
<ns>10</ns>
<id>42516117</id>
<revision>
<id>821321730</id>
<parentid>754209918</parentid>
<timestamp>2018-01-19T19:06:45Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>/* See also */ add</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2336">{{Documentation subpage}}
{{lua|Module:Delink}}
&lt;!-- Categories go at the bottom of this page and interwikis go in Wikidata. --&gt;
{{High-risk|800,000+ pages, which is 2% of all}}
This template removes links from wikitext. It de-links wikilinks, URL links, removes HTML comments, and normalises whitespace. It handles most wikitext correctly, including category links, the [[Help:Colon trick|colon trick]], the [[Help:Pipe trick|pipe trick]] (normal and reverse), nested wikilinks, and invalid link characters.
== Usage ==
; Basic
&amp;#123;{delink|''text''}}
; All parameters
&lt;pre&gt;
{{delink
| 1 =
| wikilinks = no
| urls = no
| comments = no
| whitespace = no
| refs = yes
}}
&lt;/pre&gt;
== Parameters ==
* &lt;code&gt;1&lt;/code&gt; - the text to be de-linked.
* &lt;code&gt;wikilinks&lt;/code&gt; - if set to &quot;no&quot;, &quot;n&quot;, &quot;false&quot;, or &quot;0&quot;, wikilinks are not de-linked.
* &lt;code&gt;urls&lt;/code&gt; - if set to &quot;no&quot;, &quot;n&quot;, &quot;false&quot;, or &quot;0&quot;, URL links are not de-linked.
* &lt;code&gt;comments&lt;/code&gt; - if set to &quot;no&quot;, &quot;n&quot;, &quot;false&quot;, or &quot;0&quot;, HTML comments are not removed.
* &lt;code&gt;whitespace&lt;/code&gt; - if set to &quot;no&quot;, &quot;n&quot;, &quot;false&quot;, or &quot;0&quot;, whitespace is not normalised. The normalisation makes the whitespace of the resulting text look as if it had been put through the MediaWiki parser. For example, single new lines are converted to a single space, but double new lines are left alone.
* &lt;code&gt;refs&lt;/code&gt; - (experimental) if set to &quot;yes&quot;, &quot;y&quot;, &quot;true&quot;, or &quot;1&quot;, removes references. This is not recommended, as only the &lt;sup&gt;[1]&lt;/sup&gt;, &lt;sup&gt;[2]&lt;/sup&gt;, etc. markers will be removed - the references themselves will still appear at the end of the page. There is no known workaround for this problem as of April 2014.
== Examples ==
{| class=&quot;wikitable&quot;
! Code
! Output
|-
| &lt;code&gt;&lt;nowiki&gt;{{delink|[[Foo]]}}&lt;/nowiki&gt;&lt;/code&gt;
| {{delink|[[Foo]]}}
|-
| &lt;code&gt;&lt;nowiki&gt;{{delink|[[Foo]], [[bar]] and [[baz]].}}&lt;/nowiki&gt;&lt;/code&gt;
| {{delink|[[Foo]], [[bar]] and [[baz]].}}
|-
| &lt;code&gt;&lt;nowiki&gt;{{delink|I visited [http://www.example.com example.com].}}&lt;/nowiki&gt;&lt;/code&gt;
| {{delink|I visited [http://www.example.com example.com].}}
|}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories go here and interwikis go in Wikidata. --&gt;
}}&lt;/includeonly&gt;
==See also==
*{{tl|trim brackets}}
*{{tl|delink question hyphen-minus}}
{{String-handling templates |delink}}</text>
<sha1>gjoj7ar2wcxly09qfuue43yyxjy4tuo</sha1>
</revision>
</page>
<page>
<title>Template:String-handling templates</title>
<ns>10</ns>
<id>22170038</id>
<revision>
<id>810551032</id>
<parentid>775434903</parentid>
<timestamp>2017-11-15T23:32:38Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>| {{tl|trim quotes}} | To trim leading or trailing matches quotes.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="8925">{{Navbox with collapsible groups
| name = String-handling templates
| state = {{{state|expanded}}}
| bodyclass = plainlist
| title = String-handling templates
| selected = {{{selected|{{{expanded|{{{1|}}}}}}}}}
&lt;!---------------------- Trimming -------------------------&gt;
| abbr1 = trim
| sect1 = [[Trimming (computer programming)|Trimming]]
| content1 =
{{Navbox |child
| group1 = By counting
| list1 =
{{Aligned table |fullwidth=on |style=text-align:left; |col1width=50%;
| {{Aligned table |style=padding-right:2.5em;
|col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
| {{tl|str mid}} | To return a substring specified by position and length.
| {{tl|trunc}} | To trim down to a specified number of characters.
| {{tl|str left}} | To trim down to a specified number of characters or duplicate the string to a specified number.
| {{tl|str crop}} | To crop a specified number of characters off the end.
| {{tl|chop head and tail}} | To crop a specified number of characters off the beginning and end.
}}
| {{Aligned table
|col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
| {{tl|str right}} | To trim the first specified number of characters.
| {{tl|str rightc}} | To return a number of characters from the end, returns a parameter if the string is empty.
| {{tl|str rightmost}} | To trim down to the last specified number of characters.
| {{tl|str sub old}} | To trim down to a specified number, starting at a given number from the left.
| {{tl|str sub new}} | Select a substr based on starting and ending index.
| {{tl|str index}} | Returns a given character from a string, but not accented letters.
}} }}
| group2 = By checking
| list2 =
{{Aligned table |fullwidth=on |style=text-align:left; |col1width=50%;
| {{Aligned table |style=padding-right:2.5em;
|col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
| {{tl|trim}} | To trim any leading or trailing whitespace
| {{tl|str letter/trim}} | To trim down to the beginning letters.
| {{tl|str number/trim}} | To trim down to the beginning numbers.
| {{tl|trim brackets}} | To trim any leading or trailing square brackets.
| {{tl|trim quotes}} | To trim leading or trailing matches quotes.
}}
| {{Aligned table
|col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
| {{tl|first word}} | To trim down to the first space.
| {{tl|remove first word}} | To remove anything before the first space.
| {{tl|last word}} | To trim down from the last space.
| {{tl|remove last word}} | To remove anything after the last space.
}} }}
| group3 = Dedicated
| list3 =
{{Aligned table |fullwidth=on |style=text-align:left; |col1width=50%;
| {{Aligned table |style=padding-right:2.5em;
|col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
| {{tl|delink}} | Removes wikilink brackets (wikicode).
| {{tl|remove file prefix}} | Removes &quot;File:&quot; (or &quot;Image:&quot;) from filenames.
| {{tl|PAGENAMEBASE}} | To trim off any parenthesis text at the end of a string (disambiguation).
| {{tl|title disambig text}} | Returns text in parentheses at the end of a string (disambiguation).
}}
| {{Aligned table
|col1style=width:12.5em;text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
| {{tl|WikiProjectbasename}} | Removes &quot;WikiProject&quot; from a pagename.
| {{tl|remove unranked}} | Removes the string &quot;unranked_&quot; from the left of a string (taxonomy).
| {{tl|ship prefix}} | Returns the length of a ship's name prefix, if listed (ship names).
| {{tl|title year}} | Returns the 4-digit year from a pagename, if any.
}} }}
}}
&lt;!----------- Insertion, replacement, length --------------&gt;
| abbr2 = IRL
| sect2 = Insertion, replacement and length
| content2 =
{{Aligned table |style=margin:0 auto 0;text-align:left;
| &lt;!---(Insertion, replacement)---&gt;
{{Aligned table |style=padding-right:2.5em;
|col1style=text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
| {{tl|strloc insert}} | Inserts a string at character location strloc, or appends if strloc&lt;{{=}}0.
| {{tl|loop}} | Repeat character string a specified number of times.
| {{tl|repeat}} | Repeat a string a specified number of times.
| {{tl|replace}} | Returns the string, after replacing ''all'' occurrences of a specified string with another string.
| {{tl|str rep}} | Returns the string, after replacing the first occurrence of a specified string with another string.
| {{tl|digits}} | Returns the string, after removing all characters that are not digits 0–9
}}
| &lt;!---(Length)---&gt;
{{Aligned table
|col1style=text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
| {{tl|str len}} | Returns a string's length.
| {{tl|iflenge}} | [if len]gth [g]reater than or [e]qual to.
| {{tl|str ≥ len}} | To check if a string is &quot;longer or equally long&quot; or &quot;shorter&quot; than a given length.
| {{tl|str ≤ len}} | To check if a string is &quot;shorter or equally long&quot; or &quot;longer&quot; than a given length.
| {{tl|str ≠ len}} | To check if a string is &quot;not equal&quot; or &quot;equal&quot; to a given length.
| {{tl|str ≤ ≥ len}} | To check if a string is &quot;shorter&quot;, &quot;equal&quot;, or &quot;longer&quot; than a given length.
}} }}
&lt;!----------------- Analysis, technical -------------------&gt;
| abbr3 = anlys/tech
| sect3 = Analysis and technical
| content3 =
{{Aligned table |style=margin:0 auto 0;text-align:left;
| &lt;!---(Analysis)---&gt;
{{Aligned table |style=padding-right:2.5em;
|col1style=text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
| {{tl|str endswith}} | To check if a string ends with a given string.
| {{tl|str find}}&lt;br/&gt;{{tl|strfind short}} |style2.2=vertical-align:middle;|''Returns the numerical location of a given string in a string.''
| {{tl|str find0}} | Zero-based substring search.
| {{tl|str sub find}} | Searches a substring in a string at the given offset.
| {{tl|str letter}} | Returns the number of letters that begin a string.
| {{tl|str number}} | Returns the number of numbers that begin a string.
| {{tl|str gtr str}} | Compares two strings for alphabetical order, and returns a value accordingly.
}}
| &lt;!---(Analysis cont'd)---&gt;
{{Aligned table
|col1style=text-align:right;white-space:nowrap;padding-right:0.75em; |col2style=font-style:italic;
| {{tl|ASCII code}} | Returns the ASCII value of a single character.
| {{tl|a or an}} | Takes a noun and produces the appropriate indefinite article, based on whether the first letter is a vowel.
| &amp;nbsp; | &amp;nbsp;
&lt;!---(Technical)---&gt;
| [[Module:String]] |
| [[mw:Help:Magic words|...Magic words]] | {{noitalic|About &lt;code&gt;&lt;nowiki&gt;{{padleft:&amp;#124;}}&lt;/nowiki&gt;&lt;/code&gt;.}}
| [[mw:Help:Extension:ParserFunctions|...ParserFunctions]] | {{noitalic|About &lt;code&gt;&lt;nowiki&gt;{{#titleparts:&amp;#124;}}, {{#expr:&amp;#124;}}, {{#ifeq:&amp;#124;}}, &lt;/nowiki&gt;&lt;/code&gt; etc.}}
}} }}
&lt;!--------------------- (disabled) ------------------------&gt;
&lt;!----
| group12 = Feature requests
| list12 =
* [[bugzilla:6455]] – Set $wgPFEnableStringFunctions = true on WMF wikis
* [[bugzilla:26092]] – Enable or install string parsing wikimarkup functionality on WMF wikis
&lt;!----Not in a navbox:
| group13 = [[Wikipedia:Template sandbox and test cases|Sandboxes, testcases]]
| list13 =
* {{tl|Str find/sandbox}}
* {{tl|Str index/getchar/sandbox}}
* {{tl|Str index/getchar/testcases}}
* {{tl|Str index/sandbox}}
* {{tl|Str index/testcases}}
* {{tl|Str index any/sandbox}}
* {{tl|Str index any/testcases}}
* {{tl|Str left/sandbox}}
* {{tl|Str len/core/sandbox}}
* {{tl|Str len/sandbox}}
* {{tl|Str len/testcases}}
* {{tl|Str rightc/testcases}}
* {{tl|Str ≠ len/sandbox}}
* {{tl|Str ≠ len/testcases}}
-----&gt;
&lt;!----------------------- below ---------------------------&gt;
| belowclass = hlist
| below =
* [[:Category:String manipulation templates]]
* [[m:Category:String templates]]
* [[:commons:Category:String manipulation templates]]
| tracking = no &lt;!--(keep all these string templates (by /doc pages) out of the tracking category)--&gt;
}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>lrxjhlrs158zgqv15agrxozs7pwvx6f</sha1>
</revision>
</page>
<page>
<title>Template:No redirect</title>
<ns>10</ns>
<id>13319251</id>
<revision>
<id>805067901</id>
<parentid>732505324</parentid>
<timestamp>2017-10-12T21:12:06Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<comment>fix double-colon errors</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="364">{{{{{|safesubst:}}}#if: {{{{{|safesubst:}}}#invoke:Redirect|isRedirect|{{{1}}}}}
| &lt;span class=&quot;plainlinks&quot;&gt;[{{{{{|safesubst:}}}fullurl:{{{1}}}|redirect=no}} {{{2|{{{1}}}}}}]&lt;/span&gt;
| {{{{{|safesubst:}}}#if:{{{2|}}}|[[:{{{{{|safesubst:}}}FULLPAGENAME:{{{1}}}}}|{{{2}}}]]|[[:{{{{{|safesubst:}}}FULLPAGENAME:{{{1}}}}}]]}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>88pp68yq9b5ureiktx42orgunm1ai9m</sha1>
</revision>
</page>
<page>
<title>Template:PAGENAMEBASE</title>
<ns>10</ns>
<id>29780699</id>
<revision>
<id>708575225</id>
<parentid>636280634</parentid>
<timestamp>2016-03-06T09:37:56Z</timestamp>
<contributor>
<username>Cabayi</username>
<id>6561336</id>
</contributor>
<comment>per edit request &amp; discussion</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="141">{{{{{|safesubst:}}}#Invoke:String|replace|{{{1|{{{{{|safesubst:}}}PAGENAME}}}}}|%s+%b()$||1|false}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>sam8aetb68ekom4findu6pp900ngldr</sha1>
</revision>
</page>
<page>
<title>Module:Redirect</title>
<ns>828</ns>
<id>38849415</id>
<revision>
<id>773537701</id>
<parentid>673312597</parentid>
<timestamp>2017-04-03T01:02:46Z</timestamp>
<contributor>
<username>Nyttend</username>
<id>1960810</id>
</contributor>
<comment>Copying change per request of AlexTheWhovian. Please revert me if this causes some sort of error</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3689">-- This module provides functions for getting the target of a redirect page.
local p = {}
-- Gets a mw.title object, using pcall to avoid generating script errors if we
-- are over the expensive function count limit (among other possible causes).
local function getTitle(...)
local success, titleObj = pcall(mw.title.new, ...)
if success then
return titleObj
else
return nil
end
end
-- Gets the name of a page that a redirect leads to, or nil if it isn't a
-- redirect.
function p.getTargetFromText(text)
return string.match(
text,
&quot;^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)%]%]&quot;
) or string.match(
text,
&quot;^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)|[^%[%]]-%]%]&quot;
)
end
-- Gets the target of a redirect. If the page specified is not a redirect,
-- returns nil.
function p.getTarget(page, fulltext)
-- Get the title object. Both page names and title objects are allowed
-- as input.
local titleObj
if type(page) == 'string' or type(page) == 'number' then
titleObj = getTitle(page)
elseif type(page) == 'table' and type(page.getContent) == 'function' then
titleObj = page
else
error(string.format(
&quot;bad argument #1 to 'getTarget'&quot;
.. &quot; (string, number, or title object expected, got %s)&quot;,
type(page)
), 2)
end
if not titleObj or not titleObj.isRedirect then
return nil
end
-- Find the target by using string matching on the page content.
local target = p.getTargetFromText(titleObj:getContent() or &quot;&quot;)
if target then
local targetTitle = getTitle(target)
if targetTitle then
if fulltext then
return targetTitle.fullText
else
return targetTitle.prefixedText
end
else
return nil
end
else
-- The page is a redirect, but matching failed. This indicates a bug in
-- the redirect matching pattern, so throw an error.
error(string.format(
'could not parse redirect on page &quot;%s&quot;',
fulltext and titleObj.fullText or titleObj.prefixedText
))
end
end
--[[
-- Given a single page name determines what page it redirects to and returns the
-- target page name, or the passed page name when not a redirect. The passed
-- page name can be given as plain text or as a page link.
--
-- Returns page name as plain text, or when the bracket parameter is given, as a
-- page link. Returns an error message when page does not exist or the redirect
-- target cannot be determined for some reason.
--]]
function p.luaMain(rname, bracket, fulltext)
if type(rname) ~= &quot;string&quot; or not rname:find(&quot;%S&quot;) then
return nil
end
bracket = bracket and &quot;[[%s]]&quot; or &quot;%s&quot;
rname = rname:match(&quot;%[%[(.+)%]%]&quot;) or rname
local target = p.getTarget(rname, fulltext)
local ret = target or rname
ret = getTitle(ret)
if ret then
if fulltext then
ret = ret.fullText
else
ret = ret.prefixedText
end
return bracket:format(ret)
else
return nil
end
end
-- Provides access to the luaMain function from wikitext.
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {frameOnly = true})
return p.luaMain(args[1], args.bracket, args.fulltext) or ''
end
-- Returns true if the specified page is a redirect, and false otherwise.
function p.luaIsRedirect(page)
local titleObj = getTitle(page)
if not titleObj then
return false
end
if titleObj.isRedirect then
return true
else
return false
end
end
-- Provides access to the luaIsRedirect function from wikitext, returning 'yes'
-- if the specified page is a redirect, and the blank string otherwise.
function p.isRedirect(frame)
local args = require('Module:Arguments').getArgs(frame, {frameOnly = true})
if p.luaIsRedirect(args[1]) then
return 'yes'
else
return ''
end
end
return p</text>
<sha1>ada8ml76e2w9edlkodgxumwd5ucz0bf</sha1>
</revision>
</page>
<page>
<title>Module:Shortcut</title>
<ns>828</ns>
<id>42135780</id>
<revision>
<id>811016713</id>
<parentid>805128223</parentid>
<timestamp>2017-11-19T00:28:45Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<comment>spacing changes, as discussed at [[Template talk:Shortcut]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3588">-- This module implements {{shortcut}}.
-- Set constants
local CONFIG_MODULE = 'Module:Shortcut/config'
-- Load required modules
local checkType = require('libraryUtil').checkType
local yesno = require('Module:Yesno')
local p = {}
local function message(msg, ...)
return mw.message.newRawMessage(msg, ...):plain()
end
local function makeCategoryLink(cat)
return string.format('[[%s:%s]]', mw.site.namespaces[14].name, cat)
end
function p._main(shortcuts, options, frame, cfg)
checkType('_main', 1, shortcuts, 'table')
checkType('_main', 2, options, 'table', true)
options = options or {}
frame = frame or mw.getCurrentFrame()
cfg = cfg or mw.loadData(CONFIG_MODULE)
local isCategorized = yesno(options.category) ~= false
-- Validate shortcuts
for i, shortcut in ipairs(shortcuts) do
if type(shortcut) ~= 'string' or #shortcut &lt; 1 then
error(message(cfg['invalid-shortcut-error'], i), 2)
end
end
-- Make the list items. These are the shortcuts plus any extra lines such
-- as options.msg.
local listItems = {}
for i, shortcut in ipairs(shortcuts) do
listItems[i] = frame:expandTemplate{
title = 'No redirect',
args = {shortcut}
}
end
table.insert(listItems, options.msg)
-- Return an error if we have nothing to display
if #listItems &lt; 1 then
local msg = cfg['no-content-error']
msg = string.format('&lt;strong class=&quot;error&quot;&gt;%s&lt;/strong&gt;', msg)
if isCategorized and cfg['no-content-error-category'] then
msg = msg .. makeCategoryLink(cfg['no-content-error-category'])
end
return msg
end
local root = mw.html.create()
-- Anchors
local anchorDiv = root
:tag('div')
:css('position', 'relative')
:css('top', '-3em')
for i, shortcut in ipairs(shortcuts) do
local anchor = mw.uri.anchorEncode(shortcut)
anchorDiv:tag('span'):attr('id', anchor)
end
root:newline() -- To match the old [[Template:Shortcut]]
-- Shortcut heading
local shortcutHeading
do
local nShortcuts = #shortcuts
if nShortcuts &gt; 0 then
shortcutHeading = message(cfg['shortcut-heading'], nShortcuts)
shortcutHeading = frame:preprocess(shortcutHeading)
shortcutHeading = shortcutHeading .. '\n'
end
end
-- Shortcut box
local shortcutList = root
:tag('div')
:addClass('shortcutbox plainlist noprint')
:attr('role', 'note')
:css('float', 'right')
:css('border', '1px solid #aaa')
:css('background', '#fff')
:css('margin', '0em 0em 0em 1em')
:css('padding', '.3em .6em .2em .6em')
:css('text-align', 'center')
:css('font-size', '85%')
:css('font-weight', 'bold')
if shortcutHeading then
shortcutList
:tag('div')
:css('display','inline-block')
:css('border-bottom','1px solid #aaa')
:css('margin-bottom', '.2em')
:css('font-weight', 'normal')
:wikitext(shortcutHeading)
end
shortcutList
:tag('ul')
for i, item in ipairs(listItems) do
shortcutList:tag('li'):wikitext(item)
end
return tostring(root)
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Shortcut'
})
-- Separate shortcuts from options
local shortcuts, options = {}, {}
for k, v in pairs(args) do
if type(k) == 'number' then
shortcuts[k] = v
else
options[k] = v
end
end
-- Compress the shortcut array, which may contain nils.
local function compressArray(t)
local nums, ret = {}, {}
for k in pairs(t) do
nums[#nums + 1] = k
end
table.sort(nums)
for i, num in ipairs(nums) do
ret[i] = t[num]
end
return ret
end
shortcuts = compressArray(shortcuts)
return p._main(shortcuts, options, frame)
end
return p</text>
<sha1>ezy1lu0bklqihbz800q7fmzy4ldql6z</sha1>
</revision>
</page>
<page>
<title>Module:Shortcut/config</title>
<ns>828</ns>
<id>44726957</id>
<revision>
<id>811229224</id>
<parentid>737132139</parentid>
<timestamp>2017-11-20T08:47:21Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<minor/>
<comment>colon removed</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1027">-- This module holds configuration data for [[Module:Shortcut]].
return {
-- The heading at the top of the shortcut box. It accepts the following parameter:
-- $1 - the total number of shortcuts. (required)
['shortcut-heading'] = '[[Wikipedia:Shortcut|{{PLURAL:$1|Shortcut|Shortcuts}}]]',
-- The error message to display when a shortcut is invalid (is not a string, or
-- is the blank string). It accepts the following parameter:
-- $1 - the number of the shortcut in the argument list. (required)
['invalid-shortcut-error'] = 'shortcut #$1 was invalid (shortcuts must be ' ..
'strings of at least one character in length)',
-- The error message to display when no shortcuts or other displayable content
-- were specified. (required)
['no-content-error'] = 'Error: no shortcuts were specified and the ' ..
mw.text.nowiki('|msg=') ..
' parameter was not set.',
-- A category to add when the no-content-error message is displayed. (optional)
['no-content-error-category'] = 'Shortcut templates with missing parameters',
}</text>
<sha1>sclklu3yltum8om22j0v54lq1o1ja6o</sha1>
</revision>
</page>
<page>
<title>Template:About</title>
<ns>10</ns>
<id>2468023</id>
<revision>
<id>719004975</id>
<parentid>718032354</parentid>
<timestamp>2016-05-07T00:02:43Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Major update: reimplemented in Lua (via [[Module:About]]) as tested in sandbox.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="90">&lt;includeonly&gt;{{#invoke:about|about}}&lt;/includeonly&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>sewwzp1otrriymoi2xy4csy1ag24qbn</sha1>
</revision>
</page>
<page>
<title>Template:Distinguish/doc</title>
<ns>10</ns>
<id>11432788</id>
<revision>
<id>817036202</id>
<parentid>778963387</parentid>
<timestamp>2017-12-25T17:02:44Z</timestamp>
<contributor>
<ip>103.252.200.152</ip>
</contributor>
<comment>Fixed all about my samsung</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3271">{{Documentation subpage}}
&lt;!-- EDIT TEMPLATE DOCUMENTATION BELOW THIS LINE --&gt;
{{Lua|Module:Distinguish}}
This template renders a [[WP:HAT|hatnote]] intended to inform the reader of the existence of one or more articles whose title(s) bears a strong resemblance to the current article. This template is used in the cases where the distinction between the titles is so obvious that the reader needs no further explanation. For cases where an explanation is required, use {{tl|For}} and {{tl|About}}.
== Examples ==
This hatnote is generally used when readers have misspelled their desired title, and the error would be apparent by simply displaying the alternative term without further explanation. For example, consider a reader looking for the punctuation mark who instead ends up at [[coma]]:
&lt;blockquote&gt;[[Coma]] → {{Distinguish|Comma}}&lt;/blockquote&gt;
Readers are presumed to recognize that they actually wanted ''comma'' by merely looking at the spelling, and this case generally requires no further explanation.
However, {{tlx|distinguish}} is not suitable when the difference is not readily apparent without additional details. Consider a reader looking for a game they believe is named Reversi:
&lt;blockquote&gt;[[File:Red x.svg|15px|link=]] [[Reversi]] → {{Distinguish|Reversis}} &lt;/blockquote&gt;
In the above hatnote, it is not generally apparent how the suggested Reversis is different from Reversi, which is also a game.
&lt;blockquote&gt;[[File:Green check.svg|15px|link=]] [[Reversi]] → {{About|the board game|the card game|Reversis}}&lt;/blockquote&gt;
Using {{tlx|about}} instead of {{tlc|distinguish}}, the differences in the suggested article is explained upfront without requiring the reader to click through and differentiate the terms on their own.
{{tlc|Distinguish}} should only be used when the ambiguity exists for a portion of the readership that is sufficient to warrant a hatnote. Care should be taken to [[WP:TRHAT|avoid trivial uses]].
== TemplateData ==
{{TemplateData header}}
&lt;templatedata&gt;
{
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Name of article&quot;,
&quot;description&quot;: &quot;Name of article that you want to link to&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: true
},
&quot;2&quot;: {
&quot;label&quot;: &quot;Optional additional article to link&quot;,
&quot;description&quot;: &quot;Optional additional article to link&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;
},
&quot;3&quot;: {
&quot;label&quot;: &quot;Optional additional article to link&quot;,
&quot;description&quot;: &quot;Optional additional article to link&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;
},
&quot;4&quot;: {
&quot;label&quot;: &quot;Optional additional article to link&quot;,
&quot;description&quot;: &quot;Optional additional article to link&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;
}
},
&quot;description&quot;: &quot;A hatnote used when there is an ambiguity in an article's title.&quot;,
&quot;paramOrder&quot;: [
&quot;1&quot;,
&quot;2&quot;,
&quot;3&quot;,
&quot;4&quot;
],
&quot;format&quot;: &quot;inline&quot;
}
&lt;/templatedata&gt;
== Redirects ==
* {{tl|Not to be confused with}}
* {{tl|Confused}}
* {{tl|Confuse}}
* {{tl|Misspelling}}
== See also ==
* {{tl|Distinguish2}}, for multiple disambiguation targets or prepending &quot;the&quot;.
{{Hatnote templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories go below and interwikis go to Wikidata, thank you! --&gt;
[[Category:Disambiguation and redirection templates|{{PAGENAME}}]]
[[Category:Hatnote templates]]
}}&lt;/includeonly&gt;</text>
<sha1>1htnevjf5utpop045k07xi1iuigwlz1</sha1>
</revision>
</page>
<page>
<title>Module:About</title>
<ns>828</ns>
<id>50080208</id>
<revision>
<id>730125083</id>
<parentid>719003202</parentid>
<timestamp>2016-07-16T21:33:40Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Updated from sandbox with support for otherText option passthrough</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1563">local mArguments --initialize lazily
local mHatnote = require('Module:Hatnote')
local mHatList = require('Module:Hatnote list')
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
function p.about (frame)
-- A passthrough that gets args from the frame and all
mArguments = require('Module:Arguments')
args = mArguments.getArgs(frame)
return p._about(args)
end
function p._about (args, options)
-- Produces &quot;about&quot; hatnote.
-- Type checks and defaults
checkType('_about', 1, args, 'table', true)
args = args or {}
checkType('_about', 2, options, 'table', true)
options = options or {}
local defaultOptions = {
aboutForm = 'This %s is about %s. ',
defaultPageType = 'page',
namespace = mw.title.getCurrentTitle().namespace,
otherText = nil, --included for complete list
pageTypesByNamespace = {
[0] = 'article',
[14] = 'category'
},
sectionString = 'section'
}
for k, v in pairs(defaultOptions) do
if options[k] == nil then options[k] = v end
end
-- Set initial &quot;about&quot; string
local pageType = (args.section and options.sectionString) or
options.pageTypesByNamespace[options.namespace] or
options.defaultPageType
local about = ''
if args[1] then
about = string.format(options.aboutForm, pageType, args[1])
end
--Allow passing through certain options
local fsOptions = {
otherText = options.otherText
}
-- Set for-see list
local forSee = mHatList._forSee(args, 2, fsOptions)
-- Concatenate and return
return mHatnote._hatnote(about .. forSee)
end
return p</text>
<sha1>dljvn3yousnkg58p45o8yxrkev89jqt</sha1>
</revision>
</page>
<page>
<title>Module:Distinguish</title>
<ns>828</ns>
<id>50437969</id>
<revision>
<id>733635491</id>
<parentid>719919403</parentid>
<timestamp>2016-08-09T03:52:40Z</timestamp>
<contributor>
<username>NeilN</username>
<id>409043</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Module:Distinguish]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="735">local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments --initialize lazily
local mTableTools --initialize lazily
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
function p.distinguish(frame)
mArguments = require('Module:Arguments')
mTableTools = require('Module:TableTools')
local args = mTableTools.compressSparseArray(mArguments.getArgs(frame))
return p._distinguish(args)
end
function p._distinguish(args)
checkType(&quot;_distinguish&quot;, 1, args, 'table')
if #args == 0 then return '' end
local text = string.format(
'Not to be confused with %s.',
mHatlist.orList(args, true)
)
return mHatnote._hatnote(text)
end
return p</text>
<sha1>2ftnm8ngjc56swkmedhmdz1cejvkw8g</sha1>
</revision>
</page>
<page>
<title>Template:Dmbox/doc</title>
<ns>10</ns>
<id>19662564</id>
<revision>
<id>785573823</id>
<parentid>785301194</parentid>
<timestamp>2017-06-14T08:22:10Z</timestamp>
<contributor>
<username>Adem20</username>
<id>25436602</id>
</contributor>
<minor/>
<comment>Undid revision 785301194 by [[Special:Contributions/107.77.207.199|107.77.207.199]] ([[User talk:107.77.207.199|talk]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="7266">{{Documentation subpage}}
{{High-risk| 317,000+ }}
&lt;!-- Categories where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]) --&gt;
{{Mbox templates (small)}}
This is the {{tl|Dmbox}} (['''D''']isambiguation footer ['''m''']essage ['''box''']) meta-template.
It is used to build disambiguation and [[Wikipedia:Disambiguation#Set index articles|set index article]] boxes, such as {{tl|Disambiguation}} and {{tl|Shipindex}}.
This template works similarly to {{tl|Ambox}} and mostly uses the same parameters. The main differences are that this box uses the disambiguation style and only has two &quot;type&quot; settings.
=== Usage ===
Simple usage example:
&lt;pre&gt;
{{dmbox | text = Some text.}}
&lt;/pre&gt;
{{dmbox | text = Some text.}}
&lt;pre&gt;
{{dmbox | type = setindex | text = Some text.}}
&lt;/pre&gt;
{{dmbox | type = setindex | text = Some text.}}
Complex example:
&lt;pre&gt;
{{dmbox
| type = setindex
| image = {{nowrap| [[Image:Schooner.svg|30px]] [[Image:DAB list gray.svg|30px]] }}
| textstyle=color: red; font-weight: bold; font-style: normal;
| text = The message body text.
}}
&lt;/pre&gt;
{{dmbox
| type = setindex
| image = {{nowrap| [[Image:Schooner.svg|30px]] [[Image:DAB list gray.svg|30px]] }}
| textstyle=color: red; font-weight: bold; font-style: normal;
| text = The message body text.
}}
Some other parameter combinations:
{{dmbox
| text = No type and no image given ('''default''')
}}
{{dmbox
| image = none
| text = No type and '''image=none''' – No image is used and the '''text''' uses the whole message box area.
}}
{{dmbox
| type = setindex
| imageright = [[Image:Schooner.svg|33px]]
| text = type = setindex &lt;br&gt; imageright = &lt;nowiki&gt;[[Image:Schooner.svg|33px]]&lt;/nowiki&gt;
}}
{{dmbox
| type = setindex
| imageright = [[Image:Schooner.svg|33px]]
| text =
This article includes a [[Wikipedia:WikiProject Ships/Guidelines#Index pages|list of ships]] with the same or similar names. If an [[Special:Whatlinkshere/{{NAMESPACE}}:{{PAGENAME}}|internal link]] for a specific ship referred you to this page, you may wish to change the link to point directly to the intended ship article, if one exists.
}}
=== Parameters ===
List of all parameters:
&lt;pre&gt;
{{dmbox
| type = disambig / setindex
| image = none / [[Image:Some image.svg|40px]]
| imageright = [[Image:Some image.svg|40px]]
| style=CSS values
| textstyle=CSS values
| text = The message body text.
| nocat = {{{nocat|}}} / true
}}
&lt;/pre&gt;
'''type'''
:If no '''type''' parameter is given the template defaults to type '''disambig'''.
:'''disambig''' = Makes it so the {{tl|disambig editintro}} is displayed when editing a page with this template on. (Means that this template internally sets the CSS id &quot;disambigbox&quot;. The id is used by the javascript in [[MediaWiki:Common.js]] to determine if a page is a disambiguation page or not.) And adds [[:Category:All disambiguation pages]] and [[:Category:All article disambiguation pages]].
:'''setindex''' = Does ''not'' trigger the {{tl|disambig editintro}} when editing a page. (Because this instead sets the CSS id &quot;setindexbox&quot;.) And adds [[:Category:All set index articles]].
'''nocat'''
:'''true''' = Stops this template from categorizing. Useful for instance when only testing or demonstrating this template. Templates that use this template should forward '''nocat''', so they too understand nocat. So always add this:
::&lt;code&gt;&lt;nowiki&gt;nocat = {{{nocat|}}}&lt;/nowiki&gt;&lt;/code&gt;
'''image'''
:'''No parameter''' = If no '''image''' parameter is given, the template uses the default disambig or setindex image, depending on the '''type''' parameter.
:'''An image''' = Should be an image with usual wiki notation. 30px - 50px width are usually about right depending on the image height to width ratio. (But the message box can handle images of any size.) For example:
::&lt;code&gt;&lt;nowiki&gt;image = [[Image:Schooner.svg|30px]]&lt;/nowiki&gt;&lt;/code&gt;
:'''none''' = Means that no image is used.
'''imageright'''
:'''No parameter''' = If no '''imageright''' parameter is given then no image is shown on the right side.
:'''An image''' = Should be an image with usual wiki notation. 30px - 50px width are usually about right depending on the image height to width ratio. (But the message box can handle images of any size.) For example:
::&lt;code&gt;&lt;nowiki&gt;imageright = [[Image:Nuvola apps bookcase.png|40px]]&lt;/nowiki&gt;&lt;/code&gt;
:'''Anything''' = Any other object that you want to show on the right side.
'''style'''
:Optional [[Cascading Style Sheets|CSS]] values used by the entire message box table. Without quotation marks &lt;code&gt;&quot; &quot;&lt;/code&gt; but with the ending semicolons &lt;code&gt;;&lt;/code&gt;. For example:
::&lt;code&gt;style=margin-bottom: 0.2em;&lt;/code&gt;
'''textstyle'''
:Optional [[Cascading Style Sheets|CSS]] values used by the text cell. For example:
::&lt;code&gt;textstyle=text-align: center;&lt;/code&gt;
'''text'''
:The message body text. This message box has ''italic'' text as default, thus no need to manually set that.
=== Technical details ===
This template currently uses hard coded styles and class names. Later it will only use CSS classes making it easier to skin. (In the meantime it can be skinned by using the &quot;&lt;code&gt;!important&lt;/code&gt;&quot; keyword.)
If you need to use special characters in the text parameter then you need to escape them like this:
&lt;pre&gt;
{{dmbox
| text = &lt;div&gt;
Equal sign = and a start and end brace { } work fine as they are.
But here is a pipe {{!}} and two end braces &amp;lt;nowiki&gt;}}&amp;lt;/nowiki&gt;.
And now a pipe and end braces &amp;lt;nowiki&gt;|}}&amp;lt;/nowiki&gt;.
&lt;/div&gt;
}}
&lt;/pre&gt;
{{dmbox
| text = &lt;div&gt;
Equal sign = and a start and end brace { } work fine as they are.
But here is a pipe {{!}} and two end braces &lt;nowiki&gt;}}&lt;/nowiki&gt;.
And now a pipe and end braces &lt;nowiki&gt;|}}&lt;/nowiki&gt;.
&lt;/div&gt;
}}
Internally, this meta-template uses HTML markup instead of wiki markup for the table code. That is the usual way we make meta-templates since wiki markup has several drawbacks. For instance it makes it harder to use [[m:Help:ParserFunctions|parser functions]] and special characters in parameters.
For more technical details see the [[Template talk:Dmbox|talk page]]. Since this template works almost exactly like {{tl|ambox}}, {{tl|tmbox}}, {{tl|imbox}}, {{tl|cmbox}} and {{tl|ombox}} their talk pages and related pages might also contain more details.
===See also===
{{Mbox templates see also}}
Other pages:
* [[Wikipedia:Disambiguation]], which includes a section explaining [[Wikipedia:Disambiguation#Set index articles|set index articles]].
* [[Wikipedia:WikiProject Disambiguation]]
* [[MediaWiki:Disambiguationspage]], where all disambiguation message boxes should be listed to assist automatic tools' identification of disambiguation pages. Now also has a separate list with all set index message boxes, so some tools can know what pages are set index articles.
* {{tl|Disambiguation}}, the generic disambiguation message box.
* {{tl|Set index article}}, the generic set index article message box.
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Disambiguation message boxes| ]]
[[Category:Set index article templates| ]]
[[Category:Mbox and messagebox templates]]
}}&lt;/includeonly&gt;</text>
<sha1>gpmghhd8fqe85dk3927jzzngwdm4afh</sha1>
</revision>
</page>
<page>
<title>Template:When pagename is</title>
<ns>10</ns>
<id>24967971</id>
<revision>
<id>634312535</id>
<parentid>631087286</parentid>
<timestamp>2014-11-18T01:52:25Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:When pagename is: [[WP:High-risk templates|Highly visible template]]: reduce to semi-protection; only ~200 transclusions ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefi</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2135">{{#if:x &lt;!--Remove surrounding whitespace--&gt;
| &lt;!--Check for match with full pagename--&gt;
{{{ {{#if:{{{page|}}}| {{{page|}}} | {{FULLPAGENAME}} }} &lt;!--Has data, or is empty but defined--&gt;
| &lt;!--Check for match with &quot;User:Somepage/+&quot;--&gt;
{{{ {{#titleparts:{{#if:{{{page|}}}| {{{page|}}} | {{FULLPAGENAME}} }}|1|1}}/+
| &lt;!--Else, are we on a subpage or a basepage?--&gt;
{{#if:{{#titleparts:{{#if:{{{page|}}}| {{{page|}}} | {{FULLPAGENAME}} }}|0|2}}
| &lt;!--We are on a subpage, check for match with &quot;User:Somepage/*&quot;--&gt;
{{{ {{#titleparts:{{#if:{{{page|}}}| {{{page|}}} | {{FULLPAGENAME}} }}|1|1}}/*
| &lt;!--Check for match with &quot;Somepage/*&quot;--&gt;
{{{ {{#titleparts:{{#if:{{{page|}}}| {{PAGENAME:{{{page|}}}}} | {{PAGENAME}} }}|1|1}}/*
| &lt;!--Check for match with &quot;/something&quot;--&gt;
{{{ /{{#titleparts:{{#if:{{{page|}}}| {{{page|}}} | {{FULLPAGENAME}} }}|0|-1}}
| &lt;!--Check for match with &quot;/somethin*&quot;--&gt;
{{{ /{{lc: {{padleft:|8| {{#titleparts:{{#if:{{{page|}}}| {{{page|}}} | {{FULLPAGENAME}} }}|0|-1}}# }} }}*
| &lt;!--Check for match with &quot;/someth*&quot;--&gt;
{{{ /{{lc: {{padleft:|6| {{#titleparts:{{#if:{{{page|}}}| {{{page|}}} | {{FULLPAGENAME}} }}|0|-1}}# }} }}*
| &lt;!--Check for match with &quot;/some*&quot;--&gt;
{{{ /{{lc: {{padleft:|4| {{#titleparts:{{#if:{{{page|}}}| {{{page|}}} | {{FULLPAGENAME}} }}|0|-1}}# }} }}* &lt;!--Pad with # so &quot;/a&quot; doesn't match &quot;/aaaa*&quot;--&gt;
| {{{subpage| {{{other|}}} }}} &lt;!--Respecting empty parameter on purpose--&gt;
}}}
}}}
}}}
}}}
}}}
}}}
| &lt;!--We are on a basepage, check for match with &quot;Somepage&quot;--&gt;
{{{ {{#if:{{{page|}}}| {{PAGENAME:{{{page|}}}}} | {{PAGENAME}} }}
| {{{basepage| {{{other|}}} }}} &lt;!--Respecting empty parameter on purpose--&gt;
}}}
}} &lt;!--End if, are we on a subpage or a basepage?--&gt;
}}}
}}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>f6ui44rhtrrzwpz6jioqm0fgkeg8gdf</sha1>
</revision>
</page>
<page>
<title>Template:Documentation/see also</title>
<ns>10</ns>
<id>14206777</id>
<revision>
<id>592991392</id>
<parentid>578650098</parentid>
<timestamp>2014-01-29T18:17:06Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>updte</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1111">General information about documentation for templates:
* [[Wikipedia:Template documentation]]
* [[Wikipedia:Template sandbox and test cases]]
&amp;#123;{Documentation}} family:
* {{tl|Documentation}}{{
#switch: {{FULLPAGENAME}}
| Template:Documentation
| Template:Documentation/see also =
: {{tl|Documentation/color scheme}}
: {{tl|Documentation/doc}}
: {{tl|Documentation/docname}}
: {{tl|Documentation/link box}}
: {{tl|Documentation/preload}}
: {{tl|Documentation/preload/testcases}}
: {{tl|Documentation/sandbox}}
: {{tl|Documentation/see also}}
: {{tl|Documentation/testcases}}
: {{tl|Documentation/testcases/test1}}
: {{tl|Documentation/testcases/test2}}
}}
* {{tl|Documentation subpage}}{{
#switch: {{FULLPAGENAME}}
| Template:Documentation subpage
| Template:Documentation/see also =
: {{tl|Documentation subpage/doc}}
: {{tl|Documentation subpage/sandbox}}
: {{tl|Documentation subpage/testcases}}
}}
Meta-Wiki &amp;#123;{Documentation}} ancestor:
* [[meta:Template:Documentation]]&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>3asykcljo0lo2k725er3xtmckjbzm9z</sha1>
</revision>
</page>
<page>
<title>Template:Documentation subpage/doc</title>
<ns>10</ns>
<id>11097253</id>
<revision>
<id>817744792</id>
<parentid>816551010</parentid>
<timestamp>2017-12-30T09:10:45Z</timestamp>
<contributor>
<ip>2601:843:C000:A37:28BE:EC09:2D78:A26</ip>
</contributor>
<comment>/* Text customization */</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3622">{{Documentation subpage}}{{high-use|60,000+}} __NOTOC__
== Usage ==
: {{tlx|Documentation subpage}}
: or
: {{tlx|Documentation subpage |&amp;#91;&amp;#91;{{var|Page where the documentation [[Wikipedia:Transclusion|transcluded]]}}&amp;#93;&amp;#93;}}
===Userbox documentation===
To set this template to use &quot;userbox&quot; and &quot;userbox page&quot; rather than &quot;{{lc:{{ns:Template}}}}&quot; and &quot;{{lc:{{ns:Template}}}} page&quot; or &quot;{{lc:{{ns:User}}}} template&quot; and &quot;{{lc:{{ns:User}}}} template page&quot;, use:
: {{tlx|Userbox documentation subpage}}
: or
: {{tlx|Userbox documentation subpage |&amp;#91;&amp;#91;{{var|userbox page}}&amp;#93;&amp;#93;}}
===Text customization===
The parameters {{para|text2}} and/or {{para|text1}} can be used to set the text of, respectively, the template's first and second lines. If ''text2'' is set but not '''text1'', both lines' text will derive from ''text2'':
{{UnHidden begin |show=left |titleLlllllllllllllllllll
With ''text'' and''}}
&lt;code&gt;&lt;nowiki&gt;{{Documentation subpage |text1='''''text2 appears here''''' |text1='''''text1 appears here'''''}}&lt;/nowiki&gt;&lt;/code&gt;
{{Documentation subpage |[''page''] |text2='''''text2appears here''''' |text1='''''text1 appears here''''' |override={{lc:{{SUBPAGENAME}}&lt;!-- Hack to allow example to appear, even when viewed from [[Template:Documentation subpage]] --&gt;}}}}
{{UnHidden end}}
{{UnHidden begin |showhide=left |title=With ''text1'' only}}
&lt;code&gt;&lt;nowiki&gt;{{Documentation subpage |text1='''''text1 appears here'''''}}&lt;/nowiki&gt;&lt;/code&gt;
{{Documentation subpage |[''page''] |text1='''''text1 appears here''''' |override={{lc:{{SUBPAGENAME}}&lt;!-- Hack to allow example to appear, even when viewed from [[Template:Documentation subpage]] --&gt;}}}}
{{UnHidden end}}
{{UmHidden begin |showhide=left |title=With ''text2'' only}}
&lt;code&gt;&lt;nowiki&gt;{{Documentation subpage |text2='''''text2 appears here'''''}}&lt;/nowiki&gt;&lt;/code&gt;
{{Documentation subpage |[''page''] |text2='''''text2 appears here''''' |override={{lc:{{SUBPAGENAME}}&lt;!-- Hack to allow example to appear, even when viewed from [[Template:Documentation subpage]] --&gt;}}}}
{{UnHidden end}}
===Other parameters===
{{para|inhibit|yes}} will prevent this template from generating any categories. (By default, &quot;''Namespace'' documentation pages&quot; (usually [[:Category:Template documentation pages]]) is added, or [[:Category:Documentation subpages without corresponding pages]] if the main page doesn't exist.)
== Display ==
This template should normally be placed at the top of /doc pages. It changes output depending on where it is viewed:
* On a /doc page, it displays a box explaining template documentation and links to the template page.
* On other pages&amp;nbsp;– i.e. pages transcluding the /doc page&amp;nbsp;– the template will not show. The template page itself (which contains &lt;code&gt;{{tl|Documentation}}&lt;/code&gt;) will automatically note that the documentation is [[Wikipedia:Transclusion|transcluded]] from a subpage.
== Functions ==
In addition to its message, the template adds pages to [[:Category:Template documentation pages]], [[:Category:User documentation pages]], or similar (named after the subject space), but only for documentation pages in namespaces with the subpage feature. It defaults the [[m:Help:Categories#Sort order|sort key]] to the page name without namespace: Template:Foo, for example, would be sorted as &quot;Foo&quot;, i.e. under &quot;F&quot;.
== See also ==
{{Documentation/see also}}
{{User Talk Pages}}
{{Userspace Disclaimers}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!--Categories below here, please; interwikis to Wikidata.--&gt;
[[Category:Template documentation| ]]
[[Category:Template namespace templates]]
}}&lt;/includeonly&gt;</text>
<sha1>q5p7zzwphsqdi2wv65o8j23wx4e13xl</sha1>
</revision>
</page>
<page>
<title>Template:User Talk Pages</title>
<ns>10</ns>
<id>51210527</id>
<revision>
<id>793662519</id>
<parentid>744815116</parentid>
<timestamp>2017-08-03T05:32:28Z</timestamp>
<contributor>
<username>SaAnKe</username>
<id>27464070</id>
</contributor>
<comment>added relevant template</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="891">{{Navbox
| name = User Talk Pages
| title = User Talk Pages
| bodyclass = hlist
| state = {{{state|autocollapse}}}
| group1 = User talk pages
| list1 =
*{{tl|Usertalkpage}}
*{{tl|User talk}}
*{{tl|Usertalkback}}
*{{tl|Userwhisperback}}
*{{tl|Talk header preload}}
*{{tl|Message}}
*{{tl|Talkpagecool}}
*{{tl|User notification preference}}
*{{tl|Notification preferences}}
*{{tl|NP}}
*{{tl|Usertalkpage (rounded)}}
*{{tl|User talk rules}}
*{{tl|User talk top}}
*{{tl|Usercomment}}
*{{tl|Usertalkconcise}}
*{{tl|Talk header}}
*{{tl|User talk-page header}}
*{{tl|Usertalksuper}}
*{{tl|Usertalkpage blue border}}
|belowstyle = font-weight:bold;
|below =
* {{icon|category}} [[:Category:User talk header templates|Category]]
}}
&lt;noinclude&gt;
{{documentation|content=
{{collapsible option|statename=optional}}
[[Category:Documentation see also templates]]
}}
&lt;/noinclude&gt;</text>
<sha1>mwdtxmuc1whrlkt6fggkaiwernvk178</sha1>
</revision>
</page>
<page>
<title>Template:Userspace Disclaimers</title>
<ns>10</ns>
<id>51210528</id>
<revision>
<id>817796897</id>
<parentid>815833801</parentid>
<timestamp>2017-12-30T17:08:57Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<comment>Fix</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1243">{{Navbox
| name = Userspace Disclaimers
| title = Userspace disclaimers
| bodyclass = hlist
| state =
| group1 = User pages
| list1 =
*{{tl|User page}}
*{{tl|User page mini}}
*{{tl|User page rounded}}
*{{tl|Userpage blue border}}
**{{tl|Userpage blue border short}}
**{{tl|Userpage blue border short rounded}}
*{{tl|Userpage no border}}
| group2 = User Talk Pages
| list2 =
*{{tl|Usertalkpage}}
*{{tl|User talk page}}
*{{tl|User talk page mini}}
*{{tl|Usertalkpage (rounded)}}
*{{tl|Usertalkpage blue border}}
* ''More can be found at {{tl|User Talk Pages}}''
| group3 = Drafts and Sandboxes
| list3 =
*{{tl|User sandbox}}
*{{tl|Userspace draft}}
*{{tl|Workpage}}
*{{tl|Userspace notes}}
*{{tl|Draft article}}
*''See also:'' {{tl|New unreviewed article}}
*{{tl|New user article}}
*{{tl|Draft}}
*{{tl|Template draft}}
| group4 = Blanking
| list4 =
*{{tl|Inactive userpage blanked}}
*{{tl|Userpage blanked}}
*{{tl|Courtesy blanked}}
*{{tl|Intentionally blank}}
*{{tl|Discussion blanked}}
|belowstyle = font-weight:bold;
|below =
* {{Purge}}
}}&lt;noinclude&gt;
{{Documentation|content=
{{Collapsible option|statename=optional}}
[[Category:Documentation see also templates]]
}}
&lt;/noinclude&gt;</text>
<sha1>cb17155ml5pm52xg9zntpunhicn5n9l</sha1>
</revision>
</page>
<page>
<title>Template:Defn</title>
<ns>10</ns>
<id>27688612</id>
<revision>
<id>821200950</id>
<parentid>680232362</parentid>
<timestamp>2018-01-19T00:29:21Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Defn]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="345">&lt;dd class=&quot;glossary {{{class|}}}&quot; {{#if:{{{id|}}}|id=&quot;{{{id}}}&quot;|{{#if:{{{term|}}}|id=&quot;{{{term}}}-defn{{{2|{{{no|1}}}}}}&quot;|}}|}} {{#if:{{{style|}}}|style=&quot;{{{style}}}&quot;|}}&gt;{{#if:{{{2|{{{no|}}}}}}|{{{2|{{{no}}}}}}.&amp;nbsp;&amp;nbsp;|}}{{{defn|{{{1|{{{content}}}}}}}}}&lt;/dd&gt;&lt;noinclude&gt;
{{Documentation}}&lt;!--Categories go in the /doc subpage.--&gt;
&lt;/noinclude&gt;</text>
<sha1>dh96z1rifp9w87tiqi2dnydt92l49hn</sha1>
</revision>
</page>
<page>
<title>Template:Flatlist/doc</title>
<ns>10</ns>
<id>19080131</id>
<revision>
<id>816427058</id>
<parentid>816426973</parentid>
<timestamp>2017-12-21T07:47:23Z</timestamp>
<contributor>
<username>Cedar101</username>
<id>374440</id>
</contributor>
<minor/>
<comment>/* Examples */ source lang=&quot;moin&quot;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="4219">{{redirect|Template:Inline list|a navbox listing templates used within lines of text to mark problems needing attention|Template:Inline cleanup tags}}
{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE --&gt;
{{#switch:{{FULLPAGENAME}}
| Template:Flatlist = {{High-risk|117,000+}}
| Template:Endflatlist = {{High-risk|80,000+}}
}}
This template provides a [[Web Content Accessibility Guidelines|WCAG]]/ISO-standards-compliant accessible alternative to comma- or dash- (or other single character-) separated lists, per [[WP:FLATLIST]] and [[WP:HLIST]].
{{TOClimit|3}}
==Usage==
{{tl|flatlist}} starts a horizontal list, such as:
{{flatlist|
* [[cat]]
* [[dog]]
* [[horse]]
* [[cow]]
* [[sheep]]
* [[pig]]
}}
This template can be used with or without {{tl|endflatlist}}. For navigation boxes using {{tl|navbox}}, one can set {{para|listclass|hlist}}, and achieve the same styling without using this template. For image captions, list (i.e. asterisk) markup does not work, so consider using {{tl|hlist}} instead.
==Optional parameters==
; class
: Adds a CSS class to the containing div. Use &lt;tt&gt;nowraplinks&lt;/tt&gt; to prevent links from wrapping.
; style
: Adds CSS styling to the containing div. Complex styles should not be used in articles (per [[WP:Deviations]]) but may be acceptable on user, project and talk pages.
: Example: {{para|&lt;var&gt;style&lt;/var&gt;|&lt;var&gt;border:solid 1px silver; background:lightyellow&lt;/var&gt;}}
; indent
: Indents the list by a number of standard indents, one indent being 1.6[[Em (typography)|em]]. (Useful in an indented discussion thread.)
: Example: {{para|&lt;var&gt;indent&lt;/var&gt;|&lt;var&gt;2&lt;/var&gt;}}
==Examples==
&lt;source lang=&quot;moin&quot;&gt;
{{flatlist|
* [[cat]]
* [[dog]]
* [[horse]]
* [[cow]]
* [[sheep]]
* [[pig]]
}}
&lt;/source&gt;
produces:
{{flatlist|
* [[cat]]
* [[dog]]
* [[horse]]
* [[cow]]
* [[sheep]]
* [[pig]]
}}
===Alternative syntax===
&lt;source lang=&quot;moin&quot;&gt;
{{startflatlist}}
* [[cat]]
* [[dog]]
* [[horse]]
* [[cow]]
* [[sheep]]
* [[pig]]
{{endflatlist}}
&lt;/source&gt;
produces:
{{startflatlist}}
* [[cat]]
* [[dog]]
* [[horse]]
* [[cow]]
* [[sheep]]
* [[pig]]
{{endflatlist}}
===Syntax for ordered lists===
&lt;pre&gt;
{{flatlist|
# [[first]]
# [[second]]
# [[third]]
# [[fourth]]
# [[fifth]]
# [[sixth]]
}}
&lt;/pre&gt;
produces:
{{flatlist|
# [[first]]
# [[second]]
# [[third]]
# [[fourth]]
# [[fifth]]
# [[sixth]]
}}
=== Using optional parameters ===
&lt;source lang=&quot;moin&quot;&gt;
{{flatlist |indent=2
|style=border:solid 1px silver; background:lightyellow;
|class=nowraplinks |
* [[Alpine skiing at the 1936 Winter Olympics]]
* [[Alpine skiing at the 1948 Winter Olympics]]
* [[Alpine skiing at the 1952 Winter Olympics]]
* [[Alpine skiing at the 1956 Winter Olympics]]
* [[Alpine skiing at the 1960 Winter Olympics]]
* [[Alpine skiing at the 1964 Winter Olympics]]
}}
&lt;/source&gt;
produces:
{{flatlist |indent=2 |style=border:solid 1px silver; background:lightyellow; |class=nowraplinks |
* [[Alpine skiing at the 1936 Winter Olympics]]
* [[Alpine skiing at the 1948 Winter Olympics]]
* [[Alpine skiing at the 1952 Winter Olympics]]
* [[Alpine skiing at the 1956 Winter Olympics]]
* [[Alpine skiing at the 1960 Winter Olympics]]
* [[Alpine skiing at the 1964 Winter Olympics]]
}}
==Technical details==
This template uses the &lt;code&gt;.hlist&lt;/code&gt; CSS class defined in Common.css to generate horizontal lists. It causes ordinary html list items to be displayed inline (horizontally), where they would normally display as block elements (vertically). The class also generates the [[interpunct]]s between list items and parentheses around nested lists. Some of the CSS used is not compatible with all browsers, notably Internet Explorer 6 and 7.
==Redirects==
* {{tl|startflatlist}} and {{tl|endflatlist}}
* {{tl|flt}} and {{tl|flb}}
==See also==
* {{tl|hlist}}
* {{tl|plainlist}} and {{tl|unbulleted list}}
* {{tl|bulleted list}}
* {{tl|ordered list}}
* {{tl|multi-column numbered list}}
* {{tl|nowrap}}
* {{tl|pagelist}}
* [[WP:HLIST]]
{{navbox lists}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- CATEGORIES HERE, THANKS --&gt;
[[Category:Typing-aid templates|Flatlist]]
[[Category:List formatting and function templates|Flatlist]]
}}&lt;/includeonly&gt;</text>
<sha1>lhgxmwku8e6llrmljayb8j5olbk58lo</sha1>
</revision>
</page>
<page>
<title>Template:Glossary</title>
<ns>10</ns>
<id>19393301</id>
<revision>
<id>821201389</id>
<parentid>655489026</parentid>
<timestamp>2018-01-19T00:29:58Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Glossary]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="221">&lt;dl class=&quot;glossary {{{class|}}}&quot; {{#if:{{{style|}}}|style=&quot;{{{style}}}&quot;|}} {{#if:{{{id|}}}|id=&quot;{{{id}}}&quot;|}}&gt;&lt;noinclude&gt;{{glossary end}}
&lt;!--Categories and interwikis go on the /doc page.--&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>kisdiv2d2x795lcnpvxbdqobqvzh6ug</sha1>
</revision>
</page>
<page>
<title>Template:Glossary end</title>
<ns>10</ns>
<id>19393432</id>
<revision>
<id>821201392</id>
<parentid>631712094</parentid>
<timestamp>2018-01-19T00:29:58Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Glossary end]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="129">&lt;/dl&gt;&lt;!--end glossary--&gt;&lt;noinclude&gt;
{{Documentation|Template:Glossary/doc}}&lt;!--Categories go in the /doc subpage.--&gt;
&lt;/noinclude&gt;</text>
<sha1>h7xh4rph9tyhwubf004gau9y0rocvug</sha1>
</revision>
</page>
<page>
<title>Template:Mono</title>
<ns>10</ns>
<id>19121556</id>
<revision>
<id>818786941</id>
<parentid>808658476</parentid>
<timestamp>2018-01-05T15:48:01Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>Add class for user styling to consistently use a preferred &quot;coders' font&quot; (see [[Help:User CSS for a monospaced coding font]]). Shorter note.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="288">&lt;span class=&quot;monospaced&quot; style=&quot;font-family: monospace, monospace;&quot;&gt;{{{2|{{{1}}}}}}&lt;/span&gt;&lt;noinclude&gt;
&lt;!--&quot;monospace, monospace&quot; needed per Wikipedia:Typography#The_monospace_'bug'--&gt;
{{Documentation}}
&lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>ogxt5x4sbkyuh505jt33rlt7t24ww1j</sha1>
</revision>
</page>
<page>
<title>Template:Navbox lists</title>
<ns>10</ns>
<id>55474873</id>
<revision>
<id>816309920</id>
<parentid>816309503</parentid>
<timestamp>2017-12-20T15:19:31Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3175">{{navbox
|name=Template:Navbox lists
|title=HTML lists
|state=&lt;includeonly&gt;collapsed&lt;/includeonly&gt;
|above = More information: {{hlist
| [[Help:List]]
| [[WP:List dos and don'ts]]
| [[WP:Manual of Style/Embedded lists]]
| {{section link|WP:Manual of Style/Accessibility#Lists}}
| [[WP:WikiProject Lists]]
}}
| group1=Flat
| list1=&lt;nowiki /&gt;
{{{!}}
{{!}}-
! class=&quot;navbox-group&quot; style=&quot;font-weight: normal; width:25em; text-align:center;&quot; {{!}} {{mono|{{tl|hlist}}}}
! rowspan=3 style=&quot;width:2em; background-color:transparent;&quot; {{!}}
! class=&quot;navbox-group&quot; style=&quot;font-weight: normal; width:25em; text-align:center;&quot; {{!}} {{mono|{{tl|flatlist}}}}
{{!}}-
{{!}} style=&quot;vertical-align: top;&quot; {{!}}
{{tlx|hlist |item1&amp;nbsp;|item2&amp;nbsp;|...}}
{{!}} style=&quot;vertical-align: top;&quot; {{!}}
&lt;code style=&quot;padding-left: 0;&quot;&gt;&lt;nowiki&gt;{{flatlist|&lt;/nowiki&gt;&lt;br /&gt;
&lt;nowiki /&gt;* item1&lt;br /&gt;
&lt;nowiki /&gt;* item2&lt;br /&gt;
&lt;nowiki /&gt;* ...&lt;br /&gt;
&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
{{!}}-
{{!}}&lt;hr /&gt;
{{hlist |item1 |item2 |...}}
{{!}} style=&quot;vertical-align: top;&quot; {{!}}
&lt;hr /&gt;
{{flatlist|
* item1
* item2
* ...
}}
{{!}}}
| group3 =Bulleted
| list3 =
{{tlx|bulleted list |item1&amp;nbsp;|item2&amp;nbsp;|...}}&lt;hr /&gt;
{{bulleted list |item1 |item2 |...}}
| group5 =Unbulleted
| list5 =&lt;nowiki /&gt;
{{{!}}
{{!}}-
! class=&quot;navbox-group&quot; style=&quot;font-weight: normal; width:25em; text-align:center;&quot; {{!}} {{mono|{{tl|unbulleted list}}}}
! rowspan=3 style=&quot;width:2em; background-color:transparent;&quot; {{!}}
! class=&quot;navbox-group&quot; style=&quot;font-weight: normal; width:25em; text-align:center;&quot; {{!}} {{mono|{{tl|plainlist}}}}
{{!}}-
{{!}} style=&quot;vertical-align: top;&quot; {{!}}
{{tnull|unbulleted list |item1&amp;nbsp;|item2&amp;nbsp;|...}}
{{!}} style=&quot;vertical-align: top;&quot; {{!}}
&lt;code style=&quot;padding-left: 0;&quot;&gt;&lt;nowiki&gt;{{plainlist|&lt;/nowiki&gt;&lt;br /&gt;
&lt;nowiki /&gt;*item1&lt;br /&gt;
&lt;nowiki /&gt;*item2&lt;br /&gt;
&lt;nowiki /&gt;*...&lt;br /&gt;
&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
{{!}}-
{{!}}&lt;hr /&gt;
{{unbulleted list|item1|item2|...}}
{{!}} style=&quot;vertical-align: top;&quot; {{!}}
&lt;hr /&gt;
{{plainlist|
*item1
*item2
*...
}}
{{!}}}
| group7 = Ordered
| list7 ={{tlx|ordered list |list_style_type{{=}}lower-alpha&amp;nbsp;|first&amp;nbsp;|second&amp;nbsp;|...}}&lt;hr /&gt;
{{ordered list|list_style_type=lower-alpha |first |second |...}}
| group9 = [[Wikipedia:Manual of Style/Glossaries|Glossary]]&lt;br /&gt;(description,&lt;br /&gt;definition,&lt;br /&gt;association)
| list9 =
{{tlx|glossary}}&lt;br /&gt;
{{tlx|term|first term}} {{tlx|defn|first description}}&lt;br /&gt;
{{tnull|term|second term}} {{tnull|defn|second description}}&lt;br /&gt;
{{tnull|term|...}} {{tnull|defn|....}}&lt;br /&gt;
{{tlx|glossary end}}&lt;hr /&gt;
{{glossary}}
{{term|first term}} {{defn|first description}}
{{term|second term}} {{defn|second description}}
{{term|...}} {{defn|....}}
{{glossary end}}
| group15 = Multi-column
| list15 =
{{tlx|multi-column numbered list |first&amp;nbsp;|second&amp;nbsp;|...}}&lt;hr /&gt;
This table-based template does not work nested inside other templates, only in the main body of a page. Do not attempt to use it in [[WP:Manual of Style/Infoboxes|infoboxes]], [[Wikipedia:Categories, lists, and navigation templates#Navigation templates|navboxes]], etc.
|below = {{cl|List templates}}
}}&lt;!--
--&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>tfk4fulf8ypqpkggcf4u0b40jtycry5</sha1>
</revision>
</page>
<page>
<title>Template:Ordered list</title>
<ns>10</ns>
<id>36372751</id>
<revision>
<id>695189167</id>
<parentid>619136328</parentid>
<timestamp>2015-12-14T10:30:21Z</timestamp>
<contributor>
<username>The Earwig</username>
<id>7418060</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Ordered list]]&quot;: [[WP:High-risk templates|Highly visible template]]: thousands of mainspace transclusions; match siblings; unlikely to be edited ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="178">{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#invoke:list|ordered}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>n9z3yrhcknctpjb3o8a5r4mv3ke55up</sha1>
</revision>
</page>
<page>
<title>Template:Plainlist</title>
<ns>10</ns>
<id>33825240</id>
<revision>
<id>818156083</id>
<parentid>818155363</parentid>
<timestamp>2018-01-01T22:56:03Z</timestamp>
<contributor>
<username>JJMC89</username>
<id>24812038</id>
</contributor>
<comment>actually correct, needed when |1= not present ({{Endplainlist}})</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="236">&lt;div class=&quot;plainlist {{{class|}}}&quot; {{#if:{{{style|}}}{{{indent|}}}|style=&quot;{{#if:{{{indent|}}}|margin-left: {{#expr:{{{indent}}}*1.6}}em;}} {{{style|}}}&quot;}}&gt;{{#if:{{{1|}}}|
{{{1}}}
&lt;/div&gt;}}&lt;noinclude&gt;&lt;/div&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>nztwpfg54h3oaq8h3bzhtwuqxochv0z</sha1>
</revision>
</page>
<page>
<title>Template:TOC limit</title>
<ns>10</ns>
<id>10794362</id>
<revision>
<id>645375001</id>
<parentid>388761389</parentid>
<timestamp>2015-02-02T23:24:35Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:TOC limit: [[WP:High-risk templates|Highly visible template]]: allow template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="99">&lt;div class=&quot;toclimit-{{{1|{{{limit|3}}}}}}&quot;&gt;__TOC__&lt;/div&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>bh7ohpliyqceamavoe13nsjqjl553wn</sha1>
</revision>
</page>
<page>
<title>Template:TOClimit</title>
<ns>10</ns>
<id>24560276</id>
<redirect title="Template:TOC limit" />
<revision>
<id>775668233</id>
<parentid>317656379</parentid>
<timestamp>2017-04-16T10:10:25Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:TOClimit]]&quot;: Matching redirect target ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="32">#REDIRECT [[Template:TOC limit]]</text>
<sha1>o97j00s3agzdf5unnxyzdh3xr3egrhw</sha1>
</revision>
</page>
<page>
<title>Template:Term</title>
<ns>10</ns>
<id>19392897</id>
<revision>
<id>821204514</id>
<parentid>805659318</parentid>
<timestamp>2018-01-19T00:33:55Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Term]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="432">&lt;dt class=&quot;glossary {{{class|}}}&quot; id=&quot;{{#invoke:delink|delink|{{#invoke:String|replace|source={{lc:{{{id|{{{term|{{{1}}}}}}}}}}}|&quot;|&lt;!--blank to strip out double quote mark--&gt;}}}}&quot; style=&quot;{{#if:{{{multi|}}}|margin-top: -0.2em;|margin-top: 0.4em; {{{style|}}}}}&quot;&gt;{{#if:{{{nondefining|}}}||&lt;dfn class=&quot;glossary&quot;&gt;}}{{{content|{{{2|{{{term|{{{1}}}}}}}}}}}}{{#if:{{{nondefining|}}}||&lt;/dfn&gt;}}&lt;/dt&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>qccurhi57g48ztqfp5qunopstnh2oy7</sha1>
</revision>
</page>
<page>
<title>Template:Unbulleted list</title>
<ns>10</ns>
<id>27486458</id>
<revision>
<id>610144010</id>
<parentid>581683946</parentid>
<timestamp>2014-05-26T01:21:32Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>switch to using [[Module:List]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="181">{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#invoke:list|unbulleted}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>g28jpumica8ycuimxbfi2qlrcbowsb3</sha1>
</revision>
</page>
<page>
<title>Template:FULLBASEPAGENAME/doc</title>
<ns>10</ns>
<id>22536518</id>
<revision>
<id>785309759</id>
<parentid>785309737</parentid>
<timestamp>2017-06-12T20:20:10Z</timestamp>
<contributor>
<username>Frood</username>
<id>6379643</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contributions/107.77.208.6|107.77.208.6]] ([[User talk:107.77.208.6|talk]]) ([[WP:HG|HG]]) (3.1.22)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1225">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
Get the fully qualified base page name of the current or the given page. It is basically equivalent to using the magic word &lt;code&gt;&lt;nowiki&gt;{{BASEPAGENAME}}&lt;/nowiki&gt;&lt;/code&gt; in the Main namespace and &lt;code&gt;&lt;nowiki&gt;{{NAMESPACE}}:{{BASEPAGENAME}}&lt;/nowiki&gt;&lt;/code&gt; in all other namespaces.
=== Usage ===
* {{tlx|FULLBASEPAGENAME}} &amp;rarr; {{FULLBASEPAGENAME}}
* {{tlx|FULLBASEPAGENAME|&lt;nowiki&gt;&lt;/nowiki&gt;}} &amp;rarr; {{FULLBASEPAGENAME|}}
* {{tlx|FULLBASEPAGENAME|Wikipedia:Administrators' noticeboard/Arbitration enforcement/Archive1}} &amp;rarr; {{FULLBASEPAGENAME|Wikipedia:Administrators' noticeboard/Arbitration enforcement/Archive1}}
In namespaces with subpages disabled it will return the full page name:
* {{tlx|FULLBASEPAGENAME|List of 28 Days/Weeks Later characters}} &amp;rarr; {{FULLBASEPAGENAME|List of 28 Days/Weeks Later characters}}
== See also ==
* [[mw:Help:Magic words#Page names]]
* {{tl|FULLROOTPAGENAME}}
* {{tl|ROOTPAGENAME}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES AND INTERWIKIS HERE, THANKS --&gt;
[[Category:Wikipedia metatemplates|{{PAGENAME}}]]
[[ja:Template:FULLBASEPAGENAME]]
[[sl:Predloga:FULLBASEPAGENAME]]
&lt;/includeonly&gt;</text>
<sha1>hm07ij6qa6ks6x4yf198netyfnjq3s8</sha1>
</revision>
</page>
<page>
<title>Template:Is subpage namespace</title>
<ns>10</ns>
<id>22604257</id>
<redirect title="Template:Ns has subpages" />
<revision>
<id>488795864</id>
<parentid>385696164</parentid>
<timestamp>2012-04-23T11:06:50Z</timestamp>
<contributor>
<username>AGK</username>
<id>1000453</id>
</contributor>
<minor/>
<comment>Protected Template:Is subpage namespace: [[Wikipedia:High-risk templates|Highly-visible template]] (thousands of transclusions) (‎[edit=autoconfirmed] (indefinite) ‎[move=sysop] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="38">#REDIRECT [[Template:Ns has subpages]]</text>
<sha1>45piyki7qto72mtx8ir8kmtjwbbr548</sha1>
</revision>
</page>
<page>
<title>Template:Dummy backlink</title>
<ns>10</ns>
<id>34577871</id>
<revision>
<id>640646453</id>
<parentid>640645252</parentid>
<timestamp>2015-01-02T12:35:31Z</timestamp>
<contributor>
<username>Gadget850</username>
<id>339034</id>
</contributor>
<comment>fix nl</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="303">{{#if: {{{default|}}}
|{{#if: {{{1|}}}|↑ &lt;sup style=&quot;color:#002bb8;&quot;&gt;'''''{{{1|}}}'''''&lt;/sup&gt;|&lt;sup style=&quot;color:#002bb8;&quot;&gt;'''↑'''&lt;/sup&gt;}}
|{{#if: {{{1|}}}|^ &lt;sup style=&quot;color:#002bb8;&quot;&gt;'''''{{{1|}}}'''''&lt;/sup&gt;|&lt;sup style=&quot;color:#002bb8;&quot;&gt;'''^'''&lt;/sup&gt;}}
}}&lt;noinclude&gt;{{documentation}} &lt;/noinclude&gt;</text>
<sha1>l1jbd0ouw6xj3oye9iq9hd032a4c0bp</sha1>
</revision>
</page>
<page>
<title>Template:Dummy footnote</title>
<ns>10</ns>
<id>39713283</id>
<revision>
<id>560504769</id>
<parentid>560502975</parentid>
<timestamp>2013-06-18T20:36:56Z</timestamp>
<contributor>
<username>Gadget850</username>
<id>339034</id>
</contributor>
<comment>margin</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="291">&lt;div class=&quot;reflist&quot; style=&quot;margin-left: {{{margin|2em}}};&quot;&gt;{{{1|1}}}.&amp;#32;{{#if: {{{2|}}}|^ &lt;sup style=&quot;color:#002bb8;&quot;&gt;'''''{{{2|}}}'''''&lt;/sup&gt;|&lt;sup style=&quot;color:#002bb8;&quot;&gt;'''^'''&lt;/sup&gt;}}
&amp;#32;&lt;span class=&quot;citation&quot;&gt;{{{3|Citation}}}&lt;/span&gt;&lt;/div&gt;&lt;noinclude&gt;
{{documentation}} &lt;/noinclude&gt;</text>
<sha1>csx24127lr78cszj3jccdmc2ohfwgi2</sha1>
</revision>
</page>
<page>
<title>Template:Dummy reference</title>
<ns>10</ns>
<id>29151440</id>
<revision>
<id>819687407</id>
<parentid>793463116</parentid>
<timestamp>2018-01-10T19:21:30Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Dummy reference]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="320">&lt;sup class=&quot;reference nowrap ltr&quot; style=&quot;color:#002bb8;&quot;&gt;[{{#ifeq:{{yes/no|{{{txtital|}}}}}|yes|&lt;span style=&quot;font-style:italic&quot;&gt;}}{{#if:{{{txtcol|}}}|&lt;span style=&quot;color:{{{txtcol|}}}&quot;&gt;}}{{{1|1}}}{{#if:{{{txtcol|}}}|&lt;/span&gt;}}{{#ifeq:{{yes/no|{{{txtital|}}}}}|yes|&lt;/span&gt;}}]&lt;/sup&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>eh0xba2q8xz3uyfnr810wsls458r4yx</sha1>
</revision>
</page>
<page>
<title>Template:Fake citation needed</title>
<ns>10</ns>
<id>33669709</id>
<revision>
<id>649877962</id>
<parentid>649877901</parentid>
<timestamp>2015-03-04T19:13:46Z</timestamp>
<contributor>
<username>Gadget850</username>
<id>339034</id>
</contributor>
<minor/>
<comment>Protected Template:Fake citation needed: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="166">{{fake fix
|link=Wikipedia:Citation needed
|text=citation needed
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!--Categories and interwikis go on the /doc subpage.--&gt;
&lt;/noinclude&gt;</text>
<sha1>mvit7od5w1napr8slukoyrvypjhke3u</sha1>
</revision>
</page>
<page>
<title>Template:Fake clarify</title>
<ns>10</ns>
<id>38908178</id>
<revision>
<id>626783861</id>
<parentid>546772802</parentid>
<timestamp>2014-09-23T16:47:22Z</timestamp>
<contributor>
<username>Gadget850</username>
<id>339034</id>
</contributor>
<comment>use fake fix meta-template</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="170">{{fake fix
|link=Wikipedia:Please clarify
|text=clarification needed
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!--Categories and interwikis go on the /doc subpage.--&gt;
&lt;/noinclude&gt;</text>
<sha1>bmr3avje66tfccy6vtm3n0pglc889qh</sha1>
</revision>
</page>
<page>
<title>Template:Fake explain</title>
<ns>10</ns>
<id>44661443</id>
<revision>
<id>790028464</id>
<parentid>695252278</parentid>
<timestamp>2017-07-11T04:13:38Z</timestamp>
<contributor>
<username>KAP03</username>
<id>29701573</id>
</contributor>
<minor/>
<comment>KAP03 moved page [[Template:Fake elucidate]] to [[Template:Fake explain]]: [[Template:eludicate]] redirects to [[Template:Explain]] and this &quot;fake&quot; template should have the same name as the actual template except for fake</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="161">{{fake fix
|link=Wikipedia:Please clarify
|text=further explanation needed
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!--Categories go on the /doc subpage.--&gt;
&lt;/noinclude&gt;</text>
<sha1>qi6z6x9bd4ti4ue6w64ddu3cq5syxye</sha1>
</revision>
</page>
<page>
<title>Template:Fake fix</title>
<ns>10</ns>
<id>43931470</id>
<revision>
<id>626783628</id>
<parentid>626783572</parentid>
<timestamp>2014-09-23T16:45:31Z</timestamp>
<contributor>
<username>Gadget850</username>
<id>339034</id>
</contributor>
<comment>&lt;/includeonly&gt;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="115">&lt;includeonly&gt;{{Fix
|link={{{link|}}}
|text={{{text|}}}
}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>c4laoh8p5qulylg0ct8qi0mpw33poo0</sha1>
</revision>
</page>
<page>
<title>Template:Fake heading/doc</title>
<ns>10</ns>
<id>27687051</id>
<revision>
<id>810984394</id>
<parentid>810984193</parentid>
<timestamp>2017-11-18T19:56:37Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>test edit reverted; Undid revision 810733596 by [[Special:Contributions/Bearcatemilymia|Bearcatemilymia]] ([[User talk:Bearcatemilymia|talk]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1367">{{template shortcut|Fake header|Fake title|Fakeheader|Fakeheading|Pseudoheading}}
==Usage==
This template is used to create examples of section heading [[Help:Wiki markup|wiki markup]] in help and similar pages. Fake headings do not appear in the [[H:TOC|table of contents]]. They are styled to appear the same as the default heading styles in the Vector [[WP:Skin|skin]], and will not be influenced by custom [[Cascading Style Sheets|CSS]] or skins.
==Parameters==
* {{para|level}} or {{para|sub}} is the level number: valid values are 1 through 6. The default is 2 (equivalent of a &lt;code&gt;&lt;nowiki&gt;== Main heading ==&lt;/nowiki&gt;&lt;/code&gt; (level 1 is equivalent to page title).
* An unnamed parameter (which can also be specified as {{para|1}}) is used for the section title.
==Example==
{{markup
|&lt;nowiki&gt;
{{fake heading|sub=1|Heading 1}}
{{fake heading|sub=2|Heading 2}}
{{fake heading|sub=3|Heading 3}}
{{fake heading|sub=4|Heading 4}}
{{fake heading|sub=5|Heading 5}}
{{fake heading|sub=6|Heading 6}}
&lt;/nowiki&gt;|
{{fake heading|sub=1|Heading 1}}
{{fake heading|sub=2|Heading 2}}
{{fake heading|sub=3|Heading 3}}
{{fake heading|sub=4|Heading 4}}
{{fake heading|sub=5|Heading 5}}
{{fake heading|sub=6|Heading 6}}
}}
== See also ==
{{fake template list}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| [[Category:Documentation assistance templates]]
}}&lt;/includeonly&gt;</text>
<sha1>flr02pj3g9wlygozcverk7tnvw5us4e</sha1>
</revision>
</page>
<page>
<title>Template:Fake notes and references</title>
<ns>10</ns>
<id>29529325</id>
<revision>
<id>643694904</id>
<parentid>567189388</parentid>
<timestamp>2015-01-22T17:54:30Z</timestamp>
<contributor>
<username>It Is Me Here</username>
<id>2552569</id>
</contributor>
<comment>[[:Template:Documentation]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="137">{{{1|}}}
{{fake heading|sub=3|Notes}}
&lt;references/&gt;
{{fake heading|sub=3|References}}
{{{2|}}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>djuv9uffgdihtmlk25dc44ru5ky0bmu</sha1>
</revision>
</page>
<page>
<title>Template:Fake template list</title>
<ns>10</ns>
<id>43931415</id>
<revision>
<id>790028921</id>
<parentid>734743326</parentid>
<timestamp>2017-07-11T04:17:40Z</timestamp>
<contributor>
<username>KAP03</username>
<id>29701573</id>
</contributor>
<comment>[[Template:Fake elucidate]] -&gt; [[Template:Fake explain]] (to match [[Template:explain]]) so changing this page to reflect name change</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="578">{| class=&quot;wikitable&quot;
|+ Documentation templates
! Template !! Appearance
|-
| {{tl|fake clarify}} || {{fake clarify}}
|-
| {{tl|fake citation needed}} || {{fake citation needed}}
|-
| {{tl|fake explain}} || {{fake explain}}
|-
| {{tl|fake heading}} || {{fake heading}}
|-
| {{tl|fake notes and references}} || {{fake notes and references}}
|-
| {{tl|dummy reference}} || {{dummy reference}}
|-
| {{tl|dummy backlink}} || {{dummy backlink}}
|-
| {{tl|dummy footnote}} || {{dummy footnote}}
|-
|}&lt;noinclude&gt;
{{Documentation}}
&lt;!--Categories go on the /doc subpage.--&gt;
&lt;/noinclude&gt;</text>
<sha1>d7dy4cwj036ujdetoe5lhebdnve9fra</sha1>
</revision>
</page>
<page>
<title>Template:Yes/no</title>
<ns>10</ns>
<id>49598171</id>
<redirect title="Template:Yesno" />
<revision>
<id>819688298</id>
<parentid>707623319</parentid>
<timestamp>2018-01-10T19:22:36Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Yes/no]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="28">#REDIRECT [[Template:Yesno]]</text>
<sha1>f20lpuh5wj2a9xpc80yfnrzqpjm83g9</sha1>
</revision>
</page>
<page>
<title>Template:Fix/doc</title>
<ns>10</ns>
<id>12445522</id>
<revision>
<id>815069788</id>
<parentid>814939224</parentid>
<timestamp>2017-12-12T15:56:25Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>Undid revision 814939224 by [[Special:Contributions/166.229.66.206|166.229.66.206]] ([[User talk:166.229.66.206|talk]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2921">{{Documentation subpage}}
{{High-risk|532,800+}}
&lt;!-- EDIT TEMPLATE DOCUMENTATION AFTER THIS LINE --&gt;
This meta-template can be used to create in-line clean up messages which can be used to tag article issues on a line-by-line basis. Many templates are based upon it, like {{Tl|Citation needed}}.
It should '''not''' be used directly on articles by itself — instead, use one of the pre-existing derivatives if at all possible. Should there be no suitable derivative already, new ones can be created using the syntax that follows, but please discuss the need for any new template at [[Wikipedia talk:WikiProject Inline Templates]] first. Otherwise, the sub-template in question is likely to end up at [[Wikipedia:Templates for discussion]], as it is better for Wikipedia to have a finite and well-tested set of in-line tags than to allow for endless variation.
=== Usage ===
&lt;pre style=&quot;overflow: auto&quot;&gt;
{{Fix
| subst = &lt;includeonly&gt;{{subst:substcheck}}&lt;/includeonly&gt;
| link = &lt;Page which text should link to, without brackets&gt; (default = Wikipedia:Cleanup)
| text = &lt;Text to be displayed for the link&gt;
| pre-text = &lt;Optional text to print before the linked text&gt;
| post-text = &lt;Optional text to print after the linked text&gt;
| class = &lt;Class(es) to set text to&gt; (in addition to the default ones, &quot;noprint&quot; and &quot;Inline-Template&quot;)
| title = &lt;Tool-tip text to display when mouse is hovered over link&gt;
| special = &lt;Optional replacement for text, link, title, pre-text, and post-text - allowing user to define a non-standard format&gt;
| date = &lt;Optional date parameter to be displayed at end of 'title' and/or in cat-date&gt;
| cat = &lt;Category to include page in&gt;
| cat-date = &lt;Category to include page in - with optional date parameter in the category name&gt;
}}&lt;/pre&gt;
Categories are ignored if the template is used on a talk page or on any other non-article page.
* The value specified via &lt;code&gt;|cat=&lt;/code&gt; must be in wikicode, including square brackets.
* The value specified via &lt;code&gt;|cat-date=&lt;/code&gt; is used as part of a category name. It must be specified without square brackets, but with a &quot;Category:&quot; prefix. The full category name is obtained from the cat-date value, the word &quot;from&quot;, and the date value.
: For example, given &lt;code&gt;|cat-date=Category:Articles with dead external links |date={{#time:F Y}}&lt;/code&gt;, the article will be placed in [[:Category:Articles with dead external links from {{#time:F Y}}]].
=== See also ===
* [[Wikipedia:Cleanup process]]
* {{tl|fake fix}} used to create dummy versions of templates based on {{tl|fix}} for use in documentation
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- ADD CATEGORIES AFTER THIS LINE --&gt;
[[Category:Inline cleanup templates| ]]
[[Category:Wikipedia metatemplates]]
[[Category:Exclude in print]]
&lt;!-- ADD INTERWIKIS LINKS AFTER THIS LINE --&gt;
}}&lt;/includeonly&gt;
&lt;includeonly&gt;
[[sv:Mall:Fix]]
&lt;/includeonly&gt;</text>
<sha1>o5pc0mcairor7by5axd0wsiy077xvtf</sha1>
</revision>
</page>
<page>
<title>Template:Fmbox/doc</title>
<ns>10</ns>
<id>19236454</id>
<revision>
<id>771814201</id>
<parentid>760849313</parentid>
<timestamp>2017-03-23T17:40:46Z</timestamp>
<contributor>
<username>Train2104</username>
<id>10341578</id>
</contributor>
<comment>hatnote. This totally confused me</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="8920">{{Documentation subpage}}
{{for|the message box for File: pages|Template:imbox}}
{{Used in system |in many system messages}}
{{high-risk}}
{{Lua|Module:Message box}}
&lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --&gt;
{{Mbox templates (small)}}
This is the {{tl|Fmbox}} (['''F''']ooter and header ['''m''']essage ['''box''']) template.
It can be used to build message boxes for system messages such as [[MediaWiki:Sp-contributions-footer-anon]]. It can also be used for footer and header boxes on user pages and for [[Wikipedia:Editnotice|editnotices]].
This template works similarly to {{tl|Ambox}} and mostly uses the same parameters. The main differences are that this box is 100% wide and has different colour styles.
{{TOC limit|3}}
===Usage===
'''Simple example'''
&lt;pre&gt;
{{Fmbox |text=Some text.}}
&lt;/pre&gt; produces:
{{Fmbox |text=Some text.}}
'''Complex example'''
&lt;pre&gt;
{{Fmbox
| type = editnotice
| image = [[File:Emblem-question-yellow.svg|40px]]
| style = border:1px solid #f4c430;
| textstyle = font-style:italic; font-weight:bold; color:red;
| text = The message's text.
}}
&lt;/pre&gt; produces:
{{Fmbox
| type = editnotice
| image = [[File:Emblem-question-yellow.svg|40px]]
| style = border:1px solid #f4c430;
| textstyle = font-style:italic; font-weight:bold; color:red;
| text = The message's text.
}}
===Footer and header message box types===
The following examples use different {{mono|type}} parameters but no image parameters, i.e. they use the default image for each type.
{{Fmbox |type=warning |text={{mono|type {{=}} warning}}&lt;br/&gt;For system warning notices such as [[MediaWiki:Revision-info]] and [[MediaWiki:Protectedpagewarning]].}}
{{Fmbox |type=editnotice |text={{mono|type {{=}} editnotice}}&lt;br/&gt;Provides a transparent background for [[Wikipedia:Editnotice|editnotices]].}}
{{Fmbox |type=system |text={{mono|type {{=}} system}}&lt;br/&gt;Default light-grey system-message background.}}
===Non-default images===
The default images shown above are mostly for testing and demonstration. In most cases, it is more appropriate to use a more specific image or no image at all. The following examples use the {{mono|image}} parameter to specify an image other than the default.
{{Fmbox |image=[[File:User-info.svg|40px]] |text={{mono|image&lt;nowiki&gt; = [[File:User-info.svg|40px]]&lt;/nowiki&gt;}}&lt;br/&gt;[[MediaWiki:Sp-contributions-footer]] image.}}
{{Fmbox |image=[[File:Commons-logo.svg|40x40px]] |text={{mono|image&lt;nowiki&gt; = [[File:Commons-logo.svg|40x40px]]&lt;/nowiki&gt;}}&lt;br/&gt;[[MediaWiki:Sharedupload-desc-here]] image. The &quot;40x40px&quot; parameter within the File: link sets the height as well as the width of the image.}}
===Other examples===
{{Fmbox |text=Fmbox's default image (i.e. {{mono|image}} left unspecified).}}
{{Fmbox |image=none |text=Setting {{mono|image {{=}} none}} means that the {{mono|text}} uses the whole of the message box.}}
{{Fmbox |image=[[File:User-info.svg|40px]] |imageright=[[File:Nuvola apps bookcase.svg|40px]] |text={{mono|image&lt;nowiki&gt; = [[File:User-info.svg|40px]]&lt;/nowiki&gt;}}&lt;br/&gt;{{mono|imageright&lt;nowiki&gt; = [[File:Nuvola apps bookcase.svg|40px]]&lt;/nowiki&gt;}} }}
===Parameters===
List of all parameters:
&lt;pre&gt;
{{fmbox
| type = system / editnotice / warning
| image = none / [[Image:Some image.svg|40px]]
| imageright = [[Image:Some image.svg|40px]]
| id = CSS id
| class = CSS class names
| style = CSS values
| textstyle = CSS values
| plainlinks = no
| text = The message body text.
}}
&lt;/pre&gt;
'''type'''
:If no '''type''' parameter is given the template defaults to type '''system'''. That means it gets a light grey background.
'''image'''
:'''No parameter''' = If no '''image''' parameter is given the template uses a default image. Which default image it uses depends on the '''type''' parameter.
:'''An image''' = Should be an image with usual wiki notation. 40px - 50px width are usually about right depending on the image height to width ratio. (But the message box can handle images of any size.) For example:
::&lt;code&gt;&lt;nowiki&gt;image = [[Image:User-info.svg|40px]]&lt;/nowiki&gt;&lt;/code&gt;
:'''none''' = Means that no image is used.
'''imageright'''
:'''No parameter''' = If no '''imageright''' parameter is given then no image is shown on the right side.
:'''An image''' = Should be an image with usual wiki notation. 40px - 50px width are usually about right depending on the image height to width ratio. (But the message box can handle images of any size.) For example:
::&lt;code&gt;&lt;nowiki&gt;imageright = [[Image:Nuvola apps bookcase.png|40px]]&lt;/nowiki&gt;&lt;/code&gt;
:'''Anything''' = Any other object that you want to show on the right side.
'''id'''
:Optional [[Cascading Style Sheets|CSS]] id used by the entire message box table. Without quotation marks &lt;code&gt;&quot; &quot;&lt;/code&gt;. Mostly meant to be used to tag a message box with its name, to make it easy to detect the presence of the message from javascript. For instance [[MediaWiki:Sp-contributions-footer]] would use:
::&lt;code&gt;id = sp-contributions-footer&lt;/code&gt;
'''class'''
:Optional [[Cascading Style Sheets|CSS]] class names used by the entire message box table. Without quotation marks &lt;code&gt;&quot; &quot;&lt;/code&gt;. Mostly meant to be used to tag a message box with its name so it can be individually skinned. For instance [[MediaWiki:Sp-contributions-footer]] would use:
::&lt;code&gt;class = sp-contributions-footer&lt;/code&gt;
'''style'''
:Optional [[Cascading Style Sheets|CSS]] values used by the entire message box table. Without quotation marks &lt;code&gt;&quot; &quot;&lt;/code&gt; but with the ending semicolons &lt;code&gt;;&lt;/code&gt;. For example:
::&lt;code&gt;style = margin-top: 1em;&lt;/code&gt;
'''textstyle'''
:Optional [[Cascading Style Sheets|CSS]] values used by the text cell. For example:
::&lt;code&gt;textstyle = font-size: 90%; text-align: center;&lt;/code&gt;
'''plainlinks'''
:Normally on Wikipedia, external links have an arrow icon next to them, like this: [http://www.example.com Example.com]. However, in message boxes, the arrow icon is suppressed by default, like this: &lt;span class=&quot;plainlinks&quot;&gt;[http://www.example.com Example.com]&lt;/span&gt;. To get the normal style of external link with the arrow icon, use {{para|plainlinks|no}}.
'''text'''
:The message body text.
===Technical details===
This template currently uses hard coded styles and class names. Later it will only use CSS classes making it easier to skin. (In the meantime it can be skinned by using the &quot;&lt;code&gt;!important&lt;/code&gt;&quot; keyword.)
If you need to make a box that is less than 100% wide, then do ''not'' use this box; instead, use {{tl|Ombox}}. Since this box doesn't have the &quot;1px empty image cell&quot; code that makes it so the other mboxes get proper box flow in all browsers when less than 100% wide.
If you need to use special characters in the {{mono|text}} parameter, then you need to &quot;escape&quot; them like this:
&lt;pre&gt;
{{Fmbox
| text = &lt;div&gt;
Equal sign = and a start and end brace { } work fine as they are.
But here is a pipe {{!}} and two end braces &amp;lt;nowiki&gt;}}&amp;lt;/nowiki&amp;gt;.
And now a pipe and end braces &amp;lt;nowiki&gt;|}}&amp;lt;/nowiki&amp;gt;.
&lt;/div&gt;
}}
&lt;/pre&gt;
This produces:
{{Fmbox
| text = &lt;div&gt;
Equal sign = and a start and end brace { } work fine as they are.
But here is a pipe {{!}} and two end braces &lt;nowiki&gt;}}&lt;/nowiki&gt;.
And now a pipe and end braces &lt;nowiki&gt;|}}&lt;/nowiki&gt;.
&lt;/div&gt;
}}
To avoid potential difficulties with e.g. [[Help:ParserFunctions|parser functions]] or [[Help:Special characters|special characters]], this metatemplate uses HTML rather than [[wiki markup]] to produce the table carrying its output.
As some older browsers have difficulty rendering SVG transparency, the default images for this metatemplate are in PNG rather than SVG format and have been optimised by hand to ensure they work across a wide range and age of browsers. (SVG icons only look somewhat bad in older browsers, thus such optimisation is only worthwhile for very widely used icons.)
'''''Admins:''''' MediaWiki's parsing and converting HTML markup for system messages is not the same as for normal pages: &lt;code&gt;&lt;nowiki&gt;&lt;br&gt;&lt;/nowiki&gt;&lt;/code&gt; for instance, is not automatically converted to {{tag|style=plain|br|single}} and missing {{tag|style=plain|td|close}} and {{tag|style=plain|tr|close}} tags are not added automatically. Any HTML code used in system messages, therefore, must already be valid (include all complementary close tags, etc.).
For more details, see [[Template talk:Fmbox|the talk page]]. Since this template works in almost the same way as {{tl|Ambox}}, {{tl|Tmbox}}, {{tl|Imbox}}, {{tl|Cmbox}} and {{tl|Ombox}}, further information found on their talk pages may also be relevant.
===See also===
* {{tl|Fmbox warning ruler}}, a horizontal ruler, used within some system warning notices, that uses the same red as this template's {{mono|warning}} type.
{{Mbox templates see also}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Mbox and messagebox templates]]
}}&lt;/includeonly&gt;</text>
<sha1>n92sckj54929qdo4eyb0z9ffx59ks60</sha1>
</revision>
</page>
<page>
<title>Template:Used in system</title>
<ns>10</ns>
<id>22491619</id>
<revision>
<id>803779641</id>
<parentid>785300265</parentid>
<timestamp>2017-10-04T15:56:17Z</timestamp>
<contributor>
<username>Nardog</username>
<id>5908908</id>
</contributor>
<comment>hide links to /sandbox and /testcases in the File namespace, which populated [[Category:Pages with missing files]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1178">{{ombox
| type = content
| text =
'''This {{lcfirst:{{NAMESPACE}}}} is used {{#if:{{{1|}}}|{{{1}}}|in system messages}}.''' &lt;br&gt; Changes to it can cause immediate changes to the Wikipedia user interface. {{#ifeq:{{NAMESPACE}}|{{ns:6}}||To avoid large-scale disruption, any changes should first be tested in this {{lcfirst:{{NAMESPACE}}}}'s [[{{#switch: {{SUBPAGENAME}}
| doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}}
| #default = {{SUBJECTPAGENAME}}
}}/sandbox|/sandbox]] or [[{{#switch: {{SUBPAGENAME}}
| doc | sandbox = {{SUBJECTSPACE}}:{{BASEPAGENAME}}
| #default = {{SUBJECTPAGENAME}}
}}/testcases|/testcases]] subpage, or in your own [[Wikipedia:Subpages#How to create user subpages|user space]]. The tested changes can then be added in one single edit to this {{lcfirst:{{NAMESPACE}}}}.}} Please discuss any changes {{#if:{{{2|}}}|at [[{{{2}}}]]|on the [[{{#switch: {{SUBPAGENAME}}
| doc | sandbox = {{TALKSPACE}}:{{BASEPAGENAME}}
| #default = {{TALKPAGENAME}}
}}|talk page]]}} before implementing them.
}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>oxo0vyfnv6ntmml2zblatwna09ymr56</sha1>
</revision>
</page>
<page>
<title>Template:OK</title>
<ns>10</ns>
<id>19105447</id>
<redirect title="Template:Aye" />
<revision>
<id>821203040</id>
<parentid>235212918</parentid>
<timestamp>2018-01-19T00:32:06Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:OK]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="26">#REDIRECT [[Template:Aye]]</text>
<sha1>ohpbbxpzrgx4nhpd8255oz38humzg3p</sha1>
</revision>
</page>
<page>
<title>Template:Sl</title>
<ns>10</ns>
<id>37094626</id>
<redirect title="Template:Search link" />
<revision>
<id>698461543</id>
<parentid>670566764</parentid>
<timestamp>2016-01-06T07:23:02Z</timestamp>
<contributor>
<username>Cpiral</username>
<id>2517237</id>
</contributor>
<comment>remove from category:search templates</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="34">#REDIRECT [[Template:Search link]]</text>
<sha1>9afqdauwnerhf1e390g3dn2j1vx0ywi</sha1>
</revision>
</page>
<page>
<title>Template:For/doc</title>
<ns>10</ns>
<id>11737737</id>
<revision>
<id>806480782</id>
<parentid>783998045</parentid>
<timestamp>2017-10-22T08:52:48Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>update /doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2587">&lt;!-- EDIT TEMPLATE DOCUMENTATION BELOW THIS LINE --&gt;
{{high-risk| 129000+ }}
{{Lua|Module:For}}
{{for|the template to create a for loop|Template:For loop}}
(The above was produced by: {{tlc|For|the template to create a for loop|Template:For loop}}.)
This template yields a [[WP:HAT|hatnote]] with links to up to four articles or disambiguation pages. It accepts zero to five parameters. If used without parameters on a page named ''Foo'', the result is
{{hatnote|For other uses, see [[:Foo (disambiguation)]].}}
The first parameter changes the hatnote itself and should be plain text, e.g. {{tlc|For|similar terms}} yields:
{{hatnote|For similar terms, see [[:Foo (disambiguation)]].}}
The second parameter is used to change the resultant link, e.g. {{tlc|For|similar terms|Foobar}} yields:
{{For|similar terms|Foobar}}
The third, fourth and fifth parameters are used to give one, two, or three supplementary links:
{{For|similar terms|Foobar|Bar}}
{{For|similar terms|Foobar|Bar|Baz}}
{{For|similar terms|Foobar|Bar|Baz|Quux}}
the last being produced by e.g. {{tlc|For|similar terms|Foobar|Bar|Baz|Quux}}.
==TemplateData==
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;This template lists up to four articles on alternative meanings of a term. For further details and examples see the template documentation.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Description&quot;,
&quot;description&quot;: &quot;a phrase describing the major alternative, or a general term for all alternative meanings&quot;,
&quot;default&quot;: &quot;other uses&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false,
&quot;example&quot;: &quot;other people with the surname Smith&quot;
},
&quot;2&quot;: {
&quot;label&quot;: &quot;First link&quot;,
&quot;description&quot;: &quot;A page to link to; usually a disambiguation page or the most likely other meaning.&quot;,
&quot;default&quot;: &quot;{{PAGENAME}} (disambiguation)&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: false
},
&quot;3&quot;: {
&quot;label&quot;: &quot;Second link&quot;,
&quot;description&quot;: &quot;A page to link to for another meaning, if any.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: false
},
&quot;4&quot;: {
&quot;label&quot;: &quot;Third link&quot;,
&quot;description&quot;: &quot;A page to link to for another meaning, if any.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: false
},
&quot;5&quot;: {
&quot;label&quot;: &quot;Fourth link&quot;,
&quot;description&quot;: &quot;A page to link to for another meaning, if any.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: false
}
},
&quot;format&quot;: &quot;inline&quot;
}
&lt;/templatedata&gt;
{{Hatnote templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- ADD CATEGORIES BELOW THIS LINE --&gt;
[[Category:Disambiguation and redirection templates|For]]
[[Category:Hatnote templates]]
}}&lt;/includeonly&gt;</text>
<sha1>fg5hx0pct35plsjjdp0zspkgr1p8li5</sha1>
</revision>
</page>
<page>
<title>Module:Su</title>
<ns>828</ns>
<id>43076199</id>
<revision>
<id>721217257</id>
<parentid>712355988</parentid>
<timestamp>2016-05-20T11:53:35Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<comment>Default sub/sup font-size should match with sub/sup size set in Common.css. That should reduce excess line-height. Use proper monospace 'hack'.</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1622">-- This module implements {{su}}.
local p = {}
function p.main(frame)
-- Use arguments from the parent frame only, and remove any blank arguments.
-- We don't need to trim whitespace from any arguments, as this module only
-- uses named arguments, and whitespace is trimmed from them automatically.
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
if v ~= '' then
args[k] = v
end
end
-- Define the variables to pass to luaMain.
local sup = args.p
local sub = args.b
local options = {
align = args.a,
fontSize = args.w,
lineHeight = args.lh,
verticalAlign = args.va
}
return p._main(sup, sub, options)
end
function p._main(sup, sub, options)
options = options or {}
local span = mw.html.create('span')
-- Set the styles.
span:css{
['display'] = 'inline-block',
['margin-bottom'] = '-0.3em',
['vertical-align'] = options.verticalAlign or sub and '-0.4em' or '0.8em',
['line-height'] = options.lineHeight or '1.2em'
}
if options.fontSize == 'f' or options.fontSize == 'fixed' then
span:css{
['font-family'] = 'monospace,monospace',
['font-size'] = '80%'
}
else
span:css('font-size', options.fontSize and options.fontSize or '80%')
end
if options.align == 'r' or options.align == 'right' then
span:css('text-align', 'right')
elseif options.align == 'c' or options.align == 'center' then
span:css('text-align', 'center')
else
span:css('text-align', 'left')
end
-- Add the wikitext.
span
:wikitext(sup)
:tag('br', {selfClosing = true}):done()
:wikitext(sub)
return tostring(span)
end
return p</text>
<sha1>75ojv6up7nm5n1inau5oshtx3eossq2</sha1>
</revision>
</page>
<page>
<title>Template:Collapse bottom</title>
<ns>10</ns>
<id>14588666</id>
<revision>
<id>581538826</id>
<parentid>579833085</parentid>
<timestamp>2013-11-13T21:53:30Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Collapse bottom: [[WP:High-risk templates|Highly visible template]]: used in [[MediaWiki:Protect-text]] ([Edit=Block all non-admin users] (indefinite) [Move=Block all non-admin users] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="166">|}&lt;/div&gt;&lt;noinclude&gt;
{{Documentation|Template:Collapse top/doc}}
&lt;!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>thrcxllb1z8kfhc183yxne30rpzluba</sha1>
</revision>
</page>
<page>
<title>Template:Collapse top</title>
<ns>10</ns>
<id>14588579</id>
<revision>
<id>817373764</id>
<parentid>817372763</parentid>
<timestamp>2017-12-27T23:51:30Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>re-re-re-tested, now working. I need coffeee...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1306">&lt;div style=&quot;margin-left:{{{indent|0}}}&quot;&gt;&lt;!-- NOTE: width renders incorrectly if added to main STYLE section --&gt;
{| &lt;!-- Template:Collapse top --&gt; class=&quot;mw-collapsible {{{{{|safesubst:}}}#if:{{{expand|{{{collapse|}}}}}}||mw-collapsed}}&quot; style=&quot;background: {{{bg1|transparent}}}; text-align: left; border: {{{border|1px}}} solid {{{b-color|Silver}}}; margin: 0.2em auto auto; width:{{{{{|safesubst:}}}#if:{{{width|}}}|{{{width}}}|100%}}; clear: {{{clear|both}}}; padding: 1px;&quot;
|-
! style=&quot;background: {{{bg|#{{main other|F0F2F5|CCFFCC}}}}}; font-size:87%; padding:0.2em 0.3em; text-align:{{{{{|safesubst:}}}#if:{{{left|}}}|left|center}}; {{{{{|safesubst:}}}#if:{{{fc|}}}|color: {{{fc}}};|}}&quot; | &lt;span style=&quot;font-size:115%&quot;&gt;{{{1|{{{title|{{{reason|{{{header|{{{heading|Extended content}}} }}} }}} }}} }}}&lt;/span&gt;
{{{{{|safesubst:}}}#if:{{{warning|{{{2|}}}}}}
|{{{{{|safesubst:}}}!}}-
{{{{{|safesubst:}}}!}} style=&quot;text-align:center; font-style:italic;&quot; {{{{{|safesubst:}}}!}} {{{2|The following is a closed debate. {{strongbad|Please do not modify it.}} }}} }}
|-
| style=&quot;border: solid {{{border2|1px Silver}}}; padding: {{{padding|0.6em}}}; background: {{{bg2|White}}};&quot; {{{{{|safesubst:}}}!}}&lt;noinclude&gt;
{{lorem ipsum|3}}
{{Collapse bottom}}
{{Documentation}}
{{Collapse top/TemplateData}}
&lt;/noinclude&gt;</text>
<sha1>qavilxh04tjim52zc995xhbu1r8hqwa</sha1>
</revision>
</page>
<page>
<title>Template:Further/doc</title>
<ns>10</ns>
<id>35001301</id>
<revision>
<id>814492063</id>
<parentid>779093858</parentid>
<timestamp>2017-12-09T03:52:59Z</timestamp>
<contributor>
<username>AlexTheWhovian</username>
<id>22194871</id>
</contributor>
<minor/>
<comment>AlexTheWhovian moved page [[Template:Further information/doc]] to [[Template:Further/doc]] without leaving a redirect: [[WP:RMTR]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5945">{{Selfref|&quot;Template:See&quot; redirects here. Not to be confused with [[Template:See also]].}}
{{Documentation subpage}}
{{High-use|23800+}}
{{Lua|Module:Labelled list hatnote}}
This template is used to link to articles containing further information on a topic. It looks like this:
{{further|Article}}
It is typically used at the top of a section, when the topic of that section is covered in more detail by another page. It is useful for implementing [[WP:SUMMARY|summary style]].
== Usage ==
; Basic usage:
&amp;#123;{further|''page1''|''page2''|''page3''|...}}
; All parameters:
&amp;#123;{further|''page1''|''page2''|''page3''|...|selfref=''yes''|category=''no''}}
== Parameters ==
This template accepts the following parameters:
* &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;3&lt;/code&gt;, ... - the pages to link to. At least one page name is required. Categories and files are automatically escaped with the [[Help:Colon trick|colon trick]], and links to sections are automatically formatted as ''page § section'', rather than the MediaWiki default of ''page#section''.
* &lt;code&gt;label1&lt;/code&gt;, &lt;code&gt;label2&lt;/code&gt;, &lt;code&gt;label3&lt;/code&gt; ... alternative output labels for the corresponding linked pages. Aliases &quot;&lt;code&gt;label ''N''&lt;/code&gt;&quot; (with a space) and &quot;&lt;code&gt;l''N''&lt;/code&gt;&quot; (short) are also available.
* &lt;code&gt;selfref&lt;/code&gt; - if set to &quot;yes&quot;, &quot;y&quot;, &quot;true&quot; or &quot;1&quot;, adds the CSS class &quot;selfref&quot;. This is used to denote self-references to Wikipedia. See [[Template:Selfref]] for more information.
* &lt;code&gt;category&lt;/code&gt; - if set to &quot;no&quot;, &quot;n&quot;, &quot;false&quot;, or &quot;0&quot;, suppresses the error tracking category ([[:Category:Hatnote templates with errors]]). This only has an effect if the first positional parameter (the page to link to) is omitted.
== Examples ==
* &lt;code&gt;&lt;nowiki&gt;{{further|Article}}&lt;/nowiki&gt;&lt;/code&gt; → {{further|Article}}
* &lt;code&gt;&lt;nowiki&gt;{{further|Article1|Article2|Article3}}&lt;/nowiki&gt;&lt;/code&gt; → {{further|Article1|Article2|Article3}}
== Errors ==
If no page names are supplied, the template will output the following message:
* {{further|category=no}}
If you see this error message, it is for one of four reasons:
# No parameters were specified (the template code was &lt;code&gt;&lt;nowiki&gt;{{further}}&lt;/nowiki&gt;&lt;/code&gt;). Please use &lt;code&gt;&lt;nowiki&gt;{{further|&lt;/nowiki&gt;''page''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; instead.
# Some parameters were specified, but no page names were included. For example, the template text &lt;code&gt;&lt;nowiki&gt;{{further|selfref=yes}}&lt;/nowiki&gt;&lt;/code&gt; will produce this error. Please use (for example) &lt;code&gt;&lt;nowiki&gt;{{further|&lt;/nowiki&gt;''page''&lt;nowiki&gt;|selfref=yes}}&lt;/nowiki&gt;&lt;/code&gt; instead.
# A page name was specified, but it contains an equals sign (&quot;=&quot;). The equals sign has a special meaning in template code, and because of this it cannot be used in template parameters that do not specify a parameter name. For example, the template code &lt;code&gt;&lt;nowiki&gt;{{further|1+1=2|2+2=4}}&lt;/nowiki&gt;&lt;/code&gt; will produce this error. To work around this, you can specify the parameter name explicitly by using &lt;code&gt;1=&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, etc., before the page name, like this: &lt;code&gt;&lt;nowiki&gt;{{further|1=1+1=2|2=2+2=4}}&lt;/nowiki&gt;&lt;/code&gt;.
# You tried to access [[Module:Further]] directly by using &lt;code&gt;&lt;nowiki&gt;{{#invoke:further|further|&lt;/nowiki&gt;''text''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;. Use of #invoke in this way has been disabled for performance reasons. Please use &lt;code&gt;&lt;nowiki&gt;{{further|&lt;/nowiki&gt;''text''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; instead.
If you see this error message and are unsure of what to do, please post a message on [[WP:HD|the help desk]], and someone should be able to help you.
Pages that contain this error message are tracked in [[:Category:Hatnote templates with errors]].
== See also ==
* {{Tl|Main article}}
{{Hatnote templates}}
{{Collapse top|TemplateData}}
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;Template used to link to pages containing further information on a topic. Produces the output \&quot;Further information: page 1, page 2 and page 3\&quot;.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Page 1&quot;,
&quot;description&quot;: &quot;The name of the first page that you want to link to.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
},
&quot;2&quot;: {
&quot;label&quot;: &quot;Page 2&quot;,
&quot;description&quot;: &quot;The name of the second page that you want to link to.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;3&quot;: {
&quot;label&quot;: &quot;Page 3&quot;,
&quot;description&quot;: &quot;The name of the third page that you want to link to. More pages can be added using the parameters \&quot;4\&quot;, \&quot;5\&quot;, \&quot;6\&quot;, etc.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;selfref&quot;: {
&quot;type&quot;: &quot;string/line&quot;,
&quot;label&quot;: &quot;Self reference&quot;,
&quot;description&quot;: &quot;Set to \&quot;yes\&quot; if the template is a self-reference to Wikipedia that would not make sense on mirrors or forks of the Wikipedia site.&quot;
},
&quot;category&quot;: {
&quot;label&quot;: &quot;Category&quot;,
&quot;description&quot;: &quot;Set to \&quot;no\&quot;, \&quot;n\&quot;, \&quot;false\&quot;, or \&quot;0\&quot; to suppresses the error tracking category (Category:Hatnote templates with errors). This only has an effect if no page names are specified.&quot;
},
&quot;label1&quot;: {
&quot;aliases&quot;: [
&quot;label 1&quot;,
&quot;l1&quot;
],
&quot;label&quot;: &quot;Label 1&quot;,
&quot;description&quot;: &quot;The displayed label of the first page link&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;label2&quot;: {
&quot;aliases&quot;: [
&quot;label 2&quot;,
&quot;l2&quot;
],
&quot;label&quot;: &quot;Label 2&quot;,
&quot;description&quot;: &quot;The displayed label of the second page link&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;label3&quot;: {
&quot;aliases&quot;: [
&quot;label 3&quot;,
&quot;l3&quot;
],
&quot;label&quot;: &quot;Label 3&quot;,
&quot;description&quot;: &quot;The displayed label for the third page link. Labels for further pages can be added using the parameters \&quot;label4\&quot;, \&quot;label5\&quot;, \&quot;label6\&quot;, etc.&quot;,
&quot;type&quot;: &quot;string&quot;
}
}
}
&lt;/templatedata&gt;
{{Collapse bottom}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories go here and interwikis go in Wikidata. --&gt;
[[Category:Wikipedia page-section templates|{{PAGENAME}}]]
[[Category:Hatnote templates]]
[[Category:Cross-reference templates]]
[[Category:Exclude in print]]
}}&lt;/includeonly&gt;</text>
<sha1>pko89oxhh85olnob5qum050vd831w01</sha1>
</revision>
</page>
<page>
<title>Module:Labelled list hatnote</title>
<ns>828</ns>
<id>50971703</id>
<revision>
<id>763259375</id>
<parentid>745988142</parentid>
<timestamp>2017-02-02T05:26:53Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Module:Labelled list hatnote]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3083">--------------------------------------------------------------------------------
-- Labelled list --
-- --
-- This module does the core work of creating a hatnote composed of a list --
-- prefixed by a colon-terminated label, i.e. &quot;LABEL: [andList of pages]&quot;, --
-- for {{see also}} and similar templates. --
--------------------------------------------------------------------------------
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments --initialize lazily
local p = {}
-- Defaults global to this module
local defaults = {
label = 'See also', --Final fallback for label argument
labelForm = '%s: %s',
prefixes = {'label', 'label ', 'l'},
template = 'Module:Labelled list hatnote'
}
-- Helper function that pre-combines display parameters into page arguments.
-- Also compresses sparse arrays, as a desirable side-effect.
function p.preprocessDisplays (args, prefixes)
-- Prefixes specify which parameters, in order, to check for display options
-- They each have numbers auto-appended, e.g. 'label1', 'label 1', &amp; 'l1'
prefixes = prefixes or defaults.prefixes
local pages = {}
for k, v in pairs(args) do
if type(k) == 'number' then
local display
for i = 1, #prefixes do
display = args[prefixes[i] .. k]
if display then break end
end
local page = display and
string.format('%s|%s', string.gsub(v, '|.*$', ''), display) or v
pages[#pages + 1] = page
end
end
return pages
end
-- Produces a labelled pages-list hatnote.
-- The main frame (template definition) takes 1 or 2 arguments, for a singular
-- and (optionally) plural label respectively:
-- * {{#invoke:Labelled list hatnote|labelledList|Singular label|Plural label}}
-- The resulting template takes pagename &amp; label parameters normally.
function p.labelledList (frame)
mArguments = require('Module:Arguments')
local labels = {frame.args[1] or defaults.label}
labels[2] = frame.args[2] or labels[1]
local template = frame:getParent():getTitle()
local args = mArguments.getArgs(frame, {parentOnly = true})
local pages = p.preprocessDisplays(args)
local options = {
extraclasses = frame.args.extraclasses,
category = args.category,
selfref = frame.args.selfref or args.selfref,
template = template
}
return p._labelledList(pages, labels, options)
end
function p._labelledList (pages, labels, options)
labels = labels or {}
if #pages == 0 then
return mHatnote.makeWikitextError(
'no page names specified',
(options.template or defaults.template) .. '#Errors',
options.category
)
end
label = (#pages == 1 and labels[1] or labels[2]) or defaults.label
local text = string.format(
options.labelForm or defaults.labelForm,
label,
mHatlist.andList(pages, true)
)
local hnOptions = {
extraclasses = options.extraclasses,
selfref = options.selfref
}
return mHatnote._hatnote(text, hnOptions)
end
return p</text>
<sha1>932zychfwl5xu5castj2k9j5qs6lzif</sha1>
</revision>
</page>
<page>
<title>Template:Hatnote/doc</title>
<ns>10</ns>
<id>8738375</id>
<revision>
<id>805857846</id>
<parentid>757815754</parentid>
<timestamp>2017-10-18T02:19:24Z</timestamp>
<contributor>
<username>NotTheFakeJTP</username>
<id>23005869</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5887">{{Documentation subpage}}
&lt;includeonly&gt;{{High-risk|310,000+}}&lt;/includeonly&gt;
{{shortcut|T:HAT}}
{{lua|Module:Hatnote}}
This template produces formatted text, following the guideline for a '''[[WP:HATNOTE|Wikipedia hatnote]]'''.
:&lt;code&gt;&lt;nowiki&gt;{{hatnote|Example hatnote text.}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr;&lt;br&gt;&lt;!-- a construct to show hatnote as expected (using newline) --&gt;
{{hatnote|Example hatnote text.}}
Broadly speaking, a hatnote should answer a readers' question (maybe preemptively): ''Am I on the right page?''
{{TOC limit}}
== Function ==
This template is primarily used to add a correctly formatted ''hatnote'' to a page. Often, but not always, this is a ''disambiguation link'' at the top of article pages. It places an HTML &lt;code&gt;div-&lt;/code&gt; / &lt;code&gt;div&lt;/code&gt; block around the text entered as its only argument, which provides standardized formatting (contents are indented and italicized in most displays); it also isolates the contained code to make sure that it is interpreted correctly.
This template is also used as the &quot;meta-template&quot; for additional specialized disambiguation link templates; see [[:Category:Hatnote templates]] for a list.
The template does not automatically create links of any kind. Links and other desired formatting must be explicitly added, using normal [[Wikipedia:Cheatsheet|Wikipedia markup]].
== Usage ==
; Basic usage:
&amp;#123;{hatnote|''text''}}
; All parameters:
&amp;#123;{hatnote|''text''|extraclasses=''extra classes''|selfref=''yes''|category=''no''}}
== Parameters ==
This template accepts the following parameters:
* &lt;code&gt;1&lt;/code&gt; - the hatnote text (required)
* &lt;code&gt;extraclasses&lt;/code&gt; - any extra CSS classes to be added - For example, the {{tl|see also}} template adds the classes &quot;{{para|extraclasses|boilerplate seealso}}&quot;.
* &lt;code&gt;selfref&lt;/code&gt; - If set to &quot;yes&quot;, &quot;y&quot;, &quot;true&quot; or &quot;1&quot;, adds the CSS class &quot;selfref&quot;. This is used to denote self-references to Wikipedia. See [[Template:Selfref]] for more information.
* &lt;code&gt;category&lt;/code&gt; - If set to &quot;no&quot;, &quot;n&quot;, &quot;false&quot;, or &quot;0&quot;, suppresses the error tracking category ([[:Category:Hatnote templates with errors]]). This has an effect only if the &lt;!--&quot;first-positional parameter&quot;, not &quot;first positional parameter&quot;, if you value the readers' time ... but better yet --&gt; leftmost parameter (the hatnote text) is omitted.
== Example ==
* &lt;code&gt;&lt;nowiki&gt;{{hatnote|Example hatnote text}}&lt;/nowiki&gt;&lt;/code&gt; → {{hatnote|Example hatnote text}}
== Errors ==
If no hatnote text is supplied, the template will output the following message:
* {{hatnote|category=no}}
If you see this error message, it is for one of four reasons:
# No parameters were specified (the template code was &lt;code&gt;&lt;nowiki&gt;{{hatnote}}&lt;/nowiki&gt;&lt;/code&gt;). Please use &lt;code&gt;&lt;nowiki&gt;{{hatnote|&lt;/nowiki&gt;''text''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; instead.
# Some parameters were specified, but the hatnote text wasn't included. For example, the template text &lt;code&gt;&lt;nowiki&gt;{{hatnote|extraclasses=seealso}}&lt;/nowiki&gt;&lt;/code&gt; will produce this error. Please use (for example) &lt;code&gt;&lt;nowiki&gt;{{hatnote|&lt;/nowiki&gt;''text''&lt;nowiki&gt;|extraclasses=seealso}}&lt;/nowiki&gt;&lt;/code&gt; instead.
# The hatnote text was specified, but that text contains an equals sign (&quot;=&quot;). The equals sign has a special meaning in template code, and because of this it cannot be used in template parameters that do not specify a parameter name. For example, the template code &lt;code&gt;&lt;nowiki&gt;{{hatnote|2+2=4}}&lt;/nowiki&gt;&lt;/code&gt; will produce this error. To work around this, you can specify the parameter name explicitly by using &lt;code&gt;1=&lt;/code&gt; before the hatnote text, like this: &lt;code&gt;&lt;nowiki&gt;{{hatnote|1=2+2=4}}&lt;/nowiki&gt;&lt;/code&gt;.
# You tried to access [[Module:Hatnote]] directly by using &lt;code&gt;&lt;nowiki&gt;{{#invoke:hatnote|hatnote|&lt;/nowiki&gt;''text''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;. Use of #invoke in this way has been disabled for performance reasons. Please use &lt;code&gt;&lt;nowiki&gt;{{hatnote|&lt;/nowiki&gt;''text''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; instead.
If you see this error message and are unsure of what to do, please post a message on [[Template talk:Hatnote]], and someone should be able to help you.
Pages that contain this error message are tracked in [[:Category:Hatnote templates with errors]].
== Technical details ==
The HTML code produced by this template looks like this:
* &lt;code&gt;&lt;nowiki&gt;&lt;div role=&quot;note&quot; class=&quot;hatnote&quot;&gt;&lt;/nowiki&gt;''hatnote text''&lt;nowiki&gt;&lt;/div&gt;&lt;/nowiki&gt;&lt;/code&gt;
The code is produced by [[Module:Hatnote]].
{{Hatnote templates}}
{{Collapse top|TemplateData}}
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;Template for creating a standard Wikipedia hatnote. A hatnote is a short note placed at the top of an article to provide disambiguation of closely related terms or summarise a topic, explaining its boundaries.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Text&quot;,
&quot;description&quot;: &quot;This field should contain the text that will be displayed in the hatnote.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
},
&quot;extraclasses&quot;: {
&quot;type&quot;: &quot;string/line&quot;,
&quot;label&quot;: &quot;Extra classes&quot;,
&quot;description&quot;: &quot;Extra CSS classes to be added to the &lt;div&gt; tags surrounding the hatnote text.&quot;
},
&quot;selfref&quot;: {
&quot;type&quot;: &quot;string/line&quot;,
&quot;label&quot;: &quot;Self reference&quot;,
&quot;description&quot;: &quot;Set to \&quot;yes\&quot; if the hatnote text is a self-reference to Wikipedia that would not make sense on mirrors or forks of the Wikipedia site. (E.g. \&quot;For the Wikipedia Sandbox, see [[WP:SAND]]\&quot;.)&quot;
},
&quot;category&quot;: {
&quot;label&quot;: &quot;Category&quot;,
&quot;description&quot;: &quot;Set to \&quot;no\&quot;, \&quot;n\&quot;, \&quot;false\&quot;, or \&quot;0\&quot; to suppresses the error tracking category (Category:Hatnote templates with errors). This only has an effect if the hatnote text is omitted.&quot;
}
}
}
&lt;/templatedata&gt;
{{Collapse bottom}}&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
[[Category:Hatnote templates| ]]
[[Category:Cross-reference templates]]
}}&lt;/includeonly&gt;</text>
<sha1>m01jlxv7ixz3zsg7euvcl3fhps3ddym</sha1>
</revision>
</page>
<page>
<title>Template:Generic template demo</title>
<ns>10</ns>
<id>43381292</id>
<redirect title="Template:Parameter names example" />
<revision>
<id>821201376</id>
<parentid>620313329</parentid>
<timestamp>2018-01-19T00:29:55Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Generic template demo]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (inde...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="166">#redirect [[Template:Parameter names example]]
[[Category:Wikipedia utility templates]]
[[Category:Template namespace templates]]
[[Category:Template documentation]]</text>
<sha1>ogbr4wqk2lnafw0hlw1wy7gr9imxk3k</sha1>
</revision>
</page>
<page>
<title>Template:Helpbox/doc</title>
<ns>10</ns>
<id>14945743</id>
<revision>
<id>644233458</id>
<parentid>620263292</parentid>
<timestamp>2015-01-26T10:08:33Z</timestamp>
<contributor>
<username>Martijn Hoekstra</username>
<id>693102</id>
</contributor>
<comment>replace to be deleted semisub template</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3747">{{Documentation subpage}}
&lt;includeonly&gt;{{Intricate template}}&lt;/includeonly&gt;
{{Generic template demo |title |group1 |list1 |group2 |list2 |list3={{longitem|{{{list3}}}&lt;br/&gt;''without {{{group3}}}''}} |list4=''ditto'' {{{list4}}} |group5&lt;!--={{longitem|{{{group5}}}&lt;br/&gt;{{nobold|''without {{{list5}}}''}}}}--&gt; |group6 |list6={{{list6}}}&lt;br/&gt;''...... etc ......'' |group20 |list20}}
This template allows a help-related [[Wikipedia:Navigational templates|navigational template]] to be set up relatively quickly by supplying it with one or more lists of links.
== Usual syntax ==
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Helpbox
| name = &lt;!-- or: | templatename = --&gt;
| title = &lt;!-- or, if templatename used: | name = --&gt;
| group1 =
| list1 =
| group2 =
| list2 =
&lt;!-- etc, to: --&gt;
| group20 =
| list20 =
}}
&lt;/pre&gt;
== Parameters ==
===Required===
:; ''title'' &amp;nbsp;{{nobold|(or, if ''templatename'' used (see below),}} ''name''{{nobold|)}}
:: The template's title, centered at the top of the template.
: '''''list&lt;sub&gt;n&lt;/sub&gt;'''''
:: (i.e. ''list1'', ''list2'', etc.) The body of the template, usually a list of links. Format is inline, although the text can be entered on separate lines if the entire list is enclosed within {{tag|div}}. At least one ''list'' parameter is required. Each ''list&lt;sub&gt;n&lt;/sub&gt;'' may be preceded by a corresponding ''group&lt;sub&gt;n&lt;/sub&gt;'' parameter, if provided (see below). There is a limit of 20 lists/groups in a template.
===Optional===
:; ''group&lt;sub&gt;n&lt;/sub&gt;''
:: (i.e. ''group1'', ''group2'', etc.) If specified, text appears in a header displayed above ''list&lt;sub&gt;n&lt;/sub&gt;''.
:; first unnamed parameter
:: Inline [[CSS]] for the template.
:; ''name'' &amp;nbsp;{{nobold|(or, if ''name'' used as above,}} ''templatename''{{nobold|)}}
:: The template's pagename, activating the inclusion of the {{smaller|V•T•E}} links in its bottom righthand corner. [[Template:Helpbox]]'s pagename, for example, is &quot;Helpbox&quot;.
== Example ==
{{Helpbox |width:17.5em
| name = Helpbox/doc
| class = plainlist
| title = [[:Category:Wikipedia policies|Wikipedia policy]]
| group1 = Article standards
| list1 =
*[[Wikipedia:Neutral point of view|Neutral point of view]]
*[[Wikipedia:Verifiability|Verifiability]]
*[[Wikipedia:No original research|No original research]]
*[[Wikipedia:Biographies of living persons|Biographies of living persons]]
| group2 = Working with others
| list2 =
*[[Wikipedia:Civility|Civility]]
*[[Wikipedia:Consensus|Consensus]]
*[[Wikipedia:No personal attacks|No personal attacks]]
*[[Wikipedia:Dispute resolution|Dispute resolution]]
*[[WP:LEGAL|No legal threats]]
| group3 = Global principles
| list3 =
*[[Wikipedia:What Wikipedia is not|What Wikipedia is not]]
*[[Wikipedia:Ignore all rules|Ignore all rules]]
}}
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Helpbox |width:17.5em
| name = Helpbox/doc
| class = plainlist
| title = [[:Category:Wikipedia policies|Wikipedia policy]]
| group1 = Article standards
| list1 =
*[[Wikipedia:Neutral point of view|Neutral point of view]]
*[[Wikipedia:Verifiability|Verifiability]]
*[[Wikipedia:No original research|No original research]]
*[[Wikipedia:Biographies of living persons|Biographies of living persons]]
| group2 = Working with others
| list2 =
*[[Wikipedia:Civility|Civility]]
*[[Wikipedia:Consensus|Consensus]]
*[[Wikipedia:No personal attacks|No personal attacks]]
*[[Wikipedia:Dispute resolution|Dispute resolution]]
*[[WP:LEGAL|No legal threats]]
| group3 = Global principles
| list3 =
*[[Wikipedia:What Wikipedia is not|What Wikipedia is not]]
*[[Wikipedia:Ignore all rules|Ignore all rules]]
}}
&lt;/pre&gt;
&lt;includeonly&gt;
{{#ifeq:{{SUBPAGENAME}}|sandbox | |
[[Category:Wikipedia metatemplates]]
[[Category:Sidebar templates]]
}}
&lt;/includeonly&gt;</text>
<sha1>5vg0360qo4e47mn47jtkr0k5opltzus</sha1>
</revision>
</page>
<page>
<title>Template:Intricate template</title>
<ns>10</ns>
<id>3212382</id>
<revision>
<id>791343927</id>
<parentid>599780700</parentid>
<timestamp>2017-07-19T16:54:52Z</timestamp>
<contributor>
<username>Train2104</username>
<id>10341578</id>
</contributor>
<comment>reword</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1235">{{ombox
| type = style
| image = [[Image:Ambox warning yellow.svg|40x40px|alt=|link=]]
| text =
'''This {{{namespace|template}}} employs intricate features of template syntax.'''
&lt;div style=&quot;font-size:95%; padding-bottom:2px;&quot;&gt;You are encouraged to familiarise yourself with its setup and [[m:Help:Parser function|parser functions]] before editing the template. If your edit causes unexpected problems, please [[Help:Reverting#Undo|undo]] it quickly, as this template may appear on a large number of pages.&lt;br/&gt;
You can conduct experiments, and should test all major changes, in either &lt;span class=&quot;nowraplinks&quot;&gt;[[{{#ifexist:{{FULLPAGENAME}}/Sandbox|/Sandbox|{{#ifexist:{{FULLPAGENAME}}/test sandbox|/test sandbox|{{#ifexist:{{FULLPAGENAME}}/Test sandbox|/Test sandbox|{{#ifexist:{{FULLPAGENAME}}/test|/test|{{#ifexist:{{FULLPAGENAME}}/Test|/Test|/sandbox}}}}}}}}}}|this template's sandbox]]&lt;/span&gt;, the [[Template:Template sandbox|general template sandbox]], or your user space before changing anything here.&lt;/div&gt;
}}&lt;includeonly&gt;{{#ifeq: {{PAGENAME}} | {{BASEPAGENAME}} | [[Category:Intricate templates]] }}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>dh79njli0rchozlv8gxvabsm0gkseh1</sha1>
</revision>
</page>
<page>
<title>Template:Nobold</title>
<ns>10</ns>
<id>10981056</id>
<revision>
<id>772147408</id>
<parentid>224914185</parentid>
<timestamp>2017-03-25T16:04:17Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Nobold]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefinit...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="164">&lt;span style=&quot;font-weight:normal;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>jd091g26r8rrz2i74pnanvl0wum30wj</sha1>
</revision>
</page>
<page>
<title>Template:Parameter names example</title>
<ns>10</ns>
<id>43305139</id>
<revision>
<id>804536750</id>
<parentid>623570683</parentid>
<timestamp>2017-10-09T17:20:51Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Parameter names example]]&quot;: [[WP:High-risk templates|Highly visible template]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="256">&lt;includeonly&gt;{{#invoke:Parameter names example|main}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{hatnote|[[Template:Generic template demo]] and [[Template:Pnex]] redirect here.}}&lt;!--(hatnote more noticeable here than within Documentation)--&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>cjle1o3weadzp7u1v4l5clox5ri8mpi</sha1>
</revision>
</page>
<page>
<title>Module:Parameter names example</title>
<ns>828</ns>
<id>43325707</id>
<revision>
<id>804712407</id>
<parentid>625611091</parentid>
<timestamp>2017-10-10T17:47:29Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Module:Parameter names example]]&quot;: [[WP:High-risk templates|High-risk Lua module]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1521">-- This module implements {{parameter names example}}.
local p = {}
local function makeParam(s)
local lb = '&amp;#123;'
local rb = '&amp;#125;'
return lb:rep(3) .. s .. rb:rep(3)
end
local function italicize(s)
return &quot;''&quot; .. s .. &quot;''&quot;
end
local function plain(s)
return s
end
function p._main(args, frame)
-- Find how we want to format the arguments to the template.
local formatFunc
if args._display == 'italics' or args._display == 'italic' then
formatFunc = italicize
elseif args._display == 'plain' then
formatFunc = plain
else
formatFunc = makeParam
end
-- Build the table of template arguments.
local targs = {}
for k, v in pairs(args) do
if type(k) == 'number' then
targs[v] = formatFunc(v)
elseif not k:find('^_') then
targs[k] = v
end
end
-- Find the template name.
local template
if args._template then
template = args._template
else
local currentTitle = mw.title.getCurrentTitle()
if currentTitle.prefixedText:find('/sandbox$') then
template = currentTitle.prefixedText
else
template = currentTitle.basePageTitle.prefixedText
end
end
-- Call the template with the arguments.
frame = frame or mw.getCurrentFrame()
local success, result = pcall(
frame.expandTemplate,
frame,
{title = template, args = targs}
)
if success then
return result
else
return ''
end
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Parameter names example'
})
return p._main(args, frame)
end
return p</text>
<sha1>6o7ema5t5ok6u2ticvu2qjmkbqsdz1n</sha1>
</revision>
</page>
<page>
<title>Template:Collapse Templates</title>
<ns>10</ns>
<id>51390886</id>
<revision>
<id>735697504</id>
<timestamp>2016-08-22T14:10:51Z</timestamp>
<contributor>
<username>VarunFEB2003</username>
<id>28373010</id>
</contributor>
<comment>[[WP:AES|←]]Created page with '{{Infobox | bodyclass = nowrap | bodystyle = width:auto;padding-bottom:0.6em;line-height:1.25em; | abovestyle = font-size:inherit; | above = &lt;u&gt;Collapse Template...'</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1257">{{Infobox
| bodyclass = nowrap
| bodystyle = width:auto;padding-bottom:0.6em;line-height:1.25em;
| abovestyle = font-size:inherit;
| above = &lt;u&gt;Collapse Templates&lt;/u&gt;&lt;br&gt;
| labelstyle = margin:0;padding:0 0.3em 0;text-align:center;font-weight:normal;
| datastyle = margin:0;padding:0 0.5em 0 0;
|header1 = Basic Collapse
| label2 = {{tl|Collapse top}}
| data2 = Top
|header3 =
| label3 = {{tl|Collapse bottom}}
| data3 = Bottom
|header4 =
| label4 = {{tl|Collapse}}
| data4 = Both
|header5 = Discussion Collapse
| label6 = {{tl|Discussion top}}
| data6 = Top
|header6 =
| label7 = {{tl|Discussion bottom}}
| data7 = Bottom
|header8 =
| label8 = {{tl|Hidden archive top}}
| data8 = Top
|header9 =
| label9 = {{tl|Hidden archive bottom}}
| data9 = Bottom
|header10 = Hidden Collapse
| label11 = {{tl|Hidden begin}}
| data11 = Top
|header12 =
| label12 = {{tl|Hidden end}}
| data12 = Bottom
|header13 =
| label13 = {{tl|Hidden}}
| data13 = Both
|header14 = Collapsible List
| label15 = {{tl|Collapsible list}}
| data15 = Both
|header16 =
| label16 = {{tl|Drop down list}}
| data16 = Both
}}
&lt;noinclude&gt;{{documentation|content=
Used by all collapse templates to show a navbox.}}
&lt;/noinclude&gt;</text>
<sha1>d6emp2o5flgsrujm9wtrsdpix76pbvt</sha1>
</revision>
</page>
<page>
<title>Template:Hidden begin/doc</title>
<ns>10</ns>
<id>11030866</id>
<revision>
<id>822993224</id>
<parentid>735698080</parentid>
<timestamp>2018-01-29T18:08:44Z</timestamp>
<contributor>
<ip>87.254.86.39</ip>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="7288">{{Documentation subpage}}
&lt;!-- Place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
{{hatnote|This documentation is shared by {{tl|Hidden begin}} and {{tl|Hidden end}}.}}
{{#ifeq: {{FULLPAGENAME}} | Template:Hidden begin
| {{high-risk| 125,500+ }}
| {{#ifeq: {{FULLPAGENAME}} | Template:Hidden end
| {{high-risk| 125,600+ }}
}}
}}
{{TOC limit|2}}
{{Template:Collapse Templates}}
==Syntax==
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Hidden begin
| expanded = &lt;!--&quot;true&quot;, &quot;on&quot;, yes&quot;, etc, otherwise omit--&gt;
| showhide = &lt;!--&quot;left&quot;, otherwise omit--&gt;
| class =
| style =
| border =
| title =
| titlestyle =
| bg1 =
| ta1 =
| contentstyle =
| bg2 =
| ta2 =
&lt;!--Older, semi-deprecated parameters:--&gt;
| header = | extra1 = | extra2 =
}}
&lt;!----[content to be hidden placed here]----&gt;
{{Hidden end}}
&lt;/pre&gt;
===Parameters===
{| class=&quot;wikitable&quot;
! Parameter || Description
|-
| ''showhide''&lt;!--previously: &lt;br /&gt;or ''toggle''--&gt; || Set to &quot;left&quot; (without speechmarks) to switch the [show/hide] link's position from the righthand end of the titlebar (default) to the left.
|-
| ''expanded'' || Set to anything (&quot;true&quot;, &quot;yes&quot;, etc.) to switch the hidden section's initial state from collapsed (hidden) to expanded (visible).
|-
| ''class'' || [[WP:CLASS#Classes|Class attribute]] affecting entire area.
|-
| ''style'' || [[Cascading Style Sheets|CSS styling]] affecting entire area (titlebar and hidden/hideable content).
|-
| ''border'' || CSS styling for border around entire area. Will be overridden by any border styles in ''style''.
|-
| ''title'' || Text shown in titlebar.
|-
| style=&quot;vertical-align:top;&quot; | ''titlestyle'' || CSS styles to apply to the titlebar (e.g. {{para|titlestyle|border:1px solid lightgrey;}} to produce a border around it; {{para|titlestyle|background:''color'';}} to set its background color to [[Web colors#X11 color names|''color'']]&amp;thinsp;; {{para|titlestyle|text-align:[center/right];}} to switch its text (''title'')'s alignment from left to center or right; etc.).
|-
| ''bg1'' || Background color for titlebar; defaults to transparent. May be overridden if ''titlestyle'' includes anything changes the background.
|-
| ''ta1'' || Text alignment for titlebar; defaults to left. May be overridden if ''titlestyle'' includes anything that changes the text alignment.
|-
| ''contentstyle''&amp;nbsp; || CSS styling to apply to the hidden/hideable content (e.g. background and text-align, per ''titlestyle'').
|-
| ''bg2'' || Background color for content; defaults to transparent. May be overridden if ''contentstyle'' includes anything changes the background.
|-
| ''ta2'' || Text alignment for content; defaults to left. May be overridden if ''contentstyle'' includes anything that changes the text alignment.
|}
==Examples==
===Example 1===
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Hidden begin |title=Default example}}
* def
* ghi
{{Hidden end}}
&lt;/pre&gt;
{{Hidden begin{{#ifeq:{{SUBPAGENAME}}|sandbox |/sandbox}} |title=Default example}}
* def
* ghi
{{Hidden end}}
===Example 2===
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Hidden begin
| titlestyle = background:pink;
| title = ''titlestyle'' is &quot;background:pink;&quot;
}}
* def
* ghi
{{Hidden end}}
&lt;/pre&gt;
{{Hidden begin{{#ifeq:{{SUBPAGENAME}}|sandbox |/sandbox}}
| titlestyle = background:pink;
| title = ''titlestyle'' is &quot;background:pink;&quot;
}}
* def
* ghi
{{Hidden end}}
===Example 3===
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Hidden begin
| titlestyle = background:pink; text-align:center;
| title = added &quot;text-align:center;&quot;
}}
* def
* ghi
{{Hidden end}}
&lt;/pre&gt;
{{Hidden begin{{#ifeq:{{SUBPAGENAME}}|sandbox |/sandbox}}
| titlestyle = background:pink; text-align:center;
| title = added &quot;text-align:center;&quot;
}}
* def
* ghi
{{Hidden end}}
===Example 4===
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Hidden begin
| titlestyle = background:pink; text-align:right; padding-right:3.0em;
| title = ''title'' on right with 3.0em padding
}}
* change window width and
* watch title alignment
{{Hidden end}}
&lt;/pre&gt;
{{Hidden begin{{#ifeq:{{SUBPAGENAME}}|sandbox |/sandbox}}
| titlestyle = background:pink; text-align:right; padding-right:3.0em;
| title = ''title'' on right with 3.0em padding
}}
* change window width and
* watch title alignment
{{Hidden end}}
===Example 5===
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Hidden begin |showhide=left |expanded=true
| titlestyle = background:palegreen;
| title = ''showhide'' set to &quot;left&quot; and ''expanded'' set to &quot;true&quot;
}}
* def
* ghi
{{Hidden end}}
&lt;/pre&gt;
{{Hidden begin{{#ifeq:{{SUBPAGENAME}}|sandbox |/sandbox}} |showhide=left |expanded=true
| titlestyle = background:palegreen;
| title = ''showhide'' set to &quot;left&quot; and ''expanded'' set to &quot;true&quot;
}}
* def
* ghi
{{Hidden end}}
===Example 6===
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Hidden begin |showhide=left
| titlestyle = background:palegreen;
| title = &lt;code style=&quot;background:transparent;&quot;&gt;showhide=left&lt;/code&gt;, hidden content 150% size and in bold (''contentstyle'')
| contentstyle = font-size:150%; font-weight:bold;
}}
* def
* ghi
{{Hidden end}}
&lt;/pre&gt;
{{Hidden begin{{#ifeq:{{SUBPAGENAME}}|sandbox |/sandbox}} |showhide=left
| titlestyle = background:palegreen;
| title = &lt;code style=&quot;background:transparent;&quot;&gt;showhide=left&lt;/code&gt;, hidden content 150% size and in bold (''contentstyle'')
| contentstyle = font-size:150%; font-weight:bold;
}}
* def
* ghi
{{Hidden end}}
===Example 7===
&lt;!-- This example updated to show that bg1/ta1 only affect titlebar, used ta1=right since it is non-default for titlebar and content. --&gt;
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Hidden begin
| header = [''header'' (deprecated)]
| titlestyle = font-style:italic; padding-right:3.0em;
| title = [''title'' set to this text]
| border = 1px solid grey
| bg1 = palegreen
| ta1 = right
| extra1 = font-size:120%; &lt;!--semicolon required since titlestyle is used--&gt;
| extra2 = font-size:150% &lt;!--semicolon optional when contentstyle not used--&gt;
}}
* make window narrower and
* title will wrap
{{Hidden end}}
&lt;/pre&gt;
{{Hidden begin{{#ifeq:{{SUBPAGENAME}}|sandbox |/sandbox}}
| header = [''header'' (deprecated)]
| titlestyle = font-style:italic; padding-right:3.0em;
| title = [''title'' set to this text]
| border = 1px solid grey
| bg1 = palegreen
| ta1 = right
| extra1 = font-size:120%;
| extra2 = font-size:150%
}}
* make window narrower and
* title will wrap
{{Hidden end}}
===Example 8===
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Hidden begin
| titlestyle =
| title = title&amp;amp;nbsp;with&amp;amp;nbsp;non-breaking&amp;amp;nbsp;spaces&amp;amp;nbsp;
| border = 1px solid red
| bg1 = cyan
| bg2 = yellow
| ta1 = right
| ta2 = left
| extra1 = font-size:120%; padding-right:2.5em;
| extra2 = font-size:150%; padding-left:3.0em;
}}
* def ... these should have left padding
* ghi
{{Hidden end}}
&lt;/pre&gt;
{{Hidden begin{{#ifeq:{{SUBPAGENAME}}|sandbox |/sandbox}}
| titlestyle =
| title = title&amp;nbsp;with&amp;nbsp;non-breaking&amp;nbsp;spaces&amp;nbsp;
| border = 1px solid red
| bg1 = cyan
| bg2 = yellow
| ta1 = right
| ta2 = left
| extra1 = font-size:120%; padding-right:2.5em;
| extra2 = font-size:150%; padding-left:3.0em;
}}
* def ... these should have left padding
* ghi
{{Hidden end}}
==See also==
* {{tl|Hidden}}
&lt;includeonly&gt;{{basepage subpage
| &lt;!-- ADD CATEGORIES BELOW THIS LINE --&gt;
[[Category:Collapse templates]]
}}&lt;/includeonly&gt;</text>
<sha1>a7m04vq69b0womw42bfxb9owad9rrzd</sha1>
</revision>
</page>
<page>
<title>Template:Noredirect</title>
<ns>10</ns>
<id>28351520</id>
<redirect title="Template:No redirect" />
<revision>
<id>488795912</id>
<parentid>481200686</parentid>
<timestamp>2012-04-23T11:07:09Z</timestamp>
<contributor>
<username>AGK</username>
<id>1000453</id>
</contributor>
<minor/>
<comment>Protected Template:Noredirect: [[Wikipedia:High-risk templates|Highly-visible template]] (thousands of transclusions) (‎[edit=autoconfirmed] (indefinite) ‎[move=sysop] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="34">#REDIRECT [[Template:No redirect]]</text>
<sha1>1ee04y1ajpw3hd3pfe7d51gn8hwd0zz</sha1>
</revision>
</page>
<page>
<title>Template:High-risk/doc</title>
<ns>10</ns>
<id>21497244</id>
<revision>
<id>785310055</id>
<parentid>785310024</parentid>
<timestamp>2017-06-12T20:21:57Z</timestamp>
<contributor>
<username>Frood</username>
<id>6379643</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contributions/107.77.208.6|107.77.208.6]] ([[User talk:107.77.208.6|talk]]) ([[WP:HG|HG]]) (3.1.22)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2586">{{documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE AND INTERWIKIS TO WIKIDATA. --&gt;
This is the {{tl|high-risk}} message box. It is meant to be put at the top of the documentation page on the most high-use (high-risk) templates and Lua modules (the template detects the name space), i.e., for templates used on 100,000 pages or more. For templates used on 2,000–100,000 pages, it is recommended to use the {{tl|high-use}} template instead, which has a softer wording.
'''''Note:''''' It is normal that some of the links in the message box are red.
=== Usage ===
The template can be used as is. But it can also take some parameters:
* First parameter is the number of pages. See [[Wikipedia:Database reports/Templates transcluded on the most pages]] (archived) or [[toollabs:templatecount/]] to find out how many pages use the template.
* Second parameter is the name of some other talk page if you want discussion to be made there instead. But a better option might be to redirect the talkpage of your template to that other talkpage.
===Examples===
&lt;pre&gt;
{{high-risk| 300,000+ | Wikipedia talk:High-risk templates }}
&lt;/pre&gt;
{{high-risk| 300,000+ | Wikipedia talk:High-risk templates }}
&lt;pre&gt;
{{high-risk| 300,000+ }}
&lt;/pre&gt;
{{high-risk| 300,000+ }}
&lt;pre&gt;
{{high-risk| | Wikipedia talk:High-risk templates }}
&lt;/pre&gt;
{{high-risk| | Wikipedia talk:High-risk templates }}
The full code for a /doc page top may look like this:
&lt;pre&gt;
{{documentation subpage}}
&lt;!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). --&gt;
{{high-risk| 300,000+ }}
&lt;/pre&gt;
=== Technical details ===
The [[/sandbox]] and [[/testcases]] links are the standard names for such subpages. If those pages are created then the green /doc box for the template will detect them and link to them in its heading. For instance see the top of this documentation.
=== See also ===
* {{tl|high-risk}} – For the most high-use (high-risk) templates.
* {{tl|high-use}} – For the slightly less high-risk templates.
* {{tl|intricate template}} – For the intricate, i.e., complex templates.
* {{tl|pp-template}} – The protection template that usually is put on high-risk templates.
* {{tl|used in system}} – For templates used in the Wikipedia user interface.
* [[Wikipedia:High-risk templates]]
* [[Wikipedia:Template sandbox and test cases]]
&lt;includeonly&gt;{{sandbox other||
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Template namespace templates]]
}}&lt;/includeonly&gt;</text>
<sha1>1p4nnizz9uet0dz0ddst9ce68f3bmuo</sha1>
</revision>
</page>
<page>
<title>Template:High-use/doc</title>
<ns>10</ns>
<id>17406395</id>
<revision>
<id>752548841</id>
<parentid>752548696</parentid>
<timestamp>2016-12-01T22:21:24Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>close numerical range</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2962">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE AND INTERWIKIS TO WIKIDATA. --&gt;
This is the {{tl|high-use}} message box.
It is meant to be put at the top of the documentation for templates used on 2000–100,000 pages.
For templates used on 100,000 pages or more we instead recommend using {{tl|high-risk}} which has a stronger wording.
'''Note!''' It is normal that some of the links in the message box are red.
=== Usage ===
The template can be used as is. But it can also take some parameters:
* First parameter is the number of pages. See [[toollabs:templatecount/]] to find out how many pages use your template.
* Second parameter is the name of some other talk page if you want discussion to be made there instead. But a better option might be to redirect the talkpage of your template to that other talkpage.
Here are some examples:
&lt;pre&gt;
{{high-use| 40,000 | Wikipedia talk:High-risk templates }}
&lt;/pre&gt;
{{high-use| 40,000 | Wikipedia talk:High-risk templates }}
&lt;pre&gt;
{{high-use| 40,000 }}
&lt;/pre&gt;
{{high-use| 40,000 }}
&lt;pre&gt;
{{high-use| | Wikipedia talk:High-risk templates }}
&lt;/pre&gt;
{{high-use| | Wikipedia talk:High-risk templates }}
The full code for a /doc page top can look like this:
&lt;pre&gt;
{{documentation subpage}}
{{high-use| 40,000 }}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
&lt;/pre&gt;
=== Technical details ===
The [[/sandbox]] and [[/testcases]] links are the standard names for such subpages. If those pages are created then the green /doc box for the template will detect them and link to them in its heading. For instance see the top of this documentation.
=== See also ===
* {{tl|used in system}} – For templates used in the Wikipedia user interface.
* {{tl|high-risk}} – For the most high-use (high-risk) templates.
* {{tl|high-use}} – For the slightly less high-risk templates.
* {{tl|intricate template}}
* {{tl|pp-template}} – The protection template that usually is put on high-risk templates.
* [[Wikipedia:Template sandbox and test cases]]
* [[Wikipedia:High-risk templates]]
=== Template counters ===
* [[toollabs:templatecount/]] – Easy to use, returns current (real time) transclusion count for a template.
* [[Wikipedia:Database reports/Templates transcluded on the most pages]] – Lists the 1000 most transcluded templates. Updated about once a month.
* &lt;span class=&quot;plainlinks&quot;&gt;[{{fullurl:Special:MostLinkedTemplates|limit=500}} Special:MostLinkedTemplates]&lt;/span&gt; – Currently disabled for the English Wikipedia, but still runs for other Wikipedias so might be turned on again some day.
* [[tools:~dispenser/cgi-bin/embeddedincount.py]] – Seems to lack human interface, probably meant for programs to call.
&lt;includeonly&gt;{{sandbox other||
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Template namespace templates]]
}}&lt;/includeonly&gt;</text>
<sha1>j05murfc6hj3eqkc11drshkg09t9r9i</sha1>
</revision>
</page>
<page>
<title>Template:Hlist/doc</title>
<ns>10</ns>
<id>39924173</id>
<revision>
<id>814861869</id>
<parentid>814861648</parentid>
<timestamp>2017-12-11T10:35:25Z</timestamp>
<contributor>
<username>Vermont</username>
<id>28103413</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contributions/Princesinghsomvanshi|Princesinghsomvanshi]] ([[User talk:Princesinghsomvanshi|talk]]) ([[WP:HG|HG]]) (3.3.3)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3219">{{Documentation subpage}}
{{High-use|70,000+}}
{{lua|Module:List}}
&lt;!-- Categories go at the bottom of this page and interwikis go in Wikidata. --&gt;
This template creates [[WP:HLIST|horizontal lists]]. Each item in the list may have [[CSS]] styles added to it individually, by appending a numbered parameter.
== Usage ==
'''Basic usage'''
{{pre2|&lt;nowiki&gt;{{&lt;/nowiki&gt;hlist&lt;nowiki&gt;|&lt;/nowiki&gt;''first item''&lt;nowiki&gt;|&lt;/nowiki&gt;''second item''&lt;nowiki&gt;|&lt;/nowiki&gt;''third item''&lt;nowiki&gt;|&lt;/nowiki&gt;...&lt;nowiki&gt;}}&lt;/nowiki&gt;}}
'''All parameters'''
{{pre2|
&lt;nowiki&gt;{{&lt;/nowiki&gt;hlist
&lt;nowiki&gt;|&lt;/nowiki&gt;''first item''&lt;nowiki&gt;|&lt;/nowiki&gt;''second item''&lt;nowiki&gt;|&lt;/nowiki&gt;''third item''&lt;nowiki&gt;|&lt;/nowiki&gt;...
&lt;nowiki&gt;|class = &lt;/nowiki&gt;''class''
&lt;nowiki&gt;|style = &lt;/nowiki&gt;''style''
&lt;nowiki&gt;|list_style = &lt;/nowiki&gt;''style for ul tag''
&lt;nowiki&gt;|item_style = &lt;/nowiki&gt;''style for all li tags''
&lt;nowiki&gt;|item1_style = &lt;/nowiki&gt;''style for first li tag''&lt;nowiki&gt; |item2_style = &lt;/nowiki&gt;''style for second li tag''&lt;nowiki&gt; |&lt;/nowiki&gt;...
&lt;nowiki&gt;|indent = &lt;/nowiki&gt;''indent for the list''
&lt;nowiki&gt;}}&lt;/nowiki&gt;
}}
== Parameters ==
* Positional parameters (&lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;3&lt;/code&gt;...) - these are the list items. If no list items are present, the module will output nothing.
* &lt;code&gt;class&lt;/code&gt; - a custom class for the {{tag|div}} tags surrounding the list, e.g. &lt;code&gt;plainlinks&lt;/code&gt;.
* &lt;code&gt;style&lt;/code&gt; - a custom css style for the {{tag|div}} tags surrounding the list, e.g. &lt;code&gt;font-size: 90%;&lt;/code&gt;.
* &lt;code&gt;list_style&lt;/code&gt; - a custom css style for the {{tag|ul}} tags around the list. The format is the same as for the {{para|style}} parameter.
* &lt;code&gt;item_style&lt;/code&gt; - a custom css style for all of the list items (the {{tag|li}} tags). The format is the same as for the {{para|style}} parameter.
* &lt;code&gt;item1_style&lt;/code&gt;, &lt;code&gt;item2_style&lt;/code&gt;, &lt;code&gt;item3_style&lt;/code&gt;... - custom css styles for each of the list items. The format is the same as for the {{para|style}} parameter.
* &lt;code&gt;indent&lt;/code&gt; - this parameter indents the list. The value must be a number, e.g. &lt;code&gt;2&lt;/code&gt;. The indent is calculated in [[Em (typography)|em]], and is 1.6 times the value specified. If no indent is specified, the default is zero.
== Examples ==
{{markup
| &lt;nowiki&gt;{{hlist|entry1|entry2|entry3|entry4|entry5|entry6|entry7|entry8|entry9}}&lt;/nowiki&gt;
| {{hlist|entry1|entry2|entry3|entry4|entry5|entry6|entry7|entry8|entry9}}
| &lt;nowiki&gt;{{hlist|Winner|Runner-up|Third place|item_style=color:blue;}}&lt;/nowiki&gt;
| {{hlist|Winner|Runner-up|Third place|item_style=color:blue;}}
| &lt;nowiki&gt;{{hlist|Winner|Runner-up|Third place|item_style=color:blue;|indent=2}}&lt;/nowiki&gt;
| {{hlist|Winner|Runner-up|Third place|item_style=color:blue;|indent=2}}
| &lt;nowiki&gt;{{hlist|Winner|Runner-up|Third place|item1_style=background-color:yellow;|item2_style=background-color:silver;}}&lt;/nowiki&gt;
| {{hlist|Winner|Runner-up|Third place|item1_style=background-color:yellow;|item2_style=background-color:silver;}}
}}
== See also ==
{{navbox lists}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories go here, and interwikis go in Wikidata --&gt;
[[Category:List formatting and function templates]]
}}&lt;/includeonly&gt;</text>
<sha1>9dnhceov5hqisby8kpfet7ns1rb73mh</sha1>
</revision>
</page>
<page>
<title>Template:Pre2</title>
<ns>10</ns>
<id>15949932</id>
<revision>
<id>819682635</id>
<parentid>783503019</parentid>
<timestamp>2018-01-10T18:59:35Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Pre2]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefini...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="499">&lt;pre&lt;includeonly&gt;&lt;/includeonly&gt; style=&quot;{{#ifeq:{{{1}}}|scroll|overflow:auto; white-space:pre; width:auto;{{{style|}}}&quot;&gt;{{#switch:{{{2}}}|nowiki|nw={{#tag:nowiki|{{{3}}}}}|{{{2}}}}}|white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; white-space:pre-wrap; word-wrap:break-word;{{{style|}}}&quot;&gt;{{#switch:{{{1}}}|nowiki|nw={{#tag:nowiki|{{{2}}}}}|{{{1}}}}} }}&lt;/pre&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>1i8se5w4yb8cxrdssrdq5zt8wh1lciu</sha1>
</revision>
</page>
<page>
<title>Template:Col-begin</title>
<ns>10</ns>
<id>3218295</id>
<revision>
<id>809182778</id>
<parentid>804281870</parentid>
<timestamp>2017-11-07T16:44:29Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>fix tag imbalance</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="305">&lt;div&gt;
{| class=&quot;{{{class|}}} multicol&quot; role=&quot;presentation&quot; style=&quot;{{#if:{{{small|}}}|font-size:90%; }}border-collapse: collapse; padding: 0; border: {{{border|0}}}; background:{{{bgColor|{{{bgcolor|transparent}}}}}}; width:{{{width|100%}}}; {{{style|}}}&quot;&lt;noinclude&gt;
|}&lt;/div&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>pe3gi67pa6h92ywlxfa5utzqdemn84r</sha1>
</revision>
</page>
<page>
<title>Template:Col-break</title>
<ns>10</ns>
<id>3233169</id>
<revision>
<id>804281746</id>
<parentid>729136970</parentid>
<timestamp>2017-10-07T23:26:37Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>add extra style param</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="225">&lt;p&gt;&lt;/p&gt;
| style=&quot;{{#if:{{{width|}}}|width: {{{width}}}; }}text-align: {{{align|left}}}; vertical-align: {{{valign|top}}}; {{#if: {{{gap|}}}|padding-left: {{{gap}}};}} {{{style|}}}&quot; |&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>0biz0ltaa3gl71bwdj8otygmiyg0s8n</sha1>
</revision>
</page>
<page>
<title>Template:Col-end</title>
<ns>10</ns>
<id>3218301</id>
<revision>
<id>729213521</id>
<parentid>729136976</parentid>
<timestamp>2016-07-10T18:16:50Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>[[Wikipedia:Templates_for_discussion/Log/2016_July_2#Template:Multicol]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="58">&lt;p&gt;&lt;/p&gt;
|}&lt;/div&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>soyg8vmis5frdimag99tw0559531hz9</sha1>
</revision>
</page>
<page>
<title>Template:Icon/doc</title>
<ns>10</ns>
<id>22316798</id>
<revision>
<id>809925355</id>
<parentid>809925191</parentid>
<timestamp>2017-11-12T10:38:54Z</timestamp>
<contributor>
<username>Optakeover</username>
<id>873244</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contributions/Ahmed.dawoud77|Ahmed.dawoud77]] ([[User talk:Ahmed.dawoud77|talk]]) ([[WP:HG|HG]]) (3.3.2)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="8114">{{Documentation subpage}}
&lt;includeonly&gt;{{High-risk| 287000+ }}&lt;/includeonly&gt;
{{lua|Module:Icon}}
&lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --&gt;
This template creates an inline image that is used in [[Wikipedia:Meta|metapages]] such as [[Wikipedia:Vital articles]] and/or in [[Special:ListUsers|user pages]].
== Syntax ==
'''Basic usage'''
&amp;#123;&amp;#123;icon&amp;#124;''code''&amp;#125;&amp;#125;
&amp;#123;&amp;#123;icon&amp;#124;class=''code''&amp;#125;&amp;#125;
'''Custom size'''
&amp;#123;&amp;#123;icon&amp;#124;''code''&amp;#124;size=''size''&amp;#125;&amp;#125;
== Parameters ==
* &lt;code&gt;1&lt;/code&gt; or &lt;code&gt;class&lt;/code&gt; - the icon code. See the [[#Icon codes|table below]] for a list of available codes.
* &lt;code&gt;size&lt;/code&gt; - a custom icon size, e.g. &quot;30px&quot;. The default size is &quot;16x16px&quot; (16 by 16 pixels).
== Icon codes ==
&lt;!--[[Template:Icon link]] links here--&gt;
{{col-begin}}
&lt;!--Following order of Category classes:--&gt;
{{col-break}}
{| class=&quot;wikitable sortable&quot; style=&quot;font-size:95%&quot;
! Icon&amp;nbsp; || Type&amp;nbsp; || Code&amp;nbsp;
|-
| {{icon|FA}} || '''Featured Article''' || {{tlf|icon|FA}}
|-
| {{icon|FAC}} || '''Featured Article Candidate''' || {{tlf|icon|FAC}}
|-
| {{icon|FAR}} || '''Featured Article Review''' || {{tlf|icon|FAR}}
|-
| {{icon|FARC}} || '''Featured Article Removal Candidate''' || {{tlf|icon|FARC}}
|-
| {{icon|FFA}} || '''Former Featured Article''' || {{tlf|icon|FFA}}
|-
| {{icon|FFAC}} || '''Failed Featured Article Candidate''' || {{tlf|icon|FFAC}}
|-
| {{icon|FP}} || '''Featured Picture''' || {{tlf|icon|FP}}
|-
| {{icon|FPC}} || '''Featured Picture Candidate''' || {{tlf|icon|FPC}}
|-
| {{icon|FFP}} || '''Former Featured Picture''' || {{tlf|icon|FFP}}
|-
| {{icon|FPo}} || '''Featured Portal''' || {{tlf|icon|FPo}}
|-
| {{icon|FFPo}} || '''Former Featured Portal''' || {{tlf|icon|FFPo}}
|-
| {{icon|FPoC}} || '''Featured Portal Candidate''' || {{tlf|icon|FPoC}}
|-
| {{icon|FPoR}} || '''Featured Portal Review''' || {{tlf|icon|FPoR}}
|-
| {{icon|FS}} || '''Featured Sound''' || {{tlf|icon|FS}}
|-
| {{icon|FFS}} || '''Former Featured Sound''' || {{tlf|icon|FFS}}
|-
| {{icon|FSC}} || '''Featured Sound Candidate''' || {{tlf|icon|FSC}}
|-
| {{icon|FT}} || '''Featured Topic''' || {{tlf|icon|FT}}
|-
| {{icon|FTC}} || '''Featured Topic Candidate''' || {{tlf|icon|FTC}}
|-
| {{icon|FTRC}} || '''Featured Topic Removal Candidate''' || {{tlf|icon|FTRC}}
|-
| {{icon|FFT}} || '''Former Featured Topic''' || {{tlf|icon|FFT}}
|-
| {{icon|A}} || '''A-Class Article''' || {{tlf|icon|A}}
|-
| {{icon|ACC}} || '''A-Class Article Candidate''' || {{tlf|icon|ACC}}
|-
| {{icon|DAA}} || '''Demoted A-Class Article''' || {{tlf|icon|DAA}}
|-
| {{icon|FAAC}} || '''Failed A-Class Article Candidate''' || {{tlf|icon|FAAC}}
|-
| {{icon|GA}} || '''Good Article''' || {{tlf|icon|GA}}
|-
| {{icon|GAN}} || '''Good Article Nominee''' || {{tlf|icon|GAN}}
|-
| {{icon|GA2}} || '''Good Article, 2nd Opinion''' || {{tlf|icon|GA2}}
|-
| {{icon|GAH}} || '''Good Article on Hold''' || {{tlf|icon|GAH}}
|-
| {{icon|GAR}} || '''Good Article Reassessment''' || {{tlf|icon|GAR}}
|-
| {{icon|DGA}} || '''Delisted Good Article''' || {{tlf|icon|DGA}}
|-
| {{icon|FGAN}} || '''Failed Good Article Nominee''' || {{tlf|icon|FGAN}}
|-
| {{icon|GT}} || '''Good Topic''' || {{tlf|icon|GT}}
|-
| {{icon|GTC}} || '''Good Topic Candidate''' || {{tlf|icon|GTC}}
|-
| {{icon|GTRC}} || '''Good Topic Removal Candidate''' || {{tlf|icon|GTRC}}
|-
| {{icon|bplus|b+}} || '''Bplus-Class Article''' || {{tlf|icon|BPLUS}}
|-
| {{icon|b}} || '''B-Class Article''' || {{tlf|icon|B}}
|-
| {{icon|br|bcr}} || '''B-Class Review''' || {{tlf|icon|BR}}
|-
| {{icon|c}} || '''C-Class Article''' || {{tlf|icon|C}}
|-
| {{icon|start}} || '''Start-Class Article''' || {{tlf|icon|START}}
|-
| {{icon|stub}} || '''Stub-Class Article''' || {{tlf|icon|STUB}}
|-
| {{icon|FL}} || '''Featured List''' || {{tlf|icon|FL}}
|-
| {{icon|FLC}} || '''Featured List Candidate''' || {{tlf|icon|FLC}}
|-
| {{icon|FFL}} || '''Former Featured List''' || {{tlf|icon|FFL}}
|-
| {{icon|FFLC}} || '''Failed Featured List Candidate''' || {{tlf|icon|FFLC}}
|-
| {{icon|FLR}} || '''Featured List Review''' || {{tlf|icon|FLR}}
|-
| {{icon|FLRC}} || '''Featured List Removal Candidate''' || {{tlf|icon|FLRC}}
|}
{{col-break}}
{| class=&quot;wikitable sortable&quot; style=&quot;font-size:95%&quot;
! Icon&amp;nbsp; || Type&amp;nbsp; || Code&amp;nbsp;
|-
| {{icon|List}} || '''List-Class Article''' || {{tlf|icon|LIST}}
|-
| {{icon|Book}} || '''Wikipedia Book''' || {{tlf|icon|Book}}
|-
| {{icon|Cat|Categ|Category}} || '''Category''' || {{tlf|icon|Category}}
|-
| {{icon|dab|disamb|disambig|disambiguation}} || '''Disambiguation page''' || {{tlf|icon|Disambig}}
|-
| {{icon|Image|File}} || '''File''' || {{tlf|icon|Image}}
|-
| {{icon|VP}} || '''Valued Picture''' || {{tlf|icon|VP}}
|-
| {{icon|VPC}} || '''Valued Picture Candidate''' || {{tlf|icon|VPC}}
|-
| {{icon|portal}} || '''Portal''' || {{tlf|icon|Portal}}
|-
| {{icon|project}} || '''Project Page''' || {{tlf|icon|Project}}
|-
| {{icon|red|redir|redirect}} || '''Redirect''' || {{tlf|icon|Redirect}}
|-
| {{icon|temp|templ|template}} || '''Template''' || {{tlf|icon|Template}}
|-
| {{icon|essay}} || '''Essay''' || {{tlf|icon|Essay}}
|-
| {{icon|na}} || '''Non-article Page''' || {{tlf|icon|NA}}
|-
| {{icon|no}} || '''Unknown-Class Article''' || {{tlf|icon|NO}}
|-
| {{icon|Unassessed}} || '''Unassessed Article''' || {{tlf|icon|Unassessed}}
|-
| {{icon|aa}} || '''Audited Article of limited subject matter''' || {{tlf|icon|AA}}
|-
| {{icon|DA}} || '''Demoted Article''' || {{tlf|icon|DA}}
|-
| {{icon|DYK}} || '''Did You Know?''' || {{tlf|icon|DYK}}
|-
| {{icon|DYK2}} || '''Did You Know? (alternate)''' || {{tlf|icon|DYK2}}
|-
| {{icon|ITN}} || '''In The News''' || {{tlf|icon|ITN}}
|-
| {{icon|OTD}} || '''On This Day''' || {{tlf|icon|OTD}}
|-
| {{icon|PR}} || '''Peer Review''' || {{tlf|icon|PR}}
|-
| {{icon|PPR}} || '''Portal Peer Review''' || {{tlf|icon|PPR}}
|-
| {{icon|Q}} || '''Question''' || {{tlf|icon|Q}}
|-
| {{icon|QI}} || '''Quality Image on Wikimedia Commons''' || {{tlf|icon|QI}}
|-
| {{icon|TFA}} || '''Today's Featured Article''' || {{tlf|icon|TFA}}
|-
| {{icon|VI}} || '''Valued Image on Wikimedia Commons''' || {{tlf|icon|VI}}
|-
| {{icon|Commons}} || '''Commons page''' || {{tlf|icon|Commons}}
|-
| {{icon|Meta}} || '''Meta-wiki page''' || {{tlf|icon|Meta}}
|-
| {{icon|Wikibooks}} || '''Wikibooks page''' || {{tlf|icon|Wikibooks}}
|-
| {{icon|Wikidata}} || '''Wikidata page''' || {{tlf|icon|Wikidata}}
|-
| {{icon|Wikinews}} || '''Wikinews page''' || {{tlf|icon|Wikinews}}
|-
| {{icon|Wikipedia}} || '''Wikipedia page''' || {{tlf|icon|Wikipedia}}
|-
| {{icon|WikiProject}} || '''WikiProject page''' || {{tlf|icon|WikiProject}}
|-
| {{icon|Wikiquote}} || '''Wikiquote page''' || {{tlf|icon|Wikiquote}}
|-
| {{icon|Wikisource}} || '''Wikisource page''' || {{tlf|icon|Wikisource}}
|-
| {{icon|Wikispecies}} || '''Wikispecies page''' || {{tlf|icon|Wikispecies}}
|-
| {{icon|Wikiversity}} || '''Wikiversity page''' || {{tlf|icon|Wikiversity}}
|-
| {{icon|Wikivoyage}} || '''Wikivoyage page''' || {{tlf|icon|Wikivoyage}}
|-
| {{icon|Wiktionary}} || '''Wiktionary page''' || {{tlf|icon|Wiktionary}}
|-
| {{icon|FOUR}} || '''Four Award''' || {{tlf|icon|FOUR}}
|-
| {{icon|Million}} || '''Million Award''' || {{tlf|icon|Million}}
|}
{{col-end}}
== TemplateData ==
{{TemplateData header}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;This template creates an inline icon-sized image. Please refer to 'Template:Icon/doc' for the list of supported values.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Icon&quot;,
&quot;description&quot;: &quot;The identifier or name of the icon to be displayed.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;required&quot;: false,
&quot;aliases&quot;: [
&quot;class&quot;
],
&quot;default&quot;: &quot;&quot;
},
&quot;size&quot;: {
&quot;description&quot;: &quot;The size of the icon to display, e.g. \&quot;30px\&quot;.&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;default&quot;: &quot;16x16px&quot;
}
}
}
&lt;/templatedata&gt;
== See also ==
* {{tl|icon+link}}
&lt;!--This page transcluded beyond this template's page/subpages, so:--&gt;
{{#ifeq:{{FULLPAGENAME}}|Template:Icon
| &lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Single-image insertion templates]]
}}</text>
<sha1>byvspu2jzptthegn71asd2tuvvd0tur</sha1>
</revision>
</page>
<page>
<title>Help:Infobox/user style</title>
<ns>12</ns>
<id>49658456</id>
<revision>
<id>818759473</id>
<parentid>780389769</parentid>
<timestamp>2018-01-05T12:06:17Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>make it clear this is an ideal; we're nowhere even vaguely close to it, and as use of Taxobox, etc., demonstrate, the idea – stated so broadly – may not even have consensus.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1880">{{{heading|
==Infoboxes and user style ==
}}}
Users can have [[WP:User style|user CSS]] that hides&lt;!--, moves, or makes collapsible--&gt; any infoboxes in their own browsers.
To hide all infoboxes, add the following to [[Special:MyPage/common.css]] (for all [[WP:Skin|skins]], or [[Special:MyPage/skin.css]] for just the current skin), on a line by itself:
&lt;source lang=&quot;css&quot;&gt;.infobox { display: none; }&lt;/source&gt;
Alternatively, you can add the following code to [[Special:MyPage/common.js|your common.js]] or into a browser user script that is executed by an extension like [[Greasemonkey]]:
&lt;source lang=&quot;js&quot;&gt;$('.infobox').hide();&lt;/source&gt;
Be aware that although, per [[WP:Manual of Style/Infoboxes]], all information in an infobox ideally should also be found in the main body of an article, there isn't perfect compliance with this guideline. For example, the full taxonomic hierarchy in {{tl|Taxobox}}, and the OMIM and other medical database codes of {{tl|Infobox disease}} are often not found in the main article content. The infobox is also often the location of the most significant, even only, image in an article.&lt;!--
Needs Special:Mypage/common.js options for:
* Making infoboxes collapsible
** Making them auto-collapsed
* Moving infoboxes to bottom of page
--&gt;&lt;noinclude&gt;
{{Documentation|content=
This documentation snippet is transcluded at [[Help:Infobox]], [[Template:Infobox/doc]], [[WP:Customisation#Hiding specific messages]], [[Help:User style]], [[WP:Manual of Style/Infoboxes]], and other places where this information is relevant.
As a template, this snippet takes a {{para|heading}} parameter to replace the level-2 &lt;code&gt;==Infoboxes and user style==&lt;/code&gt; section heading code, as needed. E.g, for a &lt;code&gt;=== ... ===&lt;/code&gt; level-3 heading: &lt;code&gt;&lt;nowiki&gt;heading={{=}}{{=}}{{=}}Infoboxes and user style{{=}}{{=}}{{=}}&lt;/nowiki&gt;&lt;/code&gt;
}}
&lt;/noinclude&gt;</text>
<sha1>jhkkrzowv2dywpghslnn7zwq7c9bukv</sha1>
</revision>
</page>
<page>
<title>Module:InfoboxImage</title>
<ns>828</ns>
<id>38581924</id>
<revision>
<id>769944044</id>
<parentid>755884847</parentid>
<timestamp>2017-03-12T14:50:35Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>add px to sizedefault if just a number</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="9641">-- Inputs:
-- image - Can either be a bare filename (with or without the File:/Image: prefix) or a fully formatted image link
-- page - page to display for multipage images (DjVu)
-- size - size to display the image
-- maxsize - maximum size for image
-- sizedefault - default size to display the image if size param is blank
-- alt - alt text for image
-- title - title text for image
-- border - set to yes if border
-- center - set to yes, if the image has to be centered
-- upright - upright image param
-- suppressplaceholder - if yes then checks to see if image is a placeholder and suppresses it
-- link - page to visit when clicking on image
-- Outputs:
-- Formatted image.
-- More details available at the &quot;Module:InfoboxImage/doc&quot; page
local i = {};
local placeholder_image = {
&quot;Blue - Replace this image female.svg&quot;,
&quot;Blue - Replace this image male.svg&quot;,
&quot;Female no free image yet.png&quot;,
&quot;Flag of None (square).svg&quot;,
&quot;Flag of None.svg&quot;,
&quot;Flag of.svg&quot;,
&quot;Green - Replace this image female.svg&quot;,
&quot;Green - Replace this image male.svg&quot;,
&quot;Image is needed female.svg&quot;,
&quot;Image is needed male.svg&quot;,
&quot;Location map of None.svg&quot;,
&quot;Male no free image yet.png&quot;,
&quot;Missing flag.png&quot;,
&quot;No flag.svg&quot;,
&quot;No free portrait.svg&quot;,
&quot;No portrait (female).svg&quot;,
&quot;No portrait (male).svg&quot;,
&quot;Red - Replace this image female.svg&quot;,
&quot;Red - Replace this image male.svg&quot;,
&quot;Replace this image female (blue).svg&quot;,
&quot;Replace this image female.svg&quot;,
&quot;Replace this image male (blue).svg&quot;,
&quot;Replace this image male.svg&quot;,
&quot;Silver - Replace this image female.svg&quot;,
&quot;Silver - Replace this image male.svg&quot;,
&quot;Replace this image.svg&quot;,
&quot;Cricket no pic.png&quot;,
&quot;CarersLogo.gif&quot;,
&quot;Diagram Needed.svg&quot;,
&quot;Example.jpg&quot;,
&quot;Image placeholder.png&quot;,
&quot;No male portrait.svg&quot;,
&quot;Nocover-upload.png&quot;,
&quot;NoDVDcover copy.png&quot;,
&quot;Noribbon.svg&quot;,
&quot;No portrait-BFD-test.svg&quot;,
&quot;Placeholder barnstar ribbon.png&quot;,
&quot;Project Trains no image.png&quot;,
&quot;Image-request.png&quot;,
&quot;Sin bandera.svg&quot;,
&quot;Sin escudo.svg&quot;,
&quot;Replace this image - temple.png&quot;,
&quot;Replace this image butterfly.png&quot;,
&quot;Replace this image.svg&quot;,
&quot;Replace this image1.svg&quot;,
&quot;Resolution angle.png&quot;,
&quot;Image-No portrait-text-BFD-test.svg&quot;,
&quot;Insert image here.svg&quot;,
&quot;No image available.png&quot;,
&quot;NO IMAGE YET square.png&quot;,
&quot;NO IMAGE YET.png&quot;,
&quot;No Photo Available.svg&quot;,
&quot;No Screenshot.svg&quot;,
&quot;No-image-available.jpg&quot;,
&quot;Null.png&quot;,
&quot;PictureNeeded.gif&quot;,
&quot;Place holder.jpg&quot;,
&quot;Unbenannt.JPG&quot;,
&quot;UploadACopyrightFreeImage.svg&quot;,
&quot;UploadAnImage.gif&quot;,
&quot;UploadAnImage.svg&quot;,
&quot;UploadAnImageShort.svg&quot;,
&quot;CarersLogo.gif&quot;,
&quot;Diagram Needed.svg&quot;,
&quot;No male portrait.svg&quot;,
&quot;NoDVDcover copy.png&quot;,
&quot;Placeholder barnstar ribbon.png&quot;,
&quot;Project Trains no image.png&quot;,
&quot;Image-request.png&quot;,
}
function i.IsPlaceholder(image)
-- change underscores to spaces
image = mw.ustring.gsub(image, &quot;_&quot;, &quot; &quot;);
assert(image ~= nil, 'mw.ustring.gsub(image, &quot;_&quot;, &quot; &quot;) must not return nil')
-- if image starts with [[ then remove that and anything after |
if mw.ustring.sub(image,1,2) == &quot;[[&quot; then
image = mw.ustring.sub(image,3);
image = mw.ustring.gsub(image, &quot;([^|]*)|.*&quot;, &quot;%1&quot;);
assert(image ~= nil, 'mw.ustring.gsub(image, &quot;([^|]*)|.*&quot;, &quot;%1&quot;) must not return nil')
end
-- Trim spaces
image = mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1');
assert(image ~= nil, &quot;mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1') must not return nil&quot;)
-- remove prefix if exists
local allNames = mw.site.namespaces[6].aliases
allNames[#allNames + 1] = mw.site.namespaces[6].name
allNames[#allNames + 1] = mw.site.namespaces[6].canonicalName
for i, name in ipairs(allNames) do
if mw.ustring.lower(mw.ustring.sub(image, 1, mw.ustring.len(name) + 1)) == mw.ustring.lower(name .. &quot;:&quot;) then
image = mw.ustring.sub(image, mw.ustring.len(name) + 2);
break
end
end
-- Trim spaces
image = mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1');
-- capitalise first letter
image = mw.ustring.upper(mw.ustring.sub(image,1,1)) .. mw.ustring.sub(image,2);
for i,j in pairs(placeholder_image) do
if image == j then
return true
end
end
return false
end
function i.InfoboxImage(frame)
local image = frame.args[&quot;image&quot;];
if image == &quot;&quot; or image == nil then
return &quot;&quot;;
end
if image == &quot;&amp;nbsp;&quot; then
return image;
end
if frame.args[&quot;suppressplaceholder&quot;] ~= &quot;no&quot; then
if i.IsPlaceholder(image) == true then
return &quot;&quot;;
end
end
if mw.ustring.lower(mw.ustring.sub(image,1,5)) == &quot;http:&quot; then
return &quot;&quot;;
end
if mw.ustring.lower(mw.ustring.sub(image,1,6)) == &quot;[http:&quot; then
return &quot;&quot;;
end
if mw.ustring.lower(mw.ustring.sub(image,1,7)) == &quot;[[http:&quot; then
return &quot;&quot;;
end
if mw.ustring.lower(mw.ustring.sub(image,1,6)) == &quot;https:&quot; then
return &quot;&quot;;
end
if mw.ustring.lower(mw.ustring.sub(image,1,7)) == &quot;[https:&quot; then
return &quot;&quot;;
end
if mw.ustring.lower(mw.ustring.sub(image,1,8)) == &quot;[[https:&quot; then
return &quot;&quot;;
end
if mw.ustring.sub(image,1,2) == &quot;[[&quot; then
-- search for thumbnail images and add to tracking cat if found
if mw.title.getCurrentTitle().namespace == 0 and (mw.ustring.find(image, &quot;|%s*thumb%s*[|%]]&quot;) or mw.ustring.find(image, &quot;|%s*thumbnail%s*[|%]]&quot;)) then
return image .. &quot;[[Category:Pages using infoboxes with thumbnail images]]&quot;;
elseif mw.title.getCurrentTitle().namespace == 0 then
return image .. &quot;[[Category:Pages using deprecated image syntax]]&quot;;
else
return image;
end
elseif mw.ustring.sub(image,1,2) == &quot;{{&quot; and mw.ustring.sub(image,1,3) ~= &quot;{{{&quot; then
return image;
elseif mw.ustring.sub(image,1,1) == &quot;&lt;&quot; then
return image;
elseif mw.ustring.sub(image,1,5) == mw.ustring.char(127)..&quot;UNIQ&quot; then
-- Found strip marker at begining, so pass don't process at all
return image;
elseif mw.ustring.sub(image,4,9) == &quot;`UNIQ-&quot; then
-- Found strip marker at begining, so pass don't process at all
return image;
else
local result = &quot;&quot;;
local page = frame.args[&quot;page&quot;];
local size = frame.args[&quot;size&quot;];
local maxsize = frame.args[&quot;maxsize&quot;];
local sizedefault = frame.args[&quot;sizedefault&quot;];
local alt = frame.args[&quot;alt&quot;];
local link = frame.args[&quot;link&quot;];
local title = frame.args[&quot;title&quot;];
local border = frame.args[&quot;border&quot;];
local upright = frame.args[&quot;upright&quot;] or &quot;&quot;;
local thumbtime = frame.args[&quot;thumbtime&quot;] or &quot;&quot;;
local center= frame.args[&quot;center&quot;];
-- remove prefix if exists
local allNames = mw.site.namespaces[6].aliases
allNames[#allNames + 1] = mw.site.namespaces[6].name
allNames[#allNames + 1] = mw.site.namespaces[6].canonicalName
for i, name in ipairs(allNames) do
if mw.ustring.lower(mw.ustring.sub(image, 1, mw.ustring.len(name) + 1)) == mw.ustring.lower(name .. &quot;:&quot;) then
image = mw.ustring.sub(image, mw.ustring.len(name) + 2);
break
end
end
if maxsize ~= &quot;&quot; and maxsize ~= nil then
-- if no sizedefault then set to maxsize
if sizedefault == &quot;&quot; or sizedefault == nil then
sizedefault = maxsize
end
-- check to see if size bigger than maxsize
if size ~= &quot;&quot; and size ~= nil then
local sizenumber = tonumber(mw.ustring.match(size,&quot;%d*&quot;)) or 0;
local maxsizenumber = tonumber(mw.ustring.match(maxsize,&quot;%d*&quot;)) or 0;
if sizenumber&gt;maxsizenumber and maxsizenumber&gt;0 then
size = maxsize;
end
end
end
-- add px to size if just a number
if (tonumber(size) or 0) &gt; 0 then
size = size .. &quot;px&quot;;
end
-- add px to sizedefault if just a number
if (tonumber(sizedefault) or 0) &gt; 0 then
sizedefault = sizedefault .. &quot;px&quot;;
end
result = &quot;[[File:&quot; .. image;
if page ~= &quot;&quot; and page ~= nil then
result = result .. &quot;|page=&quot; .. page;
end
if size ~= &quot;&quot; and size ~= nil then
result = result .. &quot;|&quot; .. size;
elseif sizedefault ~= &quot;&quot; and sizedefault ~= nil then
result = result .. &quot;|&quot; .. sizedefault;
else
result = result .. &quot;|frameless&quot;;
end
if center == &quot;yes&quot; then
result = result .. &quot;|center&quot;
end
if alt ~= &quot;&quot; and alt ~= nil then
result = result .. &quot;|alt=&quot; .. alt;
end
if link ~= &quot;&quot; and link ~= nil then
result = result .. &quot;|link=&quot; .. link;
end
if border == &quot;yes&quot; then
result = result .. &quot;|border&quot;;
end
if upright == &quot;yes&quot; then
result = result .. &quot;|upright&quot;;
elseif upright ~= &quot;&quot; then
result = result .. &quot;|upright=&quot; .. upright;
end
if thumbtime ~= &quot;&quot; then
result = result .. &quot;|thumbtime=&quot; .. thumbtime;
end
if title ~= &quot;&quot; and title ~= nil then
result = result .. &quot;|&quot; .. title;
elseif alt ~= &quot;&quot; and alt ~= nil then
result = result .. &quot;|&quot; .. alt;
end
result = result .. &quot;]]&quot;;
return result;
end
end
return i;</text>
<sha1>n4nldwdqxa2f7m558z3tw0vr90z070g</sha1>
</revision>
</page>
<page>
<title>Template:Intmath/doc</title>
<ns>10</ns>
<id>38742957</id>
<revision>
<id>788969588</id>
<parentid>716164421</parentid>
<timestamp>2017-07-04T15:08:53Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5602">{{documentation subpage}}
This template generates [[integral symbol]]s using [[unicode]], for inline {{tl|math}} formulae as an alternative to [[LaTeX]] generated in [[Wikipedia:«math»|&amp;lt;math&gt;]].
==Parameters==
The template has three parameters, applicable one by one:
&lt;ol&gt;
&lt;li&gt;'''''Integral sign:''''' Choose one of:
*''int'' for ∫ symbol is U+222B
*''iint'' for ∬ ([[double integral]], U+222C),
*''iiint'' for ∭ ([[triple integral]], U+222D),
*''oint'' for ∮ ([[contour integral]], U+222E),
*''varointclockwise'' for ∲ ([[clockwise]] contour integral, U+2232)
*''ointctrclockwise'' for ∳ ([[anticlockwise]] contour integral, U+2233),
*''oiint'' for ∯ ([[closed manifold|closed]] [[surface integral]], U+222F),
*''oiiint'' for ∰ (closed [[volume integral]], U+2230).
These match the LaTeX definitions exactly: &lt;span style=&quot;color:red;&quot;&gt;'''''please do not modify them for something more &quot;convenient&quot;, thank you'''''&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;'''''Subscript:''''' Enter the subscript (symbol or short expression), for the lower limit or denoting an ''n''-[[Dimension (mathematics and physics)|dimension]]al space or the (''n'' − 1)- dimensional [[boundary (topology)|boundary]].&lt;/li&gt;
&lt;li&gt;'''''Superscript:''''' Enter the superscript (symbol or short expression) for the upper limit.&lt;/li&gt;
&lt;/ol&gt;
'''NB:'''
*Applying {{code|font-style: italic;}} or {{code|font-style: oblique;}} to the integral symbol has no effect in Firefox, it remains upright. E.g.
*:{{code|&lt;span style{{=}}&quot;font-style: italic;&quot;&gt;∫&lt;/span&gt;}} yields &lt;span style=&quot;font-style: italic;&quot;&gt;∫&lt;/span&gt;;
*:{{code|&lt;span style{{=}}&quot;font-style: oblique;&quot;&gt;∫&lt;/span&gt;}} yields &lt;span style=&quot;font-style: oblique;&quot;&gt;∫&lt;/span&gt;.
*This template already includes {{tl|su}}.
==Examples==
===No {{tl|math}}===
[[Gamma function]]
:Γ(''z'') = {{intmath|int|0|∞}} ''e''&lt;sup&gt;−''t''&lt;/sup&gt;''t''&lt;sup&gt;''z'' − 1&lt;/sup&gt;''dt''
:&lt;code&gt;&lt;nowiki&gt;Γ(''z'') = {{intmath|int|0|∞}} ''e''&lt;sup&gt;−''t''&lt;/sup&gt;''t''&lt;sup&gt;''z'' − 1&lt;/sup&gt;''dt''&lt;/nowiki&gt;&lt;/code&gt;
[[Line integral]]
:{{intmath|varointclockwise|''C''}} ''F''('''x''') ∙ ''d'''''x''' = −{{intmath|ointctrclockwise|''C''}} ''F''('''x''') ∙ ''d'''''x'''
:&lt;code&gt;&lt;nowiki&gt;{{intmath|varointclockwise|''C''}} ''F''('''x''') ∙ ''d'''''x''' = −{{intmath|ointctrclockwise|''C''}} ''F''('''x''') ∙ ''d'''''x'''&lt;/nowiki&gt;&lt;/code&gt;
[[Maxwell's equations]]
:{{intmath|oiint|∂''V''}} '''E''' ∙ ''d'''''S''' = {{sfrac|1|''ε''&lt;sub&gt;0&lt;/sub&gt;}}{{intmath|iiint|''V''}} ''ρ'' ''dV''
:{{intmath|oiint|∂''V''}} '''B''' ∙ ''d'''''S''' = 0
:{{intmath|oint|∂''S''}} '''E''' ∙ ''d'''''x''' = −{{intmath|iint|''S''}} {{sfrac|∂'''B'''|∂''t''}} ∙ ''d'''''S'''
:{{intmath|oint|∂''S''}} '''B''' ∙ ''d'''''x''' = {{intmath|iint|''S''}} (''μ''&lt;sub&gt;0&lt;/sub&gt;'''J''' + {{sfrac|1|''c''&lt;sup&gt;2&lt;/sup&gt;}}{{sfrac|∂'''E'''|∂''t''}}) ∙ ''d'''''S'''
:&lt;code&gt;&lt;nowiki&gt;{{intmath|oiint|∂''V''}} '''E''' ∙ ''d'''''S''' = {{sfrac|1|''ε''&lt;sub&gt;0&lt;/sub&gt;}}{{intmath|iiint|''V''}} ''ρ'' ''dV''&lt;/nowiki&gt;&lt;/code&gt;
:&lt;code&gt;&lt;nowiki&gt;{{intmath|oiint|∂''V''}} '''B''' ∙ ''d'''''S''' = 0&lt;/nowiki&gt;&lt;/code&gt;
:&lt;code&gt;&lt;nowiki&gt;{{intmath|oint|∂''S''}} '''E''' ∙ ''d'''''x''' = −{{intmath|iint|''S''}} {{sfrac|∂'''B'''|∂''t''}} ∙ ''d'''''S'''&lt;/nowiki&gt;&lt;/code&gt;
:&lt;code&gt;&lt;nowiki&gt;{{intmath|oint|∂''S''}} '''B''' ∙ ''d'''''x''' = {{intmath|iint|''S''}} (''μ''&lt;sub&gt;0&lt;/sub&gt;'''J''' + {{sfrac|1|''c''&lt;sup&gt;2&lt;/sup&gt;}}{{sfrac|∂'''E'''|∂''t''}}) ∙ ''d'''''S'''
&lt;/nowiki&gt;&lt;/code&gt;
==={{tl|math}}===
[[Gamma function]]
:{{math|Γ(''z'') {{=}} {{intmath|int|0|∞}} ''e''&lt;sup&gt;−''t''&lt;/sup&gt;''t''&lt;sup&gt;''z'' − 1&lt;/sup&gt;''dt''}}
:&lt;code&gt;&lt;nowiki&gt;{{math|Γ(''z'') {{=}} {{intmath|int|0|∞}} ''e''&lt;sup&gt;−''t''&lt;/sup&gt;''t''&lt;sup&gt;''z'' − 1&lt;/sup&gt;''dt''}}&lt;/nowiki&gt;&lt;/code&gt;
[[Line integral]]
:{{intmath|varointclockwise|''C''}}{{math|''F''('''x''') ∙ ''d'''''x''' {{=}} −{{intmath|ointctrclockwise|''C''}} ''F''('''x''') ∙ ''d'''''x'''}}
:&lt;code&gt;&lt;nowiki&gt;{{math|{{intmath|varointclockwise|''C''}} ''F''('''x''') ∙ ''d'''''x''' {{=}} −{{intmath|ointctrclockwise|''C''}} ''F''('''x''') ∙ ''d'''''x'''}}&lt;/nowiki&gt;&lt;/code&gt;
[[Maxwell's equations]]
:{{math|{{intmath|oiint|∂''V''}} '''E''' ∙ ''d'''''S''' {{=}} {{sfrac|1|''ε''&lt;sub&gt;0&lt;/sub&gt;}}{{intmath|iiint|''V''}} ''ρ'' ''dV''}}
:{{math|{{intmath|oiint|∂''V''}} '''B''' ∙ ''d'''''S''' {{=}} 0}}
:{{math|{{intmath|oint|∂''S''}} '''E''' ∙ ''d'''''x''' {{=}} −{{intmath|iint|''S''}} {{sfrac|∂'''B'''|∂''t''}} ∙ ''d'''''S'''}}
:{{math|{{intmath|oint|∂''S''}} '''B''' ∙ ''d'''''x''' {{=}} {{intmath|iint|''S''}} (''μ''&lt;sub&gt;0&lt;/sub&gt;'''J''' + {{sfrac|1|''c''&lt;sup&gt;2&lt;/sup&gt;}}{{sfrac|∂'''E'''|∂''t''}}) ∙ ''d'''''S'''}}
:&lt;code&gt;&lt;nowiki&gt;{{math|{{intmath|oiint|∂''V''}} '''E''' ∙ ''d'''''S''' {{=}} {{sfrac|1|''ε''&lt;sub&gt;0&lt;/sub&gt;}}{{intmath|iiint|''V''}} ''ρ'' ''dV''}}&lt;/nowiki&gt;&lt;/code&gt;
:&lt;code&gt;&lt;nowiki&gt;{{math|{{intmath|oiint|∂''V''}} '''B''' ∙ ''d'''''S''' {{=}} 0}}&lt;/nowiki&gt;&lt;/code&gt;
:&lt;code&gt;&lt;nowiki&gt;{{math|{{intmath|oint|∂''S''}} '''E''' ∙ ''d'''''x''' {{=}} −{{intmath|iint|''S''}} {{sfrac|∂'''B'''|∂''t''}} ∙ ''d'''''S'''}}&lt;/nowiki&gt;&lt;/code&gt;
:&lt;code&gt;&lt;nowiki&gt;{{math|{{intmath|oint|∂''S''}} '''B''' ∙ ''d'''''x''' {{=}} {{intmath|iint|''S''}} (''μ''&lt;sub&gt;0&lt;/sub&gt;'''J''' + {{sfrac|1|''c''&lt;sup&gt;2&lt;/sup&gt;}}{{sfrac|∂'''E'''|∂''t''}}) ∙ ''d'''''S'''}}
&lt;/nowiki&gt;&lt;/code&gt;
==See also==
*{{tl|Intorient}}
*{{tl|oiiint}}
*{{tl|oiint}}
*[[Wikipedia:Rendering math]]
{{Math templates|notation}}
&lt;includeonly&gt;{{basepage subpage|
&lt;!-- Categories go here: --&gt;
[[Category:Mathematical formatting templates]]
}}&lt;/includeonly&gt;</text>
<sha1>5uo8mmzmhuma82zyv0mq7ww32yjosy9</sha1>
</revision>
</page>
<page>
<title>Template:Cob</title>
<ns>10</ns>
<id>24320749</id>
<redirect title="Template:Collapse bottom" />
<revision>
<id>481600899</id>
<parentid>313402851</parentid>
<timestamp>2012-03-13T00:04:32Z</timestamp>
<contributor>
<username>Gfoley4</username>
<id>11386661</id>
</contributor>
<minor/>
<comment>Protected Template:Cob: redirect to a highly used template (‎[edit=sysop] (indefinite) ‎[move=sysop] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="38">#REDIRECT [[Template:Collapse bottom]]</text>
<sha1>7mew2vfn0t93rnp5fn8nnmy3qkudjlf</sha1>
</revision>
</page>
<page>
<title>Template:Cot</title>
<ns>10</ns>
<id>24320744</id>
<redirect title="Template:Collapse top" />
<revision>
<id>774601638</id>
<parentid>539002390</parentid>
<timestamp>2017-04-09T15:24:39Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Cot]]&quot;: Matching redirect target ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="84">#REDIRECT [[Template:Collapse top]]
&lt;noinclude&gt;{{pp-template|small=yes}}&lt;/noinclude&gt;</text>
<sha1>s3xvijd2z3pdpd8b71nxb3oihjcqibf</sha1>
</revision>
</page>
<page>
<title>Template:Lorem ipsum/doc</title>
<ns>10</ns>
<id>7868049</id>
<revision>
<id>732731930</id>
<parentid>732731683</parentid>
<timestamp>2016-08-02T21:46:22Z</timestamp>
<contributor>
<username>Trappist the monk</username>
<id>10289486</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/66.87.135.147|66.87.135.147]] ([[User talk:66.87.135.147|talk]]) to last version by Bentogoa</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2892">{{documentation subpage}}
&lt;!---PLEASE ADD METADATA TO THE &lt;includeonly&gt; SECTION AT THE BOTTOM OF THIS PAGE---&gt;
{{template shortcut|Ipsum|Lipsum|Lorem|Loremipsum}}
This template outputs the &quot;[[lorem ipsum]]&quot; filler text. It takes four parameters: the number of paragraphs to generate, paragraph prefix, paragraph suffix, and an option to link lorem ipsum. There are 10 distinct paragraphs, but it can produce up to 20.
==Syntax==
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;This template generates a filler text for test purposes. Text generated is the well-known \&quot;Lorem ipsum\&quot; passage, which is gibberish that somewhat resembles Latin. There are 10 distinct paragraphs, but it can produce up to 20.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Number of paragraphs&quot;,
&quot;description&quot;: &quot;Number of paragraphs to be shown. A number from 1 to 20 is acceptable.&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;autovalue&quot;: &quot;1&quot;,
&quot;required&quot;: true,
&quot;suggested&quot;: true
},
&quot;2&quot;: {
&quot;label&quot;: &quot;Paragraph prefix&quot;,
&quot;description&quot;: &quot;Wikicode or text to prefix to each paragraph. For example, specifying * « causes each paragraph to become a bullet list and start with a quotation mark.&quot;,
&quot;type&quot;: &quot;unbalanced-wikitext&quot;,
&quot;autovalue&quot;: &quot;&quot;
},
&quot;3&quot;: {
&quot;label&quot;: &quot;Paragraph suffix&quot;,
&quot;description&quot;: &quot;Wikicode or text to suffix to each paragraph. For example, specifying » causes each paragraph to end with this character.&quot;,
&quot;type&quot;: &quot;unbalanced-wikitext&quot;
},
&quot;4&quot;: {
&quot;aliases&quot;: [
&quot;link&quot;
],
&quot;label&quot;: &quot;Link to [[Lorem ipsum]]?&quot;,
&quot;description&quot;: &quot;Setting this parameter to \&quot;yes\&quot; causes a link to the \&quot;Lorem ipsum\&quot; article to appear.&quot;,
&quot;type&quot;: &quot;boolean&quot;
}
}
}
&lt;/templatedata&gt;
==Examples==
&lt;code&gt;&lt;nowiki&gt;{{Lorem ipsum|2|* &quot;|&quot;}}&lt;/nowiki&gt;&lt;/code&gt; generates:
{{Lorem ipsum|2|* &quot;|&quot;}}
Note that whitespace is important in the second and third parameters, as &lt;code&gt;&lt;nowiki&gt;{{Lorem ipsum|1| * &quot; | &quot; }}&lt;/nowiki&gt;&lt;/code&gt; results in:
{{Lorem ipsum|1| * &quot; | &quot; }}
All sections of text can run together by entering a space into the third parameter. &lt;code&gt;&lt;nowiki&gt;&lt;blockquote style=&quot;background: white&quot;&gt;{{Lorem ipsum|2|| }}&lt;/blockquote&gt;&lt;/nowiki&gt;&lt;/code&gt; will produce:
&lt;blockquote style=&quot;background: white&quot;&gt;{{Lorem ipsum|2|| }}&lt;/blockquote&gt;
To link lorem ipsum, either enter &lt;code&gt;link=yes&lt;/code&gt;, or &lt;code&gt;yes&lt;/code&gt; into the fourth parameter. &lt;code&gt;&lt;nowiki&gt;{{Lorem ipsum|2=#|link=yes}}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{Lorem ipsum|1|#||yes}}&lt;/nowiki&gt;&lt;/code&gt; will generate:
{{Lorem ipsum|2=#|link=yes}}
If fewer than 446 characters are desired, then [[Template:Str left]] can be used. &lt;code&gt;&lt;nowiki&gt;{{Str left|{{Lorem ipsum}}|123}}&lt;/nowiki&gt;&lt;/code&gt; will result in:
{{Str left|{{Lorem ipsum}}|123}}
==Full text==
{{cot}}
{{Lorem ipsum|10}}
{{cob}}
&lt;includeonly&gt;
&lt;!-- Interwiki and categories come here: --&gt;
{{DEFAULTSORT:Lorem ipsum}}
[[Category:Placeholder templates]]
&lt;/includeonly&gt;</text>
<sha1>5zftiqodeom6yvdvubjb4ruexac1z70</sha1>
</revision>
</page>
<page>
<title>Template:Lua/doc</title>
<ns>10</ns>
<id>38888183</id>
<revision>
<id>815713591</id>
<parentid>815709091</parentid>
<timestamp>2017-12-16T16:45:26Z</timestamp>
<contributor>
<username>Zzuuzz</username>
<id>365454</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/208.54.86.246|208.54.86.246]] ([[User talk:208.54.86.246|talk]]) to last version by Plagiat</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2463">{{Documentation subpage}}
{{Template shortcut|Lua talk}}
{{Lua{{\sandbox}}|Module:Lua banner}}
&lt;!-- Categories go at the bottom of this page, and interwikis go on Wikidata. --&gt;
This template is used to show that templates have been converted to [[Lua (programming language)|Lua]]. It is placed at the top of the template's /doc page. It automatically adds the template to [[:Category:Lua-based templates]], or to one of its subcategories.
== Usage ==
; Basic : {{tlx|Lua|''module name''}}
; All parameters : {{tlx|Lua|''module 1''|''module 2''|''module 3''|...|category{{=}}''custom category''|nocat{{=}}''true''}}
The first module name is required.
== Examples ==
* {{tlx|Lua|Module:Bananas}}
{{Lua{{\sandbox}}|Module:Bananas|nocat=true}}
{{clear}}
* {{tlx|Lua|Module:Bananas|Module:BananasArgs}}
{{Lua{{\sandbox}}|Module:Bananas|Module:BananasArgs|nocat=true}}
{{clear}}
* {{tlx|Lua|Module:Bananas|Module:BananasArgs|Module:HelloWorld}}
{{Lua{{\sandbox}}|Module:Bananas|Module:BananasArgs|Module:HelloWorld|nocat=true}}
{{clear}}
* {{tlx|Lua}}
{{Lua{{\sandbox}}|nocat=true}}
{{clear}}
== Categorisation ==
===Template category===
This template adds pages to [[:Category:Lua-based templates]] if the page is in the template namespace, and it is not on any of the subpages /doc, /sandbox, /sandbox2 or /testcases. You can specify a different category with the {{para|category}} parameter, e.g. {{para|category|Lua String-based templates}}.
Some modules have a default category other than [[:Category:Lua-based templates]]:
* [[Module:String]] has the default category [[:Category:Lua String-based templates]].
* [[Module:Math]] has the default category [[:Category:Templates based on the Math Lua module]].
* [[Module:BaseConvert]] has the default category [[:Category:Templates based on the BaseConvert Lua module]].
* [[Module:Citation]] and [[Module:Citation/CS1]] both have the default category [[:Category:Lua-based citation templates]].
===Error category===
If no modules are specified, the transcluded page will be added to [[:Category:Lua templates with errors]].
===Category suppression===
To suppress all categorisation, use {{para|nocat|true}}. (As well as &quot;true&quot;, the values &quot;yes&quot;, &quot;y&quot;, and &quot;1&quot; will also work.)
== See also ==
* [[Wikipedia:Lua]]
* {{tl|module rating}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- Categories go here, and interwikis go on Wikidata. --&gt;
[[Category:Wikipedia Lua templates| ]]
}}&lt;/includeonly&gt;</text>
<sha1>7uk0gsc9umusgpi1hc4yycidp5m5dle</sha1>
</revision>
</page>
<page>
<title>Template:When in sandbox</title>
<ns>10</ns>
<id>43655502</id>
<revision>
<id>632777711</id>
<parentid>625392945</parentid>
<timestamp>2014-11-07T02:18:13Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<minor/>
<comment>template name update</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="130">&lt;includeonly&gt;{{When pagename is |/sandbox={{{1|/sandbox}}} |other={{{2|}}}}}&lt;/includeonly&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>0payi2t903va99o4xvlu502es0yd5ya</sha1>
</revision>
</page>
<page>
<title>Template:\sandbox</title>
<ns>10</ns>
<id>43704879</id>
<redirect title="Template:When in sandbox" />
<revision>
<id>632267699</id>
<parentid>632267667</parentid>
<timestamp>2014-11-03T11:39:48Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<minor/>
<comment>cap</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="237">#redirect [[Template:When in sandbox]]
&lt;pre&gt;(...because {{When in sandbox}} returns &quot;/sandbox&quot; when transcluded on a sandbox page)&lt;/pre&gt;
{{DEFAULTSORT:When in sandbox}}
[[Category:If-then-else templates]]
[[Category:Sandbox templates]]</text>
<sha1>fh8txj0lmrj7bxc2saivzxcncf506gg</sha1>
</revision>
</page>
<page>
<title>Template:Mabs/doc</title>
<ns>10</ns>
<id>31224402</id>
<revision>
<id>421974651</id>
<parentid>421794567</parentid>
<timestamp>2011-04-02T13:17:21Z</timestamp>
<contributor>
<username>Gadget850</username>
<id>339034</id>
</contributor>
<minor/>
<comment>null edit</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="818">{{Documentation subpage}}
&lt;!-- Categories and interwikis go at the bottom of this page. --&gt;
The '''mabs''' template wraps its argument in two pipe marks. These are used to delimit an [[absolute value]] or modulus function in mathematics.
The template if designed for use in the {{tl|math}} template and avoids having to use two &lt;nowiki&gt;{{!}}&lt;/nowiki&gt; marks and makes the meaning more clear.
==Usage==
Use this to wrap an expression. For example:
&lt;pre&gt;
We know that {{math|1={{mabs|''a''}} ≥ 0}}.
&lt;/pre&gt;
produces:
We know that {{math|1={{mabs|''a''}} ≥ 0}}.
==See also==
* {{tl|math}} which formats its argument as mathematics
* {{tl|!}} which generates a single | character
&lt;includeonly&gt;
&lt;!-- Categories and interwikis go here: --&gt;
[[Category:Mathematical formatting templates|{{PAGENAME}}]]
&lt;/includeonly&gt;</text>
<sha1>lahdx2obxacbqtr91vajujvhugfpjai</sha1>
</revision>
</page>
<page>
<title>Template:Main/doc</title>
<ns>10</ns>
<id>9948867</id>
<revision>
<id>822961653</id>
<parentid>822960612</parentid>
<timestamp>2018-01-29T14:37:29Z</timestamp>
<contributor>
<username>DePiep</username>
<id>199625</id>
</contributor>
<comment>/* Template data */</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="6458">{{high-risk|228000+}}
{{Lua|icononly=on|Module:Main}}
When a [[Wikipedia:What is an article?|Wikipedia article]] is large, it is often written in [[Wikipedia:Summary style|summary style]]. This [[Wikipedia:Template messages|template]] is used after the heading of the summary, to link to the subtopic article that has been summarized. For [[Help:Category|Category namespace]], please use '''{{tl|Cat main}}''' instead.
Use of this template should be restricted to the purposes described above. It is '''not''' to be used as a substitute for inline links or {{tl|Further}} template. The latter is used when the section expounds a specific aspect of the topic instead of summarizing its article. For example, in [[phthalate]], the template under the &quot;Endocrine disruptor&quot; section should '''not''' be {{tlf|Main|Endocrine disruptor}}, because the section specifically deals with phthalate as an endocrine disruptor and not endocrine disruptors in general.
This template should also not be used in lead sections. A lead section is always a summary of its own article, not any other; as such, the only appropriate target for a {{tl|Main}} link in the lead section would be the article itself, which is not useful. {{tl|Broader}} may be appropriate in this case.
{{TOC limit}}
==Usage==
;Basic usage: {{tlf|Main|''page''}}
;All parameters: {{((}}Main|''page1''|''page2''|''page3''| ... |l1 = ''label1''|l2 = ''label2''|l3 = ''label3''|...|selfref = ''yes''{{))}}
==Parameters==
*&lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;3&lt;/code&gt;, ... – the pages to link to. If no page names are specified, the current page name is used instead (without the [[Wikipedia:Namespace|namespace]] prefix). Categories and files are automatically escaped with the [[Help:Colon trick|colon trick]], and links to sections are automatically formatted as ''page § section'', rather than the MediaWiki default of ''page#section''.
*&lt;code&gt;l1&lt;/code&gt;, &lt;code&gt;l2&lt;/code&gt;, &lt;code&gt;l3&lt;/code&gt;, ... ''or''&lt;code&gt;label 1&lt;/code&gt;, &lt;code&gt;label 2&lt;/code&gt;, &lt;code&gt;label 3&lt;/code&gt;, ... – optional labels for each of the pages to link to (this is for articles where a piped link would be used). Note that the extra parameters use a lower case 'L', for example, &lt;code&gt;l1&lt;/code&gt;, &lt;u&gt;not&lt;/u&gt; &lt;code&gt;L1&lt;/code&gt;.
*&lt;code&gt;selfref&lt;/code&gt; – if set to &quot;yes&quot;, &quot;y&quot;, &quot;true&quot; or &quot;1&quot;, adds the CSS class &quot;selfref&quot;. This is used to denote self-references to Wikipedia. See [[Template:Selfref]] for more information. This is only necessary in articles and other content (e.g. templates) that will appear in articles, and need not be added for uses of this template on &lt;code&gt;Wikipedia:&lt;/code&gt; namespace pages.
==Template data==
{{TemplateData header}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;This template is used after the heading of a section, to link to a sub-article (or sub-articles) that is entirely about the topic of the section. The template will display, in italics, \&quot;Main article: Article 1, Article 2 and Article 3\&quot;&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Page 1&quot;,
&quot;description&quot;: &quot;The name of the first page that you want to link to. If this is not specified, the current page name (with no namespace prefix) is used instead. &quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: false,
&quot;suggested&quot;: true
},
&quot;2&quot;: {
&quot;label&quot;: &quot;Page 2&quot;,
&quot;description&quot;: &quot;The name of the second page that you want to link to.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: false
},
&quot;3&quot;: {
&quot;label&quot;: &quot;Page 3&quot;,
&quot;description&quot;: &quot;Name of the third page to link to&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: false
},
&quot;4&quot;: {
&quot;label&quot;: &quot;Page 4&quot;,
&quot;description&quot;: &quot;The name of the third page that you want to link to. More pages can be added using the parameters \&quot;5\&quot;, \&quot;6\&quot;, etc.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;
},
&quot;l1&quot;: {
&quot;type&quot;: &quot;string&quot;,
&quot;label&quot;: &quot;Label 1&quot;,
&quot;description&quot;: &quot;What the first linked page is to be displayed as.&quot;,
&quot;aliases&quot;: [
&quot;label 1&quot;
]
},
&quot;l2&quot;: {
&quot;label&quot;: &quot;Label 2&quot;,
&quot;description&quot;: &quot;What the second linked page is to be displayed as.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;aliases&quot;: [
&quot;label 2&quot;
]
},
&quot;l3&quot;: {
&quot;label&quot;: &quot;Label 3&quot;,
&quot;description&quot;: &quot;What the third linked page is to be displayed as. Other labels can be added by using increasing numbers (starting with \&quot;l4\&quot; for page 4) as parameter names.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;aliases&quot;: [
&quot;label 3&quot;
]
},
&quot;selfref&quot;: {
&quot;type&quot;: &quot;string/line&quot;,
&quot;label&quot;: &quot;Self reference&quot;,
&quot;description&quot;: &quot;Set to \&quot;yes\&quot; if the template is a self-reference to Wikipedia that would not make sense on mirrors or forks of the Wikipedia site.&quot;
},
&quot;label 4&quot;: {
&quot;aliases&quot;: [
&quot;l4&quot;
],
&quot;label&quot;: &quot;Label 4&quot;,
&quot;type&quot;: &quot;string&quot;
}
},
&quot;paramOrder&quot;: [
&quot;1&quot;,
&quot;2&quot;,
&quot;3&quot;,
&quot;4&quot;,
&quot;l1&quot;,
&quot;l2&quot;,
&quot;l3&quot;,
&quot;label 4&quot;,
&quot;selfref&quot;
]
}
&lt;/templatedata&gt;
==Examples==
*&lt;code&gt;&lt;nowiki&gt;{{Main}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{main}}
*&lt;code&gt;&lt;nowiki&gt;{{Main|Article}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{main|Article}}
*&lt;code&gt;&lt;nowiki&gt;{{Main|Article#Section}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{main|Article#Section}}
*&lt;code&gt;&lt;nowiki&gt;{{Main|Article#Section|l1=Custom section label}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{main|Article#Section|l1=Custom section label}}
*&lt;code&gt;&lt;nowiki&gt;{{Main|Article1|Article2|Article3}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{main|Article1|Article2|Article3}}
*&lt;code&gt;&lt;nowiki&gt;{{Main|Article1|l1=Custom label 1|Article2|l2=Custom label 2}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{main|Article1|l1=Custom label 1|Article2|l2=Custom label 2}}
*&lt;code&gt;&lt;nowiki&gt;{{Main|(15760) 1992 QB1|l1={{mp|(15760) 1992 QB|1}}}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{main|(15760) 1992 QB1|l1={{mp|(15760) 1992 QB|1}}}}
==Errors==
If the name of the first page that you want to link to is not specified, the current page name (with no namespace prefix) is used instead:
*{{Main}}
No errors can be displayed due to the illegal usage of parameters or other usages (i.e. the first parameter can be omitted, other parameters can be used even if the first one is empty (and automatically filled with the current page name (with no namespace prefix)), equals sign can be used as one of the parameters, and template can be used by direct call to the module (using &quot;#invoke&quot;)). This is not the case for {{tl|see also}}, for example.
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories go here and interwikis go in Wikidata. --&gt;
[[Category:Cross-reference templates]]
[[Category:Exclude in print]]
[[Category:Hatnote templates]]
[[Category:Wikipedia page-section templates]]
}}&lt;/includeonly&gt;</text>
<sha1>hfo17yeixyqls8yqv7weyg45pw9vl4e</sha1>
</revision>
</page>
<page>
<title>Template:Mp</title>
<ns>10</ns>
<id>2369657</id>
<revision>
<id>822140619</id>
<parentid>820954173</parentid>
<timestamp>2018-01-24T16:56:55Z</timestamp>
<contributor>
<username>Tom.Reding</username>
<id>9784415</id>
</contributor>
<minor/>
<comment>Interwikis all migrated to WD</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="342">{{#switch: {{{1}}}
| s =
| S = {{nowrap|S/{{{2}}} ({{{3}}}{{#if: {{{5|}}} |&lt;sub&gt;{{{4}}}&lt;/sub&gt;) {{{5}}}|) {{{4}}}}}}}
| {{#expr: {{{1}}}*1 }} = {{nowrap|({{{1}}}) {{{2}}}{{#if: {{{3|}}} |&lt;sub&gt;{{{3}}}&lt;/sub&gt;|}}}}
| #default = {{nowrap|{{{1}}}{{#if: {{{2|}}} |&lt;sub&gt;{{{2}}}&lt;/sub&gt;|}}}}
}}&lt;noinclude&gt;
{{pp-template}}
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>jbm8l9m6kjo9ztodo90qrku6nqq7ouh</sha1>
</revision>
</page>
<page>
<title>Module:Main</title>
<ns>828</ns>
<id>42570919</id>
<revision>
<id>727437646</id>
<parentid>727363620</parentid>
<timestamp>2016-06-29T00:34:26Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Removed extraclasses option; those classes appear to be deprecated</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="2239">--[[
-- This module produces a link to a main article or articles. It implements the
-- template {{main}}.
--
-- If the module is used in category or category talk space, it produces &quot;The
-- main article for this category is xxx&quot;. Otherwise, it produces
-- &quot;Main article: xxx&quot;.
--]]
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments -- lazily initialise
local p = {}
function p.main(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {parentOnly = true})
local pages = {}
for k, v in pairs(args) do
if type(k) == 'number' then
local display = args['label ' .. k] or args['l' .. k]
local page = display and
string.format('%s|%s', string.gsub(v, '|.*$', ''), display) or v
pages[#pages + 1] = page
end
end
if #pages == 0 and mw.title.getCurrentTitle().namespace == 0 then
return mHatnote.makeWikitextError(
'no page names specified',
'Template:Main#Errors',
args.category
)
end
local options = {
selfref = args.selfref
}
return p._main(pages, options)
end
function p._main(args, options)
-- Get the list of pages. If no first page was specified we use the current
-- page name.
local currentTitle = mw.title.getCurrentTitle()
if #args == 0 then args = {currentTitle.text} end
local firstPage = string.gsub(args[1], '|.*$', '')
-- Find the pagetype.
local pageType = mHatnote.findNamespaceId(firstPage) == 0 and 'article' or 'page'
-- Make the formatted link text
list = mHatlist.andList(args, true)
-- Build the text.
local isPlural = #args &gt; 1
local mainForm
local curNs = currentTitle.namespace
if (curNs == 14) or (curNs == 15) then --category/talk namespaces
mainForm = isPlural and
'The main %ss for this [[Wikipedia:Categorization|category]] are %s'
or
'The main %s for this [[Wikipedia:Categorization|category]] is %s'
else
mainForm = isPlural and 'Main %ss: %s' or 'Main %s: %s'
end
local text = string.format(mainForm, pageType, list)
-- Process the options and pass the text to the _rellink function in
-- [[Module:Hatnote]].
options = options or {}
local hnOptions = {
selfref = options.selfref
}
return mHatnote._hatnote(text, hnOptions)
end
return p</text>
<sha1>9iplsr5jg1vj2lm6dkuiqtfon8648ne</sha1>
</revision>
</page>
<page>
<title>Template:Main other/doc</title>
<ns>10</ns>
<id>17220436</id>
<revision>
<id>732475471</id>
<parentid>732475460</parentid>
<timestamp>2016-08-01T06:50:13Z</timestamp>
<contributor>
<username>Bentogoa</username>
<id>4282335</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contributions/66.87.70.149|66.87.70.149]] ([[User talk:66.87.70.149|talk]]) ([[WP:HG|HG]]) (3.1.19)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2839">{{Documentation subpage}}
{{High-risk|3075000+}}
{{Template shortcut |ns0}}
&lt;!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE --&gt;
This is the {{tl|main other}} meta-template.
This template helps other templates detect if they are on a main space (article) page or some &quot;other&quot; type of page.
===Basic usage===
This template usually takes two parameters, like this:
: {{tc|main other&amp;#32;|''result if in mainspace''&amp;#32;|''result if elsewhere''}}&lt;/pre&gt;
If the template is on a main space (article) page, it will return this:
: {{main other |demospace=main |''result if in mainspace'' |''result if elsewhere''}}
If the template is on any other page, it will return this:
: {{main other |''result if in mainspace'' |''result if elsewhere''}}
A typical usage case could be to make it so that a template only adds a category when on an article. Thus not adding other pages that just show the template. Like this:
: {{tlf|main other&amp;#32;|&lt;nowiki&gt;[[Category:Some article maintenance category]]&lt;/nowiki&gt;}}
Note that guidelines do not support categorization in templates.
Or to warn that a template should not be used on other pages:
: {{tlf|main other&amp;#32;|&amp;#32;|This template should only be used in articles.}}
Note that in the first case above the &quot;other&quot; parameter was not used, and in the second example the &quot;main&quot; parameter was left empty.
===Demospace===
For testing and demonstration purposes, this template can take a parameter named '''demospace'''.
* If it has the value '''main''' it returns the article text.
* It if has the value '''other''' or any other value such as the name of some other namespace it returns the other pages text.
* If the parameter is empty or undefined, the actual page type determines the result.
Like this:
: {{tlf|main other&amp;#32;|''result if in mainspace''&amp;#32;|''result if elsewhere''&amp;#32;|demospace{{=}}main}}
No matter on what kind of page the code above is used, it will return: {{main other |''result if in mainspace'' |''result if elsewhere'' |demospace=main}}
You can make it so your template also understands the '''demospace''' parameter. That means you can demonstrate the different appearances of your template in the documentation for your template:
: {{tlf|main other&amp;#32;|''result if in mainspace''&amp;#32;|''result if elsewhere''&amp;#32;|&lt;nowiki&gt;demospace={{{demospace|}}}&lt;/nowiki&gt;&amp;#32;}}
===Technical details===
This template detects article &quot;Talk:&quot; pages as type '''other'''.
This template works like {{tl|main talk other}}. For more examples and technical details, see the documentation there.
===Redirects===
* {{tl|article only}}
* {{tl|ns0}}
* {{tl|when in article}}
{{Namespace and pagename-detecting templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Namespace manipulation templates]]
}}&lt;/includeonly&gt;</text>
<sha1>gt86mg9ekp56wnbj94dvbm2qn7jl8o7</sha1>
</revision>
</page>
<page>
<title>Template:Namespace and pagename-detecting templates</title>
<ns>10</ns>
<id>43987018</id>
<revision>
<id>800123057</id>
<parentid>800122485</parentid>
<timestamp>2017-09-11T16:56:17Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2139">{{Navbox
| name = Namespace and pagename-detecting templates
| state = {{{state|{{{1|&lt;noinclude&gt;expanded&lt;/noinclude&gt;}}}}}}
| bodyclass=hlist
| title = Namespace and pagename-detecting templates
| group1 = [[Wikipedia:Namespace|Namespace]]
| list1 =
{{Navbox |child
|groupstyle=font-weight:normal;
| group1 = Particular
| list1 =
* {{tlbare|Main other}}&amp;nbsp;({{tlbare|When in article}})
* {{tlbare|Talk other}}&amp;nbsp;({{tlbare|When on talk page}})
* {{tlbare|Book other}}
* {{tlbare|Category other}}
* {{tlbare|Draft other}}
* {{tlbare|File other}}&amp;nbsp;({{tlbare|Is Commons}})
* {{tlbare|Help other}}
* {{tlbare|Module other}}
* {{tlbare|Portal other}}
* {{tlbare|Template other}}&amp;nbsp;({{tlbare|When on template page}})
* {{tlbare|User other}}&amp;nbsp;({{tlbare|When on user page}})
* {{tlbare|Wikipedia other}}
* {{tlbare|Single namespace}}
* {{tlbare|If talkspace of}}
* {{tlbare|If usertalk of}}
| group2 = More generic
| list2 =
* {{tlbare|Namespace detect}}&amp;nbsp;({{tlbare|When in namespace}})
* {{tlbare|Namespace detect showall}}
* {{tlbare|Main talk other}}
* {{tlbare|Talkspace detect}}
}}
| group2 = [[Wikipedia:Page name|Pagename]]
| list2 = {{navbox|subgroup
| groupstyle = line-height:1.2em; font-weight:normal; background:transparent;
| liststyle = line-height:1.2em
| group1 = {{tlbare|When on basepage}}&amp;nbsp;({{tlbare|Basepage subpage}})
| list1 = Detects and acts according to whether it is on a basepage, subpage, subsubpage or beyond.
| group2 = {{tlbare|When pagename is}}&amp;nbsp;({{tlbare|If pagename}})
| list2 = For pattern matching on the pagename.
| group3 = {{tlbare|pgn}}
| list3 = Can take apart and put together pagenames in several ways.
| group4 = {{tlbare|IP-talk}}
| list4 = Returns IP-user talkpage, registered-user talkpage or non-user talkpage.
| group5 = {{tlbare|IP-user other}}
| list5 = For detecting IP-user pages.
}}
| below =
* [[Wikipedia:Namespace]]
* [[Wikipedia:Page name]]
* [[mw:Help:Magic words|Magic words]]
* [[mw:Help:Extension:ParserFunctions|ParserFunctions]]
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>9s6a00g02eknsjglnnv8i6ybc3i9m2s</sha1>
</revision>
</page>
<page>
<title>Template:Tc</title>
<ns>10</ns>
<id>43613171</id>
<redirect title="Template:Tlc" />
<revision>
<id>623171983</id>
<parentid>622108439</parentid>
<timestamp>2014-08-28T12:52:39Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>category update</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="368">#redirect [[Template:Tlc]]
&lt;br/&gt;&lt;hr/&gt;
(&quot;Tlc&quot; would imply &quot;[[Template:Tl|[T]emplate [l]ink]] in &lt;[c]ode&gt; font&quot;&amp;nbsp;– except [[Template:Tlc]] doesn't (as of August 2014) include a link. Hence this &quot;Tc&quot; redirect.)
[[Category:Template-related templates]] &lt;!--but not e.g. [[:Category:Internal template-link templates]], as this template does not link to a template--&gt;</text>
<sha1>6bgdpqhhav713oedy04hhue3pdxd3t7</sha1>
</revision>
</page>
<page>
<title>Template:Cite book</title>
<ns>10</ns>
<id>4086375</id>
<revision>
<id>810449908</id>
<parentid>810433573</parentid>
<timestamp>2017-11-15T09:11:45Z</timestamp>
<contributor>
<username>Salix alba</username>
<id>212526</id>
</contributor>
<comment>put TD in a collapse top / bottom section</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="200">&lt;includeonly&gt;{{#invoke:citation/CS1|citation
|CitationClass=book
}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
{{collapse top|TemplateData}}
{{Cite book/TemplateData}}
{{collapse bottom}}
&lt;/noinclude&gt;</text>
<sha1>my4yy07itdv4e2t5sc1x4l3pzgpmzo7</sha1>
</revision>
</page>
<page>
<title>Template:Markup/doc</title>
<ns>10</ns>
<id>34628252</id>
<revision>
<id>767147484</id>
<parentid>732446862</parentid>
<timestamp>2017-02-24T05:58:25Z</timestamp>
<contributor>
<username>Zyxw</username>
<id>473593</id>
</contributor>
<minor/>
<comment>add {{[[Template:TemplateData header|TemplateData header]]}} (via JWB)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="7989">{{Documentation subpage}}
&lt;!-- Categories where indicated at the bottom of this page, please. --&gt;
{{TOC right |limit=2}}
This template is used to present markup or code side by side with the output it renders.
== TemplateData ==
{{TemplateData header}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot; &quot;,
&quot;paramOrder&quot;: [
&quot;margin-left&quot;,
&quot;width&quot;,
&quot;style&quot;,
&quot;noheaders&quot;,
&quot;title&quot;,
&quot;colheaderstyle&quot;,
&quot;col1headerstyle&quot;,
&quot;col1&quot;,
&quot;col2headerstyle&quot;,
&quot;col2&quot;,
&quot;codestyle&quot;,
&quot;outputstyle&quot;,
&quot;1&quot;,
&quot;2&quot;,
&quot;3&quot;,
&quot;4&quot;,
&quot;39&quot;,
&quot;40&quot;
],
&quot;params&quot;: {
&quot;1&quot;: {
&quot;description&quot;: &quot;row 1, first column (markup/code)'s content.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;2&quot;: {
&quot;description&quot;: &quot;row 1, second column (output)'s content.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;3&quot;: {
&quot;description&quot;: &quot;row 2, first column's content (etc).&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;4&quot;: {
&quot;description&quot;: &quot;row 2, second column's content (etc).&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;39&quot;: {
&quot;description&quot;: &quot;First column's content in last possible row.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;40&quot;: {
&quot;description&quot;: &quot;Second column's content in last possible row.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;width&quot;: {
&quot;description&quot;: &quot;To set the table's overall width.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;100%&quot;
},
&quot;margin-left&quot;: {
&quot;description&quot;: &quot;To set a margin on the table's lefthand side.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;0&quot;
},
&quot;style&quot;: {
&quot;description&quot;: &quot;For CSS styles amending the table's overall appearance.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;title&quot;: {
&quot;description&quot;: &quot;Title above table.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;noheaders&quot;: {
&quot;description&quot;: &quot;Set (as e.g. noheaders=on) to suppress the columns' headings and table's title.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;col1&quot;: {
&quot;description&quot;: &quot;First column (markup/code)'s heading.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;\&quot;Markup\&quot;&quot;
},
&quot;col2&quot;: {
&quot;description&quot;: &quot;Second column (output)'s heading.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;\&quot;Renders as\&quot;&quot;
},
&quot;codestyle&quot;: {
&quot;description&quot;: &quot;For CSS styles amending the presentation of the first column (markup/code)'s content (e.g. a smaller font-size).&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;aliases&quot;: [
&quot;markupstyle&quot;
]
},
&quot;outputstyle&quot;: {
&quot;description&quot;: &quot;For CSS styles amending the presentation of the second column (output)'s content.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;col1headerstyle&quot;: {
&quot;description&quot;: &quot;For CSS styling to amend the appearance of the first column's heading. Overrides (but does not replace) colheaderstyle.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;col2headerstyle&quot;: {
&quot;description&quot;: &quot;For CSS styling to amend the appearance of the second column's heading. Overrides (but does not replace) colheaderstyle.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;colheaderstyle&quot;: {
&quot;description&quot;: &quot;For CSS styling to amend the appearance of each column's heading.&quot;,
&quot;type&quot;: &quot;string&quot;
}
}
}
&lt;/templatedata&gt;
==Usage==
Each cell in the first (&quot;Markup&quot;) column uses {{tag|pre|o}} to retain newlines and spaces but styled to allow content to wrap within it. It is usually desirable to escape the content of these cells so that the markup is displayed by wrapping the markup in {{xtag|nowiki}}. It is technically not possible to add this feature to the template.
Each cell in the second (&quot;Renders as&quot;) column is usually the unescaped markup copied from the corresponding &quot;Markup&quot; cell before it. There are instances where this may differ:
* If the first line includes wikimarkup that must start on a new line such as #, * or ; then use {{tag|nowiki|s}} before the first line; see examples below.
* Header markup such as {{code|1===}} will show in the page table of contents; use {{tlx|fake heading}}.
* Some templates will place the page in a maintenance category, which is usually undesired:
** Instead of {{tlx|citation needed}}, use {{tlx|fake citation needed}}.
* Some templates may have error checking that places the page in a maintenance category. Suppress the category as possible:
** {{cs1}} templates can suppress the maintenance category by setting {{para|template doc demo|true}}.
===Limitations===
===={{xtag|nowiki}}====
If you don't wrap the content of the markup cell in {{xtag|nowiki}}, then any template markup will not be escaped, it will be expanded.
This example shows the markup for &lt;nowiki&gt;{{tl|tag}}&lt;/nowiki&gt;:
{{Markup
|t1=Renders as |t2=Expected rendering
| {{tl|tag}} | &lt;nowiki&gt;{{tl|tag}}&lt;/nowiki&gt;
}}
====HTML entities====
HTML entities are parsed in the markup cell:
{{Markup
|t1=Nowikied markup shows as |t2=Expected markup
| &lt;nowiki&gt;&amp;nbsp;&amp;ndash;&lt;/nowiki&gt; | &amp;amp;nbsp;&amp;amp;ndash;
}}
To work around this, replace the &lt;code&gt;&amp;&lt;/code&gt; with &lt;code&gt;&amp;amp;amp;&lt;/code&gt; thus &lt;code&gt;&amp;amp;amp;nbsp;&lt;/code&gt; will show as &lt;code&gt;&amp;amp;nbsp;&lt;/code&gt;
====List and indent markup====
If the first line includes wikimarkup that must start on a new line such as #, * or ; then use {{tag|nowiki|s}}:
{{Markup |title=Without {{tag|nowiki|s}}
| &lt;nowiki&gt;# Item 1
# Item 2
# Item 3
# Item 4&lt;/nowiki&gt;
|
# Item 1
# Item 2
# Item 3
# Item 4
}}
{{Markup |title=With {{tag|nowiki|s}}
| &amp;lt;nowiki /&gt;
&lt;nowiki&gt;# Item 1
# Item 2
# Item 3
# Item 4&lt;/nowiki&gt;
| &lt;nowiki /&gt;
# Item 1
# Item 2
# Item 3
# Item 4
}}
===Examples===
====Simple====
{{Markup
| &lt;nowiki&gt;'''Bold text'''&lt;/nowiki&gt; | '''Bold text'''
| &lt;nowiki&gt;''Italic text''&lt;/nowiki&gt; | ''Italic text''
}}
====Short cut====
See [[Template:Mra]].
'''Enter this:'''
&lt;pre&gt;{{subst:mra|'''Bold text'''|''Italic text''}}&lt;/pre&gt;
'''To make this:'''
&lt;pre&gt;{{markup|
&amp;lt;nowiki&gt;'''Bold text'''&lt;/nowiki&gt;|'''Bold text'''|
&amp;lt;nowiki&gt;''Italic text''&lt;/nowiki&gt;|''Italic text''}}&lt;/pre&gt;
'''Which renders as:'''
{{markup|
&lt;nowiki&gt;'''Bold text'''&lt;/nowiki&gt;|'''Bold text'''|
&lt;nowiki&gt;''Italic text''&lt;/nowiki&gt;|''Italic text''}}
====More complex====
Note that {{tl2|Markup}}'s second argument here uses {{tl2|fake heading}} and {{tl2|fake citation needed}}.
{{Markup
| &lt;nowiki&gt;The quick brown fox jumps over the lazy dog.{{#tag:ref|A footnote.&lt;ref&gt;A reference for the footnote.&lt;/ref&gt;|group=nb}} The cow jumped over the moon.{{fact}}
== Notes ==
{{reflist|group=nb}}
== References ==
{{reflist}}
&lt;/nowiki&gt;
| The quick brown fox jumps over the lazy dog.{{#tag:ref|A footnote.&lt;ref&gt;A reference for the footnote.&lt;/ref&gt;|group=nb}} The cow jumped over the moon.{{fake citation needed}}
{{fake heading|sub=2|Notes}}
{{reflist|group=nb}}
{{fake heading|sub=2|References}}
{{reflist|close}}
}}
====Multiple rows====
{{Markup
| The quick brown fox jumps over the lazy dog. | The quick brown fox jumps over the lazy dog.
| The quick brown fox jumps over the lazy dog. | The quick brown fox jumps over the lazy dog.
| The quick brown fox jumps over the lazy dog. | The quick brown fox jumps over the lazy dog.
| The quick brown fox jumps over the lazy dog. | The quick brown fox jumps over the lazy dog.
| The quick brown fox jumps over the lazy dog. | The quick brown fox jumps over the lazy dog.
}}
====With title====
{{Markup |title=Foxes and dogs
| The quick brown fox jumps over the lazy dog. | The quick brown fox jumps over the lazy dog.
}}
====Showing rendered HTML====
When a template is enclosed within {{tl|code}}, it shows the rendered HTML:
{{Markup
| &lt;nowiki&gt;{{cite book |last=White |first=T. H. |title=The Book of Merlyn |year=1977}}&lt;/nowiki&gt;
| {{cite book |last=White |first=T. H. |title=The Book of Merlyn |year=1977}}
| &lt;nowiki&gt;{{code|lang=html|{{cite book |last=White |first=T. H. |title=The Book of Merlyn |year=1977}}}}&lt;/nowiki&gt;
| {{code|lang=html|{{cite book |last=White |first=T. H. |title=The Book of Merlyn |year=1977}}}}
}}
==See also==
* {{tl|Markup2}} for bulleted and indented markup.
* {{tl|Markupv}} for the vertical presentation (above/below) of markup/code and its output.
* {{tl|Automarkup}} does not require to write the code samples twice.
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- Categories below this line, please: --&gt;
[[Category:Documentation assistance templates]]
[[Category:Template namespace templates]]
[[Category:Template test cases| ]]
}}&lt;/includeonly&gt;</text>
<sha1>qh760p8junlbbhg2ds2nn4brw4lf2ij</sha1>
</revision>
</page>
<page>
<title>Template:TOC right</title>
<ns>10</ns>
<id>1242749</id>
<revision>
<id>690361935</id>
<parentid>690361595</parentid>
<timestamp>2015-11-12T21:51:18Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>Undid revision 690361595 by [[Special:Contributions/Funandtrvl|Funandtrvl]] ([[User talk:Funandtrvl|talk]]) that's not working either</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="322">&lt;div style=&quot;clear: {{{clear|right}}}; margin-bottom: .5em; float: right; padding: .5em 0 .8em 1.4em; background: none; width: {{{width|{{{1|auto}}}}}};&quot; {{#if:{{{limit|}}}|class=&quot;toclimit-{{{limit}}}&quot;}}&gt;__TOC__&lt;/div&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add cats and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>hkmb6eyree8738761xsk7lhkicja6vq</sha1>
</revision>
</page>
<page>
<title>Template:Tl2</title>
<ns>10</ns>
<id>1961199</id>
<revision>
<id>645041339</id>
<parentid>639597903</parentid>
<timestamp>2015-01-31T20:35:11Z</timestamp>
<contributor>
<username>Dinoguy1000</username>
<id>2412089</id>
</contributor>
<comment>missing space in comment</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="496">&lt;!-- Subst of {{Tl2}} follows --&gt;&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;[[:{{ {{{|safesubst:}}}#if: {{{sister|}}} | {{{sister}}}: }}{{ {{{|safesubst:}}}#if: {{{lang|}}} | {{{lang}}}: }}{{ {{{|safesubst:}}}ns:Template }}:{{{1}}}|{{{1}}}]]{{ {{{|safesubst:}}}#if: {{{2|}}} | &amp;#124;{{{2}}} }}{{ {{{|safesubst:}}}#if: {{{3|}}} | &amp;#124;{{{3}}} }}&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;&lt;!-- Subst of {{Tl2}} ends --&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>2yzryy27vupmo2gnwhlxv2wj8x7zsar</sha1>
</revision>
</page>
<page>
<title>Template:Xtag</title>
<ns>10</ns>
<id>33645369</id>
<revision>
<id>769239758</id>
<parentid>707284440</parentid>
<timestamp>2017-03-08T10:11:47Z</timestamp>
<contributor>
<username>Cedar101</username>
<id>374440</id>
</contributor>
<comment>chem</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1808">&lt;code class=&quot;nowrap&quot;&gt;{{#switch:{{{2|pair}}}
|c|close = &lt;!--nothing--&gt;
|s|single
|o|open
|p|pair = &amp;lt;{{#switch:{{{1|}}}
|categorytree=[[mw:Extension:CategoryTree|categorytree]]
|charinsert=[[mw:Extension:CharInsert|charinsert]]
|chem=[[Help:Displaying a formula#Chemistry|chem]]
|ce=[[Help:Displaying a formula#Chemistry|ce]]
|gallery=[[Help:Gallery tag|gallery]]
|graph=[[Help:Graph|graph]]
|hiero=[[mw:Extension:WikiHiero|hiero]]
|includeonly=[[Help:Template#Noinclude, includeonly, and onlyinclude|includeonly]]
|indicator=[[mw:Help:Page status indicators|indicator]]
|imagemap=[[mw:Extension:ImageMap|imagemap]]
|inputbox=[[mw:Extension:InputBox|inputbox]]
|math=[[mw:Extension:Math|math]]
|math chem=[[Help:Displaying a formula#Chemistry|math chem]]
|noinclude=[[Help:Template#Noinclude, includeonly, and onlyinclude|noinclude]]
|nowiki=[[Help:Nowiki|nowiki]]
|onlyinclude=[[Help:Template#Noinclude, includeonly, and onlyinclude|onlyinclude]]
|poem=[[mw:Extension:Poem|poem]]
|pre=[[WP:PRE|pre]]
|ref=[[mw:Extension:Cite/Cite.php|ref]]
|references=[[mw:Extension:Cite/Cite.php|references]]
|section=[[mw:Extension:Labeled Section Transclusion|section]]
|score=[[Help:Score|score]]
|source=[[mw:Extension:SyntaxHighlight|source]]
|syntaxhighlight=[[mw:Extension:SyntaxHighlight|syntaxhighlight]]
|templatedata=[[Wikipedia:TemplateData/Tutorial|templatedata]]
|timeline=[[mw:Extension:EasyTimeline|timeline]]
|#default=tag
}}{{#if:{{{params|}}}|&amp;#32;{{{params}}}}}
}}{{#switch:{{{2|open}}}
|c|close = {{{content|}}}
|s|single = &amp;#32;/&amp;gt;
|o|open = &amp;gt;{{{content|}}}
|p|pair = &amp;gt;{{{content|...}}}
}}{{#switch:{{{2|open}}}
|s|single
|o|open = &lt;!--nothing--&gt;
|c|close
|p|pair = &amp;lt;/{{{1|tag}}}&amp;gt;
}}&lt;/code&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>2smj06z8y5aivrb62i0f8z1e17c5dyq</sha1>
</revision>
</page>
<page>
<title>Template:Radic</title>
<ns>10</ns>
<id>19474631</id>
<revision>
<id>815810018</id>
<parentid>806930320</parentid>
<timestamp>2017-12-17T08:27:30Z</timestamp>
<contributor>
<username>Salix alba</username>
<id>212526</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Radic]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="324">&lt;span class=&quot;nowrap&quot;&gt;{{#if:{{{2|}}}|&lt;sup style=&quot;margin-right: -0.5em; vertical-align: 0.8em;&quot;&gt;{{{2|}}}&lt;/sup&gt;}}&amp;radic;&lt;span style=&quot;border-top:1px solid; padding:0 0.1em;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;/span&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>g053trm6d487sif0j43m0latuq06bpg</sha1>
</revision>
</page>
<page>
<title>Template:Collapsible option</title>
<ns>10</ns>
<id>10511155</id>
<revision>
<id>792338072</id>
<parentid>792248544</parentid>
<timestamp>2017-07-25T22:54:20Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>fix li tags</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2348">{{big|'''Initial visibility'''}}
To set the template's initial visibility, the {{para|state}} [[Help:Template#Parameters|parameter]] may be used:
&lt;ul&gt;
&lt;li&gt;{{para|state|collapsed}}: &lt;nowiki&gt;{{&lt;/nowiki&gt;&lt;includeonly&gt;{{&lt;/includeonly&gt;{{#if:{{{nobase|}}}| |BASE}}PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;&lt;nowiki&gt;|state=collapsed}}&lt;/nowiki&gt; to show the template collapsed, i.e., hidden apart from its title bar&lt;/li&gt;
&lt;li&gt;{{para|state|expanded}}: &lt;nowiki&gt;{{&lt;/nowiki&gt;&lt;includeonly&gt;{{&lt;/includeonly&gt;{{#if:{{{nobase|}}} | |BASE}}PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;&lt;nowiki&gt;|state=expanded}}&lt;/nowiki&gt; to show the template expanded, i.e., fully visible&lt;/li&gt;
&lt;li&gt;{{para|state|autocollapse}}: &lt;nowiki&gt;{{&lt;/nowiki&gt;&lt;includeonly&gt;{{&lt;/includeonly&gt;{{#if:{{{nobase|}}} | |BASE}}PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;&lt;nowiki&gt;|state=autocollapse}}&lt;/nowiki&gt;
&lt;ul&gt;
&lt;li&gt;shows the template collapsed to the title bar if there is a &lt;nowiki&gt;{{navbar}}, a {{sidebar}}&lt;/nowiki&gt;, or some other table on the page with the collapsible attribute&lt;/li&gt;
&lt;li&gt;shows the template in its expanded state if there are no other collapsible items on the page&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
If the {{para|state}} parameter is not set, the template's initial visibility is taken from the {{para|default}} parameter in the template. For this template, that currently evaluates to &lt;code&gt;{{#switch:{{{default|}}}|collapsed=collapsed|expanded=expanded|autocollapse|#default=autocollapse}}&lt;/code&gt;.&lt;!--
--&gt;{{#if:{{{align|}}}|
:{{para|align|''value''}} is also available; where ''value'' can be either &lt;code&gt;right&lt;/code&gt; or &lt;code&gt;left&lt;/code&gt;. The default is &lt;code&gt;center&lt;/code&gt;
}}{{#if:{{{title-background|}}}|:{{para|title-background|''value''}} is also available; where ''value'' can be either &lt;code&gt;navbox&lt;/code&gt; or a &lt;code&gt;color&lt;/code&gt;. The default is &lt;code&gt;none&lt;/code&gt; and &lt;code&gt;navbox&lt;/code&gt; defaults to the default navbox color.
}}{{#if:{{{width|}}}|
:{{para|width|''value''}} is also available; where ''value'' can be either &lt;code&gt;N [em/%/px]&lt;/code&gt; or &lt;code&gt;auto&lt;/code&gt;. The default is &lt;code&gt;100%&lt;/code&gt;
}}&lt;!--
Add {{pp-template}} if template page where this template is transcluded is protected:
--&gt;{{template other
| {{#if:{{PROTECTIONLEVEL:edit}} |{{pp-template|docusage=yes}}
| {{#if:{{PROTECTIONLEVEL:move}} |{{pp-move|docusage=yes|small=yes}} }}
}} }}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>i4i1c0zemznt1wi9l9z3u0nadw4arbg</sha1>
</revision>
</page>
<page>
<title>Template:Collapsible sections option</title>
<ns>10</ns>
<id>18985019</id>
<revision>
<id>815922714</id>
<parentid>799939240</parentid>
<timestamp>2017-12-18T02:31:15Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>minor</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1978">&lt;div style=&quot;font-size:120%;font-weight:bold;margin-bottom:0.25em;&quot;&gt;&lt;!--
--&gt;{{#if:{{{1|}}} |&lt;!--(Single collapsible group/section named &quot;{{{1}}}&quot;:)--&gt;Collapsible group/section&lt;/div&gt; If, by default, this template's collapsible group/section is hidden (&quot;collapsed&quot;) when the template [[Wikipedia:Transclusion|is shown]], use {{tlc|&lt;includeonly&gt;{{&lt;/includeonly&gt;PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;&amp;nbsp;|{{{1}}}}} to set it to be visible (&quot;expanded&quot;, &quot;uncollapsed&quot;).
| How to manage this template's collapsible groups/sections option &lt;/div&gt;
{{Unbulleted list
| 1 = This template includes collapsible groups/sections. When it [[Wikipedia:Transclusion|first appears]], one of these groups/sections may be set to be visible (&quot;expanded&quot;) while the others remain hidden (&quot;collapsed&quot;) apart from their titlebars. To achieve this, [[Help:Template#Parameters|include the parameter]] &lt;code style=&quot;border:none;background:transparent;&quot;&gt;&amp;#124;''name''&lt;/code&gt; where ''name'' is one of the following words that identify the groups/sections (omit any speech or quotation marks):
|item2_style=font-size:120%;font-weight:bold;padding:0.3em 1.4em &lt;!--The following meant to ensure that {{{list}}} is associated with this template rather than anything after it:--&gt;{{#if:{{{example|}}}{{{default|}}} |0.3em |0.75em}};
| 2 = &lt;code style=&quot;border:none;background:transparent;&quot;&gt;{{{list}}}&lt;/code&gt;
&lt;!------- Example (optional) -------&gt;
|item3_style=padding-left:2.8em;
| 3 = {{#if:{{{example|}}} |For example: {{tlc|{{{template|&lt;includeonly&gt;{{&lt;/includeonly&gt;PAGENAME&lt;includeonly&gt;}}&lt;/includeonly&gt;}}}&amp;nbsp;|{{{example}}}&lt;noinclude&gt;&amp;nbsp;&lt;/noinclude&gt;}} }}
}}
&lt;!-------- Default (optional) -------&gt;
{{#if:{{{default|}}} |
* The group/section named '''&lt;code style=&quot;border:none;background:transparent;&quot;&gt;{{{default}}}&lt;/code&gt;''' has been set to be visible when the template appears.
}} }}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>g8h0ep9txpaa1ycrmgvh1cnnu4cyb42</sha1>
</revision>
</page>
<page>
<title>Template:Math templates/doc</title>
<ns>10</ns>
<id>41205751</id>
<revision>
<id>746165517</id>
<parentid>679596430</parentid>
<timestamp>2016-10-25T17:28:57Z</timestamp>
<contributor>
<username>Mrjulesd</username>
<id>17505739</id>
</contributor>
<comment>added cat</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="500">{{Documentation subpage}}
&lt;!-- Categories where indicated at the bottom of this page, please --&gt;
This template is intended to provide a consistent &quot;See also&quot; for math templates.
{{Collapsible sections option |list={{hlist|FN|conversions|notation|BTN}}}}
{{Collapsible option |default=expanded}}
&lt;includeonly&gt;
&lt;!-- Categories below this line, please: --&gt;
[[Category:Mathematics navigational boxes| ]]
[[Category:Related-topic templates]]
[[Category:Documentation see also templates]]
&lt;/includeonly&gt;</text>
<sha1>ead7wz4pwjss4vmhakrk1lu3twdvjth</sha1>
</revision>
</page>
<page>
<title>Template:R from move</title>
<ns>10</ns>
<id>25520545</id>
<revision>
<id>802556494</id>
<parentid>736186982</parentid>
<timestamp>2017-09-26T22:57:23Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<comment>transfer simplified code from sandbox</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="647">&lt;noinclude&gt;{{hatnote|This rcat template is automatically added to all new redirects that result from page moves; it must be added manually to older redirects when appropriate.}}{{This is a redirect/rcat}}
&lt;/noinclude&gt;{{Redirect template
|name=From a page move
|from=a page that has been moved (renamed)
|info=This page was kept as a redirect to avoid breaking links, both internal and external, that may have been made to the old page name.
|all category=Redirects from moves
}}&lt;includeonly&gt;{{R from move/except}}&lt;/includeonly&gt;&lt;noinclude&gt;
&lt;!-- Place categories on /doc subpage; interwikis go to Wikidata. --&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>khjvofelsnj0na3m60ehw3bmxpgumx7</sha1>
</revision>
</page>
<page>
<title>Template:R from move/except</title>
<ns>10</ns>
<id>55356115</id>
<revision>
<id>821532913</id>
<parentid>821525015</parentid>
<timestamp>2018-01-21T02:01:58Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<comment>fix code</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="951">&lt;noinclude&gt;This is the exception page for {{tl|R from move}}. This page makes exceptions that include certain pages that should not inhabit either {{cat|Unsynchronized talk page redirects}} or {{cat|Redirects from moves}}. If necessary, new exceptions may be added with no need to edit the main template, {{tl|R from move}}.
&lt;/noinclude&gt;{{#switch: {{FULLPAGENAME}}
|MediaWiki:Move-redirect-text=
|Template:R from move/except=
|#default=[[Category:Redirects from moves]]
}}{{#ifeq: {{NAMESPACENUMBER}}|1|
{{#ifeq: {{#invoke:redirect|isRedirect|{{SUBJECTPAGENAME}}}}|yes|
{{#ifeq: {{PAGENAME:{{#invoke:redirect|main|{{TALKPAGENAME}}}}}}|{{PAGENAME:{{#invoke:redirect|main|{{SUBJECTPAGENAME}}}}}}||
{{#ifeq: {{FULLPAGENAME}}|{{SUBJECTPAGENAME}}||
{{#ifeq: {{Str left|{{PAGENAME}}|16}}|List of ships of||[[Category:Unsynchronized talk page redirects]]
}}
}}
}}
}}
}}&lt;noinclude&gt;
{{Documentation|Template:R from move/doc}}
&lt;/noinclude&gt;</text>
<sha1>cibtvkaykj7628lz16gg3xvarb3q9q7</sha1>
</revision>
</page>
<page>
<title>Template:Mbox templates see also/doc</title>
<ns>10</ns>
<id>21431053</id>
<revision>
<id>649555045</id>
<parentid>638524764</parentid>
<timestamp>2015-03-02T16:53:25Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="663">{{Documentation subpage}}
This is the {{tl|Mbox templates see also}} template.
It is used in the &quot;See also&quot; section of the documentation for templates in {{c|Mbox and messagebox templates|the Mbox family}} (e.g. {{tl|Ambox}}). It takes no parameters.
===See also===
* {{tl|Mbox templates (small)}}, a small version of this template placed at the start of Mbox-family templates' documentation.
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Mbox and messagebox templates| ]]
[[Category:Documentation see also templates]]
[[Category:Template namespace templates]]
}}&lt;/includeonly&gt;</text>
<sha1>c37hftslhw2mgxz6fbeg0wyxpp6lfer</sha1>
</revision>
</page>
<page>
<title>Wikipedia:Template messages/Merging and splitting/List</title>
<ns>4</ns>
<id>3256888</id>
<revision>
<id>820226413</id>
<parentid>777601923</parentid>
<timestamp>2018-01-13T19:50:29Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>/* See also */ colwidth=</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="719">&lt;noinclude&gt;This page is utilized as a sub-template that is called and is common to the usage sections of the merge/split templates it lists.
It does nothing more than list these links and categorize itself. __NOTOC__&lt;/noinclude&gt;
== See also ==
{{further|Wikipedia:Merging|Wikipedia:Splitting}}
===Indication===
{{colbegin|colwidth=25em}}
* {{tl|Duplication}}
{{colend|}}
===Merging===
{{colbegin|colwidth=25em}}
* {{tl|Merge}}
* {{tl|Merge to}}
* {{tl|Merging}}
* {{tl|Merge from}}
* {{tl|Merging from}}
{{colend|}}
{{Wikipedia:Template messages/Splitting/List |noheading=y}}
{{Pam see also documentation}}&lt;noinclude&gt;
[[Category:Template documentation| ]]
[[Category:Template namespace templates| ]]
&lt;/noinclude&gt;</text>
<sha1>p243ylouhkovzlnlb1cxgcyu24c29sr</sha1>
</revision>
</page>
<page>
<title>Wikipedia:Template messages/Splitting/List</title>
<ns>4</ns>
<id>17838322</id>
<revision>
<id>820226701</id>
<parentid>762984222</parentid>
<timestamp>2018-01-13T19:52:27Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>/* Splitting */ colwidth=</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="813">&lt;noinclude&gt;;This page is utilized as a sub-template :which is called and is common to the usage sections of the merge templates it lists.
:It does nothing more than list these links and self-categorize itself.&lt;/noinclude&gt;{{#if:{{{noheading|}}}||
==See also==
{{further2|[[Wikipedia:Splitting]]|[[Wikipedia:Merging]]}}
}}
=== Splitting ===
{{colbegin|colwidth=25em}}
* {{tl|Split}}
* {{tl|Split dab}}
* {{tl|Split section}}&lt;!--
* {{tl|Split sections}} – REDUNDANT with {{Split portions|sections=y}}; taking to TfD.
--&gt;
* {{tl|Split portions}}&lt;!--
* {{tl|Split section portions}} - REDUNDANT with {{Split portions|section=y}}; taking to TfD.
--&gt;
* {{tl|Merge portions from}}
* {{tl|Very long}}
{{colend}}
&lt;noinclude&gt;
[[Category:Template documentation| ]]
[[Category:Template namespace templates| ]]
&lt;/noinclude&gt;</text>
<sha1>0yougyq7pov17znh27xaafsqs1496jz</sha1>
</revision>
</page>
<page>
<title>Template:Colbegin</title>
<ns>10</ns>
<id>18323235</id>
<redirect title="Template:Div col" />
<revision>
<id>774351553</id>
<parentid>313837343</parentid>
<timestamp>2017-04-07T21:07:33Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Colbegin]]&quot;: Matching redirect target ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="30">#REDIRECT [[Template:div col]]</text>
<sha1>prp6yxetzhry2p9n2zre0d1pldm8zrn</sha1>
</revision>
</page>
<page>
<title>Template:Colend</title>
<ns>10</ns>
<id>18323250</id>
<redirect title="Template:Div col end" />
<revision>
<id>774351582</id>
<parentid>313837190</parentid>
<timestamp>2017-04-07T21:07:43Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Colend]]&quot;: Matching redirect target ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="34">#REDIRECT [[Template:div col end]]</text>
<sha1>guyqb9m6zbkawavnc8ljqgh9dpet21t</sha1>
</revision>
</page>
<page>
<title>Template:Color</title>
<ns>10</ns>
<id>976819</id>
<revision>
<id>646047453</id>
<parentid>579833041</parentid>
<timestamp>2015-02-07T15:43:19Z</timestamp>
<contributor>
<username>Pigsonthewing</username>
<id>26248</id>
</contributor>
<comment>allow simple form; will document</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="181">&lt;span style=&quot;color:{{{1|}}}&quot;&gt;{{{2|{{{1|}}}}}}&lt;/span&gt;&lt;noinclude&gt;{{Documentation}}&lt;!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES AND INTERWIKIS TO THE /doc SUBPAGE, THANKS --&gt;&lt;/noinclude&gt;</text>
<sha1>s66u50lzf1g4d955nh4mw43vypr0i16</sha1>
</revision>
</page>
<page>
<title>Template:DMC</title>
<ns>10</ns>
<id>7581587</id>
<redirect title="Template:Dated maintenance category" />
<revision>
<id>774486146</id>
<parentid>296511792</parentid>
<timestamp>2017-04-08T19:55:16Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:DMC]]&quot;: Matching redirect target ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="48">#redirect[[Template:Dated maintenance category]]</text>
<sha1>d69he2ntczr33o7m5yw89oexybqxqce</sha1>
</revision>
</page>
<page>
<title>Template:Merge</title>
<ns>10</ns>
<id>494140</id>
<revision>
<id>784067094</id>
<parentid>729810669</parentid>
<timestamp>2017-06-06T08:27:50Z</timestamp>
<contributor>
<username>UsuallyNonviolentBot</username>
<id>31197275</id>
</contributor>
<minor/>
<comment>/* top */Remove deprecated parameter $N from [[Module:Unsubst]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1501">{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=
&lt;!--{{Merge}} begin--&gt;{{#ifeq:{{NAMESPACE}}|Category
|&lt;span class=&quot;error&quot;&gt;For categories please use the templates available at [[Wikipedia:Categories for discussion]].&lt;/span&gt;
}}{{#ifeq:{{NAMESPACE}}|Template
|&lt;includeonly&gt;&lt;span class=&quot;error&quot;&gt;For templates please use the templates available at [[Wikipedia:Templates for discussion]].&lt;/span&gt;[[Category:Pages with misplaced templates]]&lt;/includeonly&gt;
}}{{Mbox
|type = move
|image = [[File:Merge-arrows.svg|50px|alt=|link=]]
|text = It has been suggested that this {{#if:{{{section|}}}|section|{{#if:{{NAMESPACE}}|page|article}}}} be [[Wikipedia:Merging|merged]] with {{Pagelist|nspace={{{nspace|all}}}|delim=''|{{{1|}}}|{{{2|}}}|{{{3|}}}|{{{4|}}}|{{{5|}}}|{{{6|}}}|{{{7|}}}|{{{8|}}}|{{{9|}}}|{{{10|}}}|{{{11|}}}|{{{12|}}}|{{{13|}}}|{{{14|}}}|{{{15|}}}|{{{16|}}}|{{{17|}}}|{{{18|}}}|{{{19|}}}|{{{20|}}}}}{{#if:{{{target|}}}|&amp;nbsp;to ''[[:{{{target}}}|{{{target}}}]]''|}}. ([[{{{discussion|{{{discuss|:{{TALKPAGENAME}}}}}}}}|Discuss]]){{#if:{{{date&lt;includeonly&gt;|&lt;/includeonly&gt;}}}|&lt;small&gt;'' Proposed since {{{date&lt;includeonly&gt;|&lt;/includeonly&gt;}}}.''&lt;/small&gt;}}
}}&lt;includeonly&gt;{{#switch:{{NAMESPACE}}
||Talk={{DMC|Articles to be merged|from|{{{date|}}}|All articles to be merged}}
|#default={{DMC|||Items to be merged}}
}}{{Merge partner|{{{1|}}}}}&lt;/includeonly&gt;&lt;!--{{Merge}} end--&gt;
}}&lt;noinclude&gt;
{{Documentation}}&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>jstaj9vxehhf3ks5gv88vz3vfv16m8u</sha1>
</revision>
</page>
<page>
<title>Template:Merge/doc</title>
<ns>10</ns>
<id>8246335</id>
<revision>
<id>807293741</id>
<parentid>805872365</parentid>
<timestamp>2017-10-27T02:33:26Z</timestamp>
<contributor>
<username>KDS4444</username>
<id>7614868</id>
</contributor>
<minor/>
<comment>improved explanation</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="10241">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE, AND INTERWIKIS TO WIKIDATA --&gt;
{{Twinkle standard installation}}
== Which merge template should I use? ==
'''Do not place this tag on a Wikipedia [[WP:template]] or [[WP:category]]'''—instead see [[#Notes|below]] for instructions.
* To propose a merge of at least two articles together at an unspecified location, use {{tlx|Merge|OtherPage}}
* To propose a merge of the contents of the tagged article ''into'' the specified article, use {{tlx|Merge to|OtherPage}}
* To propose that the contents of the specified article should be merged into the tagged article, use {{tlx|Merge from|OtherPage}} &amp;ndash; the opposite of {{tlx|Merge to}};
* To suggest merging only some material from one article to another, use {{tlx|Move portions from|SourcePage}} and {{tlx|Move portions|TargetPage}}
== When to use ==
These templates are used primarily to identify potential merges that would benefit from discussion. If for some reason it is obvious that a merge would be appropriate, then you may [[WP:BOLD|boldly]] merge the pages yourself without tagging and without discussion. Some editors also use these tags to mark pages that obviously require merging and in the hope that someone else will merge the pages, although this is not how these templates are intended to be used. Obvious cases should simply be merged rather than tagged and forgotten about.
After adding the merge template, you are expected to create a section on the talkpage of the appropriate article (see below for details) explaining your rationale for the merge proposal. If the rationale is so obvious that it requires no explanation, then you should consider boldly merging the pages yourself rather than setting up a discussion.
== How to use ==
===Simple example===
Tagging a single page is simple:
{{markup
|&lt;nowiki&gt;{{Merge|OtherPage |date=&lt;/nowiki&gt;{{CURRENTMONTHNAME}} {{CURRENTYEAR}}&lt;nowiki&gt; }}
or
{{Merge |OtherPage |{{subst:DATE}} }}&lt;/nowiki&gt;
|{{Merge |OtherPage |date=October 2017 }}
}}
When you want to discuss a simple merge of one page into another, tag both of them:
{{markup
|{{markup|&lt;nowiki&gt;{{Merge to |FirstPage |date{{=}}&lt;/nowiki&gt;{{CURRENTMONTHNAME}} {{CURRENTYEAR}}&lt;nowiki&gt; }}
or
{{Merge to |FirstPage |{{subst:DATE}} }}&lt;/nowiki&gt;
|{{Merge to |FirstPage |date=October 2017 }}
}}
{{markup
|&lt;nowiki&gt;{{Merge from |SecondPage |date{{=}}&lt;/nowiki&gt;{{CURRENTMONTHNAME}} {{CURRENTYEAR}}&lt;nowiki&gt; }} or
{{Merge from |SecondPage |{{subst:DATE}} }}&lt;/nowiki&gt;
|{{Merge from |SecondPage |date=October 2017 }}
}}
This allows editors at both pages to see both the proposed source and target.
===Other options===
By default, the {{Color|#002BB8|Discuss}} link on the template links to the top of the destination page's [[Help:Talk page|talk page]]. To specify which section, or to name a different talk page entirely, use the {{para|discuss}} parameter:
: {{tlx|{{BASEPAGENAME}} |OtherPage&amp;nbsp;|discuss{{=}}Talk:OtherPage#Merge discussion&amp;nbsp;|date{{=}}{{CURRENTMONTHNAME}} {{CURRENTYEAR}} }}
To name multiple pages to be merged, simply separate them with a vertical pipe. You can add up to 20 articles to be merged:
: {{tlx|{{BASEPAGENAME}} |OtherPage1&amp;nbsp;|OtherPage2&amp;nbsp;|OtherPage3&amp;nbsp;|discuss{{=}}Talk:OtherPage#Merge discussion&amp;nbsp;|date{{=}}{{CURRENTMONTHNAME}} {{CURRENTYEAR}} }}
{{#ifeq:{{BASEPAGENAME}}|Merge|To name multiple pages to merge ''into'' a single page, use the {{para|target}} parameter. For example, to merge the tagged page, as well as OtherPage1, OtherPage2, and OtherPage3 into OtherPage4, use:
: {{tlx|{{BASEPAGENAME}} |OtherPage1&amp;nbsp;|OtherPage2&amp;nbsp;|OtherPage3&amp;nbsp;|target{{=}}OtherPage4&amp;nbsp;|discuss{{=}}Talk:OtherPage#Merge discussion&amp;nbsp;|date{{=}}{{CURRENTMONTHNAME}} {{CURRENTYEAR}} }}}}&lt;!-- ifeq end --&gt;
If you are placing the template in a section, you can use {{para|section|yes}} to change the wording to reflect this:
: {{tlx|{{BASEPAGENAME}} |OtherPage&amp;nbsp;|discuss{{=}}Talk:OtherPage#Merge discussion&amp;nbsp;|date{{=}}{{CURRENTMONTHNAME}} {{CURRENTYEAR}}&amp;nbsp;|section{{=}}yes}}
* '''Do not link to the pages''' with square brackets. &lt;br&gt;For example, write {{Tlx|Merge|OtherArticle}}, not {{Tlx|Merge|&amp;#91;&amp;#91;OtherArticle&amp;#93;&amp;#93;}}.
* If you don't supply a date, a [[WP:Bots|bot]] will add it later.
* The date ''may not'' be shown in the box. Do not be concerned about this. It is used when grouping tagged pages together into categories by date.
* These templates will add tagged articles to [[:Category:Articles to be merged]], while non-articles (files, templates, etc.) will be added to [[:Category:Items to be merged]].
* For {{tl|Merge}}, if you are specifying a merge of two or more pages in different namespaces, the template supports this via specification of the ''full'' page name, including the namespace prefix. {{para|nspace}} can take on namespace values, which fixes all params to the namespace specified.
* Do not &lt;code&gt;[[WP:SUBST|subst:]]&lt;/code&gt; these templates.
==When to remove==
[[Wikipedia:There is no deadline|There is no deadline]] for completing proposed merges. Pages that have been tagged for a long time (frequently more than one year) generally fall into these groups:
;Discussion supported the proposed merge, but no one did it yet: Feel free to merge the pages yourself.
;Discussion opposed merge, but nobody removed the tags: Feel free to remove the tags yourself.
;No discussion found: Feel free to remove the tags if you believe the merge would be a poor choice, or to boldly merge the pages if you believe the merge would be appropriate. Or feel free to start a discussion if you are uncertain or feel it would be controversial.
==Notes==
* If you want to propose merging a '''category''', you must do so at [[Wikipedia:Categories for discussion]], using the specific templates available there.
* If you want to propose merging a '''template''', you must do so at [[Wikipedia:Templates for discussion]], using the specific templates available there.
==TemplateData==
{{#switch: {{PAGENAME}}
|Merge/doc
|Merge =
{{TemplateDataHeader|Merge}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;This is a hatnote template which proposes to merge the page it is applied to into one or more other pages.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Other page&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: true,
&quot;description&quot;: &quot;This is the page into which this article should be merged. Note: 19 additional pages to merge can be added manually as optional parameters.&quot;
},
&quot;target&quot;: {
&quot;label&quot;: &quot;Target page&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;description&quot;: &quot;When listing several pages to merge, name one proposed target page for the merger with this parameter.&quot;
},
&quot;date&quot;: {
&quot;label&quot;: &quot;Month and year&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;The date on which the article was tagged (month year; e.g. August 2013)&quot;,
&quot;autovalue&quot;: &quot;{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}&quot;,
&quot;suggested&quot;: true
},
&quot;discuss&quot;: {
&quot;label&quot;: &quot;Discussion&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;description&quot;: &quot;Discussion related to the merge proposal; typically on the talk page for the target (other) page.&quot;
},
&quot;section&quot;: {
&quot;label&quot;: &quot;Section&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;If you are placing the template in a section, set this parameter to 'yes'.&quot;
},
&quot;nspace&quot;: {
&quot;label&quot;: &quot;Namespace&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;By default, nspace is \&quot;all\&quot;, which allows specifying pages across multiple namespaces for merge. Can be customized according to the accepted nspace values at Template:Pagelist&quot;
}
},
&quot;format&quot;: &quot;inline&quot;
}
&lt;/templatedata&gt;
}}
{{#switch: {{PAGENAME}}
|Merge/doc
|Merge to =
{{TemplateDataHeader|Merge to}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;This is a hatnote template which proposes to merge the page it is applied into one or more specified pages. Use 'merge from' to tag the target page(s).&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Other page&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: true,
&quot;description&quot;: &quot;This is the page into which this article should be merged. Note: 19 additional pages to merge into can be added manually as optional parameters.&quot;
},
&quot;date&quot;: {
&quot;label&quot;: &quot;Month and year&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;The date on which the article was tagged (month year; e.g. August 2013)&quot;,
&quot;autovalue&quot;: &quot;{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}&quot;,
&quot;suggested&quot;: true
},
&quot;discuss&quot;: {
&quot;label&quot;: &quot;Discussion&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;description&quot;: &quot;Discussion related to the merge proposal; typically on the talk page for the target (other) page.&quot;
},
&quot;section&quot;: {
&quot;label&quot;: &quot;Section&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;If you are placing the template in a section, set this parameter to 'yes'.&quot;
}
}
}
&lt;/templatedata&gt;
}}
{{#switch: {{PAGENAME}}
|Merge/doc
|Merge from =
{{TemplateDataHeader|Merge from}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;This is a hatnote template which proposes to merge one or more specified pages into the tagged page. Use 'merge to' to tag the source page(s).&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Other page&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: true,
&quot;description&quot;: &quot;This is the page, from which content should be merged into this article. Note: 19 additional pages to merge from can be added manually as optional parameters.&quot;
},
&quot;date&quot;: {
&quot;label&quot;: &quot;Month and year&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;The date on which the article was tagged (month year; e.g. August 2013)&quot;,
&quot;autovalue&quot;: &quot;{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}&quot;,
&quot;suggested&quot;: true
},
&quot;discuss&quot;: {
&quot;label&quot;: &quot;Discussion&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;description&quot;: &quot;Discussion related to the merge proposal; typically on the talk page for the target page.&quot;
},
&quot;section&quot;: {
&quot;label&quot;: &quot;Section&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;If you are placing the template in a section, set this parameter to 'yes'.&quot;
}
}
}
&lt;/templatedata&gt;
}}
{{Wikipedia:Template messages/Merging and splitting/List}}&lt;includeonly&gt;
&lt;!-- ADD CATEGORIES BELOW THIS LINE --&gt;
[[Category:Merge templates]]
[[Category:Exclude in print]]
&lt;includeonly&gt;
[[bn:টেমপ্লেট:Merge]]
[[sw:Kigezo:Unganisha]]
&lt;/includeonly&gt;</text>
<sha1>51nrw6k4xf7ggikslyor6yy08ghu5jk</sha1>
</revision>
</page>
<page>
<title>Template:Merge partner</title>
<ns>10</ns>
<id>24232167</id>
<revision>
<id>586399350</id>
<parentid>463086727</parentid>
<timestamp>2013-12-16T21:41:21Z</timestamp>
<contributor>
<username>Mark Arsten</username>
<id>15020596</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Merge partner: Allowing Protected Template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="244">&lt;includeonly&gt;{{#if:{{{1|}}}||[[Category:Articles for merging with no partner|{{ns0||{{Namespace Greek}}}}{{PAGENAME}}]]}}&lt;/includeonly&gt;&lt;noinclude&gt;{{documentation}}&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;&lt;/noinclude&gt;</text>
<sha1>ad011yebsruzy5w53a4j803wkxjwg2k</sha1>
</revision>
</page>
<page>
<title>Template:Pagelist</title>
<ns>10</ns>
<id>4472403</id>
<revision>
<id>810671221</id>
<parentid>810671155</parentid>
<timestamp>2017-11-16T18:39:52Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>srv</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="179">{{&lt;includeonly&gt;safesubst:&lt;/includeonly&gt;#invoke:pagelist|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>oaokru398r39bas7j5c87x84xw47qud</sha1>
</revision>
</page>
<page>
<title>Template:Pam see also documentation</title>
<ns>10</ns>
<id>35868281</id>
<revision>
<id>615148011</id>
<parentid>615135291</parentid>
<timestamp>2014-07-01T12:37:00Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<comment>hlist + icons</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3957">{{navbox
| name = Pam see also documentation
| title = Templates for [[WP:Proposed mergers|Proposed article mergers]]
| bodyclass = plainlist
| state = {{{state&lt;includeonly&gt;|collapsed&lt;/includeonly&gt;}}}
| group1 = Article page&lt;br /&gt;PAM notice
| list1 =
* {{tl|Afd-merge required}} &lt;small&gt;(Post PAM merge needed; for source page but unclear destination consensus)&lt;/small&gt;
* {{tl|Afd-merge to}} &lt;small&gt;(Post PAM merge needed; for source page; use {{tl|Afd-merge from}} on destination talk page)&lt;/small&gt;
* {{tl|Merge}} &lt;small&gt;(PAM; for source page)&lt;/small&gt;
* {{tl|Move portions from}} &lt;small&gt;(PAM merge request; for destination page; use {{tl|Move portions}} on source page)&lt;/small&gt;
* {{tl|Move portions}} &lt;small&gt;((PAM merge request; for source page; use {{tl|Move portions from}} on destination page)&lt;/small&gt;
* {{tl|R from merge}} &lt;small&gt;(Redirect from a merge)&lt;/small&gt;
| group2 = User talk page&lt;br /&gt;PAM discussion notifications
| list2 =
* {{tl|Mergenote}} &lt;small&gt;(PAM notification to user talk page)&lt;/small&gt;
| group3 = Discussion page&lt;br /&gt;PAM templates
| list3 =
* {{tl|Canvassed}} &lt;small&gt;(participant clarification)&lt;/small&gt;
* {{tl|Closing}} &lt;small&gt;(closing in process)&lt;/small&gt;
* {{tl|Duplicate vote}} &lt;small&gt;(participation clarification)&lt;/small&gt;
* {{tl|Not a ballot}} &lt;small&gt;(discussion clarification)&lt;/small&gt;
* {{tl|Page creator}} &lt;small&gt;(participant clarification)&lt;/small&gt;
* {{tl|Spa}} &lt;small&gt;(participant clarification)&lt;/small&gt;
* {{tl|Xfd-privacy}} &lt;small&gt;(sensitive discussion close)&lt;/small&gt;
| group4 = User talk page&lt;br /&gt;PAM process notifications
| list4 =
** {{tl|Uw-notvote}} &lt;small&gt;(warning)&lt;/small&gt;
| group5 = Article source talk page&lt;br /&gt;PAM notice
| list5 =
* {{tl|Merge done}} &lt;small&gt;(Merge after discussion notice; for source talk page)&lt;/small&gt;
* {{tl|Merge to}} &lt;small&gt;(PAM merge request; for source page; use {{tl|Merge from}} on destination talk page)&lt;/small&gt;
* {{tl|Merged-to}} &lt;small&gt;(Post PAM merge completed; for source talk page)&lt;/small&gt;
* {{tl|Merging}} &lt;small&gt;(Source page merging in action notice)&lt;/small&gt;
* {{tl|Mfd-merge to}} &lt;small&gt;(Post MfD merge needed; for source talk page; use {{tl|Mfd-merge to}} on destination page)&lt;/small&gt;
* {{tl|Old merge full}} &lt;small&gt;(1st and subsequent nominations)&lt;/small&gt;
| group6 = Article destination talk page&lt;br /&gt;PAM notice
| list6 =
* {{tl|Afd-merge from}} &lt;small&gt;(Post AfD merge needed; for destination talk page; use {{tl|Afd-merge to}} on source page)&lt;/small&gt;
* {{tl|Copied multi/Afd-merged-from}} &lt;small&gt;(multi for {{tl|Afd-merge from}})&lt;/small&gt;
* {{tl|Copied multi/Copied}} &lt;small&gt;(multi for {{tl|Copied}})&lt;/small&gt;
* {{tl|Copied multi/Merged-from}} &lt;small&gt;(multi for {{tl|Merge from}})&lt;/small&gt;
* {{tl|Copied multi}} &lt;small&gt;(multi for {{tl|Copied}})&lt;/small&gt;
* {{tl|Copied}} &lt;small&gt;(Post PAM merge completed; for destination talk page with attribution remaining on source page)&lt;/small&gt;
* {{tl|Histmerge}} &lt;small&gt;(Post PAM history merge still needed; for destination talk page)&lt;/small&gt;
* {{tl|Merge from}} &lt;small&gt;(PAM merge request; for destination page; use {{tl|Merge to}} on source talk page)&lt;/small&gt;
* {{tl|Merged-from}} &lt;small&gt;(Post PAM merge completed; for destination talk page)&lt;/small&gt;
* {{tl|Mfd-merge from}} &lt;small&gt;(Post MfD merge needed; for destination talk page; use {{tl|Mfd-merge to}} on source page)&lt;/small&gt;
* {{tl|Old merge full}} &lt;small&gt;(1st and subsequent nominations)&lt;/small&gt;
| group7 = Miscellaneous&lt;br /&gt;PAM misc.
| list7 =
* {{tl|Afd-merge}} &lt;small&gt;(disambiguous page)&lt;/small&gt;
* {{tl|Articles to be merged progress}} &lt;small&gt;(Merge progress counter for [[:Category:Articles to be merged]] subpages)&lt;/small&gt;
* {{tl|Merge progress}} &lt;small&gt;(Merge progress counter for user pages)&lt;/small&gt;
| below =
* {{icon|TEMP}} '''[[Template:Proposed deletion templates|Templates for proposed deletions]]'''
* {{icon|TEMP}} '''[[Template:Speedy deletion templates|Templates for speedy deletions]]'''
| belowclass=hlist
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>czaivnaq54y3s3m8se6vhopkdgbpren</sha1>
</revision>
</page>
<page>
<title>Module:Pagelist</title>
<ns>828</ns>
<id>39912004</id>
<revision>
<id>791536928</id>
<parentid>729809737</parentid>
<timestamp>2017-07-20T22:11:20Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>Remove double colons per [[Wikipedia:Village pump (technical)#Links starting with .5B.5B:: no longer valid?]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="2652">local p = {}
local separators = {
dot = true,
pipe = true,
comma = true,
['tpt-languages'] = true
}
local function getSeparator(sep)
if type(sep) ~= 'string' then
return nil
end
if separators[sep] then
return mw.message.new(sep .. '-separator'):plain()
else
return sep
end
end
local function generateLink(page, nspace, delim, endDelim)
if not page then
return nil
end
local pagename = mw.title.new(page)
if not pagename then
-- Default to the args we were passed if our page
-- object was nil.
pagename = page
else
pagename = pagename.text
end
delim = delim or ''
endDelim = endDelim or delim
nspace = nspace or ''
if nspace == 'all' then
nspace = ''
pagename = page
end
local outStr = mw.ustring.gsub(
string.format(
'%s[[:%s:%s|%s]]%s',
delim, nspace, pagename, page, endDelim
),
':+',
':'
)
return outStr
end
function p._main(args)
local t = {}
local separator = getSeparator(args.separator)
local conjunction = getSeparator(args.conjunction)
for i, v in ipairs(args) do
table.insert(t, generateLink(
v, args.nspace, args.delim, args.edelim
))
end
return mw.text.listToText(t, separator, conjunction)
end
function p.main(frame)
local origArgs = require('Module:Arguments').getArgs(frame, {
trim = false,
removeBlanks = false,
wrappers = 'Template:Pagelist'
})
-- Process integer args. Allow for explicit positional arguments that are
-- specified out of order, e.g. {{br separated entries|3=entry3}}.
-- After processing, the args can be accessed accurately from ipairs.
local args = {}
for k, v in pairs(origArgs) do
if type(k) == 'number' and
k &gt;= 1 and
math.floor(k) == k and
string.match(v, '%S') then -- Remove blank or whitespace values.
table.insert(args, k)
end
end
table.sort(args)
for i, v in ipairs(args) do
args[i] = origArgs[v]
-- Trim whitespace.
if type(args[i]) == 'string' then
args[i] = mw.text.trim(args[i])
end
end
-- Get old named args. We don't need to remove blank values
-- as for the nspace and edelim parameters the behaviour is different
-- depending on whether the parameters are blank or absent, and for
-- the delim parameter the default should be the blank string anyway.
args.delim = origArgs.delim
args.edelim = origArgs.edelim
args.nspace = origArgs.nspace
-- Get new named args, &quot;separator&quot; and &quot;conjunction&quot;, and strip blank values.
if origArgs.separator and origArgs.separator ~= '' then
args.separator = origArgs.separator
end
if origArgs.conjunction and origArgs.conjunction ~= '' then
args.conjunction = origArgs.conjunction
end
return p._main(args)
end
return p</text>
<sha1>h2b0ocxr8n6rs95prujo29rxctvtdf4</sha1>
</revision>
</page>
<page>
<title>Template:Module other/doc</title>
<ns>10</ns>
<id>38821052</id>
<revision>
<id>777393738</id>
<parentid>639216562</parentid>
<timestamp>2017-04-26T22:35:38Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>document shortcut</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2610">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --&gt;
{{Template shortcut|ns828}}
This is the {{tl|module other}} meta-template.
This template helps other templates detect if they are on a &quot;Module:&quot; page or some &quot;other&quot; type of page.
=== Usage ===
This template usually takes two parameters, like this:
&lt;pre&gt;
{{module other | Module page text | Other pages text }}
&lt;/pre&gt;
If the template is on a &quot;Module:&quot; page, it will return this:
:{{module other | demospace=module | Module page text | Other pages text }}
If the template is on any other page, it will return this:
:{{module other | Module page text | Other pages text }}
A typical usage case could be to make it so that a template only adds a category when on module pages. Thus not adding other pages that just show the template. Like this:
&lt;pre&gt;
{{module other | [[Category:Some module category]] }}
&lt;/pre&gt;
Or to warn that a template should not be used on other pages:
&lt;pre&gt;
{{module other | | This template should only be used on module pages. }}
&lt;/pre&gt;
Note that in the first case above the &quot;other&quot; parameter was not used, and in the second example the &quot;module&quot; parameter was left empty.
=== Demospace ===
For testing and demonstration purposes this template can take a parameter named '''demospace'''.
* If it has the value '''module''' it returns the module page text.
* It if has the value '''other''' or any other value such as the name of some other namespace it returns the other pages text.
* If the parameter is empty or undefined, the actual page type determines the result.
Like this:
&lt;pre&gt;
{{module other
| Module page text
| Other pages text
| demospace = module
}}
&lt;/pre&gt;
No matter on what kind of page the code above is used it will return this:
:{{module other
| Module page text
| Other pages text
| demospace = module
}}
You can make it so your template also understands the '''demospace''' parameter. That means you can demonstrate the different appearances of your template in the documentation for your template. Then do like this:
&lt;pre&gt;
{{module other
| Module page text
| Other pages text
| demospace = {{{demospace|}}}
}}
&lt;/pre&gt;
=== Technical details ===
This template detects &quot;Module talk:&quot; pages as type '''other'''.
This template works like {{tl|main talk other}}, for more examples and technical details see full documentation there.
{{Namespace and pagename-detecting templates}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Namespace manipulation templates]]
[[Category:Module namespace templates]]
&lt;/includeonly&gt;</text>
<sha1>337vkro5fj3zizfghfn2nhdkzzfm6f2</sha1>
</revision>
</page>
<page>
<title>Template:Error</title>
<ns>10</ns>
<id>39114002</id>
<revision>
<id>579195467</id>
<parentid>548661190</parentid>
<timestamp>2013-10-29T00:20:58Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Protected Template:Error: [[WP:High-risk templates|Highly visible template]]: 32,000 transclusions ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="102">{{#invoke:Error|error|{{{message|{{{1}}}}}}|tag={{{tag|}}}}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>axsripqkyjus55mon24y6efvuedy0d2</sha1>
</revision>
</page>
<page>
<title>Template:Module rating/doc</title>
<ns>10</ns>
<id>39135529</id>
<revision>
<id>815992589</id>
<parentid>809464956</parentid>
<timestamp>2017-12-18T15:10:47Z</timestamp>
<contributor>
<username>Sawol</username>
<id>16112600</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3597">{{Documentation subpage}}
&lt;!-- Categories go at the bottom of this page and interwikis go in Wikidata. --&gt;
This template is used to rate [[WP:LUA|Lua modules]] by quality. It is placed at the top of the module's /doc subpage. It produces a message informing users about the rating system, and it also places the module into a tracking category.
== Usage ==
Basic usage:
{{pre|{{tlx|module rating|''rating''}}}}
Without categories:
{{pre|{{tlx|module rating|''rating''|3=nocat=true}}}}
If {{tlx|Module rating}} is used outside the Module namespace, an error message is displayed instead and will be categorized under [[:Category:Pages with templates in the wrong namespace]].
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Rating&quot;,
&quot;description&quot;: &quot;One of pre-alpha, alpha, beta or release for quality, or one of protected or semiprotected, or an approved (see full docs) abbreviation for one of these.&quot;,
&quot;example&quot;: &quot;release&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
},
&quot;nocat&quot;: {
&quot;label&quot;: &quot;Do not categorize&quot;,
&quot;description&quot;: &quot;Set to true to disable categorization by rating. Normally leave blank.&quot;,
&quot;type&quot;: &quot;boolean&quot;,
&quot;default&quot;: &quot;Not set.&quot;
},
&quot;demospace&quot;: {
&quot;label&quot;: &quot;Fake namespace&quot;,
&quot;description&quot;: &quot;Set to module to force template to display outside that namespace. Demonstration purposes only.&quot;,
&quot;example&quot;: &quot;module&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;Not set.&quot;
}
},
&quot;description&quot;: &quot;This template is used to rate Lua modules by quality. It is placed at the top of the module's /doc subpage. It produces a message informing users about the rating system, and it also places the module into a tracking category.&quot;,
&quot;format&quot;: &quot;inline&quot;
}
&lt;/templatedata&gt;
== Ratings ==
The rating should be placed in the first positional parameter. There are five different ratings: '''pre-alpha''', '''alpha''', '''beta''', '''release''', and '''protected'''. There are also short alias codes for each of the ratings.
{| class=&quot;wikitable&quot;
! Rating !! Aliases !! Result
|-
| &lt;code&gt;pre-alpha&lt;/code&gt; || &lt;code&gt;prealpha&lt;/code&gt;&lt;br/&gt;&lt;code&gt;pa&lt;/code&gt; || {{module rating|pre-alpha|nocat=true|demospace=Module}}
|-
| &lt;code&gt;alpha&lt;/code&gt; || &lt;code&gt;a&lt;/code&gt; || {{module rating|alpha|nocat=true|demospace=module}}
|-
| &lt;code&gt;beta&lt;/code&gt; || &lt;code&gt;b&lt;/code&gt; || {{module rating|beta|nocat=true|demospace=module}}
|-
| &lt;code&gt;release&lt;/code&gt; || &lt;code&gt;r&lt;/code&gt;&lt;br/&gt;&lt;code&gt;general&lt;/code&gt;&lt;br/&gt;&lt;code&gt;g&lt;/code&gt; || {{module rating|release|nocat=true|demospace=module}}
|-
| &lt;code&gt;protected&lt;/code&gt; || &lt;code&gt;protect&lt;/code&gt;&lt;br/&gt;&lt;code&gt;p&lt;/code&gt; || {{module rating|protected|nocat=true|demospace=module}}
|-
| &lt;code&gt;semiprotected&lt;/code&gt; || &lt;code&gt;semiprotect&lt;/code&gt;&lt;br/&gt;&lt;code&gt;semi&lt;/code&gt; || {{module rating|semi|nocat=true|demospace=module}}
|-
| ''Anything else or if missing'' || || {{module rating|prdaskidkated|nocat=true|demospace=module}}
|-
|}
== Categories ==
The template will put modules in one of the following categories, according to the rating specified:
* [[:Category:Modules in pre-alpha development]]
* [[:Category:Modules in alpha]]
* [[:Category:Modules in beta]]
* [[:Category:Modules for general use]]
* [[:Category:Modules subject to page protection]]
These categories are suppressed on pages ending with /doc. To suppress categories on all pages, you can use the code {{para|nocat|true}}.
== See also ==
* {{tl|module-rating categories}}
* [[Wikipedia:Lua]]
* [[Wikipedia:Lua requests]]
* {{tl|Lua}}
&lt;includeonly&gt;{{sandbox other||
&lt;!-- Categories go here, and interwikis go in Wikidata --&gt;
[[Category:Template documentation]]
}}&lt;/includeonly&gt;</text>
<sha1>15pbkjue2en1kc77jp42zztys4x9apc</sha1>
</revision>
</page>
<page>
<title>Template:Pre</title>
<ns>10</ns>
<id>4722050</id>
<revision>
<id>821203469</id>
<parentid>712548953</parentid>
<timestamp>2018-01-19T00:32:39Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Pre]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1063">&lt;pre&lt;includeonly&gt;&lt;/includeonly&gt; style=&quot;white-space: {{{space|pre-wrap}}}; {{#if:{{{width|}}}|width: {{{width}}};}}&quot;&gt;&lt;!--
--&gt;{{#if:{{{1|}}}|{{{1}}}&lt;noinclude&gt;|Sample text&lt;/noinclude&gt;}}&lt;!--
--&gt;{{#if:{{{2|}}}|{{!}}{{{2}}}|}}&lt;!--
--&gt;{{#if:{{{3|}}}|{{!}}{{{3}}}|}}&lt;!--
--&gt;{{#if:{{{4|}}}|{{!}}{{{4}}}|}}&lt;!--
--&gt;{{#if:{{{5|}}}|{{!}}{{{5}}}|}}&lt;!--
--&gt;{{#if:{{{6|}}}|{{!}}{{{6}}}|}}&lt;!--
--&gt;{{#if:{{{7|}}}|{{!}}{{{7}}}|}}&lt;!--
--&gt;{{#if:{{{8|}}}|{{!}}{{{8}}}|}}&lt;!--
--&gt;{{#if:{{{9|}}}|{{!}}{{{9}}}|}}&lt;!--
--&gt;{{#if:{{{10|}}}|{{!}}{{{10}}}|}}&lt;!--
--&gt;{{#if:{{{11|}}}|{{!}}{{{11}}}|}}&lt;!--
--&gt;{{#if:{{{12|}}}|{{!}}{{{12}}}|}}&lt;!--
--&gt;{{#if:{{{13|}}}|{{!}}{{{13}}}|}}&lt;!--
--&gt;{{#if:{{{14|}}}|{{!}}{{{14}}}|}}&lt;!--
--&gt;{{#if:{{{15|}}}|{{!}}{{{15}}}|}}&lt;!--
--&gt;{{#if:{{{16|}}}|{{!}}{{{16}}}|}}&lt;!--
--&gt;{{#if:{{{17|}}}|{{!}}{{{17}}}|}}&lt;!--
--&gt;{{#if:{{{18|}}}|{{!}}{{{18}}}|}}&lt;!--
--&gt;{{#if:{{{19|}}}|{{!}}{{{19}}}|}}&lt;!--
--&gt;{{#if:{{{20|}}}|{{!}}{{{20}}}|}}&lt;!--
--&gt;&lt;/pre&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;!--
PLEASE ADD CATEGORIES AND INTERWIKIS
TO THE /doc SUBPAGE, THANKS
--&gt;
&lt;/noinclude&gt;</text>
<sha1>8xvmez9j62uer8taxgnsg1wp1u7x53o</sha1>
</revision>
</page>
<page>
<title>Module:Error</title>
<ns>828</ns>
<id>38948927</id>
<revision>
<id>750709040</id>
<parentid>636708920</parentid>
<timestamp>2016-11-21T11:11:11Z</timestamp>
<contributor>
<username>Materialscientist</username>
<id>7852030</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Module:Error]]&quot;: [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1129">-- This module implements {{error}}.
local p = {}
local function _error(args)
local tag = mw.ustring.lower(tostring(args.tag))
-- Work out what html tag we should use.
if not (tag == 'p' or tag == 'span' or tag == 'div') then
tag = 'strong'
end
-- Generate the html.
return tostring(mw.html.create(tag)
:addClass('error')
:wikitext(tostring(args.message or args[1] or error('no message specified', 2)))
)
end
function p.error(frame)
local args
if type(frame.args) == 'table' then
-- We're being called via #invoke. The args are passed through to the module
-- from the template page, so use the args that were passed into the template.
args = frame.args
else
-- We're being called from another module or from the debug console, so assume
-- the args are passed in directly.
args = frame
end
-- if the message parameter is present but blank, change it to nil so that Lua will
-- consider it false.
if args.message == &quot;&quot; then
args.message = nil
end
return _error(args)
end
return p</text>
<sha1>swpvwjcdmj2mkkmx9f7rbsdrfsnmirh</sha1>
</revision>
</page>
<page>
<title>Template:Myprefs/doc</title>
<ns>10</ns>
<id>31525889</id>
<revision>
<id>679666273</id>
<parentid>679614199</parentid>
<timestamp>2015-09-06T01:12:36Z</timestamp>
<contributor>
<username>Zyxw</username>
<id>473593</id>
</contributor>
<comment>update usage and parameter descriptions</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="4306">{{Documentation subpage}}
&lt;!-- Place categories where indicated at the bottom of this page; interwikis at Wikidata --&gt;
== Usage ==
This template creates a link to [[Special:Preferences]] with an optional link to a particular tab, an optional setting name, and an optional value. There are also options to display an unchecked or checked box with user specified text. The output of this template is formatted to set it off from any other text in the sentence.
* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;myprefs}}&lt;/code&gt;
* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;myprefs| ''tab'' }}&lt;/code&gt;
* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;myprefs| ''tab'' | ''setting'' }}&lt;/code&gt;
* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;myprefs| ''tab'' | ''setting'' | ''value'' }}&lt;/code&gt;
* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;myprefs| ''tab'' | ''setting'' | uncheck=''text'' }}&lt;/code&gt;
* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;myprefs| ''tab'' | ''setting'' | check=''text'' }}&lt;/code&gt;
==Parameters==
; 1 (unnamed)
: The first unnamed optional parameter is for the tab; either the tab name or the corresponding number may be used. The names are not case senstive. The numbers may be used, but they no longer represent the current order as displayed in Preferences.
:{| class=&quot;wikitable&quot;
|+ Current tabs (in order displayed)
|-
! Input !! Output
|-
| User profile &lt;br /&gt; 0 || {{myprefs|User profile}}
|-
| Appearance &lt;br /&gt; 1 || {{myprefs|Appearance}}
|-
| Editing &lt;br /&gt; 3 || {{myprefs|Editing}}
|-
| Recent changes &lt;br /&gt; 4 || {{myprefs|Recent changes}}
|-
| Watchlist &lt;br /&gt; 5 || {{myprefs|Watchlist}}
|-
| Notifications &lt;br /&gt; 10 || {{myprefs|Notifications}}
|-
| Gadgets &lt;br /&gt; 9 || {{myprefs|Gadgets}}
|-
| Beta features&lt;br /&gt; Beta &lt;br /&gt; 11 || {{myprefs|Beta features}}
|}
:{| class=&quot;wikitable&quot;
|+ Former tabs
|-
! Input !! Output !! Notes
|-
| Date and time &lt;br /&gt; 2 || {{myprefs|Date and time}} || These settings are now on the &quot;Appearance&quot; tab.
|-
| Search &lt;br /&gt; 6 || {{myprefs|Search}} &lt;br /&gt; {{myprefs|6}} || As shown, output is different when using number.
|-
| Misc &lt;br /&gt; 7 &lt;br /&gt; 12 || {{myprefs|Misc}} ||
|-
| style=&quot;white-space:nowrap&quot; | Pending changes &lt;br /&gt; 8 || style=&quot;white-space:nowrap&quot; | {{myprefs|Pending changes}} || These settings are now on the &quot;Recent changes&quot; tab.
|}
: Note: MW1.19 swapped the order of Gadgets and Pending changes.
; 2 (unnamed)
: The second unnamed optional parameter adds an arrow followed by the parameter text— this is for the full name of the setting.
: {{myprefs| Appearance | {{{2}}} }}
; 3 (unnamed)
: The third unnamed optional parameter adds an equals followed by the parameter text— this is for the value of the setting.
: {{myprefs| Editing | {{{2}}} | {{{3}}} }}
; uncheck
: This optional parameter adds an arrow followed by an unchecked box and the parameter text. It will not be displayed if any value is assigned to the third unnamed parameter.
: {{myprefs| Recent changes | {{{2}}} | uncheck={{{uncheck}}} }}
; check
: This optional parameter adds an arrow followed by a checked box and the parameter text. It will not be displayed if any value is assigned to the third unnamed parameter or to the uncheck parameter.
: {{myprefs| Notifications | {{{2}}} | check={{{check}}} }}
== Examples ==
{{pre2|&lt;nowiki&gt;{{myprefs}}&lt;/nowiki&gt;}}
: {{myprefs}}
{{pre2|&lt;nowiki&gt;{{myprefs|0}}&lt;/nowiki&gt;}}
: {{myprefs|0}}
{{pre2|&lt;nowiki&gt;{{myprefs|Editing}}&lt;/nowiki&gt;}}
: {{myprefs|Editing}}
{{pre2|&lt;nowiki&gt;{{myprefs|Gadgets|Disable smaller font sizes of elements such as Infoboxes, Navboxes and References lists}}&lt;/nowiki&gt;}}
: {{myprefs|Gadgets|Disable smaller font sizes of elements such as Infoboxes, Navboxes and References lists}}
{{pre2|&lt;nowiki&gt;{{myprefs|Recent changes|Basic interface|Use small icons and minimal text to show review status of pages}}&lt;/nowiki&gt;}}
: {{myprefs|Recent changes|Basic interface|Use small icons and minimal text to show review status of pages}}
{{pre2|&lt;nowiki&gt;{{myprefs|Appearance|Diffs|uncheck=Do not show page content below diffs}}&lt;/nowiki&gt;}}
: {{myprefs|Appearance|Diffs|uncheck=Do not show page content below diffs}}
{{pre2|&lt;nowiki&gt;{{myprefs|Appearance|Diffs|check=Omit diff after performing a rollback}}&lt;/nowiki&gt;}}
: {{myprefs|Appearance|Diffs|check=Omit diff after performing a rollback}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories below this line; interwikis at Wikidata --&gt;
}}&lt;/includeonly&gt;</text>
<sha1>6hg2p2id205jkrkzjxv8qjbygxk2jdn</sha1>
</revision>
</page>
<page>
<title>Template:Active</title>
<ns>10</ns>
<id>3951718</id>
<revision>
<id>748993299</id>
<parentid>748981212</parentid>
<timestamp>2016-11-11T17:42:11Z</timestamp>
<contributor>
<username>Obsuser</username>
<id>22359926</id>
</contributor>
<comment>Undid revision 748981212 by [[Special:Contributions/52.87.153.83|52.87.153.83]] ([[User talk:52.87.153.83|talk]]): vandalism</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="274">style=&quot;background: #90FF90; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;active table-active&quot;| {{{1|Active}}}&lt;noinclude&gt;
{{Documentation|Template:Table cell templates/doc}}
[[Category:Software table cell templates]]
&lt;/noinclude&gt;</text>
<sha1>6f7qo9rsqzlygxvrv1t3cmarn2dcy38</sha1>
</revision>
</page>
<page>
<title>Template:Active fire</title>
<ns>10</ns>
<id>47413811</id>
<revision>
<id>678331137</id>
<parentid>678330821</parentid>
<timestamp>2015-08-28T18:33:47Z</timestamp>
<contributor>
<username>Zackmann08</username>
<id>15881234</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="247">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: #faa; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;no table-no&quot;|Active {{nowrap|({{{1|}}})}}&lt;noinclude&gt;
|}
{{documentation}}&lt;/noinclude&gt;</text>
<sha1>hfi3fa45y39zdeez06kc26mjctw3nl7</sha1>
</revision>
</page>
<page>
<title>Template:Any</title>
<ns>10</ns>
<id>12347924</id>
<revision>
<id>544870285</id>
<parentid>349077447</parentid>
<timestamp>2013-03-17T07:05:31Z</timestamp>
<contributor>
<username>Addbot</username>
<id>6569922</id>
</contributor>
<minor/>
<comment>[[User:Addbot|Bot:]] Migrating 4 interwiki links, now provided by [[Wikipedia:Wikidata|Wikidata]] on [[d:q6681541]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="294">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #FFD; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;any table-any&quot;|{{{1|Any}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
[[es:Plantilla:Alguno]]
&lt;/noinclude&gt;</text>
<sha1>99mtyenfx384kn81fuea9resxvis2gw</sha1>
</revision>
</page>
<page>
<title>Template:Available</title>
<ns>10</ns>
<id>26796140</id>
<revision>
<id>410652312</id>
<parentid>410652231</parentid>
<timestamp>2011-01-28T23:02:30Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>docs</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="274">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #90ff90; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-yes&quot;|{{{1|Available}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>c8rf7d2de67ggbi7c2yg0c5ydjvgcpg</sha1>
</revision>
</page>
<page>
<title>Template:BLACK</title>
<ns>10</ns>
<id>10235306</id>
<revision>
<id>739572941</id>
<parentid>737805405</parentid>
<timestamp>2016-09-15T14:10:32Z</timestamp>
<contributor>
<ip>50.53.1.33</ip>
</contributor>
<comment>text to lightgray to adhere to WCAG 2 AAA Compliancy</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="286">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;data-sort-value=&quot;{{{sort|}}}&quot; style=&quot;background: black; color: lightgray; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-na&quot;|{{{1|N/A}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}</text>
<sha1>9t6jyhg2nbt5xurq85dqtvzgqtc68y9</sha1>
</revision>
</page>
<page>
<title>Template:Bad</title>
<ns>10</ns>
<id>26575979</id>
<revision>
<id>639907101</id>
<parentid>639907059</parentid>
<timestamp>2014-12-28T05:55:23Z</timestamp>
<contributor>
<username>Bijay chaurasia</username>
<id>22292860</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="267">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: #faa; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;no table-no&quot;| {{{1|Bad}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>k0hb0wq7jzu40aorofdxm5hjme81cor</sha1>
</revision>
</page>
<page>
<title>Template:Beta</title>
<ns>10</ns>
<id>3623759</id>
<revision>
<id>730472451</id>
<parentid>730133775</parentid>
<timestamp>2016-07-19T06:36:26Z</timestamp>
<contributor>
<username>Nick Mitchell 98</username>
<id>19666637</id>
</contributor>
<comment>Restored to previous revision by [[User:Edokter|Edokter]]. Coding was damaged by previous edit.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="317">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #DFDFFF; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;beta table-beta&quot;|{{{1|[[software release life cycle#Beta{{!}}Beta]]}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>9rveg708dhzulli61gvya14vg4kbvwd</sha1>
</revision>
</page>
<page>
<title>Template:CAlso starring</title>
<ns>10</ns>
<id>56360120</id>
<revision>
<id>822964521</id>
<parentid>821601429</parentid>
<timestamp>2018-01-29T14:56:33Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<comment>Updating TFD template: discussion was relisted ([[WP:XFDC|XFDcloser]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="473">&lt;noinclude&gt;{{Template for discussion/dated|action=|page=CAlso starring|link=Wikipedia:Templates for discussion/Log/2018 January 29#Template:CAlso starring|help=off|bigbox={{#invoke:Noinclude|noinclude|text=yes}}}}
&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#afeeee;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&quot; |{{{1|[[Ensemble cast|Also starring]]}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>ltsv8x853v7y3hkdauom3gdvdxirxre</sha1>
</revision>
</page>
<page>
<title>Template:CGuest</title>
<ns>10</ns>
<id>44127729</id>
<revision>
<id>819687193</id>
<parentid>723502916</parentid>
<timestamp>2018-01-10T19:21:15Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:CGuest]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="254">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#DAEBFF;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&quot; |{{{1|[[Guest appearance|Guest]]}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>8atx8o5dbqdx70slvu5kz34pmonqgvw</sha1>
</revision>
</page>
<page>
<title>Template:CMain</title>
<ns>10</ns>
<id>44127692</id>
<revision>
<id>819687206</id>
<parentid>703427561</parentid>
<timestamp>2018-01-10T19:21:15Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:CMain]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefin...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="250">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#ddffdd;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&quot; |{{{1|[[Ensemble cast|Main]]}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>oypuh0m90v3e5qhxmp9s2d8f6epr35t</sha1>
</revision>
</page>
<page>
<title>Template:CRecurring</title>
<ns>10</ns>
<id>44127701</id>
<revision>
<id>819687194</id>
<parentid>703208906</parentid>
<timestamp>2018-01-10T19:21:15Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:CRecurring]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (in...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="261">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#ffe3e3;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&quot; |{{{1|[[Recurring character|Recurring]]}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>b6pos58qawntdawfvxuwn1jy4navyca</sha1>
</revision>
</page>
<page>
<title>Template:Coming soon</title>
<ns>10</ns>
<id>22270336</id>
<revision>
<id>690336399</id>
<parentid>661114721</parentid>
<timestamp>2015-11-12T18:56:20Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>edit background to make consistent with [[:Template:Ya]] following recent changes</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="293">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: {{{color|#FFD2D2}}}; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;active table-siteactive&quot;|{{{1|Coming soon}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Coming soon/doc}}
&lt;/noinclude&gt;</text>
<sha1>rjueid3wwlycadznsh2mi1so6endoao</sha1>
</revision>
</page>
<page>
<title>Template:Contained</title>
<ns>10</ns>
<id>47413777</id>
<revision>
<id>678331407</id>
<parentid>674275166</parentid>
<timestamp>2015-08-28T18:35:44Z</timestamp>
<contributor>
<username>Zackmann08</username>
<id>15881234</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="233">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: #99FF99; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;yes table-yes&quot;|Contained&lt;noinclude&gt;
|}
{{documentation}}&lt;/noinclude&gt;</text>
<sha1>3ajwpue83k3zvdetq2pojtk80rvg3bd</sha1>
</revision>
</page>
<page>
<title>Template:Depends</title>
<ns>10</ns>
<id>2499773</id>
<revision>
<id>677624608</id>
<parentid>642253187</parentid>
<timestamp>2015-08-24T14:01:45Z</timestamp>
<contributor>
<username>Steel1943</username>
<id>2952402</id>
</contributor>
<comment>Documentation</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="282">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #FED; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;depends table-depends&quot;|{{{1|Depends}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>k5f0tfybyqm7m6yt6plwt0txykkhi7z</sha1>
</revision>
</page>
<page>
<title>Template:Draw</title>
<ns>10</ns>
<id>30679990</id>
<revision>
<id>804536471</id>
<parentid>549046384</parentid>
<timestamp>2017-10-09T17:20:34Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Draw]]&quot;: [[WP:High-risk templates|Highly visible template]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="263">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#c5d2ea; color:black; vertical-align:middle; text-align:{{{align|center}}}; {{{style|}}}&quot; class=&quot;table-draw&quot; |{{{1|}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>syo1yjnhgk2f3q5596y2d9areyggabo</sha1>
</revision>
</page>
<page>
<title>Template:Dropped</title>
<ns>10</ns>
<id>2499768</id>
<revision>
<id>550409324</id>
<parentid>422967703</parentid>
<timestamp>2013-04-15T02:45:01Z</timestamp>
<contributor>
<username>Addbot</username>
<id>6569922</id>
</contributor>
<minor/>
<comment>[[User:Addbot|Bot:]] Migrating 3 interwiki links, now provided by [[Wikipedia:Wikidata|Wikidata]] on [[d:q10951509]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="282">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #FED; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;dropped table-dropped&quot;|{{{1|Dropped}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>e844dty585c314f15fdd5knxzjfuo52</sha1>
</revision>
</page>
<page>
<title>Template:Dunno</title>
<ns>10</ns>
<id>2859716</id>
<revision>
<id>819682154</id>
<parentid>715940422</parentid>
<timestamp>2018-01-10T18:58:57Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Dunno]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefin...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="175">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;{{Unknown|{{{1|?}}}|{{{align|}}}|{{{style|}}}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>grligd7b76zgob5y3j4bu8r5fq0xg00</sha1>
</revision>
</page>
<page>
<title>Template:Eliminated</title>
<ns>10</ns>
<id>37967925</id>
<revision>
<id>539283857</id>
<parentid>528677679</parentid>
<timestamp>2013-02-20T19:48:04Z</timestamp>
<contributor>
<ip>101.112.180.65</ip>
</contributor>
<comment>colour too light. The standard colour for &quot;Eliminated&quot; is salmon or #FA8072.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="274">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#FA8072; color:black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-no&quot; | {{{1|Eliminated}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>sirs980l9k4ptbcpqcqc35fyy065xp3</sha1>
</revision>
</page>
<page>
<title>Template:Failure</title>
<ns>10</ns>
<id>43113144</id>
<revision>
<id>722939237</id>
<parentid>613849608</parentid>
<timestamp>2016-05-31T01:19:14Z</timestamp>
<contributor>
<username>JFG</username>
<id>168812</id>
</contributor>
<comment>Create templates for launch outcome</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="277">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: #ffbbbb; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-failure&quot; | {{{1|Failure}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>f2jdefnlea6j0wlemidra76kc6vp8ye</sha1>
</revision>
</page>
<page>
<title>Template:Free</title>
<ns>10</ns>
<id>4740161</id>
<revision>
<id>819687524</id>
<parentid>739604667</parentid>
<timestamp>2018-01-10T19:21:37Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Free]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefini...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="315">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #9FF; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;free table-free&quot;|{{{1|Free}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
[[Category:Software table cell templates]]
&lt;/noinclude&gt;</text>
<sha1>gzmoj3251y0apqmfe58r81s4ygmen41</sha1>
</revision>
</page>
<page>
<title>Template:Good</title>
<ns>10</ns>
<id>26576004</id>
<revision>
<id>821201390</id>
<parentid>618072259</parentid>
<timestamp>2018-01-19T00:29:58Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Good]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="272">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: #bfd; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;yes2 table-yes2&quot;| {{{1|Good}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>ozn5kq60ba8pfdh06596rcpyqj2uzx3</sha1>
</revision>
</page>
<page>
<title>Template:Included</title>
<ns>10</ns>
<id>3949894</id>
<revision>
<id>422988982</id>
<parentid>349076756</parentid>
<timestamp>2011-04-08T08:15:00Z</timestamp>
<contributor>
<username>MerlIwBot</username>
<id>14161758</id>
</contributor>
<minor/>
<comment>robot Removing: [[es:Plantilla:Incluido]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="288">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #DDFBFF; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;included table-included&quot;|{{{1|Included}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>320keqw0plxusilaewuywchiyngldxy</sha1>
</revision>
</page>
<page>
<title>Template:Incorrect</title>
<ns>10</ns>
<id>8569838</id>
<revision>
<id>550404107</id>
<parentid>494303782</parentid>
<timestamp>2013-04-15T02:02:45Z</timestamp>
<contributor>
<username>Addbot</username>
<id>6569922</id>
</contributor>
<minor/>
<comment>[[User:Addbot|Bot:]] Migrating 5 interwiki links, now provided by [[Wikipedia:Wikidata|Wikidata]] on [[d:q10968967]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="272">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #F90; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;incorrect&quot;|{{{1|Incorrect}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>1dtocjms1sk850kgq52jufjfaq8p3fx</sha1>
</revision>
</page>
<page>
<title>Template:Longlisted</title>
<ns>10</ns>
<id>50222070</id>
<revision>
<id>715837930</id>
<timestamp>2016-04-18T08:57:53Z</timestamp>
<contributor>
<username>AnemoneProjectors</username>
<id>1597144</id>
</contributor>
<comment>[[WP:AES|←]]Created page with '&lt;noinclude&gt;{| class=&quot;wikitable&quot; |- |&lt;/noinclude&gt;style=&quot;background: #DDF; color: #2C2C2C; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; cl...'</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="274">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #DDF; color: #2C2C2C; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-no2&quot;|{{{1|Longlisted}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>t94vzdcfr6egn0pof7wih684b3byh4w</sha1>
</revision>
</page>
<page>
<title>Template:Lost</title>
<ns>10</ns>
<id>7170549</id>
<revision>
<id>615392470</id>
<parentid>414511871</parentid>
<timestamp>2014-07-03T06:19:16Z</timestamp>
<contributor>
<ip>65.94.171.126</ip>
</contributor>
<comment>[[WP:BOLD]] match usage of [[template:won]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="299">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#FA8072; color: {{{textcolor|black}}}; vertical-align: {{{valign|middle}}}; text-align: {{{halign|center}}}; {{{style|}}}&quot; class=&quot;table-no&quot; | {{{1|Lost}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>00nktlozdxhzk69i8jkdrlnnk00ws5a</sha1>
</revision>
</page>
<page>
<title>Template:Maybe</title>
<ns>10</ns>
<id>39467570</id>
<revision>
<id>821202511</id>
<parentid>595354673</parentid>
<timestamp>2018-01-19T00:31:23Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Maybe]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="274">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #ffff90; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-maybe&quot;|{{{1|Maybe}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>apc8s7t3mfvr0070t3m75j22e7psxqv</sha1>
</revision>
</page>
<page>
<title>Template:MaybeCheck</title>
<ns>10</ns>
<id>40894160</id>
<revision>
<id>739603343</id>
<parentid>739602828</parentid>
<timestamp>2016-09-15T18:21:51Z</timestamp>
<contributor>
<ip>50.53.1.33</ip>
</contributor>
<comment>{{{color}}} and {{{rowspan}}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="397">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: {{{color|#FFB}}}; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;partial table-partial&quot; {{#if:{{{rowspan|}}}|rowspan=&quot;{{{rowspan}}}&quot;}} |{{{text|[[File:yellow check.svg|13px|link={{{link|}}}|{{{1|Maybe}}}]]}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}&lt;/noinclude&gt;</text>
<sha1>3xitvgo7v7d238acalla91mjchhj6b1</sha1>
</revision>
</page>
<page>
<title>Template:N</title>
<ns>10</ns>
<id>1710479</id>
<redirect title="Template:Nay" />
<revision>
<id>802217541</id>
<parentid>488792168</parentid>
<timestamp>2017-09-24T19:11:35Z</timestamp>
<contributor>
<username>Massimocicc</username>
<id>13250591</id>
</contributor>
<minor/>
<comment>added rcat</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="55">#REDIRECT [[Template:Nay]]
{{R from template shortcut}}</text>
<sha1>jr81opitvcgyrlio82g3oiprsihrzca</sha1>
</revision>
</page>
<page>
<title>Template:N/a/doc</title>
<ns>10</ns>
<id>13941572</id>
<revision>
<id>746903116</id>
<parentid>692167984</parentid>
<timestamp>2016-10-30T07:37:50Z</timestamp>
<contributor>
<username>Numbermaniac</username>
<id>17157159</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="364">{{Documentation subpage}}
&lt;!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]) --&gt;
{{High-use| 15,800+}}
{{Table cell templates/doc}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories go below this line, please; interwikis go to Wikidata, thank you! --&gt;
}}&lt;/includeonly&gt;</text>
<sha1>kmnkzij6ld8450j42taio0parifeaje</sha1>
</revision>
</page>
<page>
<title>Template:Needs</title>
<ns>10</ns>
<id>18292810</id>
<revision>
<id>620129722</id>
<parentid>349075872</parentid>
<timestamp>2014-08-06T18:57:52Z</timestamp>
<contributor>
<username>FleetCommand</username>
<id>1069316</id>
</contributor>
<comment>Changing to a lighter color as its kins</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="304">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #F99; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;need table-needs&quot;|{{{1|Needs}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
[[es:Plantilla:Necesidades]]
&lt;/noinclude&gt;</text>
<sha1>liko5iigriezur8ihsychjkuiokk1qd</sha1>
</revision>
</page>
<page>
<title>Template:Nightly</title>
<ns>10</ns>
<id>25893761</id>
<revision>
<id>349075269</id>
<parentid>341687430</parentid>
<timestamp>2010-03-10T20:58:10Z</timestamp>
<contributor>
<username>Crissov</username>
<id>13025</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="305">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #fdd; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;nightly table-nightly&quot;|{{{1|[[Neutral build|Nightly build]]}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>7kszprm42lo37ap0dl135x94hl3hp6s</sha1>
</revision>
</page>
<page>
<title>Template:No2</title>
<ns>10</ns>
<id>5659034</id>
<revision>
<id>772147415</id>
<parentid>345040374</parentid>
<timestamp>2017-03-25T16:04:17Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:No2]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefinite)...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="232">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #ffdddd; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-no2&quot; |{{{1|}}}&lt;noinclude&gt;
|}
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>jjhp3x889jt9llk3hf1ra656wgzx29j</sha1>
</revision>
</page>
<page>
<title>Template:No result</title>
<ns>10</ns>
<id>17573683</id>
<revision>
<id>550418713</id>
<parentid>400220370</parentid>
<timestamp>2013-04-15T04:08:13Z</timestamp>
<contributor>
<username>Addbot</username>
<id>6569922</id>
</contributor>
<minor/>
<comment>[[User:Addbot|Bot:]] Migrating 4 interwiki links, now provided by [[Wikipedia:Wikidata|Wikidata]] on [[d:q10992313]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="308">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #DFDFFF; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;noresult&quot;|{{{1|No result}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
[[es:Plantilla:Ningún resultado]]
&lt;/noinclude&gt;</text>
<sha1>e3b29ln3y0ois9m8lbqv4jhcmmcgawp</sha1>
</revision>
</page>
<page>
<title>Template:Nocontest</title>
<ns>10</ns>
<id>21524215</id>
<revision>
<id>819687865</id>
<parentid>496485920</parentid>
<timestamp>2018-01-10T19:22:02Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Nocontest]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (ind...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="193">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background-color: #c5d2ea; text-align:{{{align|center}}}&quot; |&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>2gh6ipt618flvxn8i8zmf77i8gysuwb</sha1>
</revision>
</page>
<page>
<title>Template:Nom</title>
<ns>10</ns>
<id>15351990</id>
<revision>
<id>677623416</id>
<parentid>578888597</parentid>
<timestamp>2015-08-24T13:50:32Z</timestamp>
<contributor>
<username>WJBscribe</username>
<id>2803535</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Nom: [[WP:High-risk templates|Highly visible template]]: allow template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="275">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #FDD; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;no table-no2&quot;|{{{1|Nominated}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>a7ppwmp1z0ocysf2mbfdhhqiv0zr7go</sha1>
</revision>
</page>
<page>
<title>Template:Non-album single</title>
<ns>10</ns>
<id>44383396</id>
<revision>
<id>821202931</id>
<parentid>813178321</parentid>
<timestamp>2018-01-19T00:31:55Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Non-album single]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="92">&lt;includeonly&gt;{{n/a|non-album single}}&lt;/includeonly&gt;
&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>5sga149hcddgyw3au5jkw2orab98lw9</sha1>
</revision>
</page>
<page>
<title>Template:Nonfree</title>
<ns>10</ns>
<id>5858117</id>
<revision>
<id>821202938</id>
<parentid>566428007</parentid>
<timestamp>2018-01-19T00:31:55Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Nonfree]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="314">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #F9D; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;nonfree table-nonfree&quot;|{{{1|Non-free}}}&lt;noinclude&gt;
|}
{{confuse|Template:Non-free}}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>bceyrd7bqt7vi7gec5m0lmu9iypp33p</sha1>
</revision>
</page>
<page>
<title>Template:Nonpartisan</title>
<ns>10</ns>
<id>47534743</id>
<revision>
<id>739577741</id>
<parentid>676247590</parentid>
<timestamp>2016-09-15T14:49:40Z</timestamp>
<contributor>
<ip>50.53.1.33</ip>
</contributor>
<comment>default text;differentiate</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="308">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #FFFFFF; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;partial table-partial&quot;|{{{1|Nonpartisan}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;!-- categories --&gt;
&lt;/noinclude&gt;</text>
<sha1>39vuuyv8o236h0sqlodej0g1ensrqh2</sha1>
</revision>
</page>
<page>
<title>Template:Not yet</title>
<ns>10</ns>
<id>7019389</id>
<revision>
<id>739714696</id>
<parentid>482074561</parentid>
<timestamp>2016-09-16T14:01:56Z</timestamp>
<contributor>
<ip>80.221.159.67</ip>
</contributor>
<comment>Sync element styling with [[Template:Table cell templates/doc]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="233">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#ffd;vertical-align:middle;text-align:{{{align|center}}};{{{style|}}}&quot; | {{{1|Not Yet}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>ho2thbjxyyxm7jo7opts01bewbf5mt4</sha1>
</revision>
</page>
<page>
<title>Template:Okay</title>
<ns>10</ns>
<id>26576018</id>
<revision>
<id>350643328</id>
<parentid>350193727</parentid>
<timestamp>2010-03-18T19:04:06Z</timestamp>
<contributor>
<username>Gyrobo</username>
<id>588529</id>
</contributor>
<comment>Capital letter.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="281">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: #FFD; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;partial table-partial&quot;| {{{1|Neutral}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>nwqfatr5k4pv84ct4d4zfubuukcyj8w</sha1>
</revision>
</page>
<page>
<title>Template:Operational</title>
<ns>10</ns>
<id>54339065</id>
<revision>
<id>786408870</id>
<timestamp>2017-06-19T08:40:57Z</timestamp>
<contributor>
<username>JFG</username>
<id>168812</id>
</contributor>
<comment>Add {{Operational}} for active spacecraft</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="281">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: #aaccff; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-success&quot; | {{{1|Operational}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>gox70asf3sev7e3k83jvio753skewic</sha1>
</revision>
</page>
<page>
<title>Template:Optional</title>
<ns>10</ns>
<id>6029938</id>
<revision>
<id>821203088</id>
<parentid>595355634</parentid>
<timestamp>2018-01-19T00:32:09Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Optional]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="255">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #ddffdd; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot;|{{{1|Optional}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>1dkkptn2jwnssn9zzn3iwa1266aoxgr</sha1>
</revision>
</page>
<page>
<title>Template:Partial</title>
<ns>10</ns>
<id>2499676</id>
<revision>
<id>819682637</id>
<parentid>793726504</parentid>
<timestamp>2018-01-10T18:59:35Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Partial]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indef...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="254">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#FFB;vertical-align:middle;text-align:{{{align|center}}}; {{{style|}}}&quot; class=&quot;table-partial&quot;|{{{1|Partial}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>k0tc2n8ju0l8aekqawi6oy1tc6jyh0z</sha1>
</revision>
</page>
<page>
<title>Template:Partial failure</title>
<ns>10</ns>
<id>50681222</id>
<revision>
<id>722939836</id>
<parentid>722939365</parentid>
<timestamp>2016-05-31T01:24:14Z</timestamp>
<contributor>
<username>JFG</username>
<id>168812</id>
</contributor>
<comment>Use existing table-partial class</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="283">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: wheat; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-partial&quot; | {{{1|Partial failure}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>4qu4k3wiofz9viga0fipa03f3wqltea</sha1>
</revision>
</page>
<page>
<title>Template:Partial success</title>
<ns>10</ns>
<id>52252516</id>
<revision>
<id>788398705</id>
<parentid>749023860</parentid>
<timestamp>2017-07-01T05:05:34Z</timestamp>
<contributor>
<username>JFG</username>
<id>168812</id>
</contributor>
<comment>Distinguish colors for partial success and partial failure</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="282">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: #FFB; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-partial&quot; | {{{1|Partial success}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>j9bzbndzcte9k69kaqa9vfjpcwrensu</sha1>
</revision>
</page>
<page>
<title>Template:Pending</title>
<ns>10</ns>
<id>23537874</id>
<revision>
<id>545666227</id>
<parentid>462763411</parentid>
<timestamp>2013-03-20T12:05:03Z</timestamp>
<contributor>
<username>Addbot</username>
<id>6569922</id>
</contributor>
<minor/>
<comment>[[User:Addbot|Bot:]] Migrating 2 interwiki links, now provided by [[Wikipedia:Wikidata|Wikidata]] on [[d:q6247483]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="314">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #FFD; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;partial table-partial&quot;|{{{1|Pending}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;!-- interwikis &amp; categories --&gt;
&lt;/noinclude&gt;</text>
<sha1>gausp9hdzytetnnocepdvkcil5aw5zs</sha1>
</revision>
</page>
<page>
<title>Template:Perhaps</title>
<ns>10</ns>
<id>2806870</id>
<revision>
<id>595355320</id>
<parentid>482073645</parentid>
<timestamp>2014-02-13T21:12:18Z</timestamp>
<contributor>
<username>Crissov</username>
<id>13025</id>
</contributor>
<comment>use unified code</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="289">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #ffffdd; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;automatic table-automatic&quot;| {{{1|Perhaps}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>1d4cyn17nhttt7zemwp1m0ux22de2c4</sha1>
</revision>
</page>
<page>
<title>Template:Planned</title>
<ns>10</ns>
<id>50681350</id>
<revision>
<id>722942074</id>
<timestamp>2016-05-31T01:42:03Z</timestamp>
<contributor>
<username>JFG</username>
<id>168812</id>
</contributor>
<comment>Create templates for launch outcome</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="277">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: #dfdfff; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-planned&quot; | {{{1|Planned}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>8cfls4d2les76kmzhwfv4jvei8wswfk</sha1>
</revision>
</page>
<page>
<title>Template:Proprietary</title>
<ns>10</ns>
<id>15126103</id>
<revision>
<id>821203494</id>
<parentid>628242215</parentid>
<timestamp>2018-01-19T00:32:42Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Proprietary]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="348">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #ddf; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-proprietary&quot;|{{{1|[[Proprietary software|Proprietary]]}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
[[Category:Software table cell templates|Proprietary]]
&lt;/noinclude&gt;</text>
<sha1>cvxcm7uux4xl9avnw934xgh9r8xrw95</sha1>
</revision>
</page>
<page>
<title>Template:Rarely</title>
<ns>10</ns>
<id>31678206</id>
<revision>
<id>617957524</id>
<parentid>427469891</parentid>
<timestamp>2014-07-22T08:11:01Z</timestamp>
<contributor>
<username>Telpardec</username>
<id>13990502</id>
</contributor>
<comment>background a bit too dark - making a little lighter</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="314">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #FC8; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;partial table-partial&quot;|{{{1|Rarely}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;!-- interwikis &amp; categories --&gt;
&lt;/noinclude&gt;</text>
<sha1>enwka5vt5gj6621vwoozb8tgwuvcqvr</sha1>
</revision>
</page>
<page>
<title>Template:Regional</title>
<ns>10</ns>
<id>54743863</id>
<revision>
<id>793726525</id>
<timestamp>2017-08-03T15:20:33Z</timestamp>
<contributor>
<username>Yejianfei</username>
<id>17164918</id>
</contributor>
<comment>[[WP:AES|←]]Created page with '&lt;noinclude&gt;{| class=&quot;wikitable&quot; |- |&lt;/noinclude&gt;style=&quot;background:#FFB;vertical-align:middle;text-align:{{{align|center}}}; {{{style|}}}&quot; class=&quot;table-partial&quot;|{...'</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="255">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#FFB;vertical-align:middle;text-align:{{{align|center}}}; {{{style|}}}&quot; class=&quot;table-partial&quot;|{{{1|Regional}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>2tcvxdd9hj7p8v0q9o1m4laootskqbk</sha1>
</revision>
</page>
<page>
<title>Template:Release-candidate</title>
<ns>10</ns>
<id>27685337</id>
<revision>
<id>371131647</id>
<parentid>367527307</parentid>
<timestamp>2010-07-01T02:38:08Z</timestamp>
<contributor>
<username>Gyrobo</username>
<id>588529</id>
</contributor>
<minor/>
<comment>Link fix.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="343">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #BFD; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-release-candidate&quot;|{{{1|[[Software release life cycle#Release candidate|Release candidate]]}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>lvqtcgp19zgoxq85rdowamt8pag67gg</sha1>
</revision>
</page>
<page>
<title>Template:Rh</title>
<ns>10</ns>
<id>2734578</id>
<revision>
<id>633760712</id>
<parentid>345040538</parentid>
<timestamp>2014-11-14T03:31:52Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Rh: [[WP:High-risk templates|Highly visible template]]: allow template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="238">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: {{{align|left}}}; {{{style|}}}&quot; class=&quot;table-rh&quot;&lt;noinclude&gt;
|}
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>mve7sywn6k9a1gku1b6mknzfx9ohtmh</sha1>
</revision>
</page>
<page>
<title>Template:Rh2</title>
<ns>10</ns>
<id>20642750</id>
<revision>
<id>494970653</id>
<parentid>471805817</parentid>
<timestamp>2012-05-29T16:02:10Z</timestamp>
<contributor>
<ip>50.53.15.51</ip>
</contributor>
<comment>iw</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="271">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: {{Rh2/bgcolor}}; color: black; vertical-align: middle; text-align: {{{align|left}}}; font-weight: bolder; {{{style|}}}&quot; class=&quot;rh heading table-rh&quot;&lt;noinclude&gt;| Row Header
|}
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>rsilmixg2rslearsq4doi96ve2h9jt8</sha1>
</revision>
</page>
<page>
<title>Template:Rh2/bgcolor</title>
<ns>10</ns>
<id>34405258</id>
<revision>
<id>471805820</id>
<parentid>471805760</parentid>
<timestamp>2012-01-17T03:59:39Z</timestamp>
<contributor>
<username>Tomchen1989</username>
<id>11110763</id>
</contributor>
<comment>[[Template_talk:Table_cell_templates#Background color for {{Rh2}}]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="21">&lt;nowiki&gt;#edf&lt;/nowiki&gt;</text>
<sha1>ryhrtp7orri5g8yezb22zknu80e8y65</sha1>
</revision>
</page>
<page>
<title>Template:Safe</title>
<ns>10</ns>
<id>38443531</id>
<revision>
<id>536920418</id>
<timestamp>2013-02-06T18:55:47Z</timestamp>
<contributor>
<username>FrancDeBx</username>
<id>18370505</id>
</contributor>
<comment>[[WP:AES|←]]Created page with '&lt;noinclude&gt;{| class=&quot;wikitable&quot; |- |&lt;/noinclude&gt;style=&quot;background:#ffffff; color:black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; cla...'</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="268">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#ffffff; color:black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-no&quot; | {{{1|Safe}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>5ywosaakvft53svwoo88a3wsr3i0nzl</sha1>
</revision>
</page>
<page>
<title>Template:Scheduled</title>
<ns>10</ns>
<id>50765157</id>
<revision>
<id>724460781</id>
<timestamp>2016-06-09T11:41:07Z</timestamp>
<contributor>
<username>JFG</username>
<id>168812</id>
</contributor>
<comment>Created template</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="279">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: #dfdfff; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-planned&quot; | {{{1|Scheduled}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>7yxc8idw2i7tb4ety3k2p4cuq9ywdkd</sha1>
</revision>
</page>
<page>
<title>Template:Sdash</title>
<ns>10</ns>
<id>28472460</id>
<revision>
<id>744093489</id>
<parentid>744091787</parentid>
<timestamp>2016-10-13T02:28:52Z</timestamp>
<contributor>
<ip>50.53.1.33</ip>
</contributor>
<comment>unneeded div</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="253">{| class=&quot;wikitable sortable&quot;
|-
| &lt;onlyinclude&gt;data-sort-value=&quot;{{{sort|}}}&quot; style=&quot;{{{style|vertical-align:middle; text-align:center}}}&quot; class=&quot;{{{class|table-na}}}&quot; | {{{1|—}}}&lt;/onlyinclude&gt;
|}
{{documentation|content={{Table cell templates/doc}}}}</text>
<sha1>m7zd32cnoeb8ggg8nvln2jh283xqmqz</sha1>
</revision>
</page>
<page>
<title>Template:Sho</title>
<ns>10</ns>
<id>21978134</id>
<revision>
<id>821204141</id>
<parentid>349078192</parentid>
<timestamp>2018-01-19T00:33:26Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Sho]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="276">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #f0e68c; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-no2&quot;|{{{1|Shortlisted}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>s9hrhg6nas7yunvf2j4bi43qf0jttk1</sha1>
</revision>
</page>
<page>
<title>Template:Site active</title>
<ns>10</ns>
<id>23023301</id>
<revision>
<id>384304969</id>
<parentid>349079070</parentid>
<timestamp>2010-09-12T01:33:36Z</timestamp>
<contributor>
<username>Rich Farmbrough</username>
<id>82835</id>
</contributor>
<minor/>
<comment>moved [[Template:Siteactive]] to [[Template:Site active]]: Separate words</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="285">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #90FF90; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;active table-siteactive&quot;|{{{1|Active}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>om01olkcv6x2l9fmkxbfaar4ouf50ij</sha1>
</revision>
</page>
<page>
<title>Template:Site inactive</title>
<ns>10</ns>
<id>23023276</id>
<revision>
<id>384305072</id>
<parentid>349078960</parentid>
<timestamp>2010-09-12T01:34:21Z</timestamp>
<contributor>
<username>Rich Farmbrough</username>
<id>82835</id>
</contributor>
<minor/>
<comment>moved [[Template:Siteinactive]] to [[Template:Site inactive]]: Separate words</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="291">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #FF9090; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;inactive table-siteinactive&quot;|{{{1|Inactive}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>tu0a2zsto2p7x29mvctbyeq27arc7u2</sha1>
</revision>
</page>
<page>
<title>Template:Some</title>
<ns>10</ns>
<id>5916261</id>
<revision>
<id>349077558</id>
<parentid>341483061</parentid>
<timestamp>2010-03-10T21:08:35Z</timestamp>
<contributor>
<username>Crissov</username>
<id>13025</id>
</contributor>
<minor/>
<comment>/doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="278">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #FFD; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;partial table-partial&quot;|{{{1|Some}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>p9106p3u0jq1ynld7259ck5391bof45</sha1>
</revision>
</page>
<page>
<title>Template:Sometimes</title>
<ns>10</ns>
<id>36104869</id>
<revision>
<id>641377356</id>
<parentid>497027014</parentid>
<timestamp>2015-01-07T08:46:24Z</timestamp>
<contributor>
<username>Musashiaharon</username>
<id>826010</id>
</contributor>
<comment>displays preview now</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="296">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #b0c4de; color: black; vertical-align: middle; text-align: center; &quot; class=&quot;partial table-partial&quot;|{{{1|Sometimes}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;!-- interwikis &amp; categories --&gt;
&lt;/noinclude&gt;</text>
<sha1>ox9im9z8q3qxedhmt0t2ldgzr3e3w90</sha1>
</revision>
</page>
<page>
<title>Template:Success</title>
<ns>10</ns>
<id>50681166</id>
<revision>
<id>722938970</id>
<parentid>722938147</parentid>
<timestamp>2016-05-31T01:17:02Z</timestamp>
<contributor>
<username>JFG</username>
<id>168812</id>
</contributor>
<comment>Fixed nowiki from subst</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="277">&lt;noinclude&gt;
{| class=&quot;wikitable&quot;
|&lt;/noinclude&gt;style=&quot;background: #bbffbb; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-success&quot; | {{{1|Success}}}&lt;noinclude&gt;
|}
{{documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>bljpz5hbrg1n6t1m4025ypmo183sif9</sha1>
</revision>
</page>
<page>
<title>Template:TBA</title>
<ns>10</ns>
<id>9677422</id>
<revision>
<id>804536871</id>
<parentid>721300818</parentid>
<timestamp>2017-10-09T17:20:54Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:TBA]]&quot;: [[WP:High-risk templates|Highly visible template]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="270">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #DDF; color: #2C2C2C; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;no table-no2&quot;|{{{1|TBA}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>9d5b30prhmcuw2cindmhnr0il1k8mca</sha1>
</revision>
</page>
<page>
<title>Template:Table-experimental</title>
<ns>10</ns>
<id>16193258</id>
<revision>
<id>550388570</id>
<parentid>407247096</parentid>
<timestamp>2013-04-14T23:54:50Z</timestamp>
<contributor>
<username>Addbot</username>
<id>6569922</id>
</contributor>
<minor/>
<comment>[[User:Addbot|Bot:]] Migrating 4 interwiki links, now provided by [[Wikipedia:Wikidata|Wikidata]] on [[d:q10957496]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="336">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #DFDFFF; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;experimental table-experimental&quot;|{{{1|Experimental}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
[[es:Plantilla:Tabla-experimental]]
&lt;/noinclude&gt;</text>
<sha1>0gbgrfuiiywm036ys2f5x7spdsmm091</sha1>
</revision>
</page>
<page>
<title>Template:Table cell templates</title>
<ns>10</ns>
<id>8584675</id>
<revision>
<id>737695775</id>
<parentid>542178014</parentid>
<timestamp>2016-09-04T13:36:51Z</timestamp>
<contributor>
<ip>50.53.1.33</ip>
</contributor>
<comment>sort</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="573">&lt;noinclude&gt;
{|
|&lt;/noinclude&gt;{{#if:{{{sort|}}}|data-sort-value=&quot;&lt;nowiki&gt;{{{sort|&lt;/nowiki&gt;{{{sort}}}&lt;nowiki&gt;}}}&lt;/nowiki&gt;&quot;}} style=&quot;background: {{{bg|white}}}; color: {{{color|black}}}; vertical-align: {{{valign|middle}}}; text-align: &lt;nowiki&gt;{{{align|&lt;/nowiki&gt;{{{align|center}}}&lt;nowiki&gt;}}}&lt;/nowiki&gt;; &lt;nowiki&gt;{{{style|}}}&lt;/nowiki&gt;&quot; class=&quot;{{{class|{{BASEPAGENAME}}}}} table-{{{class|{{BASEPAGENAME}}}}}&quot;| &lt;nowiki&gt;{{{1|&lt;/nowiki&gt;{{{text}}}&lt;nowiki&gt;}}}&lt;/nowiki&gt;&lt;noinclude&gt;
|}
{{Documentation}}
&lt;!-- ADD CATEGORIES BELOW THIS LINE --&gt;
[[Category:Table cell templates]]
&lt;/noinclude&gt;</text>
<sha1>fyfp8k8tm2vy4lpf81sz4hgn1nfj8iy</sha1>
</revision>
</page>
<page>
<title>Template:Table cell templates/doc</title>
<ns>10</ns>
<id>25941487</id>
<revision>
<id>821472842</id>
<parentid>793729887</parentid>
<timestamp>2018-01-20T18:10:53Z</timestamp>
<contributor>
<username>TheDoctorWho</username>
<id>31555064</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="15244">&lt;noinclude&gt;{{Documentation subpage}}&lt;/noinclude&gt;
{{#ifeq:{{FULLPAGENAME}}|Template:BLACK|{{For|the text color template|Template:Black}}}}
The templates in this series are designed to be used in a [[Help:Table|table]] to make a cell with text in that cell, with an appropriately colored background. They are commonly used in [[:Category:Comparisons|comparison tables]].
For example, {{Tlc|yes}} makes a cell with a green background. The text in the cell is taken from the [[Help:Template#Parameters|first parameter]]; &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;yes|Sure}}&lt;/code&gt; would output &quot;Sure&quot; otherwise it defaults to &quot;Yes&quot;. Most templates allow authors to override the default text in this way, some require text put after the template call and some also need a vertical bar in between: &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;''table cell template''}} ''text''&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;''table cell template''}} | ''text''&lt;/code&gt;. This information, the colors and default texts are found in the table below.
If you want to use other attributes for the table cells, ''e.g.'' &lt;code&gt;colspan&lt;/code&gt; or &lt;code&gt;rowspan&lt;/code&gt;, they need to be put before the template call and there must be no vertical bar &lt;code&gt;|&lt;/code&gt; in between them:
{| class=wikitable align=right
!{{Yes}} ||{{No}} ||rowspan=2 {{n/a}}
|-
|colspan=2 {{Yes-No}}
|}
&lt;pre&gt;...
!{{Yes}} ||{{No}} ||rowspan=2 {{n/a}}
|-
|colspan=2 {{Yes-No}}
...
&lt;/pre&gt;
== Templates ==
&lt;div style=&quot;overflow:auto;&quot;&gt;
{| class=&quot;wikitable&quot; style=&quot;text-align: left; width: auto;&quot;
|+ Table cell templates
! Class&lt;ref name=&quot;table-cell-templates-table-css&quot;&gt;The HTML class of table cell templates may be referenced in a [[m:help:User style|user stylesheet]] to change appearance.&lt;/ref&gt; !! Default syntax !! Preview (default) !! Customized syntax !! Preview (customized)
|-
|rowspan=2| &lt;code&gt;table-rh&lt;/code&gt; || {{tl|rh}} {{!}} Row header&lt;ref name=&quot;table-cell-templates-table-after+pipe&quot; /&gt; || {{rh}} | Row header || {{tlp|rh|2=align=right}} {{!}} Row header || {{rh|align=right}} | Row header
|-
| {{tl|rh2}} {{!}} Row header&lt;ref name=&quot;table-cell-templates-table-after+pipe&quot;&gt;Does not take a parameter; the content should be placed after the template call, separated by a pipe (|) character.&lt;/ref&gt; || {{rh2}} {{!}} Row header || {{tlp|rh2|2=align=right}} | Row header || {{rh2|align=right}} | Row header
|-
|rowspan=3| &lt;code&gt;table-yes&lt;/code&gt; || {{tl|yes}} || {{yes}} || {{tlp|yes|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} ||{{yes|Customized [[Plain text|text]]}}
|-
| {{tlp|available}} || {{available}} || {{tlp|available|Unused}} || {{available|Unused}}
|-
| {{tlp|contained}} || {{contained}} || ||
|-
| &lt;code&gt;table-maybe&lt;/code&gt; || {{tl|maybe}} || {{maybe}} || {{tlp|maybe|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} ||{{maybe|Customized [[Plain text|text]]}}
|-
|rowspan=6| &lt;code&gt;table-no&lt;/code&gt; || {{tl|no}} || {{no}} || {{tlp|no|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{no|Customized [[Plain text|text]]}}
|-
| {{tl|bad}} || {{bad}} || {{tlp|bad|F}} || {{bad|F}}
|-
| {{tl|eliminated}} || {{eliminated}} || {{tlp|eliminated|Dropped out}} || {{eliminated|Dropped out}}
|-
| {{tlp|active fire|12%}} || {{active fire|12%}} || ||
|-
| {{tl|lost}} || {{lost}} || {{tlp|lost|Missing}} || {{lost|Missing}}
|-
| {{tl|safe}} || {{safe}} || {{tlp|safe|Protected}} || {{safe|Protected}}
|-
| &lt;code&gt;table-active&lt;/code&gt; || {{tl|active}} || {{active}} || {{tlp|active|Lively}} || {{active|Lively}}
|-
|rowspan=2| &lt;code&gt;table-siteactive&lt;/code&gt; || {{tl|site active}} || {{site active}} || {{tlp|site active|Up}} || {{site active|Up}}
|-
| {{tl|coming soon}} || {{coming soon}} || {{tlp|coming soon|Second half of the year}} || {{coming soon|Second half of the year}}
|-
| &lt;code&gt;table-siteinactive&lt;/code&gt; || {{tl|site inactive}} || {{site inactive}} || {{tlp|site inactive|Down}} || {{site inactive|Down}}
|-
|rowspan=8| &lt;code&gt;table-yes2&lt;/code&gt; || {{tl|good}} || {{good}} || {{tlp|good|A}} || {{good|A}}
|-
| {{tl|yes2}} || {{yes2}} || {{tlp|yes2|Text}} || {{yes2|Text}}
|-
| {{tl|ya}} || {{ya}} || {{tlp|ya|text{{=}}Ya}} || {{ya|text=Ya}}
|-
| {{tlp|ya|Ya}} || {{ya|Ya}} || {{tlp|ya|text|link{{=}}WP:ALT}} || {{ya|text|link=WP:ALT}}
|-
| {{tl|won}} || {{won}} || {{tlp|won|text{{=}}white|color{{=}}darkblue}} || {{won|text=white|color=darkblue}}
|-
| {{tlp|won|place{{=}}1}} || {{won|place=1}} || {{tlp|won|place{{=}}Gold}} || {{won|place=Gold}}
|-
| {{tlp|won|place{{=}}2}} || {{won|place=2}} || {{tlp|won|place{{=}}Silver}} || {{won|place=Silver}}
|-
| {{tlp|won|place{{=}}3}} || {{won|place=3}} || {{tlp|won|place{{=}}Bronze}} || {{won|place=Bronze}}
|-
|rowspan=7| &lt;code&gt;table-no2&lt;/code&gt; || {{tl|no2}} || {{no2}} || {{tlp|no2|Text}} || {{no2|Text}}
|-
| {{tl|na}} || {{na}} || {{tlp|na|text{{=}}Na}} || {{na|text=Na}}
|-
| {{tlp|na|Na}} || {{na|Na}} || {{tlp|na|text|link{{=}}WP:ALT}} || {{na|text|link=WP:ALT}}
|-
| {{tl|nom}} || {{nom}} || {{tlp|nom|5}} || {{nom|5}}
|-
| {{tl|sho}} || {{sho}} || {{tlp|sho|Proposed}} || {{sho|Proposed}}
|-
| {{tl|longlisted}} || {{longlisted}} || {{tlp|longlisted|Rejected}} || {{longlisted|Rejected}}
|-
| {{tl|TBA}} || {{TBA}} || {{tlp|TBA|To be announced}} || {{TBA|To be announced}}
|-
| rowspan=2 |&lt;code&gt;table-success&lt;/code&gt; || {{tl|success}} || {{success}} || {{tlp|success|Mission complete}} || {{success|Mission complete}}
|-
| {{tl|operational}} || {{operational}} || {{tlp|operational|Returning data}} || {{operational|Returning data}}
|-
| &lt;code&gt;table-failure&lt;/code&gt; || {{tl|failure}} || {{failure}} || {{tlp|failure|Wrong orbit}} || {{failure|Wrong orbit}}
|-
| rowspan=16| &lt;code&gt;table-partial&lt;/code&gt; || {{tl|partial}} || {{partial}} || {{tlp|partial|Almost done}} ||{{partial|Almost done}}
|-
| {{tl|Regional}} || {{Regional}} || {{tlp|Regional|Uyghur}} || {{Regional|Uyghur}}
|-
| {{tl|MaybeCheck}} || {{MaybeCheck}} || {{tlp|MaybeCheck|text{{=}}Possibly}} || {{MaybeCheck|text=Possibly}}
|-
| {{tlp|MaybeCheck|Possibly}} || {{MaybeCheck|Possibly}} || {{tlp|MaybeCheck|text|link{{=}}WP:ALT}} || {{MaybeCheck|text|link=WP:ALT}}
|-
| {{tl|partial success}} || {{partial success}} || {{tlp|partial success|&lt;nowiki&gt;Reached orbit and returned pictures&lt;/nowiki&gt;}} || {{partial success|Reached orbit and returned pictures}}
|-
| {{tl|partial failure}} || {{partial failure}} || {{tlp|partial failure|&lt;nowiki&gt;[[Cubesat]] not deployed&lt;/nowiki&gt;}} || {{partial failure|[[Cubesat]] not deployed}}
|-
| {{tl|okay}} || {{okay}} || {{tlp|okay|C}} || {{okay|C}}
|-
| {{tl|Yes-No}} || {{Yes-No}} || {{tlp|Yes-No|Yes with an if; no with a but}} || {{Yes-No|Yes with an if; no with a but}}
|-
| {{tl|some}} || {{some}} || {{tlp|some|Many}} || {{some|Many}}
|-
| {{tl|nonpartisan}} || {{nonpartisan}} || {{tlp|nonpartisan|Impartial}} || {{nonpartisan|Impartial}}
|-
| {{tl|pending}} || {{pending}} || {{tlp|pending|Awaiting}} || {{pending|Awaiting}}
|-
| {{tl|unofficial}} || {{unofficial}} || {{tlp|unofficial|&lt;nowiki&gt;''De facto''&lt;/nowiki&gt;}} || {{unofficial|''De facto''}}
|-
| {{tl|unofficial2}} || {{unofficial2}} || {{tlp|unofficial2|&lt;nowiki&gt;''De facto''&lt;/nowiki&gt;}} || {{unofficial2|''De facto''}}
|-
| {{tl|usually}} || {{usually}} || {{tlp|usually|Commonly}} || {{usually|Commonly}}
|-
| {{tl|rarely}} || {{rarely}} || {{tlp|rarely|Seldom}}|| {{rarely|Seldom}}
|-
| {{tl|sometimes}} || {{sometimes}} || {{tlp|sometimes|Occasionally}} || {{sometimes|Occasionally}}
|-
| &lt;code&gt;table-any&lt;/code&gt; || {{tl|any}} || {{any}} || {{tlp|any|Anyone}}|| {{any|Anyone}}
|-
|rowspan=6| &lt;code&gt;table-na&lt;/code&gt; || {{tl|n/a}} || {{n/a}} || {{tlp|n/a|Unavailable}}|| {{n/a|Unavailable}}
|-
| {{tl|varies}} || {{varies}} || {{tlp|varies|Differs}}|| {{varies|Differs}}
|-
| {{tl|sdash}} || {{sdash}} || {{tlp|sdash|&lt;nowiki&gt;[[File:Dash.svg|13px|link=|dash icon]]&lt;/nowiki&gt;}}|| {{sdash|[[File:Dash.svg|13px|link=|dash]]}}
|-
| {{tl|BLACK}} || {{BLACK}} || {{tlp|BLACK|Banned}} || {{BLACK|Banned}}
|-
| {{tl|non-album single}} || {{non-album single}} || {{tlp|non-album single|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{non-album single|Customized [[Plain text|text]]}}
|-
| {{tl|unreleased}} || {{unreleased}} || {{tlp|unreleased|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{unreleased|Customized [[Plain text|text]]}}
|-
|rowspan=2| &lt;code&gt;table-unknown&lt;/code&gt; || {{tl|unknown}} || {{Unknown}} || {{tlp|unknown|?}} || {{unknown|?}}
|-
| {{tl|dunno}} || {{Dunno}} || {{tlp|dunno|Not sure}} || {{dunno|Not sure}}
|-
| &lt;code&gt;table-automatic&lt;/code&gt; || {{tl|perhaps}} || {{perhaps}} || {{tlp|perhaps|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{perhaps|Customized [[Plain text|text]]}}
|-
| &lt;code&gt;table-depends&lt;/code&gt; || {{tl|depends}} || {{depends}} || {{tlp|depends|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{depends|Customized [[Plain text|text]]}}
|-
| &lt;code&gt;table-included&lt;/code&gt; || {{tl|included}} || {{included}} || {{tlp|included|Incorporated}} || {{included|Incorporated}}
|-
|rowspan=2| &lt;code&gt;table-dropped&lt;/code&gt; || {{tl|dropped}} || {{dropped}} || {{tlp|dropped|Discontinued}} || {{dropped|Discontinued}}
|-
| {{tl|terminated}} || {{terminated}} || {{tlp|terminated|Fired}} || {{terminated|Fired}}
|-
| &lt;code&gt;table-beta&lt;/code&gt; || {{tl|beta}} || {{beta}} || {{tlp|beta|Preview}} || {{beta|Preview}}
|-
| &lt;code&gt;table-experimental&lt;/code&gt; || {{tl|table-experimental}} || {{table-experimental}} || {{tlp|table-experimental|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{table-experimental|Customized [[Plain text|text]]}}
|-
| &lt;code&gt;table-free&lt;/code&gt; || {{tl|free}} || {{free}} || {{tlp|free|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{free|Customized [[Plain text|text]]}}
|-
| &lt;code&gt;table-proprietary&lt;/code&gt; || {{tl|proprietary}} || {{proprietary}} || {{tlp|proprietary|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{proprietary|Customized [[Plain text|text]]}}
|-
| &lt;code&gt;table-nonfree&lt;/code&gt; || {{tl|nonfree}} || {{nonfree}} || {{tlp|nonfree|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{nonfree|Customized [[Plain text|text]]}}
|-
| &lt;code&gt;table-needs&lt;/code&gt; || {{tl|needs}} || {{needs}} || {{tlp|needs|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{needs|Customized [[Plain text|text]]}}
|-
| &lt;code&gt;table-nightly&lt;/code&gt; || {{tl|nightly}} || {{nightly}} || {{tlp|nightly|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{nightly|Customized [[Plain text|text]]}}
|-
| &lt;code&gt;table-release-candidate&lt;/code&gt; || {{tl|release-candidate}} || {{release-candidate}} || {{tlp|release-candidate|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{release-candidate|Customized [[Plain text|text]]}}
|-
| &lt;code&gt;table-draw&lt;/code&gt; || {{tl|draw}} || {{draw}} || {{tlp|draw|Text}} || {{draw|Text}}
|-
| &lt;code&gt;table-planned&lt;/code&gt; || {{tl|planned}} || {{planned}} || {{tlp|planned|July 2018}} || {{planned|July 2018}}
|-
| &lt;code&gt;table-scheduled&lt;/code&gt; || {{tl|scheduled}} || {{scheduled}} || {{tlp|scheduled|3 March 2017}} || {{scheduled|3 March 2017}}
|-
| &lt;code&gt;incorrect&lt;/code&gt; || {{tl|incorrect}} || {{incorrect}} || {{tlp|incorrect|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{incorrect|Customized [[Plain text|text]]}}
|-
| &lt;code&gt;noresult&lt;/code&gt; || {{tl|no result}} || {{no result}} || {{tlp|no result|N.R.}} || {{no result|N.R.}}
|-
|rowspan=8| ''no class'' || {{tl|CMain}} || {{CMain}} || {{tlp|CMain|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{CMain|Customized [[Plain text|text]]}}
|-
| {{tl|CAlso starring}} || {{CAlso starring}} || {{tlp|CAlso starring|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{CAlso starring|Customized [[Plain text|text]]}}
|-
| {{tl|CRecurring}} || {{CRecurring}} || {{tlp|CRecurring|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{CRecurring|Customized [[Plain text|text]]}}
|-
| {{tl|CGuest}} || {{CGuest}} || {{tlp|CGuest|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{CGuest|Customized [[Plain text|text]]}}
|-
| {{tl|CNone}} || {{CNone}} || {{tlp|CNone|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{CNone|Customized [[Plain text|text]]}}
|-
| {{tl|nocontest}} || {{nocontest}} || {{tlp|nocontest|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{nocontest}}Customized [[Plain text|text]]
|-
| {{tl|not yet}} || {{not yet}} || {{tlp|not yet|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{not yet|Customized [[Plain text|text]]}}
|-
| {{tl|optional}} || {{optional}} || {{tlp|optional|&lt;nowiki&gt;Customized [[Plain text|text]]&lt;/nowiki&gt;}} || {{optional|Customized [[Plain text|text]]}}
|}&lt;/div&gt;
== Code ==
Common code to most if not all the templates in this series:
:&lt;code&gt;{{Table cell templates|class=''automatic''|text=''text''|bg=#''abcdef''}}&lt;/code&gt;
Code specific to this template:
:&lt;code&gt;{{ {{BASEPAGENAME}} }}&lt;/code&gt;
To make a new table cell template you can use:
&lt;syntaxhighlight lang=text enclose=&quot;div&quot;&gt;{{subst:Table cell templates|text= default text |bg= background color |class= a class name without prefix |align= standard horizontal alignment}}&lt;/syntaxhighlight&gt;
You should leave out the &lt;code&gt;align&lt;/code&gt; parameter and often the &lt;code&gt;class&lt;/code&gt; parameter is unnecessary, too.
Add the new template to the table in the [[Template:Table cell templates/doc|common documentation]] afterwards. Please consider reusing one of the other templates and please choose the color sensibly.
If you find a table cell template that does not take a parameter and you want to be able to change the text in the cell, ''do not'' duplicate the template! Instead, edit the template and change the text to a default parameter substitution. For example, if a template's text is &lt;code&gt;Dropped&lt;/code&gt;, change that to &lt;code&gt;&lt;nowiki&gt;{{{1|Dropped}}}&lt;/nowiki&gt;&lt;/code&gt;.
style=&quot;background: #abcdef; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;automatic table-automatic&quot;| {{{1|text}}}
== TemplateData ==
{{TemplateDataHeader}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;One of several templates for styling individual table cells with standard contents and colors.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;text&quot;,
&quot;description&quot;: &quot;text to be displayed instead of the default, if this doesn't work put the text after the template, possibly with a vertical bar | in between&quot;,
&quot;type&quot;: &quot;string/line&quot;,
&quot;default&quot;: &quot;(template dependent)&quot;,
&quot;required&quot;: false
},
&quot;align&quot;: {
&quot;label&quot;: &quot;horizontal align&quot;,
&quot;description&quot;: &quot;text alignment inside the cell, either 'left', 'right', 'center' or 'justified'&quot;,
&quot;default&quot;: &quot;center&quot;,
&quot;inherits&quot;: &quot;1&quot;
},
&quot;style&quot;: {
&quot;label&quot;: &quot;style&quot;,
&quot;description&quot;: &quot;a semicolon separated list of additional CSS rules to be applied to the table cell&quot;,
&quot;default&quot;: &quot;&quot;,
&quot;inherits&quot;: &quot;1&quot;
},
&quot;color&quot;: {
&quot;label&quot;: &quot;background color&quot;,
&quot;description&quot;: &quot;a valid CSS color value or name to override the standard the cell background, only available with some templates&quot;,
&quot;inherits&quot;: &quot;1&quot;
}
}}&lt;/templatedata&gt;
== See also ==
* {{tl|change}}: Calculates, displays and color-codes changes between two values
* {{tl|BSD-lic}}: Specialized redirect for {{tlf|free}}
* {{tl|GPL-lic}}: Specialized redirect for {{tlf|free}}
* {{tl|LGPL-lic}}: Specialized redirect for {{tlf|free}}
== Notes ==
{{reflist}}
&lt;includeonly&gt;{{#switch:{{SUBPAGENAME}}|doc|sandbox=|#default=
&lt;!-- ADD CATEGORIES BELOW THIS LINE --&gt;
[[Category:Unified table cell templates]]
}}&lt;/includeonly&gt;</text>
<sha1>0cyaeq7gn36gr9u2ge5zcehht2zehyu</sha1>
</revision>
</page>
<page>
<title>Template:Terminated</title>
<ns>10</ns>
<id>5978558</id>
<revision>
<id>821204500</id>
<parentid>550381694</parentid>
<timestamp>2018-01-19T00:33:54Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Terminated]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="285">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #EDF; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;dropped table-dropped&quot;|{{{1|Terminated}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>80o6crsbgp8l4l4xupomlezzsi0j4mm</sha1>
</revision>
</page>
<page>
<title>Template:Unknown</title>
<ns>10</ns>
<id>5916299</id>
<revision>
<id>718042598</id>
<parentid>716442660</parentid>
<timestamp>2016-05-01T06:22:39Z</timestamp>
<contributor>
<username>PhilipTerryGraham</username>
<id>15292794</id>
</contributor>
<comment>Harmonizing color scheme with Template:N/a</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="306">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #ececec; color: #2C2C2C; font-size: smaller; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;unknown table-unknown&quot;|{{{1|Unknown}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>hgo832orxm3cczwyq7cqxjr75za0pc2</sha1>
</revision>
</page>
<page>
<title>Template:Unofficial</title>
<ns>10</ns>
<id>27900223</id>
<revision>
<id>542388013</id>
<parentid>542242306</parentid>
<timestamp>2013-03-06T15:59:58Z</timestamp>
<contributor>
<username>Tntchn</username>
<id>15106502</id>
</contributor>
<comment>remove interwiki links</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="318">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #5FC; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;partial table-partial&quot;|{{{1|Unofficial}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;!-- interwikis &amp; categories --&gt;
&lt;/noinclude&gt;</text>
<sha1>eko97rhsgebtq18k0diglih1lzvzj5b</sha1>
</revision>
</page>
<page>
<title>Template:Unofficial2</title>
<ns>10</ns>
<id>48234891</id>
<revision>
<id>685930302</id>
<timestamp>2015-10-15T22:01:29Z</timestamp>
<contributor>
<username>Spartan7W</username>
<id>13723007</id>
</contributor>
<comment>New template</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="321">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #adffe6; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;partial table-partial&quot;|{{{1|Unofficial}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;!-- interwikis &amp; categories --&gt;
&lt;/noinclude&gt;</text>
<sha1>l5ob0y5z51qxpr8dcf6qsq2p9fyv41e</sha1>
</revision>
</page>
<page>
<title>Template:Unreleased</title>
<ns>10</ns>
<id>50916894</id>
<revision>
<id>726978487</id>
<parentid>726978356</parentid>
<timestamp>2016-06-25T19:32:47Z</timestamp>
<contributor>
<ip>98.230.192.179</ip>
</contributor>
<comment>Doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="175">{| class=&quot;wikitable&quot;
|&lt;onlyinclude&gt;{{n/a|{{{1|Unreleased}}}}}&lt;/onlyinclude&gt;
|}
{{documentation|content={{Table cell templates/doc}}}}
[[Category:Unified table cell templates]]</text>
<sha1>e4f2008ygda1ni4t1j4plheccjv17hl</sha1>
</revision>
</page>
<page>
<title>Template:Usually</title>
<ns>10</ns>
<id>31678188</id>
<revision>
<id>427469480</id>
<timestamp>2011-05-04T20:53:46Z</timestamp>
<contributor>
<username>Jinnai</username>
<id>770829</id>
</contributor>
<comment>new template</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="315">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #8CF; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;partial table-partial&quot;|{{{1|Usually}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;!-- interwikis &amp; categories --&gt;
&lt;/noinclude&gt;</text>
<sha1>pv7w7av985y2m2a0diqrf7l9jux52jv</sha1>
</revision>
</page>
<page>
<title>Template:Varies</title>
<ns>10</ns>
<id>51895568</id>
<revision>
<id>743055387</id>
<timestamp>2016-10-07T14:25:13Z</timestamp>
<contributor>
<username>Allixpeeke</username>
<id>467798</id>
</contributor>
<comment>[[WP:AES|←]]Created page with '{| class=&quot;wikitable&quot; |- | &lt;onlyinclude&gt;data-sort-value=&quot;{{{sort|}}}&quot; style=&quot;background: #ececec; color: #2C2C2C; vertical-align: middle; font-size: smaller; t...'</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="282">{| class=&quot;wikitable&quot;
|-
| &lt;onlyinclude&gt;data-sort-value=&quot;{{{sort|}}}&quot; style=&quot;background: #ececec; color: #2C2C2C; vertical-align: middle; font-size: smaller; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;table-na&quot; &lt;!--
--&gt;| {{{1|Varies}}}&lt;/onlyinclude&gt;
|}
{{documentation}}</text>
<sha1>pgsrp1himz5bu70pd03nd5o1oboviwz</sha1>
</revision>
</page>
<page>
<title>Template:Won</title>
<ns>10</ns>
<id>15351925</id>
<revision>
<id>718793861</id>
<parentid>695452880</parentid>
<timestamp>2016-05-05T17:27:57Z</timestamp>
<contributor>
<username>Nyuszika7H</username>
<id>19331273</id>
</contributor>
<comment>Use documentation at [[Template:Table cell templates/doc]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="548">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: {{
#switch: {{lc:{{{place|Won}}}}}
|won = {{{color|&lt;nowiki&gt;#&lt;/nowiki&gt;99FF99}}}
|1|1st|gold = {{{color|gold}}}
|2|2nd|silver = {{{color|silver}}}
|3|3rd|bronze = {{{color|&lt;nowiki&gt;#&lt;/nowiki&gt;D9A821}}}
|#default = {{{color|&lt;nowiki&gt;#&lt;/nowiki&gt;F8EABA}}}
}}; color: {{{text|black}}}; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;yes table-yes2&quot;|{{{1|{{{place|Won}}}}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;/noinclude&gt;</text>
<sha1>9oz068i12jhncy5pfpfk1lv7lby9foj</sha1>
</revision>
</page>
<page>
<title>Template:Yes-No</title>
<ns>10</ns>
<id>8170385</id>
<revision>
<id>819689823</id>
<parentid>544604575</parentid>
<timestamp>2018-01-10T19:26:25Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Yes-No]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="314">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background: #FFD; color: black; vertical-align: middle; text-align: {{{align|center}}}; {{{style|}}}&quot; class=&quot;partial table-partial&quot;|{{{1|Yes/No}}}&lt;noinclude&gt;
|}
{{Documentation|Template:Table cell templates/doc}}
&lt;!-- interwikis &amp; categories --&gt;
&lt;/noinclude&gt;</text>
<sha1>6jfz2rjw6it0y5bw3a0k6229za610hi</sha1>
</revision>
</page>
<page>
<title>Template:Yes2</title>
<ns>10</ns>
<id>4365248</id>
<revision>
<id>677624593</id>
<parentid>350655741</parentid>
<timestamp>2015-08-24T14:01:41Z</timestamp>
<contributor>
<username>WJBscribe</username>
<id>2803535</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Yes2: [[WP:High-risk templates|Highly visible template]]: allow template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="226">&lt;noinclude&gt;{| class=&quot;wikitable&quot;
|-
|&lt;/noinclude&gt;style=&quot;background:#bfd; color:black; vertical-align:middle; text-align:{{{align|center}}}; {{{style|}}}&quot; class=&quot;table-yes2&quot; |{{{1|}}}&lt;noinclude&gt;
|}
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>g8ru5wexcbkah1ii8j2dbutxe5g3wjx</sha1>
</revision>
</page>
<page>
<title>Template:Edit templates</title>
<ns>10</ns>
<id>15754834</id>
<revision>
<id>726413832</id>
<parentid>726413706</parentid>
<timestamp>2016-06-22T01:14:55Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<minor/>
<comment>fixing more incorrect categorization</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="552">{{navbar|Template:Edit templates|text=This template:}}
* {{tl|Ed}} – navbar style edit link
* {{tl|Ed right}} – navbar style edit link aligned to right of page
* {{tl|Edit}} – plain edit link
* {{tl|Edit section}} – edit link aligned to right of page
* {{tl|Navbar}} – with additional links
* {{tl|Vedit}} – edit with the [[WP:VE|Visual Editor]]&lt;noinclude&gt;
{{doc|content=A list of templates that link to edit pages, for transclusion in those templates' &quot;See also&quot; sections.}}
[[Category:Documentation shared content templates]]
&lt;/noinclude&gt;</text>
<sha1>pg6jjasdu1xubyrn03xhm8kz9a76i2a</sha1>
</revision>
</page>
<page>
<title>Template:Navbar/doc</title>
<ns>10</ns>
<id>6712382</id>
<revision>
<id>822294482</id>
<parentid>817531433</parentid>
<timestamp>2018-01-25T15:18:55Z</timestamp>
<contributor>
<ip>46.226.187.198</ip>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="6477">{{documentation subpage}}
{{high-risk| 7690000+ pages, which is {{#expr:(715068600/{{NUMBEROFPAGES:R}}) round 0}}% of all English Wikipedia}}
{{lua|Module:Navbar}}
&lt;!---PLEASE ADD METADATA TO THE &lt;includeonly&gt; SECTION AT THE BOTTOM OF THIS PAGE---&gt;
==Usage==
===General===
When one of the following examples is placed inside a given [[Wikipedia:Navigation templates|template]], it adds navbar navigational functionality:
:&lt;code&gt;&lt;nowiki&gt;{{navbar|{{subst:PAGENAME}}|mini=y}}&lt;/nowiki&gt;&lt;/code&gt;
:&lt;code&gt;&lt;nowiki&gt;{{navbar|{{subst:PAGENAME}}|plain=y}}&lt;/nowiki&gt;&lt;/code&gt;
:&lt;code&gt;&lt;nowiki&gt;{{navbar|{{subst:PAGENAME}}|fontstyle=color: green; font-style: italic;}}&lt;/nowiki&gt;&lt;/code&gt;
The &lt;code&gt;&lt;nowiki&gt;{{subst:PAGENAME}}&lt;/nowiki&gt;&lt;/code&gt; will be substituted with the template's name when parsed by the servers. For example, &lt;code&gt;&lt;nowiki&gt;{{navbar|Navbar/doc}}&lt;/nowiki&gt;&lt;/code&gt; gives:&lt;br /&gt;{{navbar|Navbar/doc}}
===Font-size===
Font-size is 88% when used in a navbar, and 100% when nested in a navbox.
In the navbar, the weight is &quot;normal&quot;; when nested in navbox, it takes on the outer setting. The middot is bold. The {{para|fontstyle}} parameter can be used to adjust font size as needed (e.g. to reduce font size even more when the template is used inside a block element with a large font size).
==Examples==
===Required parameters===
*&lt;code&gt;&lt;nowiki&gt;{{navbar|Template Name}}&lt;/nowiki&gt;&lt;/code&gt; – the template name is required.
===Optional parameters===
{| class=&quot;wikitable&quot;
! Options !! Parameters !! Produces...
|-
| Basic || &lt;code&gt;&lt;nowiki&gt;{{navbar|Template Name}}&lt;/nowiki&gt;&lt;/code&gt; || {{navbar|Navbar/doc}}
|-
| Different text || &lt;code&gt;&lt;nowiki&gt;{{navbar|Template Name|&lt;/nowiki&gt;'''text'''&lt;nowiki&gt;=This template:}}&lt;/nowiki&gt;&lt;/code&gt; || {{navbar|Navbar/doc|text=This template:}}
|-
| Without &quot;This box:&quot; text || &lt;code&gt;&lt;nowiki&gt;{{navbar|Template Name|&lt;/nowiki&gt;'''plain'''&lt;nowiki&gt;=y}}&lt;/nowiki&gt;&lt;/code&gt; || {{navbar|Navbar/doc|plain=y}}
|-
| Short version || &lt;code&gt;&lt;nowiki&gt;{{navbar|Template Name|&lt;/nowiki&gt;'''mini'''&lt;nowiki&gt;=y}}&lt;/nowiki&gt;&lt;/code&gt; || {{navbar|Navbar/doc|mini=y}}
|-
| With brackets || &lt;code&gt;&lt;nowiki&gt;{{navbar|Template Name|&lt;/nowiki&gt;'''brackets'''&lt;nowiki&gt;=y}}&lt;/nowiki&gt;&lt;/code&gt; || {{navbar|Navbar/doc|brackets=y}}
|-
| With font styling examples ([[Span and div|span]]) || &lt;code&gt;&lt;nowiki&gt;{{navbar|Template Name|&lt;/nowiki&gt;'''fontstyle'''&lt;nowiki&gt;=color: green; font-style: italic;}}&lt;/nowiki&gt;&lt;/code&gt; || {{navbar|Navbar/doc|fontstyle=color: green; font-style: italic;}}
|-
| With whole-template styling examples ([[Span and div|div]]) || &lt;code&gt;&lt;nowiki&gt;{{navbar|Template Name|&lt;/nowiki&gt;'''style'''&lt;nowiki&gt;=float:right; background: Beige; padding: 5px; border: 1px solid;}}&lt;/nowiki&gt;&lt;/code&gt; || {{navbar|Navbar/doc|style=float:right; background: Beige; padding: 5px; border: 1px solid;}}
|}
===Deprecated parameters===
The &lt;code&gt;miniv=y&lt;/code&gt;, &lt;code&gt;viewplain=y&lt;/code&gt;, &lt;code&gt;nodiv=y&lt;/code&gt; and &lt;code&gt;fontcolor=&lt;/code&gt; parameters have been deprecated. To implement the view-only version, use the {{tlx|v}} or {{tlx|view}} templates instead.
==Notes==
Navbar is contained within a {{tag|div}} in order to accommodate a horizontal unnumbered list. This means it cannot be placed inside a {{tag|span}} or other inline element, because the [[HTML Tidy]] extension will 'fix' situations where it finds block elements inside inline elements.
==Prepackaged==
;{{tl|Navbar-header}}: Positions {{navbar|Navbar/doc|mini=1}} on the right edge of the line, often used in non-collapsible navbox heading.
;{{tl|Navbar-navframe}}: For use in conjunction with [[Wikipedia:NavFrame#NavFrame divs|NavFrame divs]], positions {{navbar|Navbar/doc|mini=1}} opposite of the [hide]/[show] feature.
;{{tl|Navbar-collapsible}}: For use in conjunction with [[Wikipedia:NavFrame#Collapsible tables|collapsible tables]], floats {{navbar|Navbar/doc|mini=1}} opposite of the [hide]/[show] feature.
==See also==
{{Edit templates}}
{{Navigation templates}}
== TemplateData ==
{{TemplateData header}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;When placed inside a given template, it adds navbar navigational functionality&quot;,
&quot;params&quot;: {
&quot;&quot;: {
&quot;label&quot;: &quot;Template Name&quot;,
&quot;description&quot;: &quot;The name of the template, so links work correctly&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;&quot;,
&quot;required&quot;: true
},
&quot;text&quot;: {
&quot;label&quot;: &quot;Different text&quot;,
&quot;description&quot;: &quot;Allows custom text to replace the default 'this box'&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;This box&quot;,
&quot;required&quot;: false
},
&quot;plain&quot;: {
&quot;label&quot;: &quot;Without 'This box:' text&quot;,
&quot;description&quot;: &quot;Removes 'This box'&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;default&quot;: &quot;0&quot;,
&quot;required&quot;: false
},
&quot;mini&quot;: {
&quot;label&quot;: &quot;Short Version&quot;,
&quot;description&quot;: &quot;Shortens text to V T E&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;default&quot;: &quot;0&quot;,
&quot;required&quot;: false
},
&quot;brackets&quot;: {
&quot;label&quot;: &quot;with brackets&quot;,
&quot;description&quot;: &quot;adds brackets before and after the links&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;default&quot;: &quot;0&quot;,
&quot;required&quot;: false
},
&quot;fontstyle&quot;: {
&quot;label&quot;: &quot;Font color&quot;,
&quot;description&quot;: &quot;Allows you to change the color of the font (in the format color:green)&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;&quot;,
&quot;required&quot;: false
},
&quot;style&quot;: {
&quot;label&quot;: &quot;To float to the side&quot;,
&quot;description&quot;: &quot;Allows the template to float to the side (format=float:right)&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;float:left&quot;,
&quot;required&quot;: false
}
}
}
&lt;/templatedata&gt;&lt;!---
PLEASE ADD METADATA TO THE &lt;includeonly&gt; SECTION HERE
---&gt;&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
[[Category:Internal link templates]]
}}&lt;/includeonly&gt;</text>
<sha1>lki4mv3t9lnz2io8xf0ayafka140qiy</sha1>
</revision>
</page>
<page>
<title>Template:Navbox visibility</title>
<ns>10</ns>
<id>47770635</id>
<revision>
<id>708802602</id>
<parentid>704281304</parentid>
<timestamp>2016-03-07T17:58:56Z</timestamp>
<contributor>
<username>WhatamIdoing</username>
<id>1998764</id>
</contributor>
<comment>Update per https://vital-signs.wmflabs.org/#projects=enwiki/metrics=Pageviews</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="375">Navboxes and other templates using the &lt;code&gt;navbox&lt;/code&gt; or &lt;code&gt;vertical-navbox&lt;/code&gt; attributes are &lt;mark&gt;not displayed on the [https://en.m.wikipedia.org/ Mobile Web site for Wikipedia]&lt;/mark&gt;, which accounts for approximately 45% of readers.&lt;noinclude&gt;
{{documentation}}
[[Category:Notice and warning templates]]
[[Category:Navigational meta-templates]]
&lt;/noinclude&gt;</text>
<sha1>eomnh805zhoy9xa8dz8srptxac9zg39</sha1>
</revision>
</page>
<page>
<title>Template:PAGENAMETDOC</title>
<ns>10</ns>
<id>46414190</id>
<revision>
<id>706897123</id>
<parentid>664858968</parentid>
<timestamp>2016-02-25T22:28:49Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>/* top */replace template being deleted using [[Project:AWB|AWB]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="780">{{#ifeq:{{#invoke:String|find|{{FULLPAGENAME}}|/sandbox%d*$|plain=false}}|0|{{{{#if:{{{1|}}}||FULL}}BASEPAGENAME}}|{{{{#if:{{{1|}}}||FULL}}PAGENAME}}}}&lt;noinclude&gt;
{{Documentation|content=
This template returns the current {{Tlx|FULLBASEPAGENAME}}, unless the title ends in &lt;code&gt;/sandbox&lt;/code&gt; plus any number of digits, in which case it returns the {{tlx|FULLPAGENAME}}. It is primarily meant for demonstrating the sandbox version of templates in their documentation.
This template takes one numbered parameter (&lt;code&gt;1&lt;/code&gt;); if anything is in this parameter then it will return &lt;code&gt;&amp;#123;&amp;#123;BASEPAGENAME&amp;#125;&amp;#125;&lt;/code&gt; and &lt;code&gt;&amp;#123;&amp;#123;PAGENAME&amp;#125;&amp;#125;&lt;/code&gt;, which have no namespace prefix.
}}
[[Category:Wikipedia variable-like templates]]
&lt;/noinclude&gt;</text>
<sha1>bb4lwtq364k7cj4oyrz8l48l7hqu3yx</sha1>
</revision>
</page>
<page>
<title>Template:Template display</title>
<ns>10</ns>
<id>53404864</id>
<revision>
<id>780788566</id>
<parentid>780787925</parentid>
<timestamp>2017-05-17T06:11:33Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<minor/>
<comment>empty alt attributes for unlinked decorative images</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1636">{{#ifeq: {{{1}}}| adaptive |&lt;table class=&quot;plainlinks advert&quot; role=&quot;presentation&quot; style=&quot;margin: 0 10%; border: 1px solid #aaa; border-left: 10px solid #1e90ff; background: #fbfbfb;&quot;&gt;&lt;tr&gt;&lt;td class=&quot;mbox-image&quot; style=&quot;width:71px;padding:3px;&quot;&gt;[[File:Different devices simple.svg|65x65px|link=|alt=]]&lt;/td&gt;&lt;td class=&quot;mbox-text&quot;&gt;&lt;span class=&quot;mbox-text-span&quot;&gt;This template is [[Adaptive web design|adaptive]] and &lt;strong&gt;displays differently in mobile and desktop view&lt;/strong&gt;. Read the documentation for an explanation of the differences and why they exist.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; | {{#ifeq: {{{1}}} | nomobile|&lt;table class=&quot;plainlinks advert&quot; role=&quot;presentation&quot; style=&quot;margin: 0 10%; border: 1px solid #aaa; border-left: 10px solid #1e90ff; background: #fbfbfb;&quot;&gt;&lt;tr&gt;&lt;td class=&quot;mbox-image&quot; style=&quot;width:55px&quot;&gt;[[File:Handheld devices no.svg|55px|link=|alt=]]&lt;/td&gt;&lt;td class=&quot;mbox-text&quot;&gt;&lt;span class=&quot;mbox-text-span&quot;&gt;This template does not display in the mobile view of Wikipedia; it is &lt;strong&gt;desktop only&lt;/strong&gt;. Read the documentation for an explanation.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;|{{#ifeq: {{{1}}} | nodesktop |&lt;table class=&quot;plainlinks advert&quot; role=&quot;presentation&quot; style=&quot;margin: 0 10%; border: 1px solid #aaa; border-left: 10px solid #1e90ff; background: #fbfbfb;&quot;&gt;&lt;tr&gt;&lt;td class=&quot;mbox-image&quot; style=&quot;width:55px&quot;&gt;[[File:Desktop devices no.svg|55px|link=|alt=]]&lt;/td&gt;&lt;td class=&quot;mbox-text&quot;&gt;&lt;span class=&quot;mbox-text-span&quot;&gt;This template does not display in the desktop view of Wikipedia; it is &lt;strong&gt;mobile only&lt;/strong&gt;. Read the documentation for an explanation.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;| }}| }}| }}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>hpn5j8rgt6hjc4sd6sk9ly0hr456xgr</sha1>
</revision>
</page>
<page>
<title>Template:Navbox with collapsible groups/doc</title>
<ns>10</ns>
<id>13793380</id>
<revision>
<id>811721025</id>
<parentid>801693440</parentid>
<timestamp>2017-11-23T13:59:16Z</timestamp>
<contributor>
<username>Dabao qian</username>
<id>23099071</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="18494">{{Documentation subpage}}
&lt;includeonly&gt;{{High-use|85,000+}}{{Template display|nomobile}}&lt;/includeonly&gt;
{{Navbox suite}}
This template produces a [[Wikipedia:Navigation template|navigation template]] that has groups of relevant articles on a certain topic. All groups are hidden by default. However, with a parameter call, an individual group can be shown that has the other articles in the same group.
== Usage ==
Please remove the parameters that are left blank. The template currently supports up to 20 groups/lists but more can be added if needed. You should use a minimum of two groups/lists; otherwise, use {{tl|Navbox}} instead.
&lt;pre&gt;
{{Navbox with collapsible groups
| name = {{subst:PAGENAME}}
| state = {{{state|}}}
| titlestyle =
| title =
| image =
| listclass = hlist
| selected = {{{selected|{{{1|}}}}}}
| abbr1 =
| group1 =
| content1 =
| abbr2 =
| group2 =
| content2 =
&lt;!--[etc, to:]--&gt;
| abbr20 =
| group20 =
| list20 =
}}
&lt;/pre&gt;
== Parameters ==
This template shares many common parameters with its sister templates {{tl|Navbox}} and {{tl|Navbox with columns}}. The common parameters are marked with a cross&lt;sup&gt;'''†'''&lt;/sup&gt;. Please refer to the documentation of {{tl|Navbox}} for more in depth descriptions and examples of those parameters.
===Setup parameters===
:;name&lt;sup&gt;†&lt;/sup&gt;
::The name of the template. The name of this template, for example, is &quot;Navbox with collapsible groups&quot;.
:; ''state''&lt;sup&gt;†&lt;/sup&gt; &lt;span style=&quot;font-weight:normal;&quot;&gt;[&lt;code&gt;uncollapsed, collapsed, plain, off&lt;/code&gt;]&lt;/span&gt;
::The initial state of the show/hide feature for the main title. See {{tl|Navbox}} for more information. Does not affect display or hiding of group items, see ''state&lt;sub&gt;n&lt;/sub&gt;'', below.
:;''navbar''&lt;sup&gt;†&lt;/sup&gt;
::Possible values are &lt;code&gt;plain&lt;/code&gt;, &lt;code&gt;off&lt;/code&gt;, and the default value of blank. See {{tl|Navbox}} for more information.
:;''border''&lt;sup&gt;†&lt;/sup&gt;
::Possible values are &lt;code&gt;child&lt;/code&gt;, &lt;code&gt;none&lt;/code&gt;, and the default value of blank. Set to &lt;code&gt;child&lt;/code&gt; if you wish to use the navbox inside of another navbox; with this option, the child navbox is borderless and fits snuggly inside of its parent navbox. The parent navbox may be the list area of {{tl|Navbox}}, the columns of a {{tl|Navbox with columns}}, or a list area of {{tl|Navbox with collapsible groups}}. See {{tl|Navbox}} for more information and examples.
===Basic data parameters===
:;'''''title'''''&lt;sup&gt;†&lt;/sup&gt;
::The title of the template, displayed centered in the titlebar at the top of the template.
:;''above''&lt;sup&gt;†&lt;/sup&gt;
::Text or other elements to appear above groups/lists.
:;''image''&lt;sup&gt;†&lt;/sup&gt;
::Image to the right of all of the groups/lists.
:;''imageleft''&lt;sup&gt;†&lt;/sup&gt;
::Image to the left of all of the groups/lists.
:;''below''&lt;sup&gt;†&lt;/sup&gt;
::Text or other elements to appear below the groups/lists.
===Group/list parameters===
:; ''group&lt;sub&gt;n&lt;/sub&gt;''&lt;sup&gt;†&lt;/sup&gt;
:: The title of each section.
:; ''list&lt;sub&gt;n&lt;/sub&gt;''&lt;sup&gt;†&lt;/sup&gt;
:: The content/wikilinks that will be shown in the group. {{strikethrough|Use dots or bullets as separators (see the [[#See also|See also]] section).}} A {{tl|Navbox}} or {{tl|Navbox with columns}} can optionally be used here with its &lt;code&gt;border = child&lt;/code&gt; parameter set. If this is done, leave the corresponding group&lt;sub&gt;n&lt;/sub&gt; blank, as the child navbox will already provide the collapsible feature.
:; ''abbr&lt;sub&gt;n&lt;/sub&gt;''
:: This is the abbreviation of the group. See &lt;code&gt;selected&lt;/code&gt; parameter immediately below to see how to use this parameter. This parameter is optional, but recommended.
:; ''selected''
:: If the value of &lt;code&gt;selected&lt;/code&gt; equals the value of &lt;code&gt;abbr&lt;sub&gt;n&lt;/sub&gt;&lt;/code&gt;, then list&lt;sub&gt;n&lt;/sub&gt; is uncollapsed and all other lists are collapsed. If &lt;code&gt;selected&lt;/code&gt; is left blank, or if it does not match any &lt;code&gt;abbr&lt;sub&gt;n&lt;/sub&gt;&lt;/code&gt;, then all groups are collapsed. Usually this parameter should be set to &lt;tt&gt;&lt;nowiki&gt;{{{1|}}}&lt;/nowiki&gt;&lt;/tt&gt;. Since this template is a base template for others, there has to be a way to pass the group parameter from the article, to the secondary template to this one.
:: The collapsed/uncollapsed options can be listed on the template's page by using the {{tl|Collapsible sections option}} template in the &lt;nowiki&gt;&lt;noinclude&gt;&lt;/nowiki&gt; part of the page.
:; ''state&lt;sub&gt;n&lt;/sub&gt;'' &lt;span style=&quot;font-weight:normal;&quot;&gt;[&lt;code&gt;uncollapsed, collapsed, plain, off&lt;/code&gt;]&lt;/span&gt;
:: The initial collapsible state of list&lt;sub&gt;n&lt;/sub&gt;. Set to collapsed by default. Overridden to uncollapsed if &lt;code&gt;selected&lt;/code&gt; equals &lt;code&gt;abbr&lt;sub&gt;n&lt;/sub&gt;&lt;/code&gt;.
:; ''image&lt;sub&gt;n&lt;/sub&gt;''
:: An image to appear in the list&lt;sub&gt;n&lt;/sub&gt; content area on the right side.
:; ''imageleft&lt;sub&gt;n&lt;/sub&gt;''
:: An image to appear in the list&lt;sub&gt;n&lt;/sub&gt; content area on the left side.
===Style parameters===
:;''bodystyle''&lt;sup&gt;†&lt;/sup&gt;
::CSS style/s to apply to the entire template
:;''titlestyle''&lt;sup&gt;†&lt;/sup&gt;
::[[Wikipedia:CSS|CSS]] style/s to apply to titlebar; usually &lt;code&gt;background:''color''&lt;/code&gt;. The color of wikilink text must be manually changed using span tags. For example use &lt;code&gt;&lt;nowiki&gt;title = [[Scouting|&lt;span style=&quot;color:ivory;&quot;&gt;Scouting&lt;/span&gt;]]&lt;/nowiki&gt;&lt;/code&gt; to change the color of the link to ivory. The [show]/[hide] button and the vde link button use the color set in the titlestyle parameter. Here is an example of setting the titlestyle:
:::&lt;code&gt;titlestyle = background:darkgreen;color:ivory;&lt;/code&gt;
:;''abovestyle''&lt;sup&gt;†&lt;/sup&gt;
:;''belowstyle''&lt;sup&gt;†&lt;/sup&gt;
::CSS style/s to apply to the ''above'' and ''below'' parameters, respectively.
:;''basestyle''&lt;sup&gt;†&lt;/sup&gt;
::CSS style/s to apply to the ''title'', ''above'', ''below'', and ''group&lt;sub&gt;n&lt;/sub&gt;'' parameters, all at the same time.
:;''imagestyle''&lt;sup&gt;†&lt;/sup&gt;
::CSS style/s to apply to the ''image'' parameter. Does not get applied to the image&lt;sub&gt;n&lt;/sub&gt; parameters.
:;''imageleftstyle''&lt;sup&gt;†&lt;/sup&gt;
::CSS style/s to apply to the ''imageleft'' parameter. Does not get applied to the imageleft&lt;sub&gt;n&lt;/sub&gt; parameters.
:; ''groupstyle''&lt;sup&gt;†&lt;/sup&gt;
:: CSS style/s to apply to all group heading parameters. Visit [http://meyerweb.com/eric/tools/color-blend/ this website] to get a lighter color similar to the title background color. Example:
:::&lt;code&gt;groupstyle = background:lightgreen;&lt;/code&gt;
:; ''group&lt;sub&gt;n&lt;/sub&gt;''style&lt;sup&gt;†&lt;/sup&gt;
:: CSS style/s to apply to a specific group heading; overrides any CSS styles set in ''groupstyle''.
:; ''liststyle''&lt;sup&gt;†&lt;/sup&gt;
:: CSS style/s to apply to all list content parameters.
:; ''list&lt;sub&gt;n&lt;/sub&gt;''style&lt;sup&gt;†&lt;/sup&gt;
:: CSS style/s to apply to specific list content parameters; overrides any CSS styles set in ''liststyle''.
:; ''listpadding''&lt;sup&gt;†&lt;/sup&gt;
:: Padding to have in each list cell; defaults to 0.25em on the left/right and 0em on the top/bottom.
===Microformat parameters===
:; ''bodyclass''&lt;sup&gt;†&lt;/sup&gt;
:: This parameter is inserted into the &quot;class&quot; attribute for the infobox as a whole.
:; ''titleclass''&lt;sup&gt;†&lt;/sup&gt;
:: This parameter is inserted into the &quot;class&quot; attribute for the infobox's title caption.
:See [[Wikipedia:WikiProject Microformats]] for more information on adding microformat information to Wikipedia, and [[microformat]] for more information on microformats in general.
== Examples ==
===Basic example===
&lt;source lang=&quot;moin&quot; style=&quot;overflow:scroll;&quot;&gt;
{{Navbox with collapsible groups
|name = University of Michigan
|state = uncollapsed
|title = [[University of Michigan|&lt;span style=&quot;color:#FFD700;&quot;&gt;The University of Michigan, Ann Arbor&lt;/span&gt;]]
|titlestyle = background:#00008B;color:#FFD700;
|listclass = hlist
|groupstyle = background:#FFD700;color:#00008B;
|image =
|selected = {{{1|}}}
|group1 = [[University of Michigan#Academic profile|&lt;span style=&quot;color:#00008B;&quot;&gt;Academics&lt;/span&gt;]]
|abbr1 = academics
|list1 =
* [[University of Michigan College of Engineering|College of Engineering]]
* [[University of Michigan College of Literature, Science, and the Arts|College of Literature, Science and the Arts]]
* [[Gerald R. Ford School of Public Policy]]
* [[University of Michigan Law School|Law School]]
* [[University of Michigan Health System|Medical School]]
* [[Ross School of Business]]
* [[University of Michigan School of Education|School of Education]]
* [[University of Michigan School of Information|School of Information]]
* [[University of Michigan School of Music, Theatre &amp; Dance|School of Music, Theatre &amp; Dance]]
* [[University of Michigan School of Natural Resources and Environment|School of Natural Resources and Environment]]
* [[University of Michigan School of Public Health|School of Public Health]]
* [[Taubman College of Architecture and Urban Planning]]
|group2 = [[Michigan Wolverines|&lt;span style=&quot;color:#00008B;&quot;&gt;Athletics&lt;/span&gt;]]
|abbr2 = athletics
|state2 = uncollapsed
|list2 =
* [[Michigan Stadium]]
* [[Crisler Arena]]
* [[Yost Ice Arena]]
* [[Michigan Wolverines]]
* [[Michigan Wolverines football|Football]]
* [[Michigan – Ohio State football rivalry|UM-OSU Rivalry]]
* [[Little Brown Jug (American football)|Little Brown Jug]]
* [[Paul Bunyan Trophy]]
* [[Cold War (ice hockey)|Cold War]]
|group3 = Campus
|abbr3 = campus
|list3 =
* [[Angell Hall Observatory]]
* [[Burton Memorial Tower|Burton Tower]]
* [[The Diag]]
* [[David M. Dennison Building|Dennison Building]]
* [[Gerald R. Ford Presidential Library]]
* [[Hill Auditorium]]
* [[Lurie Tower]]
* [[Matthaei Botanical Gardens]]
* [[Michigan Union]]
* [[Museums at the University of Michigan|Museums]]
* [[Nichols Arboretum]]
* [[University of Michigan Health System|UM Health System]]
* [[University of Michigan Library|University Library]]
}}
&lt;/source&gt;
{{Navbox with collapsible groups
|name = University of Michigan
|state = uncollapsed
|title = [[University of Michigan|&lt;span style=&quot;color:#FFD700;&quot;&gt;The University of Michigan, Ann Arbor&lt;/span&gt;]]
|titlestyle = background:#00008B;color:#FFD700;
|listclass = hlist
|groupstyle = background:#FFD700;color:#00008B;
|image =
|selected = {{{1|}}}
|group1 = [[University of Michigan#Academic profile|&lt;span style=&quot;color:#00008B;&quot;&gt;Academics&lt;/span&gt;]]
|abbr1 = academics
|list1 =
* [[University of Michigan College of Engineering|College of Engineering]]
* [[University of Michigan College of Literature, Science, and the Arts|College of Literature, Science and the Arts]]
* [[Gerald R. Ford School of Public Policy]]
* [[University of Michigan Law School|Law School]]
* [[University of Michigan Health System|Medical School]]
* [[Ross School of Business]]
* [[University of Michigan School of Education|School of Education]]
* [[University of Michigan School of Information|School of Information]]
* [[University of Michigan School of Music, Theatre &amp; Dance|School of Music, Theatre &amp; Dance]]
* [[University of Michigan School of Natural Resources and Environment|School of Natural Resources and Environment]]
* [[University of Michigan School of Public Health|School of Public Health]]
* [[Taubman College of Architecture and Urban Planning]]
|group2 = [[Michigan Wolverines|&lt;span style=&quot;color:#00008B;&quot;&gt;Athletics&lt;/span&gt;]]
|abbr2 = athletics
|state2 = uncollapsed
|list2 =
* [[Michigan Stadium]]
* [[Crisler Arena]]
* [[Yost Ice Arena]]
* [[Michigan Wolverines]]
* [[Michigan Wolverines football|Football]]
* [[Michigan – Ohio State football rivalry|UM-OSU Rivalry]]
* [[Little Brown Jug (American football)|Little Brown Jug]]
* [[Paul Bunyan Trophy]]
* [[Cold War (ice hockey)|Cold War]]
|group3 = Campus
|abbr3 = campus
|list3 =
* [[Angell Hall Observatory]]
* [[Burton Memorial Tower|Burton Tower]]
* [[The Diag]]
* [[David M. Dennison Building|Dennison Building]]
* [[Gerald R. Ford Presidential Library]]
* [[Hill Auditorium]]
* [[Lurie Tower]]
* [[Matthaei Botanical Gardens]]
* [[Michigan Union]]
* [[Museums at the University of Michigan|Museums]]
* [[Nichols Arboretum]]
* [[University of Michigan Health System|UM Health System]]
* [[University of Michigan Library|University Library]]
}}
===Nesting other Navbox forms===
This example shows {{tl|Navbox}}, {{tl|Navbox with collapsible groups}} and {{tl|Navbox with columns}} all working together. Press the edit button for the section to view the code. Note that each of the child navboxes has the first parameter set to &lt;code&gt;child&lt;/code&gt;
{{Navbox with collapsible groups
|name = Navbox with collapsible groups/doc#Nesting other Navbox forms
|title = Navbox, Navbox with columns, and Navbox with collapsible groups together
|selected = {{{1|}}}
|listclass = hlist
|group1 = [[:Category:Scouting|The Scouting Movement]]
|abbr1 = movement
|list1 =
*[[Scouting]]
*''[[Scouting for Boys]]''
*[[Scout method]]
*[[Scout Law]]
*[[Scout Promise]]
*[[Scout Motto]]
*[[Wood Badge]]
*[[Age groups in Scouting and Guiding]]
*[[Cub Scout]]
*[[Scout (Scouting)|Boy Scout]]
*[[Rover Scout]]
*[[Brownie (Girl Guides)|Brownie]]
*[[Girl Guiding and Girl Scouting]]
*[[Ranger (Girl Guide)]]
*[[Jamboree (Scouting)|Jamboree]]
*[[Scout Leader]]
*[[World Organization of the Scout Movement|WOSM]]
*[[World Association of Girl Guides and Girl Scouts|WAGGGS]]
*[[Non-aligned Scouting and Scout-like organisations|Non-aligned organisations]]
*[[Scouting controversy and conflict]]
*[[Scouting in popular culture]]
*[[List of Scouts]]
*[[List of highest awards in Scouting]]
|list2 = {{Navbox|child
|title = [[French colonial empire|Former French colonies]] in [[Africa]] and the [[Indian Ocean]]
|state = {{#ifeq:{{{1|}}}|french|uncollapsed|collapsed}}
|titlestyle = background#
|groupstyle = background:lavender;
|group1 = [[Maghreb|Mahgreb]]
|list1 =
*[[French Algeria|Algeria]]
*[[French protectorate of Morocco|Morocco]]&amp;nbsp;&lt;small&gt;([[Arguin|Arguin Island]])&lt;/small&gt;
*[[History of Tunisia|Tunisia]]
|group2 = [[French West Africa]]
|list2 =
*[[History of Côte d'Ivoire#French Period|Côte d'Ivoire]]
*[[French Dahomey|Dahomey]]
*[[French Sudan]]
*[[French Guinea|Guinea]]
*[[History of Mauritania#French colonization and post-colonial history|Mauritania]]
*[[History of Niger#Colonization|Niger]]
*[[History of Senegal|Senegal]]
*[[French Upper Volta|Upper Volta]]
|group3 = &amp;nbsp;
|list3 =
*[[French Togoland]]
*[[James Island (Gambia)|James Island]]
|group4 = [[French Equatorial Africa]]
|list4 =
*[[Colonial Chad|Chad]]
*[[History of Gabon|Gabon]]
*[[History of the Republic of the Congo|Middle Congo]]
*[[Ubangi-Shari|Oubangui-Chari]]
|group5 = [[Comoros]]
|list5 =
*[[Anjouan]]
*[[Grande Comore]]
*[[Mohéli]]
|group6 = &amp;nbsp;
|list6 =
*[[History of Djibouti#French interest|French Somaliland (Djibouti)]]
*[[History of Madagascar#French control|Madagascar]]
*[[Mauritius|Ile de France]]
*[[Seychelles]]
}}
|group3 = [[:Category:Scouting and Guiding in the United Kingdom|Scouting and Guiding in the United Kingdom]]
|abbr3 = Scouting
|list3 =
*[[The Scout Association]]
*[[Girlguiding UK]]
*[[Beaver Scouts]]
*[[Cub Scouts (The Scout Association)|Cub Section (UK)]]
*[[Venture Scout]]
*[[Explorer Scouts (The Scout Association)|Explorer Scouts]]
*[[Brownie (Girl Guides)]]
*[[Ranger (Girl Guide)]]
*[[Rainbow (Girl Guides)]]
*[[Scout Network]]
*[[Chief Scout (The Scout Association)|Chief Scout (United Kingdom)]]
*[[Scout Counties (The Scout Association)|Scout Counties]]
*[[Scout District]]
*[[Scouts (The Scout Association)|Scout Section (UK)]]
*[[Scout Activity Centre (The Scout Association)|Scout Activity Centre]]
*[[Young Leaders (The Scout Association)|Young Leaders]]
|list4 = {{Navbox with columns|child
|state = {{#ifeq:{{{1|}}}|coltest|uncollapsed|collapsed}}
|title = Navbox with columns nested in itself
|colstyle = text-align:center;
|col1width = 33%
|col2width = 17%
|col3width = 33%
|col4width = 17%
|col1header = Col1Header
|col2header = Col2Header
|col3header = Col3Header
|col4header = Col4Header
|col1 = {{Navbox with columns|child
|colwidth = 50%
|colstyle = text-align:center;
|col1header = Col1.1Header
|col2header = Col1.2Header
|col1 = Col1.1
|col2 = Col1.2
}}
|col2 = Col2
|col3 = {{Navbox with columns|child
|colwidth = 33%
|colstyle = text-align:center;
|col1header = Col3.1Header
|col2header = Col3.2Header
|col3header = Col3.3Header
|col1 = Col3.1
|col2 = Col3.2
|col3 = Col3.3
}}
|col4 = Col4
}}
}}
===Nesting Navboxes to get more groups/lists===
You can conveniently nest Navboxes, including {{tl|Navbox with collapsible groups}}, to get an unlimited number of groups/lists. The following example uses one instance of {{tl|Navbox with collapsible groups}} to get the first 10 collapsible groups, a nested instance to get the next 10, and another nested instance to get the last 6. See the code to learn how it works. It is fairly simple to extend this to as many groups/lists as you like:
{{Navbox with collapsible groups
|name = {{PAGENAME}}
|state = collapsed
|title = Title
|selected = {{{1|}}}
|group1 = A
|list1 = List A
|group2 = B
|list2 = List B
|group3 = C
|list3 = List C
|group4 = D
|list4 = List D
|group5 = E
|list5 = List E
|group6 = F
|list6 = List F
|group7 = G
|list7 = List G
|group8 = H
|list8 = List H
|group9 = I
|list9 = List I
|list10 = {{Navbox with collapsible groups|child
|selected = {{{1|}}}
|group1 = J
|list1 = List J
|group2 = K
|list2 = List K
|group3 = L
|list3 = List L
|group4 = M
|list4 = List M
|group5 = N
|list5 = List N
|group6 = O
|list6 = List O
|group7 = P
|list7 = List P
|group8 = Q
|list8 = List Q
|group9 = R
|list9 = List R
|list10 = {{Navbox with collapsible groups|child
|selected = {{{1|}}}
|group1 = S
|list1 = List S
|group2 = T
|list2 = List T
|group3 = U
|list3 = List U
|group4 = V
|list4 = List V
|group5 = W
|list5 = List W
|group6 = X
|list6 = List X
|group7 = Y
|list7 = List Y
|group8 = Z
|list8 = List Z
}}
}}
}}
== See also ==
* {{tl|Collapsible sections option}}
* {{strikethrough|{{tl|Nowrap begin}} – Provides an explanation of the preferred method of using bullets or pipes to delimit list items.}} Deprecated; use the &lt;code&gt;hlist&lt;/code&gt; class.
{{Navigation templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!--Categories--&gt;
[[Category:Navigational boxes| ]]
[[Category:Wikipedia metatemplates]]
}}&lt;/includeonly&gt;
&lt;includeonly&gt;
[[ur:سانچہ:Navbox with collapsible groups]]
&lt;/includeonly&gt;</text>
<sha1>f6bswbmfu5x14pzkyonc3be3ld37zwm</sha1>
</revision>
</page>
<page>
<title>Template:Strikethrough</title>
<ns>10</ns>
<id>27341034</id>
<revision>
<id>772260310</id>
<parentid>638422623</parentid>
<timestamp>2017-03-26T06:52:13Z</timestamp>
<contributor>
<username>El C</username>
<id>92203</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Strikethrough]]&quot;: [[WP:High-risk templates|Highly visible template]]: RFPP ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="155">&lt;includeonly&gt;&lt;s&gt;{{{1}}}&lt;/s&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
&lt;!-- Add categories to the /doc subpage; interwikis go to Wikidata. --&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>pexxh5jrx62xq6r6xpsb3kwlmh8258r</sha1>
</revision>
</page>
<page>
<title>Template:AUS</title>
<ns>10</ns>
<id>1653852</id>
<revision>
<id>579821794</id>
<parentid>320438600</parentid>
<timestamp>2013-11-02T02:43:34Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:AUS: Enable access by template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="96">{{flag|Australia}}&lt;noinclude&gt;
{{flag template documentation|Australia|AUS|AUS|AUS}}
&lt;/noinclude&gt;</text>
<sha1>4fnlzhxapna9gzrxbwar81b1nd1fye6</sha1>
</revision>
</page>
<page>
<title>Template:BIR</title>
<ns>10</ns>
<id>1701560</id>
<revision>
<id>579826493</id>
<parentid>446096383</parentid>
<timestamp>2013-11-02T03:38:35Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:BIR: Enable access by template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="82">{{flag|Burma}}&lt;noinclude&gt;
{{flag template documentation|Burma||BIR|}}
&lt;/noinclude&gt;</text>
<sha1>huan23opuv554rfv4yf5i4yje95h5td</sha1>
</revision>
</page>
<page>
<title>Template:BRN</title>
<ns>10</ns>
<id>1654643</id>
<revision>
<id>579827098</id>
<parentid>320445812</parentid>
<timestamp>2013-11-02T03:45:21Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:BRN: Enable access by template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="90">{{flag|Brunei}}&lt;noinclude&gt;
{{flag template documentation|Brunei|BRN|BRU|BRU}}
&lt;/noinclude&gt;</text>
<sha1>eqpfjsq7qqtan61c6k0ca704txl8wt4</sha1>
</revision>
</page>
<page>
<title>Template:BRU</title>
<ns>10</ns>
<id>1654645</id>
<redirect title="Template:BRN" />
<revision>
<id>816057278</id>
<parentid>113963444</parentid>
<timestamp>2017-12-18T23:50:02Z</timestamp>
<contributor>
<username>Stranger195</username>
<id>19277499</id>
</contributor>
<comment>+{{Rcat shell|{{R from merge}}{{R from template shortcut}}}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="87">#REDIRECT [[Template:BRN]]
{{Rcat shell|{{R from merge}}{{R from template shortcut}}}}</text>
<sha1>axyat22mhy4v0kpuobzmi61nnrs5qek</sha1>
</revision>
</page>
<page>
<title>Template:CAM</title>
<ns>10</ns>
<id>1654653</id>
<redirect title="Template:KHM" />
<revision>
<id>629272089</id>
<parentid>488704550</parentid>
<timestamp>2014-10-12T06:59:02Z</timestamp>
<contributor>
<username>Steel1943</username>
<id>2952402</id>
</contributor>
<comment>rcat update</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="47">#REDIRECT [[Template:KHM]]
{{R semi-protected}}</text>
<sha1>f88jlw1w5auyzhzeywu03j4mz6ihmvm</sha1>
</revision>
</page>
<page>
<title>Template:CHN</title>
<ns>10</ns>
<id>1653666</id>
<revision>
<id>579832526</id>
<parentid>320458065</parentid>
<timestamp>2013-11-02T04:59:31Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:CHN: Enable access by template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="88">{{flag|China}}&lt;noinclude&gt;
{{flag template documentation|China|CHN|CHN|CHN}}
&lt;/noinclude&gt;</text>
<sha1>dyon18wdgs73x5r4wc4424f01cmq7qb</sha1>
</revision>
</page>
<page>
<title>Template:Country data Australia</title>
<ns>10</ns>
<id>8894633</id>
<revision>
<id>789658219</id>
<parentid>789245582</parentid>
<timestamp>2017-07-08T18:31:12Z</timestamp>
<contributor>
<username>Illegitimate Barrister</username>
<id>12006778</id>
</contributor>
<minor/>
<comment>([[c:GR|GR]]) [[c:COM:FR|File renamed]]: [[File:Flag of Australia (WFB 2017).gif]] → [[File:Flag of Australia (WFB 2014).gif]] uploader requested</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1244">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Australia
| flag alias = Flag of Australia.svg
| flag alias-1901 = Flag of Australia (1901-1903).svg
| flag alias-1903 = Flag of Australia (1903-1908).svg
| flag alias-1908 = Flag of Australia (WFB 2014).gif
| flag alias-2004 = Flag of Australia (WFB 2004).gif
| flag alias-union = Flag of the United Kingdom.svg
| flag alias-colonial = Australian Colonial Flag.svg
| flag alias-civil = Civil Ensign of Australia.svg
| flag alias-naval = Naval Ensign of Australia.svg
| flag alias-naval-1913 = Naval Ensign of the United Kingdom.svg
| link alias-naval = Royal Australian Navy
| link alias-army = Australian Army
| flag alias-air force = Air Force Ensign of Australia.svg
| link alias-air force = Royal Australian Air Force
| link alias-basketball = Australia {{{mw|men's}}} national {{{age|}}} basketball team
| link alias-football = Australia {{{mw|}}} national {{{age|}}} soccer team
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| altvar = {{{altvar|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1901
| var2 = 1903
| var3 = 1908
| var4 = 2004
| var5 = colonial
| var6 = civil
| var7 = naval-1913
| redir1 = AUS
| related1 = Australasia
&lt;/noinclude&gt;
}}</text>
<sha1>kjilkpuy8ogaxu58xi747d4lt8lci4i</sha1>
</revision>
</page>
<page>
<title>Template:Country data Brunei</title>
<ns>10</ns>
<id>8901248</id>
<revision>
<id>577850140</id>
<parentid>505942588</parentid>
<timestamp>2013-10-19T14:48:51Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Country data Brunei: allow template editors to modify ([Edit=Protected template] (indefinite) [Move=Protected template] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="489">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Brunei
| flag alias = Flag of Brunei.svg
| flag alias-old = Old Flag of Brunei.svg
| flag alias-1906 = Flag of Brunei 1906-1959.svg
| flag alias-naval = Naval Ensign of Brunei.svg
| link alias-naval = Royal Brunei Navy
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = old
| var2 = 1906
| redir1 = BRN
| redir2 = BRU
| redir3 = Brunei Darussalam
&lt;/noinclude&gt;
}}</text>
<sha1>o40u7y8tu7u24xarzbtcv2th02eb32s</sha1>
</revision>
</page>
<page>
<title>Template:Country data Burma</title>
<ns>10</ns>
<id>9025797</id>
<revision>
<id>714070897</id>
<parentid>680056034</parentid>
<timestamp>2016-04-07T13:01:11Z</timestamp>
<contributor>
<username>SiBr4</username>
<id>16981284</id>
</contributor>
<minor/>
<comment>Includeonly code</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="311">&lt;includeonly&gt;{{Country data Myanmar
|1={{{1}}}
|shortname alias={{#if:{{{altlink|}}}|Myanmar|Burma}}
|size={{{size|}}}
|name={{#if:{{{name|}}}|{{{name}}}|{{#if:{{{altlink|}}}|Burma}}}}
|altlink={{{altlink|}}}
|altvar={{{altvar|}}}
|variant={{{variant|}}}
}}&lt;/includeonly&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>351iy0z0yhfuuy5mt5nqnpldn3anpb2</sha1>
</revision>
</page>
<page>
<title>Template:Country data Cambodia</title>
<ns>10</ns>
<id>8901290</id>
<revision>
<id>577850370</id>
<parentid>557984710</parentid>
<timestamp>2013-10-19T14:50:49Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Country data Cambodia: allow template editors to modify ([Edit=Protected template] (indefinite) [Move=Protected template] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="845">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Cambodia
| flag alias = Flag of Cambodia.svg
| flag alias-1863 = Flag of Cambodia under French protection.svg
| flag alias-1942 = Flag of Cambodia under Japanese occupation.svg
| flag alias-1970 = Flag of the Khmer Republic.svg
| flag alias-1975 = Flag of Democratic Kampuchea.svg
| flag alias-1979 = Flag of the People's Republic of Kampuchea.svg
| flag alias-1989 = Flag of the State of Cambodia.svg
| flag alias-1992 = Flag of Cambodia under UNTAC.svg
| link alias-naval = Royal Cambodian Armed Forces
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1863
| var2 = 1942
| var3 = 1970
| var4 = 1975
| var5 = 1979
| var6 = 1989
| var7 = 1992
| redir1 = KHM
| redir2 = CAM
| related1 = Khmer Republic
&lt;/noinclude&gt;
}}</text>
<sha1>f3gew3852fcbh2an2r5ox6yh7xdly9u</sha1>
</revision>
</page>
<page>
<title>Template:Country data China</title>
<ns>10</ns>
<id>9020711</id>
<revision>
<id>817140298</id>
<parentid>817140217</parentid>
<timestamp>2017-12-26T12:07:39Z</timestamp>
<contributor>
<username>Illegitimate Barrister</username>
<id>12006778</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1673">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = China
| flag alias = Flag of the People's Republic of China.svg
| flag alias-1862 = Flag of the Qing Dynasty (1862-1889).svg
| border-1862 =
| flag alias-1889 = Flag of the Qing Dynasty (1889-1912).svg
| flag alias-1912 = Flag of the Republic of China (1912-1928).svg
| link-alias-1912 = Republic of China (1912-1949)
| flag alias-1929 = Flag of the Republic of China (Pantone).svg
| link-alias-1929 = Republic of China (1912-1949)
| flag alias-1949 = Flag of China (WFB 2000).png
| flag alias-2004 = Flag of China (WFB 2004).gif
| flag alias-2009 = Flag of China (WFB 2009).gif
| flag alias-military = People's Liberation Army Flag of the People's Republic of China.svg
| flag alias-army = Ground Force Flag of the People's Republic of China.svg
| link alias-army = People's Liberation Army Ground Force
| flag alias-naval = Naval Ensign of the People's Republic of China.svg
| link alias-naval = People's Liberation Army Navy
| flag alias-air force = Air Force Flag of the People's Republic of China.svg
| link alias-air force = People's Liberation Army Air Force
| name alias-football = China PR
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| altvar = {{{altvar|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1862
| var2 = 1889
| var3 = 1912
| var4 = 1929
| var5 = 1949
| var6 = 2004
| var7 = 2009
| var8 = military
| redir1 = CHN
| redir2 = People's Republic of China
| redir3 = China, People's Republic of
| redir4 = China (People's Republic of)
| redir5 = PRC
| related1 = Qing dynasty
| related2 = Republic of China
| related3 = Republic of China (1912–1949)
&lt;/noinclude&gt;
}}</text>
<sha1>tfrjdhi5d533tk4g875n0lf0zg7jcvk</sha1>
</revision>
</page>
<page>
<title>Template:Country data India</title>
<ns>10</ns>
<id>8926564</id>
<revision>
<id>793057652</id>
<parentid>793057545</parentid>
<timestamp>2017-07-30T10:14:41Z</timestamp>
<contributor>
<username>Sodacan</username>
<id>8272776</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="820">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = India
| flag alias = Flag of India.svg
| flag alias-British = British Raj Red Ensign.svg
| flag alias-1931 = 1931 Flag of India.svg
| flag alias-1947 = Flag of India (WFB 2004).gif
| flag alias-civil = Civil Ensign of India.svg
| flag alias-army = Flag of Indian Army.svg
| link alias-army = Indian Army
| flag alias-naval = Naval Ensign of India.svg
| flag alias-air force = Air Force Ensign of India.svg
| flag alias-coast guard = Indian Coast Guard flag.png
| link alias-naval = Indian Navy
| link alias-air force = Indian Air Force
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = British
| var2 = 1931
| var3 = 1947
| var4 = civil
| redir1 = IND
| related1 = British Raj
&lt;/noinclude&gt;
}}</text>
<sha1>ahx30pb5gzdjte6esgeuz96gplovtrw</sha1>
</revision>
</page>
<page>
<title>Template:Country data Indonesia</title>
<ns>10</ns>
<id>8926590</id>
<revision>
<id>610622812</id>
<parentid>577851719</parentid>
<timestamp>2014-05-29T10:50:19Z</timestamp>
<contributor>
<username>SiBr4</username>
<id>16981284</id>
</contributor>
<minor/>
<comment>Removed redundant interwikis ([[d:Q5612912]]) using [[Project:AWB|AWB]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="317">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Indonesia
| flag alias = Flag of Indonesia.svg
| link alias-naval = Indonesian Navy
| link alias-air force = Indonesian Air Force
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
&lt;noinclude&gt;
| redir1 = IDN
| redir2 = INA
&lt;/noinclude&gt;
}}</text>
<sha1>03pesap1jl02ezifxdxptwcionldxfw</sha1>
</revision>
</page>
<page>
<title>Template:Country data Japan</title>
<ns>10</ns>
<id>8926743</id>
<revision>
<id>823603362</id>
<parentid>813364113</parentid>
<timestamp>2018-02-02T07:19:59Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<comment>use [[File:Flag of Japan.svg]] for 1999-current, per request</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1463">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Japan
| flag alias = Flag of Japan.svg
| flag alias-1870 = Flag of Japan (1870-1999).svg
| flag alias-1945 = Flag of Allied Occupied Japan.svg
| border-1945 =
| flag alias-1947 = Flag of Japan (1870-1999).svg
| flag alias-ryukyu = Flag of US Occupied Ryukyu Islands.svg
| border-ryukyu =
| flag alias-naval = Naval Ensign of Japan.svg
| flag alias-Coast Guard = Ensign of the Japanese Coast Guard.svg
| link alias-naval = Japan Maritime Self-Defense Force
| link alias-Coast Guard = Japanese Coast Guard
| flag alias-army = Flag of JSDF.svg
| link alias-army = Japan Ground Self-Defense Force
| flag alias-air force = Flag of the Japan Air Self-Defense Force.svg
| link alias-air force = Japan Air Self-Defense Force
| flag alias-air force-1955 = Flag of the Japan Air Self-Defense Force (1955-1957).png
| link alias-air force-1955 = Japan Air Self-Defense Force
| flag alias-air force-1957 = Flag of the Japan Air Self-Defense Force (1957-1972).png
| link alias-air force-1957 = Japan Air Self-Defense Force
| flag alias-air force-1972 = Flag of the Japan Air Self-Defense Force (1972-2001).png
| link alias-air force-1972 = Japan Air Self-Defense Force
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1870
| var2 = 1945
| var3 = 1947
| var8 = ryukyu
| var9 = Coast Guard
| redir1 = JPN
| related1 = Empire of Japan
&lt;/noinclude&gt;
}}</text>
<sha1>nrd9hp6aofj247ovx6djleayhfkmees</sha1>
</revision>
</page>
<page>
<title>Template:Country data Laos</title>
<ns>10</ns>
<id>8986243</id>
<revision>
<id>610639826</id>
<parentid>577855839</parentid>
<timestamp>2014-05-29T13:16:27Z</timestamp>
<contributor>
<username>SiBr4</username>
<id>16981284</id>
</contributor>
<minor/>
<comment>Removed redundant interwikis ([[d:Q5621323]]) using [[Project:AWB|AWB]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="390">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Laos
| flag alias = Flag of Laos.svg
| flag alias-colonial = Flag of French Laos.svg
| flag alias-1952 = Flag of Laos (1952-1975).svg
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| altvar = {{{altvar|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = colonial
| var2 = 1952
| redir1 = LAO
&lt;/noinclude&gt;
}}</text>
<sha1>0o57navp3hudj9swxdi29abnso5coea</sha1>
</revision>
</page>
<page>
<title>Template:Country data Malaysia</title>
<ns>10</ns>
<id>8933440</id>
<revision>
<id>746072415</id>
<parentid>738517389</parentid>
<timestamp>2016-10-25T03:14:44Z</timestamp>
<contributor>
<username>Andy M. Wang</username>
<id>516856</id>
</contributor>
<comment>answering part of TPER on talk, adding related templates</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="887">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Malaysia
| flag alias = Flag of Malaysia.svg
| flag alias-1895 = Flag of the Federated Malay States (1895 - 1946).svg
| flag alias-1948 = Flag of Malaya.svg
| flag alias-naval = Naval Ensign of Malaysia.svg
| link alias-naval = Royal Malaysian Navy
| flag alias-air force = Royal Malaysian Air Force Flag.svg
| link alias-air force = Royal Malaysian Air Force
| flag alias-civil = Civil Ensign of Malaysia.svg
| link alias-civil = Malaysia
| flag alias-army = Flag of the Malaysian Army.svg
| link alias-army =Malaysian Army
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1895
| var2 = 1948
| var3 = civil
| redir1 = MYS
| redir2 = MAS
| related1 = Malaya
| related2 = Malayan Union
| related3 = Kingdom of Sarawak
| related4 = North Borneo
&lt;/noinclude&gt;
}}</text>
<sha1>hj6aqzocxzycjfsztuxjifx577fsipu</sha1>
</revision>
</page>
<page>
<title>Template:Country data Myanmar</title>
<ns>10</ns>
<id>17622123</id>
<revision>
<id>773717788</id>
<parentid>738448364</parentid>
<timestamp>2017-04-03T23:48:36Z</timestamp>
<contributor>
<username>CommonsDelinker</username>
<id>2304267</id>
</contributor>
<comment>Replacing Flag_of_the_Myanmar_Air_Force.svg with [[File:Air_Force_Ensign_of_Myanmar.svg]] (by [[commons:User:CommonsDelinker|CommonsDelinker]] because: [[:c:COM:FR|File renamed]]: #4 Standardise a set of images.).</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="909">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Myanmar
| shortname alias = {{{shortname alias|Myanmar}}}
| flag alias = Flag of Myanmar.svg
| flag alias-1937 = British Burma 1937 flag.svg
| flag alias-1943 = Flag of the State of Burma (1943-45).svg
| flag alias-1948 = Flag of Burma (1948-1974).svg
| flag alias-1974 = Flag of Myanmar (1974-2010).svg
| flag alias-naval = Naval Ensign of Myanmar.svg
| link alias-air force = Myanmar Air Force
| flag alias-army =Flag of the Myanmar Army.svg
| flag alias-air force = Air Force Ensign of Myanmar.svg
| link alias-army = Myanmar Army
| link alias-naval = Myanmar Navy
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| altvar = {{{altvar|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1937
| var2 = 1943
| var3 = 1948
| var4 = 1974
| related1 = Burma
| related2 = British Burma
| related3 = Konbaung Dynasty
&lt;/noinclude&gt;
}}</text>
<sha1>mlv0m6l070zfea0i4351fm7ztzuv55i</sha1>
</revision>
</page>
<page>
<title>Template:Country data New Zealand</title>
<ns>10</ns>
<id>8950807</id>
<revision>
<id>782212356</id>
<parentid>774440739</parentid>
<timestamp>2017-05-25T15:26:07Z</timestamp>
<contributor>
<username>Cabayi</username>
<id>6561336</id>
</contributor>
<comment>rm link-aliases for field hockey &amp; softball per edit request</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="639">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = New Zealand
| flag alias = Flag of New Zealand.svg
| flag alias-civil = Civil Ensign of New Zealand.svg
| flag alias-naval = Naval Ensign of New Zealand.svg
| flag alias-naval-1941 = Naval Ensign of the United Kingdom.svg
| link alias-naval = Royal New Zealand Navy
| flag alias-air force = Air Force Ensign of New Zealand.svg
| link alias-air force = Royal New Zealand Air Force
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| altvar = {{{altvar|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = civil
| var2 = naval-1941
| redir1 = NZL
&lt;/noinclude&gt;
}}</text>
<sha1>f3cob6vyll6c8y47m190bl503eyvair</sha1>
</revision>
</page>
<page>
<title>Template:Country data Philippines</title>
<ns>10</ns>
<id>8953230</id>
<revision>
<id>793055345</id>
<parentid>783224847</parentid>
<timestamp>2017-07-30T09:48:58Z</timestamp>
<contributor>
<username>Sodacan</username>
<id>8272776</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1603">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Philippines
| flag alias = Flag of the Philippines.svg
| flag alias-1535 = Flag_of_Cross_of_Burgundy.svg
| flag alias-1821 = Flag of Spain (1785-1873 and 1875-1931).svg
| flag alias-1873 = Flag of the First Spanish Republic.svg
| flag alias-1875 = Flag of Spain (1785-1873 and 1875-1931).svg
| flag alias-aguinaldo = Philippines Flag Original.svg
| flag alias-1898 = Flag of the United States (1896-1908).svg
| flag alias-1908 = US flag 46 stars.svg
| flag alias-1912 = US flag 48 stars.svg
| flag alias-1919 = Flag of the Philippines (1919-1936).svg
| flag alias-1936 = Flag of the Philippines (navy blue).svg
| flag alias-1985 = Flag of the Philippines (light blue).svg
| flag alias-1986 = Flag of the Philippines (navy blue).svg
| flag alias-air force = Flag of the Philippine Air Force.svg
| link alias-air force = Philippine Air Force
| flag alias-army=Flag of the Philippine Army.svg
| link alias-army = Philippine Army
| link alias-naval = Philippine Navy
| link alias-basketball = Philippines {{{mw|men's}}} national {{{age|}}} basketball team
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| altvar = {{{altvar|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1535
| var2 = 1821
| var3 = 1873
| var4 = 1875
| var5 = aguinaldo
| var6 = 1898
| var7 = 1908
| var8 = 1912
| var9 = 1919
| var10 = 1936
| var11 = 1985
| var12 = 1986
| cat = Philippines
| redir1 = PHL
| redir2 = PHI
| related1 = First Philippine Republic
| related2 = Philippine Commonwealth
| related3 = Second Philippine Republic
&lt;/noinclude&gt;
}}</text>
<sha1>o72jgq3f80hfi8lyp15kp4qqhcwamkm</sha1>
</revision>
</page>
<page>
<title>Template:Country data Russia</title>
<ns>10</ns>
<id>8953328</id>
<revision>
<id>805081639</id>
<parentid>805081537</parentid>
<timestamp>2017-10-12T23:05:02Z</timestamp>
<contributor>
<username>Illegitimate Barrister</username>
<id>12006778</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1454">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Russia
| flag alias = Flag of Russia.svg
| flag alias-1668 = Flag of Russia (1668).svg
| flag alias-1696 = Flag of Russia (1696-1917).svg
| flag alias-1721 = Flag of Oryol (variant).svg
| flag alias-1858 = Romanov Flag.svg
| flag alias-1914 = Flag of Russian Empire for private use (1914–1917).svg
| flag alias-1918 = Flag of the Russian SFSR (1918-1920).svg
| flag alias-1925 = Flag of the Russian SFSR (1920-1937).svg
| flag alias-1937 = Flag of the Russian SFSR (1937-1954).svg
| flag alias-1954 = Flag of the Russian SFSR.svg
| flag alias-1991 = Flag of Russia (1991-1993).svg
| flag alias-1993 = Flag of Russia (Kremlin.ru).svg
| flag alias-2004 = Flag of Russia (WFB 2004).gif
| flag alias-2013 = Flag of Russia (WFB 2013).gif
| flag alias-army = Flag of the Russian ground forces.svg
| link alias-army = Russian Ground Forces
| flag alias-naval = Naval Ensign of Russia.svg
| link alias-naval = Russian Navy
| flag alias-air force = Flag of the Air Force of the Russian Federation.svg
| link alias-air force = Russian Air Force
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1668
| var2 = 1696
| var3 = 1721
| var4 = 1858
| var5 = 1914
| var6 = 1918
| var7 = 1925
| var8 = 1937
| var9 = 1954
| var10 = 1991
| var11 = 1993
| var12 = 2004
| var13 = 2013
| redir1 = RUS
| redir2 = Russian Federation
&lt;/noinclude&gt;
}}</text>
<sha1>r2a6k0nesm8vj8jscoorf6pq1ovdxct</sha1>
</revision>
</page>
<page>
<title>Template:Country data Singapore</title>
<ns>10</ns>
<id>8953285</id>
<revision>
<id>738618144</id>
<parentid>738617837</parentid>
<timestamp>2016-09-10T02:07:06Z</timestamp>
<contributor>
<username>Illegitimate Barrister</username>
<id>12006778</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="686">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Singapore
| flag alias = Flag of Singapore.svg
| flag alias-colonial = Flag of Singapore (1946-1959).svg
| flag alias-civil = Civil Ensign of Singapore.svg
| flag alias-naval = Naval Ensign of Singapore.svg
| link alias-naval = Republic of Singapore Navy
| flag alias-air force = State colour of the Republic of Singapore Air Force (1977-1993).png
| link alias-air force= Republic of Singapore Air Force
| link alias-army = Singapore Army
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = colonial
| var2 = civil
| redir1 = SGP
| redir2 = SIN
&lt;/noinclude&gt;
}}</text>
<sha1>s8xb5m96hlapn82ot6z16om0u5zhn31</sha1>
</revision>
</page>
<page>
<title>Template:Country data South Korea</title>
<ns>10</ns>
<id>8926842</id>
<revision>
<id>814849195</id>
<parentid>805590939</parentid>
<timestamp>2017-12-11T08:23:07Z</timestamp>
<contributor>
<username>Illegitimate Barrister</username>
<id>12006778</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1576">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = South Korea
| flag alias = Flag of South Korea.svg
| flag alias-1945 = Flag of South Korea (1945-1948).svg
| flag alias-1948 = Flag of South Korea (1948-1949).svg
| flag alias-1949 = Flag of South Korea (1949-1984).png
| flag alias-1984 = Flag of South Korea (1984-1997).svg
| flag alias-1997 = Flag of South Korea (1997-2011).svg
| flag alias-2000 = Flag of South Korea (WFB 2000).png
| flag alias-2004 = Flag of South Korea (WFB 2004).gif
| flag alias-2009 = Flag of South Korea (WFB 2009).gif
| flag alias-army = Flag of the Republic of Korea Army.svg
| flag alias-air force = Flag of the Republic of Korea Air Force.svg
| link alias-army = Republic of Korea Army
| link alias-naval = Republic of Korea Navy
| link alias-air force = Republic of Korea Air Force
| name alias-badminton = South Korea
| link alias-badminton = Korea national badminton team
| size = {{{size|}}}
| name = {{#ifeq:{{{name|}}}|Republic of Korea|South Korea|{{{name|}}}}}
| altlink = {{{altlink|}}}
| altvar = {{{altvar|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1945
| var2 = 1948
| var3 = 1949
| var4 = 1984
| var5 = 1997
| var6 = 2000
| var7 = 2004
| var8 = 2009
| redir1 = KOR
| redir2 = Republic of Korea
| redir3 = Korea, South
| related1 = First Republic of Korea
| related2 = Second Republic of Korea
| related3 = Third Republic of Korea
| related4 = Fourth Republic of Korea
| related5 = Fifth Republic of Korea
| related6 = Korean Empire
| related7 = North Korea
| related8 = Joseon
| related9 = Korea
&lt;/noinclude&gt;
}}</text>
<sha1>kiw9esrwmhu2nah3promii5bv8tp66t</sha1>
</revision>
</page>
<page>
<title>Template:Country data Thailand</title>
<ns>10</ns>
<id>8955029</id>
<revision>
<id>743192046</id>
<parentid>743191968</parentid>
<timestamp>2016-10-08T11:31:17Z</timestamp>
<contributor>
<username>Illegitimate Barrister</username>
<id>12006778</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="912">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Thailand
| flag alias = Flag of Thailand.svg
| flag alias-1767 = Flag of Thailand (Ayutthaya period).svg
| flag alias-1782 = Flag of Thailand (1782).svg
| flag alias-1817 = Flag of Thailand (1817).svg
| flag alias-1855 = Flag of Thailand 1855.svg
| flag alias-1916 = Flag of Thailand (1916).svg
| flag alias-1917 =State Flag of Thailand (1916).svg
| flag alias-naval = Naval Ensign of Thailand.svg
| link alias-naval = Royal Thai Navy
| flag alias-air force = Flag of the Royal Thai Air Force.svg
| link alias-air force = Royal Thai Air Force
| flag alias-army= Flag of the Royal Thai Army.svg
| link alias-army=Royal Thai Army
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1767
| var2 = 1782
| var3 = 1817
| var4 = 1855
| var5 = 1916
| var6 = 1917
| redir1 = THA
&lt;/noinclude&gt;
}}</text>
<sha1>m1kalhb1zbcy2s4i6n64cgfzud8xpb9</sha1>
</revision>
</page>
<page>
<title>Template:Country data United States</title>
<ns>10</ns>
<id>8953176</id>
<revision>
<id>814946266</id>
<parentid>814846359</parentid>
<timestamp>2017-12-11T20:53:50Z</timestamp>
<contributor>
<username>Harrias</username>
<id>719387</id>
</contributor>
<comment>Undid revision 814846359 by [[Special:Contributions/Illegitimate Barrister|Illegitimate Barrister]] ([[User talk:Illegitimate Barrister|talk]]) - undid recent change, need a way of viewing the ISO code &quot;USA&quot;, not just &quot;U.S.&quot;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2845">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = United States
| flag alias = Flag of the United States.svg
| flag alias-1776 = Grand Union Flag.svg
| flag alias-1777 = US flag 13 stars – Betsy Ross.svg
| flag alias-1795 = Star-Spangled Banner flag.svg
| flag alias-1818 = US flag 20 stars.svg
| flag alias-1819 = US flag 21 stars.svg
| flag alias-1820 = US flag 23 stars.svg
| flag alias-1822 = US flag 24 stars.svg
| flag alias-1836 = US flag 25 stars.svg
| flag alias-1837 = US flag 26 stars.svg
| flag alias-1845 = US flag 27 stars.svg
| flag alias-1846 = US flag 28 stars.svg
| flag alias-1847 = US flag 29 stars.svg
| flag alias-1848 = US flag 30 stars.svg
| flag alias-1851 = U.S. flag, 31 stars.svg
| flag alias-1858 = US flag 32 stars.svg
| flag alias-1859 = US flag 33 stars.svg
| flag alias-1861 = US flag 34 stars.svg
| flag alias-1863 = US flag 35 stars.svg
| flag alias-1865 = US flag 36 stars.svg
| flag alias-1867 = US flag 37 stars.svg
| flag alias-1877 = US flag 38 stars.svg
| flag alias-1890 = US flag 43 stars.svg
| flag alias-1891 = US flag 44 stars.svg
| flag alias-1896 = US flag 45 stars.svg
| flag alias-1908 = US flag 46 stars.svg
| flag alias-1912 = U.S. flag, 48 stars.svg
| flag alias-1959 = US flag 49 stars.svg
| flag alias-1960 = Flag of the United States (Pantone).svg
| flag alias-air force = Flag of the United States Air Force.svg
| flag alias-coast guard = Ensign of the United States Coast Guard.svg
| flag alias-coast guard-1915 = Ensign of the United States Coast Guard (1915-1953).png
| link alias-naval = {{#switch:{{{variant|}}}|coast guard|coast guard-1915=United States Coast Guard|United States Navy}}
| flag alias-army = Flag of the United States Army.svg
| link alias-football = United States {{{mw|men's}}} national {{{age|}}} soccer team
| link alias-basketball = United States {{{mw|men's}}} national {{{age|}}} basketball team
| link alias-field hockey = United States {{{mw|men's}}} national field hockey team
| link alias-Australian rules football = United States {{{mw|men's}}} national Australian rules football team
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| altvar = {{{altvar|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1776
| var2 = 1777
| var3 = 1795
| var4 = 1818
| var5 = 1819
| var6 = 1820
| var7 = 1822
| var8 = 1836
| var9 = 1837
| var10 = 1845
| var11 = 1846
| var12 = 1847
| var13 = 1848
| var14 = 1851
| var15 = 1858
| var16 = 1859
| var17 = 1861
| var18 = 1863
| var19 = 1865
| var20 = 1867
| var21 = 1877
| var22 = 1890
| var23 = 1891
| var24 = 1896
| var25 = 1908
| var26 = 1912
| var27 = 1959
| var28 = 1960
| var29 = coast guard
| var30 = coast guard-1915
| redir1 = USA
| redir2 = US
| redir3 = United States of America
| redir4 = U.S.
&lt;/noinclude&gt;
}}</text>
<sha1>shk9thw9fohtxpq7xlnqwfn9269soup</sha1>
</revision>
</page>
<page>
<title>Template:Country data Vietnam</title>
<ns>10</ns>
<id>8960472</id>
<revision>
<id>737657177</id>
<parentid>722135071</parentid>
<timestamp>2016-09-04T07:27:08Z</timestamp>
<contributor>
<username>Illegitimate Barrister</username>
<id>12006778</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="847">{{ {{{1&lt;noinclude&gt;|country showdata&lt;/noinclude&gt;}}}
| alias = Vietnam
| flag alias = Flag of Vietnam.svg
| flag alias-1890 = Flag of South Vietnam.svg
| flag alias-1920 = Second flag of the Nguyen Dynasty.svg
| flag alias-1945 = Old Flag Of Vietnam.svg
| flag alias-naval = Ensign of Vietnam People's Navy.svg
| link alias-naval = Vietnam People's Navy
| flag alias-army = Flag of the People's Army of Vietnam.svg
| link alias-army = People's Army of Vietnam
| flag alias-air force = Flag of the Vietnam People's Air Force.svg
| link alias-air force = Vietnam People's Air Force
| size = {{{size|}}}
| name = {{{name|}}}
| altlink = {{{altlink|}}}
| variant = {{{variant|}}}
&lt;noinclude&gt;
| var1 = 1890
| var2 = 1920
| var3 = 1945
| redir1 = VNM
| redir2 = VIE
| redir3 = Viet Nam
| related1 = South Vietnam
| related2 = North Vietnam
&lt;/noinclude&gt;
}}</text>
<sha1>6b4f3zqq1pn55253uzs29gu6d5659w5</sha1>
</revision>
</page>
<page>
<title>Template:Flag</title>
<ns>10</ns>
<id>1695548</id>
<revision>
<id>638605379</id>
<parentid>637523521</parentid>
<timestamp>2014-12-18T05:55:14Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<comment>Closing</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="148">{{country data {{{1|}}}|flag/core|name={{{name|{{{1|}}}}}}|variant={{{variant|{{{2|}}}}}}|size={{{size|}}}}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>ofumtldgk38cy4vntgy93o2oniuxo2q</sha1>
</revision>
</page>
<page>
<title>Template:Flag/core</title>
<ns>10</ns>
<id>1938204</id>
<revision>
<id>693897002</id>
<parentid>619865791</parentid>
<timestamp>2015-12-05T18:10:03Z</timestamp>
<contributor>
<username>SiBr4</username>
<id>16981284</id>
</contributor>
<comment>Default to placeholder flag, to avoid breaking if a bot blanks a &quot;flag alias&quot; parameter</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="378">&lt;span class=&quot;flagicon&quot;&gt;[[File:{{{flag alias-{{{variant}}}|{{#if:{{{flag alias|}}}|{{{flag alias}}}|Flag placeholder.svg}}}}}|{{#if:{{{size|}}}|{{{size}}}|23x15px}}|{{{border-{{{variant}}}|{{{border|border}}}}}} |alt=|link=]]&amp;nbsp;{{#ifeq:{{{size}}}|23x16px|&amp;nbsp;}}{{#ifeq:{{{alias}}}|Nepal|&amp;nbsp;&amp;nbsp;}}&lt;/span&gt;[[{{{alias}}}|{{{name}}}]]&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>ndkzxczprmtimhsxyhz8kipl09powaw</sha1>
</revision>
</page>
<page>
<title>Template:IDN</title>
<ns>10</ns>
<id>1653889</id>
<revision>
<id>771840338</id>
<parentid>327001243</parentid>
<timestamp>2017-03-23T20:34:38Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:IDN]]&quot;: Allowing template editors ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="96">{{flag|Indonesia}}&lt;noinclude&gt;
{{flag template documentation|Indonesia|IDN|INA|IDN}}
&lt;/noinclude&gt;</text>
<sha1>rzlfu2k7hqdfr1ih6u9q9m2bd9jh9a5</sha1>
</revision>
</page>
<page>
<title>Template:IND</title>
<ns>10</ns>
<id>1438127</id>
<revision>
<id>771840345</id>
<parentid>340822501</parentid>
<timestamp>2017-03-23T20:34:38Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:IND]]&quot;: Allowing template editors ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="88">{{flag|India}}&lt;noinclude&gt;
{{flag template documentation|India|IND|IND|IND}}
&lt;/noinclude&gt;</text>
<sha1>jypgcf45ev2q4ki8mg4trq8lgszirn3</sha1>
</revision>
</page>
<page>
<title>Template:JPN</title>
<ns>10</ns>
<id>1652463</id>
<revision>
<id>772147310</id>
<parentid>330306270</parentid>
<timestamp>2017-03-25T16:04:12Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:JPN]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefinite)...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="88">{{flag|Japan}}&lt;noinclude&gt;
{{flag template documentation|Japan|JPN|JPN|JPN}}
&lt;/noinclude&gt;</text>
<sha1>ihiw328zhsh03ix8dpgvq9u1ctxwt30</sha1>
</revision>
</page>
<page>
<title>Template:KHM</title>
<ns>10</ns>
<id>1910902</id>
<revision>
<id>629386548</id>
<parentid>330309229</parentid>
<timestamp>2014-10-13T02:55:31Z</timestamp>
<contributor>
<username>Xaosflux</username>
<id>502540</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:KHM: reduce from prot to tprot (low transclusions) ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="94">{{flag|Cambodia}}&lt;noinclude&gt;
{{flag template documentation|Cambodia|KHM|CAM|CAM}}
&lt;/noinclude&gt;</text>
<sha1>89cn0xh9vh0t9whfoa4byzzr8kumi6o</sha1>
</revision>
</page>
<page>
<title>Template:KOR</title>
<ns>10</ns>
<id>1653961</id>
<revision>
<id>772147301</id>
<parentid>330310248</parentid>
<timestamp>2017-03-25T16:04:12Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:KOR]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefinite)...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="100">{{flag|South Korea}}&lt;noinclude&gt;
{{flag template documentation|South Korea|KOR|KOR|KOR}}
&lt;/noinclude&gt;</text>
<sha1>2tl0e16x1dp4zivifsuhecsrc474v07</sha1>
</revision>
</page>
<page>
<title>Template:LAO</title>
<ns>10</ns>
<id>1652499</id>
<revision>
<id>772147319</id>
<parentid>330692807</parentid>
<timestamp>2017-03-25T16:04:12Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:LAO]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefinite)...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="86">{{flag|Laos}}&lt;noinclude&gt;
{{flag template documentation|Laos|LAO|LAO|LAO}}
&lt;/noinclude&gt;</text>
<sha1>9mds9ypoan8dsg8w14zbp7m9kxcy7i5</sha1>
</revision>
</page>
<page>
<title>Template:MAS</title>
<ns>10</ns>
<id>1661373</id>
<redirect title="Template:MYS" />
<revision>
<id>816059071</id>
<parentid>488788611</parentid>
<timestamp>2017-12-19T00:04:03Z</timestamp>
<contributor>
<username>Stranger195</username>
<id>19277499</id>
</contributor>
<comment>+{{Rcat shell|{{R from merge}}{{R from template shortcut}}}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="86">#REDIRECT[[Template:MYS]]
{{Rcat shell|{{R from merge}}{{R from template shortcut}}}}</text>
<sha1>6yipzeg2mn403prnexkzt0hmo0uoro5</sha1>
</revision>
</page>
<page>
<title>Template:MYS</title>
<ns>10</ns>
<id>1910904</id>
<revision>
<id>772147335</id>
<parentid>340808350</parentid>
<timestamp>2017-03-25T16:04:13Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:MYS]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefinite)...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="94">{{flag|Malaysia}}&lt;noinclude&gt;
{{flag template documentation|Malaysia|MYS|MAS|MAS}}
&lt;/noinclude&gt;</text>
<sha1>jcrxe16ierwka1ch2d1lo3c6iw9xwvt</sha1>
</revision>
</page>
<page>
<title>Template:NZL</title>
<ns>10</ns>
<id>1652525</id>
<revision>
<id>772147399</id>
<parentid>340812116</parentid>
<timestamp>2017-03-25T16:04:16Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:NZL]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefinite)...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="100">{{flag|New Zealand}}&lt;noinclude&gt;
{{flag template documentation|New Zealand|NZL|NZL|NZL}}
&lt;/noinclude&gt;</text>
<sha1>q2wt21cz2txjjg7twg9ausp35pynwre</sha1>
</revision>
</page>
<page>
<title>Template:Navbox with columns/doc</title>
<ns>10</ns>
<id>12882136</id>
<revision>
<id>820414990</id>
<parentid>816427278</parentid>
<timestamp>2018-01-14T16:48:17Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>/* Footnotes */</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="21829">{{Documentation subpage}}
{{Template display|nomobile}}
{{Navbox suite}}
A navigation box that presents its content in columns. Originally intended to provide a relatively straightforward means to align links prefixed by flag icons, e.g. in templates offering links to country articles.
== Basic syntax ==
Only required parameters and ''colwidth'' included.
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Navbox with columns
| name = {{subst:PAGENAME}}
| title =
| colwidth = &lt;!--(to set a default width for each column,
preferably in a proportional unit such as 'em'*)--&gt;
| col1 =
| col2 =
}}
&lt;/pre&gt;
&lt;div style=&quot;font-size:90%;line-height:1.35em;&quot;&gt;* See [[Em (typography)]]. Using proportional units means the template should still be displayed correctly across a range of browser font-sizes. If ''colwidth'' is not specified, a default 10.0em is used.&lt;/div&gt;
== Parameters ==
===Setup parameters===
:;''name''&lt;ref name=&quot;common&quot;&gt;Parameters marked with a footnote '''&lt;sup&gt;[1]&lt;/sup&gt;''' are parameters in common with the sister templates {{tl|Navbox}} and {{tl|Navbox with collapsible groups}}. A much more complete description of those parameters is available at {{tl|Navbox}}.&lt;/ref&gt;
::The name of the template. The name of this template, for example, is &quot;Navbox with columns&quot;.
:;''state''&lt;ref name=&quot;common&quot;/&gt;
::Possible values are &lt;code&gt;collapsed&lt;/code&gt;, &lt;code&gt;uncollapsed&lt;/code&gt;, &lt;code&gt;plain&lt;/code&gt;, &lt;code&gt;off&lt;/code&gt;, and the default &lt;code&gt;autocollapse&lt;/code&gt;. See {{tl|Navbox}} for more information.
:;''navbar''&lt;ref name=&quot;common&quot;/&gt;
::Possible values are &lt;code&gt;plain&lt;/code&gt;, &lt;code&gt;off&lt;/code&gt;, and the default value of blank. See {{tl|Navbox}} for more information.
:;''border''&lt;ref name=&quot;common&quot;/&gt;
::Possible values are &lt;code&gt;child&lt;/code&gt;, &lt;code&gt;none&lt;/code&gt;, and the default value of blank. Set to &lt;code&gt;child&lt;/code&gt; if you wish to use the navbox inside of another navbox; with this option, the child navbox is borderless and fits snuggly inside of its parent navbox. The parent navbox may be the list area of {{tl|Navbox}}, a columns of another {{tl|Navbox with columns}}, or a section of {{tl|Navbox with collapsible groups}}. See {{tl|Navbox}} for more information and examples.
===Perimeter parameters===
i.e. parameters affecting the inclusion/formatting of items around the template's perimeter.
:;'''''title'''''&lt;ref name=&quot;common&quot;/&gt;
::The title of the template, displayed centered in the titlebar at the top of the template.
:;''above''&lt;ref name=&quot;common&quot;/&gt;
::Text or other elements to appear above the columns.
:;''image''&lt;ref name=&quot;common&quot;/&gt;
::Image to the right of all of the columns.
:;''imageleft''&lt;ref name=&quot;common&quot;/&gt;
::Image to the left of all of the columns.
:;''below''&lt;ref name=&quot;common&quot;/&gt;
::Text or other elements to appear below the columns.
===Style parameters===
:;''style''&lt;ref name=&quot;common&quot;/&gt;
::CSS style/s to apply to the template's body (i.e. including space not used by columns)
:;''titlestyle''&lt;ref name=&quot;common&quot;/&gt;
::[[Wikipedia:CSS|CSS]] style/s to apply to titlebar; usually &lt;code&gt;background:''color''&lt;/code&gt; (background defaults to [[Wikipedia:NavFrame|NavHead]] default).
:;''abovestyle''&lt;ref name=&quot;common&quot;/&gt;
:;''belowstyle''&lt;ref name=&quot;common&quot;/&gt;
::CSS style/s to apply to the ''above'' and ''below'' parameters, respectively.
:;''basestyle''&lt;ref name=&quot;common&quot;/&gt;
::CSS style/s to apply to the ''title'', ''above'', and ''below'', parameters, all at the same time.
:;''imagestyle''&lt;ref name=&quot;common&quot;/&gt;
::CSS style/s to apply to the ''image'' parameter.
:;''imageleftstyle''&lt;ref name=&quot;common&quot;/&gt;
::CSS style/s to apply to the ''imageleft'' parameter
:;''coltablestyle''
::
:;''colstyle''
::CSS style/s to apply across all columns; if used, usually &lt;code&gt;background:''color''&lt;/code&gt; per ''titlestyle'' above.
:;''oddcolstyle''
:;''evencolstyle''
::CSS style/s to apply to all odd/even-numbered columns, respectively.
:;''col&lt;sub&gt;n&lt;/sub&gt;style''
::CSS style/s to apply to the n&lt;sup&gt;th&lt;/sup&gt; column only.
:;''colheaderstyle''
::CSS style/s to apply to all column headers.
:;''col&lt;sub&gt;n&lt;/sub&gt;headerstyle''
::CSS style/s to apply to the n&lt;sup&gt;th&lt;/sup&gt; column header.
:;''col&lt;sub&gt;n&lt;/sub&gt;footerstyle''
::CSS style/s to apply to the n&lt;sup&gt;th&lt;/sup&gt; column footer cell.
===Columns parameters===
:;''colwidth''
::Width, preferably in a proportional unit such as '[[Em (typography)|em]]', or as a percentage, used for each column whose width not specified by ''colNwidth'' below. Defaults to 10em. Examples:
:::&lt;code&gt;colwidth = 15.0em&lt;/code&gt;
:::&lt;code&gt;colwidth = 25%&lt;/code&gt;
:;''fullwidth''
::If set to anything, then the total width of the columns are scaled linearly to make the sum of the widths 100%. A rather advanced parameter, this usually need not be used and should be left blank. If a colheader or colfooter is used, then fullwidth is used automatically. Example:
:::&lt;code&gt;fullwidth = on&lt;/code&gt;
:;''padding''
::Padding before first column, preferably in a proportional unit. Defaults to 5em. Padding is disabled by setting it to 0 (or 0em, or 0%).
:;''col&lt;sub&gt;n&lt;/sub&gt;width''
::The n&lt;sup&gt;th&lt;/sup&gt; column's width (overrides ''colwidth'' above).
:;'''''col&lt;sub&gt;n&lt;/sub&gt;'''''
::The content of the n&lt;sup&gt;th&lt;/sup&gt; column. If any columns are used, then &lt;code&gt;col1&lt;/code&gt; is required. There can be a maximum of 20 columns.
:;''col&lt;sub&gt;n&lt;/sub&gt;header''
::A header cell for the n&lt;sup&gt;th&lt;/sup&gt; column that appears above the column. See below for examples.
:;''col&lt;sub&gt;n&lt;/sub&gt;footer
::A footer cell that appears below the n&lt;sup&gt;th&lt;/sup&gt; column.
:;''col&lt;sub&gt;n&lt;/sub&gt;headercolspan
::A number specifying how many columns the n&lt;sup&gt;th&lt;/sup&gt; column header should span. It defaults to 1. If it is greater than one, then do not specify column headers that it covers. For example, if &lt;code&gt;col1headercolspan = 3&lt;/code&gt;, then leave &lt;code&gt;col2header&lt;/code&gt; and &lt;code&gt;col3header&lt;/code&gt; blank.
:;''col&lt;sub&gt;n&lt;/sub&gt;footercolspan
::A number specifying how many columns the n&lt;sup&gt;th&lt;/sup&gt; column footer should span. It defaults to 1. If it is greater than one, then do not specify column footers that it covers. For example, if &lt;code&gt;col1footercolspan = 3&lt;/code&gt;, then leave &lt;code&gt;col2footer&lt;/code&gt; and &lt;code&gt;col3footer&lt;/code&gt; blank.
===Additional groups/lists===
You may wish to add a few extra groups and/or lists below the columns. The following parameters are given to provide such functionality. See {{tl|Navbox}} for a more complete description of how they work, and for more examples.
:;''group&lt;sub&gt;n&lt;/sub&gt;''&lt;ref name=&quot;common&quot;/&gt;
::Allows up to 6 additional groups to go along with the lists below the columns.
:;''list&lt;sub&gt;n&lt;/sub&gt;''&lt;ref name=&quot;common&quot;/&gt;
::Allows up to 6 additional lists below the columns.
:;''groupstyle&lt;ref name=&quot;common&quot;/&gt;
::The general CSS style/s for the groups.
:;''group&lt;sub&gt;n&lt;/sub&gt;''style&lt;sup&gt;†&lt;/sup&gt;
::CSS style/s for the n&lt;sup&gt;th&lt;/sup&gt; group parameter.&lt;ref name=&quot;common&quot;/&gt;
:;''liststyle''&lt;ref name=&quot;common&quot;/&gt;
::The general CSS style/s for the lists.
:;''list&lt;sub&gt;n&lt;/sub&gt;style''
::CSS style/s for the n&lt;sup&gt;th&lt;/sup&gt; list parameter.
:;''listpadding''&lt;ref name=&quot;common&quot;/&gt;
::Amount of padding to have in each list cell.
:; ''oddstyle''
:; ''evenstyle''
::Applies to odd/even list numbers. Overrules styles defined by ''liststyle''. The default behavior is to add striped colors (white and gray) to odd/even rows, respectively, in order to improve readability. These should not be changed except in extraordinary circumstances.
:; ''evenodd'' &lt;span style=&quot;font-weight:normal;&quot;&gt;&lt;code&gt;[swap, even, odd, off]&lt;/code&gt;&lt;/span&gt;
::See {{tl|Navbox}} for description.
=== Microformats ===
;bodyclass : This parameter is inserted into the &quot;class&quot; attribute for the infobox as a whole.
;titleclass : This parameter is inserted into the &quot;class&quot; attribute for the infobox's title caption.
This template supports the addition of microformat information. This is done by adding &quot;class&quot; attributes to various data cells, indicating what kind of information is contained within. To flag a navbox as containing [[hCard]] information about a person, for example, add the following parameter:
&lt;pre&gt;
|bodyclass = vcard
&lt;/pre&gt;
''and''
&lt;pre&gt;
|titleclass = fn
&lt;/pre&gt;
''or'' (for example):
&lt;pre&gt;&lt;nowiki&gt;
|title = The books of &lt;span class=&quot;fn&quot;&gt;[[Iain Banks]]&lt;/span&gt;
&lt;/nowiki&gt;&lt;/pre&gt;
...and so forth.
See [[Wikipedia:WikiProject Microformats]] for more information on adding microformat information to Wikipedia, and [[microformat]] for more information on microformats in general.
== Examples ==
===Basic example===
&lt;source lang=&quot;moin&quot; style=&quot;overflow:scroll;&quot;&gt;
{{Navbox with columns
| name = East Asia Summit (EAS)
| title = [[East Asia Summit|East Asia Summit (EAS)]]
| listclass = plainlist
| width = 18.25em
| padding = 10em
| aboveclass = hlist
| abovestyle = font-weight: bold;
| above =
* [[First East Asia Summit|First]]
* [[Second East Asia Summit|Second]]
* [[Third East Asia Summit|Third]]
* [[Fourth East Asia Summit|Fourth]]
* [[Fifth East Asia Summit|Fifth]]
* [[Sixth East Asia Summit|Sixth]]
* [[Seventh East Asia Summit|Seventh]]
| col1 =
* {{AUS}}
* {{BRU}}
* {{BIR}}
| col2 =
* {{CAM}}
* {{CHN}}
* {{IND}}
| col3 =
* {{IDN}}
* {{JPN}}
* {{LAO}}
| col4 =
* {{MAS}}
* {{NZL}}
* {{PHL}}
| col5 =
* {{RUS}}
* {{SIN}}
* {{KOR}}
| col6width = 17em
| col6 =
* {{THA}}
* {{USA}}
* {{VIE}}
}}
&lt;/source&gt;
{{Navbox with columns
| name = East Asia Summit (EAS)
| title = [[East Asia Summit|East Asia Summit (EAS)]]
| state = uncollapsed
| listclass = plainlist
| width = 18.25em
| padding = 10em
| aboveclass = hlist
| abovestyle = font-weight: bold;
| above =
* [[First East Asia Summit|First]]
* [[Second East Asia Summit|Second]]
* [[Third East Asia Summit|Third]]
* [[Fourth East Asia Summit|Fourth]]
* [[Fifth East Asia Summit|Fifth]]
* [[Sixth East Asia Summit|Sixth]]
* [[Seventh East Asia Summit|Seventh]]
| col1 =
* {{AUS}}
* {{BRU}}
* {{BIR}}
| col2 =
* {{CAM}}
* {{CHN}}
* {{IND}}
| col3 =
* {{IDN}}
* {{JPN}}
* {{LAO}}
| col4 =
* {{MAS}}
* {{NZL}}
* {{PHL}}
| col5 =
* {{RUS}}
* {{SIN}}
* {{KOR}}
| col6width = 17em
| col6 =
* {{THA}}
* {{USA}}
* {{VIE}}
}}
===Example with percentage widths===
&lt;source lang=&quot;moin&quot; style=&quot;overflow:scroll;&quot;&gt;
{{Navbox with columns
| name = Transit visibility table
| titlestyle = background:silver;
| title = [[Astronomical transit|Transit]] visibility from [[inferior and superior planets|planets superior]] to the transiting body
| listclass = plainlist
| colwidth = 14.2857%
| colstyle = text-align:center;
| col1header = Venus
| col1 =
* [[Transit of Mercury from Venus|Mercury]]
| col2header = Earth
| col2 =
* [[Transit of Mercury|Mercury]]
* [[Transit of Venus|Venus]]
| col3header = Mars
| col3 =
* [[Transit of Mercury from Mars|Mercury]]
* [[Transit of Venus from Mars|Venus]]
* [[Transit of Earth from Mars|Earth]]
| col4header = Jupiter
| col4 =
* [[Transit of Mercury from Jupiter|Mercury]]
* [[Transit of Venus from Jupiter|Venus]]
* [[Transit of Earth from Jupiter|Earth]]
* [[Transit of Mars from Jupiter|Mars]]
| col5header = Saturn
| col5 =
* [[Transit of Mercury from Saturn|Mercury]]
* [[Transit of Venus from Saturn|Venus]]
* [[Transit of Earth from Saturn|Earth]]
* [[Transit of Mars from Saturn|Mars]]
* [[Transit of Jupiter from outer planets|Jupiter]]
| col6header = Uranus
| col6 =
* [[Transit of Mercury from Uranus|Mercury]]
* [[Transit of Venus from Uranus|Venus]]
* [[Transit of Earth from Uranus|Earth]]
* [[Transit of Mars from Uranus|Mars]]
* [[Transit of Jupiter from outer planets|Jupiter]]
* [[Transit of Saturn from outer planets|Saturn]]
| col7header = Neptune
| col7 =
* [[Transit of Mercury from Neptune|Mercury]]
* [[Transit of Venus from Neptune|Venus]]
* [[Transit of Earth from Neptune|Earth]]
* [[Transit of Mars from Neptune|Mars]]
* [[Transit of Jupiter from outer planets|Jupiter]]
* [[Transit of Saturn from outer planets|Saturn]]
* [[Transit of Uranus from Neptune|Uranus]]
}}
&lt;/source&gt;
{{Navbox with columns
| name = Transit visibility table
| titlestyle = background:silver;
| title = [[Astronomical transit|Transit]] visibility from [[inferior and superior planets|planets superior]] to the transiting body
| state = uncollapsed
| listclass = plainlist
| colwidth = 14.2857%
| colstyle = text-align:center;
| col1header = Venus
| col1 =
* [[Transit of Mercury from Venus|Mercury]]
| col2header = Earth
| col2 =
* [[Transit of Mercury|Mercury]]
* [[Transit of Venus|Venus]]
| col3header = Mars
| col3 =
* [[Transit of Mercury from Mars|Mercury]]
* [[Transit of Venus from Mars|Venus]]
* [[Transit of Earth from Mars|Earth]]
| col4header = Jupiter
| col4 =
* [[Transit of Mercury from Jupiter|Mercury]]
* [[Transit of Venus from Jupiter|Venus]]
* [[Transit of Earth from Jupiter|Earth]]
* [[Transit of Mars from Jupiter|Mars]]
| col5header = Saturn
| col5 =
* [[Transit of Mercury from Saturn|Mercury]]
* [[Transit of Venus from Saturn|Venus]]
* [[Transit of Earth from Saturn|Earth]]
* [[Transit of Mars from Saturn|Mars]]
* [[Transit of Jupiter from outer planets|Jupiter]]
| col6header = Uranus
| col6 =
* [[Transit of Mercury from Uranus|Mercury]]
* [[Transit of Venus from Uranus|Venus]]
* [[Transit of Earth from Uranus|Earth]]
* [[Transit of Mars from Uranus|Mars]]
* [[Transit of Jupiter from outer planets|Jupiter]]
* [[Transit of Saturn from outer planets|Saturn]]
| col7header = Neptune
| col7 =
* [[Transit of Mercury from Neptune|Mercury]]
* [[Transit of Venus from Neptune|Venus]]
* [[Transit of Earth from Neptune|Earth]]
* [[Transit of Mars from Neptune|Mars]]
* [[Transit of Jupiter from outer planets|Jupiter]]
* [[Transit of Saturn from outer planets|Saturn]]
* [[Transit of Uranus from Neptune|Uranus]]
}}
===Example with col&lt;sub&gt;n&lt;/sub&gt;header and col&lt;sub&gt;n&lt;/sub&gt;footer===
The gray background for the columns is added for illustration only.
{{Navbox with columns
|name = Navbox with columns/doc
|state = uncollapsed
|title = col&lt;sub&gt;n&lt;/sub&gt;header and col&lt;sub&gt;n&lt;/sub&gt;footer example
|colstyle = text-align:center;background:silver;
|colwidth = 25%
|col1header = col1header
|col2header = col2header
|col3header = col3header
|col4header = col4header
|col1 = col1
|col2 = col2
|col3 = col3
|col4 = col4
|col1footer = col1footer
|col2footer = col2footer
|col3footer = col3footer
|col4footer = col4footer
}}
===Example with col&lt;sub&gt;n&lt;/sub&gt;header using col&lt;sub&gt;n&lt;/sub&gt;headercolspan===
The gray background for the columns is added for illustration only. This example shows the col&lt;sub&gt;n&lt;/sub&gt;headercolspan parameter being used, but you may also use col&lt;sub&gt;n&lt;/sub&gt;footercolspan to adjust the span of the footer cells.
{{Navbox with columns
|name = Navbox with columns/doc
|state = uncollapsed
|title = col&lt;sub&gt;n&lt;/sub&gt;header with col&lt;sub&gt;n&lt;/sub&gt;colspan example
|colstyle = text-align:center;background:silver;
|col1header = col1header
|col2header = col2header (colspan=2)
|col4header = col4header
|col5header = col5header (colspan=3)
|col2headercolspan = 2
|col5headercolspan = 3
|col1 = col1
|col2 = col2
|col3 = col3
|col4 = col4
|col5 = col5
|col6 = col6
|col7 = col7
}}
===Example to illustrate most fields===
The gray background and centered text for the columns is for illustration only. The columns default to an off-white background and left text alignment. This example shows how you can use up to six additional groups/lists after the columns.
{{Navbox with columns
|name = Navbox with columns/doc
|state = uncollapsed
|title = Example to illustrate most fields
|colstyle = text-align:center;background:silver;
|col1 = col1
|col2 = col2
|col3 = col3
|col4 = col4
|col5 = col5
|col1header = col1header
|col2header = col2header
|col3header = col3header
|col4header = col4header
|col5header = col5header
|col1footer = col1footer
|col2footer = col2footer
|col3footer = col3footer
|col4footer = col4footer
|col5footer = col5footer
|group1 = group1
|group2 = group2
|group3 = group3
|group4 = group4
|group5 = group5
|group6 = group6
|list1 = list1
|list2 = list2
|list3 = list3
|list4 = list4
|list5 = list5
|list6 = list6
|above = above
|below = below
}}
==Using child navboxes==
All three types of navbox templates, namely {{tl|Navbox}}, {{tl|Navbox with columns}}, and {{tl|Navbox with collapsible groups}}, can be nested inside of one another using the &lt;code&gt;border&lt;/code&gt; parameter (which is common to all three). For complex templates, it may be necessary to use nesting to achieve a desired look.
===Nesting Navbox with columns in itself===
This example shows how one can nest multiple {{tl|Navbox with columns}} templates to get the right look. Edit this page to see the code. There is a main {{tl|Navbox with columns}} and two additional {{tl|Navbox with columns}} templates, with the &quot;child&quot; option set (see code).
{{Navbox with columns
|name = Navbox with columns/doc
|state = uncollapsed
|title = Subgroups with nesting
|colstyle = text-align:center;background:silver;
|col1width = 33%
|col2width = 17%
|col3width = 33%
|col4width = 17%
|col1header = Col1Header
|col2header = Col2Header
|col3header = Col3Header
|col4header = Col4Header
|col1 = {{Navbox with columns|child
|colwidth = 50%
|colstyle = text-align:center;background:silver;
|col1header = Col1.1Header
|col2header = Col1.2Header
|col1 = Col1.1
|col2 = Col1.2
}}
|col2 = Col2
|col3 = {{Navbox with columns|child
|colwidth = 33%
|colstyle = text-align:center;background:silver;
|col1header = Col3.1Header
|col2header = Col3.2Header
|col3header = Col3.3Header
|col1 = Col3.1
|col2 = Col3.2
|col3 = Col3.3
}}
|col4 = Col4
}}
===Nesting other Navbox forms===
This example shows {{tl|Navbox}}, {{tl|Navbox with collapsible groups}} and {{tl|Navbox with columns}} all working together. Edit this page to see the code. Note that each of the child navboxes has the first parameter set to &lt;code&gt;child&lt;/code&gt;.
{{Navbox with collapsible groups
|name = Navbox with collapsible groups
|title = Navbox, Navbox with columns, and Navbox with collapsible groups together
|selected = {{{1|}}}
|group1 = [[:Category:Scouting|The Scouting Movement]]
|abbr1 = movement
|list1 = [[Scouting]]{{·}}''[[Scouting for Boys]]''{{·}}[[Scout method]]{{·}}[[Scout Law]]{{·}}[[Scout Promise]]{{·}}[[Scout Motto]]{{·}}[[Wood Badge]]{{·}}[[Age groups in Scouting and Guiding]]{{·}}[[Cub Scout]]{{·}}[[Boy Scout]]{{·}}[[Rover Scout]]{{·}}[[Brownie (Girl Guides)|Brownie]]{{·}}[[Girl Guiding and Girl Scouting]]{{·}}[[Ranger (Girl Guide)]]{{·}}[[Jamboree (Scouting)|Jamboree]]{{·}}[[Scout Leader]]{{·}}[[World Organization of the Scout Movement|WOSM]]{{·}}[[World Association of Girl Guides and Girl Scouts|WAGGGS]]{{·}}[[Non-aligned Scouting and Scout-like organisations|Non-aligned organisations]]{{·}}[[Scouting controversy and conflict]]{{·}}[[Scouting in popular culture]]{{·}}[[List of Scouts]]{{·}}[[List of highest awards in Scouting]]
|list2 = {{Navbox|child
|title = [[French colonial empires|Former French colonies]] in [[Africa]] and the [[Indian Ocean]]
|titlestyle = background#
|groupstyle = background:lavender;
|group1 = [[Mahgreb]]
|list1 = [[French rule in Algeria|Algeria]]{{·}} [[French Morocco|Morocco]]&amp;nbsp;&lt;small&gt;([[Arguin|Arguin Island]])&lt;/small&gt;{{·}} [[History of Tunisia|Tunisia]]
|group2 = [[French West Africa]]
|list2 = [[History of Côte d'Ivoire#French Period|Côte d'Ivoire]]{{·}} [[French Dahomey|Dahomey]]{{·}} [[French Sudan]]{{·}} [[French Guinea|Guinea]]{{·}} [[History of Mauritania#French colonization and post-colonial history|Mauritania]]{{·}} [[History of Niger#Colonization|Niger]]{{·}} [[History of Senegal|Senegal]]{{·}} [[French Upper Volta|Upper Volta]]
|group3 = Togo
|list3 = [[French Togoland]]{{·}} [[James Island (The Gambia)|James Island]]
|group4 = [[French Equatorial Africa]]
|list4 = [[Colonial Chad|Chad]]{{·}} [[History of Gabon|Gabon]]{{·}} [[History of the Republic of the Congo|Middle Congo]]{{·}} [[Oubangui-Chari]]
|group5 = [[Comoros]]
|list5 = [[Anjouan]]{{·}} [[Grande Comore]]{{·}} [[Mohéli]]
|group6 = Southern Africa
|list6 = [[History of Djibouti#French interest|French Somaliland (Djibouti)]]{{·}} [[History of Madagascar#French control|Madagascar]]{{·}} [[Mauritius|Ile de France]]{{·}} [[Seychelles]]
}}
|group3 = [[Scouting in the United Kingdom]]
|abbr3 = Scouting
|list3 = [[The Scout Association]]{{·}}[[Girlguiding UK]]{{·}}[[Beaver Scouts]]{{·}}[[Cub Section (UK)]]{{·}}[[Venture Scout]]{{·}}[[Explorer Scouts]]{{·}}[[Brownie (Girl Guides)]]{{·}}[[Ranger (Girl Guide)]]{{·}}[[Rainbow (Girl Guides)]]{{·}}[[Scout Network]]{{·}}[[Chief Scout (United Kingdom)]]{{·}}[[Scout Counties]]{{·}}[[Scout District]]{{·}}[[Scout Section (UK)]]{{·}}[[Scout Activity Centre]]{{·}}[[Young Leaders (The Scout Association)|Young Leaders]]
|list4 = {{Navbox with columns|child
|title = Navbox with columns nested in itself
|colstyle = text-align:center;
|col1width = 33%
|col2width = 17%
|col3width = 33%
|col4width = 17%
|col1header = Col1Header
|col2header = Col2Header
|col3header = Col3Header
|col4header = Col4Header
|col1 = {{Navbox with columns|child
|colwidth = 50%
|colstyle = text-align:center;
|col1header = Col1.1Header
|col2header = Col1.2Header
|col1 = Col1.1
|col2 = Col1.2
}}
|col2 = Col2
|col3 = {{Navbox with columns|child
|colwidth = 33%
|colstyle = text-align:center;
|col1header = Col3.1Header
|col2header = Col3.2Header
|col3header = Col3.3Header
|col1 = Col3.1
|col2 = Col3.2
|col3 = Col3.3
}}
|col4 = Col4
}}
}}
== Footnotes ==
{{reflist}}
== Tracking category ==
* {{clc|Pages using navbox columns without the first column}}
== See also ==
{{Navigational templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
[[Category:Navigational boxes| ]]
}}&lt;/includeonly&gt;</text>
<sha1>5ufcf5fdt4w9pa71apnqnhukqfpid59</sha1>
</revision>
</page>
<page>
<title>Template:Navigational templates</title>
<ns>10</ns>
<id>18982373</id>
<redirect title="Template:Navigation templates" />
<revision>
<id>455894375</id>
<parentid>455883701</parentid>
<timestamp>2011-10-16T19:45:09Z</timestamp>
<contributor>
<username>CapitalR</username>
<id>988917</id>
</contributor>
<minor/>
<comment>[[Help:Reverting|Reverted]] edits by [[Special:Contributions/166.205.11.91|166.205.11.91]] ([[User talk:166.205.11.91|talk]]) to last version by UnitedStatesian</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="43">#REDIRECT [[Template:Navigation templates]]</text>
<sha1>oa0icxbf05tcr1q63uruj7dhnqz2v21</sha1>
</revision>
</page>
<page>
<title>Template:PHL</title>
<ns>10</ns>
<id>1653948</id>
<revision>
<id>772147425</id>
<parentid>340815217</parentid>
<timestamp>2017-03-25T16:04:18Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:PHL]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefinite)...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="100">{{flag|Philippines}}&lt;noinclude&gt;
{{flag template documentation|Philippines|PHL|PHI|PHI}}
&lt;/noinclude&gt;</text>
<sha1>m8fdnyl4glijlo4x2lmlurakgzk1pbd</sha1>
</revision>
</page>
<page>
<title>Template:RUS</title>
<ns>10</ns>
<id>1552538</id>
<revision>
<id>772120903</id>
<parentid>350836925</parentid>
<timestamp>2017-03-25T12:38:46Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:RUS]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="90">{{flag|Russia}}&lt;noinclude&gt;
{{flag template documentation|Russia|RUS|RUS|RUS}}
&lt;/noinclude&gt;</text>
<sha1>159asny3s1mealh10w0mrzzwhlfqlgr</sha1>
</revision>
</page>
<page>
<title>Template:SGP</title>
<ns>10</ns>
<id>1910909</id>
<revision>
<id>772120893</id>
<parentid>353589911</parentid>
<timestamp>2017-03-25T12:38:46Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:SGP]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="96">{{flag|Singapore}}&lt;noinclude&gt;
{{flag template documentation|Singapore|SGP|SIN|SIN}}
&lt;/noinclude&gt;</text>
<sha1>m6uf4cp839vneezeq9q1nzyynj7xq40</sha1>
</revision>
</page>
<page>
<title>Template:SIN</title>
<ns>10</ns>
<id>1657926</id>
<redirect title="Template:SGP" />
<revision>
<id>816058568</id>
<parentid>488788888</parentid>
<timestamp>2017-12-19T00:00:16Z</timestamp>
<contributor>
<username>Stranger195</username>
<id>19277499</id>
</contributor>
<comment>+{{Rcat shell|{{R from merge}}{{R from template shortcut}}}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="86">#REDIRECT[[Template:SGP]]
{{Rcat shell|{{R from merge}}{{R from template shortcut}}}}</text>
<sha1>440b2e8e9j4c2w3qtax8qoesqtiofey</sha1>
</revision>
</page>
<page>
<title>Template:THA</title>
<ns>10</ns>
<id>1657947</id>
<revision>
<id>772120938</id>
<parentid>353641059</parentid>
<timestamp>2017-03-25T12:38:48Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:THA]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="94">{{flag|Thailand}}&lt;noinclude&gt;
{{flag template documentation|Thailand|THA|THA|THA}}
&lt;/noinclude&gt;</text>
<sha1>hwsrf2xo532xfgf614v57iucgvjd4x9</sha1>
</revision>
</page>
<page>
<title>Template:USA</title>
<ns>10</ns>
<id>1651565</id>
<revision>
<id>772121007</id>
<parentid>372440481</parentid>
<timestamp>2017-03-25T12:38:51Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:USA]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="104">{{flag|United States}}&lt;noinclude&gt;
{{flag template documentation|United States|USA|USA|USA}}
&lt;/noinclude&gt;</text>
<sha1>qddj7ccxkl7gfa6h48vtedjv34n99pq</sha1>
</revision>
</page>
<page>
<title>Template:VIE</title>
<ns>10</ns>
<id>1661405</id>
<redirect title="Template:VNM" />
<revision>
<id>488708177</id>
<parentid>385127269</parentid>
<timestamp>2012-04-22T20:37:15Z</timestamp>
<contributor>
<username>AGK</username>
<id>1000453</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:VIE: [[Wikipedia:High-risk templates|Highly-visible templates]] (‎[edit=autoconfirmed] (indefinite) ‎[move=sysop] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="26">#REDIRECT [[Template:VNM]]</text>
<sha1>8lbemvz88exd4ywqblbwmukq82oozon</sha1>
</revision>
</page>
<page>
<title>Template:VNM</title>
<ns>10</ns>
<id>1910913</id>
<revision>
<id>772120976</id>
<parentid>372446231</parentid>
<timestamp>2017-03-25T12:38:50Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:VNM]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="92">{{flag|Vietnam}}&lt;noinclude&gt;
{{flag template documentation|Vietnam|VNM|VIE|VIE}}
&lt;/noinclude&gt;</text>
<sha1>fdm0ows9q2abjzh4yn9k8mf57rjjnw9</sha1>
</revision>
</page>
<page>
<title>Template:·</title>
<ns>10</ns>
<id>7599646</id>
<revision>
<id>636441209</id>
<parentid>612824946</parentid>
<timestamp>2014-12-03T10:06:52Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<comment>move bold tag</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="139">&amp;nbsp;&lt;b&gt;&amp;middot;&lt;/b&gt;&amp;#32;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>m6es8khirlfrhpczjy4j6v6cxs2jadq</sha1>
</revision>
</page>
<page>
<title>Template:Convert template</title>
<ns>10</ns>
<id>22536310</id>
<revision>
<id>816875047</id>
<parentid>477347012</parentid>
<timestamp>2017-12-24T08:51:23Z</timestamp>
<contributor>
<username>TheDragonFire</username>
<id>20298781</id>
</contributor>
<comment>Ensure category does not display on /doc and /sandbox pages.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="723">{{ombox
| type = move
| text = This template should be converted to a standardized format using [[Template:{{{template|{{{1}}}}}}]]. &lt;small&gt;([[{{{discuss|{{{2|template talk:{{{template|{{{1}}}}}}}}}}}}|Talk]] • [[:{{#ifexist:Category:Templates to be standardized/{{{template|{{{1}}}}}}|Category:Templates to be standardized/{{{template|{{{1}}}}}}|Category:Templates to be standardized}}|Category]])&lt;/small&gt;}}&lt;includeonly&gt;{{sandbox other||{{#ifeq:{{NAMESPACE}}|Template|[[{{#ifexist:Category:Templates to be standardized/{{{template|{{{1}}}}}}|Category:Templates to be standardized/{{{template|{{{1}}}}}}|Category:Templates to be standardized}}|{{PAGENAME}}]]}}}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>911704d84lqfzypv5kvcp1qaytyhu7i</sha1>
</revision>
</page>
<page>
<title>Template:Convert to use Navbox</title>
<ns>10</ns>
<id>55174553</id>
<redirect title="Template:Convert to use navbox" />
<revision>
<id>805550529</id>
<parentid>805514101</parentid>
<timestamp>2017-10-16T03:14:01Z</timestamp>
<contributor>
<username>Zackmann08</username>
<id>15881234</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/162.249.237.33|162.249.237.33]] ([[User talk:162.249.237.33|talk]]) to last version by Zackmann08</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="44">#redirect [[Template:Convert to use navbox]]</text>
<sha1>0jvp428m9yndr6p48phffxreivyfez7</sha1>
</revision>
</page>
<page>
<title>Template:Convert to use navbox</title>
<ns>10</ns>
<id>55172774</id>
<revision>
<id>799446553</id>
<timestamp>2017-09-07T19:54:59Z</timestamp>
<contributor>
<username>Zackmann08</username>
<id>15881234</id>
</contributor>
<comment>[[WP:AES|←]]Created page with '&lt;includeonly&gt;{{Convert template|Navbox}}{{#ifeq:{{NAMESPACE}}|{{ns:10}}|{{When on basepage|[[Category:Templates to be standardized/Navbox]]}}}}&lt;/includeonly&gt;&lt;noi...'</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="197">&lt;includeonly&gt;{{Convert template|Navbox}}{{#ifeq:{{NAMESPACE}}|{{ns:10}}|{{When on basepage|[[Category:Templates to be standardized/Navbox]]}}}}&lt;/includeonly&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>mkewpzjgc36orqtlzo6c3z10pmbx6do</sha1>
</revision>
</page>
<page>
<title>Template:High use</title>
<ns>10</ns>
<id>23012966</id>
<redirect title="Template:High-use" />
<revision>
<id>769614231</id>
<parentid>655872389</parentid>
<timestamp>2017-03-10T16:50:48Z</timestamp>
<contributor>
<username>Christian75</username>
<id>1306352</id>
</contributor>
<comment>/* top */{{redr}} is deprecated - converting to {{Redirect category shell}} using [[Project:AWB|AWB]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="112">#Redirect [[Template:High-use]]
{{Redirect category shell|{{R from modification}}{{R from template shortcut}}}}</text>
<sha1>bw41vdqof5okzxgwyo9ltlzrt2hnqnm</sha1>
</revision>
</page>
<page>
<title>Template:No/doc</title>
<ns>10</ns>
<id>12861188</id>
<revision>
<id>746903042</id>
<parentid>737676126</parentid>
<timestamp>2016-10-30T07:36:47Z</timestamp>
<contributor>
<username>Numbermaniac</username>
<id>17157159</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="322">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE --&gt;
{{high use|3,400+}}
{{Table cell templates/doc}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES HERE, THANKS --&gt;
[[et:Mall:Ei]]
[[id:Templat:Tidak]]
[[pt:Predefinição:Tabela-não]]
[[sq:Stampa:Jo]]
[[sh:Šablon:Ne]]
[[tl:Template:Hindi]]
&lt;/includeonly&gt;</text>
<sha1>aogxs4cjsk1rcf8km5ve3lsmktmwjn8</sha1>
</revision>
</page>
<page>
<title>Template:Noitalic/doc</title>
<ns>10</ns>
<id>12525560</id>
<revision>
<id>747281850</id>
<parentid>747280765</parentid>
<timestamp>2016-11-01T14:12:35Z</timestamp>
<contributor>
<username>Tom.Reding</username>
<id>9784415</id>
</contributor>
<minor/>
<comment>Move the general {{High-use}} warning below the more specific {{COinS safe}} one</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="514">{{Documentation subpage}}
{{COinS safe|n}}
{{High-use|26,900+}}
&lt;!-- EDIT TEMPLATE DOCUMENTATION BELOW THIS LINE --&gt;
: &lt;code&gt;&lt;nowiki&gt;{{noitalic|&lt;/nowiki&gt;''text-string''}}&lt;/code&gt;
To display text (''text-string'') at normal font-style within a context where the default font-style is ''italic'', e.g. header cells in certain infoboxes.
==See also==
* [[Template:Nobold]]
* [[Template:Nocaps]]
&lt;includeonly&gt;
&lt;!--Categories--&gt;
[[Category:Text-specific formatting and function templates|{{PAGENAME}}]]
&lt;/includeonly&gt;</text>
<sha1>a3y6s186futbyrj9q3qt73gtpdsnggk</sha1>
</revision>
</page>
<page>
<title>Template:Ns has subpages/doc</title>
<ns>10</ns>
<id>22589796</id>
<revision>
<id>734709609</id>
<parentid>734709183</parentid>
<timestamp>2016-08-16T05:36:18Z</timestamp>
<contributor>
<username>Meters</username>
<id>3632083</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/107.77.211.198|107.77.211.198]] ([[User talk:107.77.211.198|talk]]) to last version by Bakilas</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1503">{{Documentation subpage}}
{{high-risk|965000+}}
{{lua|Module:Ns has subpages}}
&lt;!--Categories where indicated at the bottom of this page, please; interwikis at Wikidata (see [[Wikipedia:Wikidata]])--&gt;
Detects whether the current or the given namespace has subpages enabled. Returns &quot;yes&quot; if it does, and an empty string otherwise.
This template can be substituted.
== Usage ==
* {{tlx|ns has subpages}} → {{ns has subpages}}
* {{tlx|ns has subpages|Template}} → {{ns has subpages|Template}}
* {{tlx|ns has subpages|Category}} → {{ns has subpages|Category}}
* {{tlx|ns has subpages|&lt;nowiki&gt;&lt;/nowiki&gt;}} &lt;small&gt;(''main space)&lt;/small&gt; → {{ns has subpages|}}
* {{tlx|ns has subpages|&lt;nowiki&gt;{{ns:0}}&lt;/nowiki&gt;}} &lt;small&gt;(''main space'')&lt;/small&gt; → {{ns has subpages|{{ns:0}}}}
* {{tlx|ns has subpages|:}} &lt;small&gt;(''main space'')&lt;/small&gt; → {{ns has subpages|:}}
* {{tlx|ns has subpages|&lt;nowiki&gt;{{ns:Talk}}&lt;/nowiki&gt;}} → {{ns has subpages|{{ns:Talk}}}}
* {{tlx|ns has subpages|{{ns:Category talk}}}} → {{ns has subpages|{{ns:Category talk}}}}
* {{tlx|ns has subpages|{{ns:File}}:Foo}} → {{ns has subpages|{{ns:File}}:Foo}}
* {{tlx|ns has subpages|Foo}} → {{ns has subpages|Foo}}
* {{tlx|ns has subpages|:Template}} → {{ns has subpages|:Template}}
== See also ==
*{{tlx|namespace detect}}
*{{tlx|NAMESPACEID}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
&lt;!--Categories below this line, please; interwikis at Wikidata--&gt;
[[Category:Namespace manipulation templates]]
}}&lt;/includeonly&gt;</text>
<sha1>t4reggt8ci7m31zysxs5bwtmw7xun06</sha1>
</revision>
</page>
<page>
<title>Template:Oldid/doc</title>
<ns>10</ns>
<id>18476764</id>
<revision>
<id>799250678</id>
<parentid>760052642</parentid>
<timestamp>2017-09-06T15:50:12Z</timestamp>
<contributor>
<ip>50.53.1.33</ip>
</contributor>
<comment>/* See also */</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3740">{{Documentation subpage}}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
{{high-use|4,500+}}
This template create links to &quot;[[meta:Help:URL#Old versions of pages|oldid]]s&quot;; that is, links to old versions of a wiki page. It then labels those '''old''' versions the '''current''' one, unless you've supplied both the name of the page and the oldid.
Every historical version of a page has a revision ID, which you can find from the links on the [[Help:Page history|history]] of the page, or from the URL of the old revision. Given a page name and a revision IDs of it, you can construct a link to that particular version.
If you only have the revision ID and not the page name, consider using {{tlx|oldid2}}, which requires only the revision ID and can still construct a link.
== Usage ==
{{tld|'''oldid'''|page|oldid|label}} &lt;br/&gt;''[The first, bolded, &quot;oldid&quot; is the name of the template and should be inserted literally. The second &quot;oldid&quot; is the name of a parameter and should be replaced with the revision number.]''
{| class=&quot;wikitable&quot;
! style=&quot;width:33%;&quot; | code !! result
|-
| &lt;code&gt;&lt;nowiki&gt;{{oldid|Main Page|589841|Link to a 2003 version of the Main Page}}&lt;/nowiki&gt;&lt;/code&gt;
| {{oldid|Main Page|589841|Link to a 2003 version of the Main Page}}
* The '''label=''' parameter (parameter number 3) should be the link text description (optional).
|-
| &lt;code&gt;&lt;nowiki&gt;{{oldid|Main Page|589841}}&lt;/nowiki&gt;&lt;/code&gt;
| {{oldid|Main Page|589841}}
* The '''oldid=''' parameter (parameter number 2) should be the known revision number.
|-
| &lt;code&gt;&lt;nowiki&gt;{{oldid|Main Page}}&lt;/nowiki&gt;&lt;/code&gt;
| {{oldid|Main Page}}(pretty useless)
* The '''page=''' parameter (parameter number 1) should be the name of the page.
* The '''oldid=''' parameter (parameter number 2) can be '''cur''' (or leave it empty) for the current version.
|}
== Alias ==
* {{tl|Permalink}}
== See also ==
* {{Tl|Oldid2}} – Does not require the page name and can create a link to a section
* {{Tl|Cross-wiki oldid}}
* {{Tl|Cross-wiki language oldid}}
* {{Tl|Diff}} – Uses a similar approach to create links to [[Help:Diff|differences]] between versions
* {{Tl|Diff2}}
* {{Tl|Diff3}}
* {{Tl|Diff4}}
* {{Tl|History}} – Link to the edit history page of an article
* [[Special:Permalink]]
* [[Help:Permanent link]]
* [[User:Scottywong/diffconverter]] – A tool for converting from raw form
== TemplateData ==
{{TemplateData header}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;A template to link to old versions of a wiki page using the revision ID, which can be found in the history of the page.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Page title&quot;,
&quot;description&quot;: &quot;The page whose older revision will be linked to.&quot;,
&quot;type&quot;: &quot;string/wiki-page-name&quot;,
&quot;default&quot;: &quot;&quot;,
&quot;required&quot;: true
},
&quot;2&quot;: {
&quot;label&quot;: &quot;Oldid&quot;,
&quot;description&quot;: &quot;If not specified, links to the current version. Every historical version of a page has a revision ID, which you can find from the history of the page, or from the URL of the old revision. This should be a long number, like \&quot;560214444\&quot; (without the quotes).&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;default&quot;: &quot;&quot;,
&quot;required&quot;: false
},
&quot;3&quot;: {
&quot;type&quot;: &quot;string/line&quot;,
&quot;label&quot;: &quot;Label&quot;,
&quot;description&quot;: &quot;If not specified, label of link will be \&quot;Old revision of [the name of the page]\&quot; (without the quotes). The label of the link that will be created.&quot;,
&quot;required&quot;: false
}
}
}
&lt;/templatedata&gt;
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Oldid templates]]
[[Category:Internal link templates]]
}}&lt;/includeonly&gt;</text>
<sha1>mp31k1k7o06qwkmlqihxzqq3nnd7iw1</sha1>
</revision>
</page>
<page>
<title>Template:Ombox/doc</title>
<ns>10</ns>
<id>17676022</id>
<revision>
<id>815711255</id>
<parentid>815711217</parentid>
<timestamp>2017-12-16T16:24:00Z</timestamp>
<contributor>
<username>KGirlTrucker81</username>
<id>27814389</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contributions/172.56.6.193|172.56.6.193]] ([[User talk:172.56.6.193|talk]]) ([[WP:HG|HG]]) (3.3.3)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="11521">{{Documentation subpage}}
{{High-risk|551,000+}}
{{used in system}}
{{Lua|Module:Message box}}
{{intricate template}}
&lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --&gt;
{{Mbox templates (small)}}
This is the {{tl|Ombox}} (['''O''']ther pages ['''m''']essage ['''box''']) metatemplate.
It is used to build message box templates for pages of the types User, Wikipedia, MediaWiki, Template, Help, Portal and any new future namespaces; i.e. for page types not covered by {{tl|Ambox}}, {{tl|Tmbox}}, {{tl|Imbox}} or {{tl|Cmbox}}. Thus, it should ''not'' be used for boxes for articles, talk pages, image pages or category pages.
This template works almost exactly like {{tl|Ambox}} and uses the same parameters.
=== Introduction ===
{{anchor|We are deploying!|Intro}}
As noted above, this template should be used for message boxes that are not articles, talk pages, image pages or category pages. Some message boxes for other pages may incorrectly use one of those four mentioned. Feel free to convert any message boxes used on &quot;other pages&quot; to use this meta-template. If you find any tricky cases then list them on the talk page of this template and you'll get help.
When this template is used to build other pages message boxes those boxes should contain explanatory texts just like before. (The same texts as before or new improved texts.) If there are more specific images in the boxes or you know a better image, then use them instead of the default images shown here.
=== Usage ===
Simple usage example:
&lt;pre&gt;
{{ombox | text = Some text.}}
&lt;/pre&gt;
{{ombox | text = Some text.}}
{{clear}}
Complex example:
&lt;pre&gt;
{{ombox
| type = style
| image = [[Image:Emblem-question-yellow.svg|40px]]
| style = width: 400px;
| textstyle = color: red; font-weight: bold; font-style: italic;
| text = The message body text.
}}
&lt;/pre&gt;
{{ombox
| type = style
| image = [[Image:Emblem-question-yellow.svg|40px]]
| style = width: 400px;
| textstyle = color: red; font-weight: bold; font-style: italic;
| text = The message body text.
}}
{{clear}}
=== Other pages message box types ===
The following examples use different '''type''' parameters but use no image parameters; thus, they use the default images for each type.
{{ombox
| type = speedy
| text = type=&lt;u&gt;speedy&lt;/u&gt; – Speedy deletion templates.
}}
{{ombox
| type = delete
| text = type=&lt;u&gt;delete&lt;/u&gt; – Deletion templates.
}}
{{ombox
| type = content
| text = type=&lt;u&gt;content&lt;/u&gt; – Major warnings and problems, such as {{tl|high-risk}}.
}}
{{ombox
| type = style
| text = type=&lt;u&gt;style&lt;/u&gt; – Minor warnings and problems. {{tl|intricate}} should perhaps use this type.
}}
{{ombox
| type = notice
| text = type=&lt;u&gt;notice&lt;/u&gt; – Notices and messages of any kind, both permanent and temporary. Such as {{tl|guideline}} and {{tl|Wikipedia how to}}.
}}
{{ombox
| type = move
| text = type=&lt;u&gt;move&lt;/u&gt; – Merge, split, rename and transwiki messages and proposals.
}}
{{ombox
| type = protection
| text = type=&lt;u&gt;protection&lt;/u&gt; – Protection templates such as {{tl|pp-protected}} when shown on &quot;other pages&quot;.
}}
=== Examples ===
Some examples using the &quot;notice&quot; style:
{{ombox
| text = No type and no image given ('''default''')
}}
{{ombox
| image = none
| text = No type and '''image=none''' – No image is used and the '''text''' uses the whole message box area.
}}
{{ombox
| image = [[Image:Gnome globe current event.svg|42px]]
| imageright = [[Image:Nuvola apps bookcase.svg|40px]]
| text = image = &lt;nowiki&gt;[[Image:Gnome globe current event.svg|42px]]&lt;/nowiki&gt; &lt;br&gt; imageright = &lt;nowiki&gt;[[Image:Nuvola apps bookcase.svg|40px]]&lt;/nowiki&gt;
}}
{{ombox
| type = notice
| image = [[Image:Blue check.svg|30px]]
| imageright = {{shortcut|WP:SHORT}}
| text =
'''This page documents an English Wikipedia [[Wikipedia:Policies and guidelines|guideline]].''' It is a generally accepted standard that editors should follow, though it should be treated with [[Wikipedia:Use common sense|common sense]] and the [[Wikipedia:Ignore all rules|occasional exception]]. When editing this page, please ensure that your revision reflects [[Wikipedia:Consensus|consensus]]. When in doubt, discuss on the [[{{TALKPAGENAME}}|talk page]].
}}
{{ombox
| type = notice
| image = [[Image:Nutshell.png|30px]]
| text =
'''This page in a nutshell:''' This template is used to build message boxes for all pages that are ''not'' articles, talk pages, image pages or category pages.
}}
=== Parameters ===
List of all parameters:
&lt;pre&gt;
{{ombox
| type = speedy / delete / content / style / notice / move / protection
| image = none / [[Image:Some image.svg|40px]]
| imageright = [[Image:Some image.svg|40px]]
| style = CSS values
| textstyle = CSS values
| plainlinks = no
| text = The message body text.
| small = {{{small|}}} / yes
| smallimage = none / [[Image:Some image.svg|30px]]
| smallimageright = none / [[Image:Some image.svg|30px]]
| smalltext = A shorter message body text.
}}
&lt;/pre&gt;
'''type'''
:If no '''type''' parameter is given the template defaults to type '''notice'''. That means it gets a gray border.
'''image'''
:'''No parameter''' = If no '''image''' parameter is given the template uses a default image. Which default image it uses depends on the '''type''' parameter.
:'''An image''' = Should be an image with usual wiki notation. 40px - 50px width are usually about right depending on the image height to width ratio. (But the message box can handle images of any size.) For example:
::&lt;code&gt;&lt;nowiki&gt;image = [[Image:Crystal package settings.png|40px]]&lt;/nowiki&gt;&lt;/code&gt;
:'''none''' = Means that no image is used.
'''imageright'''
:'''No parameter''' = If no '''imageright''' parameter is given then no image is shown on the right side.
:'''An image''' = Should be an image with usual wiki notation. 40px - 50px width are usually about right depending on the image height to width ratio. (But the message box can handle images of any size.) For example:
::&lt;code&gt;&lt;nowiki&gt;imageright = [[Image:Nuvola apps bookcase.png|40px]]&lt;/nowiki&gt;&lt;/code&gt;
:'''Anything''' = Any other object that you want to show on the right side.
'''style'''
:Optional [[Cascading Style Sheets|CSS]] values used by the entire message box table. Without quotation marks &lt;code&gt;&quot; &quot;&lt;/code&gt; but with the ending semicolons &lt;code&gt;;&lt;/code&gt;. For example:
::&lt;code&gt;style = margin-bottom: 0.5em;&lt;/code&gt;
'''textstyle'''
:Optional [[Cascading Style Sheets|CSS]] values used by the text cell. For example:
::&lt;code&gt;textstyle = text-align: center;&lt;/code&gt;
'''plainlinks'''
:Normally on Wikipedia, external links have an arrow icon next to them, like this: [http://www.example.com Example.com]. However, in message boxes, the arrow icon is suppressed by default, like this: &lt;span class=&quot;plainlinks&quot;&gt;[http://www.example.com Example.com]&lt;/span&gt;. To get the normal style of external link with the arrow icon, use {{para|plainlinks|no}}.
'''text'''
:The message body text.
==== The small parameters ====
{{ombox
| small = yes
| text = small = yes
}}
{{ombox
| type = style
| small = yes
| text = type = style &lt;br&gt; small = yes
}}
'''small'''
:'''yes''' = Makes it a smaller right floating message box. This also makes the default images smaller. Note that any data fed to the '''smallimage''', '''smallimageright''' and '''smalltext''' parameters is only used if &quot;small=yes&quot;. To make it so your template also understands the small parameter you can use this code:
::&lt;code&gt;&lt;nowiki&gt;small = {{{small|}}}&lt;/nowiki&gt;&lt;/code&gt;
{{ombox
| small = yes
| image = [[Image:Replacement filing cabinet.svg|50px]]
| smallimage = [[Image:Replacement filing cabinet.svg|32px]]
| text =
small = yes &lt;br&gt; image = &lt;nowiki&gt;[[Image:Replacement filing cabinet.svg|50px]]&lt;/nowiki&gt; &lt;br&gt; smallimage = &lt;nowiki&gt;[[Image:Replacement filing cabinet.svg|32px]]&lt;/nowiki&gt;
}}
'''smallimage'''
:'''No parameter''' = If no '''smallimage''' parameter is given then this template falls back to use the '''image''' parameter. If the '''image''' parameter also is empty then a small default image is used.
:'''An image''' = Should be an image with usual wiki notation. 30px width is usually about right. For example:
::&lt;code&gt;&lt;nowiki&gt;smallimage = [[Image:Replacement filing cabinet.svg|30px]]&lt;/nowiki&gt;&lt;/code&gt;
:'''none''' = Means that no image is used. This overrides any image fed to '''image''', when &quot;small=yes&quot;.
{{ombox
| small = yes
| imageright = [[Image:Nuvola apps bookcase.png|50px]]
| smallimageright = none
| text =
small = yes &lt;br&gt; imageright = &lt;nowiki&gt;[[Image:Nuvola apps bookcase.png|50px]]&lt;/nowiki&gt; &lt;br&gt; smallimageright = none
}}
'''smallimageright'''
:'''No parameter''' = If no '''smallimageright''' parameter is given then this template falls back to use the '''imageright''' parameter. If the '''imageright''' parameter also is empty then no image is shown on the right side.
:'''An image''' = Should be an image with usual wiki notation. 30px width is usually about right. For example:
::&lt;code&gt;&lt;nowiki&gt;smallimageright = [[Image:Nuvola apps bookcase.png|30px]]&lt;/nowiki&gt;&lt;/code&gt;
:'''Anything''' = Any other object that you want to show on the right side.
:'''none''' = Means that no right side image is used. This overrides any image fed to '''imageright''', when &quot;small=yes&quot;.
'''smalltext'''
:A shorter version of the message body text. If no '''smalltext''' parameter is given then this template falls back to use the '''text''' parameter.
=== Technical details ===
If you need to use special characters in the text parameter then you need to escape them like this:
&lt;pre&gt;
{{ombox
| text = &lt;div&gt;
Equal sign = and a start and end brace { } work fine as they are.
But here is a pipe {{!}} and two end braces &amp;lt;nowiki&gt;}}&amp;lt;/nowiki&gt;.
And now a pipe and end braces &amp;lt;nowiki&gt;|}}&amp;lt;/nowiki&gt;.
&lt;/div&gt;
}}
&lt;/pre&gt;
{{ombox
| text = &lt;div&gt;
Equal sign = and a start and end brace { } work fine as they are.
But here is a pipe {{!}} and two end braces &lt;nowiki&gt;}}&lt;/nowiki&gt;.
And now a pipe and end braces &lt;nowiki&gt;|}}&lt;/nowiki&gt;.
&lt;/div&gt;
}}
This template uses the ombox CSS classes in [[MediaWiki:Common.css]] for most of its looks, thus it is fully skinnable.
This template calls {{tl|ombox/core}} which holds most of the code for {{tl|ombox}}, while {{tl|ombox}} itself does parameter preprocessing.
Internally this meta-template uses HTML markup instead of wiki markup for the table code. That is the usual way we make meta-templates since wiki markup has several drawbacks. For instance it makes it harder to use [[m:Help:ParserFunctions|parser functions]] and special characters in parameters.
The default images for this meta-template are in png format instead of svg format. The main reason is that some older web browsers have trouble with the transparent background that MediaWiki renders for svg images. The png images here have hand optimised transparent background colour so they look good in all browsers. Note that svg icons only look somewhat bad in the old browsers, thus such hand optimisation is only worth the trouble for very widely used icons.
For more technical details see the [[Template talk:Ombox|talk page]]. Since this template works almost exactly like {{tl|ambox}}, {{tl|tmbox}}, {{tl|imbox}} and {{tl|cmbox}} their talk pages and related pages might also contain more details.
===See also===
{{Mbox templates see also}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Mbox and messagebox templates]]
[[Category:Exclude in print]]
}}&lt;/includeonly&gt;</text>
<sha1>t5iperzcdbmo6aweoszn6k7y1df1v0l</sha1>
</revision>
</page>
<page>
<title>Template:1x</title>
<ns>10</ns>
<id>15560851</id>
<revision>
<id>579820311</id>
<parentid>538900702</parentid>
<timestamp>2013-11-02T02:28:41Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:1x: Enable access by template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="49">{{{1}}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>pj4wuk9fq5if381k4yy1hzwd7uvj8jy</sha1>
</revision>
</page>
<page>
<title>Template:Order of magnitude/doc</title>
<ns>10</ns>
<id>11657082</id>
<revision>
<id>625761280</id>
<parentid>567533737</parentid>
<timestamp>2014-09-16T03:58:55Z</timestamp>
<contributor>
<username>Zyxw</username>
<id>473593</id>
</contributor>
<comment>{{high-risk|160,000+}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2614">{{Documentation subpage}}
{{high-risk|160,000+}}
===Usage===
This template calculates the (decimal) [[order of magnitude]] of numbers within the ranges 10&lt;sup&gt;300&lt;/sup&gt; to 10&lt;sup&gt;−300&lt;/sup&gt; and −10&lt;sup&gt;−300&lt;/sup&gt; to −10&lt;sup&gt;300&lt;/sup&gt;.
The acceptable input and the output produced are optimised for use in other templates.
*The hyphen (not a true minus sign) is used for negative numbers.
*No separator is used for thousands.
*The template gives 0 for 0. Although, strictly speaking, this is mathematically incorrect it has been designed this way so as to be more useful in other templates. An important example of this is that when used by {{tl|convert}} 0&amp;nbsp;°C or 0&amp;nbsp;°F is considered to be on the same order of magnitude as ±1&amp;nbsp;°C or ±1&amp;nbsp;°F respectively.
===Examples===
*{{Xpdop3c|d=|Order of magnitude|123400}}
*{{Xpdop3c|d=|Order of magnitude|12340}}
*{{Xpdop3c|d=|Order of magnitude|1234}}
*{{Xpdop3c|d=|Order of magnitude|123.4}}
*{{Xpdop3c|d=|Order of magnitude|12.34}}
*{{Xpdop3c|d=|Order of magnitude|1.234}}
*{{Xpdop3c|d=|Order of magnitude|.1234}}
*{{Xpdop3c|d=|Order of magnitude|.01234}}
*{{Xpdop3c|d=|Order of magnitude|0}}
*{{Xpdoc|d=|Order of magnitude}}
===Incorrect usage===
The input must be an unformatted number, or the template will emit errors:
*&lt;code&gt;&lt;nowiki&gt;{{Order of magnitude|}}&lt;/nowiki&gt;&lt;/code&gt; → &lt;strong class=&quot;error&quot;&gt;Expression error: Unexpected = operator&lt;/strong&gt;
*&lt;code&gt;&lt;nowiki&gt;{{Order of magnitude|123,400}}&lt;/nowiki&gt;&lt;/code&gt; → &lt;strong class=&quot;error&quot;&gt;Expression error: Unrecognised punctuation character &quot;,&quot;&lt;/strong&gt;
*&lt;code&gt;&lt;nowiki&gt;{{Order of magnitude|foo}}&lt;/nowiki&gt;&lt;/code&gt; → &lt;strong class=&quot;error&quot;&gt;Expression error: Unrecognised word &quot;foo&quot;&lt;/strong&gt;
===Technical points===
This template calculates the order of magnitude of a number, using the [[natural logarithm]] of the absolute value of the number, divided by the log of 10. The amount is adjusted for [[truncation error]] in the digital format, and the floor number of the results is used. The magnitude of fractions, such as 0+1/1000 (-3), will also be calculated. The code uses four expansion-depth levels.
===Template data===
{{TemplateDataHeader}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;This template calculates the order of magnitude of numbers within the ranges 10^300 to 10^−300 and −10^−300 to −10^300.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Number&quot;,
&quot;description&quot;: &quot;The number to find the order of magnitude of&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;required&quot;: true
}
}}&lt;/templatedata&gt;
&lt;includeonly&gt;
[[Category:Mathematical function templates|Order of magnitude]]
&lt;/includeonly&gt;</text>
<sha1>a2mzsts1aa41gmxwtd7lefh8f1jl4zw</sha1>
</revision>
</page>
<page>
<title>Template:Void</title>
<ns>10</ns>
<id>4398414</id>
<revision>
<id>599112341</id>
<parentid>177021709</parentid>
<timestamp>2014-03-11T10:11:53Z</timestamp>
<contributor>
<username>Callanecc</username>
<id>10440891</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Void: [[WP:High-risk templates|Highly visible template]]: Allowing template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="40">&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>56q3glwxua861ekqmxdmx0ovfq3zxj9</sha1>
</revision>
</page>
<page>
<title>Template:Xpd/code</title>
<ns>10</ns>
<id>16239310</id>
<revision>
<id>331932570</id>
<parentid>197945887</parentid>
<timestamp>2009-12-16T02:06:23Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<comment>+doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="107">{{#switch:p{{{1}}}q|p q=&amp;s|p
q=&amp;nl|p*q=&amp;*|p#q=&amp;#|p:q=&amp;:|{{{1}}}}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>hduwfe2g4sii4c6q5mjnxvbnek5e3le</sha1>
</revision>
</page>
<page>
<title>Template:Xpd/url</title>
<ns>10</ns>
<id>16239192</id>
<revision>
<id>197518841</id>
<timestamp>2008-03-11T17:56:16Z</timestamp>
<contributor>
<username>Patrick</username>
<id>4388</id>
</contributor>
<comment>from m:, auxiliary template for expand demo templates</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="208">{{#switch:p{{{1}}}q|p
*q|p
**q|p
***q|p
#q|p
##q|p
###q|p
:q|p
::q|p
:::q=%0d}}{{#switch:{{{1}}}|&amp;p=%7c|&amp;e=%3d|&amp;s=+|&amp;nl=%0d|&amp;*=%2a|&amp;#=%23|&amp;:=%3a|{{urlencode:{{{1}}}}}}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>sd0ddy06kv4wfpivm5sr88ox7bhmf2t</sha1>
</revision>
</page>
<page>
<title>Template:Xpd/w</title>
<ns>10</ns>
<id>16239216</id>
<revision>
<id>367581667</id>
<parentid>197519088</parentid>
<timestamp>2010-06-12T09:37:43Z</timestamp>
<contributor>
<username>Patrick</username>
<id>4388</id>
</contributor>
<comment>{{#tag:nowiki|{{{1}}}}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="651">{{#switch:p{{{1}}}q|p
*q|p
**q|p
***q|p
#q|p
##q|p
###q|p
:q|p
::q|p
:::q=&lt;br&gt;}}{{#switch:{{{1}}}|{=&amp;#123;|&amp;p=&amp;#124;|}=&amp;#125;|&amp;e=&amp;#61;|&amp;nl=&lt;br&gt;|&amp;*=&lt;nowiki/&gt;*|&amp;#=&lt;nowiki/&gt;#|&amp;:=&lt;nowiki/&gt;:}}{{ {{#switch:{{{1}}}|{|&amp;p|}|&amp;e|&amp;s|&amp;nl|&amp;*|&amp;#|&amp;:|*|**|***|#|##|###|:|::|:::|;=void|1x}}|{{#tag:nowiki|{{{1}}}}}}}{{#switch:{{{1}}}|*=&lt;nowiki&gt;*&lt;/nowiki&gt;|**=&lt;nowiki&gt;**&lt;/nowiki&gt;|***=&lt;nowiki&gt;***&lt;/nowiki&gt;|#=&lt;nowiki&gt;#&lt;/nowiki&gt;|##=&lt;nowiki&gt;##&lt;/nowiki&gt;|###=&lt;nowiki&gt;###&lt;/nowiki&gt;|:=&lt;nowiki&gt;:&lt;/nowiki&gt;|::=&lt;nowiki&gt;::&lt;/nowiki&gt;|:::=&lt;nowiki&gt;:::&lt;/nowiki&gt;|;=&lt;nowiki&gt;;&lt;/nowiki&gt;}}{{ {{#switch:{{{1}}}|&amp;s=1x|void}}|&amp;nbsp;}}{{#ifeq:{{{1}}}|&amp;|amp;}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>rxagfz6ee8sikmtp31yosjyue8wrehd</sha1>
</revision>
</page>
<page>
<title>Template:Xpda</title>
<ns>10</ns>
<id>16239133</id>
<revision>
<id>378508419</id>
<parentid>197518357</parentid>
<timestamp>2010-08-12T09:05:38Z</timestamp>
<contributor>
<username>Patrick</username>
<id>4388</id>
</contributor>
<comment>&amp;removecomments=true</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1807">&lt;code&gt;{{xpd/w{{#if:{{{l1|}}}|l}}|{{{1}}}}}{{xpd/w{{#if:{{{l2|}}}|l}}|{{{2}}}}}{{xpd/w{{#if:{{{l3|}}}|l}}|{{{3}}}}}{{xpd/w{{#if:{{{l4|}}}|l}}|{{{4}}}}}{{xpd/w{{#if:{{{l5|}}}|l}}|{{{5}}}}}{{xpd/w{{#if:{{{l6|}}}|l}}|{{{6}}}}}{{xpd/w{{#if:{{{l7|}}}|l}}|{{{7}}}}}{{xpd/w{{#if:{{{l8|}}}|l}}|{{{8|}}}}}{{xpd/w{{#if:{{{l9|}}}|l}}|{{{9|}}}}}{{xpd/w{{#if:{{{l10|}}}|l}}|{{{10|}}}}}{{xpd/w{{#if:{{{l11|}}}|l}}|{{{11|}}}}}{{xpd/w{{#if:{{{l12|}}}|l}}|{{{12|}}}}}{{xpd/w{{#if:{{{l13|}}}|l}}|{{{13|}}}}}{{xpd/w{{#if:{{{l14|}}}|l}}|{{{14|}}}}}{{xpd/w{{#if:{{{l15|}}}|l}}|{{{15|}}}}}{{xpd/w{{#if:{{{l16|}}}|l}}|{{{16|}}}}}{{xpd/w{{#if:{{{l17|}}}|l}}|{{{17|}}}}}{{xpd/w{{#if:{{{l18|}}}|l}}|{{{18|}}}}}{{xpd/w{{#if:{{{l19|}}}|l}}|{{{19|}}}}}{{xpd/w{{#if:{{{l20|}}}|l}}|{{{20|}}}}}{{xpd/w{{#if:{{{l21|}}}|l}}|{{{21|}}}}}{{xpd/w{{#if:{{{l22|}}}|l}}|{{{22|}}}}}{{xpd/w{{#if:{{{l23|}}}|l}}|{{{23|}}}}}{{xpd/w{{#if:{{{l24|}}}|l}}|{{{24|}}}}}&lt;/code&gt; {{{gives}}} {{{result|{{#switch:{{{p}}}|10OpC={{{1}}}{{xpd/c|{{{2}}}}}{{xpd/c|{{{3}}}}}{{xpd/c|{{{4}}}}}{{xpd/c|{{{5}}}}}{{xpd/c|{{{6}}}}}{{xpd/c|{{{7}}}}}{{xpd/c|{{{8}}}}}{{xpd/c|{{{9}}}}}{{xpd/c|{{{10}}}}}{{xpd/c|{{{11}}}}}{{{{{{15}}}|{{{17}}}}}}{{xpd/c|{{{21}}}}}{{xpd/c|{{{22}}}}}}}}}} [{{fullurl:special:ExpandTemplates|input={{xpd/url|{{{1}}}}}{{xpd/url|{{{2}}}}}{{xpd/url|{{{3}}}}}{{xpd/url|{{{4}}}}}{{xpd/url|{{{5}}}}}{{xpd/url|{{{6}}}}}{{xpd/url|{{{7}}}}}{{xpd/url|{{{8|}}}}}{{xpd/url|{{{9|}}}}}{{xpd/url|{{{10|}}}}}{{xpd/url|{{{11|}}}}}{{xpd/url|{{{12|}}}}}{{xpd/url|{{{13|}}}}}{{xpd/url|{{{14|}}}}}{{xpd/url|{{{15|}}}}}{{xpd/url|{{{16|}}}}}{{xpd/url|{{{17|}}}}}{{xpd/url|{{{18|}}}}}{{xpd/url|{{{19|}}}}}{{xpd/url|{{{20|}}}}}{{xpd/url|{{{21|}}}}}{{xpd/url|{{{22|}}}}}{{xpd/url|{{{23|}}}}}{{xpd/url|{{{24|}}}}}&amp;removecomments=true}}]&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>89k87vz615t5bzo7s30fsvs6a3u8b5f</sha1>
</revision>
</page>
<page>
<title>Template:Xpdoc</title>
<ns>10</ns>
<id>17320863</id>
<revision>
<id>211004354</id>
<timestamp>2008-05-08T10:54:31Z</timestamp>
<contributor>
<username>Klausness</username>
<id>1535228</id>
</contributor>
<comment>Copied from meta (used in [[Help:Template]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="621">{{xpda|gives={{{gives|gives}}}|l4={{{l|}}}|result={{{d|&quot;}}}{{{{{1}}}}}{{{2|}}}{{{3|}}}{{{4|}}}{{{5|}}}{{{6|}}}{{{7|}}}{{{8|}}}{{{9|}}}{{{10|}}}{{{11|}}}{{{12|}}}{{{13|}}}{{{14|}}}{{{15|}}}{{{16|}}}{{{d|&quot;}}}|{{{d|&quot;}}}|{|{|{{{1}}}|}|}|{{xpd/code|{{{2|}}}}}|{{xpd/code|{{{3|}}}}}|{{xpd/code|{{{4|}}}}}|{{xpd/code|{{{5|}}}}}|{{xpd/code|{{{6|}}}}}|{{xpd/code|{{{7|}}}}}|{{xpd/code|{{{8|}}}}}|{{xpd/code|{{{9|}}}}}|{{xpd/code|{{{10|}}}}}|{{xpd/code|{{{11|}}}}}|{{xpd/code|{{{12|}}}}}|{{xpd/code|{{{13|}}}}}|{{xpd/code|{{{14|}}}}}|{{xpd/code|{{{15|}}}}}|{{xpd/code|{{{16|}}}}}|{{{d|&quot;}}}}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>pwd8x5tzj2paigbruj8obxsx54tzzr8</sha1>
</revision>
</page>
<page>
<title>Template:Xpdop3c</title>
<ns>10</ns>
<id>16524845</id>
<revision>
<id>430994356</id>
<parentid>368058409</parentid>
<timestamp>2011-05-26T11:05:47Z</timestamp>
<contributor>
<username>Patrick</username>
<id>4388</id>
</contributor>
<comment>→</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="598">{{xpda|gives={{{gives|→}}}|p=op3c|l4={{{l|}}}|result={{{d|&quot;}}}{{{{{1}}}|{{{2|}}}{{{3|}}}{{{4|}}}}}{{{5|}}}{{{6|}}}{{{7|}}}{{{8|}}}{{{9|}}}{{{10|}}}{{{11|}}}{{{12|}}}{{{13|}}}{{{14|}}}{{{15|}}}{{{d|&quot;}}}|{{{d|&quot;}}}|{|{|{{{1}}}|&amp;p|{{xpd/code|{{{2|}}}}}|{{xpd/code|{{{3|}}}}}|{{xpd/code|{{{4|}}}}}|}|}|{{xpd/code|{{{5|}}}}}|{{xpd/code|{{{6|}}}}}|{{xpd/code|{{{7|}}}}}|{{xpd/code|{{{8|}}}}}|{{xpd/code|{{{9|}}}}}|{{xpd/code|{{{10|}}}}}|{{xpd/code|{{{11|}}}}}|{{xpd/code|{{{12|}}}}}|{{xpd/code|{{{13|}}}}}|{{xpd/code|{{{14|}}}}}|{{xpd/code|{{{15|}}}}}|{{{d|&quot;}}}}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>9r6lq06ftu2bb57mpin3pg6c8es708o</sha1>
</revision>
</page>
<page>
<title>Template:Elc</title>
<ns>10</ns>
<id>52544784</id>
<revision>
<id>793468726</id>
<parentid>756508904</parentid>
<timestamp>2017-08-01T22:59:43Z</timestamp>
<contributor>
<username>Tystnaden</username>
<id>12361669</id>
</contributor>
<comment>Add / to closing code tag</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="129">&lt;code&gt;[&lt;nowiki/&gt;[{{{1}}}{{#if:{{{2|}}}|{{!}}{{{2}}}}}]&lt;nowiki/&gt;]{{{3|}}}&lt;/code&gt;&lt;!--
--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>9v3bhtkyen2t80p5jvaztid07gfntdf</sha1>
</revision>
</page>
<page>
<title>Template:If</title>
<ns>10</ns>
<id>15682776</id>
<revision>
<id>757998242</id>
<parentid>757708691</parentid>
<timestamp>2017-01-02T22:40:44Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>Undid revision 757708691 by [[Special:Contributions/CambridgeBayWeather|CambridgeBayWeather]] ([[User talk:CambridgeBayWeather|talk]]) pointless, the {{Documentation}} handles any prot icons that may be appropriate</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="282">{{ {{{|safesubst:}}}p{{ {{{|safesubst:}}}#ifeq:{{{1}}}|eq|1|2}}|{{ {{{|safesubst:}}}p{{ {{{|safesubst:}}}#ifeq:{{{2}}}|{{{3}}}|1|2}}|{{{4|}}}|{{{5|}}}}}|{{ {{{|safesubst:}}}p{{ {{{|safesubst:}}}#if{{{1}}}:{{{2}}}|1|2}}|{{{3}}}|{{{4|}}}}}}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>dnw2ilti3nqno6b7fnldiv3r2adunua</sha1>
</revision>
</page>
<page>
<title>Template:Lts</title>
<ns>10</ns>
<id>4225493</id>
<revision>
<id>639943022</id>
<parentid>622361541</parentid>
<timestamp>2014-12-28T13:38:47Z</timestamp>
<contributor>
<username>Technical 13</username>
<id>14450599</id>
</contributor>
<comment>All linking templates that make a toolbar should have &quot;.lx&quot;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="586">&lt;span style=&quot;padding-right:3px;&quot;&gt;[[:Template:{{{1|{{PAGENAME}}}}}|Template:{{ucfirst:{{{1|{{PAGENAME}}}}}}}]]&lt;/span&gt;&lt;!--
--&gt;&lt;span class=&quot;plainlinks nourlexpansion lx&quot; style=&quot;font-size: 85%;&quot;&gt;&lt;!--
--&gt;([{{fullurl:Template:{{{1|{{PAGENAME}}}}}|action=edit}} edit]&amp;#160;&lt;!--
--&gt;[[:Template talk:{{{1|{{PAGENAME}}}}}|talk]]&amp;#160;&lt;!--
--&gt;[{{fullurl:Special:Whatlinkshere/Template:{{{1|{{PAGENAME}}}}}|limit=500}} links]&amp;#160;&lt;!--
--&gt;[{{fullurl:Template:{{{1|{{PAGENAME}}}}}|action=history}} history]&lt;!--
--&gt;)&lt;/span&gt;&lt;!--
--&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>2zzy89sjq92s0riv3sd86b5eixir66w</sha1>
</revision>
</page>
<page>
<title>Template:Middot</title>
<ns>10</ns>
<id>10708740</id>
<redirect title="Template:·" />
<revision>
<id>289413918</id>
<parentid>233057514</parentid>
<timestamp>2009-05-12T06:57:45Z</timestamp>
<contributor>
<username>Dinoguy1000</username>
<id>2412089</id>
</contributor>
<minor/>
<comment>Protected Template:Middot: [[WP:HRT|Highly visible template]]:&amp;#32;redirects to [[Template:·]]; mentioned in documentation as such ([edit=sysop] (indefinite) [move=sysop] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="121">#REDIRECT [[Template:·]]
&lt;noinclude&gt;
[[Category:Wikipedia formatting and function templates|{{PAGENAME}}]]
&lt;/noinclude&gt;</text>
<sha1>oj0c5l93h9kyxf3fkdkzyn5ilzlr3pz</sha1>
</revision>
</page>
<page>
<title>Template:P1</title>
<ns>10</ns>
<id>15682792</id>
<revision>
<id>772147401</id>
<parentid>524739931</parentid>
<timestamp>2017-03-25T16:04:16Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:P1]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefinite) [...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="120">{{{1}}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>5ehwz00t9r7xcn6sk4y7djdeubzwxkn</sha1>
</revision>
</page>
<page>
<title>Template:P2</title>
<ns>10</ns>
<id>15682790</id>
<revision>
<id>772147423</id>
<parentid>524740391</parentid>
<timestamp>2017-03-25T16:04:18Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:P2]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (indefinite) [...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="120">{{{2}}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>duozeijtz6f7quc59lhhpe6ycu023mt</sha1>
</revision>
</page>
<page>
<title>Template:Para/doc</title>
<ns>10</ns>
<id>19136953</id>
<revision>
<id>732474693</id>
<parentid>732474688</parentid>
<timestamp>2016-08-01T06:37:32Z</timestamp>
<contributor>
<username>Ilyushka88</username>
<id>3484802</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contributions/66.87.65.14|66.87.65.14]] ([[User talk:66.87.65.14|talk]]) ([[WP:HG|HG]]) (3.1.21)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2200">{{Documentation subpage}}
{{High-risk|558,000+}}
{{distinguish|Template:Paragraph break|Template:Param}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
== Usage ==
This template is for giving examples of [[Wikipedia:Template messages|template]] parameter source code (useful in template documentation and talk page discussions of template code). It must have one or two parameters itself. The first parameter is the name of the example parameter to display (this may be ''empty'', but it must be ''present''), and the second (optional) parameter is a value for the first example parameter or, if the first {{tlx|para}} parameter is empty, an unnamed example parameter.
=== Examples ===
{| class=&quot;wikitable&quot;
! Code
! Result
! Notes
|-
| {{tlx|para|name}}
| {{para|name}}
|
|-
| {{tlx|para|title|&amp;lt;var&amp;gt;book title&amp;lt;/var&amp;gt;}}
| {{para|title|&lt;var&gt;book title&lt;/var&gt;}}
|
|-
| {{tlx|para|2=&lt;span style=&quot;font-size:1pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;|3=section}}
| {{para||section}}
| For [[Help:Templates#Parameters|unnamed parameters]]; note empty first parameter in the code
|-
| {{tlx|para|&amp;lt;var&amp;gt;parameter&amp;lt;/var&amp;gt;|&amp;lt;var&amp;gt;value&amp;lt;/var&amp;gt;}}
| {{para|&lt;var&gt;parameter&lt;/var&gt;|&lt;var&gt;value&lt;/var&gt;}}
|
|}
When using literal, pre-specified values, simply provide the value (as in the third example above). When illustrating hypothetical, variable, or user-definable values, use &lt;code&gt;&lt;nowiki&gt;&lt;var&gt;value&lt;/var&gt;&lt;/nowiki&gt;&lt;/code&gt; (as in the second example above). The same should be done for non-literal, example parameters (fourth example above).
== See also ==
See also the three tables below; they describe the family of approximately forty templates built for talking about templates.
Here are some related templates or subjects not found in the tables:
* {{tl|Param}}
* {{tl|Parameter}}
* {{tl|tag}}, for providing a similar service, but for HTML tags&lt;!--
This area creates a more user friendly gap to clearly isolate area for adding See also entries.
--&gt;{{Tl-nav}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!------CATEGORIES ETC HERE, PLEASE------&gt;
[[Category:Typing-aid templates]]
[[Category:Wikipedia formatting and function templates]]
}}&lt;/includeonly&gt;</text>
<sha1>412e892eir3wr4dlld72tgfczlv5gs8</sha1>
</revision>
</page>
<page>
<title>Template:T links</title>
<ns>10</ns>
<id>40247799</id>
<revision>
<id>794019399</id>
<parentid>749252546</parentid>
<timestamp>2017-08-05T08:58:16Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>fix span tags</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1782">{{#if:{{yesno|{{{sandboxlinks|no}}}|yes=yes|no=}}{{#ifeq:{{#invoke:String|match|s={{{1|_}}} |pattern=%/sandbox$ |plain=false |nomatch=no}}|no||yes2}}&lt;!--
/sandbox
--&gt;|{{T links/sandbox links|1={{#invoke:String|replace|source={{{1|_}}} |pattern=%/sandbox$ |plain=false |replace=}} }}&lt;!--
-----
--&gt;|&lt;span class=&quot;plainlinks nourlexpansion&quot;&gt;&lt;!--
--&gt;[[:Template:{{{1|Example}}}|{{ucfirst:{{{1|Example}}}}}]]&amp;#x20;&lt;!--
--&gt;&lt;span style=&quot;font-size:85%; {{{liststyle|}}}&quot;&gt;(&lt;!--
--&gt;[{{fullurl:Template:{{ucfirst:{{{1|Example}}}}}|action=edit}} edit]&lt;!--
--&gt; [[Template talk:{{{1|Example}}}|talk]]&lt;!--
--&gt; [{{fullurl:Template:{{ucfirst:{{{1|Example}}}}}|action=history}} history]&lt;!--
--&gt; [{{fullurl:Special:Whatlinkshere/Template:{{ucfirst:{{{1|Example}}}}}|limit=999}} links]&lt;!--
--&gt;&amp;nbsp;[//tools.wmflabs.org/templatecount/index.php?lang=en&amp;namespace=10&amp;name={{urlencode:{{{1|}}}}} #]&lt;!--
--&gt; [{{fullurl:Special:PrefixIndex/Template:{{ucfirst:{{{1|Example}}}}}/}} /subpages]&lt;!--
--&gt; [[Template:{{{1|Example}}}/doc|/doc]]&lt;!--
--&gt;&amp;nbsp;[{{fullurl:Template:{{ucfirst:{{{1|Example}}}}}/doc|action=edit}} /doc&amp;nbsp;edit]&lt;!--
--&gt; [[Template:{{{1|Example}}}/sandbox|/sbox]]&lt;!--
--&gt;&amp;nbsp;[{{fullurl:Special:ComparePages|page1={{urlencode:Template:{{ucfirst:{{{1|Example}}}}}}}&amp;page2={{urlencode:Template:{{ucfirst:{{{1|Example}}}}}/sandbox}}}} /sbox&amp;nbsp;diff]&lt;!--
--&gt; [[Template:{{{1|Example}}}/testcases|/test]]&lt;!--
--&gt;)&lt;/span&gt;&lt;/span&gt;&lt;!--
--&gt;}}&lt;!--end /sandbox test
----- module -----
--&gt;&lt;span style=&quot;font-size:85%; {{{liststyle|}}}&quot;&gt;{{#if:{{{module|}}}| &lt;!--by param--&gt;[[Module:{{{module|}}}]]|{{#if:{{{module}}}|&lt;!--auto add when eponymous bluelink--&gt;{{#ifexist:Module:{{{1|}}}|{{middot}}[[Module:{{{1|}}}]]}}|&lt;!-- blank so no link --&gt;}}&lt;/span&gt;}}&lt;!--
--&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>esjus4nv2uutpf2d3347hhor3jh0j1r</sha1>
</revision>
</page>
<page>
<title>Template:Template-linking templates</title>
<ns>10</ns>
<id>30467959</id>
<revision>
<id>815824569</id>
<parentid>815824347</parentid>
<timestamp>2017-12-17T11:45:14Z</timestamp>
<contributor>
<username>GKFX</username>
<id>14918984</id>
</contributor>
<comment>Add {{xtag}} as well.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5056">{{navbar|Template-linking templates|plain=1}}&lt;!--
--&gt;&lt;noinclude&gt;{{float|{{template shortcut|tl-nav|tl templates}}}}&lt;/noinclude&gt;&lt;!--
--&gt;
===General-purpose formatting===
{| class=&quot;wikitable navbox collapsible&quot; style=&quot;width:auto;font-size:90%;margin:1.0em auto 1.0em auto;vertical-align:top;text-align:center;&quot;
|+ Comparison of template-linking templates according to their style
|-
! style=*&quot; |
! style=&quot;background:#fcc;&quot; | Link style →
! style=&quot;background:#fee;&quot; | Linked
! style=&quot;background:#fee;&quot; | Unlinked
! style=&quot;background:#fee;&quot; | Linked with subst
! style=&quot;background:#fee;&quot; | Linked including braces
! style=&quot;background:#fee;&quot; | Linked with alternative&amp;nbsp;text
|-
! style=&quot;background:#ccf;&quot; | Text style ↓
| '''↓ {{tlx|tlg}} options&lt;sup&gt;1&lt;/sup&gt; →'''
| {{n/a}}
| {{code|nolink{{=}}yes}}
| {{code|subst{{=}}yes}}
| {{code|braceinside{{=}}yes}}
| {{code|alttext{{=}}Foo}}&lt;br /&gt;{{code|2{{=}}Foo}}
|-
| style=&quot;background:#eef;&quot; | normal
| {{n/a|DEFAULT}}
| {{nowrap|{{tlx|tlg}}&lt;sup&gt;1&lt;/sup&gt;}}&lt;br /&gt;{{tlx|tl}}&lt;br /&gt;{{tlx|tlp}}&lt;sup&gt;2&lt;/sup&gt;&lt;br /&gt;{{tlx|tlu}}&lt;sup&gt;3&lt;/sup&gt;
| {{tlx|tlf}}&lt;sup&gt;2&lt;/sup&gt;
| {{tlx|tls}}&lt;br /&gt;{{tlx|tlsp}}
| {{tlx|tn}}
| {{tlx|tla}}
|-
| style=&quot;background:#eef;&quot; | &lt;code&gt;code&lt;/code&gt;
| {{code|code{{=}}yes}}
| {{tlx|tl2}}&lt;br /&gt;{{tlx|tlx}}&lt;br /&gt;{{tlx|tlxu}}&lt;sup&gt;3&lt;/sup&gt;
| {{tlx|tlc}}&lt;sup&gt;2&lt;/sup&gt;&lt;br /&gt;{{tlx|tld}}&lt;sup&gt;2&lt;/sup&gt;&lt;br /&gt;{{tlx|tnull}}
| {{tlx|tlxs}}
| colspan=&quot;2&quot; {{n/a}}
|-
| style=&quot;background:#eef;&quot; | &lt;span style=&quot;font-family:monospace; font-size:larger;&quot;&gt;monospace&lt;/span&gt;&lt;br /&gt;&lt;kbd&gt;kbd&lt;/kbd&gt;
| {{code|plaincode{{=}}yes}}&lt;sup&gt;4&lt;/sup&gt;&lt;br /&gt;{{code|kbd{{=}}yes}}&lt;sup&gt;5&lt;/sup&gt;
| {{tlx|tltt}}&lt;sup&gt;5&lt;/sup&gt;&lt;br /&gt;{{tlx|tltt2}}&lt;sup&gt;5&lt;/sup&gt;
| {{n/a}}
| {{tlx|tltts}}&lt;sup&gt;5&lt;/sup&gt;&lt;br /&gt;{{tlx|tltts3}}&lt;sup&gt;5&lt;/sup&gt;&lt;br /&gt;{{tlx|tltss}}&lt;sup&gt;6&lt;/sup&gt;
| colspan=&quot;2&quot; {{n/a}}
|-
| style=&quot;background:#eef;&quot; | '''bold'''
| {{code|bold{{=}}yes}}
| {{tlx|tlb}}
| rowspan=&quot;3&quot; colspan=&quot;4&quot; {{n/a}}
|-
| style=&quot;background:#eef;&quot; | '''&lt;code&gt;bold+code&lt;/code&gt;'''
| {{code|bold{{=}}yes{{!}}code{{=}}yes}}
| {{tlx|tlxb}}
|-
| style=&quot;background:#eef;&quot; | ''&lt;code&gt;italic+code&lt;/code&gt;''
| {{code|italic{{=}}yes{{!}}code{{=}}yes}}
| {{tlx|tlxi}}
|}
{{clear}}
{{plainlist |style=font-size:90% |
* &lt;sup&gt;1&lt;/sup&gt; {{tlx|tlg}} is the most general, allowing any combination of text style and/or link style options.
* &lt;sup&gt;2&lt;/sup&gt; Prevents wrapping of text by placing it inside {{tag|span|params=class=&quot;nowrap&quot;}} tags.
* &lt;sup&gt;3&lt;/sup&gt; Allows links to templates in any namespace.
* &lt;sup&gt;4&lt;/sup&gt; {{tld|tlg|plaincode{{=}}yes}} uses [[HTML element#code|{{tag|code|params=style=&quot;border:none; background:transparent;&quot;}}]].
* &lt;sup&gt;5&lt;/sup&gt; Displays [[monospaced font]] using [[HTML element#kbd|{{tag|kbd}}]] tags (changed from [[HTML element#tt|{{tag|tt}}]] for [[HTML5]] compliance).
* &lt;sup&gt;6&lt;/sup&gt; Displays monospaced font using {{tag|span|params=style=&quot;font-family:monospace;&quot;}}.
}}
===Other formatting templates===
{| class=&quot;wikitable sortable&quot; style=&quot;vertical-align:top;&quot;
! Code example !! Effect !! Notes
|-
| {{tlx|tl2|&lt;nowiki&gt;Hatnote|lang=fr&lt;/nowiki&gt;}} || {{tl2|hatnote|lang=fr}} || Supports linking to sister projects (e.g., fr:Hatnote)
|-
| {{tlx|tlu|User:Ahunt/SSHFS}} || {{tlu|User:Ahunt/SSHFS}} || Supports linking to any namespace
|-
| {{tlx|demo|&lt;nowiki&gt;&lt;nowiki&gt;{{Hatnote|lang=fr|Some text}}&lt;/nowiki&gt;&lt;/nowiki&gt;}} || {{demo|&lt;nowiki&gt;{{hatnote|lang=fr|Some text}}&lt;/nowiki&gt;}} || Shows code and example
|-
| {{tlx|xpd|&lt;nowiki&gt;Hatnote|Some hatnote text&lt;/nowiki&gt;}} || {{xpd|hatnote|Some hatnote text}} || Shows code, example and a link to expand the template code
|-
&lt;!-- Yes, I know these two aren't actually template-linking templates, but they're a heck of a lot easier to find if listed in the docs for e.g. {{tl}} --&gt;
| {{tlx|para|&lt;nowiki&gt;title|&lt;var&gt;book title&lt;/var&gt;&lt;/nowiki&gt;}} || {{para|title|&lt;var&gt;book title&lt;/var&gt;}} || Formats template parameters for display, with or without values
|-
| {{tlx|elc|Template:Hatnote}}&lt;br/&gt;{{tlx|elc|&lt;nowiki&gt;Template:Hatnote|Hatnote&lt;/nowiki&gt;}} || {{elc|Template:Hatnote}}&lt;br/&gt;{{elc|&lt;nowiki&gt;Template:Hatnote|Hatnote&lt;/nowiki&gt;}} || Formats wikilink, with optional piped link text and blended suffix
|-
| {{tlx|tag|ref}}&lt;br&gt;{{tlx|xtag|templatedata}} || {{tag|ref}}&lt;br&gt;{{xtag|templatedata}} || Formats [X]HTML tags; can add content, choose opening, closing, or self-closing
|}
===With utility links===
{| class=&quot;wikitable sortable&quot; style=&quot;vertical-align:top;&quot;
! Code example !! Effect
|-
| {{tlx|lts|Hatnote}} || {{lts|hatnote}}
|-
| {{tlx|t links|Hatnote}} || {{t links|hatnote}}
|-
| {{tlx|tfd links|Hatnote}} || {{tfd links|hatnote}}
|-
| {{tlx|tiw|Hatnote}} || {{tiw|hatnote}}
|-
| {{tlx|tltt|Hatnote}} || {{tltt|Hatnote}}
|-
| {{tlx|tetl|Hatnote}} || {{tetl|Hatnote}}
|-
| {{tlx|tsetl|Hatnote}} || {{tsetl|Hatnote}}
|-
| {{tlx|ti|Hatnote}} || {{ti|Hatnote}}
|-
| {{tlx|tic|Hatnote}} || {{tic|Hatnote}}
|-
| {{tlx|tiw|Hatnote}} || {{tiw|Hatnote}}
|-
| {{tlx|tlt|Hatnote}} || {{tlt|Hatnote}}
|-
| {{tlx|ttl|Hatnote}} || {{ttl|Hatnote}}
|-
| {{tlx|twlh|Hatnote}} || {{twlh|Hatnote}}
|}
&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>tvkm72xfot7b4c7spkurnfn2z6fw5hi</sha1>
</revision>
</page>
<page>
<title>Template:Tetl</title>
<ns>10</ns>
<id>3364922</id>
<revision>
<id>732434004</id>
<parentid>732433830</parentid>
<timestamp>2016-07-31T23:32:30Z</timestamp>
<contributor>
<username>Dcljr</username>
<id>6496</id>
</contributor>
<comment>just remove all space, for consistency with other similar templates</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1113">{{&lt;!--
--&gt;[[{{ns:Template}}:{{{1|{{PAGENAME}}}}}|{{{1|{{PAGENAME}}}}}]]&lt;!--
--&gt;{{#if:{{{2|}}} | &amp;#124;{{{2}}} }}&lt;!--
--&gt;{{#if:{{{3|}}} | &amp;#124;{{{3}}} }}&lt;!--
--&gt;{{#if:{{{4|}}} | &amp;#124;{{{4}}} }}&lt;!--
--&gt;{{#if:{{{5|}}} | &amp;#124;&lt;i&gt;etc.&lt;/i&gt; }}&lt;!--
--&gt;}}&lt;br/&gt;&lt;!--
--&gt;&lt;span class=&quot;plainlinksneverexpand&quot;&gt;&lt;!--
--&gt;&lt;small&gt;[{{fullurl:Special:Whatlinkshere/Template:{{{1|{{PAGENAME}}}}}|limit=500}} links]&lt;/small&gt;&amp;#160;&lt;!--
--&gt;&lt;small&gt;[[:Template talk:{{{1|{{PAGENAME}}}}}|talk]]&lt;/small&gt;&amp;#160;&lt;!--
--&gt;&lt;small&gt;[{{fullurl:Template:{{{1|{{PAGENAME}}}}}|action=edit}} view]&lt;/small&gt;&lt;!--
--&gt;&lt;/span&gt;&lt;noinclude&gt;
{{Documentation
| content =
* Like {{lts|tlx}} and {{tlx|tlsp}} for up to three parameters, used in template lists adding links in the same style as {{tlx|lts/}} and {{tlx|tlrow}}. See above for an example what it does.
* {{tlx|tetl}} now covers the previously separate '''tetlp'''{{\}}'''tnetlp'''{{\}}'''tnetl''' templates.
* [[Template talk:Tlx|Template:Tetl documentation]]
===See also===
* {{tl|tlsetl}}
[[Category:Internal template-link templates]]
}}&lt;!--(end Documentation)--&gt;
&lt;/noinclude&gt;</text>
<sha1>eh6x0kd8uhuo2ipwiy92oxsdfdopzt3</sha1>
</revision>
</page>
<page>
<title>Template:Tfd links</title>
<ns>10</ns>
<id>17877760</id>
<revision>
<id>756181811</id>
<parentid>742627249</parentid>
<timestamp>2016-12-22T14:47:09Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>testing a lua implementation of [[template:tfd links]], see if this reduces the post expansion size</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="67">{{#invoke:TfdLinks|main}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>30ucmxsb9wzzkj8yj9mv9npekw92mrc</sha1>
</revision>
</page>
<page>
<title>Template:Ti</title>
<ns>10</ns>
<id>1914490</id>
<revision>
<id>636297818</id>
<parentid>636293374</parentid>
<timestamp>2014-12-02T10:42:17Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>int:dot-separator</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="254">'''[[Template:{{{1}}}]]'''&amp;nbsp;([[Template talk:{{{1}}}|talk]]{{int:dot-separator}}[[Special:Whatlinkshere/Template:{{{1}}}|links]]{{int:dot-separator}}[{{SERVER}}{{localurl:Template:{{{1}}}|action=edit}} edit])&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>dgn75l4v01qr6tv5qnl9qa5djw7v17h</sha1>
</revision>
</page>
<page>
<title>Template:Tic</title>
<ns>10</ns>
<id>1944202</id>
<revision>
<id>636287469</id>
<parentid>617964745</parentid>
<timestamp>2014-12-02T08:34:18Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>plainlinks, removed thinsp</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="269">&lt;span class=&quot;plainlinks&quot;&gt;[[Template:{{{1}}}]]&amp;nbsp;([[Template talk:{{{1}}}|talk]] [{{SERVER}}{{localurl:Special:Whatlinkshere/Template:{{{1}}}|limit=500}} links] [{{SERVER}}{{localurl:Template:{{{1}}}|action=edit}} edit])&lt;/span&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>856vsrm4121ekh2lpxkhggcyqe9j841</sha1>
</revision>
</page>
<page>
<title>Template:Tiw</title>
<ns>10</ns>
<id>3094899</id>
<revision>
<id>807253529</id>
<parentid>622101774</parentid>
<timestamp>2017-10-26T21:13:09Z</timestamp>
<contributor>
<username>Nihlus</username>
<id>29134629</id>
</contributor>
<comment>fixing [[Special:LintErrors/multi-colon-escape|multi colon escape errors]] this template can cause</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="448">{{#if:{{{2|}}}
| [[:{{#if:{{{1|}}}|{{{1}}}:|}}Template:{{{2}}}]]&amp;nbsp;{{smaller|([[:{{#if:{{{1|}}}|{{{1}}}:|}}Special:Whatlinkshere/Template:{{{2}}}|backlinks]] [{{fullurl:{{{1}}}:Template:{{{2}}}|action=edit}} edit])}}
| [[Template:{{{1|{{PAGENAME}}}}}]]&amp;nbsp;{{smaller|([[Special:Whatlinkshere/Template:{{{1|{{PAGENAME}}}}}|backlinks]] [{{fullurl:w:Template:{{{1|{{PAGENAME}}}}}|action=edit}} edit])}}
}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>jzu59hjcaym33gyjmbggtvol7gnh0ph</sha1>
</revision>
</page>
<page>
<title>Template:Tl-nav</title>
<ns>10</ns>
<id>42514180</id>
<redirect title="Template:Template-linking templates" />
<revision>
<id>604577409</id>
<timestamp>2014-04-17T10:36:17Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>Sardanaphalus moved page [[Template:Tl-nav]] to [[Template:Template-linking templates]]: Less cryptic (redirect will work as shortcut)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="65">#REDIRECT [[Template:Template-linking templates]]
{{R from move}}</text>
<sha1>s8gd16ldc8qfc1ijc7reu1d234zbhh7</sha1>
</revision>
</page>
<page>
<title>Template:Tlt</title>
<ns>10</ns>
<id>3317861</id>
<revision>
<id>819686350</id>
<parentid>406802455</parentid>
<timestamp>2018-01-10T19:17:38Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Tlt]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="112">&amp;#123;{[[Template:{{{1}}}|{{{1}}}]]}} ([[Template talk:{{{1}}}|talk]])&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>bgpw4je4ruf4nh9owiv3o2ff7v4j9xi</sha1>
</revision>
</page>
<page>
<title>Template:Tltt</title>
<ns>10</ns>
<id>8883970</id>
<revision>
<id>789366299</id>
<parentid>702013765</parentid>
<timestamp>2017-07-06T22:55:13Z</timestamp>
<contributor>
<username>Zyxw</username>
<id>473593</id>
</contributor>
<comment>&lt;tt&gt; deprecated in HTML 5 so use &lt;kbd&gt; instead, as previously done at [[Template:Tltts]] (see [[Special:Diff/397681538/633257454|diff]]) – for more info, see [[HTML element#tt]] and https://www.w3.org/TR/html5/obsolete.html#non-conforming-features</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="189">&lt;kbd title=&quot;{{{2}}}&quot;&gt;&amp;#123;&amp;#123;[[Template:{{{1}}}|{{{1}}}]]{{#if:{{{par|}}}|{{!}}{{{par}}}}}{{#if:{{{par2|}}}|{{!}}{{{par2}}}}}&amp;#125;&amp;#125;&lt;/kbd&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>9hfy2m5wrkitpx636bcghk5u64o0pjw</sha1>
</revision>
</page>
<page>
<title>Template:Tlu</title>
<ns>10</ns>
<id>3581734</id>
<revision>
<id>809415782</id>
<parentid>788414179</parentid>
<timestamp>2017-11-08T23:28:18Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>per the chart in the documentation, this template should not have &lt;code&gt;&lt;/code&gt; tags, so that the formatting is consistent with {{[[Template:tl|tl]]}}. Will create {{[[Template:tlxu|tlxu]]}} that uses code styling.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="611">&lt;nowiki&gt;{{&lt;/nowiki&gt;[[{{{1}}}]]&lt;!--
--&gt;{{#if:{{{2|}}}|
&amp;#124;{{{2}}}
}}&lt;!--
--&gt;{{#if:{{{3|}}}|
&amp;#124;{{{3}}}
}}&lt;!--
--&gt;{{#if:{{{4|}}}|
&amp;#124;{{{4}}}
}}&lt;!--
--&gt;{{#if:{{{5|}}}|
&amp;#124;{{{5}}}
}}&lt;!--
--&gt;{{#if:{{{6|}}}|
&amp;#124;{{{6}}}
}}&lt;!--
--&gt;{{#if:{{{7|}}}|
&amp;#124;{{{7}}}
}}&lt;!--
--&gt;{{#if:{{{8|}}}|
&amp;#124;{{{8}}}
}}&lt;!--
--&gt;{{#if:{{{9|}}}|
&amp;#124;{{{9}}}
}}&lt;!--
--&gt;{{#if:{{{10|}}}|
&amp;#124;{{{10}}}
}}&lt;!--
--&gt;{{#if:{{{11|}}}|
&amp;#124;{{{11}}}
}}&lt;!--
--&gt;{{#if:{{{12|}}}|
&amp;#124;''...''
}}&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;noinclude&gt;
&lt;!-- Add categories and interwikis to the /doc page, not here, thanks --&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>7ndr32zloimdl1g7hvgc8qknaf3u5ml</sha1>
</revision>
</page>
<page>
<title>Template:Tsetl</title>
<ns>10</ns>
<id>3875695</id>
<revision>
<id>732434736</id>
<parentid>732434669</parentid>
<timestamp>2016-07-31T23:41:33Z</timestamp>
<contributor>
<username>Dcljr</username>
<id>6496</id>
</contributor>
<comment>and remove code from colon</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1074">{{&lt;!--
--&gt;[[Wikipedia:Template substitution|subst]]:&lt;!--
--&gt;[[{{ns:Template}}:{{{1|{{PAGENAME}}}}}|{{{1|{{PAGENAME}}}}}]]&lt;!--
--&gt;{{#if:{{{2|}}} | &amp;#124;{{{2}}}}}&lt;!--
--&gt;{{#if:{{{3|}}} | &amp;#124;{{{3}}}}}&lt;!--
--&gt;{{#if:{{{4|}}} | &amp;#124;{{{4}}}}}&lt;!--
--&gt;{{#if:{{{5|}}} | &amp;#124;&lt;i&gt;etc.&lt;/i&gt;}}&lt;!--
--&gt;}}&lt;br/&gt;&amp;#160;&lt;!--
--&gt;&lt;span class=&quot;plainlinksneverexpand&quot;&gt;&lt;!--
--&gt;&lt;small&gt;[{{fullurl:Special:Whatlinkshere/Template:{{{1|{{PAGENAME}}}}}|limit=500}} links]&amp;#160;&lt;!--
--&gt;[[:Template talk:{{{1|{{PAGENAME}}}}}|talk]]&amp;#160;&lt;!--
--&gt;[{{fullurl:Template:{{{1|{{PAGENAME}}}}}|action=edit}} view]&lt;!--
--&gt;&lt;/small&gt;&lt;!--
--&gt;&lt;/span&gt;&lt;noinclude&gt;
{{doc|content=
Like {{lts|tlx}} and {{tlx|tlsp}} for up to three parameters, used in template lists adding links in the same style as {{tlx|lts/}} and {{tlx|tlrow}}. See above for an example what it does.
Use {{tlx|tetl}} for the version without [[Wikipedia:Template substitution|subst]]&lt;code&gt;:&lt;/code&gt;.
[[Category:Internal template-link templates]]
}}
&lt;/noinclude&gt;</text>
<sha1>372w5icatx75b8w8qyugy5bhgeafmpe</sha1>
</revision>
</page>
<page>
<title>Template:Ttl</title>
<ns>10</ns>
<id>2078854</id>
<revision>
<id>749560281</id>
<parentid>749559977</parentid>
<timestamp>2016-11-14T23:35:51Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>Undid revision 749559977 by [[Special:Contributions/Frietjes|Frietjes]] ([[User talk:Frietjes|talk]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="296">{{main other|{{error|Did you mean {{tl|s-ttl}}?}}}}&amp;#123;{[[Template:{{{1}}}|{{{1}}}]]}}&amp;nbsp;([[Template talk:{{{1}}}|t]]/[{{SERVER}}{{localurl:Special:Whatlinkshere/Template:{{{1}}}|limit=999}} l])&lt;noinclude&gt;
{{pp-template|small=yes}}
[[Category:Internal template-link templates]]
&lt;/noinclude&gt;</text>
<sha1>7b0wm98nell0ryrguvp1u30e4z16hua</sha1>
</revision>
</page>
<page>
<title>Template:Twlh</title>
<ns>10</ns>
<id>1624121</id>
<revision>
<id>726407710</id>
<parentid>630524706</parentid>
<timestamp>2016-06-22T00:15:23Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>rm. redundant cat.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="173">[[Template:{{{1}}}]] ([[Special:Whatlinkshere/Template:{{{1}}}|links]], [[Template talk:{{{1}}}|talk]])&lt;noinclude&gt;
[[Category:Internal template-link templates]]
&lt;/noinclude&gt;</text>
<sha1>5zf094pe00ublbb8odjt3afz5zqsejm</sha1>
</revision>
</page>
<page>
<title>Template:Xpd</title>
<ns>10</ns>
<id>5597535</id>
<revision>
<id>331967507</id>
<parentid>331965433</parentid>
<timestamp>2009-12-16T05:46:40Z</timestamp>
<contributor>
<username>Patrick</username>
<id>4388</id>
</contributor>
<comment>update from m:</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="539">{{{{{substnp|}}}if|subst={{{substnp|}}}|eq|{{{4|+}}}|{{{4|-}}}|{{xpd3|d={{{d|}}}|gives={{{gives|gives}}}|l={{{l|}}}|{{{1}}}|{{{2|}}}|{{{3|}}}|{{{4}}}}}|{{{{{substnp|}}}if|subst={{{substnp|}}}|eq|{{{3|-}}}|{{{3|+}}}|{{xpd2|d={{{d|}}}|gives={{{gives|gives}}}|l={{{l|}}}|{{{1}}}|{{{2|}}}|{{{3}}}}}|{{{{{substnp|}}}if|subst={{{substnp|}}}|eq|{{{2|-}}}|{{{2|+}}}|{{xpd1|d={{{d|}}}|gives={{{gives|gives}}}|l={{{l|}}}|{{{1|}}}|{{{2|}}}}}|{{xpd0|d={{{d|}}}|gives={{{gives|gives}}}|l={{{l|}}}|{{{1}}}}}}}}}}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>2mhjlyjkqtm7p9fb9mxa07csfy6dld8</sha1>
</revision>
</page>
<page>
<title>Template:Xpd1</title>
<ns>10</ns>
<id>15783159</id>
<revision>
<id>331971089</id>
<parentid>197945352</parentid>
<timestamp>2009-12-16T06:10:46Z</timestamp>
<contributor>
<username>Patrick</username>
<id>4388</id>
</contributor>
<comment>update from m:</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="343">&lt;includeonly&gt;&lt;code&gt;&quot;{&amp;#123;{{#if:{{{l|}}}|{{xpd/wl|{{{1}}}}}|&lt;nowiki/&gt;{{{1}}}}}&amp;#124;{{xpd/w|{{xpd/code|{{{2}}}}}}}}&amp;#125;&quot;&lt;/code&gt; {{{gives|gives}}} &quot;{{{{{1}}}|{{{2}}}}}&quot; [{{fullurl:special:ExpandTemplates|input=%22%7B%7B{{urlencode:{{{1}}}}}%7c{{xpd/url|{{xpd/code|{{{2}}}}}}}%7D%7D%22}}]&lt;/includeonly&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>ptrcgbmcrasd1b0y8lslqnuu3qzbwxc</sha1>
</revision>
</page>
<page>
<title>Module:TfdLinks</title>
<ns>828</ns>
<id>52661826</id>
<revision>
<id>807504925</id>
<parentid>785431312</parentid>
<timestamp>2017-10-28T11:48:12Z</timestamp>
<contributor>
<username>Jc86035</username>
<id>17245768</id>
</contributor>
<minor/>
<comment>actual maximum is 5000</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1955">-- This module implements [[Template:Tfd links]]
local p = {}
local function urlencode(text)
-- Return equivalent of {{urlencode:text}}.
local function byte(char)
return string.format('%%%02X', string.byte(char))
end
return text:gsub('[^ %w%-._]', byte):gsub(' ', '+')
end
local function fullurllink(t, a, s)
return '[//en.wikipedia.org/w/index.php?title=' .. urlencode(t) .. '&amp;' .. a .. ' ' .. s .. ']'
end
function p.main(frame)
local args = frame:getParent().args
local ns = ((args['catfd'] and args['catfd'] ~= '') and 'Category')
or ((args['module'] and args['module'] ~= '') and 'Module')
or 'Template'
local tname = mw.getContentLanguage():ucfirst(args['1'] or 'Example')
local fname = ns .. ':' .. tname
local ymd = args['2'] or ''
local fullpagename = (ymd ~= '')
and 'WP:Templates for discussion/Log/' .. ymd
or frame:preprocess('{{FULLPAGENAME}}')
local sep = '&amp;nbsp;&lt;b&gt;·&lt;/b&gt; '
local res = '&lt;span id=&quot;' .. ns .. ':' .. tname
.. '&quot; class=&quot;plainlinks nourlexpansion 1x&quot;&gt;'
.. '[[:' .. ns .. ':' .. tname .. ']]&amp;nbsp;('
if ymd ~= '' then
local dmy = frame:expandTemplate{ title='date', args={ymd, 'dmy'} }
res = res .. '[[' .. fullpagename .. '#' .. fname
.. '|' .. dmy .. ']]) ('
end
res = res .. fullurllink(fname, 'action=edit', 'edit') .. sep
res = res .. '[[' .. ns .. ' talk:' .. tname .. '|talk]]' .. sep
res = res .. fullurllink(fname, 'action=history', 'history') .. sep
if ns ~= 'Category' then
res = res .. fullurllink('Special:Whatlinkshere/'
.. fname, 'limit=5000', 'links') .. sep
end
res = res .. fullurllink('Special:Log', 'page='
.. urlencode(fname), 'logs') .. sep
res = res .. '[[Special:PrefixIndex/' .. fname .. '/|subpages]]'
res = res .. '&lt;span class=&quot;sysop-show&quot;&gt;' .. sep .. fullurllink(fname, 'action=delete&amp;wpReason='
.. urlencode('[[' .. fullpagename .. '#' .. fname .. ']]'), 'delete') .. '&lt;/span&gt;'
res = res .. ')&lt;/span&gt;'
return res
end
return p</text>
<sha1>4p99ilavq1l1n3y704p35j0jfl15lpe</sha1>
</revision>
</page>
<page>
<title>Template:Plain link/doc</title>
<ns>10</ns>
<id>13218742</id>
<revision>
<id>771801910</id>
<parentid>767946766</parentid>
<timestamp>2017-03-23T16:14:38Z</timestamp>
<contributor>
<username>Adem20</username>
<id>25436602</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2545">{{Documentation subpage}} {{Template shortcut|scp|plnk}}
{{high-use}}
&lt;!-- EDIT TEMPLATE DOCUMENTATION BELOW THIS LINE --&gt;
This template will allow you to create a local or [[Help:Interwiki linking|interwiki link]] (such as a link to the [[Help:Page history|history of a page]]) on a page without having the [[File:External.svg|10px]] follow the link. This can be used, for example, when internal or interwiki links appear as external links. See [[Help:URL#URLs on other Wikimedia projects]] for more information.
== Caution ==
When you link to a Wikipedia or other Wikimedia project URL, ''omit the preceding &quot;http:&quot;, or &quot;https:&quot;'', so that the URL begins with &quot;//&quot;. This allows users to use the protocol they're currently using.
You can use {{tnull|fullurl}} [[Help:Magic words|magicword]] to generate URLs to Wikipedia pages.
== Examples ==
*&lt;code&gt;&lt;nowiki&gt;{{Plain link|url=//www.wikipedia.org}}&lt;/nowiki&gt;&lt;/code&gt; gives {{Plain link|url=//www.wikipedia.org}}
*&lt;code&gt;&lt;nowiki&gt;{{Plain link|//www.wikipedia.org Wikipedia}}&lt;/nowiki&gt;&lt;/code&gt; gives {{Plain link|//www.wikipedia.org Wikipedia}}
*&lt;code&gt;&lt;nowiki&gt;{{Plain link|//www.wikipedia.org | Wikipedia}}&lt;/nowiki&gt;&lt;/code&gt; gives {{Plain link|//www.wikipedia.org|Wikipedia}}
*&lt;code&gt;&lt;nowiki&gt;{{Plain link|http://www.google.co.uk|Google}}&lt;/nowiki&gt;&lt;/code&gt; gives {{Plain link|http://www.google.co.uk|Google}}
Note that if your url or link title contains an equals sign &lt;code&gt;=&lt;/code&gt; you must use named parameters:
*&lt;code&gt;&lt;nowiki&gt;{{ Plainlink | url=//en.wikipedia.org/w/index.php?title=Equals_sign&amp;oldid=282228764 | name=&quot;=&quot; }}&lt;/nowiki&gt;&lt;/code&gt; gives {{Plain link|url=//en.wikipedia.org/w/index.php?title=Equals_sign&amp;oldid=282228764|name=&quot;=&quot;}}
To be more concise, you can use &lt;code&gt;&lt;nowiki&gt;{{scp}}&lt;/nowiki&gt;&lt;/code&gt; or &lt;code&gt;&lt;nowiki&gt;{{plnk}}&lt;/nowiki&gt;&lt;/code&gt; and numbers as parameter names e.g.
*&lt;code&gt;&lt;nowiki&gt;{{scp|1=//en.wikipedia.org/w/index.php?title=Equals_sign&amp;oldid=282228764|2=&quot;=&quot;}}&lt;/nowiki&gt;&lt;/code&gt; gives the same {{scp|1=//en.wikipedia.org/w/index.php?title=Equals_sign&amp;oldid=282228764|2=&quot;=&quot;}}
*&lt;code&gt;&lt;nowiki&gt;{{plnk|1=//en.wikipedia.org/w/index.php?title=Equals_sign&amp;oldid=282228764|2=&quot;=&quot;}}&lt;/nowiki&gt;&lt;/code&gt; gives the same {{plnk|1=//en.wikipedia.org/w/index.php?title=Equals_sign&amp;oldid=282228764|2=&quot;=&quot;}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
&lt;!-- ADD CATEGORIES BELOW THIS LINE --&gt;
[[Category:External link templates]]
}}&lt;/includeonly&gt;
== See also ==
* [[Template:Querylink]], generates a plain link for Wikipedia pages with extended parameters
* [[Template:Diff]]
* [[Template:Oldid]]</text>
<sha1>gu1lluhew46od1jsex7rh3ket9ty1vh</sha1>
</revision>
</page>
<page>
<title>Template:Plnk</title>
<ns>10</ns>
<id>46555416</id>
<redirect title="Template:Plain link" />
<revision>
<id>802807006</id>
<parentid>802806976</parentid>
<timestamp>2017-09-28T16:15:06Z</timestamp>
<contributor>
<username>Clarkcj12</username>
<id>10534893</id>
</contributor>
<comment>Undid revision 802806976 by [[Special:Contributions/Clarkcj12|Clarkcj12]] ([[User talk:Clarkcj12|talk]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="57">#redirect [[Template:Plain link]]
{{rcatsh|
{{R tsh}}
}}</text>
<sha1>g9t9e4xu0rawzmhqwozrwpnb8t69ybo</sha1>
</revision>
</page>
<page>
<title>Template:Scp</title>
<ns>10</ns>
<id>22385376</id>
<redirect title="Template:Plain link" />
<revision>
<id>779747554</id>
<parentid>374119480</parentid>
<timestamp>2017-05-10T19:09:34Z</timestamp>
<contributor>
<username>NotThatAnonymous</username>
<id>19097016</id>
</contributor>
<comment>Redirect from template shortcut.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="57">#redirect [[Template:Plain link]]
{{rcatsh|
{{R tsh}}
}}</text>
<sha1>g9t9e4xu0rawzmhqwozrwpnb8t69ybo</sha1>
</revision>
</page>
<page>
<title>Template:Pp-template/doc</title>
<ns>10</ns>
<id>15755184</id>
<revision>
<id>823178775</id>
<parentid>823172643</parentid>
<timestamp>2018-01-30T18:45:26Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<comment>revdel complete</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2059">{{Documentation subpage}}
{{Twinkle standard installation}}
{{lua|Module:Protection banner}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE. --&gt;
This is the {{tl|pp-template}} protection notice.
It is used on protected templates and on protected file (image) pages.
This template does not show on pages that are not protected, instead it reports an error. Please note that only [[Wikipedia:Administrators|administrators]] can protect pages, this template only informs about the protection status of the page.
This template should usually not be manually placed on template pages, since it is automatically loaded by the {{tl|Documentation}} template of protected template pages. Protected templates (both semi and full) should preferably have a documentation subpage (/doc) so that any editor can update the documentation, categories and interwiki links of the template. See [[Wikipedia:Template documentation]] for more on that.
This template automatically detects the edit protection level (semi or full) of a page, and if it is on a template or file page, and modifies its appearance and how it categorizes the page.
* Use {{tlc|pp-template}} for the normal appearance (a small icon at the top).
* Use {{tlc|pp-template|small&amp;#61;no}} for the large message box. On file pages we recommend using the large box. (It is usually a good idea to also add the {{tl|nocommons}} box on protected image pages, to remind people that protected images should not be deleted even if there is a backup copy on Commons.)
When {{tl|pp-template}} is added to a protected template, it should be placed inside {{tag|noinclude}} tags (otherwise, every page which uses the template will load the protection notice, which will result in an error message). On file (image) pages the &amp;lt;noinclude&gt;&amp;lt;/noinclude&gt; tags are not necessary.
=== See also ===
{{Protection templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
&lt;!-- CATEGORIES AND INTERWIKIS HERE, THANKS --&gt;
[[Category:Top icon protection templates|{{PAGENAME}}]]
}}&lt;/includeonly&gt;</text>
<sha1>eny8ab4bpy4ccz2ypwfd1wuftco5k76</sha1>
</revision>
</page>
<page>
<title>Template:Protection templates</title>
<ns>10</ns>
<id>4740622</id>
<revision>
<id>815713041</id>
<parentid>815712963</parentid>
<timestamp>2017-12-16T16:40:41Z</timestamp>
<contributor>
<username>Serols</username>
<id>9929111</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contributions/172.56.6.32|172.56.6.32]] ([[User talk:172.56.6.32|talk]]) ([[WP:HG|HG]]) (3.3.3)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3032">{{Navbox
| state = {{{state|{{{1|&lt;includeonly&gt;collapsed&lt;/includeonly&gt;}}}}}}
| class = &lt;!--ombox ombox-protection--&gt;
| navbar = plain
| title = {{c|Protection templates}}
| image&lt;!--left--&gt; = &lt;!--[[File:Padlock.svg|40px|link=|alt=]]--&gt;
| tracking = no &lt;!-- keep all the documented templates out of the hlist tracking category --&gt;
| list1 = {{Aligned table
|cols=5 |style=border:1px solid #aaa;font-size:110%;margin:0 auto&lt;!-- 0.2em--&gt;;
|colstyle=vertical-align:middle;padding-left:1.0em;&lt;!--font-family:monospace;--&gt;padding-right:1.0em;
|col1class=navbox-group |col1style=background:#ddf;font-family:sans-serif;
&lt;!--row#--&gt;
|row1header=on |row1style=background:none;padding-bottom:0.25em;border-bottom:1px solid #bbf;
|style1.1=background:none;border-bottom:1px solid #bbf;
&lt;!-- 1 --&gt; | | {{sans-serif|Edit}} | {{sans-serif|Move}} | {{sans-serif|[[Wikipedia:Pending changes|Pending changes]]}} | {{sans-serif|Upload}}
&lt;!-- 2 --&gt; | Generic
| {{tl|pp}} {{tl|pp-protected}}
| {{tlf|pp}} {{tl|pp-move}}
| {{tlf|pp}} {{tl|pp-pc1}}
| {{tlf|pp}} {{tl|pp-upload}}
|row2style=background:whitesmoke;
&lt;!-- 3 --&gt; | [[Wikipedia:Biographies of living persons|BLP]] | {{tl|pp-blp}} | – | – | –
&lt;!-- 4 --&gt; | Dispute | {{tl|pp-dispute}} | {{tl|pp-move-dispute}} | – | –
|row4style=background:whitesmoke;
&lt;!-- 5 --&gt; | [[Wikipedia:Protection_policy#Extended_confirmed_protection|Extended confirmed protection]] | {{tl|pp-30-500}} | {{tl|pp-30-500}} | – | –
&lt;!-- 6 --&gt; | [[Main Page]] | {{tl|pp-main-page}} | – | – | –
|row6style=background:whitesmoke;
&lt;!-- 7 --&gt; | [[Wikipedia:Office actions|Office]]
| {{tl|pp-office}}&amp;nbsp;{{tl|pp-reset}} {{tl|pp-office-dmca}}
| {{tlf|pp-office}}&amp;nbsp;{{tlf|pp-reset}} {{tlf|pp-office-dmca}}
| {{tlf|pp-office}}&amp;nbsp;{{tlf|pp-reset}} {{tlf|pp-office-dmca}}
| –
&lt;!-- 8 --&gt; | Sockpuppetry | {{tl|pp-sock}} | – | – | –
|row8style=background:whitesmoke;
&lt;!-- 9 --&gt; | High-visibility | {{tl|pp-template}} | – | – | –
&lt;!-- 10 --&gt; | Blocked user's talk | {{tl|pp-usertalk}} | – | – | –
|row10style=background:whitesmoke;
&lt;!-- 11 --&gt; | Vandalism | {{tl|pp-vandalism}} | {{tl|pp-move-vandalism}} | – | –
&lt;!-- 12 --&gt; | Talk page | {{tl|permanently protected}} {{tl|temporarily protected}} | – | – | –
|row12style=background:whitesmoke;
&lt;!-- 13 --&gt; | Long-term | {{tl|pp-semi-indef}} | {{tl|pp-move-indef}} | – | –
}}
| below = [[Module:Protection banner]]
}}&lt;noinclude&gt;
{{Documentation
| content =
{{Collapsible option |statename=optional |default=collapsed}}
[[Category:Wikipedia administration templates]]
[[Category:Documentation see also templates]]
}}&lt;!--(end Documentation)--&gt;
&lt;/noinclude&gt;</text>
<sha1>sc68uwd9cb2dbxqkcy9ktg0a69zpirt</sha1>
</revision>
</page>
<page>
<title>Template:Cite conference</title>
<ns>10</ns>
<id>4661319</id>
<revision>
<id>690395477</id>
<parentid>579832424</parentid>
<timestamp>2015-11-13T02:17:24Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Cite conference: when I changed this to add template editors, I didn't realize it had cascding protection—so all my change did was make it appear as if it could be edited by them ([Edit=Allow only administrators]...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="129">&lt;includeonly&gt;{{#invoke:citation/CS1|citation
|CitationClass=conference
}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>72b4nmjtg0tb6m6oofjgdjq9bkhfx1k</sha1>
</revision>
</page>
<page>
<title>Template:Cite journal</title>
<ns>10</ns>
<id>4740319</id>
<revision>
<id>690395473</id>
<parentid>579832342</parentid>
<timestamp>2015-11-13T02:17:24Z</timestamp>
<contributor>
<username>Fuhghettaboutit</username>
<id>665998</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Cite journal: when I changed this to add template editors, I didn't realize it had cascding protection—so all my change did was make it appear as if it could be edited by them ([Edit=Allow only administrators] (in...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="126">&lt;includeonly&gt;{{#invoke:Citation/CS1|citation
|CitationClass=journal
}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>9fcytsszanq7xbwi3p28zsneear9938</sha1>
</revision>
</page>
<page>
<title>Template:Refbegin/TemplateData</title>
<ns>10</ns>
<id>40118192</id>
<revision>
<id>780008593</id>
<parentid>775613539</parentid>
<timestamp>2017-05-12T11:11:52Z</timestamp>
<contributor>
<username>TheDJ</username>
<id>244887</id>
</contributor>
<comment>update</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1243">
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;This template is used to start formatting for a reference list or bibliography. &quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Column width/Columns&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;First mode: typographic unit of measurement such as 'em', specifying the width for the reference list columns, e.g. '33em'; spaced '33 em' will not be recognized. Second mode (deprecated): integer number of fixed columns into which the reference list is to be rendered.&quot;,
&quot;example&quot;: &quot;30em&quot;,
&quot;default&quot;: &quot;1&quot;,
&quot;suggested&quot;: true
},
&quot;colwidth&quot;: {
&quot;label&quot;: &quot;colwidth&quot;,
&quot;description&quot;: &quot;Width of columns eg '25em' the default is '30em'.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false,
&quot;aliases&quot;: [
&quot;Column width&quot;
],
&quot;default&quot;: &quot;30em&quot;
},
&quot;indent&quot;: {
&quot;label&quot;: &quot;Hanging indentation&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;Set to \&quot;yes\&quot; to use hanging indent if an individual reference wraps over more than one line in the browser's display window.&quot;
},
&quot;indentsize&quot;: {
&quot;label&quot;: &quot;indentsize&quot;,
&quot;description&quot;: &quot;Amount of indent in em units. Default is '3.2'&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;required&quot;: false,
&quot;deprecated&quot;: true
}
},
&quot;format&quot;: &quot;inline&quot;
}
&lt;/templatedata&gt;</text>
<sha1>izx8iiywoi65svrtnr3df20qwukrppy</sha1>
</revision>
</page>
<page>
<title>Template:Refbegin/doc</title>
<ns>10</ns>
<id>10024088</id>
<revision>
<id>801356251</id>
<parentid>790497718</parentid>
<timestamp>2017-09-19T05:28:50Z</timestamp>
<contributor>
<username>Graham87</username>
<id>194203</id>
</contributor>
<comment>complete update of documentation, see [[Template talk:Refbegin#Fixing hanging indents]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="23876">{{documentation subpage}}
{{Ombox |type=notice |text= Columns are not supported by some older browsers, most notably Internet Explorer 9 and below and Opera 11.0 and below. See [[Template:Reflist#Browser support for columns|this page]] for more information.}}
'''{{tl|refbegin}}''' and its complementary closing template '''{{tl|refend}}''' are used to apply any of several optional styles or presentational choices for [[bibliography|bibliographies]] or reference lists—that is, lists of fully-specified references, sources, and/or works cited, sorted alphabetically by author or contributor) that appear in Wikipedia articles.
These bibliographies or reference lists frequently appear in dedicated sections within an article, variously titled &lt;code&gt;==References==&lt;/code&gt;, &lt;code&gt;==Works cited==&lt;/code&gt;, &lt;code&gt;==Bibliography==&lt;/code&gt;, &lt;code&gt;==Further reading==&lt;/code&gt;, &lt;code&gt;==Published works==&lt;/code&gt;, and so on.
Wikipedia [[WP:CITE|referencing or citation systems]] that use bibliography-style reference lists include: [[WP:CITESHORT|'shortened' footnotes]], [[WP:PAREN|parenthetical referencing]], and [[WP:GENREF|'general' referencing]]. The [[Wikipedia:Citing sources#Footnote system|'full' footnote]] and [[WP:ECITE|embedded citations]] referencing systems do not use those lists, although articles using these latter two systems may also contain &quot;Further reading&quot; or other sections containing bibliography-style listings, that {{tl|refbegin}} formatting could be applied to.
The formatting options provided by this template are:
{|class=&quot;wikitable&quot;
|+refbegin template options/parameters
!Option!!How to get it||Notes
|-
|'''default display'''||&lt;code&gt;&lt;nowiki&gt;{{refbegin}}&lt;/nowiki&gt;&lt;/code&gt;||no parameters needed, default fontsize is 90% of standard fontsize
|-
|'''display list in multiple columns'''||&lt;code&gt;&lt;nowiki&gt;{{refbegin|n}}&lt;/nowiki&gt;&lt;/code&gt;||where '''''n''''' determines the number of columns, or width of columns based on the browser's screen width
|-
|'''apply hanging indent'''||&lt;code&gt;&lt;nowiki&gt;{{refbegin|indent=yes}}&lt;/nowiki&gt;&lt;/code&gt;||will apply hanging indent if an individual reference wraps over more than one line in the browser's display window
|-
|}
Each use of {{tl|refbegin}}, with or without parameters, needs an accompanying {{tl|refend}} closing template to 'turn off' the formatting; refend does not need any parameters.
Font size reduction is applied by default. Either one, the other, or both of multi-columns and hanging indent may be applied as well (though see specifics and caveats on browser differences in relevant sections, below).
==Usage==
This template is used only for references—it should not be used to create lists of text which are smaller, in columns, or which have other style data associated with them.
With all (optional) parameters shown:
&lt;pre&gt;
==References==
{{refbegin |n |indent= }}
*list of bibliography/references entries..
...
{{refend}}
&lt;/pre&gt;
===Placement===
The {{tl|refbegin}} is placed immediately below the header of the bibliography/references section its formatting will be applied to. The closing {{tl|refend}} template is placed within the same section, at the end of the bibliography/references list content.
When used, each occurrence of {{tl|refbegin}} should always be paired with a corresponding closing {{tl|refend}} template:
&lt;pre&gt;
==References==
{{refbegin}}
*1st entry in the bibliography/references list..
*2nd entry in the bibliography/references list..
...
*last entry in the bibliography/references list..
{{refend}}
&lt;/pre&gt;
The formatting provided by {{tl|refbegin}} is &quot;turned on&quot; at the location where the template is placed, and is applied to ''all'' text after and below it, until it is &quot;turned off&quot; by a closing {{tl|refend}} template (or &lt;code&gt;&lt;nowiki&gt;&lt;/div&gt;&lt;/nowiki&gt;&lt;/code&gt; tag). Failing to provide a closing {{tl|refend}} may produce unwanted effects in other sections that may appear below the 'References', 'Bibliography' etc. section, such as 'External links' sections that are usually placed at or near the article's end.
===Option 1: Default behaviour===
The default usage (without parameters) applies a style that reduces the text size of the bibliographies/reference list entries. This can be useful to make a long bibliography/list of references display more compactly, and it also mimics the formatting style applied to [[WP:FN|footnotes]] by the {{tl|reflist}} template.
The {{tl|reflist}} formats footnotes—any text in the article body that is placed between {{tag|ref}} tags—that are auto-generated by the [[Wikipedia:Cite.php|cite.php]] extension, called by {{tl|reflist}}. In the case of articles using the [[WP:CITESHORT|'shortened' footnotes]] referencing system, these footnotes will typically contain an abbreviated citation such as &lt;code&gt;&lt;nowiki&gt;&lt;ref&gt;Smith 2002, p.123&lt;/ref&gt;&lt;/nowiki&gt;&lt;/code&gt; that corresponds with an entry in the bibliography/references list section (other text such as discursive notes may appear as well).
The font size should reduce to 90% for most browsers, but may appear to show at 100% for Internet Explorer and possibly other browsers. Reflist and Refbegin use each one CSS entry in [[MediaWiki:Common.css]] to set the font size:
&lt;pre&gt;
div.reflist,
div.refbegin {
font-size: 90%;
}
&lt;/pre&gt;
If the 'full' footnotes referencing system is used (i.e. there is no separate bibliography/references list, all cites/references are defined in {{tag|ref}} tags), then use {{tl|reflist}} alone:
&lt;pre&gt;
==References==
{{reflist}}
&lt;/pre&gt;
If there is a bibliography/references list but no footnoted citations (e.g. in general references or parenthetical referencing systems) then use {{tl|refbegin}} and {{tl|refend}} like so:
&lt;pre&gt;
==References==
{{refbegin}}
*general reference 1
*general reference 2
{{refend}}
&lt;/pre&gt;
If there are footnoted citations and a separate bibliography/references list (i.e., the [[WP:CITESHORT]] system), then place {{tl|reflist}} to generate the footnotes in one section (immediately above the bibliography/references list), and use {{tl|refbegin}} in the latter section:
&lt;pre&gt;
==Notes==
{{reflist}} &lt;!--this will auto-generate the numbered list of footnotes/cites --&gt;
==References==
{{refbegin}}
*bibliography entry / reference 1
*bibliography entry / reference 2
*etc
{{refend}}
&lt;/pre&gt;
===Option 2: Multiple columns===
If an integer ''n'' is supplied as the first parameter, the template will display the bibliography/references list in n columns. This may be useful for compact display for a lengthy list, and matches also the optional capability of {{tl|reflist}} to display output in multiple columns. Thus, &lt;nowiki&gt;{{refbegin|2}}&lt;/nowiki&gt; will display the list in two columns. If no integer parameter is specified, the default is a single column. Note, it will rarely be useful or practical to display bibliography/references list entries in more than two columns.
If a value with a unit is supplied as the first parameter, i.e. &lt;code&gt;30em&lt;/code&gt;, the template will display the bibliography/references list in columns with a minimum width of that value, allowing the browser to determine the optimal number of columns. Using &lt;nowiki&gt;{{refbegin|30em}}&lt;/nowiki&gt; for instance is useful for short citations.
{{pre2|&lt;nowiki&gt;
==References==
{{refbegin|2}}
*{{cite journal |author= Southworth, Jane |author2= Catherine Tucker |date= August 2001 |title= The Influence of Accessibility, Local Institutions, and Socioeconomic Factors on Forest Cover Change in the Mountains of Western Honduras |url= http://www.bioone.org/doi/pdf/10.1659/0276-4741(2001)021%5B0276:TIOALI%5D2.0.CO%3B2 |format= PDF reproduction, BioOne online |journal= Mountain Research and Development |location= Boulder, CO |publisher= International Mountain Society and United Nations University |volume= 21 |issue= 3 |pages= 276–283 |doi= 10.1659/0276-4741(2001)021[0276:TIOALI]2.0.CO;2
|issn= 0276-4741 |oclc= 107067006}}
*{{cite journal |author= Tucker, Catherine M. |author2= Darla K. Munroe |author3=Harini Nagendra |author4=Jane Southworth |date= June 2005 |title= Comparative Spatial Analyses of Forest Conservation and Change in Honduras and Guatemala |url= http://www.clas.ufl.edu/lueci/southworth/pubs-as-pdf/cs-3-1_10_jtuckeretal.pdf |format= PDF online open access article distributed under Creative Commons |journal= Conservation and Society |location= New Delhi and London |publisher= SAGE Publications |volume= 3 |issue= 1 |pages= 174–200 |issn= 0972-4923|oclc= 210806013}}
{{refend}}&lt;/nowiki&gt;}}
'''References'''
{{refbegin|2}}
*{{cite journal |author= Southworth, Jane |author2= Catherine Tucker |date = August 2001 |title= The Influence of Accessibility, Local Institutions, and Socioeconomic Factors on Forest Cover Change in the Mountains of Western Honduras |url= http://www.bioone.org/doi/pdf/10.1659/0276-4741(2001)021%5B0276:TIOALI%5D2.0.CO%3B2 |format= PDF reproduction, BioOne online |journal= Mountain Research and Development |location= Boulder, CO |publisher= International Mountain Society and United Nations University |volume= 21 |issue= 3 |pages= 276–283 |doi= 10.1659/0276-4741(2001)021[0276:TIOALI]2.0.CO;2
|issn= 0276-4741 |oclc= 107067006}}
*{{cite journal |author= Tucker, Catherine M. |author2= Darla K. Munroe |author3=Harini Nagendra |author4=Jane Southworth |date= June 2005 |title= Comparative Spatial Analyses of Forest Conservation and Change in Honduras and Guatemala |url= http://www.clas.ufl.edu/lueci/southworth/pubs-as-pdf/cs-3-1_10_jtuckeretal.pdf |format= PDF online open access article distributed under Creative Commons |journal= Conservation and Society |location= New Delhi and London |publisher= SAGE Publications |volume= 3 |issue= 1 |pages= 174–200 |issn= 0972-4923|oclc= 210806013}}
{{refend}}
{{pre2|&lt;nowiki&gt;
==References==
{{refbegin|30em}}
*{{cite journal |author= Southworth, Jane |author2= Catherine Tucker |date= August 2001|title= The Influence of Accessibility, Local Institutions, and Socioeconomic Factors on Forest Cover Change in the Mountains of Western Honduras |url= http://www.bioone.org/doi/pdf/10.1659/0276-4741(2001)021%5B0276:TIOALI%5D2.0.CO%3B2 |format= PDF reproduction, BioOne online |journal= Mountain Research and Development |location= Boulder, CO |publisher= International Mountain Society and United Nations University |volume= 21 |issue= 3 |pages= 276–283 |doi= 10.1659/0276-4741(2001)021[0276:TIOALI]2.0.CO;2
|issn= 0276-4741 |oclc= 107067006}}
*{{cite journal |author= Tucker, Catherine M. |author2= Darla K. Munroe |author3=Harini Nagendra |author4=Jane Southworth |date= June 2005 |title= Comparative Spatial Analyses of Forest Conservation and Change in Honduras and Guatemala |url= http://www.clas.ufl.edu/lueci/southworth/pubs-as-pdf/cs-3-1_10_jtuckeretal.pdf |format= PDF online open access article distributed under Creative Commons |journal= Conservation and Society |location= New Delhi and London |publisher= SAGE Publications |volume= 3 |issue= 1 |pages= 174–200 |issn= 0972-4923|oclc= 210806013}}
{{refend}}&lt;/nowiki&gt;}}
'''References'''
{{refbegin|30em}}
*{{cite journal |author= Southworth, Jane |author2= Catherine Tucker |date= August 2001 |title= The Influence of Accessibility, Local Institutions, and Socioeconomic Factors on Forest Cover Change in the Mountains of Western Honduras |url= http://www.bioone.org/doi/pdf/10.1659/0276-4741(2001)021%5B0276:TIOALI%5D2.0.CO%3B2 |format= PDF reproduction, BioOne online |journal= Mountain Research and Development |location= Boulder, CO |publisher= International Mountain Society and United Nations University |volume= 21 |issue= 3 |pages= 276–283 |doi= 10.1659/0276-4741(2001)021[0276:TIOALI]2.0.CO;2
|issn= 0276-4741 |oclc= 107067006}}
*{{cite journal |author= Tucker, Catherine M. |author2= Darla K. Munroe |author3=Harini Nagendra |author4=Jane Southworth |date= June 2005 |title= Comparative Spatial Analyses of Forest Conservation and Change in Honduras and Guatemala |url= http://www.clas.ufl.edu/lueci/southworth/pubs-as-pdf/cs-3-1_10_jtuckeretal.pdf |format= PDF online open access article distributed under Creative Commons |journal= Conservation and Society |location= New Delhi and London |publisher= SAGE Publications |volume= 3 |issue= 1 |pages= 174–200 |issn= 0972-4923|oclc= 210806013}}
{{refend}}
===Browser support===
{{CSS3 multiple column layout}}
Multiple columns are generated by using [[Cascading Style Sheets|CSS3]], which is still in development; thus only browsers that properly support the multi-column property will show multiple columns. See [[Template:Reflist#Browser support for columns|here]] for more information.
===Option 3: Hanging indentation===
A [[hanging indentation]] may be applied to bibliographies/reference lists by using the {{para|indent}} parameter. This option can be useful in long bibliographies/reference lists and in particular when individual entries in the list are long, i.e. they wrap over more than one line in the browser display window. Applying a hanging indent to the list makes it much easier to distinguish the keywords (i.e. normally the authors' names) in the bibliography and makes them stand out from preceding and succeeding lines of text. Hanging indents in bibliographies also form part of several widely used citation style implementations, such as APA, MLA, and Chicago.
To use, set &lt;code&gt;&lt;nowiki&gt;{{refbegin|indent=yes}}&lt;/nowiki&gt;&lt;/code&gt;.
'''Examples'''
'''''a)''' Using {{tl|refbegin}} with the hanging indent option ''|indent=yes'' applied:''
&lt;pre style=&quot;overflow:auto;&quot;&gt;
==References==
{{refbegin|indent=yes}}
* {{cite book |author= Dakin, Karen|year= 1994|chapter= El náhuatl en el yutoazteca sureño: algunas isoglosas gramaticales y fonológicas|title= Investigaciones lingüísticas en Mesoamérica |series= Estudios sobre Lenguas Americanas, no. 1|editor1=Carolyn MacKay |editor2=Verónica Vázquez |publisher= Universidad Nacional Autónoma de México, Instituto de Investigaciones Filológicas, Seminario de Lenguas Indígenas|location= México D.F.|pages= 3–86 |isbn= 968-36-4055-9 |oclc= 34716589 |language=es}}
* {{cite conference |author1=Flores Farfán |author2=José Antonio |year= 2002|title= The Use of Multimedia and the Arts in Language Revitalization, Maintenance, and Development: The Case of the Balsas Nahuas of Guerrero, Mexico |url= http://jan.ucc.nau.edu/~jar/ILAC/ILAC_24.pdf |format= [[Portable Document Format|PDF]] |conference= Proceedings of the Annual Conference on Stabilizing Indigenous Languages (7th, Toronto, Ontario, Canada, May 11–14, 2000) |booktitle= Indigenous Languages across the Community |editor1=Barbara Jane Burnaby |editor2=John Allan Reyhner |location= Flagstaff, AZ |publisher= Center for Excellence in Education, Northern Arizona University |pages= 225–236 |isbn= 0-9670554-2-3 |oclc= 95062129}}
* {{cite book |author= Rincón, Antonio del |year= 1885 |origyear= 1595 |title= Arte mexicana compuesta por el padre Antonio Del Rincón de la compañia de Jesus: Dirigido al illustrissimo y reverendissimo s. Don Diego Romano obispo de Tlaxcallan, y del consejo de su magestad, &amp;c. En Mexico en casa de Pedro, Balli. 1595 |url= http://storage.lib.uchicago.edu/pres/2005/pres2005-033.pdf |edition= Reprinted 1885 under the care of Dr. Antonio Peñafiel |format= [[Portable Document Format|PDF]] facsimile, University of Chicago Library digital collections|location= México D.F. |publisher= Oficina tip. de la Secretaría de fomento |oclc= 162761360 |language=es}}
* {{cite book |author= Voegelin, Charles F.|author2= Florence M. Voegelin |author3=Kenneth L. Hale |year= 1962 |title= Typological and Comparative Grammar of Uto-Aztecan I: Phonology |type= Supplement to International Journal of American linguistics, vol. 28, no. 1 |series= Indiana University publications in anthropology and linguistics, Memoir 17 |location= Baltimore MD |publisher= Waverly Press |oclc= 55576894}}
{{refend}}
&lt;/pre&gt;
'''References'''
{{refbegin|indent=yes}}
* {{cite book |author= Dakin, Karen|year= 1994|chapter= El náhuatl en el yutoazteca sureño: algunas isoglosas gramaticales y fonológicas|title= Investigaciones lingüísticas en Mesoamérica |series= Estudios sobre Lenguas Americanas, no. 1|editor1=Carolyn MacKay |editor2=Verónica Vázquez |publisher= Universidad Nacional Autónoma de México, Instituto de Investigaciones Filológicas, Seminario de Lenguas Indígenas|location= México D.F.|pages= 3–86 |isbn= 968-36-4055-9 |oclc= 34716589 |language=es}}
* {{cite conference |author1=Flores Farfán |author2=José Antonio |year= 2002|title= The Use of Multimedia and the Arts in Language Revitalization, Maintenance, and Development: The Case of the Balsas Nahuas of Guerrero, Mexico |url= http://jan.ucc.nau.edu/~jar/ILAC/ILAC_24.pdf |format= [[Portable Document Format|PDF]] |conference= Proceedings of the Annual Conference on Stabilizing Indigenous Languages (7th, Toronto, Ontario, Canada, May 11–14, 2000) |booktitle= Indigenous Languages across the Community |editor1=Barbara Jane Burnaby |editor2=John Allan Reyhner |location= Flagstaff, AZ |publisher= Center for Excellence in Education, Northern Arizona University |pages= 225–236 |isbn= 0-9670554-2-3 |oclc= 95062129}}
* {{cite book |author= Rincón, Antonio del |year= 1885 |origyear= 1595 |title= Arte mexicana compuesta por el padre Antonio Del Rincón de la compañia de Jesus: Dirigido al illustrissimo y reverendissimo s. Don Diego Romano obispo de Tlaxcallan, y del consejo de su magestad, &amp;c. En Mexico en casa de Pedro, Balli. 1595 |url= http://storage.lib.uchicago.edu/pres/2005/pres2005-033.pdf |edition= Reprinted 1885 under the care of Dr. Antonio Peñafiel |format= [[Portable Document Format|PDF]] facsimile, University of Chicago Library digital collections|location= México D.F. |publisher= Oficina tip. de la Secretaría de fomento |oclc= 162761360 |language=es}}
* {{cite book |author= Voegelin, Charles F.|author2= Florence M. Voegelin |author3=Kenneth L. Hale |year= 1962 |title= Typological and Comparative Grammar of Uto-Aztecan I: Phonology |type= Supplement to International Journal of American linguistics, vol. 28, no. 1 |series= Indiana University publications in anthropology and linguistics, Memoir 17 |location= Baltimore MD |publisher= Waverly Press |oclc= 55576894}}
{{refend}}
'''''b)''' Using indent in combination with multi-column (in this case, n = 2) display &lt;nowiki&gt;{{refbegin|2|indent=yes}}&lt;/nowiki&gt; (note that multi-column only works in some browsers):''
&lt;pre style=&quot;overflow:auto;&quot;&gt;
==References==
{{refbegin|2|indent=yes}}
* {{cite book |author= Dakin, Karen|year= 1994|chapter= El náhuatl en el yutoazteca sureño: algunas isoglosas gramaticales y fonológicas|title= Investigaciones lingüísticas en Mesoamérica |series= Estudios sobre Lenguas Americanas, no. 1|editor1=Carolyn MacKay |editor2=Verónica Vázquez |publisher= Universidad Nacional Autónoma de México, Instituto de Investigaciones Filológicas, Seminario de Lenguas Indígenas|location= México D.F.|pages= 3–86 |isbn= 968-36-4055-9 |oclc= 34716589 |language=es}}
* {{cite conference |author1=Flores Farfán |author2=José Antonio |year= 2002|title= The Use of Multimedia and the Arts in Language Revitalization, Maintenance, and Development: The Case of the Balsas Nahuas of Guerrero, Mexico |url= http://jan.ucc.nau.edu/~jar/ILAC/ILAC_24.pdf |format= [[Portable Document Format|PDF]] |conference= Proceedings of the Annual Conference on Stabilizing Indigenous Languages (7th, Toronto, Ontario, Canada, May 11–14, 2000) |booktitle= Indigenous Languages across the Community |editor1=Barbara Jane Burnaby |editor2=John Allan Reyhner |location= Flagstaff, AZ |publisher= Center for Excellence in Education, Northern Arizona University |pages= 225–236 |isbn= 0-9670554-2-3 |oclc= 95062129}}
* {{cite book |author= Rincón, Antonio del |year= 1885 |origyear= 1595 |title= Arte mexicana compuesta por el padre Antonio Del Rincón de la compañia de Jesus: Dirigido al illustrissimo y reverendissimo s. Don Diego Romano obispo de Tlaxcallan, y del consejo de su magestad, &amp;c. En Mexico en casa de Pedro, Balli. 1595 |url= http://storage.lib.uchicago.edu/pres/2005/pres2005-033.pdf |edition= Reprinted 1885 under the care of Dr. Antonio Peñafiel |format= [[Portable Document Format|PDF]] facsimile, University of Chicago Library digital collections|location= México D.F. |publisher= Oficina tip. de la Secretaría de fomento |oclc= 162761360 |language=es}}
* {{cite book |author= Voegelin, Charles F.|author2= Florence M. Voegelin |author3=Kenneth L. Hale |year= 1962 |title= Typological and Comparative Grammar of Uto-Aztecan I: Phonology |format= Supplement to International Journal of American linguistics, vol. 28, no. 1 |series= Indiana University publications in anthropology and linguistics, Memoir 17 |location= Baltimore MD |publisher= Waverly Press |oclc= 55576894}}
{{refend}}
&lt;/pre&gt;
'''References'''
{{refbegin|2|indent=yes}}
* {{cite book |author= Dakin, Karen|year= 1994|chapter= El náhuatl en el yutoazteca sureño: algunas isoglosas gramaticales y fonológicas|title= Investigaciones lingüísticas en Mesoamérica |series= Estudios sobre Lenguas Americanas, no. 1|editor1=Carolyn MacKay |editor2=Verónica Vázquez |publisher= Universidad Nacional Autónoma de México, Instituto de Investigaciones Filológicas, Seminario de Lenguas Indígenas|location= México D.F.|pages= 3–86 |isbn= 968-36-4055-9 |oclc= 34716589 |language=es}}
* {{cite conference |author1=Flores Farfán |author2=José Antonio |year= 2002|title= The Use of Multimedia and the Arts in Language Revitalization, Maintenance, and Development: The Case of the Balsas Nahuas of Guerrero, Mexico |url= http://jan.ucc.nau.edu/~jar/ILAC/ILAC_24.pdf |format= [[Portable Document Format|PDF]] |conference= Proceedings of the Annual Conference on Stabilizing Indigenous Languages (7th, Toronto, Ontario, Canada, May 11–14, 2000) |booktitle= Indigenous Languages across the Community |editor1=Barbara Jane Burnaby |editor2=John Allan Reyhner |location= Flagstaff, AZ |publisher= Center for Excellence in Education, Northern Arizona University |pages= 225–236 |isbn= 0-9670554-2-3 |oclc= 95062129}}
* {{cite book |author= Rincón, Antonio del |year= 1885 |origyear= 1595 |title= Arte mexicana compuesta por el padre Antonio Del Rincón de la compañia de Jesus: Dirigido al illustrissimo y reverendissimo s. Don Diego Romano obispo de Tlaxcallan, y del consejo de su magestad, &amp;c. En Mexico en casa de Pedro, Balli. 1595 |url= http://storage.lib.uchicago.edu/pres/2005/pres2005-033.pdf |edition= Reprinted 1885 under the care of Dr. Antonio Peñafiel |format= [[Portable Document Format|PDF]] facsimile, University of Chicago Library digital collections|location= México D.F. |publisher= Oficina tip. de la Secretaría de fomento |oclc= 162761360 |language=es}}
* {{cite book |author= Voegelin, Charles F.|author2= Florence M. Voegelin |author3=Kenneth L. Hale |year= 1962 |title= Typological and Comparative Grammar of Uto-Aztecan I: Phonology |type= Supplement to International Journal of American linguistics, vol. 28, no. 1 |series= Indiana University publications in anthropology and linguistics, Memoir 17 |location= Baltimore MD |publisher= Waverly Press |oclc= 55576894}}
{{refend}}
==Template data==
See [[Template:Refbegin/TemplateData]].
==See also==
*[[Wikipedia:Citing sources]] – Citation guideline
*[[Wikipedia:Footnotes]] – Reference guideline
*[[WP:CITET]] – Description of various templates to format individual citation references
*{{tl|reflist}} – Auto-generated listing of footnotes and inline citations&lt;includeonly&gt;
{{#ifeq:{{SUBPAGENAME}}|sandbox||
[[Category:Reference list templates]]
[[Category:Text-specific formatting and function templates|{{PAGENAME}}]]
{{#ifeq:{{FULLPAGENAME}}|Template:Refbegin|&lt;!-- Refbegin interwikis --&gt;
}}
{{#ifeq:{{FULLPAGENAME}}|Template:Refend|&lt;!-- Refend interwikis --&gt;
}}
}}&lt;/includeonly&gt;</text>
<sha1>a6pytnupkb2yymgmyye5n6ekblbei6x</sha1>
</revision>
</page>
<page>
<title>Template:Template doc</title>
<ns>10</ns>
<id>9944662</id>
<redirect title="Template:Documentation" />
<revision>
<id>769883182</id>
<parentid>616730812</parentid>
<timestamp>2017-03-12T04:47:48Z</timestamp>
<contributor>
<username>Godsy</username>
<id>23257138</id>
</contributor>
<comment>[[Template:This is a redirect]] has been deprecated, change to [[Template:Redirect category shell]].</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="196">#REDIRECT [[Template:Documentation]]
{{Redirect category shell|
{{R from merge}}
{{R convenience}}
}}
[[Category:Template documentation]]
[[Category:Wikipedia formatting and function templates]]</text>
<sha1>9c25il2qge56w7vgva7i3kd5e2ibvt4</sha1>
</revision>
</page>
<page>
<title>Template:Details</title>
<ns>10</ns>
<id>1988383</id>
<revision>
<id>808459688</id>
<parentid>807270674</parentid>
<timestamp>2017-11-03T00:14:53Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<comment>Per [[Wikipedia:Templates for discussion/Log/2017 October 26#Template:Details]], added {{being deleted}} ([[WP:XFDC|XFDcloser]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="279">&lt;noinclude&gt;{{Being deleted|2017 October 26|Template:Details|merge=Template:Further information}}&lt;/noinclude&gt;&lt;includeonly&gt;{{#invoke:details|details}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>89b2wzjbqtgsuqazur0w06xx7wao59n</sha1>
</revision>
</page>
<page>
<title>Template:Efn</title>
<ns>10</ns>
<id>34043836</id>
<revision>
<id>797740242</id>
<parentid>744219331</parentid>
<timestamp>2017-08-28T22:18:23Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>parameter aliases for cross-compatibility with other templates</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="602">&lt;includeonly&gt;{{#if:{{{name|}}}
|{{#tag:ref|{{{1|{{{reference|{{{content|{{{text|}}}}}}}}}}}}|name={{{name|}}}|group={{#switch: {{{group|}}}
| note
| upper-alpha
| upper-roman
| lower-alpha
| lower-greek
| lower-roman = {{{group|}}}
| #default = lower-alpha
}}
}}
|{{#tag:ref|{{{1|{{{reference|{{{content|{{{text|}}}}}}}}}}}}|group={{#switch: {{{group|}}}
| note
| upper-alpha
| upper-roman
| lower-alpha
| lower-greek
| lower-roman = {{{group|}}}
| #default = lower-alpha
}}
}}
}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>cy2hvj1zss95pdjzsgcbg4q4cq6tzl8</sha1>
</revision>
</page>
<page>
<title>Template:Notelist</title>
<ns>10</ns>
<id>34230427</id>
<revision>
<id>744219698</id>
<parentid>591018129</parentid>
<timestamp>2016-10-13T21:20:40Z</timestamp>
<contributor>
<username>Geni</username>
<id>55582</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Notelist: locking down everything used on the Hillary page ([Edit=Require template editor access] (indefinite) [Move=Require administrator access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="286">{{reflist|{{{1|{{{colwidth|}}}}}}|refs={{{refs|{{{notes|}}}}}}|group={{#switch: {{{group|}}}
| note
| upper-alpha
| upper-roman
| lower-alpha
| lower-greek
| lower-roman = {{{group|}}}
| #default = lower-alpha
}}}}&lt;noinclude&gt;
{{documentation}}&lt;/noinclude&gt;</text>
<sha1>sg0j66m0cnvsmzurho8oogz4n9in4cm</sha1>
</revision>
</page>
<page>
<title>Template:Phab</title>
<ns>10</ns>
<id>44511263</id>
<revision>
<id>815175817</id>
<parentid>689611950</parentid>
<timestamp>2017-12-13T06:19:58Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>Add option to match the output of [[Template:Bugzilla]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="243">{{#if:{{{art|}}}{{{article|}}}|[[Wikipedia:Phabricator|Phabricator]]''':'''&amp;nbsp;}}{{#ifeq:{{padleft:|1|{{{1|T}}}}}|T
|[[Phabricator:{{{1|}}}|{{{1|Phabricator}}}]]
|[[Phabricator:T{{{1}}}|T{{{1}}}]]
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>oyjtimgrjz3gwu4k9dqon0qn9ce91kw</sha1>
</revision>
</page>
<page>
<title>Template:See</title>
<ns>10</ns>
<id>35060800</id>
<redirect title="Template:Further" />
<revision>
<id>814506466</id>
<parentid>725635703</parentid>
<timestamp>2017-12-09T06:09:36Z</timestamp>
<contributor>
<username>AlexTheWhovian</username>
<id>22194871</id>
</contributor>
<comment>Changed redirect target from [[Template:Further information]] to [[Template:Further]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="30">#REDIRECT [[Template:Further]]</text>
<sha1>av4m7u5e2k4xmrwdrm0zo3bi5s6lwhj</sha1>
</revision>
</page>
<page>
<title>Template:Transwiki guide</title>
<ns>10</ns>
<id>32136548</id>
<revision>
<id>653570799</id>
<parentid>653570409</parentid>
<timestamp>2015-03-26T06:34:29Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>pass the &quot;small&quot; parameter through to [[Template:Ombox]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="615">{{ombox
|style=border:#38C400 1px solid;
|image=[[File:Edit-copy purple-wikit.svg|48px|alt=|link=]]
|text={{{text|This project or template has a [[Help:Transwiki guide|transwiki guide]] to help editors adapt it to a remote wiki when this cannot be done by simply copying the codes of one single template.&lt;br/&gt;See {{#if:{{{1|}}}|[[{{{1}}}]]|[[{{FULLPAGENAME}}/Transwiki guide]]}} for instructions.}}}
|small={{{small|}}}
}}&lt;includeonly&gt;[[Category:Transwiki guide|{{{2|{{PAGENAME}}}}}]]&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>mpbv8se30kygl09cgbcx8cylgd2gj3r</sha1>
</revision>
</page>
<page>
<title>Template:Wikipedia technical help</title>
<ns>10</ns>
<id>46626488</id>
<revision>
<id>819689801</id>
<parentid>818777131</parentid>
<timestamp>2018-01-10T19:26:23Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Wikipedia technical help]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirm...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="11279">&lt;noinclude&gt;{{Notice |style=margin-bottom:1.5em; |1=&lt;span style=&quot;font-size:large;color:purple;&quot;&gt;Please do not post your requests or questions on this page. If you have questions about using Wikipedia, please ask at the '''[[Wikipedia:Help desk|Help&amp;nbsp;desk]]''' or the '''[[Wikipedia:Teahouse|Teahouse]]'''. For questions about subjects and topics, please use the '''[[Wikipedia:Reference desk|Reference Desk]]'''. Volunteers at these locations will respond to your questions as soon as possible.&lt;/span&gt;}}&lt;/noinclude&gt;&lt;!--
--&gt;{{Navbox
| title = [[Help:Directory#Technical help|Wikipedia technical help]]
| listclass = hlist
| state = {{{state&lt;includeonly&gt;|{{{1|autocollapse}}}&lt;/includeonly&gt;}}}
| basestyle = text-align: center;
| name = Wikipedia technical help
| bodyclass=hlist
| above =
'''Get personal technical help at [[Wikipedia:Teahouse|the Teahouse]], [[Wikipedia:Help desk|Help desk]], [[Wikipedia:Village pump (technical)|Village pump (technical)]], [[Help:Introduction to talk pages/1|talk pages]] or [[Wikipedia:IRC|IRC]].'''
| group1 = [[Wikipedia:FAQ/Technical|General technical&lt;br/&gt;help]]
| list1 =
* [[Help:Editing|Editing]]
** [[Help:Edit toolbar|Edit toolbar]]
** [[Help:CharInsert|CharInsert]]
** [[Help:Edit conflict|Edit conflict]]
** [[Help:Reverting|Reverting]]
* [[Wikipedia:VisualEditor|VisualEditor]]
** [[Wikipedia:VisualEditor/User guide|User guide]]
* [[Wikipedia:How to create a page|Create a page]]
* [[Help:Page history|Page history]]
* [[Help:Page information|Page information]]
* [[Wikipedia:Page name|Page name]]
** [[Help:Page name|Introduction]]
* [[Wikipedia:Browser notes|Browser notes]]
** [[Wikipedia:Keyboard shortcuts|Keyboard shortcuts]]
** [[Wikipedia:Troubleshooting|Troubleshooting]]
** [[Wikipedia:Bypass your cache|Bypass cache]]
* [[Help:Mobile access|Mobile access]]
* [[Help:Multilingual support|Multilingual support]]
* [[Help:Special characters|Special Characters]]
** [[Help:Entering special characters|Entering]]
* [[Help:Printing|Printing]]
* [[Wikipedia:User access levels|User access levels]]
* [[Wikipedia:Software notices|Software notices]]
** [[Wikipedia:Editnotice|Editnotice]]
* [[Wikipedia:IRC|IRC]]
** [[Wikipedia:IRC/Tutorial|Tutorial]]
| group2 = [[Special:SpecialPages|Special page]] related
| list2 =
* [[Help:Special page|Special page help]]
* [[Help:Searching|Searching]]
** [[Help:Advanced search|Advanced search]]
** [[Help:Linksearch|Linksearch]]
* [[Help:Logging in|Logging in]]
** [[Help:Reset password|Reset passwords]]
* [[Wikipedia:Notifications|Notifications/Echo]]
** [[Wikipedia:Notifications/FAQ|FAQ]]
* [[Wikipedia:Moving a page|Moving a page]]
** [[Wikipedia:Administrators' guide/Fixing cut-and-paste moves|Fixing cut-and-paste moves]]
* [[Help:Watchlist|Watching pages]]
* [[Help:User contributions|User contributions]]
* [[Wikipedia:Emailing users|Emailing users]]
* [[Wikipedia:Random|Random pages]]
* [[Help:Log|Logs]]
* [[Help:What links here|What links here]]
* [[Help:Related changes|Related changes]]
* [[Help:Recent changes|Recent changes]]
* [[Wikipedia:Pending changes|Pending changes]]
* [[Wikipedia:Page Curation|Page Curation]]
* [[Help:Import|Page import]]
* [[Wikipedia:Edit filter|Edit filter]]
* [[Wikipedia:Tags|Tags]]
| group3 = [[Wikitext]]
| list3 =
* [[Help:Wikitext|Wikitext main page]]
** [[Help:Cheatsheet|Cheatsheet]]
* [[Help:Using colours|Colours use]]
* [[Help:Columns|Column]]s
* [[Wikipedia:Line-break handling|Line-break handling]]
* [[Help:List|Lists]]
* [[Help:Magic words|Magic words]]
** [[Help:Magic words for beginners|For beginners]]
** [[Help:Conditional expressions|Conditional expressions]]
** [[Help:Switch parser function|Switch parser function]]
** [[Help:Time function|Time function]]
* [[Help:Redirect|Redirects]]
* [[Help:Section|Sections and TOCs]]
* [[Help:Table|Tables]]
** [[Help:Introduction to tables with Wiki Markup/1|Introduction]]
** [[Help:Basic table markup|Basics]]
** [[Help:Conditional tables|Conditional tables]]
** [[Help:Sorting|Sorting]]
** [[Help:Collapsing|Collapsing]]
** [[Wikipedia:Advanced table formatting|Advanced table formatting]]
| group4 = [[Hyperlink|Links]] and [[Data comparison|diffs]]
| list4 =
* [[Help:URL|URLs]]
* [[Help:Link|Links]]
* [[Help:Permanent link|Permanent link]]
* [[Help:Interwikimedia links|Interwikimedia links]]
* [[Help:Interlanguage links|Interlanguage links]]
* [[Help:Link color|Link color]]
* [[Help:Pipe trick|Pipe trick]]
* [[Help:Colon trick|Colon trick]]
* [[Help:Magic links|Magic links]]
* [[Help:Diff|Diffs]]
** [[Wikipedia:Simplest diff guide|Simplest diff guide]]
** [[Wikipedia:Simple diff and link guide|Simple diff and link guide]]
** [[Wikipedia:Complete diff and link guide|Complete diff and link guide]]
| group5 = Media files: images,&lt;br/&gt;videos and sounds
| list5 =
* [[Wikipedia:Media help|Media help]]
* [[Help:Options to hide an image|Options to hide an image]]
* [[Wikipedia:Uploading images|Uploading images]]
** [[Help:Introduction to images with Wiki Markup/1|Introduction]]
* [[Help:Files|Files]]
** [[Wikipedia:Creation and usage of media files|Creation and usage]]
** [[Wikipedia:Moving files to Commons|Moving files to Commons]]
* [[Help:Visual file markup|Visual file markup]]
* [[Wikipedia:Images|Images]]
** [[Wikipedia:Preparing images for upload|Preparing images for upload]]
** [[Wikipedia:Picture tutorial|Picture tutorial]]
** [[Wikipedia:Extended image syntax|Extended image syntax]]
* [[Help:Gallery tag|Gallery tag]]
* [[Wikipedia:Graphics tutorials|Graphics tutorials]]
** [[Wikipedia:Basic bitmap image editing|Basic bitmap image editing]]
** [[Wikipedia:How to improve image quality|How to improve image quality]]
* [[Wikipedia:Graphics Lab/Resources|Graphics Lab resources]]
* [[Help:Sound file markup|Sound file markup]]
* [[Wikipedia:SVG help|SVG help]]
| group6 = Other graphics
| list6 =
* [[Help:Family trees|Family trees]]
* [[Wikipedia:Graphs and charts|Graphs and charts]]
** [[Wikipedia:How to create charts for Wikipedia articles|How to create]]
** [[Wikipedia:To scale charts|To scale charts]]
** [[Help:Barchart|Barcharts]]
* [[Help:Displaying a formula|Math formula]]
** [[Wikipedia:Mathematical symbols|Math symbols]]
** [[Wikipedia:Rendering math|Rendering math]]
** [[Wikipedia:LaTeX symbols|LaTeX symbols]]
* [[Help:Score|Musical scores]]
** [[Help:Musical symbols|Musical symbols]]
* [[Wikipedia:Timeline|Timeline]]
** [[Help:EasyTimeline syntax|EasyTimeline syntax]]
* [[Help:WikiHiero syntax|WikiHiero syntax]]
| group7 = [[Help:A quick guide to templates|Templates]]&lt;br /&gt;and [[Lua (programming language)|Lua]] modules
| list7 =
* [[Help:Template|Templates]]
* [[Wikipedia:Template messages|Template messages]]
* [[Wikipedia:Citation templates|Citation templates]]
* [[Wikipedia:Transclusion|Transclusion]]
** [[Help:Labeled section transclusion|Labeled section]]
* [[Help:Substitution|Substitution]]
* [[Wikipedia:Advanced template coding|Advanced template coding]]
* [[Wikipedia:Template limits|Template limits]]
* [[Wikipedia:Template sandbox and test cases|Template sandbox and test cases]]
* [[Wikipedia:Template documentation|Template documentation]]
* [[Wikipedia:Purge|Purge]]
** [[Help:Job queue|Job queue]]
* [[Help:Lua|Lua help]]
* [[Wikipedia:Lua|Lua project]]
** [[Wikipedia:Lua/To do|To do]]
** [[Wikipedia:Lua/Resources|Resources]]
* [[Wikipedia:Guide to Scribbling|Guide to Scribbling]]
| group8 = [[Wikipedia:Administration#Data structure and development|Data structure ]]
| list8 =
*[[Wikipedia:Namespace|Namespaces]]
* [[Wikipedia:What is an article?|Main/Article]]
* [[Help:Talk pages|Talk namespaces]]
** [[Help:Archiving a talk page|Archiving]]
* [[Wikipedia:User pages|User]]
** [[Wikipedia:User page design center|User page design]]
* [[Wikipedia:Project namespace|Project/Wikipedia]]
* [[Help:Files|File]]
** [[Help:File description page|File description page]]
* [[Help:MediaWiki namespace|MediaWiki]]
** [[Wikipedia:Bug reports and feature requests|Bug reports and feature requests]]
** [[Help:System message|System message]]
* [[Wikipedia:Template namespace|Template]]
* [[Wikipedia:Help namespace|Help]]
* [[Help:Category|Category]]
* [[Wikipedia:Portal|Portal]]
* [[Wikipedia:Books|Book]]
* [[Wikipedia:Drafts|Draft]]
* [[Wikipedia:Course pages|Education Program]]
* [[mw:Extension:TimedMediaHandler|TimedText]]
* [[Wikipedia:Lua|Module/Lua]]
* [[Wikipedia:Flow|Topic/Flow]]
* [[Help:Special page|Special]]
* [[Help:Files|Media]]
| group9 = [[HTML]] and [[Cascading Style Sheets|CSS]]
| list9 =
* [[Help:HTML in wikitext|HTML in wikitext]]
* [[Help:Markup validation|Markup validation]]
* [[Wikipedia:Span tags|Span tags]]
* [[Help:Cascading Style Sheets|Cascading Style Sheets]]
* [[Wikipedia:Catalogue of CSS classes|Catalogue of CSS classes]]
* [[Help:Useful styles|Useful styles]]
* [[Wikipedia:WikiProject Microformats/classes|Classes used in microformats]]
* [[Wikipedia:Classes in Ambox|Ambox classes]]
* [[Wikipedia:Common.js and common.css|Common.js and common.css]]
* [[Help:User CSS for a monospaced coding font|User CSS for monospaced coding font]]
| group10 = [[Wikipedia:Customisation|Customisation]] and tools
| list10 =
* [[Help:Preferences|Preferences]]
* [[Wikipedia:Skin|Skins]]
* [[Wikipedia:Customizing watchlists|Customizing watchlists]]
** [[Help:Hide Pages in Watchlist|Hide pages]]
* [[Wikipedia:Gadget|Gadgets]]
* [[mw:Beta Features|Beta Features]]
* [[Wikipedia:User scripts|User scripts]]
** [[Wikipedia:User scripts/Guide|Guide]]
** [[Wikipedia:User scripts/Techniques|Techniques]]
* [[Wikipedia:Scripts|IRC Scripts]]
* [[Help:User style|User styles]]
* [[Wikipedia:Tools|Tools]]
** [[Wikipedia:Tools/Navigation shortcuts|Navigation shortcuts]]
** [[Wikipedia:Tools/Browser tools|Browser tools]]
** [[Wikipedia:Tools/Alternative browsing|Alternative browsing]]
** [[Wikipedia:Tools/Editing tools|Editing tools]]
** [[Wikipedia:Tools/Optimum tool set|Optimum tool set]]
* [[Wikipedia:Cleaning up vandalism/Tools|Cleaning up vandalism tools]]
* [[Help:Citation tools|Citation tools]]
* [[Wikipedia:Wikimedia Cloud Services|Wikimedia Cloud Services]]
| group11 = Automating editing
| list11 =
* [[Wikipedia:Bots|Bots]]
** [[Wikipedia:Creating a bot|Creating]]
* [[Wikipedia:Twinkle|Twinkle]]
* [[Wikipedia:HotCat|HotCat]]
* [[Wikipedia:WPCleaner|WPCleaner]]
* [[Wikipedia:igloo|igloo]]
* [[Wikipedia:AutoWikiBrowser|AutoWikiBrowser]]
* [[Wikipedia:Tools/Navigation popups|Navigation popups]]
* [[Wikipedia:STiki|STiki]]
* [[Wikipedia:WikiProject Articles for creation/Helper script|AfC helper script]]
* [[Wikipedia:Huggle|Huggle]]
| below =
* '''See also: [[:Category:Wikipedia information pages]]'''
* '''[[:Category:Wikipedia how-to]]'''&lt;br/&gt;Further navigation at: [[Template:Wikipedia help pages|Help pages]]
** [[Template:Administrators' guide|Administrators]]
* [[Template:Wikipedia template messages|Templates]]
* [[Template:Wikipedia referencing|Referencing]]
** [[Template:Citation metadata navbox|Citation metadata]]
* [[Wikipedia:WikiProject Accessibility/Navigation menu|Accessibility]]
* [[Template:Botnav|Bots]]
* [[Wikipedia:User scripts/Navbox|User scripts]]
* [[Template:Wikipedia accounts|Accounts]]
}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES TO THE /doc SUBPAGE, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>len208mkl15wlr6btgxlxq7ifi6shpn</sha1>
</revision>
</page>
<page>
<title>Template:Wikipedia template messages</title>
<ns>10</ns>
<id>19512032</id>
<revision>
<id>780088766</id>
<parentid>775875691</parentid>
<timestamp>2017-05-12T22:01:36Z</timestamp>
<contributor>
<username>Mrjulesd</username>
<id>17505739</id>
</contributor>
<comment>Template:Speedy deletion notices</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5243">{{Navbox
| name = Wikipedia template messages
| state = {{{state&lt;includeonly&gt;|{{{1|autocollapse}}}&lt;/includeonly&gt;}}}
| bodyclass = hlist
| title = [[Wikipedia:Template messages|Template messages]]
| basestyle = text-align: center;
| group1 = [[Wikipedia:What is an article?|Main namespace]]
| list1 =
* [[Wikipedia:Template messages/General|General]]
* [[Wikipedia:Template messages/Cleanup|Cleanup]]
* [[Wikipedia:Template messages/Disputes|Disputes]]
* [[Wikipedia:Hatnote|Hatnotes]]
* [[Wikipedia:List of infoboxes|Infoboxes]]
* [[Wikipedia:Template messages/Links|Links]]
** [[:Category:External link templates|External link templates]]
** [[Wikipedia:Inline templates linking country articles|Linking country articles]]
* [[Wikipedia:Template messages/Lists|Lists]]
* [[Wikipedia:Template messages/Main page and alternatives|Main page]]
* [[Wikipedia:Template messages/Section|Section]]
* [[Wikipedia:Template messages/Sources of articles|Sources of articles]]
* [[Wikipedia:Template messages/Standard boxes|Standard boxes]]
* [[Wikipedia:WikiProject Stub sorting/Stub types|Stub types]]
* [[Wikipedia:Template messages/Translation|Translation]]
| group2 = [[Wikipedia:Namespace|Other namespaces]]
| list2 =
* [[Wikipedia:Template messages/Compact tables of contents|Compact TOC]]
* [[Wikipedia:Template messages/Category namespace|Category]]
* [[Wikipedia:Template messages/File namespace|File]]
* [[Wikipedia:Template messages/Talk namespace|Talk]]
* [[Wikipedia:Template messages/Template namespace|Template]]
* [[Wikipedia:Template messages/User namespace|User]]
** [[Wikipedia:Userboxes|Userboxes]]
* [[Wikipedia:Template messages/User talk namespace|User talk]]
* [[Wikipedia:Template messages/Wikipedia namespace|Wikipedia]]
** [[Wikipedia:Template messages/WikiProject banners|WikiProject banners]]
| group3 = All namespaces
| list3 =
* [[Wikipedia:Template messages/Deletion|Deletion]]
* [[Wikipedia:Template messages/Format|Formatting]]
* [[Wikipedia:Template messages/Maintenance|Maintenance]]
* [[Wikipedia:Template messages/Merging|Merging]]
* [[Wikipedia:Template messages/Moving|Moving]]
* [[Wikipedia:Navigation template|Navigation]]
* [[Wikipedia:Template messages/Redirect pages|Redirect pages]]
** [[:Template:R template index|Functional index]]
* [[Wikipedia:Template messages/Splitting|Splitting]]
* [[Wikipedia:Template messages/Sister projects|Wikimedia sister projects]]
| group4 = Navboxes&lt;br/&gt;with templates
| list4 =
* [[Template:Warchivenav|Archive]]
* [[Template:Afd see also documentation|Articles for deletion]]
* [[Template:Birth, death and age templates|Birth, death and age]]
* [[Template:Button templates|Button]]
* [[Template:Other category-header templates|Category header]]
* [[Template:Citation and verifiability article maintenance templates|Citation and verifiability]]
* [[Template:Citation Style 1|Citation Style 1]]
* [[Template:DRV see also documentation|Deletion review]]
* [[Template:Editnotice templates|Editnotice]]
* [[Template:Hatnote templates|Hatnotes]]
* [[Template:Help desk templates navbox|Help desk]]
* [[Template:Inline cleanup tags|Inline cleanup]]
* [[Template:Introduction cleanup maintenance templates|Introduction cleanup]]
* [[Template:IPA templates|IPA]]
* [[Template:Math templates|Math]]
* [[Template:Notice and warning templates|Notice and warnings]]
* [[Template:Organization infoboxes|Organization infoboxes]]
* [[Template:Pam see also documentation|Proposed article mergers]]
* [[Template:Protection templates|Protection]]
* [[Template:Quotation templates|Quotation]]
* [[Template:R template index|Redirects]]
* [[Template:Search templates|Search]]
* [[Template:Semantic markup templates|Semantics]]
* [[Template:Speedy deletion navbox|Speedy deletion]]
** [[Template:Speedy deletion notices|Notices]]
* [[Template:String-handling templates|String-handling]]
* [[Template:Sup and sub-related templates|Sup and sub-related]]
* [[Template:Top icon templates|Top icon]]
* [[Template:Transwiki maintenance|Transwiki maintenance]]
* [[Template:Unicode templates|Unicode]]
* [[Template:User Talk Pages|User Talk Pages]]
* [[Template:User noticeboard notices|User noticeboard notices]]
* [[Template:WP:UBS|Userboxes]]
** [[Template:User rights templates|User rights]]
* [[Template:Userspace linking templates|Userspace linking]]
* [[Template:Userspace Disclaimers|Userspace Disclaimers]]
* [[Template:Wikibreak templates|Wikibreak]]
* [[Template:WikiLove see also|WikiLove]]
| group5 = Related topics
| list5 =
* [[Wikipedia:Template documentation|Template documentation]]
* [[Wikipedia:Template messages/Examples|Examples of templates]]
* [[Help:Maintenance template removal|Maintenance template removal]]
* [[Wikipedia:Requested templates|Requested templates]]
* [[Wikipedia:WikiProject Templates|WikiProject Templates]]
* [[Help:Template|Template help]]
* [[Wikipedia:Template namespace|Template namespace]]
| group6 = Search
| list6 =
&lt;div class=&quot;inputbox-hidecheckboxes&quot;&gt;
&lt;inputbox&gt;
id=style-wide-searchbox
type=fulltext
width = 25
namespaces=Template**
searchbuttonlabel=Search templates
break=no
placeholder= e.g. Infoboxes
&lt;/inputbox&gt;
&lt;/div&gt;
| below =* {{icon|CAT}} '''[[:Category:Wikipedia templates|Category]]'''
}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>izu3ft21zj3tl98jicnbnyg0hhaepvg</sha1>
</revision>
</page>
<page>
<title>Help:Footnotes</title>
<ns>12</ns>
<id>4762869</id>
<revision>
<id>823855864</id>
<parentid>823855716</parentid>
<timestamp>2018-02-03T21:22:52Z</timestamp>
<contributor>
<username>SA 13 Bro</username>
<id>22295782</id>
</contributor>
<comment>rvv</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="30274">{{For|the official guideline on citing sources|Wikipedia:Citing sources}}
{{For|help with citation templates|Help:Citation Style 1}}
{{Redirect|WP:FN|the fringe theories noticeboard|Wikipedia:Fringe theories/Noticeboard}}
{{Wikipedia how to|H:FOOT|WP:FOOTNOTES|WP:FN}}
This page explains how to create the '''Footnotes''' section for Wikipedia articles. In this context, the word &quot;Footnotes&quot; refers to the Wikipedia-specific manner of documenting an article's sources and providing tangential information, and should not be confused with the general concept of [[Note (typography)|footnotes]]. This how-to does not cover the formatting of citations within the Footnotes section, which is reviewed in [[Wikipedia:Citing sources|Citing sources]].
Footnotes are used most commonly to provide:
* [[Wikipedia:Citing sources|references (bibliographic citations) to reliable sources]],
* explanatory information or
* source information for tables and other elements.
The use of Footnotes is only one of several options for providing source information in the article. Other systems of inline citation, including {{sfnote}} and {{paren}}, may be used at the editor's discretion in accordance with the guideline on [[WP:CITEVAR|Variation in citation methods]].
Only certain types of material on the English Wikipedia are required to have an inline citation. There is [[Wikipedia:Inline citation#Citation density|no requirement to provide a citation for every sentence]], because multiple sentences may be supported by the same footnote. For advice on which material should be cited, see the guidelines on [[WP:MINREF|When you must use inline citations]], the [[Wikipedia:Good article criteria|Good article criteria]] and [[Wikipedia:when to cite|When to cite]]. For advice on how to organize and format bibliographic citations, see the guideline on [[Wikipedia:Citing sources|Citing sources]] and examples of [[Wikipedia:Citation templates#Examples|Citation templates]].
Footnotes are created using the {{cite.php}} software extension. This extension adds the HTML-like elements {{tag|ref}}, {{tag|references|s}} and {{tag|references}}. The elements are also used in a number of templates; for example, it is becoming more common to use {{tl|reflist}} rather than {{tag|references|s}} as it can style the reference list.
==Overview==
{{VE documentation|style=width: 25%; font-size: 87%; float:right}}&lt;!--This is because the visual editor is even more limited than the standard Wikitext editor--&gt;
The Footnotes system shows two elements on the page:
* A '''Footnote marker''' is displayed in the article's content as a bracketed, superscripted number, letter, or word. Examples shown respectively are: {{dummy ref}}{{dummy ref|a}}{{dummy ref|Note 1}}. This footnote label is linked to the full footnote. Clicking on the footnote marker jumps the page down to the footnote and highlights the citation. Hovering over a footnote marker will, depending on the user's settings, show a pop-up box containing the footnote.
* A '''Footnote''' displays the full citation for the source. Together the footnotes are displayed in an ordered list wherever the reference list markup {{tl|reflist}} is placed. Each entry begins with the footnote label in plain text. The entire reference list is formatted in a slightly smaller font.
:Each successive footnote label is automatically incremented. Thus the first footnote marker would be {{dummy ref}}, the second would be {{dummy ref|2}} and so on. Custom labels are also incremented: {{dummy ref|a}}{{dummy ref|b}}{{dummy ref|c}}, {{dummy ref|Note 1}} {{dummy ref|Note 2}} {{dummy ref|Note 3}}.
:For a single use footnote, the label is followed by a caret (^) that is a backlink to the matching footnote marker. For example:
{{dummy footnote|margin=5em}}
:If a named footnote is used in the text multiple times, then the footnote has multiple backlinks shown as letters:
{{dummy footnote|2|a b c|margin=5em}}
:Clicking on the backlink or pressing backspace {{keypress|←}} returns to the footnote marker.
===Footnotes in action===
The superscript numeral &quot;1&quot; in square brackets at the end of this sentence is an example of a footnote marker.&lt;ref&gt;This is a footnote that contains a citation or note.&lt;/ref&gt;
{{reflist}}
{{anchor|Footnote markers: the basics}}
==Footnotes: the basics==
To create the footnote marker, determine the point in the page content where the marker is desired and enter the markup with the citation or note inside the {{tag|ref}} tags. For example:
{{markup
|&lt;nowiki&gt;This is page content.&lt;ref&gt;''LibreOffice For Starters'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt;
{{reflist}}&lt;/nowiki&gt;
|This is page content.&lt;ref&gt;''LibreOffice For Starters'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt;
{{reflist}}
}}
:The {{tl|reflist}} template will be explained in the next section.
The content inside the {{tag|ref}} will show in the reference list. The ref tags can be added anywhere a citation or note is needed. There must be content inside the tags, else an error will show.
{{anchor|Where_to_place_ref_tags}} Ref tags should follow any punctuation (usually a period), not precede it; see [[WP:REFPUNC]]. There should be no space between the punctuation and the tag:
{{markup
|&lt;nowiki&gt;...text.&lt;ref&gt;Content of the reference&lt;/ref&gt;
{{reflist}}&lt;/nowiki&gt;
|...text.&lt;ref&gt;Content of the reference&lt;/ref&gt; &amp;nbsp; &amp;nbsp; {{xt|Right}}
{{reflist}}
|&lt;nowiki&gt;...text&lt;ref&gt;Content of the reference&lt;/ref&gt;.
{{reflist}}&lt;/nowiki&gt;
|...text&lt;ref&gt;Content of the reference&lt;/ref&gt;. &amp;nbsp; &amp;nbsp; {{!xt|Wrong (tag before punctuation)}}
{{reflist}}
|&lt;nowiki&gt;...text. &lt;ref&gt;Content of the reference&lt;/ref&gt;
{{reflist}}&lt;/nowiki&gt;
|...text. &lt;ref&gt;Content of the reference&lt;/ref&gt; &amp;nbsp; &amp;nbsp; {{!xt|Wrong (space before tag)}}
{{reflist}}
}}
The content of the ref tags can be formatted using most wikimarkup or HTML markup, although techniques such as the [[Help:Pipe trick|pipe trick]] and [[Help:Substitution|template substitution]] will not work in footnotes. For example:
{{markup
|&lt;nowiki&gt;This is page content.&lt;ref&gt;''LibreOffice For Starters'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt;
{{reflist}}&lt;/nowiki&gt;
|This is page content.&lt;ref&gt;''LibreOffice For Starters'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt;
{{reflist}}
}}
The ref tag content may also contain an internal or external link:
{{markup
|&lt;nowiki&gt;This is page content.&lt;ref&gt;''[http://www.example.org LibreOffice For Starters]'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt;
{{reflist}}&lt;/nowiki&gt;
|This is page content.&lt;ref&gt;''[http://www.example.org LibreOffice For Starters]'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt;
{{reflist}}
}}
{{MediaWiki URL rules}}
==Reference lists: the basics==
Once any number of footnotes have been inserted into the content, the reference list must be generated. For the basic reference list, add {{tl|reflist}} wherever the list is desired. Once the page is published and viewed, the footnotes will be automatically generated and numbered and the reference list will be generated. The main reference list is placed in a separate section, usually titled &quot;References&quot;, &quot;Notes&quot; or the like.
{{markup
|&lt;nowiki&gt;This is page content.&lt;ref&gt;''LibreOffice For Starters'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt;
==References==
{{reflist}}&lt;/nowiki&gt;
|This is page content.&lt;ref&gt;''LibreOffice For Starters'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt;
{{fake heading|sub=2|References}}
{{reflist}}
}}
'''Notes'''
{{shortcut|HELP:MULTIREF}}
* In some cases, a page has more than one reference list. Until 2014, multiple uses of {{tl|reflist}} on the same page required use of a {{para|close}} parameter; that bug has been fixed and the{{para|close}} parameter may safely be removed.
*When editing, {{tag|references|s}} may be seen instead of {{tl|reflist}}. This is valid, but {{tag|references|s}} does not offer the advanced features of {{tl|reflist}}.
{{anchor|Naming a ref tag so it can be used more than once|Footnote markers: using a source more than once}}
==Footnotes: using a source more than once==
{{Shortcut|WP:REFNAME|WP:NAMEDREFS}}
{{Anchor|Reference name (naming a ref tag so it can be used more than once)}}
{{See also|Wikipedia:Citing sources#Citing multiple pages of the same source}}
You can cite the same source more than once on a page by using named footnotes. The syntax to define a named footnote is:
:{{tag|ref|params=name=&lt;var&gt;&quot;name&quot;&lt;/var&gt;|content=&lt;var&gt;content&lt;/var&gt;}}
To invoke the named footnote:
:{{tag|ref|s|params=name=&lt;var&gt;&quot;name&quot;&lt;/var&gt;}}
{{refname rules}}
{{markup
|&lt;nowiki&gt;This is page content.&lt;ref name=manchester2002&gt;''LibreOffice for Starters'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt; This is more content.&lt;ref name=manchester2002 /&gt;
{{reflist}}&lt;/nowiki&gt;
|This is page content.&lt;ref name=manchester2002&gt;''LibreOffice for Starters'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt; This is more content.&lt;ref name=manchester2002 /&gt;
{{reflist}}
}}
The actual name used can be almost anything, but it is recommended that it have a connection to the citation or note. A common practice is to use the author-year or publisher-year for the reference name. This helps editors remember the name, by associating it with the information that is visible to the reader.
Note that the footnote labels are incremented in the order they are used, and that they use the same label when reused, thus the labels can seem out of order:
{{markup
|&lt;nowiki&gt;This is starter content.&lt;ref name=manchester2002&gt;''LibreOffice for Starters'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt; This is expert content.&lt;ref name=lexington2004&gt;''OpenOffice for Experts'', Lexington, 2004, p. 18&lt;/ref&gt; And more starter content.&lt;ref name=manchester2002 /&gt; And more expert content.&lt;ref name=lexington2004 /&gt;
{{reflist}}&lt;/nowiki&gt;
|This is starter content.&lt;ref name=manchester2002&gt;''LibreOffice for Starters'', First Edition, Flexible Minds, Manchester, 2002, p. 18&lt;/ref&gt; This is expert content.&lt;ref name=lexington2004&gt;''OpenOffice for Experts'', Lexington, 2004, p. 18&lt;/ref&gt; And more starter content.&lt;ref name=manchester2002 /&gt; And more expert content.&lt;ref name=lexington2004 /&gt;
{{reflist}}
}}
When using both names and [[#Footnotes:_groups|groups]], the syntax is:
:{{tag|ref|params=name=&lt;var&gt;name&lt;/var&gt; group=&lt;var&gt;groupname&lt;/var&gt;|content=Content}}
Care should be taken when deleting references to avoid creating a cite error. See [[Wikipedia:Avoiding common mistakes#Deleting...|Avoiding common mistakes]]
==Reference lists: columns==
{{shortcut|H:REFCOLS}}
{{hatnote|Columns are not supported by Internet Explorer 9 and below; see {{tl|reflist}} for technical details}}
When using {{tl|reflist}}, the list can be split into columns.
:{{tlx|reflist|&lt;var&gt;xx&lt;/var&gt;em}} where &lt;var&gt;xx&lt;/var&gt; is the column width in [[em (typography)|em]].
By setting the width in em, the number of columns will automatically be adjusted to the width of the display.
The [[Template:Reflist#Columns|set columns feature]] is now [[deprecated]] in favor of the option described above, which is better suited to flexible formatting for a variety of display screen sizes, ranging from mobile phones and tablets to wide-screen &quot;cinema&quot; displays. Forcing a fixed number of columns has been disabled in mobile view.
The number of columns to use is up to the editor, but some major practices include:
* {{tlx|Reflist}} - 1 column (default): Where there are only a few {{fnote}}; see {{oldid|Silver State Arena|530211388#References|Silver State Arena (23:05, 28 December 2012)}}
* {{tlx|Reflist|30em}}: Where there are many footnotes plus a page-width Bibliography subsection: see {{oldid|Ebola virus disease|561190497#References|Ebola virus disease (06:28, 23 June 2013)}}
* {{tlx|Reflist|20em}}: Where {{sfnote}} are used; see {{oldid|NBR 224 and 420 Classes|442508215#Notes|NBR 224 and 420 Classes (13:32, 1 August 2011)}}.
For example:
Using {{tlx|Reflist|30em}} will create columns with a minimum width of 30 em,
{{markup|title=30em wide columns
|&lt;nowiki&gt;Lorem ipsum.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
==References==
{{Reflist|30em}}&lt;/nowiki&gt;
|Lorem ipsum.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
Lorem ipsum dolor sit amet.&lt;ref&gt;Source name, access date, etc.&lt;/ref&gt;
{{fake heading|sub=3|References}}
{{Reflist|30em}}
}}
==List-defined references==
{{shortcut|WP:LDR}}
{{main|Help:List-defined references}}
Some or all of the footnotes can also be defined within the reference section/list, and invoked in the page content. This keeps those citations in one central location and avoids cluttering the text (and any infobox). This is purely a source code change{{snd}}the actual display of the citation in the text to a reader is unaffected. For a more detailed evaluation of this method, see [[WP:LDRHOW]]. The syntax is:
&lt;source lang=&quot;xml&quot;&gt;
{{reflist|refs=
&lt;ref name=name1&gt;Content&lt;/ref&gt;
&lt;ref name=name2&gt;Content&lt;/ref&gt;
&lt;ref name=name...n&gt;Content&lt;/ref&gt;
}}
&lt;/source&gt;
or, alternatively,
&lt;source lang=&quot;xml&quot;&gt;
&lt;references&gt;
&lt;ref name=name1&gt;Content&lt;/ref&gt;
&lt;ref name=name2&gt;Content&lt;/ref&gt;
&lt;ref name=name...n&gt;Content&lt;/ref&gt;
&lt;/references&gt;
&lt;/source&gt;
The footnote markers are included as usual for a named footnote. For example:
{{markup
|&lt;nowiki&gt;The quick brown fox jumps over the lazy dog.&lt;ref name=LazyDog/&gt;
Amazingly few discotheques provide jukeboxes.&lt;ref name=Jukeboxes/&gt;
How razorback-jumping frogs can level six piqued gymnasts.&lt;ref name=JumpingFrogs/&gt;
==References==
{{reflist|
refs=
&lt;ref name=Jukeboxes&gt;This is the jukeboxes reference.&lt;/ref&gt;
&lt;ref name=LazyDog&gt;This is the lazy dog reference.&lt;/ref&gt;
&lt;ref name=JumpingFrogs&gt;This is the jumping frogs reference.&lt;/ref&gt;
}}&lt;/nowiki&gt;
|The quick brown fox jumps over the lazy dog.&lt;ref name=LazyDog/&gt;
Amazingly few discotheques provide jukeboxes.&lt;ref name=Jukeboxes/&gt;
How razorback-jumping frogs can level six piqued gymnasts.&lt;ref name=JumpingFrogs/&gt;
{{fake heading|sub=3|References}}
{{reflist|
refs=
&lt;ref name=LazyDog&gt;This is the lazy dog reference.&lt;/ref&gt;
&lt;ref name=Jukeboxes&gt;This is the jukeboxes reference.&lt;/ref&gt;
&lt;ref name=JumpingFrogs&gt;This is the jumping frogs reference.&lt;/ref&gt;
}}}}
The references will be numbered, and appear in the output, ''in the order that they are first referred to in the content,'' regardless of their order within the list. All references in reference list must be referenced in the content, otherwise an error message will be shown.
{{anchor|Embedding references within footnotes}}
==Footnotes: embedding references==
{{shortcut|WP:REFNEST}}
{{See also|WP:Nesting footnotes}}
Explanatory notes may need to be referenced. Because of limitations in the {{cite.php}} software, reference tags cannot be nested; that is, a set of {{tag|ref}} tags cannot be placed inside another pair of {{tag|ref}} tags. Attempting to do so will result in a cite error.
The template {{tl|refn}} may be used to nest references. The markup is:
:{{tlx|refn|2=name=name|3=group=group|4=content}} where ''name'' and ''group'' are optional. The content may include {{tag|ref|o}} tags.
The other templates listed below in [[#Footnotes: predefined groups|Predefined groups]] are variants of {{tl|refn}} that include a styled group and have a matching styled reference list template.
Example:
{{markup
|&lt;nowiki&gt;The quick brown fox jumps over the lazy dog.{{refn|group=nb|A footnote.&lt;ref&gt;A reference for the footnote.&lt;/ref&gt;}}
==Notes==
{{reflist|group=nb}}
==References==
{{reflist}}
&lt;/nowiki&gt;
|The quick brown fox jumps over the lazy dog.{{refn|group=nb|A footnote.&lt;ref&gt;A reference for the footnote.&lt;/ref&gt;}}
{{fake heading|sub=3|Notes}}
{{reflist|group=nb}}
{{fake heading|sub=3|References}}
{{reflist}}
}}
The use of the magic word &lt;code&gt;#tag:ref&lt;/code&gt; is valid, but the sequence of parameters is invariant and nonintuitive. {{tl|refn}} and its variants use this markup internally.
:&lt;code&gt;&amp;#123;&amp;#123;#tag:ref|&lt;var&gt;refcontent&lt;/var&gt;|name=&lt;var&gt;name&lt;/var&gt;|group=&lt;var&gt;groupname&lt;/var&gt;}}&lt;/code&gt;
{{anchor|Grouping footnotes}}
==Footnotes: groups==
{{shortcut|WP:REFGROUP|WP:CITELABEL}}
Sometimes it is useful to group the footnotes into separate lists, for example to separate explanatory notes from references, or to list references for tables, image captions, infoboxes and navboxes. The sequence of footnote labels is independent in each group.
The syntax to define a footnote with a group is:
:{{tag|ref|params=group=&lt;var&gt;groupname&lt;/var&gt;|content=Content}}
The footnote marker group name ''must'' be enclosed in quotes if the group name includes a space, else a cite error will occur, otherwise quotes are optional.
The syntax for the reference list with a group is:
:{{tlx|reflist|2=group=&lt;var&gt;groupname&lt;/var&gt;}}
The reference list group name does not need to be enclosed in quotes.
Example:
{{markup
|&lt;nowiki&gt;This part of the text requires clarification,&lt;ref group=note&gt;Listed separately from the citation&lt;/ref&gt; whereas the entire text is cited.&lt;ref&gt;Citation.&lt;/ref&gt; And this needs even more clarification.&lt;ref group=note&gt;Another note&lt;/ref&gt;
==Notes==
{{reflist|group=note}}
==References==
{{reflist}}&lt;/nowiki&gt;
|This part of the text requires clarification,&lt;ref group=note&gt;Listed separately from the citation&lt;/ref&gt; whereas the entire text is cited.&lt;ref&gt;Citation.&lt;/ref&gt; And this needs even more clarification.&lt;ref group=note&gt;Another note&lt;/ref&gt;
{{fake heading|sub=3|Notes}}
{{reflist|group=note}}
{{fake heading|sub=3|References}}
{{reflist}}
}}
Note that the footnote labels in the reference list show only the numbers and not the group name.
When using both names and [[#Footnotes:_groups|groups]], the syntax is:
:{{tag|ref|params=name=&lt;var&gt;name&lt;/var&gt; group=&lt;var&gt;groupname&lt;/var&gt;|content=Content}}
For the repeated note:
:{{tag|ref|s|params=name=&lt;var&gt;name&lt;/var&gt; group=&lt;var&gt;groupname&lt;/var&gt;}}
==Footnotes: predefined groups==
{{shortcut|H:PREGROUP|WP:EXPLNOTE}}
{{for|technical details|Help:Cite link labels}}
{{for|Shortened footnotes with explanatory footnotes|Help:Shortened footnotes#Explanatory notes}}
{{See also|Wikipedia:Citing sources#Variation in citation methods|Wikipedia:Manual of Style/Layout#Notes and references}}
&lt;section begin=pregroup /&gt;&lt;!--this section is used as the documentation for the efn/notelist templates--&gt;
There are several predefined groups that can have a reference list styled so that the label (a character within square brackets with all superscripted, e.g., {{dummy ref|1}}) of a note or citation (aka footnote, reference) matches and links to the note marker label located in the main text and the label in front of the note's text in the appropriate group's list. There can be more than one of these groups' lists in the Notes, References and other similarly purposed sections.
These predefined note and citation groups have templates that make the [[wikitext]] markup simpler. These templates also allow a standard reference to be inserted, so that an explanatory note can have a reference, or citations can be nested.
'''Note:''' If the note's text has a reference name that is used more than once, the labels will still match, but the clickable alpha characters that toggle the note's display will be ''next to'' the note's label, with links to the multiple locations of its marker in the main text. See [[Help:Footnotes#Footnotes: using a source more than once|WP:REFNAME]] and the first point below in [[#Issues|§&amp;nbsp;Issues]].
===Template use by reference group type===
&lt;section begin=pregrouptable /&gt;
{| class=&quot;wikitable&quot;
|- style=&quot;vertical-align:top;&quot;
! Group type !! Footnote marker template&lt;br/&gt;or markup !! Reference list template !! Sample labels
|-
| ''none'' || {{tag|ref}} || {{tlx|reflist}} || 1 2 3 4 5 6 7 8 9 10
|-
| ''none'' || {{tlx|refn}} (for nested references) || {{tlx|reflist}} || 1 2 3 4 5 6 7 8 9 10
|-
| lower-alpha || {{tlx|efn}} || {{tlx|notelist}} || a b c d e f g h i j
|-
| upper-alpha || {{tlx|efn-ua}} || {{tlx|notelist-ua}} || A B C D E F G H I J
|-
| lower-roman || {{tlx|efn-lr}} || {{tlx|notelist-lr}} || i ii iii iv v vi vii viii ix x
|-
| upper-roman || {{tlx|efn-ur}} || {{tlx|notelist-ur}} || I II III IV V VI VII VIII IX X
|-
| lower-greek{{efn|Not supported by Internet Explorer 7 and below}} || {{tlx|efn-lg}} || {{tlx|notelist-lg}} || α β γ δ ε ζ η θ ι κ
|-
|Note || {{tlx|NoteTag}} || {{tlx|NoteFoot}} || Note 1 Note 2 Note 3
|}
{{notelist}}&lt;section end=pregrouptable /&gt;
* {{tlx|efn}} supports {{para|name}} and {{para|group}}, which work the same as the parameters in {{tag|ref|o}}. Do not enclose values in quotes.
* {{tlx|notelist}} supports the column parameter, {{para|refs}} and {{para|group}}, which work the same as the parameters in {{tlx|reflist}}. Do not enclose values in quotes.
In these examples, the footnote labels match between the footnote marker and the reference list:
{{markup|title=With lower-alpha labels
|&lt;nowiki&gt;Lorem ipsum dolor sit amet.{{efn|Footnote 1}} Consectetur adipisicing elit.{{efn|Footnote 2}} Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.{{efn|Footnote 3}}
{{notelist}}
&lt;/nowiki&gt;
|Lorem ipsum dolor sit amet.{{efn|Footnote 1}} Consectetur adipisicing elit.{{efn|Footnote 2}} Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.{{efn|Footnote 3}}
{{notelist}}
}}
{{markup|title=With lower-roman labels
|&lt;nowiki&gt;Lorem ipsum dolor sit amet.{{efn-lr|Footnote 1}} Consectetur adipisicing elit.{{efn-lr|Footnote 2}} Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.{{efn-lr|Footnote 3}}
{{notelist-lr}}
&lt;/nowiki&gt;
|Lorem ipsum dolor sit amet.{{efn-lr|Footnote 1}} Consectetur adipisicing elit.{{efn-lr|Footnote 2}} Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.{{efn-lr|Footnote 3}}
{{notelist-lr}}
}}
{{markup|title=With named references
|&lt;nowiki&gt;Lorem ipsum dolor sit amet.{{efn|name=fn1|Footnote 1}} Consectetur adipisicing elit.{{efn|Footnote 2}} Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.{{efn|name=fn1}}
{{notelist}}
&lt;/nowiki&gt;
|Lorem ipsum dolor sit amet.{{efn|name=fn1|Footnote 1}} Consectetur adipisicing elit.{{efn|Footnote 2}} Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.{{efn|name=fn1}}
{{notelist}}
}}
{{markup|title=Named references can also be defined in the notelist
|&lt;nowiki&gt;Lorem ipsum dolor sit amet.{{efn|name=fn1}} Consectetur adipisicing elit.{{efn|name=fn2}} Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.{{efn|name=fn1}}
{{notelist|refs=
{{efn|name=fn1|Very long footnote 1}}
{{efn|name=fn2|Very long footnote 2}}
}}
&lt;/nowiki&gt;
|Lorem ipsum dolor sit amet.{{efn|name=fn1}} Consectetur adipisicing elit.{{efn|name=fn2}} Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.{{efn|name=fn1}}
{{notelist|refs=
{{efn|name=fn1|Very long footnote 1}}
{{efn|name=fn2|Very long footnote 2}}
}}
}}
===Issues===
* Multiple backlink labels (see [[WP:REFNAME]]) are always styled as lower-alpha. This can be confusing when {{tlx|efn}} is used. See the note in the introduction of [[#Footnotes: predefined groups|this section]], above.
* The entries in the reference list will show the default decimal styling if:
** The value for {{para|group}} in {{tlx|reflist}} or {{tag|references|s}} does not exactly match one of the predefined values; use {{tlx|efn}} or variant as {{para|group}} will not be needed.
** The value for {{para|group}} in {{tlx|reflist}} or {{tag|references|s}} is enclosed by quotes; use {{tlx|efn}} or variant as {{para|group}} will not be needed.
** {{tlx|reflist}} is indented with the {{code|:}} markup.
** {{tag|references|s}} is used instead of {{tlx|reflist}}
* The entries in the reference list will have no styling if:
** A reference is included in {{tlx|navbox}} or one of the variants and the style is set to &lt;code&gt;bodyclass=hlist&lt;/code&gt;; to resolve this, replace the style with &lt;code&gt;listclass=hlist&lt;/code&gt;.
*Including external link markup will result in an error. Use the {{tlx|URL}} template instead: &lt;code&gt;&lt;nowiki&gt;{{URL|&lt;/nowiki&gt;1=''url name''&lt;nowiki&gt;|&lt;/nowiki&gt;2=''optional display text''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;.&lt;section end=pregroup /&gt;
==Reference lists: automatically generated==
{{main|Help:Automatically generated reference list}}
A page with {{tag|ref|o}} tags but no reference list markup used to display an error, except on talk and user pages. In recent versions of Wikipedia, the error no longer appears; instead an automatically generated reference list (AGRL) is displayed at the bottom of the page.
Compared to the reference lists on properly formatted pages, an AGRL can be confusing to both readers and editors. But it is easily corrected by adding reference list markup such as the following. Add it at the position where the reference list would normally appear.
&lt;pre style=&quot;width: 10em;&quot;&gt;
==References==
{{reflist}}
&lt;/pre&gt;
On talk pages, the {{tl|reflist-talk}} template can be used to add a reference list to a specific discussion.
{{anchor|Citing one book repeatedly with different page numbers}}
==Footnotes: page numbers==
{{main|Help:References and page numbers}}
Suppose you would like to cite one book, but different facts appear on different pages. You would like to cite the book again and again, but point each fact to the proper page. Suppose one fact is on page 8, a different fact on page 12, a third fact on page 18, a fourth fact on page 241. You could put a line in the &quot;pages&quot; parameter saying &quot;see pages 8, 12, 18, 241&quot; but a fact-checker might have to check all of them before figuring out the right one. Or, you could duplicate the entire citation for the book in each instance, but that would be redundant. One common approach is to use [[Help:Shortened footnotes|shortened citations]], which requires the use of a References section following the footnotes section. A less common approach is to attach a {{tlx|rp|8}} right after the footnote marker and replace the &quot;8&quot; with the appropriate page number.
For example:
{{markup
|&lt;nowiki&gt;Schudson said the Constitution shaped citizenship in fundamental ways.&lt;ref name=&quot;Schudson&quot;&gt;{{Cite book
| last = Schudson
| first = Michael
| title = The Good Citizen: A Brief History of American Civic Life
| publisher = Simon &amp; Schuster
| date = 1998
| url = https://books.google.com/books?id=aawMAQAAMAAJ
| isbn =0-684-82729-8 }}&lt;/ref&gt;{{rp|8}} But elections in early American politics did not generate much interest&lt;ref name=&quot;Schudson&quot;/&gt;{{rp|12}} while &quot;open discussion of differences&quot; was generally avoided.&lt;ref name=&quot;Schudson&quot;/&gt;{{rp|18}} Citizenship later shifted to a polity of essentially &quot;self-absorbed citizens&quot;, according to his analysis.&lt;ref name=&quot;Schudson&quot;/&gt;{{rp|241}}&lt;/nowiki&gt;
|Schudson said the Constitution shaped citizenship in fundamental ways.&lt;ref name=&quot;Schudson&quot;&gt;{{Cite book
| last = Schudson
| first = Michael
| title = The Good Citizen: A Brief History of American Civic Life
| publisher = Simon &amp; Schuster
| date = 1998
| url = https://books.google.com/books?id=aawMAQAAMAAJ
| isbn =0-684-82729-8}}&lt;/ref&gt;{{rp|8}} But elections in early American politics did not generate much interest&lt;ref name=&quot;Schudson&quot;/&gt;{{rp|12}} while &quot;open discussion of differences&quot; was generally avoided.&lt;ref name=&quot;Schudson&quot;/&gt;{{rp|18}} Citizenship later shifted to a polity of essentially &quot;self-absorbed citizens&quot;, according to his analysis.&lt;ref name=&quot;Schudson&quot;/&gt;{{rp|241}}
{{fake heading|sub=3|References}}
{{reflist}}
}}
When using [[#WP:LDR|list-defined references]], {{tlx|r}} can be used for the same style of in-text page references.
==Previewing edits==
When you [[Help:Section#Section editing|edit a single section]] of a page, the footnotes list will be visible when you [[Help:Show preview|preview your edits]] under the heading &quot;Preview of references&quot;, although you will still not be able to see named references that were defined in other sections.
Tools that can be used are the [[user:js/ajaxPreview]] or [[User:Anomie/ajaxpreview.js]] scripts or the [[User:Cacycle/wikEd|wikEd]] gadget.
==RefToolbar==
{{main|Wikipedia:RefToolbar/2.0}}
[[File:Cite web named ref 01.png|thumb|400px|Using the citation toolbar to name the first reference.]]
[[File:Citation toolbar named ref.png|thumb|400px|Using the citation toolbar to insert additional references to the first source.]]
You can use the citation toolbar to name references. When you first create a reference, you can enter a value in the &quot;Ref name&quot; box. When you want to reuse this reference, click the &quot;Named references&quot; button on the citation toolbar and choose which reference you would like to insert.
{{clear}}
==Issues and limitations==
* {{cite.php|bug}}
* [[Help:Substitution|subst:]] does not work within {{tag|ref|o}} tags. {{phab|T4700}}
* The [[Help:Pipe trick|pipe trick]] does not work within {{tag|ref|o}} tags. {{phab|T4700}}
== Flagging inadequate referencing ==
{{See also | Template: Unreferenced/doc#Usage}}
* The template {{Tlx|Refimprove}} should be added to articles where there are '''some, but insufficient, inline citations to support the material''' currently in the article. For [[WP:BLP|biographies of living persons]], use {{tlx|BLP sources}} instead.
* The template {{Tlx|Unreferenced}} should be added to articles with '''no references at all'''. For biographies of living persons, use {{tlx|BLP unsourced}} instead.
* The template {{Tlx|Unreferenced section}} is for '''individual sections that have no citations''' in articles that have at least one citation somewhere else. For biographies of living persons, use {{tlx|BLP unsourced section}} instead.
* The template {{Tlx|Medref}} is specifically for articles '''needing additional ''medical'' references'''.
==See also==
* [[Template:Harvard citation#Using CITEREF directly]] and {{tl|sfnref}}
* [[Wikipedia:Citing sources/Further considerations]]—a how-to article with some additional considerations for citing sources
* [[Wikipedia:Help desk]]—to ask questions about using footnotes in articles if you were not able to find the information you need on this help page.
*[[Template:Editor tools]]—{{tl|Editor tools}}
{{Wikipedia referencing}}
{{Help navigation}}
[[Category:Wikipedia editor help]]
[[Category:Wikipedia citation administration]]</text>
<sha1>6zy6s2t1mut0hbu91i5hsjs84wfexnj</sha1>
</revision>
</page>
<page>
<title>Module:Details</title>
<ns>828</ns>
<id>42571059</id>
<revision>
<id>725289103</id>
<parentid>725279447</parentid>
<timestamp>2016-06-14T18:58:49Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Updated from sandbox. Adds support for an indefinite number of pages, removes tracking apparatus used for reparameterization</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1038">--[[
-- This module produces a &quot;For more details on this topic&quot; link. It implements
-- the {{details}} template.
--]]
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments -- lazily initialise
local mTableTools -- lazily initialise
local p = {}
function p.details (frame)
mArguments = require('Module:Arguments')
mTableTools = require('Module:TableTools')
local args = mArguments.getArgs(frame, {parentOnly = true})
local topic, category = args.topic, args.category
local options = {selfref = args.selfref}
args = mTableTools.compressSparseArray(args)
if #args == 0 then
return mHatnote.makeWikitextError(
'no page name specified',
'Template:Details#Errors',
category
)
end
return p._details(args, topic, options)
end
function p._details (list, topic, options)
list = mHatlist.andList(list, true)
topic = topic or 'this topic'
local text = string.format('For more details on %s, see %s.', topic, list)
return mHatnote._hatnote(text, options)
end
return p</text>
<sha1>to9yn070chjr9elj9776fs0ysz1zxep</sha1>
</revision>
</page>
<page>
<title>Template:Reflist hide/doc</title>
<ns>10</ns>
<id>24449952</id>
<revision>
<id>735694140</id>
<parentid>479822875</parentid>
<timestamp>2016-08-22T13:37:43Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="529">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE --&gt;
== Usage ==
Add {{tl|reflist hide}} to a page to hide the references list. This template may be placed on a user page to eliminate error messages without showing the reference list. It may also be used on help pages to separate examples and ensure that reference lists are explicitly closed. It should not be used in articles.
== See also ==
&lt;includeonly&gt;
&lt;!-- CATEGORIES HERE, THANKS --&gt;
[[Category:Reference list templates]]
&lt;/includeonly&gt;</text>
<sha1>73hehn5ldx1r9puvc9h923j3ismmbx1</sha1>
</revision>
</page>
<page>
<title>Template:Resize/TemplateData</title>
<ns>10</ns>
<id>40095725</id>
<revision>
<id>775613542</id>
<parentid>774498027</parentid>
<timestamp>2017-04-16T01:05:38Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<comment>TFD closed as keep ([[WP:XFDC|XFDcloser]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="702">
==TemplateData==
{{TemplateDataHeader}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;Template to aid switching the font-size used for a text string. Two forms {{resize|&lt;size&gt;|&lt;text&gt;}} and {{resize|&lt;text&gt;}} are possible.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Size/Text&quot;,
&quot;description&quot;: &quot;Specifies a css font size e.g. '80%', '1.2em', 'x-large', 'larger'. In the one parameter version the first parameter is the text and the font size is '90%'.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
},
&quot;2&quot;: {
&quot;label&quot;: &quot;Text when size is given&quot;,
&quot;description&quot;: &quot;The text to display in the two parameter version.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
}
}
}
&lt;/templatedata&gt;</text>
<sha1>rtv7sdqypsozckl8zkdl08quqccjr69</sha1>
</revision>
</page>
<page>
<title>Template:Resize/doc</title>
<ns>10</ns>
<id>8688665</id>
<revision>
<id>731825827</id>
<parentid>706453456</parentid>
<timestamp>2016-07-27T19:24:11Z</timestamp>
<contributor>
<username>Eyesnore</username>
<id>18177679</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1056">{{Documentation subpage}}
{{When pagename is
| Template:Resize/doc = {{Resize/doc/main}}
| Template:Resize/sandbox = {{Resize/doc/main}}
| Template:Resize = {{High-risk|136000+}} {{COinS safe|n}} {{Resize/doc/main}}
| Template:Resize shortcuts documentation = &lt;div style=&quot;margin:0.5em 0;&quot;&gt;This template is a tailored shortcut to {{tl|resize}}.&lt;/div&gt;
| /doc = &lt;div style=&quot;margin:0.5em 0;&quot;&gt;This template is a tailored shortcut to {{tl|resize}}.&lt;/div&gt;
| other = {{COinS safe|n}} &lt;div style=&quot;margin:0.5em 0;&quot;&gt;This template is a tailored shortcut to {{tl|resize}}.&lt;/div&gt;
}} &lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED BELOW --&gt;
== Tailored shortcuts ==
{{Resize shortcuts}}
== See also ==
{{font size templates}}
== External Link ==
* [https://developer.mozilla.org/en-US/docs/Web/CSS/font-size font-size - CSS] [[Mozilla Developer Network]]
&lt;includeonly&gt;{{When pagename is
| Template:Resize = &lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Resizing templates| ]]
[[Category:TemplateData documentation with overload problems]]
}}&lt;/includeonly&gt;</text>
<sha1>ls6ha7v5on4mx2gozrqt05b9xmdqyx3</sha1>
</revision>
</page>
<page>
<title>Template:Resize/doc/main</title>
<ns>10</ns>
<id>43720566</id>
<revision>
<id>677596936</id>
<parentid>650000017</parentid>
<timestamp>2015-08-24T09:26:18Z</timestamp>
<contributor>
<ip>168.235.196.170</ip>
</contributor>
<comment>/* Syntax */</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="812">A template to aid switching the font-size used for a text string.
== Syntax ==
: {{tc|resize|''N''|''text''}}
: {{tc|resize|''text''}}
''N'' specifies a size, such as &quot;95%&quot;, &quot;1.2em&quot;, etc. If ''N'' is omitted, as in the second line above, a default 90% size is applied.
If &lt;code&gt;''text''&lt;/code&gt; happens to contain an equality sign (&quot;=&quot;), specify {{tlf|resize|''N''|'''2&amp;#61;'''''text''}} or {{tlf|resize|'''1&amp;#61;'''''text''}}.
== Examples ==
{|
|-
| style=&quot;padding-right:2em&quot;| {{tc|resize|1.2em|This text is 0.2em larger than normal.}} || {{resize|1.2em|This text is 0.2em larger than normal.}}
|-
| {{tc|resize|80%|This text is 80% normal size.}} || {{resize|80%|This text is 80% normal size.}}
|-
| {{tc|resize|This text defaults to 90% normal size.}} || {{resize|This text defaults to 90% normal size.}}
|}</text>
<sha1>9u308wxzr6dz2jvzpytm7wpffhuem5h</sha1>
</revision>
</page>
<page>
<title>Template:Resize shortcuts</title>
<ns>10</ns>
<id>43569993</id>
<revision>
<id>713985741</id>
<parentid>654444111</parentid>
<timestamp>2016-04-06T23:30:12Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<comment>removing Template:Small and Template:Big from list, they do not invoke Template:Resize</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="720">&lt;noinclude&gt;{{Notice |style=margin-bottom:1.5em; |''This template is transcluded as part of [[Template:Resize]] and associated pages' documentation.''}}&lt;/noinclude&gt;
&lt;!-- &amp;#37; = percent-sign (%), = = equals-sign --&gt;
{| role=&quot;presentation&quot; class=&quot;nowrap&quot;
|+ style=&quot;text-align:left; font-weight:bold;&quot;| Named alternatives
|-
| style=&quot;text-align:right&quot;| {{[[Template:smaller|smaller]]|…}} || = || {{tlf|resize|90%|…}}
|-
| style=&quot;text-align:right&quot;| {{[[Template:larger|larger]]|…}}&lt;br /&gt;{{[[Template:bigger|bigger]]|…}} || = || {{tlf|resize|110%|…}}
|-
| style=&quot;text-align:right&quot;| {{[[Template:large|large]]|…}} || = || {{tlf|resize|large|…}}
|}&lt;noinclude&gt;
[[Category:Resizing templates| !]]
&lt;/noinclude&gt;</text>
<sha1>661zgk33pjb1kd9vqwdkw92gg8lss8s</sha1>
</revision>
</page>
<page>
<title>Template:E</title>
<ns>10</ns>
<id>2870106</id>
<revision>
<id>718030387</id>
<parentid>654607491</parentid>
<timestamp>2016-05-01T04:04:30Z</timestamp>
<contributor>
<username>KrakatoaKatie</username>
<id>1570001</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:E: [[WP:High-risk templates|Highly visible template]]: RFPP request ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="398">{{#if:{{{1|}}}
|&lt;span style=&quot;margin:0 .15em 0 .25em&quot;&gt;×&lt;/span&gt;10&lt;sup&gt;&lt;!--
--&gt;{{#ifeq:{{{2|}}}|text
|{{{1}}}
|{{#ifeq:{{valid|number={{{1}}}}}|false
|{{{1}}}
|{{#ifeq:{{{2|}}}|plus
|&amp;#43;{{val/delimitnum|{{{1}}}}}
|{{val/delimitnum|{{{1}}}}}
}}
}}
}}&lt;/sup&gt;
|{{Main other|[[Category:Articles using E without any arguments]]}}
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>5xgc8xv6w50oftaukbcj6aej28aqk06</sha1>
</revision>
</page>
<page>
<title>Template:Evalns</title>
<ns>10</ns>
<id>16925281</id>
<revision>
<id>771834929</id>
<parentid>389561225</parentid>
<timestamp>2017-03-23T19:59:59Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Evalns]]&quot;: Allowing template editors ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="180">&lt;includeonly&gt;{{{{{subst|}}}#if:{{{{{subst|}}}#ifexpr:{{{{{subst|}}}#expr:{{{1}}}}}}}|({{{1}}})|{{{{{subst|}}}#expr:{{{1}}}}}}}&lt;/includeonly&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>63jtgitqu36oukpzikgpn5hx7kdhwd0</sha1>
</revision>
</page>
<page>
<title>Template:Rnd/doc</title>
<ns>10</ns>
<id>15604363</id>
<revision>
<id>731824572</id>
<parentid>721048156</parentid>
<timestamp>2016-07-27T19:15:02Z</timestamp>
<contributor>
<username>Eyesnore</username>
<id>18177679</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3252">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE. --&gt;
{{high-risk|233000+}}
{{lua|Module:Math}}
==Usage==
This template rounds parameter 1 by parameter 2 decimal places (goes the other way for negative rounding) and includes trailing zeros.
::: {{tlx|rnd|54.376|2}} &amp;nbsp; &amp;nbsp; gives {{rnd|54.376|2}}
::: {{tlx|rnd|54.376|-1}} &amp;nbsp; gives {{rnd|54.376|-1}}
::: {{tlx|rnd|68.4273E12|-10}} gives {{rnd|68.4273E12|-10}}
For example, rounding by 1 gives 1 decimal digit, rounding by&amp;nbsp;0 gives integers, or rounding by&amp;nbsp;-2 gives the amount in hundreds. [[Scientific notation]] is displayed for numbers greater than or equal to 1{{e|9}}, or less than 1{{e|−4}}.
'''Examples:'''
*{{tlx|rnd|2.0004|3}} gives {{rnd|2.0004|3}}
**whereas {{tlx|#expr:2.0004 round 3}} gives {{#expr:2.0004 round 3}}
*{{tlx|rnd|0.000020004|7}} gives {{rnd|0.000020004|7}}
*{{tlx|rnd|0|8}} gives {{rnd|0|8}}
*{{tlx|rnd|154268|-3}} gives {{rnd|154268|-3}}
*{{tlx|rnd|154568|-3}} gives {{rnd|154568|-3}}
*{{xpsoc|rnd|1200004|-1}}
**whereas {{xpsoc|#expr:1200004round-1}}, even though {{xpsoc|#expr:1300004round-1}} (see [[m:Help:Format produced by expr]])
*{{xpsoc|rnd|1300004|-1}}
*{{xpsoc|rnd|4.1e6|9}}
*{{xpsoc|rnd|4.1e6|10}}
*{{xpsoc|rnd|1542689271|-7}}
*{{xpsoc|rnd|1542689271|2}}
*{{xpsoc|rnd|7e9|-9}}
*{{xpsoc|rnd|-123|1}}
*{{xpsoc|rnd|-1200007|-2}}
*{{xpsoc|rnd|-1234567899|-7}}
As with #expr, the total number of significant digits is not more than 14:
*{{xpsoc|rnd|1234567890.123456789|10}}
*{{xpsoc|rnd|123456789.0123456789|10}}
*{{xpsoc|rnd|.0001234567890123456789|20}}
==Internal details==
The markup-based version of Template:rnd uses three subtemplates:
*{{tl|rnd/-}} — for trailing zeros
*{{tl|rnd/e+}} — for scientific notation for numbers greater than or equal to 10&lt;sup&gt;9&lt;/sup&gt; or less than or equal to −10&lt;sup&gt;9&lt;/sup&gt;
*{{tl|rnd/e−}} — for scientific notation for numbers greater than −10&lt;sup&gt;−4&lt;/sup&gt; and less than 10&lt;sup&gt;−4&lt;/sup&gt; but not equal to zero
The [[Lua script|Lua]]-based version of {{tlx|rnd}} uses [[Module:Math]] and always has an expansion depth of 3. However, the markup-based version has an expansion depth of 9–15, which depends on the size of the numbers (integer results use depth 9, decimals use depth 12), where astronomical numbers can hit expansion depth of 15 levels, for {{tlx|rnd|56.44e33|-32}}&amp;nbsp;&amp;rarr; 5.64&amp;nbsp;× 10&lt;sup&gt;34&lt;/sup&gt;.
===TemplateData===
{{TemplateDataHeader}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;Rounds (parameter 1) by (parameter 2) decimal places, and formats. Scientific notation is used for numbers greater than 1×10^9, or less than 1×10^−4.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;number&quot;,
&quot;description&quot;: &quot;The number to be rounded&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;required&quot;: true
},
&quot;2&quot;: {
&quot;label&quot;: &quot;decimal places&quot;,
&quot;description&quot;: &quot;The number of decimal places, if negative the number is rounded so the last (parameter 2) digits are zero&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;required&quot;: true
}
}}&lt;/templatedata&gt;
==See also==
*{{tl|rndfrac}}
*{{tl|rndnear}}
*{{tl|rndgaps}}
*{{tl|decimals}}
&lt;includeonly&gt;&lt;!--
++++ PLEASE ADD CATEGORIES BELOW THIS LINE, THANK YOU. --&gt;
[[Category:Mathematical function templates]]
&lt;/includeonly&gt;</text>
<sha1>qv2waagz10s5eefq65huo68qt26grlp</sha1>
</revision>
</page>
<page>
<title>Template:Val/delimitnum</title>
<ns>10</ns>
<id>16925590</id>
<revision>
<id>671661338</id>
<parentid>671660652</parentid>
<timestamp>2015-07-16T05:06:28Z</timestamp>
<contributor>
<username>Cpiral</username>
<id>2517237</id>
</contributor>
<comment>Undid revision 671660652 by [[Special:Contributions/Cpiral|Cpiral]] ([[User talk:Cpiral|talk]]) fix</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2182">&lt;includeonly&gt;&lt;!--
--&gt;{{#ifeq: &lt;!-- compare &quot;04&quot; to 4, and if so, output 4-digits pure
What might be &quot;04&quot; is composed of three outputs: dot, len, and fmt --&gt;
{{#invoke:String|find|{{{1}}}|.}}&lt;!-- Output the zero if no dot.
--&gt;{{#invoke:String|len &lt;!-- Length of 4 with sign and spaces filtered? --&gt;
|{{#invoke:String|replace|{{{1}}}|[-+ ]|plain=false}}}}&lt;!--
That replace just filtered out any and all spaces, + or - characters.
But it's gotta have the minus sign first in the [-charclass].
Any fmt given? If so comparison to &quot;4&quot; will fail --&gt;{{{fmt|}}}
| 4 |{{#invoke:String|replace|{{{1}}}|-|&amp;minus;}}&lt;!--
If fmt is nil, found . is 0, and filtered len is 4, then 04=4,
and we have just output the number, replacing any - with a minus sign
Else:
--&gt;|{{#switch: &lt;!-- its not a pure 4-digit number with no fmt options given--&gt;
{{#invoke:String|sub|{{{1|0}}}|1|1}}
&lt;!-- If the first char is ... --&gt;
|- &lt;!-- ... one kind of dash, or another --&gt;
|− = {{#ifeq:{{{nosign|off}}}|off|−}}&lt;!-- output a &amp;minus; sign unless nosign
--&gt;{{#ifeq:
{{#invoke:String|sub|{{{1|0}}}|2|2}}|.|0}}&lt;!--And then
then if next char is . then output a zero, else do || nothing.
--&gt;{{#switch: {{{fmt}}} &lt;!-- Format the rest of the number. --&gt;
|commas={{formatnum:{{#invoke:String|sub|{{{1|0}}}|2}}}}
|#default = {{#invoke:Gapnum|main|{{#invoke:String|sub|{{{1|0}}}|2}}}}
}}
&lt;!-- follow same logic for leading + char --&gt;
|+={{#ifeq:{{{nosign|off}}}|off|+}}&lt;!--
--&gt;{{#ifeq:{{#invoke:String|sub|{{{1|0}}}|2|2}}|.|0}}&lt;!--
--&gt;{{#switch:{{{fmt}}}
|commas = {{formatnum:{{#invoke:String|sub|{{{1|0}}}|2}}}}
|#default = {{#invoke:Gapnum|main|{{#invoke:String|sub|{{{1|0}}}|2}}}}
}} &lt;!-- follow similar logic for leading . char --&gt;
|.=0&lt;!--
--&gt;{{#switch:{{{fmt}}}
|commas={{{1|0}}}
|#default = {{#invoke:Gapnum|main|{{{1|0}}}}}
}}
&lt;!-- Else if first char is not . or - or + --&gt;
|#default = {{#switch:{{{fmt}}}
|commas={{formatnum:{{{1|0}}}}}
|#default = {{#invoke:Gapnum|main|{{{1|0}}}}}
}}
}}
}}&lt;/includeonly&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>6cdte7zqnczj8b11n1q6pxy3npwcz1b</sha1>
</revision>
</page>
<page>
<title>Template:Valid</title>
<ns>10</ns>
<id>16962896</id>
<revision>
<id>772121014</id>
<parentid>389560191</parentid>
<timestamp>2017-03-25T12:38:51Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Valid]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (inde...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="253">&lt;includeonly&gt;{{#if:{{{number|}}}|{{#ifeq:{{{number}}}|{{evalns|{{{number}}}}}|true|{{#ifeq:{{{number}}}|+{{evalns|{{{number}}}}}|true|{{#ifeq:{{{number}}}|({{evalns|{{{number}}}}})|true|false}}}}}}}}&lt;/includeonly&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>19oro4spa2bbej297wjeh8t6ipscju7</sha1>
</revision>
</page>
<page>
<title>Template:Xpsoc</title>
<ns>10</ns>
<id>28924122</id>
<revision>
<id>631411597</id>
<parentid>631411515</parentid>
<timestamp>2014-10-28T02:28:13Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>use includeonly</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="165">&lt;includeonly&gt;{{#invoke:xpsoc|main}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>5icodohnqvpp287i5zxp9bw0xbhxhgl</sha1>
</revision>
</page>
<page>
<title>Module:Gapnum</title>
<ns>828</ns>
<id>43222024</id>
<revision>
<id>804711215</id>
<parentid>804708739</parentid>
<timestamp>2017-10-10T17:39:00Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Module:Gapnum]]&quot;: [[WP:High-risk templates|High-risk Lua module]]: 7,000+ transclusions ([Edit=Require extended confirmed access] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3120">local p = {}
local getArgs
function p.main(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
local args = getArgs(frame, {wrappers = 'Template:Gapnum'})
local n = args[1]
if not n then
error('Parameter 1 is required')
elseif not tonumber(n) and not tonumber(n, 36) then -- Validates any number with base ≤ 36
error('Unable to convert &quot;' .. args[1] .. '&quot; to a number')
end
local gap = args.gap
local precision = tonumber(args.prec)
return p.gaps(n,{gap=gap,prec=precision})
end
-- Not named p._main so that it has a better function name when required by Module:Val
function p.gaps(n,tbl)
local nstr = tostring(n)
if not tbl then
tbl = {}
end
local gap = tbl.gap or '.25em'
local int_part, frac_part = p.groups(n,tbl.prec)
local ret = mw.html.create('span')
:css('white-space','nowrap')
-- No gap necessary on first group
:wikitext(table.remove(int_part,1))
-- Build int part
for _, v in ipairs(int_part) do
ret:tag('span')
:css('margin-left',gap)
:wikitext(v)
end
if frac_part then
-- The first group after the decimal shouldn't have a gap
ret:wikitext('.' .. table.remove(frac_part,1))
-- Build frac part
for _, v in ipairs(frac_part) do
ret:tag('span')
:css('margin-left',gap)
:wikitext(v)
end
end
return ret
end
-- Creates tables where each element is a different group of the number
function p.groups(num,precision)
local nstr = tostring(num)
if not precision then
precision = -1
end
local decimalloc = nstr:find('.', 1, true)
local int_part, frac_part
if decimalloc == nil then
int_part = nstr
else
int_part = nstr:sub(1, decimalloc-1)
frac_part = nstr:sub(decimalloc + 1)
end
-- only define ret_i as an empty table, let ret_d stay nil
local ret_i,ret_d = {}
-- Loop to handle most of the groupings; from right to left, so that if a group has less than 3 members, it will be the first group
while int_part:len() &gt; 3 do
-- Insert in first spot, since we're moving backwards
table.insert(ret_i,1,int_part:sub(-3))
int_part = int_part:sub(1,-4)
end
-- handle any left over numbers
if int_part:len() &gt; 0 then
table.insert(ret_i,1,int_part)
end
if precision ~= 0 and frac_part then
ret_d = {}
if precision == -1 then
precision = frac_part:len()
end
-- Reduce the length of the string if required precision is less than actual precision
-- OR
-- Increase it (by adding 0s) if the required precision is more than actual
local offset = precision - frac_part:len()
if offset &lt; 0 then
frac_part = frac_part:sub(1,precision)
elseif offset &gt; 0 then
frac_part = frac_part .. string.rep('0', offset)
end
-- Allow groups of 3 or 2 (3 first)
for v in string.gmatch(frac_part,'%d%d%d?') do
table.insert(ret_d,v)
end
-- Preference for groups of 4 instead of groups of 1 at the end
if #frac_part % 3 == 1 then
if frac_part:len() == 1 then
ret_d = {frac_part}
else
local last_g = ret_d[#ret_d] or ''
last_g = last_g..frac_part:sub(-1)
ret_d[#ret_d] = last_g
end
end
end
return ret_i,ret_d
end
return p</text>
<sha1>lj5n3lgypceqtbnvwbvlt9k8birgmdl</sha1>
</revision>
</page>
<page>
<title>Module:Template invocation</title>
<ns>828</ns>
<id>44488492</id>
<revision>
<id>669434050</id>
<parentid>635602212</parentid>
<timestamp>2015-07-01T04:39:15Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>allow this to work for numbers</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3959">-- This module provides functions for making MediaWiki template invocations.
local checkType = require('libraryUtil').checkType
local p = {}
------------------------------------------------------------------------
-- Name: p.name
-- Purpose: Find a template invocation name from a page name or a
-- mw.title object.
-- Description: This function detects whether a string or a mw.title
-- object has been passed in, and uses that to find a
-- template name as it is used in template invocations.
-- Parameters: title - full page name or mw.title object for the
-- template (string or mw.title object)
-- Returns: String
------------------------------------------------------------------------
function p.name(title)
if type(title) == 'string' then
title = mw.title.new(title)
if not title then
error(&quot;invalid title in parameter #1 of function 'name'&quot;, 2)
end
elseif type(title) ~= 'table' or type(title.getContent) ~= 'function' then
error(&quot;parameter #1 of function 'name' must be a string or a mw.title object&quot;, 2)
end
if title.namespace == 10 then
return title.text
elseif title.namespace == 0 then
return ':' .. title.prefixedText
else
return title.prefixedText
end
end
------------------------------------------------------------------------
-- Name: p.invocation
-- Purpose: Construct a MediaWiki template invocation.
-- Description: This function makes a template invocation from the
-- name and the arguments given. Note that it isn't
-- perfect: we have no way of knowing what whitespace was
-- in the original invocation, the order of the parameters
-- may be changed, and any parameters with duplicate keys
-- will be removed.
-- Parameters: name - the template name, formatted as it will appear
-- in the invocation. (string)
-- args - a table of template arguments. (table)
-- format - formatting options. (string, optional)
-- Set to &quot;nowiki&quot; to escape, curly braces, pipes and
-- equals signs with their HTML entities. The default
-- is unescaped.
-- Returns: String
------------------------------------------------------------------------
function p.invocation(name, args, format)
checkType('invocation', 1, name, 'string')
checkType('invocation', 2, args, 'table')
checkType('invocation', 3, format, 'string', true)
-- Validate the args table and make a copy to work from. We need to
-- make a copy of the table rather than just using the original, as
-- some of the values may be erased when building the invocation.
local invArgs = {}
for k, v in pairs(args) do
local typek = type(k)
local typev = type(v)
if typek ~= 'string' and typek ~= 'number'
or typev ~= 'string' and typev ~= 'number'
then
error(&quot;invalid arguments table in parameter #2 of &quot; ..
&quot;'invocation' (keys and values must be strings or numbers)&quot;, 2)
end
invArgs[k] = v
end
-- Get the separators to use.
local seps = {
openb = '{{',
closeb = '}}',
pipe = '|',
equals = '='
}
if format == 'nowiki' then
for k, v in pairs(seps) do
seps[k] = mw.text.nowiki(v)
end
end
-- Build the invocation body with numbered args first, then named.
local ret = {}
ret[#ret + 1] = seps.openb
ret[#ret + 1] = name
for k, v in ipairs(invArgs) do
if type(v) == 'string' and v:find('=', 1, true) then
-- Likely something like 1=foo=bar, we need to do it as a named arg
break
end
ret[#ret + 1] = seps.pipe
ret[#ret + 1] = v
invArgs[k] = nil -- Erase the key so that we don't add the value twice
end
for k, v in pairs(invArgs) do
ret[#ret + 1] = seps.pipe
ret[#ret + 1] = k
ret[#ret + 1] = seps.equals
ret[#ret + 1] = v
end
ret[#ret + 1] = seps.closeb
return table.concat(ret)
end
return p</text>
<sha1>7t3xnw42rnre2cs9es6yfd4ynrmg5i4</sha1>
</revision>
</page>
<page>
<title>Module:Xpsoc</title>
<ns>828</ns>
<id>44230894</id>
<revision>
<id>635193619</id>
<parentid>631572594</parentid>
<timestamp>2014-11-24T04:14:42Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>use [[Module:Template invocation]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="973">-- This module implements {{xpsoc}}.
local mTemplateInvocation = require('Module:Template invocation')
local p = {}
function p._main(args, frame)
frame = frame or mw.getCurrentFrame()
-- Get the invocation arguments.
local name = args[1]
if not name then
error('no template name passed to xpsoc', 2)
end
local invArgs = {}
for k, v in pairs(args) do
if k ~= 1 then
if type(k) == 'number' then
invArgs[k - 1] = v
else
local num = k:match('^n([1-9][0-9]*)$')
if num then
invArgs[args[k]] = args['v' .. num]
end
end
end
end
local invocation = mTemplateInvocation.invocation(name, invArgs, 'nowiki')
local gives = args.gives or mw.language.getContentLanguage():getArrow('forwards')
local result = frame:preprocess(mTemplateInvocation.invocation(name, invArgs))
return string.format('&lt;code&gt;%s&lt;/code&gt; %s %s', invocation, gives, result)
end
function p.main(frame)
return p._main(frame:getParent().args, frame)
end
return p</text>
<sha1>mw3ld5tl0ag0r3yzuqhtlp3e94zum7i</sha1>
</revision>
</page>
<page>
<title>MediaWiki:Cirrussearch-boost-templates</title>
<ns>8</ns>
<id>43270354</id>
<revision>
<id>616451503</id>
<parentid>616451403</parentid>
<timestamp>2014-07-10T23:12:08Z</timestamp>
<contributor>
<username>😂</username>
<id>169932</id>
</contributor>
<minor/>
<comment>Extra stuff not needed</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="145">Template:Featured article|200%
Template:Featured picture|200%
Template:Featured_sound|200%
Template:Featured_list|175%
Template:Good_article|150%</text>
<sha1>7fda6bl2d4od3ok3xssn8c0211hi5r8</sha1>
</revision>
</page>
<page>
<title>Template:!mxt</title>
<ns>10</ns>
<id>43993817</id>
<revision>
<id>819844125</id>
<parentid>819842820</parentid>
<timestamp>2018-01-11T16:01:48Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>+class</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="695">{{#ifeq:{{NAMESPACE}}|{{ns:0}}|{{FormattingError|[[:{{#invoke:TEMPLATENAME|main}}]] is only for examples of style and formatting. Do not use it in actual articles.}}|&lt;span class=&quot;example deprecated-content example-bad monospaced example-mono&quot; style=&quot;font-family: monospace, monospace; color: #8B0000;&quot; {{#if:{{{title|}}}|title=&quot;{{{title}}}&quot;}}&gt;{{{1|Example text}}}&lt;/span&gt;}}&lt;!--&quot;monospace, monospace&quot; needed per Wikipedia:Typography#The_monospace_'bug'--&gt;&lt;noinclude&gt;
{{Documentation|Template:Xt/doc}}
&lt;!--This category has to be done on a per-template basis, not in the shared docs, since it only apply to four templates in the family.--&gt;
[[Category:Programming typing-aid templates]]
&lt;/noinclude&gt;</text>
<sha1>24o3hi2rjb3jddcfaf1lsnt9zi9p48r</sha1>
</revision>
</page>
<page>
<title>Template:Align</title>
<ns>10</ns>
<id>14595841</id>
<revision>
<id>590235690</id>
<parentid>590229545</parentid>
<timestamp>2014-01-11T16:31:42Z</timestamp>
<contributor>
<username>Mark Arsten</username>
<id>15020596</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Align: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Block all non-admin users] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="290">{{#switch: {{lc:{{{1|center}}}}}
|left = &lt;div style=&quot;float: left;&quot;&gt;{{{2}}}&lt;/div&gt;
|right = &lt;div style=&quot;float: right;&quot;&gt;{{{2}}}&lt;/div&gt;
|center = {{center|{{{2}}} }}
|#default = Error in [[Template:Align]]: the alignment setting &quot;{{{1}}}&quot; is invalid.
}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>jgfi4x2gvhwlwu4tv7ngxu6n3igresr</sha1>
</revision>
</page>
<page>
<title>Template:Background color</title>
<ns>10</ns>
<id>40778910</id>
<revision>
<id>761025030</id>
<parentid>698025849</parentid>
<timestamp>2017-01-20T12:21:59Z</timestamp>
<contributor>
<username>Zzuuzz</username>
<id>365454</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Background color]]&quot;: [[Wikipedia:High-risk templates|High risk template]] 3,383 transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="562">&lt;span style=&quot;background-color: {{{c|{{{1|}}}}}}&quot;&gt;{{{t|{{{2|}}}}}}&lt;/span&gt;{{Main other|{{Ensure AAA contrast ratio|base={{{c|{{{1|}}}}}}|other={{{t|{{{2|}}}}}}|category=[[Category:Articles using Template:Background color with invalid colour combination]]}}}}{{Template other|{{Ensure AAA contrast ratio|base={{{c|{{{1|}}}}}}|other={{{t|{{{2|}}}}}}|category=[[Category:Articles using Template:Background color with invalid colour combination]]}}}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES TO THE /doc SUBPAGE, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>a6icqbya5pat86sieqyc56qv3r9ymwv</sha1>
</revision>
</page>
<page>
<title>Template:Center</title>
<ns>10</ns>
<id>828359</id>
<revision>
<id>685519708</id>
<parentid>655117736</parentid>
<timestamp>2015-10-13T09:09:27Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Center: [[WP:High-risk templates|Highly visible template]]: allow template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="262">&lt;includeonly&gt;&lt;div class=&quot;center&quot; style=&quot;width:auto; margin-left:auto; margin-right:auto;{{#if: {{{style|}}} | {{{style}}};}}&quot;&gt;{{{1}}}&lt;/div&gt;{{#if:{{{1|}}}||[[Category:Pages using center with no arguments]]}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>egcrlo59jwn3nnvint1cia3ijzhp4g7</sha1>
</revision>
</page>
<page>
<title>Template:Em dash</title>
<ns>10</ns>
<id>5665404</id>
<revision>
<id>792252222</id>
<parentid>667928589</parentid>
<timestamp>2017-07-25T12:32:42Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="43">—&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>23joqzm2jd36f43xgqngjduru7rp4ip</sha1>
</revision>
</page>
<page>
<title>Template:En dash</title>
<ns>10</ns>
<id>35277940</id>
<revision>
<id>774811039</id>
<parentid>669214369</parentid>
<timestamp>2017-04-10T20:22:55Z</timestamp>
<contributor>
<username>Lectonar</username>
<id>128863</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:En dash]]&quot;: request at rfpp ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="115">–&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>lj1htdpd2efpghaq7wtfxbxrzwnfgso</sha1>
</revision>
</page>
<page>
<title>Template:Endplainlist</title>
<ns>10</ns>
<id>33825314</id>
<revision>
<id>628944176</id>
<parentid>468091190</parentid>
<timestamp>2014-10-09T16:33:11Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Endplainlist: Change to template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="71">&lt;/div&gt;&lt;noinclude&gt;
{{documentation|Template:Plainlist/doc}}
&lt;/noinclude&gt;</text>
<sha1>d3q5ji9gj1bbqhgk0bolhi57ue8x2bu</sha1>
</revision>
</page>
<page>
<title>Template:Ensure AAA contrast ratio</title>
<ns>10</ns>
<id>47272548</id>
<revision>
<id>695176544</id>
<parentid>695176456</parentid>
<timestamp>2015-12-14T07:41:30Z</timestamp>
<contributor>
<username>The Earwig</username>
<id>7418060</id>
</contributor>
<comment>moving documentation to unprotected subpage</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="316">&lt;includeonly&gt;{{#if:{{{base|}}}|{{#ifexpr:{{#invoke:Color contrast|ratio|{{{base}}}|{{{other|}}}|error=21}} &lt; 7 OR {{#invoke:Color contrast|ratio|{{{base}}}|black|error=0}} &lt; 7 AND {{#invoke:Color contrast|ratio|{{{base}}}|white|error=0}} &lt; 7|{{{category|}}}}}}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>thvg1zc4vzn6yvyb0zfry8s1v9a3kbj</sha1>
</revision>
</page>
<page>
<title>Template:Internal search templates common doc</title>
<ns>10</ns>
<id>37574716</id>
<revision>
<id>793909308</id>
<parentid>793909265</parentid>
<timestamp>2017-08-04T18:10:55Z</timestamp>
<contributor>
<username>Swpb</username>
<id>1921264</id>
</contributor>
<comment>/* Page title searches */</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="4997">=== Templates to search Wikipedia ===
==== Search links ====
A ''search link'' stores a query in a link that takes you to live search results for that stored search. They're found on user pages and talk pages. Use one to bring the full feature set of MediaWiki Search, or features of external search engines, to bear on users unfamiliar with their search parameters.
One type of search link is a wikilink with all the capabilities of Search (search box), and with standard wikilink syntax: &lt;kbd&gt;{{ nowrap | [&lt;nowiki /&gt;[Special:Search/''query''{{!}} ''label'' ]]}}&lt;/kbd&gt;. So this search link will (1) [[wp:navigation|navigate]]: [&lt;nowiki /&gt;[Special:search/Wales]] &amp;rarr; [[Special:search/Wales]] or (2) search: &lt;kbd&gt;{{ nowrap | [&lt;nowiki /&gt;[Special:search/~Wales {{!}} search/~Wales ]]}}&lt;/kbd&gt; &amp;rarr; [[Special:search/~Wales|search/~Wales]] if you prefix a ~ tilde character.
All other search links are made from a [[help:template|template]] that will build a URL instead of wikilink. A URL can for example can call another search engines to search Wikipedia.
* {{tl|search link}} offers all the capabilities of [[Help:Search|Search]] (search box), plus extra (URL) parameters for combinations of namespaces, and where you can escape the 20-results-per page-limitation, shareable: &lt;kbd&gt;{{ nowrap | {&lt;nowiki&gt;{search link | et al | ''label'' | ns4 | ns5 | limit = 123 }}&lt;/nowiki&gt; }}&lt;/kbd&gt; &amp;rarr; {{search link|et al | ''label'' | ns4 | ns5 | limit = 123 }}.
* {{tl|Regex}} - develop an advanced regexp search. &lt;kbd&gt;{&lt;nowiki /&gt;{regexp | \&lt;--.*--&gt; | label = Articles with comments missing the ! bang character | prefix=0 }}&lt;/kbd&gt; &amp;rarr; {{regexp | \&lt;--.*--&gt; | label = Articles with comments missing the ! bang character |prefix=0 }}
* {{tl|tlusage}} - develop a ''template'' regexp search, and pinpoint specific template-call details. &lt;kbd&gt;{&lt;nowiki /&gt;{tlusage | Convert | &lt;nowiki&gt;\{{!}}C\{{!}}F&lt;/nowiki&gt; | 0 | Articles that convert Celsius to Fahrenheit}}&lt;/kbd&gt; &amp;rarr; {{template usage|Convert|\{{!}}C\{{!}}F|0|Articles that convert Celsius to Fahrenheit}}
* {{tl|shortSearch}} - create three search links: &lt;kbd&gt;{&lt;nowiki /&gt;{ shortSearch | system operations research }}&lt;/kbd&gt; &amp;rarr; {{ shortSearch | system operations research }} (search Wikipedia, &quot;google&quot; Wikipedia, and Google search)
* {{tl|wpsearch}} – create five search links: &lt;kbd&gt;&lt;nowiki&gt;{{wpsearch|collaborative search}}&lt;/nowiki&gt;&lt;/kbd&gt; &amp;rarr; {{wpsearch|collaborative search}}
==== Search boxes ====
* {{tl|search box}} – Simple search box with choice of button below or to the right
* {{tl|search prefixes}} – Multiple pages' subpages are searched at once
* {{tl|search archives}} and {{tl|archive banner}} – For searching archives. The latter, {{tl|archive banner}} is of banner-style, like many other [[Template:Warchivenav|archive templates]].
Search boxes are made by {{tag|inputbox|o}} tags. See [[mw:Extension:InputBox]].
==== Page title searches ====
* {{tl|canned search}} – Link to automated search results for a given term
* {{tl|in title}} – Search for pages whose name ''contains'' given words
* {{tl|look from}} – Search for pages whose name ''begins'' with a given word
For searches with exact matches, exact in upper and lower cases, or in punctuation marks, see [[Help:Searching#grep]].
==== Other Wikipedia editor helper ====
* {{tl|linksearch}} – Search for external links matching for a URL
* {{tlg|dabsearch|italics=on|term}} – External tool to find page titles containing a &lt;code&gt;(''term'')&lt;/code&gt; in parentheses. Useful for [[Wikipedia:disambiguation]] study.
* {{tl|help desk searches}} – Navbox with list of links to google pages, specialized to search for example user pages, village pump, etc. Useful for the [[Wikipedia:Help desk]] task.
* {{tl|spamsearch}} – Searches user pages for common spams, e.g. &quot;we service&quot;, &quot;leading manufacturer&quot; etc.
&lt;!-- Useless templates:
* The search box in every Wikipedia page make them useless:
** {{Content search link}}: Make a link to the search page
** {{Search wikipedia}}: Creates another search box.
** {{top search bar}}: spam
** {{top search bar2}}: spam
--&gt;
{{{seealso|
=== See also ===
{{{append|}}}
* [[Help:Searching]]
* {{cat|Search templates}}
* [[mw:inputbox#General syntax|Creating your own search box using {{tag|inputbox}}]]
}}}&lt;noinclude&gt;
----
(Hereafter is put in {{tag|noinclude}}.)
=== Description of this template ===
This template is transcluded into documentations of some templates. You can modify the [[#See also]] section with the following parameters:
* &lt;code&gt;append&lt;/code&gt;: Items to be added to.
* &lt;code&gt;seealso&lt;/code&gt;: Changes the section altogether.
Example 1: {{&lt;nowiki /&gt;Internal search templates common doc|append=&lt;br /&gt;
&lt;nowiki /&gt;* [[Help:Searching]]&lt;br /&gt;
&lt;nowiki /&gt;* [[Help:Template]]}}
Example 2: {{tnull|Internal search templates common doc|seealso{{=}}}}&lt;br /&gt;
This will delete the &quot;See also&quot; section.
[[Category:Documentation shared content templates]]
[[Category:Search templates| ]]
&lt;/noinclude&gt;</text>
<sha1>4555i3vr9k5gku1h3xtwqq2wohuj28z</sha1>
</revision>
</page>
<page>
<title>Template:Lower</title>
<ns>10</ns>
<id>8871184</id>
<revision>
<id>680227781</id>
<parentid>617176686</parentid>
<timestamp>2015-09-09T14:39:51Z</timestamp>
<contributor>
<username>NeilN</username>
<id>409043</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Lower: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="135">&lt;span style=&quot;position: relative; top: {{#if:{{{2|}}}|{{{1}}}|0.6em}};&quot;&gt;{{{2|{{{1}}}}}}&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>6tpt2r5c740uplp9d5a3i5mo5ejtdxk</sha1>
</revision>
</page>
<page>
<title>Template:Mdash</title>
<ns>10</ns>
<id>35706050</id>
<redirect title="Template:Em dash" />
<revision>
<id>667932002</id>
<parentid>667931752</parentid>
<timestamp>2015-06-21T14:16:50Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Mdash: Match target template ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="30">#REDIRECT [[Template:Em dash]]</text>
<sha1>5z28dufgaao4b2u7xywinge6li4yz91</sha1>
</revision>
</page>
<page>
<title>Template:Mxt</title>
<ns>10</ns>
<id>43993799</id>
<revision>
<id>819682515</id>
<parentid>818865249</parentid>
<timestamp>2018-01-10T18:59:27Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Mxt]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="664">{{#ifeq:{{NAMESPACE}}|{{ns:0}}|{{FormattingError|[[:{{#invoke:TEMPLATENAME|main}}]] is only for examples of style and formatting. Do not use it in actual articles.}}|&lt;span class=&quot;example monospaced example-mono&quot; style=&quot;font-family: monospace, monospace; color: #006400;&quot; {{#if:{{{title|}}}|title=&quot;{{{title}}}&quot;}}&gt;{{{1|Example text}}}&lt;/span&gt;}}&lt;!--&quot;monospace, monospace&quot; needed per Wikipedia:Typography#The_monospace_'bug'--&gt;&lt;noinclude&gt;
{{Documentation|Template:Xt/doc}}
&lt;!--This category has to be done on a per-template basis, not in the shared docs, since it only apply to four templates in the family.--&gt;
[[Category:Programming typing-aid templates]]
&lt;/noinclude&gt;</text>
<sha1>kkafvzhztoumy7mqkdvt56nke7gmw9e</sha1>
</revision>
</page>
<page>
<title>Template:Namespaces</title>
<ns>10</ns>
<id>17863153</id>
<revision>
<id>812046517</id>
<parentid>780083298</parentid>
<timestamp>2017-11-25T17:29:23Z</timestamp>
<contributor>
<username>Moxy</username>
<id>8729451</id>
</contributor>
<comment>Cut size</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1869">{| class=&quot;wikitable&quot; style=&quot;float: right; text-align: center; font-size: 80%;&quot;
! colspan=&quot;4&quot; style=&quot;font-size: 105%;&quot; |{{center|[[Wikipedia:Administration#Data structure and development|Wikipedia data structure]]}}
|-
! colspan=&quot;4&quot; style=&quot;background:#d3d3d3;&quot; |{{center| [[Wikipedia:Namespace|Namespaces]]}}
|-
! colspan=&quot;2&quot; style=&quot;background:#ddd;&quot; | [[Wikipedia:Namespace#Subject namespaces|Subject namespaces]]
! colspan=&quot;2&quot; style=&quot;background:#ddd;&quot; | [[Help:Using talk pages|Talk namespaces]]
|-
! 0
| [[Wikipedia:What is an article?#Namespace|(Main/Article)]]
| {{ns:1}}
! 1
|-
! 2
| [[Wikipedia:User pages|{{ns:2}}]]
| {{ns:3}}
! 3
|-
! 4
| [[Wikipedia:Project namespace|{{ns:4}}]]
| {{ns:5}}
! 5
|-
! 6
| [[Help:Files|{{ns:6}}]]
| {{ns:7}}
! 7
|-
! 8
| [[Help:MediaWiki namespace|{{ns:8}}]]
| {{ns:9}}
! 9
|-
! 10
| [[Wikipedia:Template namespace|{{ns:10}}]]
| {{ns:11}}
! 11
|-
! 12
| [[Wikipedia:Help namespace|{{ns:12}}]]
| {{ns:13}}
! 13
|-
! 14
| [[Help:Category|{{ns:14}}]]
| {{ns:15}}
! 15
|-
! 100
| [[Wikipedia:Portal|{{ns:100}}]]
| {{ns:101}}
! 101
|-
! 108
| [[Wikipedia:Books|{{ns:108}}]]
| {{ns:109}}
! 109
|-
! 118
| [[Wikipedia:Drafts|{{ns:118}}]]
| {{ns:119}}
! 119
|-
! 446
| [[Wikipedia:Course pages|{{ns:446}}]]
| {{ns:447}}
! 447
|-
! 710
| [[mw:Extension:TimedMediaHandler|{{ns:710}}]]
| {{ns:711}}
! 711
|-
! 828
| [[Wikipedia:Lua|{{ns:828}}]]
| {{ns:829}}
! 829
|-
! 2300
| [[Wikipedia:Gadget|{{ns:2300}}]]
| {{ns:2301}}
! 2301
|-
! 2302
| [[Wikipedia:Gadget|{{ns:2302}}]]
| {{ns:2303}}
! 2303
{{yesno|{{{show virtual ns|yes}}}|yes=
{{!}}-
! colspan=&quot;4&quot; style=&quot;background:#ddd;&quot; {{!}} {{center|[[Wikipedia:Namespace#Virtual namespaces|Virtual namespaces]]}}
{{!}}-
! -1
{{!}} colspan=&quot;3&quot; {{!}} [[Help:Special page|{{ns:-1}}]]
{{!}}-
! -2
{{!}} colspan=&quot;3&quot; {{!}} [[Help:Files|{{ns:-2}}]]
|no=}}
|}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>ag7hbtm5ck4o95nmolardqe69ii7qzu</sha1>
</revision>
</page>
<page>
<title>Template:Ndash</title>
<ns>10</ns>
<id>47111355</id>
<redirect title="Template:En dash" />
<revision>
<id>776817948</id>
<parentid>669214371</parentid>
<timestamp>2017-04-23T13:27:26Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Ndash]]&quot;: Matching redirect target ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="46">#REDIRECT [[Template:En dash]]
{{R from move}}</text>
<sha1>ssqanqaonjuwk8wsu3kxu1uva83sxtu</sha1>
</revision>
</page>
<page>
<title>Template:Punctuation</title>
<ns>10</ns>
<id>10769740</id>
<redirect title="Template:Punctuation marks" />
<revision>
<id>124016043</id>
<timestamp>2007-04-19T05:49:52Z</timestamp>
<contributor>
<username>Emiellaiendiay</username>
<id>294629</id>
</contributor>
<minor/>
<comment>Redirect</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="40">#REDIRECT [[Template:Punctuation_marks]]</text>
<sha1>4o16poxmcnjltho214oy6of14ocdfuh</sha1>
</revision>
</page>
<page>
<title>Template:Punctuation marks</title>
<ns>10</ns>
<id>543927</id>
<revision>
<id>821386314</id>
<parentid>817693061</parentid>
<timestamp>2018-01-20T04:28:23Z</timestamp>
<contributor>
<username>Dicklyon</username>
<id>869314</id>
</contributor>
<comment>rm never-used term</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="9061">{{Infobox
| summary = Infobox for punctuation marks
| name = Punctuation marks
| bodystyle = width:18em; max-width:18em;
| bodyclass = {{#ifeq:{{PAGENAME}}|Punctuation|noprint}}
| abovestyle = background:#ccc;font-size:500%;line-height:1.3;font-weight:normal;font-family:serif;
| above = {{{1|}}}
| subheader1 = &lt;div style=&quot;background:#ccc;font-size:125%;font-weight:bold; &lt;!--modified {{longitem}}:--&gt;padding:0.1em 0.25em 0.2em;line-height:1.2em;&quot;&gt;{{#if:{{{caption|{{{2|}}}}}} |{{{caption|{{{2|}}}}}} |{{PAGENAME}}}}&lt;/div&gt;
| subheader2 = {{#if:{{{variant1|}}} |&lt;div style=&quot;background:#ccc;padding:0 0 0.4em;line-height:1.2em;&quot;&gt;{{Punctuation marks/variant |variant1={{{variant1|}}}|caption1={{{caption1|}}} |variant2={{{variant2|}}}|caption2={{{caption2|}}} |variant3={{{variant3|}}}|caption3={{{caption3|}}} |variant-size={{{variant-size|300%}}} |line-height={{{line-height|0.01}}}}}&lt;/div&gt;}}
| headerstyle = background:#e0e0e0;padding:0.15em;padding-left:0.3em;
&lt;!--------------------- Punctuation -----------------------&gt;
| rowclass1 = noprint
| data1 =
{{aligned table|fullwidth=y|leftright=y|style=line-height:1.3em;
| abovestyle=background:#e0e0e0;padding:0.15em;padding-left:0.3em;
| col2style=font-size:125%;line-height:0.8em;vertical-align:middle;white-space:nowrap;
| above = [[Punctuation]]
| [[apostrophe]]
| ’{{spaces|2}}&lt;nowiki&gt;'&lt;/nowiki&gt;
| [[bracket]]s
| [&amp;nbsp;]{{spaces|2}}(&amp;nbsp;){{spaces|2}}{&amp;nbsp;}{{spaces|2}}&amp;#x27E8;&amp;nbsp;&amp;#x27E9;
| [[Colon (punctuation)|colon]]
| {{small|'''&lt;nowiki&gt;:&lt;/nowiki&gt;'''}}
| [[comma]]
| ,{{spaces|2}}،{{spaces|2}}、
| [[dash]]
| ‒&amp;nbsp;&amp;#x20;–&amp;nbsp;&amp;#x20;—&amp;nbsp;&amp;#x20;―
| [[ellipsis]]
| …{{spaces|2}}...{{spaces|2}}⋯{{spaces|2}}᠁{{spaces|2}}ฯ
| [[exclamation mark]]
| !
| [[Full stop|full stop, period]]
| '''.'''
| [[guillemet]]s
| ‹&amp;nbsp;›{{spaces|2}}«&amp;nbsp;»
| [[hyphen]]
| ‐
| [[hyphen-minus]]
| -
| [[question mark]]
| ?
| [[quotation mark]]s
| ‘&amp;nbsp;’{{spaces|2}}“&amp;nbsp;”{{spaces|2}}'&amp;nbsp;'{{spaces|2}}&quot;&amp;nbsp;&quot;
| [[semicolon]]
| {{small|'''&lt;nowiki&gt;;&lt;/nowiki&gt;'''}}
| [[Slash (punctuation)|slash, stroke, solidus]]
| /{{spaces|2}}⁄
}}
&lt;!-------------------- Word dividers ----------------------&gt;
| rowclass2 = noprint
| data2 =
{{aligned table|fullwidth=y|leftright=y|style=line-height:1.3em;
| abovestyle=background:#e0e0e0;padding:0.15em;padding-left:0.3em;
| col2style=font-size:125%;line-height:0.8em;vertical-align:middle;white-space:nowrap;
| above = [[Word divider]]s
| [[interpunct]]
| '''·'''
| [[Space (punctuation)|space]]
| {{background color|#CEEEF2|&amp;nbsp;}}&amp;nbsp;&amp;#x20;{{background color|#CEEEF2|&amp;ensp;}}&amp;nbsp;&amp;#x20;{{background color|#CEEEF2|&amp;emsp;}}
}}
&lt;!----------------------- General -------------------------&gt;
| rowclass3 = noprint
| data3 =
{{aligned table|fullwidth=y|leftright=y|style=line-height:1.3em;
| abovestyle=background:#e0e0e0;padding:0.15em;padding-left:0.3em;
| col2style=font-size:125%;line-height:0.8em;vertical-align:middle;white-space:nowrap;
| above = General [[typography]]
| [[ampersand]]
| &amp;
| [[asterisk]]
| &lt;nowiki&gt;*&lt;/nowiki&gt;
| [[at sign]]
| @
| [[backslash]]
| \
| [[Bullet (typography)|bullet]]
| •
| [[caret]]
| ^
| [[Dagger (typography)|dagger]]
| † ‡
| [[Degree symbol|degree]]
| °
| [[ditto mark]]
| ”
| [[Inverted question and exclamation marks|inverted exclamation mark]]
| ¡
| [[Inverted question and exclamation marks|inverted question mark]]
| ¿
| [[komejirushi|komejirushi, kome, reference mark]]
| ※
| [[Number sign|number&amp;nbsp;sign, pound, hash]]
| &lt;nowiki&gt;#&lt;/nowiki&gt;
| [[numero sign]]
| №
| [[obelus]]
| ÷
| [[multiplication sign]]
| ×
| [[ordinal indicator]]
| º ª
| [[Percent sign|percent]], [[Per mille|per mil]]
| % ‰
| [[Plus and minus signs|plus and minus]]
| + −
| [[equals sign]]
| {{=}}
| [[basis point]]
| ‱
| [[pilcrow]]
| ¶
| [[Prime (symbol)|prime]]
| ′{{spaces|2}}″{{spaces|2}}‴
| [[section sign]]
| §
| [[tilde]]
| ~
| [[Underscore|underscore, understrike]]
| {{lower|-0.25em|_}}
| [[Vertical bar|vertical bar, pipe, broken&amp;nbsp;bar]]
| &amp;#124;{{spaces|2}}‖{{spaces|2}}¦
}}
&lt;!----------------- Intellectual property -----------------&gt;
| rowclass4 = noprint
| data4 =
{{aligned table|fullwidth=y|leftright=y|style=line-height:1.3em;
| abovestyle=background:#e0e0e0;padding:0.15em;padding-left:0.3em;
| col2style=font-size:125%;line-height:0.8em;vertical-align:middle;white-space:nowrap;
| above = [[Intellectual property]]
| [[Copyright symbol|copyright]]
| ©
| [[Sound recording copyright symbol|sound-recording copyright]]
| ℗
| [[Registered trademark symbol|registered trademark]]
| ®
| [[Service mark symbol|service mark]]
| ℠
| [[Trademark symbol|trademark]]
| ™
}}
&lt;!---------------------- Currency -------------------------&gt;
| rowclass5 = noprint
| data5 =
{{aligned table|fullwidth=y|leftright=y|style=line-height:1.3em;
| abovestyle=background:#e0e0e0;padding:0.15em;padding-left:0.3em;
| col2style=font-size:125%;line-height:0.8em;vertical-align:middle;white-space:nowrap;
| above = [[Currency]]
| [[Currency sign (typography)|currency sign]]
| ¤
}}
{{align|left|[[Currency symbol|currency symbol]]s}}&lt;br /&gt;
&lt;div class=&quot;wrap nounderlines&quot; style=&quot;max-width:17.5em; line-height:1.1em; padding-left:1em;&quot;&gt;
&lt;!--Alphabetical by currency name (not country):--&gt;
&lt;!--A--&gt;[[Afghan afghani|؋]]&amp;#x20;&amp;#x200B;[[Argentine austral|₳]]&amp;#x20;&amp;#x200B;
&lt;!--B--&gt;[[Thai baht|฿]]&amp;#x20;&amp;#x200B;[[Bitcoin|₿]]&amp;#x20;&amp;#x200B;
&lt;!--C--&gt;[[Ghana cedi|₵]]&amp;#x20;&amp;#x200B;[[Cent (currency)|¢]]&amp;#x20;&amp;#x200B;[[Costa Rican colón|₡]]&amp;#x20;&amp;#x200B;[[Brazilian cruzeiro|₢]]&amp;#x20;&amp;#x200B;
&lt;!--D--&gt;[[Dollar sign|$]]&amp;#x20;&amp;#x200B;[[Vietnamese đồng|₫]]&amp;#x20;&amp;#x200B;[[Greek drachma|₯]]&amp;#x20;&amp;#x200B;[[Armenian dram sign|֏]]&amp;#x20;&amp;#x200B;
&lt;!--E--&gt;[[European Currency Unit|₠]]&amp;#x20;&amp;#x200B;[[Euro sign|€]]&amp;#x20;&amp;#x200B;
&lt;!--F--&gt;[[Florin sign|ƒ]]&amp;#x20;&amp;#x200B;[[French franc|₣]]&amp;#x20;&amp;#x200B;
&lt;!--G--&gt;[[Paraguayan guaraní|₲]]&amp;#x20;&amp;#x200B;
&lt;!--H--&gt;[[Hryvnia sign|₴]]&amp;#x20;&amp;#x200B;
&lt;!--K--&gt;[[Lao kip|₭]]&amp;#x20;&amp;#x200B;
&lt;!--L--&gt;[[Turkish lira sign|₺]]&amp;#x20;&amp;#x200B;[[Georgian Lari|₾]]&amp;#x20;&amp;#x200B;
&lt;!--M--&gt;[[Azerbaijani manat|₼]]&amp;#x20;&amp;#x200B;[[German gold mark|ℳ]]&amp;#x20;&amp;#x200B;[[Mill (currency)|₥]]&amp;#x20;&amp;#x200B;
&lt;!--N--&gt;[[Nigerian naira|₦]]&amp;#x20;&amp;#x200B;
&lt;!--P--&gt;[[Spanish peseta|₧]]&amp;#x20;&amp;#x200B;[[Philippine peso sign|₱]]&amp;#x20;&amp;#x200B;[[Pfennig|₰]]&amp;#x20;&amp;#x200B;[[Pound sign|£]]&amp;#x20;&amp;#x200B;
&lt;!--R--&gt;[[Renminbi|元 圆 圓]]&amp;#x20;&amp;#x200B;[[Iranian rial|﷼]]&amp;#x20;&amp;#x200B;[[Cambodian riel|៛]]&amp;#x20;&amp;#x200B;[[Ruble sign|₽]]&amp;#x20;&amp;#x200B;[[Indian rupee sign|₹]]&amp;#x20;[[Rupee sign|₨]]&amp;#x20;&amp;#x200B;
&lt;!--S--&gt;[[Shekel sign|₪]]&amp;#x20;&amp;#x200B;
&lt;!--T--&gt;[[Bangladeshi taka|৳]]&amp;#x20;&amp;#x200B;[[Kazakhstani tenge|₸]]&amp;#x20;&amp;#x200B;[[Mongolian tögrög|₮]]&amp;#x20;&amp;#x200B;
&lt;!--W--&gt;[[Won sign|₩]]&amp;#x20;&amp;#x200B;
&lt;!--Y--&gt;[[Japanese yen|¥ 円]]&lt;!--(yen/yuan)--&gt;
&lt;!-- FYI: Known omissions include ₤ ₶ ₷ ৲ ৹ ৻ ૱ ௹ ₻ ꠸ 𐆖 𐆚 𐆙 𐆗 𐆘 --&gt;
&lt;/div&gt;
&lt;!---------------------- Uncommon -------------------------&gt;
| rowclass6 = noprint
| data6 =
{{aligned table|fullwidth=y|leftright=y|style=line-height:1.3em;
| abovestyle=background:#e0e0e0;padding:0.15em;padding-left:0.3em;
| col2style=font-size:125%;line-height:0.8em;vertical-align:middle;white-space:nowrap;
| above = Uncommon [[typography]]
| [[Asterism (typography)|asterism]]
| ⁂
| [[Fleuron (typography)|fleuron, hedera]]
| ❧
| [[Index (typography)|index, fist]]
| ☞
| [[interrobang]]
| ‽
| [[irony punctuation]]
| ⸮
| [[lozenge]]
| ◊
| [[Tie (typography)|tie]]
| {{lower|0.25em|⁀}}
}}
&lt;!---------------------- footer -------------------------&gt;
| rowclass7 = noprint
| header7 = Related
| rowclass8 = noprint
| data8 = {{startplainlist}}
* {{hlist |[[Diacritic]]s |[[List of logic symbols|Logic symbols]]}}
* [[Whitespace character]]s
{{endplainlist}}
| rowclass9 = noprint
| header9 = In other [[Writing system|script]]s
| rowclass10 = noprint
| data10 = {{hlist|style=line-height:1.3em; |[[Chinese punctuation|Chinese]] |[[Hebrew punctuation|Hebrew]] |[[Japanese punctuation|Japanese]] |[[Korean punctuation|Korean]]}}
| belowclass = hlist noprint
| belowstyle = background:#e0e0e0;padding:0.25em 0.25em 0.4em;line-height:1.75em;font-weight:bold;
| below =
* {{icon|Category}} [[:Category:Typographical symbols|Category]]
* {{icon|Portal}} [[Portal:Typography|Portal]]
* {{icon|Book}} [[Book:Typographical symbols|Book]]
}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>s0n4e75t45bol1hpxosc2317cn1huif</sha1>
</revision>
</page>
<page>
<title>Template:Regex</title>
<ns>10</ns>
<id>47182877</id>
<revision>
<id>671652104</id>
<parentid>671443998</parentid>
<timestamp>2015-07-16T03:28:14Z</timestamp>
<contributor>
<username>Cpiral</username>
<id>2517237</id>
</contributor>
<comment>simplify, clarify</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3387">&lt;onlyinclude&gt;&lt;!--
Make a search link.
--&gt;{{plain link
|url =
{{fullurl:Special:Search|search=&lt;!--
--&gt;{{urlencode:&lt;!-- encodes spaces, so let's avoid unecessary spaces.
Add the &quot;insource:&quot; and its regex /slash delimiters/
--&gt;insource:/{{{pattern|{{{1|''regexp''}}}}}}/&lt;!--
Add &quot;prefix:&quot; You see the space before it.
--&gt; prefix:&lt;!--
--&gt;{{#switch:&lt;!-- add namespace &quot;numbers and letters&quot; recognition --&gt;
{{{prefix|{{{2|}}}}}}
|#default = {{{prefix|{{FULLPAGENAME}}}}}
|n = {{NAMESPACE}}
|0|: = :
|1 = {{ns:1}}:
|2 = {{ns:2}}:
|3 = {{ns:3}}:
|4 = {{ns:4}}:
|5 = {{ns:5}}:
|6 = {{ns:6}}:
|7 = {{ns:7}}:
|8 = {{ns:8}}:
|9 = {{ns:9}}:
|10 = {{ns:10}}:
|11 = {{ns:11}}:
|12 = {{ns:12}}:
|13 = {{ns:13}}:
|14 = {{ns:14}}:
|15 = {{ns:15}}:
|100 = {{ns:100}}:
|101 = {{ns:101}}:
|108 = {{ns:108}}:
|109 = {{ns:109}}:
|118 = {{ns:118}}:
|119 = {{ns:119}}:
|446 = {{ns:446}}:
|447 = {{ns:447}}:
|711 = {{ns:711}}:
|710 = {{ns:710}}:
|828 = {{ns:828}}:
|829 = {{ns:829}}:
|2600 = {{ns:2600}}:
}}
}}&lt;!-- End urlencode. --&gt;
}}&lt;!-- End fullurl
url done
Now for name param of plainlinks.
Appearance of link looks just like the query, unless labeled. --&gt;
|name =
{{#if:
{{{label|{{{3|}}}}}}
|{{{label|{{{3}}}}}}
|insource:/&lt;!-- rebuilding the query for show this time
You saw the &quot;insource:&quot; ouput.
Plainlink's name can't have [[ or ], else it breaks the display.
--&gt;{{#invoke:String|replace
|{{#invoke:String|replace
|{{{pattern|{{{1|regexp}}}}}}&lt;!-- Given pattern
--&gt;|[|&amp;#91;}}&lt;!-- Replace any/all [ with HTML symbol
--&gt;|]|&amp;#93;}}/&lt;!-- replace any/all ] with there HTML symbol
You saw the / added at the end of insource:/regex/
And now for the prefix part of the name plainlinks needs.
You see the space before the &quot;prefix:&quot; output.
--&gt; prefix:&lt;!--
--&gt;{{#switch:
{{{prefix|{{{2|}}}}}}
|#default = {{{prefix|{{FULLPAGENAME}}}}}
|n = {{NAMESPACE}}
|0|: = &amp;#58; &lt;!-- html-symbol escape the : from the template rendering--&gt;
|1 = {{ns:1}}:
|2 = {{ns:2}}:
|3 = {{ns:3}}:
|4 = {{ns:4}}:
|5 = {{ns:5}}:
|6 = {{ns:6}}:
|7 = {{ns:7}}:
|8 = {{ns:8}}:
|9 = {{ns:9}}:
|10 = {{ns:10}}:
|11 = {{ns:11}}:
|12 = {{ns:12}}:
|13 = {{ns:13}}:
|14 = {{ns:14}}:
|15 = {{ns:15}}:
|100 = {{ns:100}}:
|101 = {{ns:101}}:
|108 = {{ns:108}}:
|109 = {{ns:109}}:
|118 = {{ns:118}}:
|119 = {{ns:119}}:
|446 = {{ns:446}}:
|447 = {{ns:447}}:
|711 = {{ns:711}}:
|710 = {{ns:710}}:
|828 = {{ns:828}}:
|829 = {{ns:829}}:
|2600 = {{ns:2600}}:
}}
}}&lt;!-- end #if: {{{label}}} or {{{3}}}
name done --&gt;
}}&lt;!-- End of plainlinks
--&gt;&lt;/onlyinclude&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>guozkaaddcuhk42vbzslpgdgbn2mgvy</sha1>
</revision>
</page>
<page>
<title>Template:Regexp</title>
<ns>10</ns>
<id>47192656</id>
<redirect title="Template:Regex" />
<revision>
<id>670642815</id>
<timestamp>2015-07-09T07:17:58Z</timestamp>
<contributor>
<username>Cpiral</username>
<id>2517237</id>
</contributor>
<comment>new redirect to Template:Regex, which develops a search link with regex</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="27">#REDIRECT[[Template:Regex]]</text>
<sha1>dyej70fc6v9ku49dcor43oq3kvueppz</sha1>
</revision>
</page>
<page>
<title>Template:Search link/doc</title>
<ns>10</ns>
<id>22517913</id>
<revision>
<id>756698251</id>
<parentid>755215686</parentid>
<timestamp>2016-12-26T06:46:58Z</timestamp>
<contributor>
<username>Cpiral</username>
<id>2517237</id>
</contributor>
<comment>/* Basics */ numberofdays, regex filteration hammering on</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="15724">{{redirect|Template:Sl|the template for linking to sections|Template:Section link}}
{{Documentation subpage}}
{{Warning|&lt;nowiki&gt;{{&lt;/nowiki&gt;'''Search link'''&lt;nowiki&gt;}}&lt;/nowiki&gt; should not be used in [[WP:WIAA|articles]] as links to &quot;search result pages&quot; are among the [[WP:LINKSTOAVOID|links normally to be avoided]].}}
{{tsh|sl}}
This template creates a link that can be used to store a Wikipedia search
box query. A search link is useful for [[collaborative search]] on [[Help:Talk|Talk pages]] and most other pages, but it is not to be used in articles. If used in [[Wikipedia|article]]s, it outputs the above warning.
=== Basics ===
&lt;code&gt;{&lt;nowiki/&gt;{Search link|first|second|third}}&lt;/code&gt;
* The first parameter is for ''the search'', or query.
* The second parameter is a ''label for the link''.
* The third parameter is the ''search domain''.
The name of the template is ''Search link'', or ''sl'' for short.&lt;br/&gt;
The second and third parameters are optional and have defaults, so the short form is {{tlx|sl|''query''}}.
Both a search link and a search box go to the same search engine. The same query produces the same result.
The basic search covers articles. It finds words and phrases composed of letters and numbers very quickly, but a basic search can also query for all articles that contain a string that includes punctuation, math, and other symbols as seen in the page [[wp:content|content]] or as seen in the page wikitext.
{| class=wikitable
|+ Basic search principles when using a search link
|valign=top|1
||&lt;code&gt;{&lt;nowiki/&gt;{Search link&lt;br /&gt;|&quot;search engine query&quot;}}&lt;/code&gt; &lt;br/&gt;
{{Search link|&quot;search engine query&quot;}}
|There is one search term, a phrase that produces '''18''' results, including a [[wp|redirect]]. For one term, the page ranking rule is simple: title matches, on top. Two pages hit on &quot;Search Engine Query&quot; and one on &quot;[&lt;nowiki/&gt;[Search engine (computing)|search engine]] query&quot;.
|-
|valign = top |2
|dummy|&lt;code&gt;{&lt;nowiki/&gt;{Search link&lt;br/&gt;|&quot;search engine query&quot;&lt;br/&gt;
insource:/&quot;search engine query&quot;/}}&lt;/code&gt;&lt;br /&gt;
{{Search link|&quot;search engine query&quot; insource:/&quot;search engine query&quot;/ }}
|width=52%| Added a term: insource:/&quot;''slash delimited regex''&quot;/. Now there are '''15'''. Three were filtered out because regex match ''only exact strings''. All other searches always ''ignore capitalization, punctuation, math, and other symbols'', like the ]] above. Proves a basic difference with search 1: only ''insource:'' searches wikitext. All other terms search what is rendered.
|-
|valign=&quot;top&quot;|3
||&lt;code&gt;{&lt;nowiki/&gt;{Search link&lt;br/&gt;|search engine query}}&lt;/code&gt;&lt;br /&gt;
{{Search link|search engine query}}
||There are three search terms. They produce '''1169''' results. Many page ranking rules apply to make the top most likely and the bottom least likely, ''probably''.
|-
|valign=top|4
|dummy to enable the pipe character to pass|&lt;code&gt;{&lt;nowiki/&gt;{Search link&lt;br /&gt;|search engine query&lt;br/&gt; insource:/&quot;search engine query&quot;/}}&lt;/code&gt; &lt;br/&gt;
{{Search link|search engine query insource:/&quot;search engine query&quot;/}}
| Similar to search 3, the regex crawled character-by-character through the same '''1169'''-page filter to produce its same 15 results. As much as that seems, 1169 is nothing compared to running an unfiltered (unaccompanied) regex exposed to the {{NUMBEROFPAGES}} pages on the wiki to produce some 15 results.&lt;ref&gt;Some users' default search domain is all namespaces. In cases like the bare regex search, the search engine protects itself by limiting ''all'' regex searches. A bare regex that crawls through millions of pages can take over twenty seconds, and may even cost you an HTML timeout. During that time very few other regex searches are allowed. Always use a filter with regex.&lt;/ref&gt;
|-
|valign = top | 5
||&lt;code&gt;{&lt;nowiki/&gt;{search link&lt;br /&gt;|insource:/&quot;2 + 2&quot;/&lt;br /&gt;prefix:Arithmetic&lt;br /&gt;|&quot;Arithmetic&quot; titles &amp; &quot;2 + 2&quot;}}&lt;/code&gt;&lt;br/&gt;{{search link|insource:/2 \+ 2/ prefix:Arithmetic|&quot;Arithmetic&quot; titles &amp; &quot;2 + 2&quot;}}
|The regexp is the first term, but the ''prefix:'' term first filters out all but a few [[wp:pagename|titles]] that start with the characters A-r-i-t-h-m-e-t-i-c, then the regexp crawls character-wise. Perhaps such a label conveys this to your team.
|}
This template differs from the search box superficially when searching for an equals sign. In the search box you just say &lt;kbd&gt;=&lt;/kbd&gt;, but here you must use the five-letter string &lt;nowiki&gt;{{=}}&lt;/nowiki&gt;.&lt;ref&gt;Searching for an equals sign requires using a regexp. As with any template, use {{tl|1==}} or {{para|1}} to pass in an equals sign to any parameter, even the link label.&lt;/ref&gt;
In search 5 notice the need for the double quotes around the search pattern: &lt;code&gt;insource:/&quot;''slash&amp;nbsp;delimited&amp;nbsp;regexp''&quot;/&lt;/code&gt;. These protect any characters from being interpreted as regex metacharacters, and insures they are interpreted literally. In basic searches quotes are always used, to enable exact-string searches in the wikitext. In advanced searches the double quotes are not used, so that the metacharacters can act as conditional and branching operators to create generalized patterns.
Search 2 exemplifies the easiest filter to apply to accompany any regexp search. It just takes the same phrase and make it a separate term. Given any regexp &lt;kbd&gt;insource'''/'''&quot;''exact string search''&quot;'''/'''&lt;/kbd&gt;, just accompany it by an &lt;kbd&gt;insource:&quot;''exact string search''&quot;&lt;/kbd&gt;. The later term will always act like a perfect filter, matching every alphanumeric, and ignoring every non-alphanumeric, speeding through an indexed search to filter out pages the regexp couldn't possibly match. As for other filters, a namespace is weak, but every additional term increases ''regex'' power.
The next section covers ''Search link'' arguments more in depth.
=== Advanced ===
{{details|topic=Search engine queries|Help:Searching}}
Here are the [[help:Template#Parameters|template parameters]] for Search link.
{| class=&quot;wikitable&quot;
|-
|'''1'''
|or {{para|query}} || The search query. It becomes the text of the search link (how the link will look) so it accepts {{para|text}}.
|-
|'''2'''
|or {{para|label}} || A label to replace the default text. A new look to the link, so it also accepts {{para|link}}. Defaults to show the search query.
|-
|'''3'''&lt;br /&gt;⋮&lt;br/&gt;'''20'''
|style=&quot;white-space: nowrap;&quot;|
&lt;!--{{Big|{{!}}}}{{small|{{param|3}}}}{{Big|{{!}}}}{{small|{{param|4}}}}{{Big|{{!}}}}{{small|{{param|5}}}}{{Big|{{!}}}}…{{big|{{!}}}}{{small|{{param|20}}}}--&gt;
{{Big|{{!}}}}'''3'''{{Big|{{!}}}}'''4'''{{Big|{{!}}}}'''5'''{{Big|{{!}}}}…{{big|{{!}}}}'''20'''&lt;br /&gt;
or {{para|ns}}
|
The search domain: one or more namespaces abbreviated &quot;ns''x''&quot;, where ''x'' is
any namespace number.&lt;br /&gt;&lt;code&gt;|'''ns'''''x''|'''ns'''''x''|'''ns'''''x''|…|'''ns'''''x''&lt;/code&gt;, or
&lt;code&gt;'''ns='''ns''x''&amp;ns''x''&amp;ns''x''…&amp;ns''x''&lt;/code&gt;, or &lt;code&gt;'''ns='''all&lt;/code&gt;. Defaults to ns0.
|-
|
|{{para|limit}} || Number of search results on the first page. Named parameter only, not positional.
|}
{{namespaces}}
You only ever need to use parameters 3{{ndash}}20 if you want a profile of two or more namespaces for a search domain.
Otherwise you can just say the namespace name (or ''all'') at the beginning of the query,
or a ''prefix'' parameter at the end of the query.
When the query goes through this template, the default search domain is article space, just as it is for basic users. The default search domain of a user, logged-in or not, is article space ''unless the user set their preference''.&lt;ref&gt;Advancing editors who begin to search for Wikipedia's other pages may at times set their default search domain (at [[Special:Search]] ''Advanced'') to ''[[Special:statistics|all]]''. Setting search to ''all'' is the most likely scenario to &quot;set and forget&quot;. Since that includes article space, the usual results are comparable.&lt;/ref&gt; But no matter who uses a search link the results will always be the same. &quot;Cut and paste&quot; can never guarantee the same results for a search, but a search link can because the search domain is just article space for everyone, or search domain is the set of namespaces you set for everyone.
If you know the numbers of your search domain profile, you just type them in &lt;code&gt;{{nowrap|1=ns=ns0&amp;ns1&amp;ns2600}}&lt;/code&gt;. (You can get them from the [[wp:namespace|namespace]] table to the right.) Otherwise you refine your query ''and'' search domain on the search results page, whose ''Advanced'' interface is designed to select and adjust namespaces with no knowledge of the namespace numbers. Once that produces satisfactory results, you copy the namespaces string from the URL (in your browser's address bar), and paste it into {{para|ns}}, and you can get the query from the search results page search box, and paste it as the query, and that's your search link.
If you have just one namespace in your search link, and it's not article space,
you can specify it by saying, say, &lt;kbd&gt;ns=ns10&lt;/kbd&gt;, or &lt;kbd&gt;|ns10&quot;&lt;/kbd&gt; at parameter position 3 or greater:
:{{#invoke:DemoTemplate|sl|&quot;search link&quot; namespace||ns10}}
For ''one'' namespace the explicit name is preferred:
:{{#invoke:DemoTemplate|sl|Template:&quot;search link&quot; namespace}}
The explicit name is preferred if you will be publishing or saving your search link. That way when it is run later the search domain shows up explicitly at the beginning of the search box of the search results page to inform the user. Otherwise ''only the URL'' and ''only the namespace-profile dialog frame'' pops up on the search results page to inform the user. When it is two or more namespaces, these things always happen, because the query only accepts one namespace (as the first term only). But '''''all''''' is also an informative query, a pseudo-namespace for Search only. If you see a query begin with &lt;kbd&gt;all:&lt;/kbd&gt;, the URL will be loaded with all the namespace parameters.
You can use &quot;all&quot; in {{tlf|Search link}} to specify all namespaces:
:&lt;code&gt;{&lt;nowiki/&gt;{sl|''query''|'''ns=all'''}}&lt;/nowiki&gt;&lt;/code&gt;
:&lt;code&gt;{&lt;nowiki/&gt;{sl|''query''|''label''|'''all'''}}&lt;/nowiki&gt;&lt;/code&gt;
but again, it is far more preferable to say
:{{#invoke:DemoTemplate|sl|all:&quot;search link&quot; namespace}}
than it is to use:
:{{#invoke:DemoTemplate|sl|&quot;search link&quot; namespace||all}}
for the reasons given just above.
''But'' when specifying &quot;all&quot;, the query time is about seven times greater because there are [[special:statistics|that many more pages on the wiki]] than there are articles. If a more targeted search is possible, it runs much more quickly than the &quot;all&quot; search.
For example, if you have a query for which know the search domain is 10 and 11, and you want ''no label'', then you need a parameter 3, ''but you need no parameter 2'', so per the [[Help:Template#Parameters|template parameter rules]] the search link can be made in four general ways:
*&lt;code&gt;{&lt;nowiki/&gt;{sl|''query'''''||'''ns10|ns11}}&lt;/code&gt; When parameter 1 unnamed, and parameter 2 is unnamed '''{{big|{{!}}&amp;thinsp;{{!}}}}''' (defined as the &quot;empty string&quot;), then parameter 3 can be defined unnamed &lt;kbd&gt;ns10&lt;/kbd&gt;, and parameter 4 can be defined unnamed &lt;code&gt;ns11&lt;/code&gt;, and so on. Nothing is named because everything is defined.
*&lt;code&gt;{&lt;nowiki/&gt;{sl|''query''|3=ns10|4=ns11}}&lt;/code&gt; Parameter 2 is undefined, but that's fine because parameters 3 and above are all named...
*&lt;code&gt;{&lt;nowiki/&gt;{sl|''query''|ns=ns10&amp;ns11}}&lt;/code&gt; or the empty positional parameter '''{{big|{{!}}&amp;thinsp;{{!}}}}''' is not needed when {{para|ns}} defines itself named.
*&lt;code&gt;{&lt;nowiki/&gt;{sl|query=''query''|label=|ns=ns10&amp;ns11}}&lt;/code&gt; Everything is explicitly named.
For another example, if you select the &quot;Wikipedia&quot; and &quot;Help&quot; namespaces, then run a query, the URL will show &lt;code&gt;ns4=1&amp;ns12=1&lt;/code&gt;. Copy that and paste it to {{para|ns|ns4{{=}}1&amp;ns12{{=}}1}}. (Note: you can ignore the &quot;=1&quot; part from the URL.)
Note how the URL contains ns0, ns1, ns2, and ns3, and how it got them:
:&lt;code&gt;&lt;nowiki&gt;{{sl|systems operations|3=ns2|4=ns1|ns=ns3|20=ns0}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{sl|systems operations prefix:{{FULLPAGENAME}}|systems operations|ns2|4=ns1|ns=ns3|20=ns0}}
:&lt;code&gt;&lt;nowiki&gt;{{sl|query = systems operations|||ns2|ns1|ns3|ns0}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{sl|query = systems operations prefix:{{FULLPAGENAME}}||systems operations|ns2|ns1|ns3|ns0}}
:&lt;code&gt;&lt;nowiki&gt;{{sl|systems operations|3=ns2&amp;ns1&amp;ns3&amp;ns0}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{sl|systems operations prefix:{{FULLPAGENAME}}|systems operations|3=ns2&amp;ns1&amp;ns3&amp;ns0}}
If you need to develop a highly specific search domain, a very elaborate one carved out of a set of the thirty namespaces, then you will have developed this at the search results page using the ''Advanced'' search domain picker there. Then you just cut and paste the entire string ''from the URL'' of your found ''search domain'' namespaces, and paste it into one named parameter {{para|ns}}.
To type in namespaces 0, 2, 4, 5, 7 and 9, with no label, the two easiest ways are:
* &lt;code&gt;{&lt;nowiki/&gt;{sl|''query''||'''ns0|ns2|ns4|ns5|ns7|ns9'''}}&lt;/code&gt;
* &lt;code&gt;{&lt;nowiki/&gt;{sl|''query''|ns='''ns0&amp;ns2&amp;ns4&amp;ns5&amp;ns7&amp;ns9'''}}&lt;/code&gt;
The order is irrelevant.
== Advanced examples ==
{{for|examples| Help:Searching/Regex/Sandboxing}}
All these involve &lt;code&gt;insource:/''slash delimited regex''/&lt;/code&gt; '''with filters'''. Any search link with an &lt;code&gt;insource:/''regex''/&lt;/code&gt; search should always provide the additional query terms that would filter (reduce) the search domain as much as possible. This template defaults to article space if no namespace is given, which is a filter.
;Quoting
The need to match an equals in an article is not surprising, and is basic. You have to use {{tl|1==}} or {{para|query}} or {{para|1}} just to get the equals sign in your query to the search engine, or {{tl|!}} to get the pipe character to the search engine. Both pipe characters and the equals signs are template ''sensitive'' for all templates, so you can always quote them with curly brackets like that inside templates. Although the search ''box'' can take = and | directly, quoting is necessary in the search ''link'' because otherwise they have their parameters meaning.
Regex are ''sensitive'' to punctuation, brackets, math and other symbolic characters, collectively known as &quot;[[regex#Character classes|punctuation]]&quot; so you quote them, because otherwise they have their regex ''metacharacter'' meaning. The &quot;metacharacters&quot; of CirrusSearch have claimed most punctuation characters as functions in their regex, but you don't have to know all the metacharacter functions just to search for them as targets literally. You can simply quote all punctuation to search for them as literal targets in wikitext. The way to easily quote every character in an entire regexp is to put the whole term in quotes: &lt;kbd&gt;insource:/&quot;''regexp with literal characters''&quot;/&lt;/kbd&gt;
To get a pipe character through both the template and the search engine to target it as a character in wikitext, you have to quote it twice, hence the frequent need for the six characters &lt;kbd&gt;\{{tl|!}}&lt;/kbd&gt; in an advanced search link. The equals sign is not a metacharacter, so it does not have to be quoted twice, as the pipe character does. The pipe character is a metacharacter that means OR.
To generate advanced regex searches, see about doing so at {{tl|regex}}.
{{Help:Searching/Features}}&lt;!--
--&gt;{{Help:Searching/Regex}}{{Help:Searching/Regex/Sandboxing}}
== See also ==
{{Internal search templates common doc|seealso=}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Search templates]]
[[be:Шаблон:Пошук]]
[[ja:Template:Search]]
}}&lt;/includeonly&gt;</text>
<sha1>q2o9s5fgyq5d00pios5hdfdomfy9gjb</sha1>
</revision>
</page>
<page>
<title>Template:ShortSearch</title>
<ns>10</ns>
<id>24782278</id>
<revision>
<id>736544656</id>
<parentid>671331920</parentid>
<timestamp>2016-08-28T07:05:47Z</timestamp>
<contributor>
<username>Elegie</username>
<id>5231193</id>
</contributor>
<comment>Use HTTPS for Wikipedia/Google links to provide increased reader privacy/security</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="318">&lt;span class=&quot;plainlinks&quot;&gt;[https://en.wikipedia.org/wiki/Special:Search?search={{urlencode:{{{1}}}}} WP] [https://www.google.com/search?q=site%3Awikipedia.org+{{urlencode:{{{1}}}}} GWP] [https://www.google.com/search?q={{urlencode:{{{1}}}}} G]&lt;/span&gt;&lt;noinclude&gt;
[[Category:Search templates|{{PAGENAME}}]]
&lt;/noinclude&gt;</text>
<sha1>qqabxpq4p0n9b7o4wb3z24ro176503t</sha1>
</revision>
</page>
<page>
<title>Template:Slre</title>
<ns>10</ns>
<id>47192412</id>
<redirect title="Template:Regex" />
<revision>
<id>670638158</id>
<timestamp>2015-07-09T06:28:57Z</timestamp>
<contributor>
<username>Cpiral</username>
<id>2517237</id>
</contributor>
<comment>new redirect to Template:Regex, which develops a search link with regex</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="27">#REDIRECT[[Template:Regex]]</text>
<sha1>dyej70fc6v9ku49dcor43oq3kvueppz</sha1>
</revision>
</page>
<page>
<title>Template:Space</title>
<ns>10</ns>
<id>5469970</id>
<redirect title="Template:Spaces" />
<revision>
<id>561674948</id>
<parentid>455998035</parentid>
<timestamp>2013-06-26T14:17:36Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>redirect to [[Template:Spaces]] per protected edit request</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="29">#REDIRECT [[Template:Spaces]]</text>
<sha1>ox12ekkowioy7uiwg47qmdn6epzwzce</sha1>
</revision>
</page>
<page>
<title>Template:Startplainlist</title>
<ns>10</ns>
<id>42322412</id>
<redirect title="Template:Plainlist" />
<revision>
<id>659675548</id>
<parentid>628962115</parentid>
<timestamp>2015-04-28T13:11:26Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>Protected Template:Startplainlist: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="32">#REDIRECT [[Template:Plainlist]]</text>
<sha1>01aeayl6b16iik8umczpd3ms931mcu5</sha1>
</revision>
</page>
<page>
<title>Template:Strike</title>
<ns>10</ns>
<id>28473800</id>
<redirect title="Template:Strikethrough" />
<revision>
<id>819689513</id>
<parentid>769931107</parentid>
<timestamp>2018-01-10T19:26:02Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Strike]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefi...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="120">#REDIRECT [[Template:Strikethrough]]
{{Redirect category shell|
{{R from related word}}
{{R from template shortcut}}
}}</text>
<sha1>g8n85a5nsq3z70pdtj8vt7x8vqa0ybh</sha1>
</revision>
</page>
<page>
<title>Template:Template</title>
<ns>10</ns>
<id>841527</id>
<redirect title="Template:Tl" />
<revision>
<id>232521978</id>
<parentid>232520097</parentid>
<timestamp>2008-08-17T17:34:06Z</timestamp>
<contributor>
<username>Kurykh</username>
<id>529595</id>
</contributor>
<minor/>
<comment>Protected Template:Template: [[WP:HRT]] [edit=sysop:move=sysop]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="25">#REDIRECT [[Template:Tl]]</text>
<sha1>cdpzj9yp99pn5v093b404f4sc7cybv1</sha1>
</revision>
</page>
<page>
<title>Template:Tlre</title>
<ns>10</ns>
<id>47190759</id>
<redirect title="Template:Template usage" />
<revision>
<id>671027424</id>
<parentid>670637979</parentid>
<timestamp>2015-07-11T22:16:48Z</timestamp>
<contributor>
<username>Cpiral</username>
<id>2517237</id>
</contributor>
<comment>change target to Template usage</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="36">#REDIRECT[[Template:Template usage]]</text>
<sha1>4upel98p6hf0lqcqs94e5h08aojlc1a</sha1>
</revision>
</page>
<page>
<title>Template:Tsh</title>
<ns>10</ns>
<id>17811241</id>
<redirect title="Template:Template shortcut" />
<revision>
<id>819688149</id>
<parentid>750522875</parentid>
<timestamp>2018-01-10T19:22:23Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Tsh]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="74">#REDIRECT [[Template:Template shortcut]]
{{rcatsh|
{{R msp}}
{{R tsh}}
}}</text>
<sha1>ioa2u7bu5539o0pak4nyq6j6ksdod25</sha1>
</revision>
</page>
<page>
<title>Template:Val</title>
<ns>10</ns>
<id>16592146</id>
<revision>
<id>674925404</id>
<parentid>667661385</parentid>
<timestamp>2015-08-07T01:44:19Z</timestamp>
<contributor>
<username>Johnuniq</username>
<id>6036800</id>
</contributor>
<comment>replace with copy of [[Template:Val/sandboxlua]] to implement [[Module:Val]] per discussions on talk</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="109">&lt;includeonly&gt;{{{{{♥|safesubst:}}}#invoke:val|main}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>8c8rno90y3r62xfltvitd5mej4s5cnx</sha1>
</revision>
</page>
<page>
<title>Template:Wpsearch</title>
<ns>10</ns>
<id>14321437</id>
<revision>
<id>736544750</id>
<parentid>695604615</parentid>
<timestamp>2016-08-28T07:07:11Z</timestamp>
<contributor>
<username>Elegie</username>
<id>5231193</id>
</contributor>
<comment>Use HTTPS for Bing link to provide increased reader privacy/security</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1689">{{#ifexist:{{{1}}} (disambiguation)|[[{{{1}}} (disambiguation)|{{{1}}}]]|{{#ifexist:{{{1}}}|[[{{{1}}}]]|{{{1}}} }} }} &amp;ndash; &lt;span class=&quot;plainlinks&quot;&gt;[{{fullurl:Special:Search|search={{urlencode:{{{1|example phrase}}}}}&amp;fulltext=Search}} Wikipedia search] {{!}} [https://www.google.com/search?q=site%3Aen.wikipedia.org+{{urlencode:{{{1|example phrase}}}}} Google search] {{!}} [https://www.bing.com/search?q=site%3Aen.wikipedia.org+{{urlencode:{{{1|example phrase}}}}} Bing search] {{!}} [https://duckduckgo.com/?q=site%3Aen.wikipedia.org+{{urlencode:{{{1|example phrase}}}}} DuckDuckGo search] {{!}} [https://search.yahoo.com/search?p=site%3Aen.wikipedia.org+{{urlencode:{{{1|example phrase}}}}} Yahoo search] &lt;/span&gt;&lt;!--
--&gt;&lt;noinclude&gt;
{{documentation|content=
{{info|1=
'''This template should not be used in articles (including on disambiguation pages).'''
}}
This template produces search links from search engines giving results of pages on English Wikipedia for the given input in the unnamed first parameter.
==Syntax==
&lt;code&gt;&lt;nowiki&gt;{{wpsearch|example phrase}}&lt;/nowiki&gt;&lt;/code&gt;
===Parameters===
* {{param|1}} &amp;mdash; &lt;small&gt; (MANDATORY) &lt;/small&gt; Search term to search for
==Examples==
To search for the term &quot;Wikipedia&quot;
:{{tlx|wpsearch|Wikipedia}}
{{wpsearch|Wikipedia}}
To search for the term &quot;Wikimedia&quot;
:{{tlx|wpsearch|Wikimedia}}
{{wpsearch|Wikimedia}}
To search for the term &quot;R + L = J&quot; (or any similar term having an equals sign)
:{{tlx|wpsearch|2= 1= R + L = J}}
{{wpsearch|1= R + L = J}}
:&lt;small&gt; The &lt;code&gt;1=&lt;/code&gt; is necessary to prevent a template error &lt;/small&gt;
==See also==
* {{tl|search}}
* {{tl|search link}}
}}
[[Category:Search templates]]
&lt;/noinclude&gt;</text>
<sha1>9vsuyyrjb16rnvlsbr77e3jrrgoeld9</sha1>
</revision>
</page>
<page>
<title>Help:Searching/Features</title>
<ns>12</ns>
<id>47206522</id>
<revision>
<id>821643683</id>
<parentid>817778654</parentid>
<timestamp>2018-01-21T19:23:36Z</timestamp>
<contributor>
<ip>98.164.21.123</ip>
</contributor>
<comment>/* Fuzzy search, wildcards, and stemming */ - corrected &quot;neight&quot; to &quot;neither&quot;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="61291">== Search engine features ==
&lt;!-- This subpage is for transclusion at
* Template:search link
* Help:Searching/Draft
* Help:Advanced search (possibly)
* Template:regex --&gt;
The search engine can
* sort by date
* fold character families. An &lt;kbd&gt;e&lt;/kbd&gt; matches an &lt;kbd&gt;ë&lt;/kbd&gt;, and &lt;kbd&gt;[[Aeroskobing]]&lt;/kbd&gt; matches &lt;kbd&gt;[[Ærøskøbing]]&lt;/kbd&gt;.
* understand when a page &lt;kbd&gt;linksto&lt;/kbd&gt; or &lt;kbd&gt;hastemplate&lt;/kbd&gt;, or has something &lt;kbd&gt;intitle&lt;/kbd&gt;, or is &lt;kbd&gt;incategory&lt;/kbd&gt;
* understand &lt;kbd&gt;OR&lt;/kbd&gt; and &lt;kbd&gt;AND&lt;/kbd&gt;, and two forms of ''not''.
* perform fuzzy searches on word spellings.
* locate words as ''near'' to each other as you specify.
* find wildcard expressions and [[regular expressions]].
A search matches what you see rendered on the screen and in a print preview.
The raw &quot;source&quot; wikitext is searchable by employing the &lt;kbd&gt;insource&lt;/kbd&gt; parameter.
For these two kinds of searches a word is any string of consecutive letters and numbers
matching a whole word or phrase.
All other keyboard characters like
punctuation marks, brackets and slashes, math and other symbols,
are not normally searchable.
By default Search will also [[stemming|stem]] the words and match them too.
It automatically sorts results by the frequency and location of these,
but also can boost page ranking by time, template usage, or even similarity to other pages.
Search is a [[search engine]] that does a [[full text search]]
by querying an [[full text index|index]] database.
It offers search syntax and parameters exceeding the capabilities
and control of other public search engines that could search Wikipedia.
=== Page score ===
Say the search box is given &lt;kbd&gt;two words&lt;/kbd&gt;.
The search starts with two index lookups,
and the two results are combined with a logical AND.
But before they are displayed as search results,
they must all be assigned a final score
before the top twenty (listed on the first page) can be displayed,
and they must be formatted with snippets and highlighting.
Page ranking deals quickly with very large numbers of pages,
by approaching things statistically, and taking several swipes
through the data.
# The frequency and location of each word determines the first sorting.&lt;ref&gt;
Unlike other data that score a page ranking,
word frequency and location data
can be kept updated in the index at all times.
For each word on the wiki,
the index stores a list of page names where that word can be found.
Along with page name, the word's locations and count are also stored.
[[Apache Lucene]] is the indexer, and
it maintains the data; it uses the [[TF/IDF|term frequency]] algorithm.
For how it does this, see
[https://lucene.apache.org/core/4_9_0/core/org/apache/lucene/search/similarities/TFIDFSimilarity.html TFIDF Similarity].&lt;/ref&gt;
# The order of the words determines the second sorting. If the two words happen to be found in the same order on a page, that page is boosted again.
# The number of incoming links.&lt;ref&gt;
Unlike for search indexes,
page-ranking data is not immediately updated.
When the number of incoming links
has changed more than 20%,
then it is updated.&lt;/ref&gt;
These attributes for a word earn that page a higher score:
* position in the title
* position in the lead section
* repetition
* close proximity to other words in the query
There can be several other scoring mechanisms.
The parameters that you can control are
&lt;kbd&gt;morelike&lt;/kbd&gt;, &lt;kbd&gt;boost-template&lt;/kbd&gt;, and &lt;kbd&gt;prefer-recent&lt;/kbd&gt;.
=== General description ===
There are now eleven parameters for various approaches
to searching the many namespaces.
Four of the seven new parameters now offer to target these
page characteristics:
&lt;kbd&gt;hastemplate&lt;/kbd&gt; and &lt;kbd&gt;linksto&lt;/kbd&gt;, &lt;kbd&gt;insource&lt;/kbd&gt; and
&lt;kbd&gt;insource:/regexp/&lt;/kbd&gt;.
The other three now offer to target page ranking:
&lt;kbd&gt;morelike&lt;/kbd&gt; works all alone,
a &lt;kbd&gt;prefer-recent&lt;/kbd&gt; term can be added to any query,
and there is now also a &lt;kbd&gt;boost-template&lt;/kbd&gt; parameter.
The other four, preserved in name only,
from the entirely rewritten previous version of Search,
are &lt;kbd&gt;intitle&lt;/kbd&gt;, &lt;kbd&gt;incategory&lt;/kbd&gt;, &lt;kbd&gt;prefix&lt;/kbd&gt;, and ''namespace''.
Any search will feature one of these approaches
* Rely on page ranking; ignore most results; run once.
* Search for an exact string using a ''simple'' regexp; pretest a small search domain.
* Hack out a highly refined set of page characteristics with concern only for an exact count of pages; refine in a sandbox and on the search results page.
The concept of a '''search domain''' plays an important part in all this.
By default it is just article space, but in general
a search domain starts out as a set of namespaces,
and ends up as all the pages in the search result.
One term of a query
will set the search domain
for another term in the same query.
The order is optimized by the search engine.
The query &lt;kbd&gt;''term1 term2''&lt;/kbd&gt; transforms the search domain twice
to get those search results.
For example, a bare namespace returns the pages of the namespace.
The query &lt;kbd&gt;''term1 term2'' ''regexp''&lt;/kbd&gt;
relies heavily on the first two terms to reduce the search domain size.
All terms in a query are indexed searches unless they are a regexp.
Indexed terms run ''word-wise instantly'', and a regexp runs ''character-wise slowly''.
Even the most basic use of a regexp, just to find an exact string,
should always limit the size of its search domain to as little as possible.
This can be as simple as adding a few terms, (as covered below),
because each term in a query tends to reduce the number of pages.
Never run a ''bare'' regexp on the wiki
especially if your ''user profile'' is preset to '''Everything'''.
The search engine limits the number of regexp searches that can run at once.
Without the proper filter running alongside a regexp it will run for up to
twenty seconds, and then incur an HTML timeout.
On the search results page, the '''initial search domain'''
on which the query was run is indicated by the following,
given in increasing power to override the others:
* an open namespace dialog if the user has preset a profile of namespaces
* '''Content pages''' or '''Multimedia''' or '''Everything''': if one of them was the initial search domain, then the color of that one's text will have turned from (link-colored) blue to (presentation) black.
* a namespace parameter in the query
* a &lt;kbd&gt;prefix&lt;/kbd&gt; parameter overrides them all.
For example, if the namespace parameter is &lt;kbd&gt;all&lt;/kbd&gt;, the size of the initial search domain will be the {{NUMBEROFPAGES}} pages in all namespaces: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 100, 101, 102, 103, 104, 105, 106, 107, 460, 461, 490, 491, 828, 829, 1198, 1199, 2300, 2301, 2302, 2303, 2600
A ''prefix'' parameter specifies ''just one'' of those namespaces, in whole or part.
If the initial search domain is the default, '''Content pages''' its size is the {{NUMBEROFARTICLES}} pages in namespace 0, (article space).
A search can be '''set into a link''' to specialize and share searches:
&lt;kbd&gt;[&lt;nowiki/&gt;[Special:Search/''search'']]&lt;/kbd&gt;.
Such a query should always be a ''fully specified''
by specifying an initial search domain so as to
avoid user profile discrepancies.
This way it gives the same results.
For example, if more than one namespace is needed,
use {{template|search link}}.&lt;ref&gt;
{{tlf|search link}} always produces fully specified queries,
even if no namespaces is given, because it defaults to article space.&lt;/ref&gt;
Other helpful approaches to the search engine features are
* templates such as {{tl|template usage}} that offer pre-made specialized searches.
* [[mw:Extension:InputBox|Input box]] setups, such as the one at the bottom of this page, that can perhaps be made to work with such templates.
* driving new or improved feature requests at [https://phabricator.wikimedia.org/tag/cirrussearch phabricator]
=== Syntax ===
Greyspace ''characters'' are the non-alphanumeric characters:
&lt;kbd&gt;~!@#$%^&amp;*()_+{}|[]\:&quot;;'&lt;&gt;?,./&lt;/kbd&gt;.
Any string of greyspace characters and/or [[whitespace characters]] is &quot;greyspace&quot;.
Greyspace is ignored except where it has meaning as a modifier in syntax.
* &lt;kbd&gt;+''term''&lt;/kbd&gt; turns off &quot;Did you mean&quot; suggestions
* &lt;kbd&gt;_''term''&lt;/kbd&gt; turns off &quot;Did you mean&quot; suggestions for that ''term''
* &lt;kbd&gt;-''term''&lt;/kbd&gt; means '''not'''. It changes the meaning from include to ''exclude''.
* &lt;kbd&gt;!''term''&lt;/kbd&gt; also means '''not'''.
* The colon &lt;kbd&gt;:&lt;/kbd&gt; character can specify the &quot;article space&quot; as the search domain, and it can, in some cases, act as a letter or number when ''inside'' a word (non-spaced). These are covered below.
* The tilde &lt;kbd&gt;~&lt;/kbd&gt; character associates generally to finding more search results:
** &lt;kbd&gt;~''query''&lt;/kbd&gt; guarantees search results instead of navigation.
** &lt;kbd&gt;''word''~&lt;/kbd&gt; does a &quot;fuzzy search&quot; for that word.
** &lt;kbd&gt;&quot;''exact phrase''&quot;~&lt;/kbd&gt; adds [[stemming]] for each word.
** &lt;kbd&gt;&quot;''exact phrase''&quot;~n&lt;/kbd&gt; does a &quot;proximity search&quot;, allowing n extra words inside the exact wording.
Parameters also accept words and phrases,
but each can search their own index and interpret their own arguments, such as for
* requiring a namespace or not, or accepting namespace aliases or not
* reporting redirects or not
* for a pagename input: being case sensitive or not, or accepting the underscore &lt;kbd&gt;_&lt;/kbd&gt; character in lieu of a space character or not
* delimiters for there arguments
* the meaning of their own modifier characters syntax
The delimiters:
* Namespace needs no delimiters, but accepts whitespace to the left and greyspace to the right
* Prefix accepts only whitespace between the namespace and the pagename, and accepts greyspace to the left.
* &lt;kbd&gt;insource:/''arg''/&lt;/kbd&gt; requires no space, but all other parameters tolerate at least whitespace
* Two words separated only by greyspace ''characters'' make a greyspace phrase, subject to stemming
* &quot;Double quotes:&quot; make an exact phrase, and make stemming and proximity possible with more modifiers added
* Greyspace is ignored:
** anywhere inside double quotes
** in starting characters of the search box query, but not before a namespace
** between words and phrases, except for greyspace phrases
* Space characters are important only
** for pagenames (linksto, prefix, incategory, boost-templates, morelike).
** between two parameters (to delimit the argument)
Colon : character:
* as a namespace, it means article space
* as a prefix, it means article space
* to ''insource'' or &quot;exact phrase&quot; it means a literal colon and acts just like a letter or number if it is an non-spaced colon.
== Word and phrase ==
A search is a ''query'' with one or more ''terms''. The query does not actually search the page database, but rather, a search queries a prebuilt, constantly maintained, search index database. When creating the search index of words on the wiki, or when entering a query, a word boundary is greyspace. Greyspace ''characters'' can create a multi-word_phrase. We must say tab and newline even though we cannot put those characters in our query; this is because of the important fact that the same analysis that is done on the wikitext is also done on the query. A word boundary is whitespace characters (tab, space, or newline) or greyspace characters. Greyspace characters and whitespace characters are all folded together as one, just as special characters like æ (ae) or á (a) are folded into the standard keyboard characters.
A phrase expresses an ordering of words,&lt;ref&gt;
A phrase will extend over whitespace unless it contains a bullet.
A phrase can extend over an ordered list item, but not an unordered list item.
In other words it can extend over a number # sign,
but not an asterisk * character.
The asterisk has special meaning to the analyzer.
It is used to make an item in an unordered list,
plus it is used as a modifier in search.&lt;/ref&gt;
and there are three ways to make one, depending on how aggressively you want the phrase to match.
* &quot;quotation marks&quot;
* joining_with_non-alphanumeric(characters)
* camelCaseNaming or letter222number transitions
&quot;Quotation marks&quot;, phrases are called an &quot;exact phrase&quot; because it is exact wording: ''stemming'', ''fuzzy search'', and ''wildcards'' are not used in an &quot;exact phrase&quot;. Like the rest of Search, an &quot;exact phrase&quot; tolerates greyspace between words. Joining_with_non-alphanumeric(characters) only, will employ stemming on the words. CamelCaseNaming or letter222number transitions, matches the phrase in greyspace, with stemming, and additionally matches the word itself. Parameters can require the quotation marks to include whitespace in their input.
The wikitext is searched by employing the ''insource'' parameter. The insource parameter ignores greyspace characters too.
For example, to find the phrase
&lt;code&gt;http://en.wikpedia.org/wiki/Search_engine&lt;/code&gt;, use
&lt;kbd&gt;http://en.wikpedia.org/wiki/Search_engine&lt;/kbd&gt;, or use
&lt;kbd&gt;insource: &quot;http en wikipedia org wiki search engine&quot;&lt;/kbd&gt;.
&lt;!-- Hints for writing examples:
* use search links, as usual
* search this page using prefix:{{FULLPAGENAME}}
where control and certainty are needed
* use labels to hide the fact that you're using prefix:{{FULLPAGENAME}}
* Before the wisdom and beauty of hiding the prefix filter by adding a label to the search link, consider the fact that developing an excellent set of examples takes a lot of work over a long period of time. Until they are stable, avoid the pretty label because then you'll have to change a search term twice to change it once.
* use words otherwise not found on this page, so that examples become self-fulfilling.
* Don't put examples in a table if you want examples to improve. New users can be easily overwhelmed or bewildered by the table frameworks.
--&gt;
When you search for a word, that word is just looked up in an ''index''. An indexed search instantly concludes with all search result ''titles'', without having to search the wiki itself.
Each word you see in a page's content (a title's content) is ''already'' in an index, where it points to all its other ''prearranged'' results. A word is ''indexed'' to a list of page names, where it is seen in the text, or it is seen in the title only.
Each indexed word is seen as
* a string of alphabetic characters a-z, or
* a string of digits 0-9, or
* a string of ''alphanumeric'' characters a-z, 0-9.
* a token inside a camelCase word.
For transitions from lower to upper case, (or camelCase),
and transitions from letter to number:
* these are two words
* only the first transition divides such words, into two
* a null space matches non-alphanumerics: game-folks matches gameFolks.
for or digit-letter these match singly or together. In other words you don't need the space, but that also works to find either &quot;word&quot; of a camel case or mixed alphanumeric word. You don't need a space, and non-alphanumeric characters are treated as that null space.
We may call these &quot;word&quot; characters or &quot;alphanumeric&quot; characters at times
as opposed to the &quot;non-word&quot; characters, which are ignored except as to function as a word boundary. Usually a word boundary is just a space character.
These words are case-insensitive: a-z is equivalent to A-Z,
so Search box will navigate to a pagename regardless of capitalization
(even though wikilinks and URLs must match capitalization apart from the initial character).
Each word is aliased to all its word-stems, so cloud, clouding, clouds, clouded, cloudy will all point to the same index entry.
In Search the characters &lt;kbd&gt;!@#$%^&amp;*()_+-={}|[]\:;'&lt;&gt;,.?/&lt;/kbd&gt; are ignored. Any mix of whitespace characters and these non-word characters, we may refer to as ''grey-space''. Grey-space, then, is all non-word characters except the double quote character, which is not ignored.
Grey-space is a string of one or more characters such as brackets and math symbols and punctuation and space. Now, a search-indexed word will be found between ''grey-space'', and grey-space is an implied AND of two words in a search query, but the AND is not always implied: when two ''phrase'' exist side-by-side the AND is required.
Exceptions to what &quot;words&quot; are indexed are these ''portioned'' words:
* A change from a numeric to an alphanumeric character is an additional word boundary in an alphanumeric word.
* A change from an alphanumeric to a numeric character is a word boundary in an alphanumeric word.
* A change in case from lowercase to uppercase is a word boundary in an alphabetic word.
The word boundary between such numeric portions and an alphabetic portions may include grey-space or not, but a phrase search turns off ''portioning'', because it is an &quot;exact phrase search&quot;, the words in the phrase matching only alphanumeric words delimited by grey-space.
Words joined only by non-alphanumerics are treated like a phrase. So word1_word2&amp;word3 is the same as &quot;word1 word2 word 3&quot;. However they will also match camelCase and letter-number transitions. An exact phrase search will not match camelCase or letter-number transitions. For example, terms like wgCanonicalNamespace and !wgCanonicalSpecialPageName can be found looking for &lt;code&gt;canonical page name&lt;/code&gt;.
For example:
* A [[numeronym]] like [[C10k problem|C10k]] is considered one word for proximity, but two words for matching.
* pluralized numbers, like &quot;2010s&quot;
The following match the single term &lt;code&gt; txt2regEx &lt;/code&gt; on a page:
&lt;kbd&gt;txt&lt;/kbd&gt;
, &lt;kbd&gt;2&lt;/kbd&gt;
, &lt;kbd&gt;regex&lt;/kbd&gt;
, &lt;kbd&gt;reg&lt;/kbd&gt;
, &lt;kbd&gt;ex&lt;/kbd&gt;
, &lt;kbd&gt;txt2&lt;/kbd&gt;
, &lt;kbd&gt;2reg&lt;/kbd&gt;
, &lt;kbd&gt;2regex&lt;/kbd&gt;.
None of those portions would match in a phrase search; only &quot;txt2regex&quot; would match.&lt;ref&gt;See the ElasticSearch &quot;tokenizer&quot; that CirrusSearch developed.&lt;/ref&gt;
The following match the two terms &lt;code&gt; 2 + 2 &lt;/code&gt;:
&lt;kbd&gt;2&lt;/kbd&gt; or &lt;kbd&gt;&quot;2&quot;&lt;/kbd&gt;
, &lt;kbd&gt;2 2&lt;/kbd&gt; or &lt;kbd&gt;&quot;2 2&quot;&lt;/kbd&gt;
, &lt;kbd&gt;&quot;2 2&quot;&lt;/kbd&gt; or &lt;kbd&gt;&quot;2&quot;&lt;/kbd&gt;
, &lt;kbd&gt;&quot;2+2&quot;&lt;/kbd&gt; or &lt;kbd&gt;2+2&lt;/kbd&gt;
, &lt;kbd&gt;&quot;2-2&quot;&lt;/kbd&gt; or &lt;kbd&gt;2-2&lt;/kbd&gt;
, &lt;kbd&gt;&quot;2.2&quot;&lt;/kbd&gt; or &lt;kbd&gt;2.2&lt;/kbd&gt;
Each term is a query, and the grey-space is an AND.&lt;br/&gt;
=== Fuzzy search, wildcards, and stemming ===
[[Stemming]] is a way to match meaning &quot;ambitiously&quot;, to get the numbers up, for possible semantic matching, such that &lt;kbd&gt;run_shoe&lt;/kbd&gt; also matches &lt;code&gt;running shoes&lt;/code&gt;. Stemming is a spelling algorithm only distantly reliant on any dictionary.&lt;ref&gt;Stemming, like page ranking, is just a computer algorithm, and prone to needing occasional adjustments.&lt;/ref&gt; The algorithm attempts to find the ''same word'', but in all its word endings.
A fuzzy search will match a ''different word''. Words (but not phrases) accept [[approximate string matching]] or &quot;fuzzy search&quot;. A tilde &lt;kbd&gt;{{Big|~}}&lt;/kbd&gt; character is appended for this &quot;sounds like&quot; search. The other word must differ by no more than ''two letters''.
* Not the first two letters. The first two letters must match.
* Two letters swapped.
* Two letters changed.
* Two letters added, two letters subtracted, or one subtracted and one added.
But it can differ by ''one'' letter in these ways. A fuzzy search matches the word exactly ''plus'' words like it.
* {{sl|this~ prefix:{{FULLPAGENAME}}|this~}},→ thus and thud, thins and ''the'', but not his or thistle
* {{search link|charlie~ parker~ prefix:{{FULLPAGENAME}}|charlie~ parker~}} → Charlie Parker and Charles Palmer and Charley Parks
With wildcards you can specify ''which'' letters change, including the first two letters, and you can increase ''the number'' of letters that can change.
Wildcards have their own rules:
* * zero or more letters or numbers
* *\? one or more letters or numbers.
* \? one letter or number
* neither * nor \? can match the first letter; they can go in the middle or the end.
* \? and * can be used any number of times in a word
* {{sl|this* prefix:{{FULLPAGENAME}}|this*}} → thistle and This1234 and This
* {{sl|g\?it\?r prefix:{{FULLPAGENAME}}|g\?it\?r}} → gaiter goiter guitar g8it9r
* {{sl|key* prefix:{{FULLPAGENAME}}|key*}} → keypad and keypunch
While the word indexes are being built and updated, stemming automatically adds aliases to most entries. An actual dictionary is not used. Instead it runs an algorithm that applies generic English syntax rules for word endings. The results are imperfect.&lt;ref&gt;CirrusSearch uses kstem for the stemmer package, per {{phab|T56022}}.&lt;/ref&gt; Even misspelled words, non-words, and words with numbers in them are indexed and stemmed in this way. By adding different forms of the same word to the indexed search query, [[stemming]] is a standard method search engines use to aggressively garner more search results to then run a bunch of page-ranking rules against.
For example, stemming will alias ''cloud'', ''clouds'', ''clouded'', and ''clouding''. It will ''not'' alias the word ''cloudy'', but it ''will'' alias the various forms of ''cloud'' to the ''non''-word ''cloudion'', because -ion is a common word ending.
Stemming is automatically turned off for insource searches:
* {{sl|clouds prefix:{{FULLPAGENAME}}|clouds}}
* {{sl|insource:cloud prefix:{{FULLPAGENAME}}|insource:cloud}}
* {{sl|&quot;clouds&quot; prefix:{{FULLPAGENAME}}|&quot;clouds&quot;}}
To turn stemming ''off'' put the word in quotation marks, this is an &quot;exact phrase&quot; search.&lt;ref&gt; You can equally well use the ''insource'' parameter to turn stemming off. Also, please note that {{phab|113838}} details this related bug: when stemming is turned off for a word the pages listed in the search results are correct, (they don't have stemmed-only variants, they all have the word as given) but any stems in the snipped are, incorrectly, highlighted.&lt;/ref&gt;&lt;!--
--&gt;&lt;section end=&quot;Boolean logic&quot; /&gt;&lt;section end=intitle /&gt;
For example:
gameFolks, game!folks, game:folks matches [[Folklore (video game)|FolksSoul]]
=== Proximity ===
* Proximity searches do not search titles.
* Proximity works backwards if you give it a higher count.
* Proximity searches turn off stemming.
An &lt;kbd&gt;&quot;Exact phrase&quot;&lt;/kbd&gt; or a &lt;kbd&gt;word&lt;/kbd&gt; will match in a title.
And creating a phrase &lt;kbd&gt;&quot;with tilde&quot;~&lt;/kbd&gt; just turns on stemming, (which is equivalent to forming a phrase by joining the words &lt;kbd&gt;with_greyspace&lt;/kbd&gt;). But &lt;kbd&gt;&quot;exact phrase&quot;~1&lt;/kbd&gt; matches the wording in that order
''plus'' allows any one extra word to fall between the two words.
For example
* &lt;kbd&gt;&quot;exact second phrase&quot;~2&lt;/kbd&gt; allows two extra words to fit anywhere on either side of the ''second'' term.
* &lt;kbd&gt;&quot;exact phrase&quot;~3&lt;/kbd&gt; also finds &quot;phrase exact&quot; (the two words in reverse order)
* Looking for either &quot;Shift-Alt-P&quot; or &quot;Alt_Shift-P&quot;? Its not &lt;kbd&gt;&quot;Alt-shift-P&quot;~3&lt;/kbd&gt;. It's not &lt;kbd&gt;&quot;alt shift&quot;~3-P&lt;/kbd&gt;. Use &lt;kbd&gt;&quot;alt shift p&quot; OR &quot;shift alt p&quot;&lt;/kbd&gt; instead.
* {{sl|&quot;Dorsal vertebrae&quot;~2 {{FULLPAGENAME}}|&quot;Dorsal vertebrae&quot;~2}} matches &quot;Dorsal (or Thoracic) vertebra&quot;
* {{sl|&quot;Three extra words&quot;~5 prefix:{{FULLPAGENAME}}|&quot;Three extra words&quot;~5}} matches &quot;'''three''' w-1 w2% '''extra''' w:3 w_4 $w5 '''words'''&quot;.
&lt;kbd&gt;&quot;hitch4 hiker2&quot;&lt;/kbd&gt; finds the two &quot;words&quot; in that order, (possibly separated by punctuation or brackets or other keyboard symbols like math symbols), and without the quotes finds them in the same article. In both cases the article is listed when the space satisfies the logical AND meaning.
&lt;kbd&gt;hello_dolly&lt;/kbd&gt; does the same thing as &lt;kbd&gt;&quot;hello&amp;nbsp;dolly&quot;&lt;/kbd&gt; does, but the double quotes version offers a proximity filter. After the closing quote you add a tilde ~ and a number that indicates the total number of words allowed between all the terms.
* &lt;kbd&gt;&quot;WordOne wordTwo&quot;&lt;/kbd&gt; means a phrase (zero words in between)
* {{sl|&quot;Word1 word2&quot; prefix:{{FULLPAGENAME}}|&quot;Word1 word2&quot;}} → word1 &lt;[!@#]&gt; &lt;[:$%^*()]&gt; &lt;[+-*/]&gt; word2
* {{sl|&quot;Word3 word4&quot;~1 prefix:{{FULLPAGENAME}}|&quot;Word3 word4&quot;~1}} → word3 extra1word word4
* {{sl|&quot;Word5 word6 word7&quot;~2 prefix:{{FULLPAGENAME}}|&quot;Word5 word6 word7&quot;~2}} → word5 extra1word word6 extra2word word7
*{{sl|&quot;Word8 word9 word10&quot;~2 prefix:{{FULLPAGENAME}}|&quot;Word8 word9 word10&quot;~2}} → word8 word9 extra1word extra2word word10
Backward proximity works too, but includes the two end words between each segment. Proximity cannot make the last word proximate to the first. The proximity can be a large number, like 500 or 1000.
Say a page has word1 word2 word3 in that order.&lt;ref&gt;This can't be proven in an example search of ''this'' page, but it will work on another page not containing this example. This because the match, showing in bold as proof here, prefers the proper order. It can be proved by put the target text on another page, then changing the query (on the search results page) initiate here to that page.&lt;/ref&gt;
* {{sl|&quot;WordB wordA&quot;~4 prefix:{{FULLPAGENAME}}|&quot;WordB wordA&quot;~4}} → wordA extra1word extra2word wordB
* {{sl|&quot;WordC wordB wordA&quot;~6 prefix:{{FULLPAGENAME}}|&quot;WordC wordB wordA&quot;~6}} → WordA wordB extra1word extra2word wordc
Two search terms with ''no quotes'' is two filters, and a bunch of page-ranking
rules.
=== Search logic ===
[[Boolean logic|Truth logic]] is AND, OR, and ''not''.
* Queries do not accept parentheses. So multiple terms ''cannot'' be grouped into a single, logical term.
* Parameters do not accept AND or OR, but do accept ''not''
* &lt;kbd&gt;''word'' ''word2''&amp;nbsp;&lt;/kbd&gt; will AND the two terms.
* &lt;kbd&gt;''word'' AND ''word2''&amp;nbsp;&lt;/kbd&gt; will AND the two terms. (similar)
* &lt;kbd&gt;''word'' OR ''word2''&amp;nbsp;&lt;/kbd&gt; will OR the two
* &lt;kbd&gt;-word&lt;/kbd&gt; will ''not'' the term, excluding the pages that match word.
* &lt;kbd&gt;!word&lt;/kbd&gt; will ''not'' the term (similarly)
Logical OR increases results, whereas logical AND decreases them.
Logical ''not'' is a good way to refine a query by removing ''any kind of term'' except the ''prefix'' parameter.
For example
&lt;kbd&gt;while -refining -unwanted search results&lt;/kbd&gt;.
For example
&lt;kbd&gt;credit card -&quot;credit card&quot;&lt;/kbd&gt;
finds all articles with &quot;card&quot; and &quot;credit&quot;
== Prefix and namespace ==
Prefix and namespace are the only positional parameters,
and namespace is an unnamed search parameter.
One or the other of them is used in a query
to override the initial search domain
set by user profile or by the search bar.
They aren't used together: prefix overrides namespace.
The namespace argument must be at the beginning of a query, and
the '''&lt;kbd&gt;prefix:&lt;/kbd&gt;''' parameter must be at the end of a query.
=== Namespace ===
&lt;kbd&gt;''Namespace'':&lt;/kbd&gt; is an unnamed search parameter
that goes at the beginning of a query.&lt;ref&gt;
The search namespace matches in the first parameter of a query.
This is consistent with its usage in
navigation, wikilinking, transclusion, and page naming,
where it is always the first word in the field.&lt;/ref&gt;
The [[Wikipedia:namespace|namespace]] is followed by a colon,
followed by zero or more whitespace characters.
and matches a [[Wikipedia:pgn|namespace]] name.
The namespace names and &quot;all&quot; work as expected,
but seeing one in the search box
does not guarantee it represent the search results, as explained below.
In addition to the usual namespace names and their aliases
* &lt;kbd&gt;all&lt;/kbd&gt; searches all namespaces on the wiki.&lt;ref&gt;
To see all namespaces
go to the search results page and click on Advanced.
The default namespace shows in parenthesis.&lt;/ref&gt;
* &lt;kbd&gt;file&lt;/kbd&gt; searches the wiki plus the [[Wikipedia:Commons|Commons]] wiki.
** the words and phrases on the [[Wikipedia:file pages|file pages]] are searched
** ''the textual content inside all uploaded attachments'' is searched&lt;ref&gt;
The full text of every word on the wiki
''plus'' every word in every uploaded attachment,
is all indexed together in a search database.
CirrusSearch can parse and index thousands of formats.&lt;/ref&gt;
** If the match is made inside a pdf (or the like) this is indicated in the searches results parenthetically: &quot;(matches file content)&quot;.
* &lt;kbd&gt;file:local&lt;/kbd&gt; turns off the search on Commons
* &lt;kbd&gt;all&lt;/kbd&gt; does not search Commons
* The namespace names are not case sensitive, but &quot;all&quot; and &quot;local&quot; must be lowercase.
* &lt;kbd&gt;All:&lt;/kbd&gt; is not a search namespace, and will be treated as a word.
* &lt;kbd&gt;local:&lt;/kbd&gt; will not be treated like a word, but silently ignored instead, unless the File namespace is involved, such as it is on the search bar when activating '''Multimedia''' or '''Everything'''.
* In a query, &lt;kbd&gt;local:&lt;/kbd&gt; only has an effect following the File namespace &lt;kbd&gt;file:local&lt;/kbd&gt;.
Pages with namespaces outnumber pages without them [[Special:Statistics|7 to 1]].
On the search bar at the search results page
* '''Everything''' searches all, plus Commons and the File namespace.
* '''Advanced''' when ''All'' (namespaces) is checked is equivalent to '''Everything'''.
* '''Multimedia''' searches the File and Media namespaces on the local wiki plus Commons.
These differ from namespace &quot;all&quot; by matching your search terms
inside a [[portable document format|pdf]] on a [[help:file page]],
that item on the search results page says &quot;(matches file content)&quot;.
For example {{sl|file:&quot;885.7 seconds&quot;}} matches inside a pdf,
but {{sl|all:&quot;885.7 seconds&quot;}} does not.
=== Prefix ===
&lt;kbd&gt;prefix:''namespace'': ''string''&amp;nbsp;&lt;/kbd&gt;
filters a namespace down to one or more pages where ''string'' matches the pagename's beginning characters.&lt;ref&gt;
Characters not allowed in pagenames are &lt;code&gt;# &lt; &gt; [ ] | { }&lt;/code&gt;.&lt;/ref&gt;
For example, &lt;kbd&gt;prefix:help:t&amp;nbsp;&lt;/kbd&gt; finds Help pagenames that begin with &quot;T&quot;.
* When the ''string'' has zero characters all pages in the given namespace are found.
* When the ''string'' has all the characters a pagename, a single page is found.
* The string is not case sensitive.
* The namespace can be an namespace alias, like &lt;kbd&gt;WP&lt;/kbd&gt; for &lt;kbd&gt;Wikipedia&lt;/kbd&gt;.
* A space between the namespace and pagename is allowed.
* The namespace for prefix defaults to article space.
* Prefix will not match a redirect. (But see [[Special:PrefixIndex]].)
* Prefix cannot be used as a filter: the dash of &lt;kbd&gt;-prefix&lt;/kbd&gt; is ignored. &lt;kbd&gt;-prefix:WP: ab&amp;nbsp;&lt;/kbd&gt; only sets the search domain to &quot;Wikipedia:Ab&quot;.
* No pagename characters are ignored. Even the space character is part of the pagename, and this is ''why'' prefix must go at the end.
Prefix can perform the function of the namespace filter, plus it can isolate a single article whereas ''intitle'' cannot.
Prefix cannot isolate a single page if it has subpages.
An alternative to a prefix query is [[Special:PrefixIndex]]:
* multi-column report capable of listing several hundred pagenames on one page
* Case sensitive
* lists redirects too
=== Compared ===
Comparing the namespace and ''prefix'' parameters:
* Prefix and namespace can both serve to set the initial search domain.
* For a given namespace they are equivalent.
* They both filter titles.
* The both accept namespace [[WP:namespace#aliases|aliases]], but ''prefix'' does not recognize &quot;all&quot;.
* They both limit the initial search domain to one namespace.
* A namespace goes only at the beginning, and a prefix goes only at the end.
The following methods set an initial search domain by namespace:
* a '''&lt;kbd&gt;prefix:&lt;/kbd&gt;''', which defaults to article space
* a namespace argument at the beginning of a query, which defaults to the user's default search domain
* the URL parameters &lt;kbd&gt;&amp;ns''N''=1&lt;/kbd&gt;
* the &quot;advanced profile&quot; GUI on the search results page
These are in the order of precedence.
A prefix overrides a namespace overrides the GUI.
The argument to the ''prefix'' parameter is a fullpagename,
[[Wikipedia:pgn|which conveys a namespace]].
When alternating search domains, with the various techniques,
and because of their priorities,
it deserves repeating: check the search bar indication; it is most subtle.
&lt;ref&gt;Always check the search bar for its indication.
Activating the Advanced pane can show the default search domain,
and the search box is very obvious with a namespace or prefix term.
One way to do this is to click on the search bar search domain
instead of clicking on the search button.
The only time this does not work is when changing search domains
in the Advanced tab: after you change them you must press Search,
not Advanced.&lt;/ref&gt;
The Advanced namespace selection pane from the search bar is not so subtle.
It will remain for as long as the earlier selection
&quot;remember selection for future searches&quot; is in effect.
You can &quot;remember&quot; article space and then either
1) press Content,
2) choose another search bar search domain, or
3) remove all instances of &lt;code&gt;&amp;profile=advanced&lt;/code&gt; from the URL.
== Page attributes ==
These five search parameters filter a namespace according to an input word or phrase.
* No OR. For example, ''no'' &lt;kbd&gt;intitle:A OR intitle:B&lt;/kbd&gt;
* No positional requirements, and all can standalone, for example &lt;kbd&gt;!hastemplate: Val&lt;/kbd&gt;
* Only &lt;kbd&gt;incategory&lt;/kbd&gt; accepts several inputs (between pipe | characters)
* Only &lt;kbd&gt;linksto&lt;/kbd&gt; and &lt;kbd&gt;insource&lt;/kbd&gt; do not accept greyspace phrases
* Only &lt;kbd&gt;linksto&lt;/kbd&gt; is case sensitive.
* Only &lt;kbd&gt;insource&lt;/kbd&gt; is sensitive to an non-spaced colon:character.
These parameter names must be in all-lowercase letters.
=== Intitle ===
Intitle
finds a word or phrase in a [[Wikipedia: pagename| pagename]].
Like a word or phrase search ''stemming'' and ''fuzzy'' searches can apply.
* A word input can be put in double &quot;quotes&quot; to turn ''off stemming''.
* A phrase input can use greyspace to turn ''on stemming''.
* A single word input can suffix the tilde ~ character for a ''fuzzy'' search.
* A single word input can suffix the star * character for a ''wildcard'' search.
* Intitle does not search [[wp:redirects|redirects]].
* Proximity search is not an option in a title search.
To find a match in a redirect title, or to apply a proximity search to a title
you can rely on page ranking software to boost title matches before content matches.
So a basic word or phrase search, or proximity search, is an alternative to ''intitle''.
For example &lt;!-- No tables means more contributors --&gt;
: {{sl|intitle: &quot;forest ridge&quot;}} finds one, while the proximity search
: {{sl|&quot;forest ridge&quot;~3}} finds a dozen related titles immediately.
: {{sl|intitle: image_label}} shows stemming while {{sl|intitle: &quot;image label&quot;}} does not.
: {{sl|intitle:juggle}} shows stemming.
: {{sl|intitle:sun intitle:moon}} shows how to search for two words in one title.
=== Incategory ===
Incategory has the general format
:&lt;kbd&gt;incategory: &quot;''category''|''category''|...|''category''&quot;&amp;nbsp;&lt;/kbd&gt;
and selects from the ''pages'' section of given [[Help:Category#Category_pages|category pages]],
those pages that are also in the search domain.
* Incategory inputs are ''not'' case sensitive.
* Incategory inputs are space sensitive. No spaces around the category. For any space inside any input, use &quot;double quotes&quot; around the whole expression.
* The search results do ''not'' including subcategories. For that there is a ''deepcat'' search parameter, available by adding a line to your javaScript and CSS files.&lt;ref&gt;To get ''deepcat'' as a search parameter install [https://wikitech.wikimedia.org/wiki/Nova_Resource:Catgraph/Deepcat a gadget] which automatically produces &lt;kbd&gt;incategory:pagename1|pagename2|...|pagename70&lt;/kbd&gt;. To see the number of subcategories to see if there was more or less than 69, either go fwd and bwd in the browser history, or see the source HTML of the search results page, the &amp;lt;title&gt; attribute&lt;/ref&gt;
* Multiple categories may be applied up to the 300-character limit of a query.
Because many pages ''outside the mainspace'' are also categorized,
the counts often won't match the category unless the search domain is the entire wiki:
* {{search link|all: incategory: History}} (all 70 pages)
* {{search link|incategory: History}} (article space, 36 pages)
* {{search link|portal: incategory: History}} (portal space, 2 pages)
Multi-category input counts a page only once. The following two categories have 209 pages in article space, with six pages found in both categories:
: {{sl|incategory:&quot;Information retrieval techniques&quot; incategory:&quot;Natural language processing&quot;}} (6)
: {{sl|incategory: &quot;Natural language processing&quot;}} (159)
: {{sl|incategory: &quot;Information retrieval techniques&quot;}} (50)
: {{sl|incategory: &quot;Information retrieval techniques{{!}}Natural language processing&quot;}} (203:= 209&amp;minus;6)
On the other hand these are disparate categories:
* {{search link|all: incategory: Kames }} (23 pages about mountains)
* {{search link|all: incategory: Sloops }} (18 pages about ships)
* {{search link|all: incategory: Kames{{!}}Sloops }} (41:=23+18)
Because of the nature of [[Wikipedia:categorization]] these categories share no pages:
* {{sl|all: incategory: history incategory: mathematics incategory: physics}} (zero pages matching ''all/and'')
* {{search link|all: incategory: History}} (70 pages)
* {{search link|all: incategory: Physics}} (57 pages)
* {{search link|all: incategory: Mathematics}} (30 pages)
* {{sl|all: incategory: History{{!}}Physics}} (127 pages)
* {{sl|all: incategory: History{{!}}Mathematics}} (100 pages)
* {{sl|all: incategory: Physics{{!}}Mathematics}} (87 pages)
* {{sl|all: incategory: History{{!}}Mathematics{{!}}Physics}} (157 pages)
Categories and Search are synergistic.
* To search for category titles, and for links and text on a category page, search the category namespace (or use [[Special:CategoryTree|CategoryTree]], or [[Special:Categories|Categories]] for title searches).
* If two categories are closely related but are not in a subset relation, then links between them can be included in the text of the category pages.
* A word or phrase search can often precisely match ''incategory'': it can match inside the categories box at the bottom of every page. When this occurs that search result will include a parenthetical flag &quot;'''(Category''' ''pagename''''')'''&quot;.
In the following examples, note how the page description in the category namespace show category sizes instead of page sizes.
* {{sl|category: intitle: disambiguation}} (searches the category namespace for titles with that word.)
* {{sl|category: history Texan}} (searches the category namespace for those two words in the ''title or body'' of a category page)
* {{sl|anaxyrus}} (It's easy to spot the pages that need categorization, because they also don't have a redirect with that term.)
=== Hastemplate ===
'''&lt;kbd&gt;Hastemplate&lt;/kbd&gt;''' finds pages that transclude a given template.
Finds template ''usage'', not just a name pattern, because
it will find all pages where the template content itself was used in any way.
The results differ slightly depending on the alias you give.
Hastemplate
* given the canonical [[wp:pgn|pagename]] (on the title line), it will find all aliases' (redirects') usage too, and it will find any subpage links to it from a parent template too.
* given an alias (on the redirect's pagename) finds redirect's name pattern
* is not case-sensitive
* accepts a fullpagename to find template usage of templates (homed) in other than the default, Template namespace (just as within the {&lt;nowiki/&gt;{''template''}} call itself)
If you don't find the searched template name on the wikitext of the page,
it can mean either that you gave the canonical pagename but it found an alias,
or that it was called as a secondary template by way of a template that ''is'' shown in the wikitext.
To find visible (primary) calls only, use &lt;kbd&gt;insource&lt;/kbd&gt;.
&lt;!--
--&gt;&lt;section begin=Insource /&gt;&lt;section end=Hastemplate /&gt;
=== Insource ===
&lt;kbd&gt;Insource: ''term''&lt;/kbd&gt; {{space}}
finds a word or phrase in wikitext.
* No greyspace_phrases.
* No stemming.
* No proximity.
* Yes wildcards, but only for words, not when the term is an &quot;exact phrase&quot;.
* treats a non-spaced colon : character like a normal letter
* Insource doesn't search in .js or .css files except in comments or nowiki tags.
Unlike a normal search insource doesn't find things &quot;sourced&quot; by a [[Wikipedia:transclusion|transclusion]].
Insource targets wikitext in two ways. They look similar, but the regexp form employs the slash / character to delimit the regexp.&lt;ref&gt;
In computing it is common to delimit a /regular expression/ with slashes.&lt;/ref&gt;
# &lt;kbd&gt;insource: ''term''&lt;/kbd&gt; {{space}} finds an indexed word or phrase.
# &lt;kbd&gt;insource:/''regexp''/&lt;/kbd&gt; {{space}} targets the entire wikitext of every page in the search domain as one long string of characters per page, either having a pattern or not. This is the &quot;regular expression&quot; (or regexp, or regex). Its metacharacters can represent multiple possibilities for a character position or a range of character positions within a page, using metacharacters for truth logic, grouping, counting, and modifying the characters to be found.
A basic regexp is an easy way to find a specific, &lt;kbd&gt;/&quot;exact strings&quot;/&lt;/kbd&gt;, as shown below.
The double quotes are field delimiters. They are [[escape characters]] which quote all the set of characters between them, and keep their interpretation literal (keep any metacharacter interpretation from occurring).
An advanced regexp uses the metacharacters to program general string patterns.
It finds everything, even pieces and parts of words, conveying no notion of &quot;words&quot;, but only that of a string of characters in a sequence. Metacharacters are interpreted unless quoted by a backslash, double quotes, or square brackets. See the section on regex. The obvious example is, you must quote any slash in your pattern so it won't be interpreted as the closing slash delimiter, using &lt;kbd&gt;\/&lt;/kbd&gt; instead of &lt;kbd&gt;/&lt;/kbd&gt; to match a literal slash. A regexp interprets all metacharacters.
Testing a regexp pattern responsibly,
requires limiting the search domain
* by making it a single page using a page-name filter &lt;kbd&gt;prefix:''page name''&lt;/kbd&gt;
* a prefix parameter or other filter that limits the search domain to only as many pages as necessary
* the test wiki.
Abusing regexp will not harm Wikipedia performance, but it limits regex search information from flowing elsewhere.
Only regex interpret greyspace characters. The regular insource, as everywhere else, ignores greyspace characters. So
&lt;code&gt;insource:&quot;M S&quot;&lt;/code&gt; matches &lt;kbd&gt;m/s&lt;/kbd&gt;, as do &lt;code&gt;insource:&lt;/code&gt;&lt;kbd&gt;&quot;M-S&quot;&lt;/kbd&gt; and &lt;code&gt;insource:&lt;/code&gt;&lt;kbd&gt;&quot;m=s&quot;&lt;/kbd&gt;. But &lt;code&gt;insource:/M\/S/&lt;/code&gt; will match it, and the filtered version will to: &lt;code&gt;insource:&quot;M/S&quot; insource:/M\/S/&lt;/code&gt;.
The &lt;kbd&gt;insource:&quot;word1 word2&quot;&lt;/kbd&gt; filter is the most obvious filter for &lt;kbd&gt;insource:/word1 word2/&lt;/kbd&gt;, where the two wikitext words are only separated by punctuation and space. Say the target string is {{nowrap|&lt;kbd&gt;&lt;nowiki&gt;{{Val|9999|ul=m/s|fmt=commas}}&lt;/nowiki&gt;&lt;/kbd&gt;}}:
* &lt;code&gt;insource:&lt;/code&gt;&lt;kbd&gt;&quot;val 9999 ul m s fmt commas&quot;&lt;/kbd&gt; → match
* &lt;code&gt;hastemplate:&lt;/code&gt; &lt;kbd&gt;val&lt;/kbd&gt; &lt;code&gt;insource:&lt;/code&gt;&lt;kbd&gt;&quot;9999 ul&quot;&lt;/kbd&gt; → match
* &lt;code&gt;hastemplate:&lt;/code&gt; &lt;kbd&gt;val&lt;/kbd&gt; &lt;code&gt;insource:&lt;/code&gt;&lt;kbd&gt;&quot;999&quot;&lt;/kbd&gt; → no match
* &lt;code&gt;hastemplate:&lt;/code&gt; &lt;kbd&gt;val&lt;/kbd&gt; &lt;code&gt;insource:&lt;/code&gt;&lt;kbd&gt;&quot;fmt commas&quot;&lt;/kbd&gt; → match
* &lt;code&gt;hastemplate:&lt;/code&gt; &lt;kbd&gt;val&lt;/kbd&gt; &lt;code&gt;insource:&lt;/code&gt;&lt;kbd&gt;&quot;ul m&quot;&lt;/kbd&gt; → match
* &lt;code&gt;hastemplate:&lt;/code&gt; &lt;kbd&gt;val&lt;/kbd&gt; &lt;code&gt;insource:&lt;/code&gt;&lt;kbd&gt;&quot;ul M S&quot;&lt;/kbd&gt; → match
* &lt;code&gt;hastemplate:&lt;/code&gt; &lt;kbd&gt;val&lt;/kbd&gt; &lt;code&gt;insource:&lt;/code&gt;&lt;kbd&gt;fmt&lt;/kbd&gt; → match
Insource matches words sequentially, but the match could occur anywhere on the page,
not necessarily ''inside'' the {&lt;nowiki/&gt;{template markup}}.
For this there is {{tl|template usage}}, and it matches any regex inside the template.
For thorough precision, use /regex/. For example, to find ''any'' bare URL inside {{tag|ref|params=name=''name''}},
with &lt;code&gt;[external link brackets ''label'']&lt;/code&gt;, with possible &lt;code&gt;ref name=''name''&lt;/code&gt;
you than can't use the simpler &lt;kbd&gt;insource:&quot;ref http ''server'' com&quot;&lt;/kbd&gt;.
Taking a cautious approach, before trying the full regexp, create a search domain under 10,000 pages.
Starting with two filters, prefix and insource:
# &lt;code&gt; {{sl|insource: &quot;ref http&quot; prefix:A}}&lt;/code&gt; {{val|98000}} is too many to start.
# &lt;code&gt; {{sl|insource: &quot;ref http&quot; prefix:AA}}&lt;/code&gt; {{val|1000}} is good.
# So ya try adding a regex term &lt;code&gt;insource:/\&lt;ref[^&gt;]\&gt; *\[?https?:\/\/[^][&lt;&gt; &quot;]+\]? */&lt;/code&gt; zero for prefix:AA, one for prefix:AB
# So ya try just &lt;code&gt;insource:/\&lt;ref[^&gt;]\&gt;&lt;/code&gt; instead, and then try prefix:AA zero; try AB, one.
# You notice you forgot the modifier for &lt;code&gt;[^&gt;]*&lt;/code&gt;.
# &lt;code&gt;{{sl|insource: &quot;ref http&quot; insource:/\&lt;ref[^&gt;]*\&gt; prefix:AB}}&lt;/code&gt;. There are {{val|3700}}, and that is OK.
# Experiment further. Then decide to do the project in segments AA, AB, AC, ... ZZ.
# &lt;kbd&gt;{{sl|insource:/\&lt;ref[^&gt;]*\&gt; *\[?https?:\/\/[^][&lt;&gt; &quot;]+\]? */ insource: ref prefix:AA}}&lt;/kbd&gt;
We have the only possible filter &lt;code&gt;{{sl|insource: ref prefix:AA}}&lt;/code&gt;.
That filter produces a regex search domain of only 2300.
The filter &lt;kbd&gt;{{sl|insource: ref prefix:A}}&lt;/kbd&gt; produces a search domain of {{val|264000}}.
Running the regex on that many pages is possible, and produces {{val|64000}} results.
To find a more targeted URL, say yahoo.brand.edgar.com, use &lt;kbd&gt;insource: &quot;http yahoo brand edgar com&quot;&lt;/kbd&gt; {{space}} (or cut and paste the entire URL, slashes dots, and all; it doesn't matter). Do another search with the https version. These searches capable of more flexibility than [[Special:LinkSearch]]. No filter is needed, but every search always benefits from extra information: any word, any phrase, and most parameters.&lt;!--
--&gt;&lt;section end=Insource /&gt;
=== Linksto ===
'''&lt;kbd&gt;Linksto&lt;/kbd&gt;'''
Reports wikilinks to a page name.
* Linksto only accepts a canonical fullpagename. Use the title line. If the title does not begin with a capital letter, or if you're not sure about the title line for any reason, you can preview &lt;kbd&gt;{&lt;nowiki/&gt;{FULLPAGENAME}}&lt;/kbd&gt; on an edit of the page.
* Linksto is case sensitive.
* Namespace aliases are found, but not accepted as input.
* Linksto does not find redirects. If you want all links to ''content'' you'll have to search each redirect page ''name''.
* Linksto does not report the given page as a link to itself, even when there are internal section-to-section links.
* Linksto does not find URL-style wikilinks to a page.
* Collapsed navlinks are not reported by linksto, but they are reported by WhatLinksHere.
Linksto reports wikilinks to a page name, even if the wikilink is
* to a section.
* from a [[H:L#Subpage links|subpage link]].
* hidden in a transclusion (&quot;behind&quot; a template that forms a wikilink).
Linksto can differ from the &quot;&lt;small&gt;What links here&lt;/small&gt;&quot; tool,
because the search domain for &quot;&lt;small&gt;What links here&lt;/small&gt;&quot; is '''all'''.
Linksto search results are in your default search domain.
(Also '''&lt;kbd&gt;linksto&lt;/kbd&gt;''' reports the count, as do all searches.)
In addition to wikitext it searches inside a pages transcluded content.
first, and then scan the contents.&lt;ref&gt;The search is not actually done page by page,
but the index for the wiki is built page by page in this way.&lt;/ref&gt;
For example
:&lt;kbd&gt;linksto:&quot;Mozart and scatology&quot;&lt;/kbd&gt;
will report a list of 300 articles that link to it, as will &quot;&lt;small&gt;What links here&lt;/small&gt;&quot;.
But ''[[Mozart and scatology]]'' is actually linked only 15 times by [[Wikipedia:content|content]] ''authors''.
The rest are due to ''Mozart and scatology'' in ''Template:Wolfgang Amadeus Mozart'' on the unwanted pages. The template is wanted, but the &quot;links to&quot; reference is probably not.&lt;ref&gt;
By doing things like adding a Mozart navigation template to each page about Mozart ''[[wp:wikignomes|]]'' shore up the wiki infrastructure. Authorship, on the other hand, writes the prose of a page, one page at a time.
(You cannot remove the unwanted links with &lt;kbd&gt;-hastemplate:&quot;Wolfgang Amadeus Mozart&quot;&lt;/kbd&gt;.&lt;/ref&gt;
The trick to getting around this, and just finding all ''authorship'' links to an article is a regexp search:
:&lt;kbd&gt;: insource:&quot;pagename&quot; {{space}} insource:&lt;big&gt;'''/'''&lt;/big&gt;\[\[ *[Pp]agename *[]|]&lt;big&gt;'''/'''&lt;/big&gt;&lt;/kbd&gt;
That search will find ''articles'' only
because the initial &lt;big&gt;''':'''&lt;/big&gt; limits the ''initial search domain'' to article space,
no matter how your default search domain happens to be set.
It will find all of the links many times more quickly than a bare regexp would,
because the first '''&lt;kbd&gt;insource&lt;/kbd&gt;''' term instantly creates the ''refined search domain''
that sets the proper limits for the regexp search.
A regexp can accommodate for the variations found in the wikitext allowed by the permissions of wikilinks:
1) the metacharacter &lt;kbd&gt;*&lt;/kbd&gt; allows for &quot;zero or more&quot; space characters before and after the title, and
2) the [character class] at the beginning allows for the relaxed capitalization of the first character in any pagename, and
3) the character class at the end finds the link whether it is labeled via the pipe character | or closed via the square bracket ] of the wikilink.
Links to transclusions are handled by ''hastemplate''.
== Sorting results ==
&lt;!-- move to section &quot;Search page results&quot; --&gt;
A page's overall score determines its place in the search results.
A ''better'' match will raise the score.
* A section zero (lead-section) match is better than a numbered section.
* A title or headings match is better than a lead section match.
* A greater frequency of a search term is better.
* A direct match is better than a stemmed match.
* When several words are all found in many documents, a ''matching order'' is better.
* A higher mesh{{mdash}}more links to and from a page{{mdash}}is better.
Wikiproject &quot;importance&quot; and [[wp:QUALITY|article quality]] assessments can factor in.
Searching from a page, its categories, wikidata, and geo-location can factor in.
Knowing this you may be able to better find, for example, a half-remembered title.
Using ''intitle'' may skew the results too much because of the order of the words.
Use those in a word search, and depend on page ranking.
The titular words will show up on top.
To get an idea of how CirrusSearch might work see [[mw:Search/Old#Search_Weighting_Ideas]].
To ''sort'' search results by date, use ''prefer-recent''.
To ''sort'' search results by template usage, use ''boost-template''.
=== Morelike ===
The '''&lt;kbd&gt;morelike&lt;/kbd&gt;''' search parameter
lists all articles that compare in word frequency and word length to one or more given articles.
:&lt;kbd&gt;morelike: ''[[Wikipedia:pagename|pagename]]'' | ''pagename2'' | ... | ''pagename50''&lt;/kbd&gt;
* Quotation marks are not needed, and spacing is not important.
* Capitalization is enforced, and misspelled pagenames silently fail.
* Redirects are accepted; the target article's title is used.
* [[WP:pagename#namespace|a pagename with a namespace]] silently fails.
* [[wp:shortcut]]s silently fail. (A shortcut redirect from article space to a project space.)
* No other search parameters or other terms are allowed alongside ''morelike''.
''Morelike'' calculates a multi-word search.
:&lt;kbd&gt;: ''word1'' ''word2'' ... ''wordN''&lt;/kbd&gt;
See them highlighted in the snippet.
Morelike looks up the given pagename(s) in the search index,
creates a word-frequency aggregate and a word-length aggregate
from ''all'' the words,
and calculates a multi-word search based on those,
plus internal, variable settings.
It is an expensive search.
For example, say you search for
:'''&lt;kbd&gt;morelike:William H. Stewart&lt;/kbd&gt;'''
then pick a name from that list and add it
:'''&lt;kbd&gt;morelike:William H. Stewart|Leroy Edgar Burney&lt;/kbd&gt;'''
then add more names, until you have five input pagenames.
Then you could begin blindly adjusting
this automatically calculated ''morelike'' query,
saying the following sorts of things: Make the calculated query
* at least ''five'' words
* a minimum word length of ''seven''
* a minimum word frequency of ''three''
* At most ''four'' of the five pagenames must have the term.
* At least ''three'' of them must have the term.
Then, say, you adjust the number of input pagenames that have a word to ''two'' (out of five).
https://en.wikipedia.org/w/index.php?title=Special:Search&amp;profile=default&amp;search=morelike:ant|bee|wasp|Eusociality|termite&amp;fulltext=Search&amp;cirrusMtlUseFields=yes&amp;cirrusMltFields=opening_text&amp;limit=1150
It can also find similar articles based on just the title, or on just the headings, or on just the lead section.
* &amp;cirrusMtlUseFields=yes&amp;cirrusMltFields='''title'''
* &amp;cirrusMtlUseFields=yes&amp;cirrusMltFields='''headings'''
* &amp;cirrusMtlUseFields=yes&amp;cirrusMltFields='''text'''
* &amp;cirrusMtlUseFields=yes&amp;cirrusMltFields='''auxiliary_text'''
* &amp;cirrusMtlUseFields=yes&amp;cirrusMltFields='''opening_text'''
* &amp;cirrusMtlUseFields=yes&amp;cirrusMltFields='''all'''
The search results depend on internal (&lt;code&gt;Mlt&lt;/code&gt;, More like this) variables,
settable via the URL,
concerning which words to search with:
{| class=wikitable
|-
| &amp;cirrusMltMinDocFreq || How many articles with a search word, minimally
|-
| &amp;cirrusMltMaxDocFreq || How many articles with a chosen word, maximumally
|-
| &amp;cirrusMltMaxQueryTerms || number of search words, maximum
|-
| &amp;cirrusMltMinTermFreq || Minimum word frequency of a chosen word.
|-
| &amp;cirrusMltMinWordLength || Minimal length of a term to be considered. Defaults to 0.
|-
| &amp;cirrusMltMaxWordLength || The maximum word length above which words will be ignored. Defaults to unbounded (0).
|-
| &amp;cirrusMltFields || A comma separated list of the fields to use. Allowed fields are title, text, auxiliary_text, opening_text, headings and all.
|-
| &amp;cirrusMltUseFields (true or false)|| use only the field data. Defaults to false: the system will extract the content of the text field to build the query.
|-
| &amp;cirrusMltPercentTermsToMatch|| The percentage of terms to match on. Defaults to 0.3 (30 percent).
|}
For example here is what the address bar (turned search bar) looks like for a ''morelike'' search for lead sections of two articles, as compared to other lead sections:
&lt;small&gt;&lt;small&gt;
https://en.wikipedia.org/w/index.php?title=Special:Search&amp;profile=default&amp;search=morelike:William+H.+Stewart{{!}}Leroy+Edgar+Burney&amp;fulltext=Search&amp;cirrusMtlUseFields=yes&amp;cirrusMltFields=opening_text
&lt;/small&gt;&lt;/small&gt;
Notice the end containing the two added URL parameters that activated a ''morelike'' capability.
=== Prefer-recent ===
You can sort search results by date.
* &lt;kbd&gt;prefer-recent:&lt;/kbd&gt;
* &lt;kbd&gt;prefer-recent:''recent'',''boost''&lt;/kbd&gt;
It goes anywhere in the query.
It defaults to 160 days as &quot;recent&quot;,
and applies its boost formula 60% of the score.
The formula is not the usual multiplier,
it is an exponential multiplier, potentially much more powerful.
This enables it to work where the default for &quot;recent&quot;,
instead of being 160 days, is can be as little as 9 seconds.
If your &quot;recent&quot; means 9 seconds, use &lt;kbd&gt;prefer-recent:0.0001&lt;/kbd&gt;
For example, if you're only interested in the relatively few articles
that have changed in the last week, use 7 instead.
How this works is that
all articles older than seven days
are only boosted half as much,
and all articles older than 14 days are boosted half as much again,
and so on.
The boost is more than the usual multiplier, it is exponential.
The factor used in the exponent is the time since the last edit.
The bigger the time since the last edit,
the less the boost. The formula is &lt;var&gt;e&lt;/var&gt;&lt;sup&gt;−t&lt;/sup&gt;,
where t is either the interval in days or interval of interest.
I don't know. ??
Add '''&lt;kbd&gt;prefer-recent&lt;/kbd&gt;''' to the beginning of a search.
It will give the more recently edited articles a boost in the search results.
The general form is
:&lt;kbd&gt;prefer-recent:''proportion_of_score_to_scale'',''half_life_in_days''&lt;/kbd&gt;
This parameter accepts two, comma-separated arguments to allowing for adjusting the default settings.
By default this will scale 60% of the score [[w:Exponential_decay|exponentially]]
with the time since the last edit, with a half life of 160 days.
So the default is &lt;kbd&gt;prefer-recent:0.6,160&lt;/kbd&gt;.
This can be changed to increase the weight:
:&lt;kbd&gt;prefer-recent:0.8,360&lt;/kbd&gt;
or decrease it:
:&lt;kbd&gt;prefer-recent:0.4,10&lt;/kbd&gt;
The proportion_of_score_to_scale must be a number between 0 and 1 inclusive.
The half_life_in_days must be greater than 0 but allows decimal points,
and so works pretty well to sort close edit times if very small.
For example &lt;kbd&gt;prefer-recent:0.6,0.0001&lt;/kbd&gt; operates with a half-life of 8.64 seconds
This will eventually be on by default for Wikinews.
=== Boost-templates ===
''Boost-templates'':&quot;&amp;thinsp;&quot; adds weight to pages with the given template or templates (plural).
Using this search parameter overrides the normal template-boosting function of Search.
Don't use this search parameter without supplying the weight-boosting argument
unless you mean to disable the template weighting function for the search.
The general format is
:&lt;kbd&gt;boost-templates:&quot;Template:''pagename''|''parameter'' Template:''pagename''|''parameter''&quot;&lt;/kbd&gt;
You see, normally the [[help:system message|system message]]&lt;ref&gt;
A system message is the value of a MediaWiki operations variable.
It can consist of a snippet of plain text, wiki text, CSS, or Javascript.
A ''message'' is used to customize the behavior of MediaWiki,
especially as pertains to the user interface as seen by readers,
but also including the way it itself appears as a simple message,
and these for each language and locale.&lt;/ref&gt;
titled ''[[MediaWiki:cirrussearch-boost-templates]]'' boosts the score of the following fullpagenames: {{MediaWiki:cirrussearch-boost-templates}}. These are the actual template names and there actual boost. These are replaced during the ''boost-templates'' usage.
&lt;!--
This and other page ranking functions
always process every page on any search result,
in order to then enable the presentation the first page of search results.
The default value for this function is a [[help:system message]],
changeable by administrators.
--&gt;
For example a search for &quot;phenom&quot; AND &quot;lecture&quot;,
with the templates ''Search link'' and ''regexp''
having the weighting score of the pages they are on multiplied by 1.5 and 2.25 respectively,
ignoring all other templates (halting the addition of any score for any other template):
:&lt;kbd&gt;phenom lecture boost-templates:&quot;Template:search link|150% tlusage|225%&quot;&lt;/kbd&gt;
''Boost-templtes'' differs from ''hastemplate'' in
* the default namespace
* gramar. Boost-templates has a plural form, and uses a dash between the words.
* syntax. Boost-templates ''requires'' quotation marks.
* function. Hastemplate is a filter, but boost-templates is not; it only changes a score.
* Boost-template has a parameter for controlling the ''boost''.
If you just want your search results to include only pages with certain templates,
use ''hastemplate'' one or more times instead, to ''filter'' out pages that don't.
Otherwise, choose a multiplier similar to the system message shown above.
Multiplying a page score by 10 is done with 1000%, and will probably mask all other weighting functions,
such as &quot;when the search words match in the title&quot;,
will have little effect in the presentation of search results, and is not recommended
because it affects the order of the entire list.
Either hastemplate or boost-templates one can go anywhere in the query, each having other terms on either side of it. is a term in a query that can go anywhere in the query, having other terms on either side of it.
== Bugs ==
Relevant &lt;span class=plainlinks&gt;[https://phabricator.wikimedia.org/tag/cirrussearch issues in CirrusSearch]&lt;/span&gt;:
* {{phab|T73123}}: pagename can't have double quotation &quot; mark: incategory or intitle
* The tilde ~ character should not affect the &lt;kbd&gt;all&lt;/kbd&gt; parameter, for example &lt;kbd&gt;{{sl|~all:hephalump}}&lt;/kbd&gt;. Not only does ~ at the beginning ''not navigate'', but it also does ''not create'' a page, and all this without interfering with any namespace argument, but it does interfere with the pseudo-namespace &quot;all&quot;.
* {{phab|T124272}} Use of both AND and OR in the same query don't work as expected
* A phrase search can extend over a number # sign, but not an asterisk * character. This is inconsistent.
* {{phab|119806}} &lt;kbd&gt;cm2&lt;/kbd&gt; does not find &lt;code&gt;cm&lt;sup&gt;2&lt;/sup&gt;&lt;/code&gt;, &lt;kbd&gt;m3&lt;/kbd&gt; does not find &lt;code&gt;m&lt;sup&gt;3&lt;/sup&gt;&lt;/code&gt;, where the superscript are unicode characters.
* The search profile dialog box is difficult to dislodge. Even after the search profile is changed back to default, it continues to display.
Workarounds
* Use AND between two phrases, for example &lt;kbd&gt;{{sl|&quot;one two&quot; AND &quot;three four&quot;}}&lt;/kbd&gt;, to avoid six unwanted articles relating to the double quote &quot; mark.
Troubleshooting
* https://test.wikipedia.org/
* Change the backend by suffixing the URL: &lt;kbd&gt;&amp;srbackend=LuceneSearch&lt;/kbd&gt; or &lt;kbd&gt;&amp;srbackend=CirrusSearch&lt;/kbd&gt;
* &lt;span class=plainlinks&gt;[//mediawiki.org/w/index.php?title=Special:Search&amp;search={{urlencode:prefer-recent: cirrussearch -intitle: &quot;language extension bundle&quot; prefix:MediaWiki}}&amp;fulltext=Search&amp;profile=default Release notes]&lt;/span&gt;
&lt;!-- This subpage has many ref tags with notes that currently show up here without a section,
but where this subpage is transcluded, they will have a ref list.--&gt;</text>
<sha1>a5rbd3hku2d73ryn9977kitofnnr2hj</sha1>
</revision>
</page>
<page>
<title>Help:Searching/Regex</title>
<ns>12</ns>
<id>47206304</id>
<revision>
<id>766366922</id>
<parentid>766364015</parentid>
<timestamp>2017-02-19T20:16:34Z</timestamp>
<contributor>
<username>JMtB03</username>
<id>15580005</id>
</contributor>
<minor/>
<comment>/* Indexed search */ [[MOS:REFPUNCT</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="14456">&lt;!-- See [[Help:LST]] how to leverage {transclusion} unto {#section:transclusion}.
You can transclude with or without these section tags if you use #section-h.
Now, to transclude material from this page,
and have it directly, transparently, seamlessly editable from your target page,
do NOT type in your own heading. Instead, do a Labeled Section Transclusion from here.
Unfortunately, the heading levels are fixed, and there's no way around this.
--&gt;&lt;section begin=&quot;Regular expressions&quot;/&gt;
== Regular expressions ==
=== Indexed search ===
First, all [[wp:pagename|pages]] are scanned by the [[search engine]].
The entire wiki is treated as one &quot;full text&quot;
kept in a separate database built just for search indexes.
It's like the index in a book,
but practically every word and every number
is [[search engine indexing|indexed]] to every page.&lt;ref&gt;
When you ''search'' you are not scanning pages,
you are looking up an entry in an index (a database).
All content is at all times &quot;known&quot; and resides in indexes.
So when you read &quot;searches namespace&quot; or
&quot;searches transcluded content on a page&quot;,
you can mentally replace &quot;search&quot; with &quot;searches the index for&quot;.
&lt;/ref&gt;
Since each word in the prebuilt search index
already points to the pages that contain it,
most any word you search for,
is actually a single record lookup in that index.
(This is also true for phrases to a certain extent.)
There are separate indexes kept updated for the
* titles
* visual content
* wikitext
* templates
All the words each template outputs
are indexed to the all pages onto which they are transcluded.
In other words,
any text transcluded by a template is indexed to its ''target'' page.&lt;ref&gt;
This is also said
&quot;the template on a page is expanded
before the search of a page is done&quot;,
but that is just an abstraction.&lt;/ref&gt;
An &quot;index search&quot; take basically no time to execute.
They are cheap and plentiful.
Preparing and maintaining the search indexes
is done in the background ''in near real time''.
As soon as you save the page,
a few seconds later you can search for the changes you just made.
For templates that are transcluded onto many many pages,
the propagation of those changes
to all the {{strike|pages}} index entries might take a minute.
Indexes are based on alphanumeric characters;
they store no information on non-alphanumeric characters.
Although an indexed search can ''ask'' for
punctuation, brackets, math and other symbolic characters of the keyboard,
these are ignored without warning.
Now you understand why search indexes are so fast.
Each regexp search needs an indexed search ''filter''
to provide them a ''search domain'' under {{val|10000}} pages.
==== Indexed search ====
A basic indexed search
* searches only article space. That is the default.
* matches ''only letters and numbers''. This is usually not a problem.
* works basically the same way for all public search engines. You can usually find the information you are looking for near the top of the search results by relying on page ranking software.
* lands a lot of search results. You rely heavily on page ranking rules. You then refine search results based on the topmost pages. This is done with the ''not'' filter, signified by a minus sign attached to the front of the unwanted word to filter out page-hit noise you could not have predicted. This is the first thing you learn.
* is an &quot;aggressive matcher&quot; including as many pages as it can by matching all forms of each word you enter.
Basically, why would anyone ever want to learn &quot;how to search&quot;, since it is just key words, and these are obviously known?
An advanced index search
* targets specific pages, instead of seeking general information.
* doesn't need page ranking ''at all'' and cannot accept myriad results.
* Cares about the ''quantity'' of page-hits shown on the right hand side of the search results page.
==== Regex search ====
A regex search actually scours each page in the search domain character-by-character.
By contrast, an indexed search actually queries a few records from a database separately maintained from the wiki database, and provides nearly instant results.
So when using an ''insource://'' (a regexp of any kind),
you should consider creating the other search terms
that will limit the regex search domain as much as possible.
There are many search terms that use an index and so instantly provide a more refined search domain for the /regexp/. In order of general effectiveness:
* ''insource:&quot;&quot;'' with quotation marks, duplicating the regexp except ''without the slashes'' or escape characters, is ideal.
* ''intitle'', ''incategory'', and ''linksto'' are excellent filters.
* ''hastemplate:'' is a very good filter.
* &quot;''word1 word2 word3''&quot;, with or without the quotation marks, are good.
* ''namespace:'' is an advanced filter, but practically useless for regex, except that it may enable a slow regexp search to complete a long life.
The ''prefix'' operator is especially useful with a {&lt;nowiki/&gt;{FULLPAGENAME}} in a search template, a search link, or an [[Extension:InputBox|input box]], because it automatically searches any subdirectories.
To develop a new regexp, or refine a complex regexp, use &lt;code&gt;prefix:{&lt;nowiki/&gt;{FULLPAGENAME}}&lt;/code&gt; on a page with a sample of the target data.
Search terms that do not increase the efficiency of a regexp search are the page-weighting operators: ''morelike'', ''boost-template'', and ''prefer-recent''.
The regex search main concern is to first limit the search domain with an
indexed search employing ''filters'', not such &quot;search engine queries&quot;.
Then it actually searches every page character by character.
It examines each page of a narrowly defined search domain.
A basic regex search
* can pattern ''any'' character string ''exactly'' using a regexp.
* excludes as many pages as it can.
* quotes each regexp in double quotes to turn off metacharacters.
An advanced regex search
* uses metacharacters.
* benefits by being developed in a sandbox.
The regexp can be a thousand words matching every character literally, or a few symbols of a regex metacharacter language, or any combination of the two. It can match any character from any keyboard.
Regex thus have the power to produce exactitude,
but are slow (expensive),
and come with the responsibility to add filters
to increase speed (reduce costs).
Developing a regex search virtually always requires trial and error,
an iterative development process supported by {{tl|regex}} and {{tl|template usage}}.
The easiest filters to add are a namespace, or a prefix, or a copy of the regex without the slashes removed.
Such filters all use an index to search, and by doing so are much faster.
This is one of the first things we learn about regex searches:
accompany them by filters.&lt;ref&gt;
Because there are {{NUMBEROFUSERS}} users,
and a well-filtered regex search only takes milliseconds,
while a bare, wiki-wide regex can take tens of seconds,
the benefits of adding a filter are enormous.&lt;/ref&gt;
Search domain size
* are voluntary, not automatic
* protect accessibility to regex
* sustain the open use of the most advanced search feature ''possible''
* help avoid an HTML timeout, which will kill a search
* create {{tl|regex}} developmental sandboxes
* are considerate, taking only the processing power they need
Running a bare regex can't hurt [[Wikipedia:performance]],
but without applying basic search techniques to them,
regex searches can limit other regex searchers,
and become an issue of contention.
{{sl|all: insource &quot;question sublinks&quot;}} How many pages on the wiki is that? OK.
{{sl|insource &quot;question sublinks&quot; insource:/&quot;Question&quot;[ _]&quot;[..&quot;\/&quot;|sublinks]]?&quot;/}}
{{punctuation}}
This covers enough of the regular expressions to get started answering questions about wikitext contents on the wiki. Regex are about using ''meta characters'' to create patterns that match any ''literal characters''. The pattern you give will match a target, character by character. To make some positions match with multiple possibilities, metacharacters are needed, and they are from the same keyboard characters that are also in the wikitext.&lt;!--
Space for aesthetic isolation of content from markup.
--&gt;&lt;section end=&quot;Regular expressions&quot;/&gt;&lt;section begin=Metacharacters/&gt;
=== Metacharacters ===
The left curly bracket is a metacharacter, and so the regexp pattern given must &quot;escape&quot; any opening curly bracket &lt;code&gt;\{&lt;/code&gt; in the target &quot;&lt;kbd&gt;{&lt;/kbd&gt;&quot; intending to match a template in the wikitext. All target text (all wikitext) is literal text, but we can backslash &quot;escape&quot; the regex metacharacters &lt;code&gt; \. \? \+ \* &lt;nowiki&gt;\|&lt;/nowiki&gt; \{ \[ \] \( \) \&quot; \\ \# \@ \&lt; \~ &lt;/code&gt; when we refer to them as literal characters in the wikitext we are interested in mining. Search will ignore the backslash wherever it is meaningless or unnecessary: &lt;code&gt;\n&lt;/code&gt; matches &lt;kbd&gt;n&lt;/kbd&gt;, and so on. So although you don't need to backslash escape &lt;code&gt;&amp;&lt;/code&gt; or &lt;code&gt;&gt;&lt;/code&gt; or &lt;code&gt;}&lt;/code&gt;, it is safe to do so. An unnecessary backslash will not cause your pattern to fail, but what ''will'' is using certain characters literally{{mdash}}&lt;kbd&gt; [ ] . * + ? &amp;#124; { ( ) &quot; \ # @ &lt; ~ &lt;/kbd&gt;.
* &lt;code&gt;[0-9]&lt;/code&gt; will match any digit, &lt;code&gt;[a-y]&lt;/code&gt; any lowercase letter except z, &lt;code&gt;[zZ]&lt;/code&gt; any z, (and so on). So square brackets mean &quot;character class&quot;.
* Dot &lt;code&gt;.&lt;/code&gt; will match a newline, or ''any character'' in the targeted position
The number of sequential digits or characters these symbols match is expressed by following it with a ''quantifying'' metacharacter:
* &lt;code&gt;*&lt;/code&gt; means zero or more
* &lt;code&gt;+&lt;/code&gt; means one or more
* &lt;code&gt;?&lt;/code&gt; means zero or one
of the character it follows after. The number of times it matches can also be given in a range, &lt;code&gt;a{2} a{2,} a{2,5}&lt;/code&gt; matches exactly 2, 2 or more, or 2-5 &lt;kbd&gt;a&lt;/kbd&gt;'s. So curly brackets mean &quot;quantifier&quot;.
* The parenthesis are a grouping mechanism, so we can quantify more than just the previous character, and so we can make boundaries for a set of ''alternative'' matches. (See ''alternation'' below.)
* The quotation marks are an escape mechanism, like square brackets or the backslash.
* The angle brackets stand for numerals, not digits. Say &lt;code&gt;&lt;5-799&gt;&lt;/code&gt;, to match 5{{ndash}}799, in one to three positions. Compare this with the alternative: &lt;code&gt;[0-9]{1,3}&lt;/code&gt; could match ones, tens, or thousands as, 0-999 or 00-999 or 000-999.
* Tilde &lt;code&gt;~&lt;/code&gt; looks ahead and ''negates'' the next character. In other words, if the pattern matches in this position, then ''un-match'' it if the next character is &lt;code&gt;~&lt;/code&gt;''character''.
It is not safe to search for a lone &lt;code&gt;{{!mxt|@}}&lt;/code&gt; because that single metacharacter matches literally ''everything''; you can use &lt;code&gt;{{mxt|\@}}&lt;/code&gt; to find all pages that use an &quot;at&quot; symbol.
Similarly find all pages that use the number zero, Search returns an error to search for a lone {{!mxt|0}}; use one of the three escape mechanisms for &lt;code&gt;0&lt;/code&gt; or &lt;code&gt;@&lt;/code&gt;.
* &lt;code&gt;&quot;0&quot;&lt;/code&gt;
* &lt;code&gt;\0&lt;/code&gt;
* &lt;code&gt;[0]&lt;/code&gt;
or find a larger pattern around the zero you seek. Although zero is not a metacharacter, these escape mechanisms work.
The rest of wiki regex is pretty straightforward. Characters stand for themselves unless they are metacharacters. If they are metacharacters they are escaped if outside of a character class.&lt;!--
Space for aesthetic isolation of content from markup.
--&gt;&lt;section end=Alternation/&gt;&lt;section begin=&quot;Character classes&quot;/&gt;
=== Character classes ===
A character class means &quot;literal characters&quot;, plural. It means &quot;literal&quot;, and so ''normally'' you don't have to escape a metacharacter character in a character class; they're already square-brackets escaped. The /slash delimiters/ mean we must of course escape ''any'' slash character, even inside a character class. No other character in a character class except slash always needs escaping; but because &lt;code&gt;]&lt;/code&gt; and &lt;code&gt;-&lt;/code&gt; have special meaning (metacharacter) to a character class, they must be escaped sometimes: those two are also literal (escaped) metacharacters ''if they are the first character'', but otherwise they must be also, like dash, be escaped: only backslash-escape works as the escape mechanism in a character class.
A character class can serve to escape metacharacters, so &lt;code&gt;[-|*\/.{\]]&lt;/code&gt; or &lt;code&gt;[]|*\/.{\-]&lt;/code&gt; means &quot;either a dash OR pipe OR star OR slash OR dot OR left curly bracket or a right square bracket&quot;. So &lt;code&gt;[][.?+*|\/{}()\-]&quot;&lt;/code&gt; or &lt;code&gt;[-[.?+*|\/{}()\]]&quot;&lt;/code&gt; works to find all the metacharacters in the wikitext, all of them except the backslash. Neither &lt;code&gt;[\]&lt;/code&gt; nor &lt;code&gt;[\\]&lt;/code&gt; allows us to OR a literal backslash. To OR a backslash character, there's '''alternation''' with the pattern &lt;code&gt;\\&lt;/code&gt; to handle that case. (See below.)
A character class understands the &quot;inverse&quot; of itself, &lt;kbd&gt;[^abc]&lt;/kbd&gt; is &quot;not a or b or c&quot;. A character class stands for a single character in a targeted position, so it's not really an inverse of a set, but rather a NOT of a character.
Currently character classes are limited to an expansion of four characters, so [0-9] would require three searches [0-3], [4-7], and [8-9]. The alphabet would require seven searches. This is to guarantee regex will work without overloading the search engine. See task {{phab|T106685}}.
Note that constructs such as &lt;code&gt;\d&lt;/code&gt; (digit) or &lt;code&gt;\a&lt;/code&gt; (alphabetic), used in some other regex implementations, are ''not'' accepted.&lt;!--
Space for aesthetic isolation of content from markup.
--&gt;&lt;section end=Metacharacters/&gt;&lt;section begin=Alternation/&gt;
=== Alternation ===
Finally, '''alternation''' is a class of regex that contains alternative possibilities for a match, say an AA or a BB, or a CC:
* &quot;AA&quot; OR &quot;BB&quot; OR &quot;CC&quot; to Word search an entire page
* &lt;code&gt;AA|BB|CC&lt;/code&gt; to regexp search a two-character position
* &lt;code&gt;'''('''&lt;nowiki&gt;AA|BB|CC&lt;/nowiki&gt;''')'''&lt;/code&gt; where used within a larger regexp because an alternation finds the ''longest'' pattern, and so the parentheses define that boundary, but it's a boundary you don't have to make if an alternation is the entire regexp pattern.&lt;!-- comment before newline to limit whitespace caused by section tag
--&gt;&lt;section end=Alternation /&gt;</text>
<sha1>jxnnhx9d6yo7e0j9citkw5hsf30q2t4</sha1>
</revision>
</page>
<page>
<title>Help:Searching/Regex/Sandboxing</title>
<ns>12</ns>
<id>47206488</id>
<revision>
<id>685987661</id>
<parentid>677219733</parentid>
<timestamp>2015-10-16T07:24:16Z</timestamp>
<contributor>
<username>John of Reading</username>
<id>11308236</id>
</contributor>
<comment>Typo/[[WP:AWB/GF|general]] fixes, [[WP:AWB/T|typo(s) fixed]]: with with → with using [[Project:AWB|AWB]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="10034">=== Developing regular expressions in ''an ad'' hoc sandbox ===
[[Regular expressions]] are little computer programs, so it is characteristic of regex searches that they must be written while studying the target data, and tested to achieve there potential precision and thoroughness. But only a few of these intensive searches are technically able to run at a time against the database.&lt;ref&gt;See [https://discuss.elastic.co/t/how-to-protect-an-es-cluster-from-searches-that-would-kill-it/25487 how searches can kill Wikipedia's CirrusSearch/ElasticSearch engine]&lt;/ref&gt; A sandbox minimizes your footprint, and guarantees that you will never run an untested regexp on every namespace in the wiki, even if [[H:S#User preferences|your default search]] would let you do that.
Although a ''normal'' search targeting the entire wiki run quickly, a ''regexp'' search should target as few pages as possible by using filters in order to run quickly. A filter is part or whole of a ''database query''. Filters include
* word(s) or phrase
* intitle:
* incategory:
* hastemplate:
* prefix: (always at the end)
* linksto:
* ''namespace:'' (always at the beginning)
* insource:&quot;word1 word2&quot;
* insource:word
Order is not important because the search is optimized by the software before it is run.
To target just one page while experimenting with or developing a regex search, target a fullpagename. From the search box use the filter &lt;kbd&gt;prefix:''fullpagename''&lt;/kbd&gt;. From the edit box (of any section of the page with the target data), you can always just write &lt;kbd&gt;{{nowrap|prefix:{&lt;nowiki/&gt;{FULLPAGENAME}}}}&lt;/kbd&gt; and it will &quot;expand&quot; for you to the fullpagename. Although you can edit a history page, technically a &quot;history page&quot; is not a page (in the database), and so {&lt;nowiki/&gt;{FULLPAGENAME}} ''there'' will point to the database version (not its own rendering). For the same reason, you cannot search for the wikitext on a page that is not already saved (to the database), although you can certainly change the search parameters again and again with no need to save ''them''.
''Fullpagename is namespace:pagename''. Knowing this you can adjust your Prefix parameter. Although ''prefix'' can filter down to one page, it can filter up to a namespace, and it also accepts the beginning letter(s) of set of pagenames if you want to reduce the namespace search domain.
Regex sandboxing uses an ''ad hoc'' sandbox made by editing any page containing the target data, and using it as a &quot;sandbox&quot; (not editing it to save it). It then develops by using adding a search link that includes insource:/''regexp''/, with the filter ''prefix:&amp;#123;{FULLPAGENAME}}'' alongside.
Use of a sandbox enables the smallest possible footprint by using filters to limit the search domain. Once your regexp pattern is honed, you increase the search domain. A regex search is best run with filters, not alone even if it is a polished rexexp.
==== Sandboxing procedure ====
Rather than use the search box, where entering an equals sign and a pipe character, and &quot;quotes around phrases&quot; is a straightforward matter, it is still easiest to use a regex-based search-link template {{mdash}} {{tl|regex}} or {{tl|tlusage}} {{mdash}} on the page with sample data, because then you can focus on the target data there and on writing the regexp pattern. It is easier, that is, if you already understand how templates &quot;escape&quot; the pipe character and the equals sign. See [[Help:Template#Parameters]] for other important details.
The procedure here is an iterative, read-evaluate-modify cycle. Regex development requires that you study the target data while writing and rewriting its pattern.
# Navigate to a page with the wikitext instances you are interested in mining. Or create one yourself, and save it to the database so the query will find it.
# Open the wikitext, and enter a {{tl|regex}} or {{tl|tlusage}}.
# ''Show preview'', and activate the search link. On the search results page, note the bold text in each match.
# Go back in your browser. Modify the regexp, and cycle until done. (Or don't go back, you may want to modify the query at the search box.)
# Expand the search domain, and test the accuracy of ''those'' results. You can trim or expand the number of the results using ''prefix:''.
''Caveat emptor'': if you change the ''target'' for an ''immediate'' retesting, you'll have to save and [[WP:Purge|purge]], but not if you just change the regexp.
&lt;section begin=Examples /&gt;
==== Examples ====
As an ''ad hoc'' sandbox, you can show the wikitext of a section like this, (already saved in the database), modify some of the patterns in the regex-search-link template calls on this page, do a Show Preview, and see what matches when you click on the newly formed regex search-link, all quite safely, and without changing a thing in the database.
&lt;!--If you change the below, sample, targets, you'll have to save the page
to get them into the database to find them in the query. The first batch here
is concentrated so that it shows up to six or seven hits on the results page.
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv --&gt;
The template calls that produce &quot;{{val|1|ul=ft/s|fmt = commas}},
{{val|2|u=ft2}},
{{val|3|u=m/s| fmt =commas }},
{{val|4|u=m*s-2}},
{{val|5|u=ft.s-2}},
{{val|6|u=C/J}}, and
{{val|7|ul=J/C}}&quot;
appear in the wikitext of this section like this:
# &lt;kbd&gt;&lt;nowiki&gt;{{val|1|ul=ft/s|fmt = commas}}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|2|u=ft2}}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|3|u=m/s| fmt =commas }}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|4|u=m*s-2}}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|5|u=ft.s-2}}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|6|u=C/J}}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|7|ul=J/C}}&lt;/nowiki&gt;&lt;/kbd&gt;
&lt;!--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you change the above targets, you'll have to save the page
to get them into the database to find them in the query.--&gt;
Note how the above targets are |numbered|, then click on the links below.
{| class=&quot;wikitable&quot;
! scope=&quot;col&quot; width=&quot;200px&quot; | Query
! [[Template:Internal search templates common doc#Search links|Search link]]
! Answer
|-
|'''Q1''' Using {{tl|search link}}, does this page ''employ'' template Val ?
|{{#invoke:DemoTemplate|sl|hastemplate: Val}}
|'''A.''' No, because this pagename is in Help not Article space.(Search link default). '''1300''' search results.
|-
|'''Q2''' Using {{tlf|search link}} ''responsibly'', does this page use Val's fmt parameter?
|&lt;code&gt;&lt;nowiki&gt;{{sl|insource:/\{[Vv]al\{{!}}[^}]*fmt/ prefix:{{FULLPAGENAME}}}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr;
{{sl|insource:/\{[Vv]al\{{!}}[^}]*fmt/ prefix:{{FULLPAGENAME}}}}
|'''A2.1'''. Look for 1 and 3 in the search results in bold text. (Adds an appropriate filter.)
|-
|Using {{tl|regex}} instead...
|&lt;code&gt;&lt;nowiki&gt;{{slre|\{[Vv]al\{{!}}[^}]*fmt}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr;
{{slre|\{[Vv]al\{{!}}[^}]*fmt}}
|'''A2.2''' Less typing than {{tlf|search link}}.
|-
|Using {{tl|template usage}} instead...
|&lt;code&gt;&lt;nowiki&gt;{{tlre|Val|pattern=fmt}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr;
{{tlre|Val|pattern = fmt}}
|'''A2.3''' Easiest for templates.
|-
|'''Q3'''. Who uses &lt;kbd&gt;u=ft&lt;/kbd&gt; OR &lt;kbd&gt;ul=ft&lt;/kbd&gt;? (one-letter differs)
| &lt;code&gt;&lt;nowiki&gt;{{regex|ul?=ft}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr;
{{slre|ul?{{=}}ft}}
|'''A'''. Look for 1, 2, and 5 in bold text.
|-
|Using {{tl|template usage}}...
|&lt;code&gt;&lt;nowiki&gt;{{tlre|val|pattern = ul?=ft}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr;
{{tlre|val|pattern = ul?=ft}}
|Finds same pattern, but only ''inside'' a Val template.
|-
|'''Q4'''. AND of these, who also uses fmt=commas after that?
| &lt;code&gt;&lt;nowiki&gt;{{slre|ul?=ft.*commas}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr;
{{slre|ul?=ft.*commas}}
|A. No context shown, but article title is shown. A half a Bug?
|-
|Who has one space before the word &quot;commas&quot;?
|{{#invoke:DemoTemplate|slre|. commas}}
|'''A'''. 1 but not 2.
|-
|'''Q5'''. Who uses either u or ul with &quot;ft&quot; OR uses &quot;fmt=commas&quot;.
|&lt;code&gt;&lt;nowiki&gt;{{slre|(ul? *= *ft{{!}}fmt *= *commas)}}&lt;/nowiki&gt;&lt;/code&gt;
&amp;rarr; {{slre|(ul? *= *ft{{!}}fmt *= *commas)}}
|'''A'''. 1, 2, 3, and 5. (The pattern matches all possible spacing.)
|-
|'''Q6'''. Who uses ''ft'' or ''m'', in {{para|u}} or {{para|ul}}?
|&lt;code&gt;&lt;nowiki&gt;{{slre|ul? *{{=}} *(ft{{!}}m)}}&lt;/nowiki&gt;&lt;/code&gt;
&amp;rarr; {{slre|ul? *{{=}} *(ft{{!}}m)}}
|'''A'''. 1, 2, 3, 4, and 5.
Used {&lt;nowiki/&gt;{!}} for the ''alternation'' metacharacter. Used {{tl|1==}}. (Could have used named &lt;code&gt;1 = &lt;/code&gt; or nicely named &lt;code&gt;pattern = &lt;/code&gt;.)
|-
|'''Q7'''. Who uses . or * in the unit code?
|&lt;code&gt;&lt;nowiki&gt;{{tlre|val|pattern = u *= *(\.{{!}}\*)/}}&lt;/nowiki&gt;&lt;/code&gt;
&amp;rarr; {{tlre|val|pattern = u *= *(\.{{!}}\*)/}}
|'''A'''. 4 and 5.
|-
|Who uses a pipe?
|{{#invoke:DemoTemplate|regex|\{{!}}}}
|All of them
|-
|'''Q8'''. Who uses / or - ''within'' the {{para|u}} or {{para|ul}} paramter?
|&lt;code&gt;&lt;nowiki&gt;{{tlre|val|ul? *= *[^{{!}}}]+(\/{{!}}-)}}&lt;/nowiki&gt;&lt;/code&gt;
&amp;rarr; {{tlre|val|pattern = ul? *= *[^{{!}}}]+(\/{{!}}-)}}
|'''A'''. 1,3,4,5,6 and 7.
|-
|'''Q9'''. Where is Val used in the template namespace for numbers only, (no &lt;kbd&gt;u&lt;/kbd&gt;, &lt;kbd&gt;ul&lt;/kbd&gt;, &lt;kbd&gt;up&lt;/kbd&gt;, or &lt;kbd&gt;upl&lt;/kbd&gt; parameters).
|&lt;code&gt;&lt;nowiki&gt;{{tlre|val|pattern = ~(u[lp].)|prefix = 10}}&lt;/nowiki&gt;&lt;/code&gt;
&amp;rarr; {{tlre|val|pattern = ~(u[lp].)|prefix = 10 }}
|'''A'''. In the 30 or so templates listed.
|-
| '''Q10'''. Which articles use {{tl|Convert}}'s &lt;kbd&gt;and(-)&lt;/kbd&gt; option?
|&lt;code&gt;&lt;nowiki&gt;{{tlre|convert|pattern=and\(-\)| prefix=0}}&lt;/nowiki&gt;&lt;/code&gt;
&amp;rarr; {{tlre|convert|pattern = and\(-\) | prefix = 0}}
| '''A''' ''Coast Range Arc'' and ''Skipjack shad''
|}
In '''Q2''', notice how the MediaWiki software ignores the spaces ''around'' parameters, but how in '''Q4''' the same MediaWiki software processes the spaces ''inside'' parameters. Q2 might have been solved with a plain &lt;kbd&gt;insource:val fmt&lt;/kbd&gt; search because &quot;fmt&quot; and &quot;val&quot; are whole words, and fmt is rarely seen apart from inside Val. How about &lt;kbd&gt;hastemplate:val insource:fmt&lt;/kbd&gt;?
&lt;section end=Examples /&gt;
==References==
{{Reflist}}</text>
<sha1>mxcl7vi9kuqrtyyjo5wszxu684dln8t</sha1>
</revision>
</page>
<page>
<title>Module:Convert</title>
<ns>828</ns>
<id>38570716</id>
<revision>
<id>814618333</id>
<parentid>795876376</parentid>
<timestamp>2017-12-09T22:33:14Z</timestamp>
<contributor>
<username>Johnuniq</username>
<id>6036800</id>
</contributor>
<comment>update from sandbox per [[Template talk:Convert#Module version 20]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="134003">-- Convert a value from one unit of measurement to another.
-- Example: {{convert|123|lb|kg}} --&gt; 123 pounds (56 kg)
-- See [[:en:Template:Convert/Transwiki guide]] if copying to another wiki.
local MINUS = '−' -- Unicode U+2212 MINUS SIGN (UTF-8: e2 88 92)
local abs = math.abs
local floor = math.floor
local format = string.format
local log10 = math.log10
local ustring = mw.ustring
local ulen = ustring.len
local usub = ustring.sub
-- Configuration options to keep magic values in one location.
-- Conversion data and message text are defined in separate modules.
local config, maxsigfig
local numdot -- must be '.' or ',' or a character which works in a regex
local numsep, numsep_remove, numsep_remove2
local data_code, all_units
local text_code
local varname -- can be a code to use variable names that depend on value
local from_en_table -- to translate an output string of en digits to local language
local to_en_table -- to translate an input string of digits in local language to en
-- Use translation_table in convert/text to change the following.
local en_default -- true uses lang=en unless convert has lang=local or local digits
local group_method = 3 -- code for how many digits are in a group
local per_word = 'per' -- for units like &quot;liters per kilometer&quot;
local plural_suffix = 's' -- only other useful value is probably '' to disable plural unit names
local omitsep -- true to omit separator before local symbol/name
-- All units should be defined in the data module. However, to cater for quick changes
-- and experiments, any unknown unit is looked up in an extra data module, if it exists.
-- That module would be transcluded in only a small number of pages, so there should be
-- little server overhead from making changes, and changes should propagate quickly.
local extra_module -- name of module with extra units
local extra_units -- nil or table of extra units from extra_module
-- Some options in the invoking template can set variables used later in the module.
local currency_text -- for a user-defined currency symbol: {{convert|12|$/ha|$=€}} (euro replaces dollar)
local function from_en(text)
-- Input is a string representing a number in en digits with '.' decimal mark,
-- without digit grouping (which is done just after calling this).
-- Return the translation of the string with numdot and digits in local language.
if numdot ~= '.' then
text = text:gsub('%.', numdot)
end
if from_en_table then
text = text:gsub('%d', from_en_table)
end
return text
end
local function to_en(text)
-- Input is a string representing a number in the local language with
-- an optional numdot decimal mark and numsep digit grouping.
-- Return the translation of the string with '.' mark and en digits,
-- and no separators (they have to be removed here to handle cases like
-- numsep = '.' and numdot = ',' with input &quot;1.234.567,8&quot;).
if to_en_table then
text = ustring.gsub(text, '%d', to_en_table)
end
if numsep_remove then
text = text:gsub(numsep_remove, '')
end
if numsep_remove2 then
text = text:gsub(numsep_remove2, '')
end
if numdot ~= '.' then
text = text:gsub(numdot, '.')
end
return text
end
local function decimal_mark(text)
-- Return ',' if text probably is using comma for decimal mark, or has no decimal mark.
-- Return '.' if text probably is using dot for decimal mark.
-- Otherwise return nothing (decimal mark not known).
if not text:find('[.,]') then return ',' end
text = text:gsub('^%-', ''):gsub('%+%d+/%d+$', ''):gsub('[Ee]%-?%d+$', '')
local decimal =
text:match('^0?([.,])%d+$') or
text:match('%d([.,])%d?%d?$') or
text:match('%d([.,])%d%d%d%d+$')
if decimal then return decimal end
if text:match('%.%d+%.') then return ',' end
if text:match('%,%d+,') then return '.' end
end
local add_warning, with_separator -- forward declarations
local function to_en_with_check(text, parms)
-- Version of to_en() for a wiki using numdot = ',' and numsep = '.' to check
-- text (an input number as a string) which might have been copied from enwiki.
-- For example, in '1.234' the '.' could be a decimal mark or a group separator.
-- From viwiki.
if to_en_table then
text = ustring.gsub(text, '%d', to_en_table)
end
if decimal_mark(text) == '.' then
local original = text
text = text:gsub(',', '') -- for example, interpret &quot;1,234.5&quot; as an enwiki value
if parms then
add_warning(parms, 0, 'cvt_enwiki_num', original, with_separator({}, text))
end
else
if numsep_remove then
text = text:gsub(numsep_remove, '')
end
if numsep_remove2 then
text = text:gsub(numsep_remove2, '')
end
if numdot ~= '.' then
text = text:gsub(numdot, '.')
end
end
return text
end
local function omit_separator(id)
-- Return true if there should be no separator before id (a unit symbol or name).
-- For zhwiki, there should be no separator if id uses local characters.
-- The following kludge should be a sufficient test.
if omitsep then
if id:sub(1, 2) == '-{' then -- for &quot;-{...}-&quot; content language variant
return true
end
if id:byte() &gt; 127 then
local first = usub(id, 1, 1)
if first ~= 'Å' and first ~= '°' and first ~= 'µ' then
return true
end
end
end
return id:sub(1, 1) == '/' -- no separator before units like &quot;/ha&quot;
end
local spell_module -- name of module that can spell numbers
local speller -- function from that module to handle spelling (set if needed)
local wikidata_module, wikidata_data_module -- names of Wikidata modules
local wikidata_code, wikidata_data -- exported tables from those modules (set if needed)
local function set_config(args)
-- Set configuration options from template #invoke or defaults.
config = args
maxsigfig = config.maxsigfig or 14 -- maximum number of significant figures
local data_module, text_module
local sandbox = config.sandbox and ('/' .. config.sandbox) or ''
data_module = &quot;Module:Convert/data&quot; .. sandbox
text_module = &quot;Module:Convert/text&quot; .. sandbox
extra_module = &quot;Module:Convert/extra&quot; .. sandbox
wikidata_module = &quot;Module:Convert/wikidata&quot; .. sandbox
wikidata_data_module = &quot;Module:Convert/wikidata/data&quot; .. sandbox
spell_module = &quot;Module:ConvertNumeric&quot;
data_code = mw.loadData(data_module)
text_code = mw.loadData(text_module)
all_units = data_code.all_units
local translation = text_code.translation_table
if translation then
numdot = translation.numdot
numsep = translation.numsep
if numdot == ',' and numsep == '.' then
if text_code.all_messages.cvt_enwiki_num then
to_en = to_en_with_check
end
end
if translation.group then
group_method = translation.group
end
if translation.per_word then
per_word = translation.per_word
end
if translation.plural_suffix then
plural_suffix = translation.plural_suffix
end
varname = translation.varname
from_en_table = translation.from_en
local use_workaround = true
if use_workaround then
-- 2013-07-05 workaround bug by making a copy of the required table.
-- mw.ustring.gsub fails with a table (to_en_table) as the replacement,
-- if the table is accessed via mw.loadData.
local source = translation.to_en
if source then
to_en_table = {}
for k, v in pairs(source) do
to_en_table[k] = v
end
end
else
to_en_table = translation.to_en
end
if translation.lang == 'en default' then
en_default = true -- for hiwiki
end
omitsep = translation.omitsep -- for zhwiki
end
numdot = config.numdot or numdot or '.' -- decimal mark before fractional digits
numsep = config.numsep or numsep or ',' -- group separator for numbers
-- numsep should be ',' or '.' or '' or '&amp;nbsp;' or a Unicode character.
-- numsep_remove must work in a regex to identify separators to be removed.
if numsep ~= '' then
numsep_remove = (numsep == '.') and '%.' or numsep
end
if numsep ~= ',' and numdot ~= ',' then
numsep_remove2 = ',' -- so numbers copied from enwiki will work
end
end
local function collection()
-- Return a table to hold items.
return {
n = 0,
add = function (self, item)
self.n = self.n + 1
self[self.n] = item
end,
}
end
local function divide(numerator, denominator)
-- Return integers quotient, remainder resulting from dividing the two
-- given numbers, which should be unsigned integers.
local quotient, remainder = floor(numerator / denominator), numerator % denominator
if not (0 &lt;= remainder and remainder &lt; denominator) then
-- Floating point limits may need this, as in {{convert|160.02|Ym|ydftin}}.
remainder = 0
end
return quotient, remainder
end
local function split(text, delimiter)
-- Return a numbered table with fields from splitting text.
-- The delimiter is used in a regex without escaping (for example, '.' would fail).
-- Each field has any leading/trailing whitespace removed.
local t = {}
text = text .. delimiter -- to get last item
for item in text:gmatch('%s*(.-)%s*' .. delimiter) do
table.insert(t, item)
end
return t
end
local function strip(text)
-- If text is a string, return its content with no leading/trailing
-- whitespace. Otherwise return nil (a nil argument gives a nil result).
if type(text) == 'string' then
return text:match(&quot;^%s*(.-)%s*$&quot;)
end
end
local function table_len(t)
-- Return length (&lt;100) of a numbered table to replace #t which is
-- documented to not work if t is accessed via mw.loadData().
for i = 1, 100 do
if t[i] == nil then
return i - 1
end
end
end
local function wanted_category(catkey, catsort, want_warning)
-- Return message category if it is wanted in current namespace,
-- otherwise return ''.
local cat
local title = mw.title.getCurrentTitle()
if title then
local nsdefault = '0' -- default namespace: '0' = article; '0,10' = article and template
local namespace = title.namespace
for _, v in ipairs(split(config.nscat or nsdefault, ',')) do
if namespace == tonumber(v) then
cat = text_code.all_categories[want_warning and 'warning' or catkey]
if catsort and catsort ~= '' and cat:sub(-2) == ']]' then
cat = cat:sub(1, -3) .. '|' .. mw.text.nowiki(usub(catsort, 1, 20)) .. ']]'
end
break
end
end
end
return cat or ''
end
local function message(parms, mcode, is_warning)
-- Return wikitext for an error message, including category if specified
-- for the message type.
-- mcode = numbered table specifying the message:
-- mcode[1] = 'cvt_xxx' (string used as a key to get message info)
-- mcode[2] = 'parm1' (string to replace '$1' if any in message)
-- mcode[3] = 'parm2' (string to replace '$2' if any in message)
-- mcode[4] = 'parm3' (string to replace '$3' if any in message)
local msg
if type(mcode) == 'table' then
if mcode[1] == 'cvt_no_output' then
-- Some errors should cause convert to output an empty string,
-- for example, for an optional field in an infobox.
return ''
end
msg = text_code.all_messages[mcode[1]]
end
parms.have_problem = true
local function subparm(fmt, ...)
local rep = {}
for i, v in ipairs({...}) do
rep['$' .. i] = v
end
return (fmt:gsub('$%d+', rep))
end
if msg then
local parts = {}
local regex, replace = msg.regex, msg.replace
for i = 1, 3 do
local limit = 40
local s = mcode[i + 1]
if s then
if regex and replace then
s = s:gsub(regex, replace)
limit = nil -- allow long &quot;should be&quot; messages
end
-- Escape user input so it does not break the message.
-- To avoid tags (like {{convert|1&lt;math&gt;23&lt;/math&gt;|m}}) breaking
-- the mouseover title, any strip marker starting with char(127) is
-- replaced with '...' (text not needing i18n).
local append
local pos = s:find(string.char(127), 1, true)
if pos then
append = '...'
s = s:sub(1, pos - 1)
end
if limit and ulen(s) &gt; limit then
s = usub(s, 1, limit)
append = '...'
end
s = mw.text.nowiki(s) .. (append or '')
else
s = '?'
end
parts['$' .. i] = s
end
local function ispreview()
-- Return true if a prominent message should be shown.
if parms.test == 'preview' or parms.test == 'nopreview' then
-- For testing, can preview a real message or simulate a preview
-- when running automated tests.
return parms.test == 'preview'
end
local success, revid = pcall(function ()
return (parms.frame):preprocess('{{REVISIONID}}') end)
return success and (revid == '')
end
local want_warning = is_warning and
not config.warnings and -- show unobtrusive warnings if config.warnings not configured
not msg.nowarn -- but use msg settings, not standard warning, if specified
local title = string.gsub(msg[1] or 'Missing message', '$%d+', parts)
local text = want_warning and '*' or msg[2] or 'Missing message'
local cat = wanted_category(msg[3], mcode[2], want_warning)
local anchor = msg[4] or ''
local fmtkey = ispreview() and 'cvt_format_preview' or
(want_warning and 'cvt_format2' or msg.format or 'cvt_format')
local fmt = text_code.all_messages[fmtkey] or 'convert: bug'
return subparm(fmt, title:gsub('&quot;', '&amp;quot;'), text, cat, anchor)
end
return 'Convert internal error: unknown message'
end
function add_warning(parms, level, key, text1, text2) -- for forward declaration above
-- If enabled, add a warning that will be displayed after the convert result.
-- A higher level is more verbose: more kinds of warnings are displayed.
-- To reduce output noise, only the first warning is displayed.
if level &lt;= (tonumber(config.warnings) or 1) then
if parms.warnings == nil then
parms.warnings = message(parms, { key, text1, text2 }, true)
end
end
end
local function spell_number(parms, inout, number, numerator, denominator)
-- Return result of spelling (number, numerator, denominator), or
-- return nil if spelling is not available or not supported for given text.
-- Examples (each value must be a string or nil):
-- number numerator denominator output
-- ------ --------- ----------- -------------------
-- &quot;1.23&quot; nil nil one point two three
-- &quot;1&quot; &quot;2&quot; &quot;3&quot; one and two thirds
-- nil &quot;2&quot; &quot;3&quot; two thirds
if not speller then
local function get_speller(module)
return require(module).spell_number
end
local success
success, speller = pcall(get_speller, spell_module)
if not success or type(speller) ~= 'function' then
add_warning(parms, 1, 'cvt_no_spell', 'spell')
return nil
end
end
local case
if parms.spell_upper == inout then
case = true
parms.spell_upper = nil -- only uppercase first word in a multiple unit
end
local sp = not parms.opt_sp_us
local adj = parms.opt_adjectival
return speller(number, numerator, denominator, case, sp, adj)
end
------------------------------------------------------------------------
-- BEGIN: Code required only for built-in units.
-- LATER: If need much more code, move to another module to simplify this module.
local function speed_of_sound(altitude)
-- This is for the Mach built-in unit of speed.
-- Return speed of sound in metres per second at given altitude in feet.
-- If no altitude given, use default (zero altitude = sea level).
-- Table gives speed of sound in miles per hour at various altitudes:
-- altitude = -17,499 to 302,499 feet
-- mach_table[a + 4] = s where
-- a = (altitude / 5000) rounded to nearest integer (-3 to 60)
-- s = speed of sound (mph) at that altitude
-- LATER: Should calculate result from an interpolation between the next
-- lower and higher altitudes in table, rather than rounding to nearest.
-- From: http://www.aerospaceweb.org/question/atmosphere/q0112.shtml
local mach_table = { -- a =
799.5, 787.0, 774.2, 761.207051, -- -3 to 0
748.0, 734.6, 721.0, 707.0, 692.8, 678.3, 663.5, 660.1, 660.1, 660.1, -- 1 to 10
660.1, 660.1, 660.1, 662.0, 664.3, 666.5, 668.9, 671.1, 673.4, 675.6, -- 11 to 20
677.9, 683.7, 689.9, 696.0, 702.1, 708.1, 714.0, 719.9, 725.8, 731.6, -- 21 to 30
737.3, 737.7, 737.7, 736.2, 730.5, 724.6, 718.8, 712.9, 707.0, 701.1, -- 31 to 40
695.0, 688.9, 682.8, 676.6, 670.4, 664.1, 657.8, 652.9, 648.3, 643.7, -- 41 to 50
639.1, 634.4, 629.6, 624.8, 620.0, 615.2, 613.2, 613.2, 613.2, 613.5, -- 51 to 60
}
altitude = altitude or 0
local a = (altitude &lt; 0) and -altitude or altitude
a = floor(a / 5000 + 0.5)
if altitude &lt; 0 then
a = -a
end
if a &lt; -3 then
a = -3
elseif a &gt; 60 then
a = 60
end
return mach_table[a + 4] * 0.44704 -- mph converted to m/s
end
-- END: Code required only for built-in units.
------------------------------------------------------------------------
local function get_range(word)
-- Return a range (string or table) corresponding to word (like &quot;to&quot;),
-- or return nil if not a range word.
local ranges = text_code.ranges
return ranges.types[word] or ranges.types[ranges.aliases[word]]
end
local function check_mismatch(unit1, unit2)
-- If unit1 cannot be converted to unit2, return an error message table.
-- This allows conversion between units of the same type, and between
-- Nm (normally torque) and ftlb (energy), as in gun-related articles.
-- This works because Nm is the base unit (scale = 1) for both the
-- primary type (torque), and the alternate type (energy, where Nm = J).
-- A match occurs if the primary types are the same, or if unit1 matches
-- the alternate type of unit2, and vice versa. That provides a whitelist
-- of which conversions are permitted between normally incompatible types.
if unit1.utype == unit2.utype or
(unit1.utype == unit2.alttype and unit1.alttype == unit2.utype) then
return nil
end
return { 'cvt_mismatch', unit1.utype, unit2.utype }
end
local function override_from(out_table, in_table, fields)
-- Copy the specified fields from in_table to out_table, but do not
-- copy nil fields (keep any corresponding field in out_table).
for _, field in ipairs(fields) do
if in_table[field] then
out_table[field] = in_table[field]
end
end
end
local function shallow_copy(t)
-- Return a shallow copy of table t.
-- Do not need the features and overhead of the Scribunto mw.clone().
local result = {}
for k, v in pairs(t) do
result[k] = v
end
return result
end
local unit_mt = {
-- Metatable to get missing values for a unit that does not accept SI prefixes.
-- Warning: The boolean value 'false' is returned for any missing field
-- so __index is not called twice for the same field in a given unit.
__index = function (self, key)
local value
if key == 'name1' or key == 'sym_us' then
value = self.symbol
elseif key == 'name2' then
value = self.name1 .. plural_suffix
elseif key == 'name1_us' then
value = self.name1
if not rawget(self, 'name2_us') then
-- If name1_us is 'foot', do not make name2_us by appending plural_suffix.
self.name2_us = self.name2
end
elseif key == 'name2_us' then
local raw1_us = rawget(self, 'name1_us')
if raw1_us then
value = raw1_us .. plural_suffix
else
value = self.name2
end
elseif key == 'link' then
value = self.name1
else
value = false
end
rawset(self, key, value)
return value
end
}
local function prefixed_name(unit, name, index)
-- Return unit name with SI prefix inserted at correct position.
-- index = 1 (name1), 2 (name2), 3 (name1_us), 4 (name2_us).
-- The position is a byte (not character) index, so use Lua's sub().
local pos = rawget(unit, 'prefix_position')
if type(pos) == 'string' then
pos = tonumber(split(pos, ',')[index])
end
if pos then
return name:sub(1, pos - 1) .. unit.si_name .. name:sub(pos)
end
return unit.si_name .. name
end
local unit_prefixed_mt = {
-- Metatable to get missing values for a unit that accepts SI prefixes.
-- Before use, fields si_name, si_prefix must be defined.
-- The unit must define _symbol, _name1 and
-- may define _sym_us, _name1_us, _name2_us
-- (_sym_us, _name2_us may be defined for a language using sp=us
-- to refer to a variant unrelated to U.S. units).
__index = function (self, key)
local value
if key == 'symbol' then
value = self.si_prefix .. self._symbol
elseif key == 'sym_us' then
value = rawget(self, '_sym_us')
if value then
value = self.si_prefix .. value
else
value = self.symbol
end
elseif key == 'name1' then
value = prefixed_name(self, self._name1, 1)
elseif key == 'name2' then
value = rawget(self, '_name2')
if value then
value = prefixed_name(self, value, 2)
else
value = self.name1 .. plural_suffix
end
elseif key == 'name1_us' then
value = rawget(self, '_name1_us')
if value then
value = prefixed_name(self, value, 3)
else
value = self.name1
end
elseif key == 'name2_us' then
value = rawget(self, '_name2_us')
if value then
value = prefixed_name(self, value, 4)
elseif rawget(self, '_name1_us') then
value = self.name1_us .. plural_suffix
else
value = self.name2
end
elseif key == 'link' then
value = self.name1
else
value = false
end
rawset(self, key, value)
return value
end
}
local unit_per_mt = {
-- Metatable to get values for a per unit of form &quot;x/y&quot;.
-- This is never called to determine a unit name or link because per units
-- are handled as a special case.
-- Similarly, the default output is handled elsewhere, and for a symbol
-- this is only called from get_default() for default_exceptions.
__index = function (self, key)
local value
if key == 'symbol' then
local per = self.per
local unit1, unit2 = per[1], per[2]
if unit1 then
value = unit1[key] .. '/' .. unit2[key]
else
value = '/' .. unit2[key]
end
elseif key == 'sym_us' then
value = self.symbol
elseif key == 'scale' then
local per = self.per
local unit1, unit2 = per[1], per[2]
value = (unit1 and unit1.scale or 1) * self.scalemultiplier / unit2.scale
else
value = false
end
rawset(self, key, value)
return value
end
}
local function make_per(unitcode, unit_table, ulookup)
-- Return true, t where t is a per unit with unit codes expanded to unit tables,
-- or return false, t where t is an error message table.
local result = {
unitcode = unitcode,
utype = unit_table.utype,
per = {}
}
override_from(result, unit_table, { 'invert', 'iscomplex', 'default', 'link', 'symbol', 'symlink' })
result.symbol_raw = (result.symbol or false) -- to distinguish between a defined exception and a metatable calculation
local prefix
for i, v in ipairs(unit_table.per) do
if i == 1 and v == '' then
-- First unit symbol can be empty; that gives a nil first unit table.
elseif i == 1 and text_code.currency[v] then
prefix = currency_text or v
else
local success, t = ulookup(v)
if not success then return false, t end
result.per[i] = t
end
end
local multiplier = unit_table.multiplier
if not result.utype then
-- Creating an automatic per unit.
local unit1 = result.per[1]
local utype = (unit1 and unit1.utype or prefix or '') .. '/' .. result.per[2].utype
local t = data_code.per_unit_fixups[utype]
if t then
if type(t) == 'table' then
utype = t.utype or utype
result.link = result.link or t.link
multiplier = multiplier or t.multiplier
else
utype = t
end
end
result.utype = utype
end
result.scalemultiplier = multiplier or 1
result.vprefix = prefix or false -- set to non-nil to avoid calling __index
return true, setmetatable(result, unit_per_mt)
end
local function lookup(parms, unitcode, what, utable, fails, depth)
-- Return true, t where t is a copy of the unit's converter table,
-- or return false, t where t is an error message table.
-- Parameter 'what' determines whether combination units are accepted:
-- 'no_combination' : single unit only
-- 'any_combination' : single unit or combination or output multiple
-- 'only_multiple' : single unit or output multiple only
-- Parameter unitcode is a symbol (like 'g'), with an optional SI prefix (like 'kg').
-- If, for example, 'kg' is in this table, that entry is used;
-- otherwise the prefix ('k') is applied to the base unit ('g').
-- If unitcode is a known combination code (and if allowed by what),
-- a table of output multiple unit tables is included in the result.
-- For compatibility with the old template, an underscore in a unitcode is
-- replaced with a space so usage like {{convert|350|board_feet}} works.
-- Wikignomes may also put two spaces or &quot;&amp;nbsp;&quot; in combinations, so
-- replace underscore, &quot;&amp;nbsp;&quot;, and multiple spaces with a single space.
utable = utable or parms.unittable or all_units
fails = fails or {}
depth = depth and depth + 1 or 1
if depth &gt; 9 then
-- There are ways to mistakenly define units which result in infinite
-- recursion when lookup() is called. That gives a long delay and very
-- confusing error messages, so the depth parameter is used as a guard.
return false, { 'cvt_lookup', unitcode }
end
if unitcode == nil or unitcode == '' then
return false, { 'cvt_no_unit' }
end
unitcode = unitcode:gsub('_', ' '):gsub('&amp;nbsp;', ' '):gsub(' +', ' ')
local function call_make_per(t)
return make_per(unitcode, t,
function (ucode) return lookup(parms, ucode, 'no_combination', utable, fails, depth) end
)
end
local t = utable[unitcode]
if t then
if t.shouldbe then
return false, { 'cvt_should_be', t.shouldbe }
end
if t.sp_us then
parms.opt_sp_us = true
end
local target = t.target -- nil, or unitcode is an alias for this target
if target then
local success, result = lookup(parms, target, what, utable, fails, depth)
if not success then return false, result end
override_from(result, t, { 'customary', 'default', 'link', 'symbol', 'symlink' })
local multiplier = t.multiplier
if multiplier then
result.multiplier = tostring(multiplier)
result.scale = result.scale * multiplier
end
return true, result
end
if t.per then
return call_make_per(t)
end
local combo = t.combination -- nil or a table of unitcodes
if combo then
local multiple = t.multiple
if what == 'no_combination' or (what == 'only_multiple' and not multiple) then
return false, { 'cvt_bad_unit', unitcode }
end
-- Recursively create a combination table containing the
-- converter table of each unitcode.
local result = { utype = t.utype, multiple = multiple, combination = {} }
local cvt = result.combination
for i, v in ipairs(combo) do
local success, t = lookup(parms, v, multiple and 'no_combination' or 'only_multiple', utable, fails, depth)
if not success then return false, t end
cvt[i] = t
end
return true, result
end
local result = shallow_copy(t)
result.unitcode = unitcode
if result.prefixes then
result.si_name = ''
result.si_prefix = ''
return true, setmetatable(result, unit_prefixed_mt)
end
return true, setmetatable(result, unit_mt)
end
local SIprefixes = text_code.SIprefixes
for plen = SIprefixes[1] or 2, 1, -1 do
-- Look for an SI prefix; should never occur with an alias.
-- Check for longer prefix first ('dam' is decametre).
-- SIprefixes[1] = prefix maximum #characters (as seen by mw.ustring.sub).
local prefix = usub(unitcode, 1, plen)
local si = SIprefixes[prefix]
if si then
local t = utable[usub(unitcode, plen+1)]
if t and t.prefixes then
local result = shallow_copy(t)
result.unitcode = unitcode
result.si_name = parms.opt_sp_us and si.name_us or si.name
result.si_prefix = si.prefix or prefix
result.scale = t.scale * 10 ^ (si.exponent * t.prefixes)
return true, setmetatable(result, unit_prefixed_mt)
end
end
end
-- Accept any unit with an engineering notation prefix like &quot;e6cuft&quot;
-- (million cubic feet), but not chained prefixes like &quot;e3e6cuft&quot;,
-- and not if the unit is a combination or multiple,
-- and not if the unit has an offset or is a built-in.
-- Only en digits are accepted.
local has_plus = unitcode:find('+', 1, true)
if not has_plus then
local exponent, baseunit = unitcode:match('^e(%d+)(.*)')
if exponent then
local engscale = text_code.eng_scales[exponent]
if engscale then
local success, result = lookup(parms, baseunit, 'no_combination', utable, fails, depth)
if success and not (result.offset or result.builtin or result.engscale) then
result.unitcode = unitcode -- 'e6cuft' not 'cuft'
result.defkey = unitcode -- key to lookup default exception
result.engscale = engscale
result.scale = result.scale * 10 ^ tonumber(exponent)
return true, result
end
end
end
end
-- Accept user-defined combinations like &quot;acre+m2+ha&quot; or &quot;acre m2 ha&quot; for output.
-- If '+' is used, each unit code can include a space, and any error is fatal.
-- If ' ' is used and if each space-separated word is a unit code, it is a combo,
-- but errors are not fatal so the unit code can be looked up as an extra unit.
local err_is_fatal
local combo = collection()
if has_plus then
err_is_fatal = true
for item in (unitcode .. '+'):gmatch('%s*(.-)%s*%+') do
if item ~= '' then
combo:add(item)
end
end
elseif unitcode:find('%s') then
for item in unitcode:gmatch('%S+') do
combo:add(item)
end
end
if combo.n &gt; 1 then
local function lookup_combo()
if what == 'no_combination' or what == 'only_multiple' then
return false, { 'cvt_bad_unit', unitcode }
end
local result = { combination = {} }
local cvt = result.combination
for i, v in ipairs(combo) do
local success, t = lookup(parms, v, 'only_multiple', utable, fails, depth)
if not success then return false, t end
if i == 1 then
result.utype = t.utype
else
local mismatch = check_mismatch(result, t)
if mismatch then
return false, mismatch
end
end
cvt[i] = t
end
return true, result
end
local success, result = lookup_combo()
if success or err_is_fatal then
return success, result
end
end
-- Look for x/y; split on right-most slash to get scale correct (x/y/z is x/y per z).
local top, bottom = unitcode:match('^(.-)/([^/]+)$')
if top and not unitcode:find('e%d') then
-- If valid, create an automatic per unit for an &quot;x/y&quot; unit code.
-- The unitcode must not include extraneous spaces.
-- Engineering notation (apart from at start and which has been stripped before here),
-- is not supported so do not make a per unit if find text like 'e3' in unitcode.
local success, result = call_make_per({ per = {top, bottom} })
if success then
return true, result
end
end
if not parms.opt_ignore_error and not get_range(unitcode) then
-- Want the &quot;what links here&quot; list for the extra_module to show only cases
-- where an extra unit is used, so do not require it if invoked from {{val}}
-- or if looking up a range word which cannot be a unit.
if not extra_units then
local success, extra = pcall(function () return require(extra_module).extra_units end)
if success and type(extra) == 'table' then
extra_units = extra
end
end
if extra_units then
-- A unit in one data table might refer to a unit in the other table, so
-- switch between them, relying on fails or depth to terminate loops.
if not fails[unitcode] then
fails[unitcode] = true
local other = (utable == all_units) and extra_units or all_units
local success, result = lookup(parms, unitcode, what, other, fails, depth)
if success then
return true, result
end
end
end
end
if to_en_table then
-- At fawiki it is common to translate all digits so a unit like &quot;km2&quot; becomes &quot;km۲&quot;.
local en_code = ustring.gsub(unitcode, '%d', to_en_table)
if en_code ~= unitcode then
return lookup(parms, en_code, what, utable, fails, depth)
end
end
return false, { 'cvt_unknown', unitcode }
end
local function valid_number(num)
-- Return true if num is a valid number.
-- In Scribunto (different from some standard Lua), when expressed as a string,
-- overflow or other problems are indicated with text like &quot;inf&quot; or &quot;nan&quot;
-- which are regarded as invalid here (each contains &quot;n&quot;).
if type(num) == 'number' and tostring(num):find('n', 1, true) == nil then
return true
end
end
local function hyphenated(name, parts)
-- Return a hyphenated form of given name (for adjectival usage).
-- The name may be linked and the target of the link must not be changed.
-- Hypothetical examples:
-- [[long ton|ton]] → [[long ton|ton]] (no change)
-- [[tonne|long ton]] → [[tonne|long-ton]]
-- [[metric ton|long ton]] → [[metric ton|long-ton]]
-- [[long ton]] → [[long ton|long-ton]]
-- Input can also have multiple links in a single name like:
-- [[United States customary units|U.S.]] [[US gallon|gallon]]
-- [[mile]]s per [[United States customary units|U.S.]] [[quart]]
-- [[long ton]]s per [[short ton]]
-- Assume that links cannot be nested (never like &quot;[[abc[[def]]ghi]]&quot;).
-- This uses a simple and efficient procedure that works for most cases.
-- Some units (if used) would require more, and can later think about
-- adding a method to handle exceptions.
-- The procedure is to replace each space with a hyphen, but
-- not a space after ')' [for &quot;(pre-1954&amp;nbsp;US) nautical mile&quot;], and
-- not spaces immediately before '(' or in '(...)' [for cases like
-- &quot;British thermal unit (ISO)&quot; and &quot;Calorie (International Steam Table)&quot;].
if name:find(' ', 1, true) then
if parts then
local pos
if name:sub(1, 1) == '(' then
pos = name:find(')', 1, true)
if pos then
return name:sub(1, pos+1) .. name:sub(pos+2):gsub(' ', '-')
end
elseif name:sub(-1) == ')' then
pos = name:find('(', 1, true)
if pos then
return name:sub(1, pos-2):gsub(' ', '-') .. name:sub(pos-1)
end
end
return name:gsub(' ', '-')
end
parts = collection()
for before, item, after in name:gmatch('([^[]*)(%[%[[^[]*%]%])([^[]*)') do
if item:find(' ', 1, true) then
local prefix
local plen = item:find('|', 1, true)
if plen then
prefix = item:sub(1, plen)
item = item:sub(plen + 1, -3)
else
prefix = item:sub(1, -3) .. '|'
item = item:sub(3, -3)
end
item = prefix .. hyphenated(item, parts) .. ']]'
end
parts:add(before:gsub(' ', '-') .. item .. after:gsub(' ', '-'))
end
if parts.n == 0 then
-- No link like &quot;[[...]]&quot; was found in the original name.
parts:add(hyphenated(name, parts))
end
return table.concat(parts)
end
return name
end
local function hyphenated_maybe(parms, want_name, sep, id, inout)
-- Return s, f where
-- s = id, possibly modified
-- f = true if hyphenated
-- Possible modifications: hyphenate; prepend '-'; append mid text.
if id == nil or id == '' then
return ''
end
local mid = (inout == (parms.opt_flip and 'out' or 'in')) and parms.mid or ''
if want_name then
if parms.opt_adjectival then
return '-' .. hyphenated(id) .. mid, true
end
if parms.opt_add_s and id:sub(-1) ~= 's' then
id = id .. 's' -- for nowiki
end
end
return sep .. id .. mid
end
local function use_minus(text)
-- Return text with Unicode minus instead of '-', if present.
if text:sub(1, 1) == '-' then
return MINUS .. text:sub(2)
end
return text
end
local function digit_groups(parms, text, method)
-- Return a numbered table of groups of digits (left-to-right, in local language).
-- Parameter method is a number or nil:
-- 3 for 3-digit grouping (default), or
-- 2 for 3-then-2 grouping (only for digits before decimal mark).
local len_right
local len_left = text:find('.', 1, true)
if len_left then
len_right = #text - len_left
len_left = len_left - 1
else
len_left = #text
end
local twos = method == 2 and len_left &gt; 5
local groups = collection()
local run = len_left
local n
if run &lt; 4 or (run == 4 and parms.opt_comma5) then
if parms.opt_gaps then
n = run
else
n = #text
end
elseif twos then
n = run % 2 == 0 and 1 or 2
else
n = run % 3 == 0 and 3 or run % 3
end
while run &gt; 0 do
groups:add(n)
run = run - n
n = (twos and run &gt; 3) and 2 or 3
end
if len_right then
if groups.n == 0 then
groups:add(0)
end
if parms.opt_gaps and len_right &gt; 3 then
local want4 = not parms.opt_gaps3 -- true gives no gap before trailing single digit
local isfirst = true
run = len_right
while run &gt; 0 do
n = (want4 and run == 4) and 4 or (run &gt; 3 and 3 or run)
if isfirst then
isfirst = false
groups[groups.n] = groups[groups.n] + 1 + n
else
groups:add(n)
end
run = run - n
end
else
groups[groups.n] = groups[groups.n] + 1 + len_right
end
end
local pos = 1
for i, length in ipairs(groups) do
groups[i] = from_en(text:sub(pos, pos + length - 1))
pos = pos + length
end
return groups
end
function with_separator(parms, text) -- for forward declaration above
-- Input text is a number in en digits with optional '.' decimal mark.
-- Return an equivalent, formatted for display:
-- with a custom decimal mark instead of '.', if wanted
-- with thousand separators inserted, if wanted
-- digits in local language
-- The given text is like '123' or '123.' or '12345.6789'.
-- The text has no sign (caller inserts that later, if necessary).
-- When using gaps, they are inserted before and after the decimal mark.
-- Separators are inserted only before the decimal mark.
-- A trailing dot (as in '123.') is removed because their use appears to
-- be accidental, and such a number should be shown as '123' or '123.0'.
-- It is useful for convert to suppress the dot so, for example, '4000.'
-- is a simple way of indicating that all the digits are significant.
if text:sub(-1) == '.' then
text = text:sub(1, -2)
end
if #text &lt; 4 or parms.opt_nocomma or numsep == '' then
return from_en(text)
end
local groups = digit_groups(parms, text, group_method)
if parms.opt_gaps then
if groups.n &lt;= 1 then
return groups[1] or ''
end
local nowrap = '&lt;span style=&quot;white-space: nowrap&quot;&gt;'
local gap = '&lt;span style=&quot;margin-left: 0.25em&quot;&gt;'
local close = '&lt;/span&gt;'
return nowrap .. groups[1] .. gap .. table.concat(groups, close .. gap, 2, groups.n) .. close .. close
end
return table.concat(groups, numsep)
end
-- An input value like 1.23e12 is displayed using scientific notation (1.23×10¹²).
-- That also makes the output use scientific notation, except for small values.
-- In addition, very small or very large output values use scientific notation.
-- Use format(fmtpower, significand, '10', exponent) where each argument is a string.
local fmtpower = '%s&lt;span style=&quot;margin:0 .15em 0 .25em&quot;&gt;×&lt;/span&gt;%s&lt;sup&gt;%s&lt;/sup&gt;'
local function with_exponent(parms, show, exponent)
-- Return wikitext to display the implied value in scientific notation.
-- Input uses en digits; output uses digits in local language.
return format(fmtpower, with_separator(parms, show), from_en('10'), use_minus(from_en(tostring(exponent))))
end
local function make_sigfig(value, sigfig)
-- Return show, exponent that are equivalent to the result of
-- converting the number 'value' (where value &gt;= 0) to a string,
-- rounded to 'sigfig' significant figures.
-- The returned items are:
-- show: a string of digits; no sign and no dot;
-- there is an implied dot before show.
-- exponent: a number (an integer) to shift the implied dot.
-- Resulting value = tonumber('.' .. show) * 10^exponent.
-- Examples:
-- make_sigfig(23.456, 3) returns '235', 2 (.235 * 10^2).
-- make_sigfig(0.0023456, 3) returns '235', -2 (.235 * 10^-2).
-- make_sigfig(0, 3) returns '000', 1 (.000 * 10^1).
if sigfig &lt;= 0 then
sigfig = 1
elseif sigfig &gt; maxsigfig then
sigfig = maxsigfig
end
if value == 0 then
return string.rep('0', sigfig), 1
end
local exp, fracpart = math.modf(log10(value))
if fracpart &gt;= 0 then
fracpart = fracpart - 1
exp = exp + 1
end
local digits = format('%.0f', 10^(fracpart + sigfig))
if #digits &gt; sigfig then
-- Overflow (for sigfig=3: like 0.9999 rounding to &quot;1000&quot;; need &quot;100&quot;).
digits = digits:sub(1, sigfig)
exp = exp + 1
end
assert(#digits == sigfig, 'Bug: rounded number has wrong length')
return digits, exp
end
-- Fraction output format.
local fracfmt = {
{ -- Like {{frac}} (fraction slash).
-- 1/2 : sign, numerator, denominator
-- 1+2/3 : signed_wholenumber, numerator, denominator
'&lt;span class=&quot;frac nowrap&quot;&gt;%s&lt;sup&gt;%s&lt;/sup&gt;&amp;frasl;&lt;sub&gt;%s&lt;/sub&gt;&lt;/span&gt;',
'&lt;span class=&quot;frac nowrap&quot;&gt;%s&lt;span class=&quot;visualhide&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;sup&gt;%s&lt;/sup&gt;&amp;frasl;&lt;sub&gt;%s&lt;/sub&gt;&lt;/span&gt;',
},
{ -- Like {{sfrac}} (fraction horizontal bar).
-- 1//2 : sign, numerator, denominator (sign should probably be before the fraction, but then it can wrap, and html is already too long)
-- 1+2//3 : signed_wholenumber, numerator, denominator
'&lt;span class=&quot;sfrac nowrap&quot; style=&quot;display:inline-block; vertical-align:-0.5em; font-size:85%%; text-align:center;&quot;&gt;&lt;span style=&quot;display:block; line-height:1em; padding:0 0.1em;&quot;&gt;%s%s&lt;/span&gt;&lt;span class=&quot;visualhide&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;display:block; line-height:1em; padding:0 0.1em; border-top:1px solid;&quot;&gt;%s&lt;/span&gt;&lt;/span&gt;',
'&lt;span class=&quot;sfrac nowrap&quot;&gt;%s&lt;span class=&quot;visualhide&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;display:inline-block; vertical-align:-0.5em; font-size:85%%; text-align:center;&quot;&gt;&lt;span style=&quot;display:block; line-height:1em; padding:0 0.1em;&quot;&gt;%s&lt;/span&gt;&lt;span class=&quot;visualhide&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;display:block; line-height:1em; padding:0 0.1em; border-top:1px solid;&quot;&gt;%s&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;',
},
}
local function format_fraction(parms, inout, negative, wholestr, numstr, denstr, do_spell, style)
-- Return wikitext for a fraction, possibly spelled.
-- Inputs use en digits and have no sign; output uses digits in local language.
local wikitext
if not style then
style = parms.opt_fraction_horizontal and 2 or 1
end
if wholestr == '' then
wholestr = nil
end
if wholestr then
local decorated = with_separator(parms, wholestr)
if negative then
decorated = MINUS .. decorated
end
local fmt = fracfmt[style][2]
wikitext = format(fmt, decorated, from_en(numstr), from_en(denstr))
else
local sign = negative and MINUS or ''
wikitext = format(fracfmt[style][1], sign, from_en(numstr), from_en(denstr))
end
if do_spell then
if negative then
if wholestr then
wholestr = '-' .. wholestr
else
numstr = '-' .. numstr
end
end
wikitext = spell_number(parms, inout, wholestr, numstr, denstr) or wikitext
end
return wikitext
end
local function format_number(parms, show, exponent, isnegative)
-- Parameter show is a string or a table containing strings.
-- Each string is a formatted number in en digits and optional '.' decimal mark.
-- A table represents a fraction: integer, numerator, denominator;
-- if a table is given, exponent must be nil.
-- Return t where t is a table with fields:
-- show = wikitext formatted to display implied value
-- (digits in local language)
-- is_scientific = true if show uses scientific notation
-- clean = unformatted show (possibly adjusted and with inserted '.')
-- (en digits)
-- sign = '' or MINUS
-- exponent = exponent (possibly adjusted)
-- The clean and exponent fields can be used to calculate the
-- rounded absolute value, if needed.
--
-- The value implied by the arguments is found from:
-- exponent is nil; and
-- show is a string of digits (no sign), with an optional dot;
-- show = '123.4' is value 123.4, '1234' is value 1234.0;
-- or:
-- exponent is an integer indicating where dot should be;
-- show is a string of digits (no sign and no dot);
-- there is an implied dot before show;
-- show does not start with '0';
-- show = '1234', exponent = 3 is value 0.1234*10^3 = 123.4.
--
-- The formatted result:
-- * Is for an output value and is spelled if wanted and possible.
-- * Includes a Unicode minus if isnegative and not spelled.
-- * Uses a custom decimal mark, if wanted.
-- * Has digits grouped where necessary, if wanted.
-- * Uses scientific notation if requested, or for very small or large values
-- (which forces result to not be spelled).
-- * Has no more than maxsigfig significant digits
-- (same as old template and {{#expr}}).
local xhi, xlo -- these control when scientific notation (exponent) is used
if parms.opt_scientific then
xhi, xlo = 4, 2 -- default for output if input uses e-notation
elseif parms.opt_scientific_always then
xhi, xlo = 0, 0 -- always use scientific notation (experimental)
else
xhi, xlo = 10, 4 -- default
end
local sign = isnegative and MINUS or ''
local maxlen = maxsigfig
local tfrac
if type(show) == 'table' then
tfrac = show
show = tfrac.wholestr
assert(exponent == nil, 'Bug: exponent given with fraction')
end
if not tfrac and not exponent then
local integer, dot, decimals = show:match('^(%d*)(%.?)(.*)')
if integer == '0' or integer == '' then
local zeros, figs = decimals:match('^(0*)([^0]?.*)')
if #figs == 0 then
if #zeros &gt; maxlen then
show = '0.' .. zeros:sub(1, maxlen)
end
elseif #zeros &gt;= xlo then
show = figs
exponent = -#zeros
elseif #figs &gt; maxlen then
show = '0.' .. zeros .. figs:sub(1, maxlen)
end
elseif #integer &gt;= xhi then
show = integer .. decimals
exponent = #integer
else
maxlen = maxlen + #dot
if #show &gt; maxlen then
show = show:sub(1, maxlen)
end
end
end
if exponent then
local function zeros(n)
return string.rep('0', n)
end
if #show &gt; maxlen then
show = show:sub(1, maxlen)
end
if exponent &gt; xhi or exponent &lt;= -xlo or (exponent == xhi and show ~= '1' .. zeros(xhi - 1)) then
-- When xhi, xlo = 10, 4 (the default), scientific notation is used if the
-- rounded value satisfies: value &gt;= 1e9 or value &lt; 1e-4 (1e9 = 0.1e10),
-- except if show is '1000000000' (1e9), for example:
-- {{convert|1000000000|m|m|sigfig=10}} → 1,000,000,000 metres (1,000,000,000 m)
local significand
if #show &gt; 1 then
significand = show:sub(1, 1) .. '.' .. show:sub(2)
else
significand = show
end
return {
clean = '.' .. show,
exponent = exponent,
sign = sign,
show = sign .. with_exponent(parms, significand, exponent-1),
is_scientific = true,
}
end
if exponent &gt;= #show then
show = show .. zeros(exponent - #show) -- result has no dot
elseif exponent &lt;= 0 then
show = '0.' .. zeros(-exponent) .. show
else
show = show:sub(1, exponent) .. '.' .. show:sub(exponent+1)
end
end
local formatted_show
if tfrac then
show = tostring(tfrac.value) -- to set clean in returned table
formatted_show = format_fraction(parms, 'out', isnegative, tfrac.wholestr, tfrac.numstr, tfrac.denstr, parms.opt_spell_out)
else
if isnegative and show:match('^0.?0*$') then
sign = '' -- don't show minus if result is negative but rounds to zero
end
formatted_show = sign .. with_separator(parms, show)
if parms.opt_spell_out then
formatted_show = spell_number(parms, 'out', sign .. show) or formatted_show
end
end
return {
clean = show,
sign = sign,
show = formatted_show,
is_scientific = false, -- to avoid calling __index
}
end
local function extract_fraction(parms, text, negative)
-- If text represents a fraction, return
-- value, altvalue, show, denominator
-- where
-- value is a number (value of the fraction in argument text)
-- altvalue is an alternate interpretation of any fraction for the hands
-- unit where &quot;12.1+3/4&quot; means 12 hands 1.75 inches
-- show is a string (formatted text for display of an input value,
-- and is spelled if wanted and possible)
-- denominator is value of the denominator in the fraction
-- Otherwise, return nil.
-- Input uses en digits and '.' decimal mark (input has been translated).
-- Output uses digits in local language and local decimal mark, if any.
------------------------------------------------------------------------
-- Originally this function accepted x+y/z where x, y, z were any valid
-- numbers, possibly with a sign. For example '1.23e+2+1.2/2.4' = 123.5,
-- and '2-3/8' = 1.625. However, such usages were found to be errors or
-- misunderstandings, so since August 2014 the following restrictions apply:
-- x (if present) is an integer or has a single digit after decimal mark
-- y and z are unsigned integers
-- e-notation is not accepted
-- The overall number can start with '+' or '-' (so '12+3/4' and '+12+3/4'
-- and '-12-3/4' are valid).
-- Any leading negative sign is removed by the caller, so only inputs
-- like the following are accepted here (may have whitespace):
-- negative = false false true (there was a leading '-')
-- text = '2/3' '+2/3' '2/3'
-- text = '1+2/3' '+1+2/3' '1-2/3'
-- text = '12.3+1/2' '+12.3+1/2' '12.3-1/2'
-- Values like '12.3+1/2' are accepted, but are intended only for use
-- with the hands unit (not worth adding code to enforce that).
------------------------------------------------------------------------
local leading_plus, prefix, numstr, slashes, denstr =
text:match('^%s*(%+?)%s*(.-)%s*(%d+)%s*(/+)%s*(%d+)%s*$')
if not leading_plus then
-- Accept a single U+2044 fraction slash because that may be pasted.
leading_plus, prefix, numstr, denstr =
text:match('^%s*(%+?)%s*(.-)%s*(%d+)%s*⁄%s*(%d+)%s*$')
slashes = '/'
end
local numerator = tonumber(numstr)
local denominator = tonumber(denstr)
if numerator == nil or denominator == nil or (negative and leading_plus ~= '') then
return nil
end
local whole, wholestr
if prefix == '' then
wholestr = ''
whole = 0
else
-- Any prefix must be like '12+' or '12-' (whole number and fraction sign);
-- '12.3+' and '12.3-' are also accepted (single digit after decimal point)
-- because '12.3+1/2 hands' is valid (12 hands 3½ inches).
local num1, num2, frac_sign = prefix:match('^(%d+)(%.?%d?)%s*([+%-])$')
if num1 == nil then return nil end
if num2 == '' then -- num2 must be '' or like '.1' but not '.' or '.12'
wholestr = num1
else
if #num2 ~= 2 then return nil end
wholestr = num1 .. num2
end
if frac_sign ~= (negative and '-' or '+') then return nil end
whole = tonumber(wholestr)
if whole == nil then return nil end
end
local value = whole + numerator / denominator
if not valid_number(value) then return nil end
local altvalue = whole + numerator / (denominator * 10)
local style = #slashes -- kludge: 1 or 2 slashes can be used to select style
if style &gt; 2 then style = 2 end
local wikitext = format_fraction(parms, 'in', negative, leading_plus .. wholestr, numstr, denstr, parms.opt_spell_in, style)
return value, altvalue, wikitext, denominator
end
local function extract_number(parms, text, another, no_fraction)
-- Return true, info if can extract a number from text,
-- where info is a table with the result,
-- or return false, t where t is an error message table.
-- Input can use en digits or digits in local language and can
-- have references at the end. Accepting references is intended
-- for use in infoboxes with a field for a value passed to convert.
-- Parameter another = true if the expected value is not the first.
-- Before processing, the input text is cleaned:
-- * Any thousand separators (valid or not) are removed.
-- * Any sign (and optional following whitespace) is replaced with
-- '-' (if negative) or '' (otherwise).
-- That replaces Unicode minus with '-'.
-- If successful, the returned info table contains named fields:
-- value = a valid number
-- altvalue = a valid number, usually same as value but different
-- if fraction used (for hands unit)
-- singular = true if value is 1 or -1 (to use singular form of units)
-- clean = cleaned text with any separators and sign removed
-- (en digits and '.' decimal mark)
-- show = text formatted for output, possibly with ref strip markers
-- (digits in local language and custom decimal mark)
-- The resulting show:
-- * Is for an input value and is spelled if wanted and possible.
-- * Has a rounded value, if wanted.
-- * Has digits grouped where necessary, if wanted.
-- * If negative, a Unicode minus is used; otherwise the sign is
-- '+' (if the input text used '+'), or is '' (if no sign in input).
text = strip(text or '')
local reference
local pos = text:find('\127', 1, true)
if pos then
local before = text:sub(1, pos - 1)
local remainder = text:sub(pos)
local refs = {}
while #remainder &gt; 0 do
local ref, spaces
ref, spaces, remainder = remainder:match('^(\127[^\127]*UNIQ[^\127]*%-ref[^\127]*\127)(%s*)(.*)')
if ref then
table.insert(refs, ref)
else
refs = {}
break
end
end
if #refs &gt; 0 then
text = strip(before)
reference = table.concat(refs)
end
end
local clean = to_en(text, parms)
if clean == '' then
return false, { another and 'cvt_no_num2' or 'cvt_no_num' }
end
local isnegative, propersign = false, '' -- most common case
local singular, show, denominator
local value = tonumber(clean)
local altvalue
if value then
local sign = clean:sub(1, 1)
if sign == '+' or sign == '-' then
propersign = (sign == '+') and '+' or MINUS
clean = clean:sub(2)
end
if value &lt; 0 then
isnegative = true
value = -value
end
else
local valstr
for _, prefix in ipairs({ '-', MINUS, '&amp;minus;' }) do
-- Including '-' means inputs like '- 2' (with space) are accepted as -2.
-- It also sets isnegative in case input is a fraction like '-2-3/4'.
local plen = #prefix
if clean:sub(1, plen) == prefix then
valstr = clean:sub(plen + 1)
break
end
end
if valstr then
isnegative = true
propersign = MINUS
clean = valstr
value = tonumber(clean)
end
if value == nil then
if not no_fraction then
value, altvalue, show, denominator = extract_fraction(parms, clean, isnegative)
end
if value == nil then
return false, { 'cvt_bad_num', text }
end
if value &lt;= 1 then
singular = true -- for example, &quot;½ mile&quot; or &quot;one half mile&quot; (singular unit)
end
end
end
if not valid_number(value) then -- for example, &quot;1e310&quot; may overflow
return false, { 'cvt_invalid_num' }
end
if show == nil then
-- clean is a non-empty string with no spaces, and does not represent a fraction,
-- and value = tonumber(clean) is a number &gt;= 0.
-- If the input uses e-notation, show will be displayed using a power of ten, but
-- we use the number as given so it might not be normalized scientific notation.
-- The input value is spelled if specified so any e-notation is ignored;
-- that allows input like 2e6 to be spelled as &quot;two million&quot; which works
-- because the spell module converts '2e6' to '2000000' before spelling.
local function rounded(value, default, exponent)
local precision = parms.opt_ri
if precision then
local fmt = '%.' .. format('%d', precision) .. 'f'
local result = fmt:format(tonumber(value) + 2e-14) -- fudge for some common cases of bad rounding
if not exponent then
singular = (tonumber(result) == 1)
end
return result
end
return default
end
singular = (value == 1)
local scientific
local significand, exponent = clean:match('^([%d.]+)[Ee]([+%-]?%d+)')
if significand then
show = with_exponent(parms, rounded(significand, significand, exponent), exponent)
scientific = true
else
show = with_separator(parms, rounded(value, clean))
end
show = propersign .. show
if parms.opt_spell_in then
show = spell_number(parms, 'in', propersign .. rounded(value, clean)) or show
scientific = false
end
if scientific then
parms.opt_scientific = true
end
end
if isnegative and (value ~= 0) then
value = -value
altvalue = -(altvalue or value)
end
return true, {
value = value,
altvalue = altvalue or value,
singular = singular,
clean = clean,
show = show .. (reference or ''),
denominator = denominator,
}
end
local function get_number(text)
-- Return v, f where:
-- v = nil (text is not a number)
-- or
-- v = value of text (text is a number)
-- f = true if value is an integer
-- Input can use en digits or digits in local language,
-- but no separators, no Unicode minus, and no fraction.
if text then
local number = tonumber(to_en(text))
if number then
local _, fracpart = math.modf(number)
return number, (fracpart == 0)
end
end
end
local function gcd(a, b)
-- Return the greatest common denominator for the given values,
-- which are known to be positive integers.
if a &gt; b then
a, b = b, a
end
if a &lt;= 0 then
return b
end
local r = b % a
if r &lt;= 0 then
return a
end
if r == 1 then
return 1
end
return gcd(r, a)
end
local function fraction_table(value, denominator)
-- Return value as a string or a table:
-- * If result is a string, there is no fraction, and the result
-- is value formatted as a string of en digits.
-- * If result is a table, it represents a fraction with named fields:
-- wholestr, numstr, denstr (strings of en digits for integer, numerator, denominator).
-- The result is rounded to the nearest multiple of (1/denominator).
-- If the multiple is zero, no fraction is included.
-- No fraction is included if value is very large as the fraction would
-- be unhelpful, particularly if scientific notation is required.
-- Input value is a non-negative number.
-- Input denominator is a positive integer for the desired fraction.
if value &lt;= 0 then
return '0'
end
if denominator &lt;= 0 or value &gt; 1e8 then
return format('%.2f', value)
end
local integer, decimals = math.modf(value)
local numerator = floor((decimals * denominator) +
0.5 + 2e-14) -- add fudge for some common cases of bad rounding
if numerator &gt;= denominator then
integer = integer + 1
numerator = 0
end
local wholestr = tostring(integer)
if numerator &gt; 0 then
local div = gcd(numerator, denominator)
if div &gt; 1 then
numerator = numerator / div
denominator = denominator / div
end
return {
wholestr = (integer &gt; 0) and wholestr or '',
numstr = tostring(numerator),
denstr = tostring(denominator),
value = value,
}
end
return wholestr
end
local function preunits(count, preunit1, preunit2)
-- If count is 1:
-- ignore preunit2
-- return p1
-- else:
-- preunit1 is used for preunit2 if the latter is empty
-- return p1, p2
-- where:
-- p1 is text to insert before the input unit
-- p2 is text to insert before the output unit
-- p1 or p2 may be nil to mean &quot;no preunit&quot;
-- Using '+ ' gives output like &quot;5+ feet&quot; (no preceding space).
local function withspace(text, i)
-- Insert space at beginning if i == 1, or at end if i == -1.
-- However, no space is inserted if there is a space or '&amp;nbsp;'
-- or '-' at that position ('-' is for adjectival text).
local current = text:sub(i, i)
if current == ' ' or current == '-' then
return text
end
if i == 1 then
current = text:sub(1, 6)
else
current = text:sub(-6, -1)
end
if current == '&amp;nbsp;' then
return text
end
if i == 1 then
return ' ' .. text
end
return text .. ' '
end
preunit1 = preunit1 or ''
local trim1 = strip(preunit1)
if count == 1 then
if trim1 == '' then
return nil
end
return withspace(withspace(preunit1, 1), -1)
end
preunit2 = preunit2 or ''
local trim2 = strip(preunit2)
if trim1 == '' and trim2 == '' then
return nil, nil
end
if trim1 ~= '+' then
preunit1 = withspace(preunit1, 1)
end
if trim2 == '&amp;#32;' then -- trick to make preunit2 empty
preunit2 = nil
elseif trim2 == '' then
preunit2 = preunit1
elseif trim2 ~= '+' then
preunit2 = withspace(preunit2, 1)
end
return preunit1, preunit2
end
local function range_text(range, want_name, parms, before, after, inout)
-- Return before .. rtext .. after
-- where rtext is the text that separates two values in a range.
local rtext, adj_text, exception
if type(range) == 'table' then
-- Table must specify range text for ('off' and 'on') or ('input' and 'output'),
-- and may specify range text for 'adj=on',
-- and may specify exception = true.
rtext = range[want_name and 'off' or 'on'] or
range[((inout == 'in') == (parms.opt_flip == true)) and 'output' or 'input']
adj_text = range['adj']
exception = range['exception']
else
rtext = range
end
if parms.opt_adjectival then
if want_name or (exception and parms.abbr_org == 'on') then
rtext = adj_text or rtext:gsub(' ', '-'):gsub('&amp;nbsp;', '-')
end
end
if rtext == '–' and after:sub(1, #MINUS) == MINUS then
rtext = '&amp;nbsp;– '
end
return before .. rtext .. after
end
local function get_composite(parms, iparm, in_unit_table)
-- Look for a composite input unit. For example, {{convert|1|yd|2|ft|3|in}}
-- would result in a call to this function with
-- iparm = 3 (parms[iparm] = &quot;2&quot;, just after the first unit)
-- in_unit_table = (unit table for &quot;yd&quot;; contains value 1 for number of yards)
-- Return true, iparm, unit where
-- iparm = index just after the composite units (7 in above example)
-- unit = composite unit table holding all input units,
-- or return true if no composite unit is present in parms,
-- or return false, t where t is an error message table.
local default, subinfo
local composite_units, count = { in_unit_table }, 1
local fixups = {}
local total = in_unit_table.valinfo[1].value
local subunit = in_unit_table
while subunit.subdivs do -- subdivs is nil or a table of allowed subdivisions
local subcode = strip(parms[iparm+1])
local subdiv = subunit.subdivs[subcode] or subunit.subdivs[(all_units[subcode] or {}).target]
if not subdiv then
break
end
local success
success, subunit = lookup(parms, subcode, 'no_combination')
if not success then return false, subunit end -- should never occur
success, subinfo = extract_number(parms, parms[iparm])
if not success then return false, subinfo end
iparm = iparm + 2
subunit.inout = 'in'
subunit.valinfo = { subinfo }
-- Recalculate total as a number of subdivisions.
-- subdiv[1] = number of subdivisions per previous unit (integer &gt; 1).
total = total * subdiv[1] + subinfo.value
if not default then -- set by the first subdiv with a default defined
default = subdiv.default
end
count = count + 1
composite_units[count] = subunit
if subdiv.unit or subdiv.name then
fixups[count] = { unit = subdiv.unit, name = subdiv.name, valinfo = subunit.valinfo }
end
end
if count == 1 then
return true -- no error and no composite unit
end
for i, fixup in pairs(fixups) do
local unit = fixup.unit
local name = fixup.name
if not unit or (count &gt; 2 and name) then
composite_units[i].fixed_name = name
else
local success, alternate = lookup(parms, unit, 'no_combination')
if not success then return false, alternate end -- should never occur
alternate.inout = 'in'
alternate.valinfo = fixup.valinfo
composite_units[i] = alternate
end
end
return true, iparm, {
utype = in_unit_table.utype,
scale = subunit.scale, -- scale of last (least significant) unit
valinfo = { { value = total, clean = subinfo.clean, denominator = subinfo.denominator } },
composite = composite_units,
default = default or in_unit_table.default
}
end
local function translate_parms(parms, kv_pairs)
-- Update fields in parms by translating each key:value in kv_pairs to terms
-- used by this module (may involve translating from local language to English).
-- Also, checks are performed which may display warnings, if enabled.
-- Return true if successful or return false, t where t is an error message table.
currency_text = nil -- local testing can hold module in memory; must clear globals
local accept_any_text = {
input = true,
qid = true,
qual = true,
stylein = true,
styleout = true,
tracking = true,
}
if kv_pairs.adj and kv_pairs.sing then
-- For enwiki (before translation), warn if attempt to use adj and sing
-- as the latter is a deprecated alias for the former.
if kv_pairs.adj ~= kv_pairs.sing and kv_pairs.sing ~= '' then
add_warning(parms, 1, 'cvt_unknown_option', 'sing=' .. kv_pairs.sing)
end
kv_pairs.sing = nil
end
for loc_name, loc_value in pairs(kv_pairs) do
local en_name = text_code.en_option_name[loc_name]
if en_name then
local en_value
if en_name == '$' or en_name == 'frac' or en_name == 'sigfig' then
if loc_value == '' then
add_warning(parms, 2, 'cvt_empty_option', loc_name)
elseif en_name == '$' then
-- Value should be a single character like &quot;€&quot; for the euro currency symbol, but anything is accepted.
currency_text = (loc_value == 'euro') and '€' or loc_value
else
local minimum
local number, is_integer = get_number(loc_value)
if en_name == 'frac' then
minimum = 2
if number and number &lt; 0 then
parms.opt_fraction_horizontal = true
number = -number
end
else
minimum = 1
end
if number and is_integer and number &gt;= minimum then
en_value = number
else
add_warning(parms, 1, (en_name == 'frac' and 'cvt_bad_frac' or 'cvt_bad_sigfig'), loc_name .. '=' .. loc_value)
end
end
elseif accept_any_text[en_name] then
en_value = loc_value ~= '' and loc_value or nil -- accept non-empty user text with no validation
if en_name == 'input' then
-- May have something like {{convert|input=}} (empty input) if source is an infobox
-- with optional fields. In that case, want to output nothing rather than an error.
parms.input_text = loc_value -- keep input because parms.input is nil if loc_value == ''
end
else
en_value = text_code.en_option_value[en_name][loc_value]
if en_value and en_value:sub(-1) == '?' then
en_value = en_value:sub(1, -2)
add_warning(parms, -1, 'cvt_deprecated', loc_name .. '=' .. loc_value)
end
if en_value == nil then
if loc_value == '' then
add_warning(parms, 2, 'cvt_empty_option', loc_name)
else
add_warning(parms, 1, 'cvt_unknown_option', loc_name .. '=' .. loc_value)
end
elseif en_value == '' then
en_value = nil -- an ignored option like adj=off
elseif type(en_value) == 'string' and en_value:sub(1, 4) == 'opt_' then
for _, v in ipairs(split(en_value, ',')) do
local lhs, rhs = v:match('^(.-)=(.+)$')
if rhs then
parms[lhs] = tonumber(rhs) or rhs
else
parms[v] = true
end
end
en_value = nil
end
end
parms[en_name] = en_value
else
add_warning(parms, 1, 'cvt_unknown_option', loc_name .. '=' .. loc_value)
end
end
local abbr_entered = parms.abbr
local cfg_abbr = config.abbr
if cfg_abbr then
-- Don't warn if invalid because every convert would show that warning.
if cfg_abbr == 'on always' then
parms.abbr = 'on'
elseif cfg_abbr == 'off always' then
parms.abbr = 'off'
elseif parms.abbr == nil then
if cfg_abbr == 'on default' then
parms.abbr = 'on'
elseif cfg_abbr == 'off default' then
parms.abbr = 'off'
end
end
end
if parms.abbr then
if parms.abbr == 'unit' then
parms.abbr = 'on'
parms.number_word = true
end
parms.abbr_org = parms.abbr -- original abbr, before any flip
elseif parms.opt_hand_hh then
parms.abbr_org = 'on'
parms.abbr = 'on'
else
parms.abbr = 'out' -- default is to abbreviate output only (use symbol, not name)
end
if parms.opt_order_out then
-- Disable options that do not work in a useful way with order=out.
parms.opt_flip = nil -- override adj=flip
parms.opt_spell_in = nil
parms.opt_spell_out = nil
parms.opt_spell_upper = nil
end
if parms.opt_spell_out and not abbr_entered then
parms.abbr = 'off' -- should show unit name when spelling the output value
end
if parms.opt_flip then
local function swap_in_out(option)
local value = parms[option]
if value == 'in' then
parms[option] = 'out'
elseif value == 'out' then
parms[option] = 'in'
end
end
swap_in_out('abbr')
swap_in_out('lk')
if parms.opt_spell_in and not parms.opt_spell_out then
-- For simplicity, and because it does not appear to be needed,
-- user cannot set an option to spell the output only.
parms.opt_spell_in = nil
parms.opt_spell_out = true
end
end
if parms.opt_spell_upper then
parms.spell_upper = parms.opt_flip and 'out' or 'in'
end
if parms.opt_table or parms.opt_tablecen then
if abbr_entered == nil and parms.lk == nil then
parms.opt_values = true
end
parms.table_align = parms.opt_table and 'right' or 'center'
end
if parms.table_align or parms.opt_sortable_on then
parms.need_table_or_sort = true
end
local disp_joins = text_code.disp_joins
local default_joins = disp_joins['b']
parms.join_between = default_joins[3] or '; '
local disp = parms.disp
if disp == nil then -- special case for the most common setting
parms.joins = default_joins
elseif disp == 'x' then
-- Later, parms.joins is set from the input parameters.
else
-- Old template does this.
local abbr = parms.abbr
if disp == 'slash' then
if abbr_entered == nil then
disp = 'slash-nbsp'
elseif abbr == 'in' or abbr == 'out' then
disp = 'slash-sp'
else
disp = 'slash-nosp'
end
elseif disp == 'sqbr' then
if abbr == 'on' then
disp = 'sqbr-nbsp'
else
disp = 'sqbr-sp'
end
end
parms.joins = disp_joins[disp] or default_joins
parms.join_between = parms.joins[3] or parms.join_between
parms.wantname = parms.joins.wantname
end
if (en_default and not parms.opt_lang_local and (parms[1] or ''):find('%d')) or parms.opt_lang_en then
from_en_table = nil
end
if en_default and from_en_table then
-- For hiwiki: localized symbol/name is defined with the US symbol/name field,
-- and is used if output uses localized numbers.
parms.opt_sp_us = true
end
return true
end
local function get_values(parms)
-- If successful, update parms and return true, v, i where
-- v = table of input values
-- i = index to next entry in parms after those processed here
-- or return false, t where t is an error message table.
local valinfo = collection() -- numbered table of input values
local range = collection() -- numbered table of range items (having, for example, 2 range items requires 3 input values)
local had_nocomma -- true if removed &quot;nocomma&quot; kludge from second parameter (like &quot;tonocomma&quot;)
local parm2 = strip(parms[2])
if parm2 and parm2:sub(-7, -1) == 'nocomma' then
parms[2] = strip(parm2:sub(1, -8))
parms.opt_nocomma = true
had_nocomma = true
end
local function extractor(i)
-- If the parameter is not a value, try unpacking it as a range (&quot;1-23&quot; for &quot;1 to 23&quot;).
-- However, &quot;-1-2/3&quot; is a negative fraction (-1⅔), so it must be extracted first.
-- Do not unpack a parameter if it is like &quot;3-1/2&quot; which is sometimes incorrectly
-- used instead of &quot;3+1/2&quot; (and which should not be interpreted as &quot;3 to ½&quot;).
-- Unpacked items are inserted into the parms table.
-- The tail recursion allows combinations like &quot;1x2 to 3x4&quot;.
local valstr = strip(parms[i]) -- trim so any '-' as a negative sign will be at start
local success, result = extract_number(parms, valstr, i &gt; 1)
if not success and valstr and i &lt; 20 then -- check i to limit abuse
local lhs, sep, rhs = valstr:match('^(%S+)%s+(%S+)%s+(%S.*)')
if lhs and not (sep == '-' and rhs:match('/')) then
if sep:find('%d') then
return success, result -- to reject {{convert|1 234 567|m}} with a decent message (en only)
end
parms[i] = rhs
table.insert(parms, i, sep)
table.insert(parms, i, lhs)
return extractor(i)
end
if not valstr:match('%-.*/') then
for _, sep in ipairs(text_code.ranges.words) do
local start, stop = valstr:find(sep, 2, true) -- start at 2 to skip any negative sign for range '-'
if start then
parms[i] = valstr:sub(stop + 1)
table.insert(parms, i, sep)
table.insert(parms, i, valstr:sub(1, start - 1))
return extractor(i)
end
end
end
end
return success, result
end
local i = 1
local is_change
while true do
local success, info = extractor(i) -- need to set parms.opt_nocomma before calling this
if not success then return false, info end
i = i + 1
if is_change then
info.is_change = true -- value is after &quot;±&quot; and so is a change (significant for range like {{convert|5|±|5|°C}})
is_change = nil
end
valinfo:add(info)
local range_item = get_range(strip(parms[i]))
if not range_item then
break
end
i = i + 1
range:add(range_item)
if type(range_item) == 'table' then
-- For range &quot;x&quot;, if append unit to some values, append it to all.
parms.in_range_x = parms.in_range_x or range_item.in_range_x
parms.out_range_x = parms.out_range_x or range_item.out_range_x
parms.abbr_range_x = parms.abbr_range_x or range_item.abbr_range_x
is_change = range_item.is_range_change
end
end
if range.n &gt; 0 then
if range.n &gt; 30 then -- limit abuse, although 4 is a more likely upper limit
return false, { 'cvt_invalid_num' } -- misleading message but it will do
end
parms.range = range
elseif had_nocomma then
return false, { 'cvt_unknown', parm2 }
end
return true, valinfo, i
end
local function simple_get_values(parms)
-- If input is like &quot;{{convert|valid_value|valid_unit|...}}&quot;,
-- return true, i, in_unit, in_unit_table
-- i = index in parms of what follows valid_unit, if anything.
-- The valid_value is not negative and does not use a fraction, and
-- no options requiring further processing of the input are used.
-- Otherwise, return nothing or return false, parm1 for caller to interpret.
-- Testing shows this function is successful for 96% of converts in articles,
-- and that on average it speeds up converts by 8%.
if parms.opt_ri or parms.opt_spell_in then return end
local clean = to_en(strip(parms[1] or ''), parms)
if #clean &gt; 10 or not clean:match('^[0-9.]+$') then
return false, clean
end
local value = tonumber(clean)
if not value then return end
local info = {
value = value,
altvalue = value,
singular = (value == 1),
clean = clean,
show = with_separator(parms, clean),
}
local in_unit = strip(parms[2])
local success, in_unit_table = lookup(parms, in_unit, 'no_combination')
if not success then return end
in_unit_table.valinfo = { info }
return true, 3, in_unit, in_unit_table
end
local function wikidata_call(parms, operation, ...)
-- Return true, s where s is the result of a Wikidata operation,
-- or return false, t where t is an error message table.
local function worker(...)
wikidata_code = wikidata_code or require(wikidata_module)
wikidata_data = wikidata_data or mw.loadData(wikidata_data_module)
return wikidata_code[operation](wikidata_data, ...)
end
local success, status, result = pcall(worker, ...)
if success then
return status, result
end
if parms.opt_sortable_debug then
-- Use debug=yes to crash if an error while accessing Wikidata.
error('Error accessing Wikidata: ' .. status, 0)
end
return false, { 'cvt_wd_fail' }
end
local function get_parms(parms, args)
-- If successful, update parms and return true, unit where
-- parms is a table of all arguments passed to the template
-- converted to named arguments, and
-- unit is the input unit table;
-- or return false, t where t is an error message table.
-- For special processing (not a convert), can also return
-- true, wikitext where wikitext is the final result.
-- The returned input unit table may be for a fake unit using the specified
-- unit code as the symbol and name, and with bad_mcode = message code table.
-- MediaWiki removes leading and trailing whitespace from the values of
-- named arguments. However, the values of numbered arguments include any
-- whitespace entered in the template, and whitespace is used by some
-- parameters (example: the numbered parameters associated with &quot;disp=x&quot;).
local kv_pairs = {} -- table of input key:value pairs where key is a name; needed because cannot iterate parms and add new fields to it
for k, v in pairs(args) do
if type(k) == 'number' or k == 'test' then -- parameter &quot;test&quot; is reserved for testing and is not translated
parms[k] = v
else
kv_pairs[k] = v
end
end
if parms.test == 'wikidata' then
local ulookup = function (ucode)
-- Use empty table for parms so it does not accumulate results when used repeatedly.
return lookup({}, ucode, 'no_combination')
end
return wikidata_call(parms, '_listunits', ulookup)
end
local success, msg = translate_parms(parms, kv_pairs)
if not success then return false, msg end
if parms.input then
success, msg = wikidata_call(parms, '_adjustparameters', parms, 1)
if not success then return false, msg end
end
local success, i, in_unit, in_unit_table = simple_get_values(parms)
if not success then
if type(i) == 'string' and i:match('^NNN+$') then
-- Some infoboxes have examples like {{convert|NNN|m}} (3 or more &quot;N&quot;).
-- Output an empty string for these.
return false, { 'cvt_no_output' }
end
local valinfo
success, valinfo, i = get_values(parms)
if not success then return false, valinfo end
in_unit = strip(parms[i])
i = i + 1
success, in_unit_table = lookup(parms, in_unit, 'no_combination')
if not success then
in_unit = in_unit or ''
if parms.opt_ignore_error then -- display given unit code with no error (for use with {{val}})
in_unit_table = '' -- suppress error message and prevent processing of output unit
end
in_unit_table = setmetatable({
symbol = in_unit, name2 = in_unit, utype = in_unit,
scale = 1, default = '', defkey = '', linkey = '',
bad_mcode = in_unit_table }, unit_mt)
end
in_unit_table.valinfo = valinfo
end
if parms.test == 'msg' then
-- Am testing the messages produced when no output unit is specified, and
-- the input unit has a missing or invalid default.
-- Set two units for testing that.
-- LATER: Remove this code.
if in_unit == 'chain' then
in_unit_table.default = nil -- no default
elseif in_unit == 'rd' then
in_unit_table.default = &quot;ft!X!m&quot; -- an invalid expression
end
end
in_unit_table.inout = 'in' -- this is an input unit
if not parms.range then
local success, inext, composite_unit = get_composite(parms, i, in_unit_table)
if not success then return false, inext end
if composite_unit then
in_unit_table = composite_unit
i = inext
end
end
if in_unit_table.builtin == 'mach' then
-- As with old template, a number following Mach as the input unit is the altitude,
-- and there is no way to specify an altitude for the output unit.
-- Could put more code in this function to get any output unit and check for
-- an altitude following that unit.
local success, info = extract_number(parms, parms[i], false, true)
if success then
i = i + 1
in_unit_table.altitude = info.value
end
end
local word = strip(parms[i])
i = i + 1
local precision, is_bad_precision
local function set_precision(text)
local number, is_integer = get_number(text)
if number then
if is_integer then
precision = number
else
precision = text
is_bad_precision = true
end
return true -- text was used for precision, good or bad
end
end
if word and not set_precision(word) then
parms.out_unit = parms.out_unit or word
if set_precision(strip(parms[i])) then
i = i + 1
end
end
if parms.opt_adj_mid then
word = parms[i]
i = i + 1
if word then -- mid-text words
if word:sub(1, 1) == '-' then
parms.mid = word
else
parms.mid = ' ' .. word
end
end
end
if parms.opt_one_preunit then
parms[parms.opt_flip and 'preunit2' or 'preunit1'] = preunits(1, parms[i])
i = i + 1
end
if parms.disp == 'x' then
-- Following is reasonably compatible with the old template.
local first = parms[i] or ''
local second = parms[i+1] or ''
i = i + 2
if strip(first) == '' then -- user can enter '&amp;#32;' rather than ' ' to avoid the default
first = ' [&amp;nbsp;' .. first
second = '&amp;nbsp;]' .. second
end
parms.joins = { first, second }
elseif parms.opt_two_preunits then
local p1, p2 = preunits(2, parms[i], parms[i+1])
i = i + 2
if parms.preunit1 then
-- To simplify documentation, allow unlikely use of adj=pre with disp=preunit
-- (however, an output unit must be specified with adj=pre and with disp=preunit).
parms.preunit1 = parms.preunit1 .. p1
parms.preunit2 = p2
else
parms.preunit1, parms.preunit2 = p1, p2
end
end
if precision == nil then
if set_precision(strip(parms[i])) then
i = i + 1
end
end
if is_bad_precision then
add_warning(parms, 1, 'cvt_bad_prec', precision)
else
parms.precision = precision
end
return true, in_unit_table
end
local function record_default_precision(parms, out_current, precision)
-- If necessary, adjust parameters and return a possibly adjusted precision.
-- When converting a range of values where a default precision is required,
-- that default is calculated for each value because the result sometimes
-- depends on the precise input and output values. This function may cause
-- the entire convert process to be repeated in order to ensure that the
-- same default precision is used for each individual convert.
-- If that were not done, a range like 1000 to 1000.4 may give poor results
-- because the first output could be heavily rounded, while the second is not.
-- For range 1000.4 to 1000, this function can give the second convert the
-- same default precision that was used for the first.
if not parms.opt_round_each then
local maxdef = out_current.max_default_precision
if maxdef then
if maxdef &lt; precision then
parms.do_convert_again = true
out_current.max_default_precision = precision
else
precision = out_current.max_default_precision
end
else
out_current.max_default_precision = precision
end
end
return precision
end
local function default_precision(parms, invalue, inclean, denominator, outvalue, in_current, out_current, extra)
-- Return a default value for precision (an integer like 2, 0, -2).
-- If denominator is not nil, it is the value of the denominator in inclean.
-- Code follows procedures used in old template.
local fudge = 1e-14 -- {{Order of magnitude}} adds this, so we do too
local prec, minprec, adjust
local subunit_ignore_trailing_zero
local subunit_more_precision -- kludge for &quot;in&quot; used in input like &quot;|2|ft|6|in&quot;
local composite = in_current.composite
if composite then
subunit_ignore_trailing_zero = true -- input &quot;|2|st|10|lb&quot; has precision 0, not -1
if composite[#composite].exception == 'subunit_more_precision' then
subunit_more_precision = true -- do not use standard precision with input like &quot;|2|ft|6|in&quot;
end
end
if denominator and denominator &gt; 0 then
prec = math.max(log10(denominator), 1)
else
-- Count digits after decimal mark, handling cases like '12.345e6'.
local exponent
local integer, dot, decimals, expstr = inclean:match('^(%d*)(%.?)(%d*)(.*)')
local e = expstr:sub(1, 1)
if e == 'e' or e == 'E' then
exponent = tonumber(expstr:sub(2))
end
if dot == '' then
prec = subunit_ignore_trailing_zero and 0 or -integer:match('0*$'):len()
else
prec = #decimals
end
if exponent then
-- So '1230' and '1.23e3' both give prec = -1, and '0.00123' and '1.23e-3' give 5.
prec = prec - exponent
end
end
if in_current.istemperature and out_current.istemperature then
-- Converting between common temperatures (°C, °F, °R, K); not keVT.
-- Kelvin value can be almost zero, or small but negative due to precision problems.
-- Also, an input value like -300 C (below absolute zero) gives negative kelvins.
-- Calculate minimum precision from absolute value.
adjust = 0
local kelvin = abs((invalue - in_current.offset) * in_current.scale)
if kelvin &lt; 1e-8 then -- assume nonzero due to input or calculation precision problem
minprec = 2
else
minprec = 2 - floor(log10(kelvin) + fudge) -- 3 sigfigs in kelvin
end
else
if invalue == 0 or outvalue &lt;= 0 then
-- We are never called with a negative outvalue, but it might be zero.
-- This is special-cased to avoid calculation exceptions.
return record_default_precision(parms, out_current, 0)
end
if out_current.exception == 'integer_more_precision' and floor(invalue) == invalue then
-- With certain output units that sometimes give poor results
-- with default rounding, use more precision when the input
-- value is equal to an integer. An example of a poor result
-- is when input 50 gives a smaller output than input 49.5.
-- Experiment shows this helps, but it does not eliminate all
-- surprises because it is not clear whether &quot;50&quot; should be
-- interpreted as &quot;from 45 to 55&quot; or &quot;from 49.5 to 50.5&quot;.
adjust = -log10(in_current.scale)
elseif subunit_more_precision then
-- Conversion like &quot;{{convert|6|ft|1|in|cm}}&quot; (where subunit is &quot;in&quot;)
-- has a non-standard adjust value, to give more output precision.
adjust = log10(out_current.scale) + 2
else
adjust = log10(abs(invalue / outvalue))
end
adjust = adjust + log10(2)
-- Ensure that the output has at least two significant figures.
minprec = 1 - floor(log10(outvalue) + fudge)
end
if extra then
adjust = extra.adjust or adjust
minprec = extra.minprec or minprec
end
return record_default_precision(parms, out_current, math.max(floor(prec + adjust), minprec))
end
local function convert(parms, invalue, info, in_current, out_current)
-- Convert given input value from one unit to another.
-- Return output_value (a number) if a simple convert, or
-- return f, t where
-- f = true, t = table of information with results, or
-- f = false, t = error message table.
local inscale = in_current.scale
local outscale = out_current.scale
if not in_current.iscomplex and not out_current.iscomplex then
return invalue * (inscale / outscale) -- minimize overhead for most common case
end
if in_current.invert or out_current.invert then
-- Inverted units, such as inverse length, inverse time, or
-- fuel efficiency. Built-in units do not have invert set.
if (in_current.invert or 1) * (out_current.invert or 1) &lt; 0 then
return 1 / (invalue * inscale * outscale)
end
return invalue * (inscale / outscale)
elseif in_current.offset then
-- Temperature (there are no built-ins for this type of unit).
if info.is_change then
return invalue * (inscale / outscale)
end
return (invalue - in_current.offset) * (inscale / outscale) + out_current.offset
else
-- Built-in unit.
local in_builtin = in_current.builtin
local out_builtin = out_current.builtin
if in_builtin and out_builtin then
if in_builtin == out_builtin then
return invalue
end
-- There are no cases (yet) where need to convert from one
-- built-in unit to another, so this should never occur.
return false, { 'cvt_bug_convert' }
end
if in_builtin == 'mach' or out_builtin == 'mach' then
local adjust
if in_builtin == 'mach' then
inscale = speed_of_sound(in_current.altitude)
adjust = outscale / 0.1
else
outscale = speed_of_sound(out_current.altitude)
adjust = 0.1 / inscale
end
return true, {
outvalue = invalue * (inscale / outscale),
adjust = log10(adjust) + log10(2),
}
elseif in_builtin == 'hand' then
-- 1 hand = 4 inches; 1.2 hands = 6 inches.
-- Decimals of a hand are only defined for the first digit, and
-- the first fractional digit should be a number of inches (1, 2 or 3).
-- However, this code interprets the entire fractional part as the number
-- of inches / 10 (so 1.75 inches would be 0.175 hands).
-- A value like 12.3 hands is exactly 12*4 + 3 inches; base default precision on that.
local integer, fracpart = math.modf(invalue)
local inch_value = 4 * integer + 10 * fracpart -- equivalent number of inches
local factor = inscale / outscale
if factor == 4 then
-- Am converting to inches: show exact result, and use &quot;inches&quot; not &quot;in&quot; by default.
if parms.abbr_org == nil then
out_current.usename = true
end
local show = format('%g', abs(inch_value)) -- show and clean are unsigned
if not show:find('e', 1, true) then
return true, {
invalue = inch_value,
outvalue = inch_value,
clean = show,
show = show,
}
end
end
local outvalue = (integer + 2.5 * fracpart) * factor
local fracstr = info.clean:match('%.(.*)') or ''
local fmt
if fracstr == '' then
fmt = '%.0f'
else
fmt = '%.' .. format('%d', #fracstr - 1) .. 'f'
end
return true, {
invalue = inch_value,
clean = format(fmt, inch_value),
outvalue = outvalue,
minprec = 0,
}
end
end
return false, { 'cvt_bug_convert' } -- should never occur
end
local function user_style(parms, i)
-- Return text for a user-specified style for a table cell, or '' if none,
-- given i = 1 (input style) or 2 (output style).
local style = parms[(i == 1) and 'stylein' or 'styleout']
if style then
style = style:gsub('&quot;', '')
if style ~= '' then
if style:sub(-1) ~= ';' then
style = style .. ';'
end
return style
end
end
return ''
end
local function make_table_or_sort(parms, invalue, info, in_current, scaled_top)
-- Set options to handle output for a table or a sort key, or both.
-- The text sort key is based on the value resulting from converting
-- the input to a fake base unit with scale = 1, and other properties
-- required for a conversion derived from the input unit.
-- For other modules, return the sort key in a hidden span element, and
-- the scaled value used to generate the sort key.
-- If scaled_top is set, it is the scaled value of the numerator of a per unit
-- to be combined with this unit (the denominator) to make the sort key.
-- Scaling only works with units that convert with a factor (not temperature).
local sortkey, scaled_value
if parms.opt_sortable_on then
local base = { -- a fake unit with enough fields for a valid convert
scale = 1,
invert = in_current.invert and 1,
iscomplex = in_current.iscomplex,
offset = in_current.offset and 0,
}
local outvalue, extra = convert(parms, invalue, info, in_current, base)
if extra then
outvalue = extra.outvalue
end
if in_current.istemperature then
-- Have converted to kelvin; assume numbers close to zero have a
-- rounding error and should be zero.
if abs(outvalue) &lt; 1e-12 then
outvalue = 0
end
end
if scaled_top and outvalue ~= 0 then
outvalue = scaled_top / outvalue
end
scaled_value = outvalue
if not valid_number(outvalue) then
if outvalue &lt; 0 then
sortkey = '1000000000000000000'
else
sortkey = '9000000000000000000'
end
elseif outvalue == 0 then
sortkey = '5000000000000000000'
else
local mag = floor(log10(abs(outvalue)) + 1e-14)
local prefix
if outvalue &gt; 0 then
prefix = 7000 + mag
else
prefix = 2999 - mag
outvalue = outvalue + 10^(mag+1)
end
sortkey = format('%d', prefix) .. format('%015.0f', floor(outvalue * 10^(14-mag)))
end
end
local sortspan
if sortkey and (parms.opt_sortable_debug or not parms.table_align) then
sortspan = parms.opt_sortable_debug and
'&lt;span style=&quot;border:1px solid;display:inline;&quot; class=&quot;sortkey&quot;&gt;' .. sortkey .. '♠&lt;/span&gt;' or
'&lt;span style=&quot;display:none&quot; class=&quot;sortkey&quot;&gt;' .. sortkey .. '♠&lt;/span&gt;'
parms.join_before = sortspan
end
if parms.table_align then
local style = 'style=&quot;text-align:' .. parms.table_align .. ';'
local sort = sortkey and ' data-sort-value=&quot;' .. sortkey .. '&quot;' or ''
local joins = {}
for i = 1, 2 do
joins[i] = (i == 1 and '' or '\n|') .. style .. user_style(parms, i) .. '&quot;' .. sort .. '|'
end
parms.table_joins = joins
end
return sortspan, scaled_value
end
local cvt_to_hand
local function cvtround(parms, info, in_current, out_current)
-- Return true, t where t is a table with the conversion results; fields:
-- show = rounded, formatted string with the result of converting value in info,
-- using the rounding specified in parms.
-- singular = true if result (after rounding and ignoring any negative sign)
-- is &quot;1&quot;, or like &quot;1.00&quot;, or is a fraction with value &lt; 1;
-- (and more fields shown below, and a calculated 'absvalue' field).
-- or return false, t where t is an error message table.
-- Input info.clean uses en digits (it has been translated, if necessary).
-- Output show uses en or non-en digits as appropriate, or can be spelled.
if out_current.builtin == 'hand' then
return cvt_to_hand(parms, info, in_current, out_current)
end
local invalue = in_current.builtin == 'hand' and info.altvalue or info.value
local outvalue, extra = convert(parms, invalue, info, in_current, out_current)
if parms.need_table_or_sort then
parms.need_table_or_sort = nil -- process using first input value only
make_table_or_sort(parms, invalue, info, in_current)
end
if extra then
if not outvalue then return false, extra end
invalue = extra.invalue or invalue
outvalue = extra.outvalue
end
if not valid_number(outvalue) then
return false, { 'cvt_invalid_num' }
end
local isnegative
if outvalue &lt; 0 then
isnegative = true
outvalue = -outvalue
end
local precision, show, exponent
local denominator = out_current.frac
if denominator then
show = fraction_table(outvalue, denominator)
else
precision = parms.precision
if not precision then
if parms.sigfig then
show, exponent = make_sigfig(outvalue, parms.sigfig)
elseif parms.opt_round then
local n = parms.opt_round
if n == 0.5 then
local integer, fracpart = math.modf(floor(2 * outvalue + 0.5) / 2)
if fracpart == 0 then
show = format('%.0f', integer)
else
show = format('%.1f', integer + fracpart)
end
else
show = format('%.0f', floor((outvalue / n) + 0.5) * n)
end
else
local inclean = info.clean
if extra then
inclean = extra.clean or inclean
show = extra.show
end
if not show then
precision = default_precision(parms, invalue, inclean, info.denominator, outvalue, in_current, out_current, extra)
end
end
end
end
if precision then
if precision &gt;= 0 then
local fudge
if precision &lt;= 8 then
-- Add a fudge to handle common cases of bad rounding due to inability
-- to precisely represent some values. This makes the following work:
-- {{convert|-100.1|C|K}} and {{convert|5555000|um|m|2}}.
-- Old template uses #expr round, which invokes PHP round().
-- LATER: Investigate how PHP round() works.
fudge = 2e-14
else
fudge = 0
end
local fmt = '%.' .. format('%d', precision) .. 'f'
local success
success, show = pcall(format, fmt, outvalue + fudge)
if not success then
return false, { 'cvt_big_prec', tostring(precision) }
end
else
precision = -precision -- #digits to zero (in addition to any digits after dot)
local shift = 10 ^ precision
show = format('%.0f', outvalue/shift)
if show ~= '0' then
exponent = #show + precision
end
end
end
local t = format_number(parms, show, exponent, isnegative)
if type(show) == 'string' then
-- Set singular using match because on some systems 0.99999999999999999 is 1.0.
if exponent then
t.singular = (exponent == 1 and show:match('^10*$'))
else
t.singular = (show == '1' or show:match('^1%.0*$'))
end
else
t.fraction_table = show
t.singular = (outvalue &lt;= 1) -- cannot have 'fraction == 1', but if it were possible it would be singular
end
t.raw_absvalue = outvalue -- absolute value before rounding
return true, setmetatable(t, {
__index = function (self, key)
if key == 'absvalue' then
-- Calculate absolute value after rounding, if needed.
local clean, exponent = rawget(self, 'clean'), rawget(self, 'exponent')
local value = tonumber(clean) -- absolute value (any negative sign has been ignored)
if exponent then
value = value * 10^exponent
end
rawset(self, key, value)
return value
end
end })
end
function cvt_to_hand(parms, info, in_current, out_current)
-- Convert input to hands, inches.
-- Return true, t where t is a table with the conversion results;
-- or return false, t where t is an error message table.
if parms.abbr_org == nil then
out_current.usename = true -- default is to show name not symbol
end
local precision = parms.precision
local frac = out_current.frac
if not frac and precision and precision &gt; 1 then
frac = (precision == 2) and 2 or 4
end
local out_next = out_current.out_next
if out_next then
-- Use magic knowledge to determine whether the next unit is inches without requiring i18n.
-- The following ensures that when the output combination &quot;hand in&quot; is used, the inches
-- value is rounded to match the hands value. Also, displaying say &quot;61½&quot; instead of 61.5
-- is better as 61.5 implies the value is not 61.4.
if out_next.exception == 'subunit_more_precision' then
out_next.frac = frac
end
end
-- Convert to inches; calculate hands from that.
local dummy_unit_table = { scale = out_current.scale / 4, frac = frac }
local success, outinfo = cvtround(parms, info, in_current, dummy_unit_table)
if not success then return false, outinfo end
local tfrac = outinfo.fraction_table
local inches = outinfo.raw_absvalue
if tfrac then
inches = floor(inches) -- integer part only; fraction added later
else
inches = floor(inches + 0.5) -- a hands measurement never shows decimals of an inch
end
local hands, inches = divide(inches, 4)
outinfo.absvalue = hands + inches/4 -- supposed to be the absolute rounded value, but this is close enough
local inchstr = tostring(inches) -- '0', '1', '2' or '3'
if precision and precision &lt;= 0 then -- using negative or 0 for precision rounds to nearest hand
hands = floor(outinfo.raw_absvalue/4 + 0.5)
inchstr = ''
elseif tfrac then
-- Always show an integer before fraction (like &quot;15.0½&quot;) because &quot;15½&quot; means 15-and-a-half hands.
inchstr = numdot .. format_fraction(parms, 'out', false, inchstr, tfrac.numstr, tfrac.denstr)
else
inchstr = numdot .. from_en(inchstr)
end
outinfo.show = outinfo.sign .. with_separator(parms, format('%.0f', hands)) .. inchstr
return true, outinfo
end
local function evaluate_condition(value, condition)
-- Return true or false from applying a conditional expression to value,
-- or throw an error if invalid.
-- A very limited set of expressions is supported:
-- v &lt; 9
-- v * 9 &lt; 9
-- where
-- 'v' is replaced with value
-- 9 is any number (as defined by Lua tonumber)
-- only en digits are accepted
-- '&lt;' can also be '&lt;=' or '&gt;' or '&gt;='
-- In addition, the following form is supported:
-- LHS and RHS
-- where
-- LHS, RHS = any of above expressions.
local function compare(value, text)
local arithop, factor, compop, limit = text:match('^%s*v%s*([*]?)(.-)([&lt;&gt;]=?)(.*)$')
if arithop == nil then
error('Invalid default expression', 0)
elseif arithop == '*' then
factor = tonumber(factor)
if factor == nil then
error('Invalid default expression', 0)
end
value = value * factor
end
limit = tonumber(limit)
if limit == nil then
error('Invalid default expression', 0)
end
if compop == '&lt;' then
return value &lt; limit
elseif compop == '&lt;=' then
return value &lt;= limit
elseif compop == '&gt;' then
return value &gt; limit
elseif compop == '&gt;=' then
return value &gt;= limit
end
error('Invalid default expression', 0) -- should not occur
end
local lhs, rhs = condition:match('^(.-%W)and(%W.*)')
if lhs == nil then
return compare(value, condition)
end
return compare(value, lhs) and compare(value, rhs)
end
local function get_default(value, unit_table)
-- Return true, s where s = name of unit's default output unit,
-- or return false, t where t is an error message table.
-- Some units have a default that depends on the input value
-- (the first value if a range of values is used).
-- If '!' is in the default, the first bang-delimited field is an
-- expression that uses 'v' to represent the input value.
-- Example: 'v &lt; 120 ! small ! big ! suffix' (suffix is optional)
-- evaluates 'v &lt; 120' as a boolean with result
-- 'smallsuffix' if (value &lt; 120), or 'bigsuffix' otherwise.
-- Input must use en digits and '.' decimal mark.
local default = data_code.default_exceptions[unit_table.defkey or unit_table.symbol] or unit_table.default
if not default then
local per = unit_table.per
if per then
local function a_default(v, u)
local success, ucode = get_default(v, u)
if not success then
return '?' -- an unlikely error has occurred; will cause lookup of default to fail
end
-- Attempt to use only the first unit if a combination or output multiple.
-- This is not bulletproof but should work for most cases.
-- Where it does not work, the convert will need to specify the wanted output unit.
local t = all_units[ucode]
if t then
local combo = t.combination
if combo then
-- For a multiple like ftin, the &quot;first&quot; unit (ft) is last in the combination.
local i = t.multiple and table_len(combo) or 1
ucode = combo[i]
end
else
-- Try for an automatically generated combination.
local item = ucode:match('^(.-)%+') or ucode:match('^(%S+)%s')
if all_units[item] then
return item
end
end
return ucode
end
local unit1, unit2 = per[1], per[2]
local def1 = (unit1 and a_default(value, unit1) or unit_table.vprefix or '')
local def2 = a_default(1, unit2) -- 1 because per unit of denominator
return true, def1 .. '/' .. def2
end
return false, { 'cvt_no_default', unit_table.symbol }
end
if default:find('!', 1, true) == nil then
return true, default
end
local t = split(default, '!')
if #t == 3 or #t == 4 then
local success, result = pcall(evaluate_condition, value, t[1])
if success then
default = result and t[2] or t[3]
if #t == 4 then
default = default .. t[4]
end
return true, default
end
end
return false, { 'cvt_bad_default', unit_table.symbol }
end
local linked_pages -- to record linked pages so will not link to the same page more than once
local function unlink(unit_table)
-- Forget that the given unit has previously been linked (if it has).
-- That is needed when processing a range of inputs or outputs when an id
-- for the first range value may have been evaluated, but only an id for
-- the last value is displayed, and that id may need to be linked.
linked_pages[unit_table.unitcode or unit_table] = nil
end
local function make_link(link, id, unit_table)
-- Return wikilink &quot;[[link|id]]&quot;, possibly abbreviated as in examples:
-- [[Mile|mile]] --&gt; [[mile]]
-- [[Mile|miles]] --&gt; [[mile]]s
-- However, just id is returned if:
-- * no link given (so caller does not need to check if a link was defined); or
-- * link has previously been used during the current convert (to avoid overlinking).
local link_key
if unit_table then
link_key = unit_table.unitcode or unit_table
else
link_key = link
end
if not link or link == '' or linked_pages[link_key] then
return id
end
linked_pages[link_key] = true
-- Following only works for language en, but it should be safe on other wikis,
-- and overhead of doing it generally does not seem worthwhile.
local l = link:sub(1, 1):lower() .. link:sub(2)
if link == id or l == id then
return '[[' .. id .. ']]'
elseif link .. 's' == id or l .. 's' == id then
return '[[' .. id:sub(1, -2) .. ']]s'
else
return '[[' .. link .. '|' .. id .. ']]'
end
end
local function variable_name(clean, unit_table)
-- For slwiki, a unit name depends on the value.
-- Parameter clean is the unsigned rounded value in en digits, as a string.
-- Value Source Example for &quot;m&quot;
-- integer 1: name1 meter (also is the name of the unit)
-- integer 2: var{1} metra
-- integer 3 and 4: var{2} metri
-- integer else: var{3} metrov (0 and 5 or more)
-- real/fraction: var{4} metra
-- var{i} means the i'th field in unit_table.varname if it exists and has
-- an i'th field, otherwise name2.
-- Fields are separated with &quot;!&quot; and are not empty.
-- A field for a unit using an SI prefix has the prefix name inserted,
-- replacing '#' if found, or before the field otherwise.
local vname
if clean == '1' then
vname = unit_table.name1
elseif unit_table.varname then
local i
if clean == '2' then
i = 1
elseif clean == '3' or clean == '4' then
i = 2
elseif clean:find('.', 1, true) then
i = 4
else
i = 3
end
if i &gt; 1 and varname == 'pl' then
i = i - 1
end
vname = split(unit_table.varname, '!')[i]
end
if vname then
local si_name = rawget(unit_table, 'si_name') or ''
local pos = vname:find('#', 1, true)
if pos then
vname = vname:sub(1, pos - 1) .. si_name .. vname:sub(pos + 1)
else
vname = si_name .. vname
end
return vname
end
return unit_table.name2
end
local function linked_id(parms, unit_table, key_id, want_link, clean)
-- Return final unit id (symbol or name), optionally with a wikilink,
-- and update unit_table.sep if required.
-- key_id is one of: 'symbol', 'sym_us', 'name1', 'name1_us', 'name2', 'name2_us'.
local abbr_on = (key_id == 'symbol' or key_id == 'sym_us')
if abbr_on and want_link then
local symlink = rawget(unit_table, 'symlink')
if symlink then
return symlink -- for exceptions that have the linked symbol built-in
end
end
local multiplier = rawget(unit_table, 'multiplier')
local per = unit_table.per
if per then
local paren1, paren2 = '', '' -- possible parentheses around bottom unit
local unit1 = per[1] -- top unit_table, or nil
local unit2 = per[2] -- bottom unit_table
if abbr_on then
if not unit1 then
unit_table.sep = '' -- no separator in &quot;$2/acre&quot;
end
if not want_link then
local symbol = unit_table.symbol_raw
if symbol then
return symbol -- for exceptions that have the symbol built-in
end
end
if (unit2.symbol):find('⋅', 1, true) then
paren1, paren2 = '(', ')'
end
end
local key_id2 -- unit2 is always singular
if key_id == 'name2' then
key_id2 = 'name1'
elseif key_id == 'name2_us' then
key_id2 = 'name1_us'
else
key_id2 = key_id
end
local result
if abbr_on then
result = '/'
elseif omitsep then
result = per_word
elseif unit1 then
result = ' ' .. per_word .. ' '
else
result = per_word .. ' '
end
if want_link and unit_table.link then
if abbr_on or not varname then
result = (unit1 and linked_id(parms, unit1, key_id, false, clean) or '') .. result .. linked_id(parms, unit2, key_id2, false, '1')
else
result = (unit1 and variable_name(clean, unit1) or '') .. result .. variable_name('1', unit2)
end
if omit_separator(result) then
unit_table.sep = ''
end
return make_link(unit_table.link, result, unit_table)
end
if unit1 then
result = linked_id(parms, unit1, key_id, want_link, clean) .. result
if unit1.sep then
unit_table.sep = unit1.sep
end
elseif omitsep then
unit_table.sep = ''
end
return result .. paren1 .. linked_id(parms, unit2, key_id2, want_link, '1') .. paren2
end
if multiplier then
-- A multiplier (like &quot;100&quot; in &quot;100km&quot;) forces the unit to be plural.
multiplier = from_en(multiplier)
if not omitsep then
multiplier = multiplier .. (abbr_on and '&amp;nbsp;' or ' ')
end
if not abbr_on then
if key_id == 'name1' then
key_id = 'name2'
elseif key_id == 'name1_us' then
key_id = 'name2_us'
end
end
else
multiplier = ''
end
local id = unit_table.fixed_name or ((varname and not abbr_on) and variable_name(clean, unit_table) or unit_table[key_id])
if omit_separator(id) then
unit_table.sep = ''
end
if want_link then
local link = data_code.link_exceptions[unit_table.linkey or unit_table.symbol] or unit_table.link
if link then
local before = ''
local i = unit_table.customary
if i == 1 and parms.opt_sp_us then
i = 2 -- show &quot;U.S.&quot; not &quot;US&quot;
end
if i == 3 and abbr_on then
i = 4 -- abbreviate &quot;imperial&quot; to &quot;imp&quot;
end
local customary = text_code.customary_units[i]
if customary then
-- LATER: This works for language en only, but it's esoteric so ignore for now.
local pertext
if id:sub(1, 1) == '/' then
-- Want unit &quot;/USgal&quot; to display as &quot;/U.S. gal&quot;, not &quot;U.S. /gal&quot;.
pertext = '/'
id = id:sub(2)
elseif id:sub(1, 4) == 'per ' then
-- Similarly want &quot;per U.S. gallon&quot;, not &quot;U.S. per gallon&quot; (but in practice this is unlikely to be used).
pertext = 'per '
id = id:sub(5)
else
pertext = ''
end
-- Omit any &quot;US&quot;/&quot;U.S.&quot;/&quot;imp&quot;/&quot;imperial&quot; from start of id since that will be inserted.
local removes = (i &lt; 3) and { 'US&amp;nbsp;', 'US ', 'U.S.&amp;nbsp;', 'U.S. ' } or { 'imp&amp;nbsp;', 'imp ', 'imperial ' }
for _, prefix in ipairs(removes) do
local plen = #prefix
if id:sub(1, plen) == prefix then
id = id:sub(plen + 1)
break
end
end
before = pertext .. make_link(customary.link, customary[1]) .. ' '
end
id = before .. make_link(link, id, unit_table)
end
end
return multiplier .. id
end
local function make_id(parms, which, unit_table)
-- Return id, f where
-- id = unit name or symbol, possibly modified
-- f = true if id is a name, or false if id is a symbol
-- using the value for index 'which', and for 'in' or 'out' (unit_table.inout).
-- Result is '' if no symbol/name is to be used.
-- In addition, set unit_table.sep = ' ' or '&amp;nbsp;' or ''
-- (the separator that caller will normally insert before the id).
if parms.opt_values then
unit_table.sep = ''
return ''
end
local inout = unit_table.inout
local info = unit_table.valinfo[which]
local abbr_org = parms.abbr_org
local adjectival = parms.opt_adjectival
local lk = parms.lk
local want_link = (lk == 'on' or lk == inout)
local usename = unit_table.usename
local singular = info.singular
local want_name
if usename then
want_name = true
else
if abbr_org == nil then
if parms.wantname then
want_name = true
end
if unit_table.usesymbol then
want_name = false
end
end
if want_name == nil then
local abbr = parms.abbr
if abbr == 'on' or abbr == inout or (abbr == 'mos' and inout == 'out') then
want_name = false
else
want_name = true
end
end
end
local key
if want_name then
if lk == nil and unit_table.builtin == 'hand' then
want_link = true
end
if parms.opt_use_nbsp then
unit_table.sep = '&amp;nbsp;'
else
unit_table.sep = ' '
end
if parms.opt_singular then
local value
if inout == 'in' then
value = info.value
else
value = info.absvalue
end
if value then -- some unusual units do not always set value field
value = abs(value)
singular = (0 &lt; value and value &lt; 1.0001)
end
end
if unit_table.engscale then
-- engscale: so &quot;|1|e3kg&quot; gives &quot;1 thousand kilograms&quot; (plural)
singular = false
end
key = (adjectival or singular) and 'name1' or 'name2'
if parms.opt_sp_us then
key = key .. '_us'
end
else
if unit_table.builtin == 'hand' then
if parms.opt_hand_hh then
unit_table.symbol = 'hh' -- LATER: might want i18n applied to this
end
end
unit_table.sep = '&amp;nbsp;'
key = parms.opt_sp_us and 'sym_us' or 'symbol'
end
return linked_id(parms, unit_table, key, want_link, info.clean), want_name
end
local function decorate_value(parms, unit_table, which, number_word)
-- If needed, update unit_table so values will be shown with extra information.
-- For consistency with the old template (but different from fmtpower),
-- the style to display powers of 10 includes &quot;display:none&quot; to allow some
-- browsers to copy, for example, &quot;10³&quot; as &quot;10^3&quot;, rather than as &quot;103&quot;.
local info
local engscale = unit_table.engscale
local prefix = unit_table.vprefix
if engscale or prefix then
info = unit_table.valinfo[which]
if info.decorated then
return -- do not redecorate if repeating convert
end
info.decorated = true
if engscale then
local inout = unit_table.inout
local abbr = parms.abbr
if (abbr == 'on' or abbr == inout) and not parms.number_word then
info.show = info.show ..
'&lt;span style=&quot;margin-left:0.2em&quot;&gt;×&lt;span style=&quot;margin-left:0.1em&quot;&gt;' ..
from_en('10') ..
'&lt;/span&gt;&lt;/span&gt;&lt;s style=&quot;display:none&quot;&gt;^&lt;/s&gt;&lt;sup&gt;' ..
from_en(tostring(engscale.exponent)) .. '&lt;/sup&gt;'
elseif number_word then
local number_id
local lk = parms.lk
if lk == 'on' or lk == inout then
number_id = make_link(engscale.link, engscale[1])
else
number_id = engscale[1]
end
-- WP:NUMERAL recommends &quot;&amp;nbsp;&quot; in values like &quot;12 million&quot;.
info.show = info.show .. (parms.opt_adjectival and '-' or '&amp;nbsp;') .. number_id
end
end
if prefix then
info.show = prefix .. info.show
end
end
end
local function process_input(parms, in_current)
-- Processing required once per conversion.
-- Return block of text to represent input (value/unit).
if parms.opt_output_only or parms.opt_output_number_only or parms.opt_output_unit_only then
parms.joins = { '', '' }
return ''
end
local first_unit
local composite = in_current.composite -- nil or table of units
if composite then
first_unit = composite[1]
else
first_unit = in_current
end
local id1, want_name = make_id(parms, 1, first_unit)
local sep = first_unit.sep -- separator between value and unit, set by make_id
local preunit = parms.preunit1
if preunit then
sep = '' -- any separator is included in preunit
else
preunit = ''
end
if parms.opt_input_unit_only then
parms.joins = { '', '' }
if composite then
local parts = { id1 }
for i, unit in ipairs(composite) do
if i &gt; 1 then
table.insert(parts, (make_id(parms, 1, unit)))
end
end
id1 = table.concat(parts, ' ')
end
if want_name and parms.opt_adjectival then
return preunit .. hyphenated(id1)
end
return preunit .. id1
end
if parms.opt_also_symbol and not composite then
local join1 = parms.joins[1]
if join1 == ' (' or join1 == ' [' then
parms.joins = { ' [' .. first_unit[parms.opt_sp_us and 'sym_us' or 'symbol'] .. ']' .. join1 , parms.joins[2] }
end
end
if in_current.builtin == 'mach' and first_unit.sep ~= '' then -- '' means omitsep with non-enwiki name
local prefix = id1 .. '&amp;nbsp;'
local range = parms.range
local valinfo = first_unit.valinfo
local result = prefix .. valinfo[1].show
if range then
-- For simplicity and because more not needed, handle one range item only.
local prefix2 = make_id(parms, 2, first_unit) .. '&amp;nbsp;'
result = range_text(range[1], want_name, parms, result, prefix2 .. valinfo[2].show, 'in')
end
return preunit .. result
end
if composite then
-- Simplify: assume there is no range, and no decoration.
local mid = (not parms.opt_flip) and parms.mid or ''
local sep1 = '&amp;nbsp;'
local sep2 = ' '
if parms.opt_adjectival and want_name then
sep1 = '-'
sep2 = '-'
end
if omitsep and sep == '' then
-- Testing the id of the most significant unit should be sufficient.
sep1 = ''
sep2 = ''
end
local parts = { first_unit.valinfo[1].show .. sep1 .. id1 }
for i, unit in ipairs(composite) do
if i &gt; 1 then
table.insert(parts, unit.valinfo[1].show .. sep1 .. (make_id(parms, 1, unit)))
end
end
return table.concat(parts, sep2) .. mid
end
local add_unit = (parms.abbr == 'mos') or
parms[parms.opt_flip and 'out_range_x' or 'in_range_x'] or
(not want_name and parms.abbr_range_x)
local range = parms.range
if range and not add_unit then
unlink(first_unit)
end
local id = range and make_id(parms, range.n + 1, first_unit) or id1
local extra, was_hyphenated = hyphenated_maybe(parms, want_name, sep, id, 'in')
if was_hyphenated then
add_unit = false
end
local result
local valinfo = first_unit.valinfo
if range then
for i = 0, range.n do
local number_word
if i == range.n then
add_unit = false
number_word = true
end
decorate_value(parms, first_unit, i+1, number_word)
local show = valinfo[i+1].show
if add_unit then
show = show .. first_unit.sep .. (i == 0 and id1 or make_id(parms, i+1, first_unit))
end
if i == 0 then
result = show
else
result = range_text(range[i], want_name, parms, result, show, 'in')
end
end
else
decorate_value(parms, first_unit, 1, true)
result = valinfo[1].show
end
return result .. preunit .. extra
end
local function process_one_output(parms, out_current)
-- Processing required for each output unit.
-- Return block of text to represent output (value/unit).
local inout = out_current.inout -- normally 'out' but can be 'in' for order=out
local id1, want_name = make_id(parms, 1, out_current)
local sep = out_current.sep -- set by make_id
local preunit = parms.preunit2
if preunit then
sep = '' -- any separator is included in preunit
else
preunit = ''
end
if parms.opt_output_unit_only then
if want_name and parms.opt_adjectival then
return preunit .. hyphenated(id1)
end
return preunit .. id1
end
if out_current.builtin == 'mach' and out_current.sep ~= '' then -- '' means omitsep with non-enwiki name
local prefix = id1 .. '&amp;nbsp;'
local range = parms.range
local valinfo = out_current.valinfo
local result = prefix .. valinfo[1].show
if range then
-- For simplicity and because more not needed, handle one range item only.
result = range_text(range[1], want_name, parms, result, prefix .. valinfo[2].show, inout)
end
return preunit .. result
end
local add_unit = (parms[parms.opt_flip and 'in_range_x' or 'out_range_x'] or
(not want_name and parms.abbr_range_x)) and
not parms.opt_output_number_only
local range = parms.range
if range and not add_unit then
unlink(out_current)
end
local id = range and make_id(parms, range.n + 1, out_current) or id1
local extra, was_hyphenated = hyphenated_maybe(parms, want_name, sep, id, inout)
if was_hyphenated then
add_unit = false
end
local result
local valinfo = out_current.valinfo
if range then
for i = 0, range.n do
local number_word
if i == range.n then
add_unit = false
number_word = true
end
decorate_value(parms, out_current, i+1, number_word)
local show = valinfo[i+1].show
if add_unit then
show = show .. out_current.sep .. (i == 0 and id1 or make_id(parms, i+1, out_current))
end
if i == 0 then
result = show
else
result = range_text(range[i], want_name, parms, result, show, inout)
end
end
else
decorate_value(parms, out_current, 1, true)
result = valinfo[1].show
end
if parms.opt_output_number_only then
return result
end
return result .. preunit .. extra
end
local function make_output_single(parms, in_unit_table, out_unit_table)
-- Return true, item where item = wikitext of the conversion result
-- for a single output (which is not a combination or a multiple);
-- or return false, t where t is an error message table.
if parms.opt_order_out and in_unit_table.unitcode == out_unit_table.unitcode then
out_unit_table.valinfo = in_unit_table.valinfo
else
out_unit_table.valinfo = collection()
for _, v in ipairs(in_unit_table.valinfo) do
local success, info = cvtround(parms, v, in_unit_table, out_unit_table)
if not success then return false, info end
out_unit_table.valinfo:add(info)
end
end
return true, process_one_output(parms, out_unit_table)
end
local function make_output_multiple(parms, in_unit_table, out_unit_table)
-- Return true, item where item = wikitext of the conversion result
-- for an output which is a multiple (like 'ftin');
-- or return false, t where t is an error message table.
local inout = out_unit_table.inout -- normally 'out' but can be 'in' for order=out
local multiple = out_unit_table.multiple -- table of scaling factors (will not be nil)
local combos = out_unit_table.combination -- table of unit tables (will not be nil)
local abbr = parms.abbr
local abbr_org = parms.abbr_org
local disp = parms.disp
local want_name = (abbr_org == nil and (disp == 'or' or disp == 'slash')) or
not (abbr == 'on' or abbr == inout or abbr == 'mos')
local want_link = (parms.lk == 'on' or parms.lk == inout)
local mid = parms.opt_flip and parms.mid or ''
local sep1 = '&amp;nbsp;'
local sep2 = ' '
if parms.opt_adjectival and want_name then
sep1 = '-'
sep2 = '-'
end
local do_spell = parms.opt_spell_out
parms.opt_spell_out = nil -- so the call to cvtround does not spell the value
local function make_result(info, isfirst)
local fmt, outvalue, sign
local results = {}
for i = 1, #combos do
local tfrac, thisvalue, strforce
local out_current = combos[i]
out_current.inout = inout
local scale = multiple[i]
if i == 1 then -- least significant unit ('in' from 'ftin')
local decimals
out_current.frac = out_unit_table.frac
local success, outinfo = cvtround(parms, info, in_unit_table, out_current)
if not success then return false, outinfo end
if isfirst then
out_unit_table.valinfo = { outinfo } -- in case output value of first least significant unit is needed
end
sign = outinfo.sign
tfrac = outinfo.fraction_table
if outinfo.is_scientific then
strforce = outinfo.show
decimals = ''
elseif tfrac then
decimals = ''
else
local show = outinfo.show -- number as a string in local language
local p1, p2 = show:find(numdot, 1, true)
decimals = p1 and show:sub(p2 + 1) or '' -- text after numdot, if any
end
fmt = '%.' .. ulen(decimals) .. 'f' -- to reproduce precision
if decimals == '' then
if tfrac then
outvalue = floor(outinfo.raw_absvalue) -- integer part only; fraction added later
else
outvalue = floor(outinfo.raw_absvalue + 0.5) -- keep all integer digits of least significant unit
end
else
outvalue = outinfo.absvalue
end
end
if scale then
outvalue, thisvalue = divide(outvalue, scale)
else
thisvalue = outvalue
end
local id
if want_name then
if varname then
local clean
if strforce or tfrac then
clean = '.1' -- dummy value to force name for floating point
else
clean = format(fmt, thisvalue)
end
id = variable_name(clean, out_current)
else
local key = 'name2'
if parms.opt_adjectival then
key = 'name1'
elseif tfrac then
if thisvalue == 0 then
key = 'name1'
end
elseif parms.opt_singular then
if 0 &lt; thisvalue and thisvalue &lt; 1.0001 then
key = 'name1'
end
else
if thisvalue == 1 then
key = 'name1'
end
end
id = out_current[key]
end
else
id = out_current['symbol']
end
if i == 1 and omit_separator(id) then
-- Testing the id of the least significant unit should be sufficient.
sep1 = ''
sep2 = ''
end
if want_link then
local link = out_current.link
if link then
id = make_link(link, id, out_current)
end
end
local strval
local spell_inout = (i == #combos or outvalue == 0) and inout or '' -- trick so the last value processed (first displayed) has uppercase, if requested
if strforce and outvalue == 0 then
sign = '' -- any sign is in strforce
strval = strforce -- show small values in scientific notation; will only use least significant unit
elseif tfrac then
local wholestr = (thisvalue &gt; 0) and tostring(thisvalue) or nil
strval = format_fraction(parms, spell_inout, false, wholestr, tfrac.numstr, tfrac.denstr, do_spell)
else
strval = (thisvalue == 0) and from_en('0') or with_separator(parms, format(fmt, thisvalue))
if do_spell then
strval = spell_number(parms, spell_inout, strval) or strval
end
end
table.insert(results, strval .. sep1 .. id)
if outvalue == 0 then
break
end
fmt = '%.0f' -- only least significant unit can have a non-integral value
end
local reversed, count = {}, #results
for i = 1, count do
reversed[i] = results[count + 1 - i]
end
return true, sign .. table.concat(reversed, sep2)
end
local valinfo = in_unit_table.valinfo
local success, result = make_result(valinfo[1], true)
if not success then return false, result end
local range = parms.range
if range then
for i = 1, range.n do
local success, result2 = make_result(valinfo[i+1])
if not success then return false, result2 end
result = range_text(range[i], want_name, parms, result, result2, inout)
end
end
return true, result .. mid
end
local function process(parms, in_unit_table, out_unit_table)
-- Return true, s, outunit where s = final wikitext result,
-- or return false, t where t is an error message table.
linked_pages = {}
local success, bad_output
local bad_input_mcode = in_unit_table.bad_mcode -- nil if input unit is a valid convert unit
local out_unit = parms.out_unit
if out_unit == nil or out_unit == '' or type(out_unit) == 'function' then
if bad_input_mcode or parms.opt_input_unit_only then
bad_output = ''
else
local getdef = type(out_unit) == 'function' and out_unit or get_default
success, out_unit = getdef(in_unit_table.valinfo[1].value, in_unit_table)
parms.out_unit = out_unit
if not success then
bad_output = out_unit
end
end
end
if not bad_output and not out_unit_table then
success, out_unit_table = lookup(parms, out_unit, 'any_combination')
if success then
local mismatch = check_mismatch(in_unit_table, out_unit_table)
if mismatch then
bad_output = mismatch
end
else
bad_output = out_unit_table
end
end
local lhs, rhs
local flipped = parms.opt_flip and not bad_input_mcode
if bad_output then
rhs = (bad_output == '') and '' or message(parms, bad_output)
elseif parms.opt_input_unit_only then
rhs = ''
else
local combos -- nil (for 'ft' or 'ftin'), or table of unit tables (for 'm ft')
if not out_unit_table.multiple then -- nil/false ('ft' or 'm ft'), or table of factors ('ftin')
combos = out_unit_table.combination
end
local frac = parms.frac -- nil or denominator of fraction for output values
if frac then
-- Apply fraction to the unit (if only one), or to non-SI units (if a combination),
-- except that if a precision is also specified, the fraction only applies to
-- the hand unit; that allows the following result:
-- {{convert|156|cm|in hand|1|frac=2}} → 156 centimetres (61.4 in; 15.1½ hands)
-- However, the following is handled elsewhere as a special case:
-- {{convert|156|cm|hand in|1|frac=2}} → 156 centimetres (15.1½ hands; 61½ in)
if combos then
local precision = parms.precision
for _, unit in ipairs(combos) do
if unit.builtin == 'hand' or (not precision and not unit.prefixes) then
unit.frac = frac
end
end
else
out_unit_table.frac = frac
end
end
local outputs = {}
local imax = combos and #combos or 1 -- 1 (single unit) or number of unit tables
if imax == 1 then
parms.opt_order_out = nil -- only useful with an output combination
end
if not flipped and not parms.opt_order_out then
-- Process left side first so any duplicate links (from lk=on) are suppressed
-- on right. Example: {{convert|28|e9pc|e9ly|abbr=off|lk=on}}
lhs = process_input(parms, in_unit_table)
end
for i = 1, imax do
local success, item
local out_current = combos and combos[i] or out_unit_table
out_current.inout = 'out'
if i == 1 then
if imax &gt; 1 and out_current.builtin == 'hand' then
out_current.out_next = combos[2] -- built-in hand can influence next unit in a combination
end
if parms.opt_order_out then
out_current.inout = 'in'
end
end
if out_current.multiple then
success, item = make_output_multiple(parms, in_unit_table, out_current)
else
success, item = make_output_single(parms, in_unit_table, out_current)
end
if not success then return false, item end
outputs[i] = item
end
if parms.opt_order_out then
lhs = outputs[1]
table.remove(outputs, 1)
end
local sep = parms.table_joins and parms.table_joins[2] or parms.join_between
rhs = table.concat(outputs, sep)
end
if flipped or not lhs then
local input = process_input(parms, in_unit_table)
if flipped then
lhs = rhs
rhs = input
else
lhs = input
end
end
if parms.join_before then
lhs = parms.join_before .. lhs
end
local wikitext
if bad_input_mcode then
if bad_input_mcode == '' then
wikitext = lhs
else
wikitext = lhs .. message(parms, bad_input_mcode)
end
elseif parms.table_joins then
wikitext = parms.table_joins[1] .. lhs .. parms.table_joins[2] .. rhs
else
wikitext = lhs .. parms.joins[1] .. rhs .. parms.joins[2]
end
if parms.warnings and not bad_input_mcode then
wikitext = wikitext .. parms.warnings
end
return true, wikitext, out_unit_table
end
local function main_convert(frame)
-- Do convert, and if needed, do it again with higher default precision.
local parms = { frame = frame } -- will hold template arguments, after translation
set_config(frame.args)
local success, result = get_parms(parms, frame:getParent().args)
if success then
if type(result) ~= 'table' then
return tostring(result)
end
local in_unit_table = result
local out_unit_table
for _ = 1, 2 do -- use counter so cannot get stuck repeating convert
success, result, out_unit_table = process(parms, in_unit_table, out_unit_table)
if success and parms.do_convert_again then
parms.do_convert_again = false
else
break
end
end
end
-- If input=x gives a problem, the result should be just the user input
-- (if x is a property like P123 it has been replaced with '').
-- An unknown input unit would display the input and an error message
-- with success == true at this point.
-- Also, can have success == false with a message that outputs an empty string.
if parms.input_text then
if success and not parms.have_problem then
return result
end
local cat
if parms.tracking then
-- Add a tracking category using the given text as the category sort key.
-- There is currently only one type of tracking, but in principle multiple
-- items could be tracked, using different sort keys for convenience.
cat = wanted_category('tracking', parms.tracking)
end
return parms.input_text .. (cat or '')
end
return success and result or message(parms, result)
end
local function _unit(unitcode, options)
-- Helper function for Module:Val to look up a unit.
-- Parameter unitcode must be a string to identify the wanted unit.
-- Parameter options must be nil or a table with optional fields:
-- value = number (for sort key; default value is 1)
-- scaled_top = nil for a normal unit, or a number for a unit which is
-- the denominator of a per unit (for sort key)
-- si = { 'symbol', 'link' }
-- (a table with two strings) to make an SI unit
-- that will be used for the look up
-- link = true if result should be [[linked]]
-- sort = 'on' or 'debug' if result should include a sort key in a
-- span element ('debug' makes the key visible)
-- name = true for the name of the unit instead of the symbol
-- us = true for the US spelling of the unit, if any
-- Return nil if unitcode is not a non-empty string.
-- Otherwise return a table with fields:
-- text = requested symbol or name of unit, optionally linked
-- scaled_value = input value adjusted by unit scale; used for sort key
-- sortspan = span element with sort key like that provided by {{ntsh}},
-- calculated from the result of converting value
-- to a base unit with scale 1.
-- unknown = true if the unitcode was not known
unitcode = strip(unitcode)
if unitcode == nil or unitcode == '' then
return nil
end
set_config({})
linked_pages = {}
options = options or {}
local parms = {
abbr = options.name and 'off' or 'on',
lk = options.link and 'on' or nil,
opt_sp_us = options.us and true or nil,
opt_ignore_error = true, -- do not add pages using this function to 'what links here' for Module:Convert/extra
opt_sortable_on = options.sort == 'on' or options.sort == 'debug',
opt_sortable_debug = options.sort == 'debug',
}
if options.si then
-- Make a dummy table of units (just one unit) for lookup to use.
-- This makes lookup recognize any SI prefix in the unitcode.
local symbol = options.si[1] or '?'
parms.unittable = { [symbol] = {
_name1 = symbol,
_name2 = symbol,
_symbol = symbol,
utype = symbol,
scale = symbol == 'g' and 0.001 or 1,
prefixes = 1,
default = symbol,
link = options.si[2],
}}
end
local success, unit_table = lookup(parms, unitcode, 'no_combination')
if not success then
unit_table = setmetatable({
symbol = unitcode, name2 = unitcode, utype = unitcode,
scale = 1, default = '', defkey = '', linkey = '' }, unit_mt)
end
local value = tonumber(options.value) or 1
local clean = tostring(abs(value))
local info = {
value = value,
altvalue = value,
singular = (clean == '1'),
clean = clean,
show = clean,
}
unit_table.inout = 'in'
unit_table.valinfo = { info }
local sortspan, scaled_value
if options.sort then
sortspan, scaled_value = make_table_or_sort(parms, value, info, unit_table, options.scaled_top)
end
return {
text = make_id(parms, 1, unit_table),
sortspan = sortspan,
scaled_value = scaled_value,
unknown = not success and true or nil,
}
end
return { convert = main_convert, _unit = _unit }</text>
<sha1>6nhyls1bjei1i8jz3n9qzompi7679gd</sha1>
</revision>
</page>
<page>
<title>Module:Convert/data</title>
<ns>828</ns>
<id>38570725</id>
<revision>
<id>814618344</id>
<parentid>795876381</parentid>
<timestamp>2017-12-09T22:33:18Z</timestamp>
<contributor>
<username>Johnuniq</username>
<id>6036800</id>
</contributor>
<comment>update from sandbox per [[Template talk:Convert#Module version 20]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="175975">-- Conversion data used by [[Module:Convert]] which uses mw.loadData() for
-- read-only access to this module so that it is loaded only once per page.
-- See [[:en:Template:Convert/Transwiki guide]] if copying to another wiki.
--
-- These data tables follow:
-- all_units all properties for a unit, including default output
-- default_exceptions exceptions for default output ('kg' and 'g' have different defaults)
-- link_exceptions exceptions for links ('kg' and 'g' have different links)
--
-- These tables are generated by a script which reads the wikitext of a page that
-- documents the required properties of each unit; see [[:en:Module:Convert/doc]].
---------------------------------------------------------------------------
-- Do not change the data in this table because it is created by running --
-- a script that reads the wikitext from a wiki page (see note above). --
---------------------------------------------------------------------------
local all_units = {
[&quot;Gy&quot;] = {
_name1 = &quot;gray&quot;,
_symbol = &quot;Gy&quot;,
utype = &quot;absorbed radiation dose&quot;,
scale = 1,
prefixes = 1,
default = &quot;rad&quot;,
link = &quot;Gray (unit)&quot;,
},
[&quot;rad&quot;] = {
_name1 = &quot;rad&quot;,
_symbol = &quot;rad&quot;,
utype = &quot;absorbed radiation dose&quot;,
scale = 0.01,
prefixes = 1,
default = &quot;Gy&quot;,
link = &quot;Rad (unit)&quot;,
},
[&quot;cm/s2&quot;] = {
name1 = &quot;centimetre per second squared&quot;,
name1_us = &quot;centimeter per second squared&quot;,
name2 = &quot;centimetres per second squared&quot;,
name2_us = &quot;centimeters per second squared&quot;,
symbol = &quot;cm/s&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;acceleration&quot;,
scale = 0.01,
default = &quot;ft/s2&quot;,
link = &quot;Gal (unit)&quot;,
},
[&quot;ft/s2&quot;] = {
name1 = &quot;foot per second squared&quot;,
name2 = &quot;feet per second squared&quot;,
symbol = &quot;ft/s&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;acceleration&quot;,
scale = 0.3048,
default = &quot;m/s2&quot;,
},
[&quot;g0&quot;] = {
name1 = &quot;standard gravity&quot;,
name2 = &quot;standard gravities&quot;,
symbol = &quot;''g&lt;sub&gt;0&lt;/sub&gt;''&quot;,
utype = &quot;acceleration&quot;,
scale = 9.80665,
default = &quot;m/s2&quot;,
},
[&quot;km/hs&quot;] = {
name1 = &quot;kilometre per hour per second&quot;,
name1_us = &quot;kilometer per hour per second&quot;,
name2 = &quot;kilometres per hour per second&quot;,
name2_us = &quot;kilometers per hour per second&quot;,
symbol = &quot;km/(h⋅s)&quot;,
utype = &quot;acceleration&quot;,
scale = 0.27777777777777779,
default = &quot;mph/s&quot;,
link = &quot;Acceleration&quot;,
},
[&quot;km/s2&quot;] = {
name1 = &quot;kilometre per second squared&quot;,
name1_us = &quot;kilometer per second squared&quot;,
name2 = &quot;kilometres per second squared&quot;,
name2_us = &quot;kilometers per second squared&quot;,
symbol = &quot;km/s&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;acceleration&quot;,
scale = 1000,
default = &quot;mph/s&quot;,
link = &quot;Acceleration&quot;,
},
[&quot;m/s2&quot;] = {
name1 = &quot;metre per second squared&quot;,
name1_us = &quot;meter per second squared&quot;,
name2 = &quot;metres per second squared&quot;,
name2_us = &quot;meters per second squared&quot;,
symbol = &quot;m/s&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;acceleration&quot;,
scale = 1,
default = &quot;ft/s2&quot;,
},
[&quot;mph/s&quot;] = {
name1 = &quot;mile per hour per second&quot;,
name2 = &quot;miles per hour per second&quot;,
symbol = &quot;mph/s&quot;,
utype = &quot;acceleration&quot;,
scale = 0.44704,
default = &quot;km/hs&quot;,
link = &quot;Acceleration&quot;,
},
[&quot;km/h/s&quot;] = {
target = &quot;km/hs&quot;,
},
[&quot;standard gravity&quot;] = {
target = &quot;g0&quot;,
},
[&quot;1000sqft&quot;] = {
name1 = &quot;thousand square feet&quot;,
name2 = &quot;thousand square feet&quot;,
symbol = &quot;1000&amp;nbsp;sq&amp;nbsp;ft&quot;,
utype = &quot;area&quot;,
scale = 92.90304,
default = &quot;m2&quot;,
link = &quot;Square foot&quot;,
},
[&quot;a&quot;] = {
_name1 = &quot;are&quot;,
_symbol = &quot;a&quot;,
utype = &quot;area&quot;,
scale = 100,
prefixes = 1,
default = &quot;sqft&quot;,
link = &quot;Hectare#Are&quot;,
},
[&quot;acre&quot;] = {
symbol = &quot;acre&quot;,
usename = 1,
utype = &quot;area&quot;,
scale = 4046.8564224,
default = &quot;ha&quot;,
},
[&quot;acre-sing&quot;] = {
target = &quot;acre&quot;,
},
[&quot;arpent&quot;] = {
symbol = &quot;arpent&quot;,
usename = 1,
utype = &quot;area&quot;,
scale = 3418.89,
default = &quot;ha&quot;,
},
[&quot;cda&quot;] = {
name1 = &quot;cuerda&quot;,
symbol = &quot;cda&quot;,
utype = &quot;area&quot;,
scale = 3930.395625,
default = &quot;ha acre&quot;,
},
[&quot;daa&quot;] = {
name1 = &quot;decare&quot;,
symbol = &quot;daa&quot;,
utype = &quot;area&quot;,
scale = 1000,
default = &quot;km2 sqmi&quot;,
},
[&quot;dunam&quot;] = {
symbol = &quot;dunam&quot;,
usename = 1,
utype = &quot;area&quot;,
scale = 1000,
default = &quot;km2 sqmi&quot;,
},
[&quot;dunum&quot;] = {
symbol = &quot;dunum&quot;,
usename = 1,
utype = &quot;area&quot;,
scale = 1000,
default = &quot;km2 sqmi&quot;,
link = &quot;Dunam&quot;,
},
[&quot;ha&quot;] = {
name1 = &quot;hectare&quot;,
symbol = &quot;ha&quot;,
utype = &quot;area&quot;,
scale = 10000,
default = &quot;acre&quot;,
},
[&quot;hectare&quot;] = {
name1 = &quot;hectare&quot;,
symbol = &quot;ha&quot;,
usename = 1,
utype = &quot;area&quot;,
scale = 10000,
default = &quot;acre&quot;,
},
[&quot;Irish acre&quot;] = {
name1 = &quot;Irish acre&quot;,
symbol = &quot;Irish&amp;nbsp;acres&quot;,
utype = &quot;area&quot;,
scale = 6555.2385024,
default = &quot;ha&quot;,
link = &quot;Acre (Irish)&quot;,
},
[&quot;m2&quot;] = {
_name1 = &quot;square metre&quot;,
_name1_us= &quot;square meter&quot;,
_symbol = &quot;m&lt;sup&gt;2&lt;/sup&gt;&quot;,
prefix_position= 8,
utype = &quot;area&quot;,
scale = 1,
prefixes = 2,
default = &quot;sqft&quot;,
link = &quot;Square metre&quot;,
},
[&quot;pondemaat&quot;] = {
name1 = &quot;pondemaat&quot;,
name2 = &quot;pondemaat&quot;,
symbol = &quot;pond&quot;,
utype = &quot;area&quot;,
scale = 3674.363358816,
default = &quot;m2&quot;,
link = &quot;:nl:pondemaat&quot;,
},
[&quot;pyeong&quot;] = {
name2 = &quot;pyeong&quot;,
symbol = &quot;pyeong&quot;,
usename = 1,
utype = &quot;area&quot;,
scale = 3.3057851239669422,
default = &quot;m2&quot;,
},
[&quot;rai&quot;] = {
name2 = &quot;rai&quot;,
symbol = &quot;rai&quot;,
utype = &quot;area&quot;,
scale = 1600,
default = &quot;m2&quot;,
link = &quot;Rai (unit)&quot;,
},
[&quot;rood&quot;] = {
symbol = &quot;rood&quot;,
usename = 1,
utype = &quot;area&quot;,
scale = 1011.7141056,
default = &quot;sqft sqm&quot;,
subdivs = { [&quot;sqperch&quot;] = { 40, default = &quot;m2&quot; } },
link = &quot;Rood (unit)&quot;,
},
[&quot;sqfoot&quot;] = {
name1 = &quot;square foot&quot;,
name2 = &quot;square foot&quot;,
symbol = &quot;sq&amp;nbsp;ft&quot;,
utype = &quot;area&quot;,
scale = 0.09290304,
default = &quot;m2&quot;,
},
[&quot;sqft&quot;] = {
name1 = &quot;square foot&quot;,
name2 = &quot;square feet&quot;,
symbol = &quot;sq&amp;nbsp;ft&quot;,
utype = &quot;area&quot;,
scale = 0.09290304,
default = &quot;m2&quot;,
},
[&quot;sqin&quot;] = {
name1 = &quot;square inch&quot;,
name2 = &quot;square inches&quot;,
symbol = &quot;sq&amp;nbsp;in&quot;,
utype = &quot;area&quot;,
scale = 0.00064516,
default = &quot;cm2&quot;,
},
[&quot;sqmi&quot;] = {
name1 = &quot;square mile&quot;,
symbol = &quot;sq&amp;nbsp;mi&quot;,
utype = &quot;area&quot;,
scale = 2589988.110336,
default = &quot;km2&quot;,
},
[&quot;sqnmi&quot;] = {
name1 = &quot;square nautical mile&quot;,
symbol = &quot;sq&amp;nbsp;nmi&quot;,
utype = &quot;area&quot;,
scale = 3429904,
default = &quot;km2 sqmi&quot;,
link = &quot;Nautical mile&quot;,
},
[&quot;sqperch&quot;] = {
name2 = &quot;perches&quot;,
symbol = &quot;perch&quot;,
usename = 1,
utype = &quot;area&quot;,
scale = 25.29285264,
default = &quot;sqm&quot;,
link = &quot;Perch (unit)#Area&quot;,
},
[&quot;sqverst&quot;] = {
symbol = &quot;square verst&quot;,
usename = 1,
utype = &quot;area&quot;,
scale = 1138062.24,
default = &quot;km2 sqmi&quot;,
link = &quot;Verst&quot;,
},
[&quot;sqyd&quot;] = {
name1 = &quot;square yard&quot;,
symbol = &quot;sq&amp;nbsp;yd&quot;,
utype = &quot;area&quot;,
scale = 0.83612736,
default = &quot;m2&quot;,
},
[&quot;tsubo&quot;] = {
name2 = &quot;tsubo&quot;,
symbol = &quot;tsubo&quot;,
usename = 1,
utype = &quot;area&quot;,
scale = 3.3057851239669422,
default = &quot;m2&quot;,
link = &quot;Japanese units of measurement#Area&quot;,
},
[&quot;acres&quot;] = {
target = &quot;acre&quot;,
},
[&quot;are&quot;] = {
target = &quot;a&quot;,
},
[&quot;decare&quot;] = {
target = &quot;daa&quot;,
},
[&quot;foot2&quot;] = {
target = &quot;sqfoot&quot;,
},
[&quot;ft2&quot;] = {
target = &quot;sqft&quot;,
},
[&quot;in2&quot;] = {
target = &quot;sqin&quot;,
symbol = &quot;in&lt;sup&gt;2&lt;/sup&gt;&quot;,
},
[&quot;km²&quot;] = {
target = &quot;km2&quot;,
},
[&quot;mi2&quot;] = {
target = &quot;sqmi&quot;,
},
[&quot;million acre&quot;] = {
target = &quot;e6acre&quot;,
},
[&quot;million acres&quot;] = {
target = &quot;e6acre&quot;,
},
[&quot;million hectares&quot;] = {
target = &quot;e6ha&quot;,
},
[&quot;m²&quot;] = {
target = &quot;m2&quot;,
},
[&quot;nmi2&quot;] = {
target = &quot;sqnmi&quot;,
},
[&quot;pond&quot;] = {
target = &quot;pondemaat&quot;,
},
[&quot;sq arp&quot;] = {
target = &quot;arpent&quot;,
},
[&quot;sqkm&quot;] = {
target = &quot;km2&quot;,
},
[&quot;sqm&quot;] = {
target = &quot;m2&quot;,
},
[&quot;square verst&quot;] = {
target = &quot;sqverst&quot;,
},
[&quot;verst2&quot;] = {
target = &quot;sqverst&quot;,
},
[&quot;yd2&quot;] = {
target = &quot;sqyd&quot;,
},
[&quot;m2/ha&quot;] = {
name1 = &quot;square metre per hectare&quot;,
name1_us = &quot;square meter per hectare&quot;,
name2 = &quot;square metres per hectare&quot;,
name2_us = &quot;square meters per hectare&quot;,
symbol = &quot;m&lt;sup&gt;2&lt;/sup&gt;/ha&quot;,
utype = &quot;area per unit area&quot;,
scale = 0.0001,
default = &quot;sqft/acre&quot;,
link = &quot;Basal area&quot;,
},
[&quot;sqft/acre&quot;] = {
name1 = &quot;square foot per acre&quot;,
name2 = &quot;square feet per acre&quot;,
symbol = &quot;sq&amp;nbsp;ft/acre&quot;,
utype = &quot;area per unit area&quot;,
scale = 2.295684113865932e-5,
default = &quot;m2/ha&quot;,
},
[&quot;cent&quot;] = {
name1 = &quot;cent&quot;,
symbol = &quot;¢&quot;,
utype = &quot;cent&quot;,
scale = 1,
default = &quot;cent&quot;,
link = &quot;Cent (currency)&quot;,
},
[&quot;¢&quot;] = {
target = &quot;cent&quot;,
},
[&quot;A.h&quot;] = {
name1 = &quot;ampere-hour&quot;,
symbol = &quot;A⋅h&quot;,
utype = &quot;charge&quot;,
scale = 3600,
default = &quot;coulomb&quot;,
},
[&quot;coulomb&quot;] = {
_name1 = &quot;coulomb&quot;,
_symbol = &quot;C&quot;,
utype = &quot;charge&quot;,
scale = 1,
prefixes = 1,
default = &quot;e&quot;,
link = &quot;Coulomb&quot;,
},
[&quot;e&quot;] = {
name1 = &quot;elementary charge&quot;,
symbol = &quot;''e''&quot;,
utype = &quot;charge&quot;,
scale = 1.602176487e-19,
default = &quot;coulomb&quot;,
},
[&quot;g-mol&quot;] = {
name1 = &quot;gram-mole&quot;,
symbol = &quot;g&amp;#8209;mol&quot;,
utype = &quot;chemical amount&quot;,
scale = 1,
default = &quot;lbmol&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;gmol&quot;] = {
name1 = &quot;gram-mole&quot;,
symbol = &quot;gmol&quot;,
utype = &quot;chemical amount&quot;,
scale = 1,
default = &quot;lbmol&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;kmol&quot;] = {
name1 = &quot;kilomole&quot;,
symbol = &quot;kmol&quot;,
utype = &quot;chemical amount&quot;,
scale = 1000,
default = &quot;lbmol&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;lb-mol&quot;] = {
name1 = &quot;pound-mole&quot;,
symbol = &quot;lb&amp;#8209;mol&quot;,
utype = &quot;chemical amount&quot;,
scale = 453.59237,
default = &quot;mol&quot;,
link = &quot;Mole (unit)#Other units called \&quot;mole\&quot;&quot;,
},
[&quot;lbmol&quot;] = {
name1 = &quot;pound-mole&quot;,
symbol = &quot;lbmol&quot;,
utype = &quot;chemical amount&quot;,
scale = 453.59237,
default = &quot;mol&quot;,
link = &quot;Mole (unit)#Other units called \&quot;mole\&quot;&quot;,
},
[&quot;mol&quot;] = {
name1 = &quot;mole&quot;,
symbol = &quot;mol&quot;,
utype = &quot;chemical amount&quot;,
scale = 1,
default = &quot;lbmol&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;kgCO2/L&quot;] = {
name1 = &quot;kilogram per litre&quot;,
name1_us = &quot;kilogram per liter&quot;,
name2 = &quot;kilograms per litre&quot;,
name2_us = &quot;kilograms per liter&quot;,
symbol = &quot;kg(CO&lt;sub&gt;2&lt;/sub&gt;)/L&quot;,
utype = &quot;co2 per unit volume&quot;,
scale = 1000,
default = &quot;lbCO2/USgal&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;lbCO2/USgal&quot;] = {
name1 = &quot;pound per US gallon&quot;,
name2 = &quot;pounds per US gallon&quot;,
symbol = &quot;lbCO2/US&amp;nbsp;gal&quot;,
utype = &quot;co2 per unit volume&quot;,
scale = 119.82642731689663,
default = &quot;kgCO2/L&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;oz/lb&quot;] = {
per = { &quot;oz&quot;, &quot;lb&quot; },
utype = &quot;concentration&quot;,
default = &quot;mg/kg&quot;,
},
[&quot;mg/kg&quot;] = {
per = { &quot;mg&quot;, &quot;kg&quot; },
utype = &quot;concentration&quot;,
default = &quot;oz/lb&quot;,
},
[&quot;$/acre&quot;] = {
per = { &quot;$&quot;, &quot;acre&quot; },
utype = &quot;cost $ per unit area&quot;,
default = &quot;$/ha&quot;,
},
[&quot;$/ha&quot;] = {
per = { &quot;$&quot;, &quot;ha&quot; },
utype = &quot;cost $ per unit area&quot;,
default = &quot;$/acre&quot;,
},
[&quot;$/m2&quot;] = {
per = { &quot;$&quot;, &quot;m2&quot; },
utype = &quot;cost $ per unit area&quot;,
default = &quot;$/sqft&quot;,
},
[&quot;$/sqft&quot;] = {
per = { &quot;$&quot;, &quot;sqft&quot; },
utype = &quot;cost $ per unit area&quot;,
default = &quot;$/m2&quot;,
},
[&quot;$/km&quot;] = {
per = { &quot;$&quot;, &quot;km&quot; },
utype = &quot;cost $ per unit length&quot;,
default = &quot;$/mi&quot;,
},
[&quot;$/mi&quot;] = {
per = { &quot;$&quot;, &quot;mi&quot; },
utype = &quot;cost $ per unit length&quot;,
default = &quot;$/km&quot;,
},
[&quot;$/kg&quot;] = {
per = { &quot;$&quot;, &quot;kg&quot; },
utype = &quot;cost $ per unit mass&quot;,
default = &quot;$/lb&quot;,
},
[&quot;$/g&quot;] = {
per = { &quot;$&quot;, &quot;g&quot; },
utype = &quot;cost $ per unit mass&quot;,
default = &quot;$/lb&quot;,
},
[&quot;$/lb&quot;] = {
per = { &quot;$&quot;, &quot;lb&quot; },
utype = &quot;cost $ per unit mass&quot;,
default = &quot;$/kg&quot;,
},
[&quot;$/oz&quot;] = {
per = { &quot;$&quot;, &quot;oz&quot; },
utype = &quot;cost $ per unit mass&quot;,
default = &quot;$/g&quot;,
},
[&quot;$/ozt&quot;] = {
per = { &quot;$&quot;, &quot;ozt&quot; },
utype = &quot;cost $ per unit mass&quot;,
default = &quot;$/kg&quot;,
},
[&quot;$/m3&quot;] = {
per = { &quot;$&quot;, &quot;m3&quot; },
utype = &quot;cost $ per unit volume&quot;,
default = &quot;$/oilbbl&quot;,
},
[&quot;$/oilbbl&quot;] = {
per = { &quot;$&quot;, &quot;oilbbl&quot; },
utype = &quot;cost $ per unit volume&quot;,
default = &quot;$/m3&quot;,
},
[&quot;£/acre&quot;] = {
per = { &quot;£&quot;, &quot;acre&quot; },
utype = &quot;cost £ per unit area&quot;,
default = &quot;£/ha&quot;,
},
[&quot;£/ha&quot;] = {
per = { &quot;£&quot;, &quot;ha&quot; },
utype = &quot;cost £ per unit area&quot;,
default = &quot;£/acre&quot;,
},
[&quot;g/dm3&quot;] = {
name1 = &quot;gram per cubic decimetre&quot;,
name1_us = &quot;gram per cubic decimeter&quot;,
name2 = &quot;grams per cubic decimetre&quot;,
name2_us = &quot;grams per cubic decimeter&quot;,
symbol = &quot;g/dm&lt;sup&gt;3&lt;/sup&gt;&quot;,
utype = &quot;density&quot;,
scale = 1,
default = &quot;kg/m3&quot;,
link = &quot;Density&quot;,
},
[&quot;g/L&quot;] = {
name1 = &quot;gram per litre&quot;,
name1_us = &quot;gram per liter&quot;,
name2 = &quot;grams per litre&quot;,
name2_us = &quot;grams per liter&quot;,
symbol = &quot;g/L&quot;,
utype = &quot;density&quot;,
scale = 1,
default = &quot;lb/cuin&quot;,
link = &quot;Density&quot;,
},
[&quot;g/mL&quot;] = {
name1 = &quot;gram per millilitre&quot;,
name1_us = &quot;gram per milliliter&quot;,
name2 = &quot;grams per millilitre&quot;,
name2_us = &quot;grams per milliliter&quot;,
symbol = &quot;g/mL&quot;,
utype = &quot;density&quot;,
scale = 1000,
default = &quot;lb/cuin&quot;,
link = &quot;Density&quot;,
},
[&quot;g/ml&quot;] = {
name1 = &quot;gram per millilitre&quot;,
name1_us = &quot;gram per milliliter&quot;,
name2 = &quot;grams per millilitre&quot;,
name2_us = &quot;grams per milliliter&quot;,
symbol = &quot;g/ml&quot;,
utype = &quot;density&quot;,
scale = 1000,
default = &quot;lb/cuin&quot;,
link = &quot;Density&quot;,
},
[&quot;kg/dm3&quot;] = {
name1 = &quot;kilogram per cubic decimetre&quot;,
name1_us = &quot;kilogram per cubic decimeter&quot;,
name2 = &quot;kilograms per cubic decimetre&quot;,
name2_us = &quot;kilograms per cubic decimeter&quot;,
symbol = &quot;kg/dm&lt;sup&gt;3&lt;/sup&gt;&quot;,
utype = &quot;density&quot;,
scale = 1000,
default = &quot;lb/cuft&quot;,
link = &quot;Density&quot;,
},
[&quot;kg/L&quot;] = {
name1 = &quot;kilogram per litre&quot;,
name1_us = &quot;kilogram per liter&quot;,
name2 = &quot;kilograms per litre&quot;,
name2_us = &quot;kilograms per liter&quot;,
symbol = &quot;kg/L&quot;,
utype = &quot;density&quot;,
scale = 1000,
default = &quot;lb/USgal&quot;,
link = &quot;Density&quot;,
},
[&quot;kg/l&quot;] = {
name1 = &quot;kilogram per litre&quot;,
name1_us = &quot;kilogram per liter&quot;,
name2 = &quot;kilograms per litre&quot;,
name2_us = &quot;kilograms per liter&quot;,
symbol = &quot;kg/l&quot;,
utype = &quot;density&quot;,
scale = 1000,
default = &quot;lb/USgal&quot;,
link = &quot;Density&quot;,
},
[&quot;kg/m3&quot;] = {
name1 = &quot;kilogram per cubic metre&quot;,
name1_us = &quot;kilogram per cubic meter&quot;,
name2 = &quot;kilograms per cubic metre&quot;,
name2_us = &quot;kilograms per cubic meter&quot;,
symbol = &quot;kg/m&lt;sup&gt;3&lt;/sup&gt;&quot;,
utype = &quot;density&quot;,
scale = 1,
default = &quot;lb/cuyd&quot;,
link = &quot;Density&quot;,
},
[&quot;lb/cuft&quot;] = {
name1 = &quot;pound per cubic foot&quot;,
name2 = &quot;pounds per cubic foot&quot;,
symbol = &quot;lb/cu&amp;nbsp;ft&quot;,
utype = &quot;density&quot;,
scale = 16.018463373960142,
default = &quot;g/cm3&quot;,
link = &quot;Density&quot;,
},
[&quot;lb/cuin&quot;] = {
name1 = &quot;pound per cubic inch&quot;,
name2 = &quot;pounds per cubic inch&quot;,
symbol = &quot;lb/cu&amp;nbsp;in&quot;,
utype = &quot;density&quot;,
scale = 27679.904710203122,
default = &quot;g/cm3&quot;,
link = &quot;Density&quot;,
},
[&quot;lb/cuyd&quot;] = {
name1 = &quot;pound per cubic yard&quot;,
name2 = &quot;pounds per cubic yard&quot;,
symbol = &quot;lb/cu&amp;nbsp;yd&quot;,
utype = &quot;density&quot;,
scale = 0.5932764212577829,
default = &quot;kg/m3&quot;,
link = &quot;Density&quot;,
},
[&quot;lb/impgal&quot;] = {
name1 = &quot;pound per imperial gallon&quot;,
name2 = &quot;pounds per imperial gallon&quot;,
symbol = &quot;lb/imp&amp;nbsp;gal&quot;,
utype = &quot;density&quot;,
scale = 99.776372663101697,
default = &quot;kg/L&quot;,
link = &quot;Density&quot;,
},
[&quot;lb/in3&quot;] = {
name1 = &quot;pound per cubic inch&quot;,
name2 = &quot;pounds per cubic inch&quot;,
symbol = &quot;lb/cu&amp;thinsp;in&quot;,
utype = &quot;density&quot;,
scale = 27679.904710203122,
default = &quot;g/cm3&quot;,
link = &quot;Density&quot;,
},
[&quot;lb/U.S.gal&quot;] = {
name1 = &quot;pound per U.S. gallon&quot;,
name2 = &quot;pounds per U.S. gallon&quot;,
symbol = &quot;lb/U.S.&amp;nbsp;gal&quot;,
utype = &quot;density&quot;,
scale = 119.82642731689663,
default = &quot;kg/L&quot;,
link = &quot;Density&quot;,
},
[&quot;lb/USbu&quot;] = {
name1 = &quot;pound per US bushel&quot;,
name2 = &quot;pounds per US bushel&quot;,
symbol = &quot;lb/US&amp;nbsp;bu&quot;,
utype = &quot;density&quot;,
scale = 12.871859780974471,
default = &quot;kg/m3&quot;,
link = &quot;Bushel&quot;,
},
[&quot;lb/USgal&quot;] = {
name1 = &quot;pound per US gallon&quot;,
name2 = &quot;pounds per US gallon&quot;,
symbol = &quot;lb/US&amp;nbsp;gal&quot;,
utype = &quot;density&quot;,
scale = 119.82642731689663,
default = &quot;kg/L&quot;,
link = &quot;Density&quot;,
},
[&quot;lbm/cuin&quot;] = {
name1 = &quot;pound mass per cubic inch&quot;,
name2 = &quot;pounds mass per cubic inch&quot;,
symbol = &quot;lbm/cu&amp;thinsp;in&quot;,
utype = &quot;density&quot;,
scale = 27679.904710203122,
default = &quot;g/cm3&quot;,
link = &quot;Density&quot;,
},
[&quot;mg/L&quot;] = {
name1 = &quot;milligram per litre&quot;,
name1_us = &quot;milligram per liter&quot;,
name2 = &quot;milligrams per litre&quot;,
name2_us = &quot;milligrams per liter&quot;,
symbol = &quot;mg/L&quot;,
utype = &quot;density&quot;,
scale = 0.001,
default = &quot;lb/cuin&quot;,
link = &quot;Density&quot;,
},
[&quot;oz/cuin&quot;] = {
name1 = &quot;ounce per cubic inch&quot;,
name2 = &quot;ounces per cubic inch&quot;,
symbol = &quot;oz/cu&amp;nbsp;in&quot;,
utype = &quot;density&quot;,
scale = 1729.9940443876951,
default = &quot;g/cm3&quot;,
link = &quot;Density&quot;,
},
[&quot;g/cm3&quot;] = {
per = { &quot;g&quot;, &quot;cm3&quot; },
utype = &quot;density&quot;,
default = &quot;lb/cuin&quot;,
},
[&quot;g/m3&quot;] = {
per = { &quot;g&quot;, &quot;m3&quot; },
utype = &quot;density&quot;,
default = &quot;lb/cuyd&quot;,
link = &quot;density&quot;,
},
[&quot;Mg/m3&quot;] = {
per = { &quot;Mg&quot;, &quot;m3&quot; },
utype = &quot;density&quot;,
default = &quot;lb/cuft&quot;,
},
[&quot;mg/l&quot;] = {
per = { &quot;mg&quot;, &quot;l&quot; },
utype = &quot;density&quot;,
default = &quot;oz/cuin&quot;,
},
[&quot;μg/dL&quot;] = {
per = { &quot;μg&quot;, &quot;dL&quot; },
utype = &quot;density&quot;,
default = &quot;lb/cuin&quot;,
},
[&quot;μg/l&quot;] = {
per = { &quot;μg&quot;, &quot;l&quot; },
utype = &quot;density&quot;,
default = &quot;oz/cuin&quot;,
},
[&quot;lb/ft3&quot;] = {
target = &quot;lb/cuft&quot;,
},
[&quot;lb/yd3&quot;] = {
target = &quot;lb/cuyd&quot;,
},
[&quot;lbm/in3&quot;] = {
target = &quot;lbm/cuin&quot;,
},
[&quot;mcg/dL&quot;] = {
target = &quot;μg/dL&quot;,
},
[&quot;oz/in3&quot;] = {
target = &quot;oz/cuin&quot;,
},
[&quot;ug/dL&quot;] = {
target = &quot;μg/dL&quot;,
},
[&quot;ug/l&quot;] = {
target = &quot;μg/l&quot;,
},
[&quot;B.O.T.U.&quot;] = {
name1 = &quot;Board of Trade Unit&quot;,
symbol = &quot;B.O.T.U.&quot;,
utype = &quot;energy&quot;,
scale = 3600000,
default = &quot;MJ&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;bboe&quot;] = {
name1 = &quot;barrel of oil equivalent&quot;,
name2 = &quot;barrels of oil equivalent&quot;,
symbol = &quot;bboe&quot;,
utype = &quot;energy&quot;,
scale = 6117863200,
default = &quot;GJ&quot;,
},
[&quot;BOE&quot;] = {
name1 = &quot;barrel of oil equivalent&quot;,
name2 = &quot;barrels of oil equivalent&quot;,
symbol = &quot;BOE&quot;,
utype = &quot;energy&quot;,
scale = 6117863200,
default = &quot;GJ&quot;,
},
[&quot;BTU&quot;] = {
name1 = &quot;British thermal unit&quot;,
symbol = &quot;BTU&quot;,
utype = &quot;energy&quot;,
scale = 1055.05585262,
default = &quot;kJ&quot;,
},
[&quot;Btu&quot;] = {
name1 = &quot;British thermal unit&quot;,
symbol = &quot;Btu&quot;,
utype = &quot;energy&quot;,
scale = 1055.05585262,
default = &quot;kJ&quot;,
},
[&quot;BTU-39F&quot;] = {
name1 = &quot;British thermal unit (39°F)&quot;,
name2 = &quot;British thermal units (39°F)&quot;,
symbol = &quot;BTU&lt;sub&gt;39°F&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1059.67,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;Btu-39F&quot;] = {
name1 = &quot;British thermal unit (39°F)&quot;,
name2 = &quot;British thermal units (39°F)&quot;,
symbol = &quot;Btu&lt;sub&gt;39°F&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1059.67,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;BTU-59F&quot;] = {
name1 = &quot;British thermal unit (59°F)&quot;,
name2 = &quot;British thermal units (59°F)&quot;,
symbol = &quot;BTU&lt;sub&gt;59°F&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1054.804,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;Btu-59F&quot;] = {
name1 = &quot;British thermal unit (59°F)&quot;,
name2 = &quot;British thermal units (59°F)&quot;,
symbol = &quot;Btu&lt;sub&gt;59°F&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1054.804,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;BTU-60F&quot;] = {
name1 = &quot;British thermal unit (60°F)&quot;,
name2 = &quot;British thermal units (60°F)&quot;,
symbol = &quot;BTU&lt;sub&gt;60°F&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1054.68,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;Btu-60F&quot;] = {
name1 = &quot;British thermal unit (60°F)&quot;,
name2 = &quot;British thermal units (60°F)&quot;,
symbol = &quot;Btu&lt;sub&gt;60°F&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1054.68,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;BTU-63F&quot;] = {
name1 = &quot;British thermal unit (63°F)&quot;,
name2 = &quot;British thermal units (63°F)&quot;,
symbol = &quot;BTU&lt;sub&gt;63°F&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1054.6,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;Btu-63F&quot;] = {
name1 = &quot;British thermal unit (63°F)&quot;,
name2 = &quot;British thermal units (63°F)&quot;,
symbol = &quot;Btu&lt;sub&gt;63°F&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1054.6,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;BTU-ISO&quot;] = {
name1 = &quot;British thermal unit (ISO)&quot;,
name2 = &quot;British thermal units (ISO)&quot;,
symbol = &quot;BTU&lt;sub&gt;ISO&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1055.056,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;Btu-ISO&quot;] = {
target = &quot;BTU-ISO&quot;,
},
[&quot;BTU-IT&quot;] = {
name1 = &quot;British thermal unit (IT)&quot;,
name2 = &quot;British thermal units (IT)&quot;,
symbol = &quot;BTU&lt;sub&gt;IT&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1055.05585262,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;Btu-IT&quot;] = {
name1 = &quot;British thermal unit (IT)&quot;,
name2 = &quot;British thermal units (IT)&quot;,
symbol = &quot;Btu&lt;sub&gt;IT&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1055.05585262,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;BTU-mean&quot;] = {
name1 = &quot;British thermal unit (mean)&quot;,
name2 = &quot;British thermal units (mean)&quot;,
symbol = &quot;BTU&lt;sub&gt;mean&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1055.87,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;Btu-mean&quot;] = {
name1 = &quot;British thermal unit (mean)&quot;,
name2 = &quot;British thermal units (mean)&quot;,
symbol = &quot;Btu&lt;sub&gt;mean&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1055.87,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;BTU-th&quot;] = {
name1 = &quot;British thermal unit (thermochemical)&quot;,
name2 = &quot;British thermal units (thermochemical)&quot;,
symbol = &quot;BTU&lt;sub&gt;th&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1054.35026444,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;Btu-th&quot;] = {
name1 = &quot;British thermal unit (thermochemical)&quot;,
name2 = &quot;British thermal units (thermochemical)&quot;,
symbol = &quot;Btu&lt;sub&gt;th&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1054.35026444,
default = &quot;kJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;Cal&quot;] = {
name1 = &quot;calorie&quot;,
symbol = &quot;Cal&quot;,
utype = &quot;energy&quot;,
scale = 4184,
default = &quot;kJ&quot;,
},
[&quot;cal&quot;] = {
name1 = &quot;calorie&quot;,
symbol = &quot;cal&quot;,
utype = &quot;energy&quot;,
scale = 4.184,
default = &quot;J&quot;,
},
[&quot;Cal-15&quot;] = {
name1 = &quot;Calorie (15°C)&quot;,
name2 = &quot;Calories (15°C)&quot;,
symbol = &quot;Cal&lt;sub&gt;15&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4185.8,
default = &quot;kJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;cal-15&quot;] = {
name1 = &quot;calorie (15°C)&quot;,
name2 = &quot;calories (15°C)&quot;,
symbol = &quot;cal&lt;sub&gt;15&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4.1858,
default = &quot;J&quot;,
link = &quot;Calorie&quot;,
},
[&quot;Cal-IT&quot;] = {
name1 = &quot;Calorie (International Steam Table)&quot;,
name2 = &quot;Calories (International Steam Table)&quot;,
symbol = &quot;Cal&lt;sub&gt;IT&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4186.8,
default = &quot;kJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;cal-IT&quot;] = {
name1 = &quot;calorie (International Steam Table)&quot;,
name2 = &quot;calories (International Steam Table)&quot;,
symbol = &quot;cal&lt;sub&gt;IT&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4.1868,
default = &quot;J&quot;,
link = &quot;Calorie&quot;,
},
[&quot;Cal-th&quot;] = {
name1 = &quot;Calorie (thermochemical)&quot;,
name2 = &quot;Calories (thermochemical)&quot;,
symbol = &quot;Cal&lt;sub&gt;th&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4184,
default = &quot;kJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;cal-th&quot;] = {
name1 = &quot;calorie (thermochemical)&quot;,
name2 = &quot;calories (thermochemical)&quot;,
symbol = &quot;cal&lt;sub&gt;th&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4.184,
default = &quot;J&quot;,
link = &quot;Calorie&quot;,
},
[&quot;ccatm&quot;] = {
name1 = &quot;cubic centimetre-atmosphere&quot;,
name1_us = &quot;cubic centimeter-atmosphere&quot;,
symbol = &quot;cc⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 0.101325,
default = &quot;mJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;CHU-IT&quot;] = {
name1 = &quot;Celsius heat unit (International Table)&quot;,
name2 = &quot;Celsius heat units (International Table)&quot;,
symbol = &quot;CHU&lt;sub&gt;IT&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 1899.100534716,
default = &quot;kJ&quot;,
link = &quot;Conversion of units&quot;,
},
[&quot;cm3atm&quot;] = {
name1 = &quot;cubic centimetre-atmosphere&quot;,
name1_us = &quot;cubic centimeter-atmosphere&quot;,
symbol = &quot;cm&lt;sup&gt;3&lt;/sup&gt;⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 0.101325,
default = &quot;mJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;cufootatm&quot;] = {
name1 = &quot;cubic foot of atmosphere&quot;,
name2 = &quot;cubic foot of atmosphere&quot;,
symbol = &quot;cu&amp;nbsp;ft&amp;nbsp;atm&quot;,
utype = &quot;energy&quot;,
scale = 2869.2044809344,
default = &quot;kJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;cufootnaturalgas&quot;] = {
name1 = &quot;cubic foot of natural gas&quot;,
name2 = &quot;cubic foot of natural gas&quot;,
symbol = &quot;cuftnaturalgas&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 1055055.85262,
default = &quot;MJ&quot;,
link = &quot;Conversion of units&quot;,
},
[&quot;cuftatm&quot;] = {
name1 = &quot;cubic foot of atmosphere&quot;,
name2 = &quot;cubic feet of atmosphere&quot;,
symbol = &quot;cu&amp;nbsp;ft&amp;nbsp;atm&quot;,
utype = &quot;energy&quot;,
scale = 2869.2044809344,
default = &quot;kJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;cuftnaturalgas&quot;] = {
name1 = &quot;cubic foot of natural gas&quot;,
name2 = &quot;cubic feet of natural gas&quot;,
symbol = &quot;cuftnaturalgas&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 1055055.85262,
default = &quot;MJ&quot;,
link = &quot;Conversion of units&quot;,
},
[&quot;cuydatm&quot;] = {
name1 = &quot;cubic yard of atmosphere&quot;,
name2 = &quot;cubic yards of atmosphere&quot;,
symbol = &quot;cu&amp;nbsp;yd&amp;nbsp;atm&quot;,
utype = &quot;energy&quot;,
scale = 77468.5209852288,
default = &quot;kJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;Eh&quot;] = {
name1 = &quot;Hartree&quot;,
symbol = &quot;''E''&lt;sub&gt;h&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4.35974417e-18,
default = &quot;eV&quot;,
},
[&quot;erg&quot;] = {
symbol = &quot;erg&quot;,
utype = &quot;energy&quot;,
scale = 0.0000001,
default = &quot;μJ&quot;,
},
[&quot;eV&quot;] = {
name1 = &quot;electronvolt&quot;,
symbol = &quot;eV&quot;,
utype = &quot;energy&quot;,
scale = 1.602176487e-19,
default = &quot;aJ&quot;,
},
[&quot;feV&quot;] = {
name1 = &quot;femtoelectronvolt&quot;,
symbol = &quot;feV&quot;,
utype = &quot;energy&quot;,
scale = 1.602176487e-34,
default = &quot;yJ&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;foe&quot;] = {
symbol = &quot;foe&quot;,
utype = &quot;energy&quot;,
scale = 1e44,
default = &quot;YJ&quot;,
link = &quot;Foe (unit)&quot;,
},
[&quot;ftlb&quot;] = {
name1 = &quot;foot-pound&quot;,
symbol = &quot;ft⋅lb&quot;,
utype = &quot;energy&quot;,
alttype = &quot;torque&quot;,
scale = 1.3558179483314004,
default = &quot;J&quot;,
link = &quot;Foot-pound (energy)&quot;,
},
[&quot;ftlb-f&quot;] = {
name1 = &quot;foot-pound force&quot;,
name2 = &quot;foot-pounds force&quot;,
symbol = &quot;ft⋅lb&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
alttype = &quot;torque&quot;,
scale = 1.3558179483314004,
default = &quot;J&quot;,
link = &quot;Foot-pound (energy)&quot;,
},
[&quot;ftlbf&quot;] = {
name1 = &quot;foot-pound force&quot;,
name2 = &quot;foot-pounds force&quot;,
symbol = &quot;ft⋅lbf&quot;,
utype = &quot;energy&quot;,
alttype = &quot;torque&quot;,
scale = 1.3558179483314004,
default = &quot;J&quot;,
link = &quot;Foot-pound (energy)&quot;,
},
[&quot;ftpdl&quot;] = {
name1 = &quot;foot-poundal&quot;,
symbol = &quot;ft⋅pdl&quot;,
utype = &quot;energy&quot;,
scale = 0.0421401100938048,
default = &quot;J&quot;,
},
[&quot;GeV&quot;] = {
name1 = &quot;gigaelectronvolt&quot;,
symbol = &quot;GeV&quot;,
utype = &quot;energy&quot;,
scale = 1.602176487e-10,
default = &quot;nJ&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;GLatm&quot;] = {
name1 = &quot;gigalitre-atmosphere&quot;,
name1_us = &quot;gigaliter-atmosphere&quot;,
symbol = &quot;GL⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 101325000000,
default = &quot;GJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;Glatm&quot;] = {
name1 = &quot;gigalitre-atmosphere&quot;,
name1_us = &quot;gigaliter-atmosphere&quot;,
symbol = &quot;Gl⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 101325000000,
default = &quot;GJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;gTNT&quot;] = {
name2 = &quot;grams of TNT&quot;,
symbol = &quot;gram of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4184,
default = &quot;kJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;Gtoe&quot;] = {
name1 = &quot;gigatonne of oil equivalent&quot;,
name2 = &quot;gigatonnes of oil equivalent&quot;,
symbol = &quot;Gtoe&quot;,
utype = &quot;energy&quot;,
scale = 4.1868e19,
default = &quot;EJ&quot;,
link = &quot;Tonne of oil equivalent&quot;,
},
[&quot;GtonTNT&quot;] = {
name2 = &quot;gigatons of TNT&quot;,
symbol = &quot;gigaton of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4.184e18,
default = &quot;EJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;GtTNT&quot;] = {
name2 = &quot;gigatonnes of TNT&quot;,
symbol = &quot;gigatonne of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4.184e18,
default = &quot;EJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;GW.h&quot;] = {
name1 = &quot;gigawatt-hour&quot;,
symbol = &quot;GW⋅h&quot;,
utype = &quot;energy&quot;,
scale = 3.6e12,
default = &quot;TJ&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;GWh&quot;] = {
name1 = &quot;gigawatt-hour&quot;,
symbol = &quot;GWh&quot;,
utype = &quot;energy&quot;,
scale = 3.6e12,
default = &quot;TJ&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;hph&quot;] = {
name1 = &quot;horsepower-hour&quot;,
symbol = &quot;hp⋅h&quot;,
utype = &quot;energy&quot;,
scale = 2684519.537696172792,
default = &quot;kWh&quot;,
link = &quot;Horsepower&quot;,
},
[&quot;impgalatm&quot;] = {
name1 = &quot;imperial gallon-atmosphere&quot;,
symbol = &quot;imp gal⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 460.63256925,
default = &quot;J&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;inlb&quot;] = {
name1 = &quot;inch-pound&quot;,
symbol = &quot;in⋅lb&quot;,
utype = &quot;energy&quot;,
alttype = &quot;torque&quot;,
scale = 0.1129848290276167,
default = &quot;mJ&quot;,
link = &quot;Foot-pound (energy)&quot;,
},
[&quot;inlb-f&quot;] = {
name1 = &quot;inch-pound force&quot;,
name2 = &quot;inch-pounds force&quot;,
symbol = &quot;in⋅lb&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
alttype = &quot;torque&quot;,
scale = 0.1129848290276167,
default = &quot;mJ&quot;,
link = &quot;Foot-pound (energy)&quot;,
},
[&quot;inlbf&quot;] = {
name1 = &quot;inch-pound force&quot;,
name2 = &quot;inch-pounds force&quot;,
symbol = &quot;in⋅lbf&quot;,
utype = &quot;energy&quot;,
alttype = &quot;torque&quot;,
scale = 0.1129848290276167,
default = &quot;mJ&quot;,
link = &quot;Foot-pound (energy)&quot;,
},
[&quot;inoz-f&quot;] = {
name1 = &quot;inch-ounce force&quot;,
name2 = &quot;inch-ounces force&quot;,
symbol = &quot;in⋅oz&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
alttype = &quot;torque&quot;,
scale = 0.00706155181422604375,
default = &quot;mJ&quot;,
link = &quot;Foot-pound (energy)&quot;,
},
[&quot;inozf&quot;] = {
name1 = &quot;inch-ounce force&quot;,
name2 = &quot;inch-ounces force&quot;,
symbol = &quot;in⋅ozf&quot;,
utype = &quot;energy&quot;,
alttype = &quot;torque&quot;,
scale = 0.00706155181422604375,
default = &quot;mJ&quot;,
link = &quot;Foot-pound (energy)&quot;,
},
[&quot;J&quot;] = {
_name1 = &quot;joule&quot;,
_symbol = &quot;J&quot;,
utype = &quot;energy&quot;,
scale = 1,
prefixes = 1,
default = &quot;cal&quot;,
link = &quot;Joule&quot;,
},
[&quot;kBOE&quot;] = {
name1 = &quot;kilo barrel of oil equivalent&quot;,
name2 = &quot;kilo barrels of oil equivalent&quot;,
symbol = &quot;kBOE&quot;,
utype = &quot;energy&quot;,
scale = 6.1178632e12,
default = &quot;TJ&quot;,
link = &quot;Barrel of oil equivalent&quot;,
},
[&quot;kcal&quot;] = {
name1 = &quot;kilocalorie&quot;,
symbol = &quot;kcal&quot;,
utype = &quot;energy&quot;,
scale = 4184,
default = &quot;kJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;kcal-15&quot;] = {
name1 = &quot;kilocalorie (15°C)&quot;,
name2 = &quot;kilocalories (15°C)&quot;,
symbol = &quot;kcal&lt;sub&gt;15&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4185.8,
default = &quot;kJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;kcal-IT&quot;] = {
name1 = &quot;kilocalorie (International Steam Table)&quot;,
name2 = &quot;kilocalories (International Steam Table)&quot;,
symbol = &quot;kcal&lt;sub&gt;IT&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4186.8,
default = &quot;kJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;kcal-th&quot;] = {
name1 = &quot;kilocalorie (thermochemical)&quot;,
name2 = &quot;kilocalories (thermochemical)&quot;,
symbol = &quot;kcal&lt;sub&gt;th&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4184,
default = &quot;kJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;kerg&quot;] = {
name1 = &quot;kiloerg&quot;,
symbol = &quot;kerg&quot;,
utype = &quot;energy&quot;,
scale = 0.0001,
default = &quot;mJ&quot;,
link = &quot;Erg&quot;,
},
[&quot;keV&quot;] = {
name1 = &quot;kiloelectronvolt&quot;,
symbol = &quot;keV&quot;,
utype = &quot;energy&quot;,
scale = 1.602176487e-16,
default = &quot;fJ&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;kgTNT&quot;] = {
name2 = &quot;kilograms of TNT&quot;,
symbol = &quot;kilogram of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4184000,
default = &quot;MJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;kLatm&quot;] = {
name1 = &quot;kilolitre-atmosphere&quot;,
name1_us = &quot;kiloliter-atmosphere&quot;,
symbol = &quot;kL⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 101325,
default = &quot;kJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;klatm&quot;] = {
name1 = &quot;kilolitre-atmosphere&quot;,
name1_us = &quot;kiloliter-atmosphere&quot;,
symbol = &quot;kl⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 101325,
default = &quot;kJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;kt(TNT)&quot;] = {
name1 = &quot;kilotonne&quot;,
name1_us = &quot;kiloton&quot;,
symbol = &quot;kt&quot;,
utype = &quot;energy&quot;,
scale = 4.184e12,
default = &quot;TJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;ktoe&quot;] = {
name1 = &quot;kilotonne of oil equivalent&quot;,
name2 = &quot;kilotonnes of oil equivalent&quot;,
symbol = &quot;ktoe&quot;,
utype = &quot;energy&quot;,
scale = 4.1868e13,
default = &quot;TJ&quot;,
link = &quot;Tonne of oil equivalent&quot;,
},
[&quot;ktonTNT&quot;] = {
name1 = &quot;kiloton of TNT&quot;,
name2 = &quot;kilotons of TNT&quot;,
symbol = &quot;kt&quot;,
utype = &quot;energy&quot;,
scale = 4.184e12,
default = &quot;TJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;ktTNT&quot;] = {
name2 = &quot;kilotonnes of TNT&quot;,
symbol = &quot;kilotonne of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4.184e12,
default = &quot;TJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;kW.h&quot;] = {
name1 = &quot;kilowatt-hour&quot;,
symbol = &quot;kW⋅h&quot;,
utype = &quot;energy&quot;,
scale = 3600000,
default = &quot;MJ&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;kWh&quot;] = {
name1 = &quot;kilowatt-hour&quot;,
symbol = &quot;kWh&quot;,
utype = &quot;energy&quot;,
scale = 3600000,
default = &quot;MJ&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;Latm&quot;] = {
name1 = &quot;litre-atmosphere&quot;,
name1_us = &quot;liter-atmosphere&quot;,
symbol = &quot;L⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 101.325,
default = &quot;J&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;latm&quot;] = {
name1 = &quot;litre-atmosphere&quot;,
name1_us = &quot;liter-atmosphere&quot;,
symbol = &quot;l⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 101.325,
default = &quot;J&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;m3atm&quot;] = {
name1 = &quot;cubic metre-atmosphere&quot;,
name1_us = &quot;cubic meter-atmosphere&quot;,
symbol = &quot;m&lt;sup&gt;3&lt;/sup&gt;⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 101325,
default = &quot;kJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;Mcal&quot;] = {
name1 = &quot;megacalorie&quot;,
symbol = &quot;Mcal&quot;,
utype = &quot;energy&quot;,
scale = 4184000,
default = &quot;MJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;mcal&quot;] = {
name1 = &quot;millicalorie&quot;,
symbol = &quot;mcal&quot;,
utype = &quot;energy&quot;,
scale = 0.004184,
default = &quot;mJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;Mcal-15&quot;] = {
name1 = &quot;megacalorie (15°C)&quot;,
name2 = &quot;megacalories (15°C)&quot;,
symbol = &quot;Mcal&lt;sub&gt;15&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4185800,
default = &quot;MJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;mcal-15&quot;] = {
name1 = &quot;millicalorie (15°C)&quot;,
name2 = &quot;millicalories (15°C)&quot;,
symbol = &quot;mcal&lt;sub&gt;15&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 0.0041858,
default = &quot;mJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;Mcal-IT&quot;] = {
name1 = &quot;megacalorie (International Steam Table)&quot;,
name2 = &quot;megacalories (International Steam Table)&quot;,
symbol = &quot;Mcal&lt;sub&gt;IT&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4186800,
default = &quot;MJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;mcal-IT&quot;] = {
name1 = &quot;millicalorie (International Steam Table)&quot;,
name2 = &quot;millicalories (International Steam Table)&quot;,
symbol = &quot;mcal&lt;sub&gt;IT&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 0.0041868,
default = &quot;mJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;Mcal-th&quot;] = {
name1 = &quot;megacalorie (thermochemical)&quot;,
name2 = &quot;megacalories (thermochemical)&quot;,
symbol = &quot;Mcal&lt;sub&gt;th&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 4184000,
default = &quot;MJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;mcal-th&quot;] = {
name1 = &quot;millicalorie (thermochemical)&quot;,
name2 = &quot;millicalories (thermochemical)&quot;,
symbol = &quot;mcal&lt;sub&gt;th&lt;/sub&gt;&quot;,
utype = &quot;energy&quot;,
scale = 0.004184,
default = &quot;mJ&quot;,
link = &quot;Calorie&quot;,
},
[&quot;Merg&quot;] = {
name1 = &quot;megaerg&quot;,
symbol = &quot;Merg&quot;,
utype = &quot;energy&quot;,
scale = 0.1,
default = &quot;J&quot;,
link = &quot;Erg&quot;,
},
[&quot;merg&quot;] = {
name1 = &quot;millierg&quot;,
symbol = &quot;merg&quot;,
utype = &quot;energy&quot;,
scale = 0.0000000001,
default = &quot;μJ&quot;,
link = &quot;Erg&quot;,
},
[&quot;MeV&quot;] = {
name1 = &quot;megaelectronvolt&quot;,
symbol = &quot;MeV&quot;,
utype = &quot;energy&quot;,
scale = 1.602176487e-13,
default = &quot;pJ&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;meV&quot;] = {
name1 = &quot;millielectronvolt&quot;,
symbol = &quot;meV&quot;,
utype = &quot;energy&quot;,
scale = 1.602176487e-22,
default = &quot;zJ&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;MLatm&quot;] = {
name1 = &quot;megalitre-atmosphere&quot;,
name1_us = &quot;megaliter-atmosphere&quot;,
symbol = &quot;ML⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 101325000,
default = &quot;MJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;Mlatm&quot;] = {
name1 = &quot;megalitre-atmosphere&quot;,
name1_us = &quot;megaliter-atmosphere&quot;,
symbol = &quot;Ml⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 101325000,
default = &quot;MJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;mLatm&quot;] = {
name1 = &quot;millilitre-atmosphere&quot;,
name1_us = &quot;milliliter-atmosphere&quot;,
symbol = &quot;L⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 0.101325,
default = &quot;mJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;mlatm&quot;] = {
name1 = &quot;millilitre-atmosphere&quot;,
name1_us = &quot;milliliter-atmosphere&quot;,
symbol = &quot;l⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 0.101325,
default = &quot;mJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;MMBtu&quot;] = {
name1 = &quot;million British thermal units&quot;,
name2 = &quot;million British thermal units&quot;,
symbol = &quot;MMBtu&quot;,
utype = &quot;energy&quot;,
scale = 1055055852.62,
default = &quot;GJ&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;Mt(TNT)&quot;] = {
name1 = &quot;megatonne&quot;,
name1_us = &quot;megaton&quot;,
symbol = &quot;Mt&quot;,
utype = &quot;energy&quot;,
scale = 4.184e15,
default = &quot;PJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;Mtoe&quot;] = {
name1 = &quot;megatonne of oil equivalent&quot;,
name2 = &quot;megatonnes of oil equivalent&quot;,
symbol = &quot;Mtoe&quot;,
utype = &quot;energy&quot;,
scale = 4.1868e16,
default = &quot;PJ&quot;,
link = &quot;Tonne of oil equivalent&quot;,
},
[&quot;MtonTNT&quot;] = {
name1 = &quot;megaton of TNT&quot;,
name2 = &quot;megatons of TNT&quot;,
symbol = &quot;Mt&quot;,
utype = &quot;energy&quot;,
scale = 4.184e15,
default = &quot;PJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;mtonTNT&quot;] = {
name2 = &quot;millitons of TNT&quot;,
symbol = &quot;milliton of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4184000,
default = &quot;MJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;MtTNT&quot;] = {
name2 = &quot;megatonnes of TNT&quot;,
symbol = &quot;megatonne of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4.184e15,
default = &quot;PJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;mtTNT&quot;] = {
name2 = &quot;millitonnes of TNT&quot;,
symbol = &quot;millitonne of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4184000,
default = &quot;MJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;MW.h&quot;] = {
name1 = &quot;megawatt-hour&quot;,
symbol = &quot;MW⋅h&quot;,
utype = &quot;energy&quot;,
scale = 3600000000,
default = &quot;GJ&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;mW.h&quot;] = {
name1 = &quot;milliwatt-hour&quot;,
symbol = &quot;mW⋅h&quot;,
utype = &quot;energy&quot;,
scale = 3.6,
default = &quot;J&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;MWh&quot;] = {
name1 = &quot;megawatt-hour&quot;,
symbol = &quot;MWh&quot;,
utype = &quot;energy&quot;,
scale = 3600000000,
default = &quot;GJ&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;mWh&quot;] = {
name1 = &quot;milliwatt-hour&quot;,
symbol = &quot;mWh&quot;,
utype = &quot;energy&quot;,
scale = 3.6,
default = &quot;J&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;neV&quot;] = {
name1 = &quot;nanoelectronvolt&quot;,
symbol = &quot;neV&quot;,
utype = &quot;energy&quot;,
scale = 1.602176487e-28,
default = &quot;yJ&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;PeV&quot;] = {
name1 = &quot;petaelectronvolt&quot;,
symbol = &quot;PeV&quot;,
utype = &quot;energy&quot;,
scale = 0.0001602176487,
default = &quot;mJ&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;peV&quot;] = {
name1 = &quot;picoelectronvolt&quot;,
symbol = &quot;peV&quot;,
utype = &quot;energy&quot;,
scale = 1.602176487e-31,
default = &quot;yJ&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;PSh&quot;] = {
name1 = &quot;Pferdestärkenstunde&quot;,
symbol = &quot;PSh&quot;,
utype = &quot;energy&quot;,
scale = 2647795.5,
default = &quot;kWh&quot;,
},
[&quot;quad&quot;] = {
name1 = &quot;quadrillion British thermal units&quot;,
name2 = &quot;quadrillion British thermal units&quot;,
symbol = &quot;quad&quot;,
utype = &quot;energy&quot;,
scale = 1.054804e18,
default = &quot;EJ&quot;,
link = &quot;Quad (unit)&quot;,
},
[&quot;Ry&quot;] = {
name1 = &quot;rydberg&quot;,
symbol = &quot;Ry&quot;,
utype = &quot;energy&quot;,
scale = 2.1798741e-18,
default = &quot;eV&quot;,
link = &quot;Rydberg constant&quot;,
},
[&quot;scc&quot;] = {
name1 = &quot;standard cubic centimetre&quot;,
name1_us = &quot;standard cubic centimeter&quot;,
symbol = &quot;scc&quot;,
utype = &quot;energy&quot;,
scale = 0.101325,
default = &quot;mJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;scf&quot;] = {
name1 = &quot;standard cubic foot&quot;,
name2 = &quot;standard cubic feet&quot;,
symbol = &quot;scf&quot;,
utype = &quot;energy&quot;,
scale = 2869.2044809344,
default = &quot;kJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;scfoot&quot;] = {
name1 = &quot;standard cubic foot&quot;,
name2 = &quot;standard cubic foot&quot;,
symbol = &quot;scf&quot;,
utype = &quot;energy&quot;,
scale = 2869.2044809344,
default = &quot;kJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;scy&quot;] = {
name1 = &quot;standard cubic yard&quot;,
symbol = &quot;scy&quot;,
utype = &quot;energy&quot;,
scale = 77468.5209852288,
default = &quot;kJ&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;sl&quot;] = {
name1 = &quot;standard litre&quot;,
name1_us = &quot;standard liter&quot;,
symbol = &quot;sl&quot;,
utype = &quot;energy&quot;,
scale = 101.325,
default = &quot;J&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;t(TNT)&quot;] = {
name1 = &quot;tonne&quot;,
name1_us = &quot;ton&quot;,
symbol = &quot;t&quot;,
utype = &quot;energy&quot;,
scale = 4184000000,
default = &quot;GJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;TeV&quot;] = {
name1 = &quot;teraelectronvolt&quot;,
symbol = &quot;TeV&quot;,
utype = &quot;energy&quot;,
scale = 1.602176487e-7,
default = &quot;μJ&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;th&quot;] = {
name1 = &quot;thermie&quot;,
symbol = &quot;th&quot;,
utype = &quot;energy&quot;,
scale = 4186800,
default = &quot;MJ&quot;,
link = &quot;Conversion of units&quot;,
},
[&quot;thm-EC&quot;] = {
name1 = &quot;therm (EC)&quot;,
name2 = &quot;therms (EC)&quot;,
symbol = &quot;thm (EC)&quot;,
utype = &quot;energy&quot;,
scale = 105506000,
default = &quot;MJ&quot;,
link = &quot;Therm&quot;,
},
[&quot;thm-UK&quot;] = {
name1 = &quot;therm (UK)&quot;,
name2 = &quot;therms (UK)&quot;,
symbol = &quot;thm (UK)&quot;,
utype = &quot;energy&quot;,
scale = 105505585.257348,
default = &quot;MJ&quot;,
link = &quot;Therm&quot;,
},
[&quot;thm-US&quot;] = {
name1 = &quot;therm (US)&quot;,
name1_us = &quot;therm (U.S.)&quot;,
name2 = &quot;therms (US)&quot;,
name2_us = &quot;therms (U.S.)&quot;,
symbol = &quot;thm (US)&quot;,
sym_us = &quot;thm (U.S.)&quot;,
utype = &quot;energy&quot;,
scale = 105480400,
default = &quot;MJ&quot;,
link = &quot;Therm&quot;,
},
[&quot;toe&quot;] = {
name1 = &quot;tonne of oil equivalent&quot;,
name2 = &quot;tonnes of oil equivalent&quot;,
symbol = &quot;toe&quot;,
utype = &quot;energy&quot;,
scale = 41868000000,
default = &quot;GJ&quot;,
},
[&quot;tonTNT&quot;] = {
name2 = &quot;tons of TNT&quot;,
symbol = &quot;ton of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4184000000,
default = &quot;GJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;tTNT&quot;] = {
name2 = &quot;tonnes of TNT&quot;,
symbol = &quot;tonne of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4184000000,
default = &quot;GJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;TtonTNT&quot;] = {
name2 = &quot;teratons of TNT&quot;,
symbol = &quot;teraton of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4.184e21,
default = &quot;ZJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;TtTNT&quot;] = {
name2 = &quot;teratonnes of TNT&quot;,
symbol = &quot;teratonne of TNT&quot;,
usename = 1,
utype = &quot;energy&quot;,
scale = 4.184e21,
default = &quot;ZJ&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;TW.h&quot;] = {
name1 = &quot;terawatt-hour&quot;,
symbol = &quot;TW⋅h&quot;,
utype = &quot;energy&quot;,
scale = 3.6e15,
default = &quot;PJ&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;TWh&quot;] = {
name1 = &quot;terawatt-hour&quot;,
symbol = &quot;TWh&quot;,
utype = &quot;energy&quot;,
scale = 3.6e15,
default = &quot;PJ&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;USgalatm&quot;] = {
name1 = &quot;US gallon-atmosphere&quot;,
name1_us = &quot;U.S. gallon-atmosphere&quot;,
symbol = &quot;US&amp;nbsp;gal⋅atm&quot;,
sym_us = &quot;U.S.&amp;nbsp;gal⋅atm&quot;,
utype = &quot;energy&quot;,
scale = 383.5568490138,
default = &quot;J&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;W.h&quot;] = {
name1 = &quot;watt-hour&quot;,
symbol = &quot;W⋅h&quot;,
utype = &quot;energy&quot;,
scale = 3600,
default = &quot;kJ&quot;,
},
[&quot;Wh&quot;] = {
name1 = &quot;watt-hour&quot;,
symbol = &quot;Wh&quot;,
utype = &quot;energy&quot;,
scale = 3600,
default = &quot;kJ&quot;,
},
[&quot;μerg&quot;] = {
name1 = &quot;microerg&quot;,
symbol = &quot;μerg&quot;,
utype = &quot;energy&quot;,
scale = 1e-13,
default = &quot;nJ&quot;,
link = &quot;Erg&quot;,
},
[&quot;μeV&quot;] = {
name1 = &quot;microelectronvolt&quot;,
symbol = &quot;μeV&quot;,
utype = &quot;energy&quot;,
scale = 1.602176487e-25,
default = &quot;yJ&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;μW.h&quot;] = {
name1 = &quot;microwatt-hour&quot;,
symbol = &quot;μW⋅h&quot;,
utype = &quot;energy&quot;,
scale = 0.0036,
default = &quot;mJ&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;μWh&quot;] = {
name1 = &quot;microwatt-hour&quot;,
symbol = &quot;μWh&quot;,
utype = &quot;energy&quot;,
scale = 0.0036,
default = &quot;mJ&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;-kW.h&quot;] = {
target = &quot;kW.h&quot;,
link = &quot;Kilowatt hour&quot;,
},
[&quot;btu&quot;] = {
target = &quot;BTU&quot;,
},
[&quot;Calorie&quot;] = {
target = &quot;Cal&quot;,
},
[&quot;ft.lbf&quot;] = {
target = &quot;ftlbf&quot;,
},
[&quot;ft·lbf&quot;] = {
target = &quot;ftlbf&quot;,
},
[&quot;g-cal-15&quot;] = {
target = &quot;cal-15&quot;,
},
[&quot;g-cal-IT&quot;] = {
target = &quot;cal-IT&quot;,
},
[&quot;g-cal-th&quot;] = {
target = &quot;cal-th&quot;,
},
[&quot;g-kcal-15&quot;] = {
target = &quot;kcal-15&quot;,
},
[&quot;g-kcal-IT&quot;] = {
target = &quot;kcal-IT&quot;,
},
[&quot;g-kcal-th&quot;] = {
target = &quot;kcal-th&quot;,
},
[&quot;g-Mcal-15&quot;] = {
target = &quot;Mcal-15&quot;,
},
[&quot;g-mcal-15&quot;] = {
target = &quot;mcal-15&quot;,
},
[&quot;g-Mcal-IT&quot;] = {
target = &quot;Mcal-IT&quot;,
},
[&quot;g-mcal-IT&quot;] = {
target = &quot;mcal-IT&quot;,
},
[&quot;g-Mcal-th&quot;] = {
target = &quot;Mcal-th&quot;,
},
[&quot;g-mcal-th&quot;] = {
target = &quot;mcal-th&quot;,
},
[&quot;GW-h&quot;] = {
target = &quot;GW.h&quot;,
},
[&quot;GW·h&quot;] = {
target = &quot;GW.h&quot;,
},
[&quot;Hartree&quot;] = {
target = &quot;Eh&quot;,
},
[&quot;hp.h&quot;] = {
target = &quot;hph&quot;,
},
[&quot;in.lb-f&quot;] = {
target = &quot;inlb-f&quot;,
},
[&quot;in.lbf&quot;] = {
target = &quot;inlbf&quot;,
},
[&quot;in.oz-f&quot;] = {
target = &quot;inoz-f&quot;,
},
[&quot;in.ozf&quot;] = {
target = &quot;inozf&quot;,
},
[&quot;kbboe&quot;] = {
target = &quot;kBOE&quot;,
symbol = &quot;kbboe&quot;,
},
[&quot;kg-cal-15&quot;] = {
target = &quot;Cal-15&quot;,
},
[&quot;kg-cal-IT&quot;] = {
target = &quot;Cal-IT&quot;,
},
[&quot;kg-cal-th&quot;] = {
target = &quot;Cal-th&quot;,
},
[&quot;kW-h&quot;] = {
target = &quot;kW.h&quot;,
},
[&quot;kW·h&quot;] = {
target = &quot;kW.h&quot;,
},
[&quot;MW-h&quot;] = {
target = &quot;MW.h&quot;,
},
[&quot;mW-h&quot;] = {
target = &quot;mW.h&quot;,
},
[&quot;MW·h&quot;] = {
target = &quot;MW.h&quot;,
},
[&quot;TW-h&quot;] = {
target = &quot;TW.h&quot;,
},
[&quot;U.S.galatm&quot;] = {
target = &quot;USgalatm&quot;,
sp_us = true,
},
[&quot;uerg&quot;] = {
target = &quot;μerg&quot;,
},
[&quot;ueV&quot;] = {
target = &quot;μeV&quot;,
},
[&quot;usgalatm&quot;] = {
target = &quot;USgalatm&quot;,
},
[&quot;uW-h&quot;] = {
target = &quot;μW.h&quot;,
},
[&quot;uW.h&quot;] = {
target = &quot;μW.h&quot;,
},
[&quot;uWh&quot;] = {
target = &quot;μWh&quot;,
},
[&quot;W-h&quot;] = {
target = &quot;W.h&quot;,
},
[&quot;eVpar&quot;] = {
_name1 = &quot;electronvolt&quot;,
_symbol = &quot;eV&quot;,
utype = &quot;energy per chemical amount&quot;,
scale = 96485.329522144166,
prefixes = 1,
default = &quot;kcal/mol&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;kcal/mol&quot;] = {
per = { &quot;kcal&quot;, &quot;mol&quot; },
utype = &quot;energy per chemical amount&quot;,
default = &quot;kJ/mol&quot;,
link = &quot;Kilocalorie per mole&quot;,
},
[&quot;kJ/mol&quot;] = {
per = { &quot;kJ&quot;, &quot;mol&quot; },
utype = &quot;energy per chemical amount&quot;,
default = &quot;kcal/mol&quot;,
link = &quot;Joule per mole&quot;,
},
[&quot;kWh/100 km&quot;] = {
name1 = &quot;kilowatt-hour per 100 kilometres&quot;,
name1_us = &quot;kilowatt-hour per 100 kilometers&quot;,
name2 = &quot;kilowatt-hours per 100 kilometres&quot;,
name2_us = &quot;kilowatt-hours per 100 kilometers&quot;,
symbol = &quot;kW⋅h/100&amp;nbsp;km&quot;,
utype = &quot;energy per unit length&quot;,
scale = 36,
default = &quot;MJ/km kWh/mi&quot;,
link = &quot;Watt-hour&quot;,
},
[&quot;kWh/100 mi&quot;] = {
name1 = &quot;kilowatt-hour per 100 miles&quot;,
name2 = &quot;kilowatt-hours per 100 miles&quot;,
symbol = &quot;kW⋅h/100&amp;nbsp;mi&quot;,
utype = &quot;energy per unit length&quot;,
scale = 22.3694,
default = &quot;mpge&quot;,
link = &quot;Miles per gallon gasoline equivalent&quot;,
},
[&quot;MJ/100 km&quot;] = {
name1 = &quot;megajoule per 100 kilometres&quot;,
name1_us = &quot;megajoule per 100 kilometers&quot;,
name2 = &quot;megajoules per 100 kilometres&quot;,
name2_us = &quot;megajoules per 100 kilometers&quot;,
symbol = &quot;MJ/100&amp;nbsp;km&quot;,
utype = &quot;energy per unit length&quot;,
scale = 10,
default = &quot;BTU/mi&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;mpge&quot;] = {
name1 = &quot;mile per gallon gasoline equivalent&quot;,
name2 = &quot;miles per gallon gasoline equivalent&quot;,
symbol = &quot;mpg&amp;#8209;e&quot;,
utype = &quot;energy per unit length&quot;,
scale = 13e-6,
invert = -1,
iscomplex= true,
default = &quot;kWh/100 mi&quot;,
link = &quot;Miles per gallon gasoline equivalent&quot;,
},
[&quot;BTU/mi&quot;] = {
per = { &quot;BTU&quot;, &quot;mi&quot; },
utype = &quot;energy per unit length&quot;,
default = &quot;v &gt; 1525 ! M ! k ! J/km&quot;,
},
[&quot;kJ/km&quot;] = {
per = { &quot;kJ&quot;, &quot;km&quot; },
utype = &quot;energy per unit length&quot;,
default = &quot;BTU/mi&quot;,
},
[&quot;kWh/km&quot;] = {
per = { &quot;-kW.h&quot;, &quot;km&quot; },
utype = &quot;energy per unit length&quot;,
default = &quot;MJ/km kWh/mi&quot;,
},
[&quot;kWh/mi&quot;] = {
per = { &quot;-kW.h&quot;, &quot;mi&quot; },
utype = &quot;energy per unit length&quot;,
default = &quot;kWh/km MJ/km&quot;,
},
[&quot;MJ/km&quot;] = {
per = { &quot;MJ&quot;, &quot;km&quot; },
utype = &quot;energy per unit length&quot;,
default = &quot;BTU/mi&quot;,
},
[&quot;mpg-e&quot;] = {
target = &quot;mpge&quot;,
},
[&quot;BTU/lb&quot;] = {
name1 = &quot;British thermal unit per pound&quot;,
name2 = &quot;British thermal units per pound&quot;,
symbol = &quot;BTU/lb&quot;,
utype = &quot;energy per unit mass&quot;,
scale = 429.92261414790346,
default = &quot;kJ/kg&quot;,
link = &quot;British thermal unit&quot;,
},
[&quot;cal/g&quot;] = {
name1 = &quot;calorie per gram&quot;,
name2 = &quot;calories per gram&quot;,
symbol = &quot;cal/g&quot;,
utype = &quot;energy per unit mass&quot;,
scale = 4184,
default = &quot;J/g&quot;,
},
[&quot;GJ/kg&quot;] = {
name1 = &quot;gigajoule per kilogram&quot;,
name2 = &quot;gigajoules per kilogram&quot;,
symbol = &quot;GJ/kg&quot;,
utype = &quot;energy per unit mass&quot;,
scale = 1e9,
default = &quot;ktTNT/t&quot;,
link = &quot;Joule&quot;,
},
[&quot;J/g&quot;] = {
name1 = &quot;joule per gram&quot;,
name2 = &quot;joules per gram&quot;,
symbol = &quot;J/g&quot;,
utype = &quot;energy per unit mass&quot;,
scale = 1000,
default = &quot;kcal/g&quot;,
link = &quot;Joule&quot;,
},
[&quot;kcal/g&quot;] = {
name1 = &quot;kilocalorie per gram&quot;,
name2 = &quot;kilocalories per gram&quot;,
symbol = &quot;kcal/g&quot;,
utype = &quot;energy per unit mass&quot;,
scale = 4184000,
default = &quot;kJ/g&quot;,
},
[&quot;kJ/g&quot;] = {
name1 = &quot;kilojoule per gram&quot;,
name2 = &quot;kilojoules per gram&quot;,
symbol = &quot;kJ/g&quot;,
utype = &quot;energy per unit mass&quot;,
scale = 1000000,
default = &quot;kcal/g&quot;,
link = &quot;Joule&quot;,
},
[&quot;kJ/kg&quot;] = {
name1 = &quot;kilojoule per kilogram&quot;,
name2 = &quot;kilojoules per kilogram&quot;,
symbol = &quot;kJ/kg&quot;,
utype = &quot;energy per unit mass&quot;,
scale = 1000,
default = &quot;BTU/lb&quot;,
},
[&quot;ktonTNT/MT&quot;] = {
name2 = &quot;kilotons of TNT per metric ton&quot;,
symbol = &quot;kiloton of TNT per metric ton&quot;,
usename = 1,
utype = &quot;energy per unit mass&quot;,
scale = 4184000000,
default = &quot;GJ/kg&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;ktTNT/t&quot;] = {
name2 = &quot;kilotonnes of TNT per tonne&quot;,
symbol = &quot;kilotonne of TNT per tonne&quot;,
usename = 1,
utype = &quot;energy per unit mass&quot;,
scale = 4184000000,
default = &quot;GJ/kg&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;MtonTNT/MT&quot;] = {
name2 = &quot;megatons of TNT per metric ton&quot;,
symbol = &quot;megaton of TNT per metric ton&quot;,
usename = 1,
utype = &quot;energy per unit mass&quot;,
scale = 4.184e12,
default = &quot;TJ/kg&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;MtTNT/MT&quot;] = {
name2 = &quot;megatonnes of TNT per tonne&quot;,
symbol = &quot;megatonne of TNT per tonne&quot;,
usename = 1,
utype = &quot;energy per unit mass&quot;,
scale = 4.184e12,
default = &quot;TJ/kg&quot;,
link = &quot;TNT equivalent&quot;,
},
[&quot;TJ/kg&quot;] = {
name1 = &quot;terajoule per kilogram&quot;,
name2 = &quot;terajoules per kilogram&quot;,
symbol = &quot;TJ/kg&quot;,
utype = &quot;energy per unit mass&quot;,
scale = 1e12,
default = &quot;MtTNT/MT&quot;,
link = &quot;Joule&quot;,
},
[&quot;Cal/g&quot;] = {
per = { &quot;Cal&quot;, &quot;g&quot; },
utype = &quot;energy per unit mass&quot;,
default = &quot;kJ/g&quot;,
},
[&quot;BTU/cuft&quot;] = {
per = { &quot;BTU&quot;, &quot;cuft&quot; },
utype = &quot;energy per unit volume&quot;,
default = &quot;kJ/L&quot;,
},
[&quot;Cal/12USoz(mL)serve&quot;] = {
per = { &quot;Cal&quot;, &quot;-12USoz(mL)serve&quot; },
utype = &quot;energy per unit volume&quot;,
default = &quot;kJ/L&quot;,
},
[&quot;Cal/12USoz(ml)serve&quot;] = {
per = { &quot;Cal&quot;, &quot;-12USoz(ml)serve&quot; },
utype = &quot;energy per unit volume&quot;,
default = &quot;kJ/l&quot;,
},
[&quot;Cal/12USozserve&quot;] = {
per = { &quot;Cal&quot;, &quot;-12USozserve&quot; },
utype = &quot;energy per unit volume&quot;,
default = &quot;kJ/L&quot;,
},
[&quot;Cal/USoz&quot;] = {
per = { &quot;Cal&quot;, &quot;USoz&quot; },
utype = &quot;energy per unit volume&quot;,
default = &quot;kJ/ml&quot;,
},
[&quot;kJ/L&quot;] = {
per = { &quot;kJ&quot;, &quot;L&quot; },
utype = &quot;energy per unit volume&quot;,
default = &quot;BTU/cuft&quot;,
},
[&quot;kJ/l&quot;] = {
per = { &quot;kJ&quot;, &quot;l&quot; },
utype = &quot;energy per unit volume&quot;,
default = &quot;BTU/cuft&quot;,
},
[&quot;kJ/ml&quot;] = {
per = { &quot;kJ&quot;, &quot;ml&quot; },
utype = &quot;energy per unit volume&quot;,
default = &quot;Cal/USoz&quot;,
},
[&quot;MJ/m3&quot;] = {
per = { &quot;MJ&quot;, &quot;m3&quot; },
utype = &quot;energy per unit volume&quot;,
default = &quot;BTU/cuft&quot;,
},
[&quot;Sv&quot;] = {
_name1 = &quot;sievert&quot;,
_symbol = &quot;Sv&quot;,
utype = &quot;equivalent radiation dose&quot;,
scale = 1,
prefixes = 1,
default = &quot;rem&quot;,
link = &quot;Sievert&quot;,
},
[&quot;rem&quot;] = {
_name1 = &quot;rem&quot;,
_symbol = &quot;rem&quot;,
utype = &quot;equivalent radiation dose&quot;,
scale = 0.01,
prefixes = 1,
default = &quot;Sv&quot;,
link = &quot;Roentgen equivalent man&quot;,
},
[&quot;g/km&quot;] = {
name1 = &quot;gram per kilometre&quot;,
name1_us = &quot;gram per kilometer&quot;,
name2 = &quot;grams per kilometre&quot;,
name2_us = &quot;grams per kilometer&quot;,
symbol = &quot;g/km&quot;,
utype = &quot;exhaust emission&quot;,
scale = 1e-6,
default = &quot;oz/mi&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;g/mi&quot;] = {
name1 = &quot;gram per mile&quot;,
name2 = &quot;grams per mile&quot;,
symbol = &quot;g/mi&quot;,
utype = &quot;exhaust emission&quot;,
scale = 6.2137119223733397e-7,
default = &quot;g/km&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;gCO2/km&quot;] = {
name1 = &quot;gram of CO&lt;sub&gt;2&lt;/sub&gt; per kilometre&quot;,
name1_us = &quot;gram of CO&lt;sub&gt;2&lt;/sub&gt; per kilometer&quot;,
name2 = &quot;grams of CO&lt;sub&gt;2&lt;/sub&gt; per kilometre&quot;,
name2_us = &quot;grams of CO&lt;sub&gt;2&lt;/sub&gt; per kilometer&quot;,
symbol = &quot;g(CO&lt;sub&gt;2&lt;/sub&gt;)/km&quot;,
utype = &quot;exhaust emission&quot;,
scale = 1e-6,
default = &quot;ozCO2/mi&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;gCO2/mi&quot;] = {
name1 = &quot;gram of CO&lt;sub&gt;2&lt;/sub&gt; per mile&quot;,
name2 = &quot;grams of CO&lt;sub&gt;2&lt;/sub&gt; per mile&quot;,
symbol = &quot;g(CO&lt;sub&gt;2&lt;/sub&gt;)/mi&quot;,
utype = &quot;exhaust emission&quot;,
scale = 6.2137119223733397e-7,
default = &quot;gCO2/km&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;kg/km&quot;] = {
name1 = &quot;kilogram per kilometre&quot;,
name1_us = &quot;kilogram per kilometer&quot;,
name2 = &quot;kilograms per kilometre&quot;,
name2_us = &quot;kilograms per kilometer&quot;,
symbol = &quot;kg/km&quot;,
utype = &quot;exhaust emission&quot;,
scale = 0.001,
default = &quot;lb/mi&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;kgCO2/km&quot;] = {
name1 = &quot;kilogram of CO&lt;sub&gt;2&lt;/sub&gt; per kilometre&quot;,
name1_us = &quot;kilogram of CO&lt;sub&gt;2&lt;/sub&gt; per kilometer&quot;,
name2 = &quot;kilograms of CO&lt;sub&gt;2&lt;/sub&gt; per kilometre&quot;,
name2_us = &quot;kilograms of CO&lt;sub&gt;2&lt;/sub&gt; per kilometer&quot;,
symbol = &quot;kg(CO&lt;sub&gt;2&lt;/sub&gt;)/km&quot;,
utype = &quot;exhaust emission&quot;,
scale = 0.001,
default = &quot;lbCO2/mi&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;lb/mi&quot;] = {
name1 = &quot;pound per mile&quot;,
name2 = &quot;pounds per mile&quot;,
symbol = &quot;lb/mi&quot;,
utype = &quot;exhaust emission&quot;,
scale = 0.00028184923173665794,
default = &quot;kg/km&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;lbCO2/mi&quot;] = {
name1 = &quot;pound of CO&lt;sub&gt;2&lt;/sub&gt; per mile&quot;,
name2 = &quot;pounds of CO&lt;sub&gt;2&lt;/sub&gt; per mile&quot;,
symbol = &quot;lb(CO&lt;sub&gt;2&lt;/sub&gt;)/mi&quot;,
utype = &quot;exhaust emission&quot;,
scale = 0.00028184923173665794,
default = &quot;kgCO2/km&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;oz/mi&quot;] = {
name1 = &quot;ounce per mile&quot;,
name2 = &quot;ounces per mile&quot;,
symbol = &quot;oz/mi&quot;,
utype = &quot;exhaust emission&quot;,
scale = 1.7615576983541121e-5,
default = &quot;g/km&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;ozCO2/mi&quot;] = {
name1 = &quot;ounce of CO&lt;sub&gt;2&lt;/sub&gt; per mile&quot;,
name2 = &quot;ounces of CO&lt;sub&gt;2&lt;/sub&gt; per mile&quot;,
symbol = &quot;oz(CO&lt;sub&gt;2&lt;/sub&gt;)/mi&quot;,
utype = &quot;exhaust emission&quot;,
scale = 1.7615576983541121e-5,
default = &quot;gCO2/km&quot;,
link = &quot;Exhaust gas&quot;,
},
[&quot;cuft/a&quot;] = {
name1 = &quot;cubic foot per annum&quot;,
name2 = &quot;cubic feet per annum&quot;,
symbol = &quot;cu&amp;nbsp;ft/a&quot;,
utype = &quot;flow&quot;,
scale = 8.9730672142368242e-10,
default = &quot;m3/a&quot;,
link = &quot;Cubic foot per second&quot;,
},
[&quot;cuft/d&quot;] = {
name1 = &quot;cubic foot per day&quot;,
name2 = &quot;cubic feet per day&quot;,
symbol = &quot;cu&amp;nbsp;ft/d&quot;,
utype = &quot;flow&quot;,
scale = 3.2774128000000003e-7,
default = &quot;m3/d&quot;,
link = &quot;Cubic foot per second&quot;,
},
[&quot;cuft/h&quot;] = {
name1 = &quot;cubic foot per hour&quot;,
name2 = &quot;cubic feet per hour&quot;,
symbol = &quot;cu&amp;nbsp;ft/h&quot;,
utype = &quot;flow&quot;,
scale = 7.8657907200000004e-6,
default = &quot;m3/h&quot;,
link = &quot;Cubic foot per second&quot;,
},
[&quot;cuft/min&quot;] = {
name1 = &quot;cubic foot per minute&quot;,
name2 = &quot;cubic feet per minute&quot;,
symbol = &quot;cu&amp;nbsp;ft/min&quot;,
utype = &quot;flow&quot;,
scale = 0.00047194744319999999,
default = &quot;m3/min&quot;,
link = &quot;Cubic foot#cubic foot per second&quot;,
},
[&quot;cuft/s&quot;] = {
name1 = &quot;cubic foot per second&quot;,
name2 = &quot;cubic feet per second&quot;,
symbol = &quot;cu&amp;nbsp;ft/s&quot;,
utype = &quot;flow&quot;,
scale = 28316846592e-12,
default = &quot;m3/s&quot;,
},
[&quot;cumi/a&quot;] = {
name1 = &quot;cubic mile per annum&quot;,
name2 = &quot;cubic miles per annum&quot;,
symbol = &quot;cu&amp;nbsp;mi/a&quot;,
utype = &quot;flow&quot;,
scale = 132.08171170940057,
default = &quot;km3/a&quot;,
link = &quot;Cubic foot per second&quot;,
},
[&quot;cuyd/h&quot;] = {
name1 = &quot;cubic yard per hour&quot;,
name2 = &quot;cubic yards per hour&quot;,
symbol = &quot;cuyd/h&quot;,
utype = &quot;flow&quot;,
scale = 0.00021237634944000001,
default = &quot;m3/h&quot;,
link = &quot;Cubic foot per minute&quot;,
},
[&quot;cuyd/s&quot;] = {
name1 = &quot;cubic yard per second&quot;,
name2 = &quot;cubic yards per second&quot;,
symbol = &quot;cu&amp;nbsp;yd/s&quot;,
utype = &quot;flow&quot;,
scale = 0.76455485798400002,
default = &quot;m3/s&quot;,
},
[&quot;Goilbbl/a&quot;] = {
name1 = &quot;billion barrels per year&quot;,
name2 = &quot;billion barrels per year&quot;,
symbol = &quot;Gbbl/a&quot;,
utype = &quot;flow&quot;,
scale = 5.0380033629933836,
default = &quot;v * 1.58987294928 &lt; 10 ! e6 ! e9 ! m3/a&quot;,
link = &quot;Barrel per day&quot;,
},
[&quot;impgal/h&quot;] = {
name1 = &quot;imperial gallon per hour&quot;,
name2 = &quot;imperial gallons per hour&quot;,
symbol = &quot;imp&amp;nbsp;gal/h&quot;,
utype = &quot;flow&quot;,
scale = 1.2628027777777779e-6,
default = &quot;m3/h&quot;,
link = &quot;Gallon&quot;,
},
[&quot;impgal/min&quot;] = {
name1 = &quot;imperial gallon per minute&quot;,
name2 = &quot;imperial gallons per minute&quot;,
symbol = &quot;imp gal/min&quot;,
utype = &quot;flow&quot;,
scale = 7.5768166666666671e-5,
default = &quot;m3/s&quot;,
link = &quot;Gallon&quot;,
},
[&quot;impgal/s&quot;] = {
name1 = &quot;imperial gallon per second&quot;,
name2 = &quot;imperial gallons per second&quot;,
symbol = &quot;impgal/s&quot;,
utype = &quot;flow&quot;,
scale = 0.00454609,
default = &quot;m3/s&quot;,
link = &quot;Imperial gallons per second&quot;,
},
[&quot;km3/a&quot;] = {
name1 = &quot;cubic kilometre per annum&quot;,
name1_us = &quot;cubic kilometer per annum&quot;,
name2 = &quot;cubic kilometres per annum&quot;,
name2_us = &quot;cubic kilometers per annum&quot;,
symbol = &quot;km&lt;sup&gt;3&lt;/sup&gt;/a&quot;,
utype = &quot;flow&quot;,
scale = 31.68808781402895,
default = &quot;cumi/a&quot;,
link = &quot;Cubic metre per second&quot;,
},
[&quot;km3/d&quot;] = {
name1 = &quot;cubic kilometre per day&quot;,
name1_us = &quot;cubic kilometer per day&quot;,
name2 = &quot;cubic kilometres per day&quot;,
name2_us = &quot;cubic kilometers per day&quot;,
symbol = &quot;km&lt;sup&gt;3&lt;/sup&gt;/d&quot;,
utype = &quot;flow&quot;,
scale = 11574.074074074075,
default = &quot;cuft/d&quot;,
link = &quot;Cubic metre per second&quot;,
},
[&quot;koilbbl/a&quot;] = {
name1 = &quot;thousand barrels per year&quot;,
name2 = &quot;thousand barrels per year&quot;,
symbol = &quot;kbbl/a&quot;,
utype = &quot;flow&quot;,
scale = 5.0380033629933841e-6,
default = &quot;v * 1.58987294928 &lt; 10 ! ! e3 ! m3/a&quot;,
link = &quot;Barrel per day&quot;,
},
[&quot;koilbbl/d&quot;] = {
name1 = &quot;thousand barrels per day&quot;,
name2 = &quot;thousand barrels per day&quot;,
symbol = &quot;kbbl/d&quot;,
utype = &quot;flow&quot;,
scale = 0.0018401307283333335,
default = &quot;v * 1.58987294928 &lt; 10 ! ! e3 ! m3/d&quot;,
link = &quot;Barrel per day&quot;,
},
[&quot;L/h&quot;] = {
name1 = &quot;litre per hour&quot;,
name1_us = &quot;liter per hour&quot;,
name2 = &quot;litres per hour&quot;,
name2_us = &quot;liters per hour&quot;,
symbol = &quot;L/h&quot;,
utype = &quot;flow&quot;,
scale = 2.7777777777777776e-7,
default = &quot;impgal/h USgal/h&quot;,
link = &quot;Cubic metre per second&quot;,
},
[&quot;L/min&quot;] = {
name1 = &quot;litre per minute&quot;,
name1_us = &quot;liter per minute&quot;,
name2 = &quot;litres per minute&quot;,
name2_us = &quot;liters per minute&quot;,
symbol = &quot;L/min&quot;,
utype = &quot;flow&quot;,
scale = 1.6666666666666667e-5,
default = &quot;impgal/min USgal/min&quot;,
link = &quot;Cubic metre per second&quot;,
},
[&quot;L/s&quot;] = {
name1 = &quot;litre per second&quot;,
name1_us = &quot;liter per second&quot;,
name2 = &quot;litres per second&quot;,
name2_us = &quot;liters per second&quot;,
symbol = &quot;L/s&quot;,
utype = &quot;flow&quot;,
scale = 0.001,
default = &quot;cuft/s&quot;,
link = &quot;Cubic metre per second&quot;,
},
[&quot;m3/a&quot;] = {
name1 = &quot;cubic metre per annum&quot;,
name1_us = &quot;cubic meter per annum&quot;,
name2 = &quot;cubic metres per annum&quot;,
name2_us = &quot;cubic meters per annum&quot;,
symbol = &quot;m&lt;sup&gt;3&lt;/sup&gt;/a&quot;,
utype = &quot;flow&quot;,
scale = 3.1688087814028947e-8,
default = &quot;cuft/a&quot;,
link = &quot;Cubic metre per second&quot;,
},
[&quot;m3/d&quot;] = {
name1 = &quot;cubic metre per day&quot;,
name1_us = &quot;cubic meter per day&quot;,
name2 = &quot;cubic metres per day&quot;,
name2_us = &quot;cubic meters per day&quot;,
symbol = &quot;m&lt;sup&gt;3&lt;/sup&gt;/d&quot;,
utype = &quot;flow&quot;,
scale = 1.1574074074074073e-5,
default = &quot;cuft/d&quot;,
link = &quot;Cubic metre per second&quot;,
},
[&quot;m3/h&quot;] = {
name1 = &quot;cubic metre per hour&quot;,
name1_us = &quot;cubic meter per hour&quot;,
name2 = &quot;cubic metres per hour&quot;,
name2_us = &quot;cubic meters per hour&quot;,
symbol = &quot;m&lt;sup&gt;3&lt;/sup&gt;/h&quot;,
utype = &quot;flow&quot;,
scale = 0.00027777777777777778,
default = &quot;cuft/h&quot;,
link = &quot;Cubic metre per second&quot;,
},
[&quot;m3/min&quot;] = {
name1 = &quot;cubic metre per minute&quot;,
name1_us = &quot;cubic meter per minute&quot;,
name2 = &quot;cubic metres per minute&quot;,
name2_us = &quot;cubic meters per minute&quot;,
symbol = &quot;m&lt;sup&gt;3&lt;/sup&gt;/min&quot;,
utype = &quot;flow&quot;,
scale = 0.016666666666666666,
default = &quot;cuft/min&quot;,
link = &quot;Cubic metre per second&quot;,
},
[&quot;m3/s&quot;] = {
name1 = &quot;cubic metre per second&quot;,
name1_us = &quot;cubic meter per second&quot;,
name2 = &quot;cubic metres per second&quot;,
name2_us = &quot;cubic meters per second&quot;,
symbol = &quot;m&lt;sup&gt;3&lt;/sup&gt;/s&quot;,
utype = &quot;flow&quot;,
scale = 1,
default = &quot;cuft/s&quot;,
},
[&quot;Moilbbl/a&quot;] = {
name1 = &quot;million barrels per year&quot;,
name2 = &quot;million barrels per year&quot;,
symbol = &quot;Mbbl/a&quot;,
utype = &quot;flow&quot;,
scale = 0.0050380033629933837,
default = &quot;v * 1.58987294928 &lt; 10 ! e3 ! e6 ! m3/a&quot;,
link = &quot;Barrel per day&quot;,
},
[&quot;Moilbbl/d&quot;] = {
name1 = &quot;million barrels per day&quot;,
name2 = &quot;million barrels per day&quot;,
symbol = &quot;Mbbl/d&quot;,
utype = &quot;flow&quot;,
scale = 1.8401307283333335,
default = &quot;v * 1.58987294928 &lt; 10 ! e3 ! e6 ! m3/d&quot;,
link = &quot;Barrel per day&quot;,
},
[&quot;oilbbl/a&quot;] = {
name1 = &quot;barrel per year&quot;,
name2 = &quot;barrels per year&quot;,
symbol = &quot;bbl/a&quot;,
utype = &quot;flow&quot;,
scale = 5.0380033629933841e-9,
default = &quot;m3/a&quot;,
link = &quot;Barrel per day&quot;,
},
[&quot;oilbbl/d&quot;] = {
name1 = &quot;barrel per day&quot;,
name2 = &quot;barrels per day&quot;,
symbol = &quot;bbl/d&quot;,
utype = &quot;flow&quot;,
scale = 1.8401307283333336e-6,
default = &quot;m3/d&quot;,
},
[&quot;Toilbbl/a&quot;] = {
name1 = &quot;trillion barrels per year&quot;,
name2 = &quot;trillion barrels per year&quot;,
symbol = &quot;Tbbl/a&quot;,
utype = &quot;flow&quot;,
scale = 5038.0033629933832,
default = &quot;v * 1.58987294928 &lt; 10 ! e9 ! e12 ! m3/a&quot;,
link = &quot;Barrel per day&quot;,
},
[&quot;U.S.gal/d&quot;] = {
name1 = &quot;U.S. gallon per day&quot;,
name2 = &quot;U.S. gallons per day&quot;,
symbol = &quot;U.S.&amp;nbsp;gal/d&quot;,
utype = &quot;flow&quot;,
scale = 4.3812636388888893e-8,
default = &quot;m3/s&quot;,
customary= 1,
},
[&quot;U.S.gal/h&quot;] = {
name1 = &quot;gallon per hour&quot;,
name2 = &quot;gallons per hour&quot;,
symbol = &quot;gal/h&quot;,
utype = &quot;flow&quot;,
scale = 1.0515032733333334e-6,
default = &quot;m3/h&quot;,
link = &quot;Gallon&quot;,
customary= 2,
},
[&quot;U.S.gal/min&quot;] = {
name1 = &quot;U.S. gallon per minute&quot;,
name2 = &quot;U.S. gallons per minute&quot;,
symbol = &quot;U.S.&amp;nbsp;gal/min&quot;,
utype = &quot;flow&quot;,
scale = 6.3090196400000003e-5,
default = &quot;m3/s&quot;,
link = &quot;Gallon&quot;,
},
[&quot;USgal/a&quot;] = {
name1 = &quot;US gallon per year&quot;,
name2 = &quot;US gallons per year&quot;,
symbol = &quot;US&amp;nbsp;gal/a&quot;,
utype = &quot;flow&quot;,
scale = 1.1995246102365199e-10,
default = &quot;m3/s&quot;,
link = &quot;US gallon per day&quot;,
},
[&quot;USgal/d&quot;] = {
name1 = &quot;US gallon per day&quot;,
name2 = &quot;US gallons per day&quot;,
symbol = &quot;US&amp;nbsp;gal/d&quot;,
utype = &quot;flow&quot;,
scale = 4.3812636388888893e-8,
default = &quot;m3/s&quot;,
},
[&quot;USgal/h&quot;] = {
name1 = &quot;gallon per hour&quot;,
name2 = &quot;gallons per hour&quot;,
symbol = &quot;gal/h&quot;,
utype = &quot;flow&quot;,
scale = 1.0515032733333334e-6,
default = &quot;m3/h&quot;,
link = &quot;Gallon&quot;,
customary= 1,
},
[&quot;USgal/min&quot;] = {
name1 = &quot;US gallon per minute&quot;,
name2 = &quot;US gallons per minute&quot;,
symbol = &quot;US&amp;nbsp;gal/min&quot;,
utype = &quot;flow&quot;,
scale = 6.3090196400000003e-5,
default = &quot;m3/s&quot;,
link = &quot;Gallon&quot;,
},
[&quot;USgal/s&quot;] = {
name1 = &quot;US gallon per second&quot;,
name1_us = &quot;U.S. gallon per second&quot;,
name2 = &quot;US gallons per second&quot;,
name2_us = &quot;U.S. gallons per second&quot;,
symbol = &quot;USgal/s&quot;,
utype = &quot;flow&quot;,
scale = 0.003785411784,
default = &quot;m3/s&quot;,
link = &quot;US gallons per second&quot;,
},
[&quot;ft3/a&quot;] = {
target = &quot;cuft/a&quot;,
},
[&quot;ft3/d&quot;] = {
target = &quot;cuft/d&quot;,
},
[&quot;ft3/h&quot;] = {
target = &quot;cuft/h&quot;,
},
[&quot;ft3/s&quot;] = {
target = &quot;cuft/s&quot;,
},
[&quot;Gcuft/a&quot;] = {
target = &quot;e9cuft/a&quot;,
},
[&quot;Gcuft/d&quot;] = {
target = &quot;e9cuft/d&quot;,
},
[&quot;kcuft/a&quot;] = {
target = &quot;e3cuft/a&quot;,
},
[&quot;kcuft/d&quot;] = {
target = &quot;e3cuft/d&quot;,
},
[&quot;kcuft/s&quot;] = {
target = &quot;e3cuft/s&quot;,
},
[&quot;Mcuft/a&quot;] = {
target = &quot;e6cuft/a&quot;,
},
[&quot;Mcuft/d&quot;] = {
target = &quot;e6cuft/d&quot;,
},
[&quot;Mcuft/s&quot;] = {
target = &quot;e6cuft/s&quot;,
},
[&quot;m³/s&quot;] = {
target = &quot;m3/s&quot;,
},
[&quot;Tcuft/a&quot;] = {
target = &quot;e12cuft/a&quot;,
},
[&quot;Tcuft/d&quot;] = {
target = &quot;e12cuft/d&quot;,
},
[&quot;u.s.gal/min&quot;] = {
target = &quot;U.S.gal/min&quot;,
},
[&quot;usgal/min&quot;] = {
target = &quot;USgal/min&quot;,
},
[&quot;-LTf&quot;] = {
name1 = &quot;long ton-force&quot;,
name2 = &quot;long tons-force&quot;,
symbol = &quot;LTf&quot;,
utype = &quot;force&quot;,
scale = 9964.01641818352,
default = &quot;kN&quot;,
},
[&quot;-STf&quot;] = {
name1 = &quot;short ton-force&quot;,
name2 = &quot;short tons-force&quot;,
symbol = &quot;STf&quot;,
utype = &quot;force&quot;,
scale = 8896.443230521,
default = &quot;kN&quot;,
},
[&quot;dyn&quot;] = {
name1 = &quot;dyne&quot;,
symbol = &quot;dyn&quot;,
utype = &quot;force&quot;,
scale = 0.00001,
default = &quot;gr-f&quot;,
},
[&quot;g-f&quot;] = {
name1 = &quot;gram-force&quot;,
name2 = &quot;grams-force&quot;,
symbol = &quot;g&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;force&quot;,
scale = 0.00980665,
default = &quot;mN oz-f&quot;,
link = &quot;Kilogram-force&quot;,
},
[&quot;gf&quot;] = {
name1 = &quot;gram-force&quot;,
name2 = &quot;grams-force&quot;,
symbol = &quot;gf&quot;,
utype = &quot;force&quot;,
scale = 0.00980665,
default = &quot;mN ozf&quot;,
link = &quot;Kilogram-force&quot;,
},
[&quot;gr-f&quot;] = {
name1 = &quot;grain-force&quot;,
name2 = &quot;grains-force&quot;,
symbol = &quot;gr&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;force&quot;,
scale = 0.0006354602307515,
default = &quot;μN&quot;,
link = &quot;Pound-force&quot;,
},
[&quot;grf&quot;] = {
name1 = &quot;grain-force&quot;,
name2 = &quot;grains-force&quot;,
symbol = &quot;grf&quot;,
utype = &quot;force&quot;,
scale = 0.0006354602307515,
default = &quot;μN&quot;,
link = &quot;Pound-force&quot;,
},
[&quot;kdyn&quot;] = {
name1 = &quot;kilodyne&quot;,
symbol = &quot;kdyn&quot;,
utype = &quot;force&quot;,
scale = 0.01,
default = &quot;oz-f&quot;,
link = &quot;Dyne&quot;,
},
[&quot;kg-f&quot;] = {
name1 = &quot;kilogram-force&quot;,
name2 = &quot;kilograms-force&quot;,
symbol = &quot;kg&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;force&quot;,
scale = 9.80665,
default = &quot;N lb-f&quot;,
},
[&quot;kgf&quot;] = {
name1 = &quot;kilogram-force&quot;,
name2 = &quot;kilograms-force&quot;,
symbol = &quot;kgf&quot;,
utype = &quot;force&quot;,
scale = 9.80665,
default = &quot;N lbf&quot;,
},
[&quot;kp&quot;] = {
name1 = &quot;kilopond&quot;,
symbol = &quot;kp&quot;,
utype = &quot;force&quot;,
scale = 9.80665,
default = &quot;N lb-f&quot;,
link = &quot;Kilogram-force&quot;,
},
[&quot;L/T-f&quot;] = {
name1 = &quot;long ton-force&quot;,
name2 = &quot;long tons-force&quot;,
symbol = &quot;L/T&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;force&quot;,
scale = 9964.01641818352,
default = &quot;kN&quot;,
},
[&quot;L/Tf&quot;] = {
name1 = &quot;long ton-force&quot;,
name2 = &quot;long tons-force&quot;,
symbol = &quot;L/Tf&quot;,
utype = &quot;force&quot;,
scale = 9964.01641818352,
default = &quot;kN&quot;,
},
[&quot;lb-f&quot;] = {
name1 = &quot;pound-force&quot;,
name2 = &quot;pounds-force&quot;,
symbol = &quot;lb&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;force&quot;,
scale = 4.4482216152605,
default = &quot;N&quot;,
},
[&quot;lbf&quot;] = {
name1 = &quot;pound-force&quot;,
name2 = &quot;pounds-force&quot;,
symbol = &quot;lbf&quot;,
utype = &quot;force&quot;,
scale = 4.4482216152605,
default = &quot;N&quot;,
},
[&quot;lb(f)&quot;] = {
name1 = &quot;pound&quot;,
symbol = &quot;lb&quot;,
utype = &quot;force&quot;,
scale = 4.4482216152605,
default = &quot;N&quot;,
link = &quot;Pound-force&quot;,
},
[&quot;LT-f&quot;] = {
name1 = &quot;long ton-force&quot;,
name2 = &quot;long tons-force&quot;,
symbol = &quot;LT&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;force&quot;,
scale = 9964.01641818352,
default = &quot;kN&quot;,
},
[&quot;LTf&quot;] = {
name1 = &quot;long ton-force&quot;,
name2 = &quot;long tons-force&quot;,
symbol = &quot;LTf&quot;,
usename = 1,
utype = &quot;force&quot;,
scale = 9964.01641818352,
default = &quot;kN&quot;,
},
[&quot;Mdyn&quot;] = {
name1 = &quot;megadyne&quot;,
symbol = &quot;Mdyn&quot;,
utype = &quot;force&quot;,
scale = 10,
default = &quot;lb-f&quot;,
link = &quot;Dyne&quot;,
},
[&quot;mdyn&quot;] = {
name1 = &quot;millidyne&quot;,
symbol = &quot;mdyn&quot;,
utype = &quot;force&quot;,
scale = 0.00000001,
default = &quot;gr-f&quot;,
link = &quot;Dyne&quot;,
},
[&quot;mg-f&quot;] = {
name1 = &quot;milligram-force&quot;,
name2 = &quot;milligrams-force&quot;,
symbol = &quot;mg&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;force&quot;,
scale = 0.00000980665,
default = &quot;μN gr-f&quot;,
link = &quot;Kilogram-force&quot;,
},
[&quot;mgf&quot;] = {
name1 = &quot;milligram-force&quot;,
name2 = &quot;milligrams-force&quot;,
symbol = &quot;mgf&quot;,
utype = &quot;force&quot;,
scale = 0.00000980665,
default = &quot;μN grf&quot;,
link = &quot;Kilogram-force&quot;,
},
[&quot;Mp&quot;] = {
name1 = &quot;megapond&quot;,
symbol = &quot;Mp&quot;,
utype = &quot;force&quot;,
scale = 9806.65,
default = &quot;kN LT-f ST-f&quot;,
link = &quot;Kilogram-force&quot;,
},
[&quot;mp&quot;] = {
name1 = &quot;millipond&quot;,
symbol = &quot;mp&quot;,
utype = &quot;force&quot;,
scale = 0.00000980665,
default = &quot;μN gr-f&quot;,
link = &quot;Kilogram-force&quot;,
},
[&quot;N&quot;] = {
_name1 = &quot;newton&quot;,
_symbol = &quot;N&quot;,
utype = &quot;force&quot;,
scale = 1,
prefixes = 1,
default = &quot;lb-f&quot;,
link = &quot;Newton (unit)&quot;,
},
[&quot;oz-f&quot;] = {
name1 = &quot;ounce-force&quot;,
name2 = &quot;ounces-force&quot;,
symbol = &quot;oz&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;force&quot;,
scale = 0.2780138203095378125,
default = &quot;mN&quot;,
link = &quot;Pound-force&quot;,
},
[&quot;ozf&quot;] = {
name1 = &quot;ounce-force&quot;,
name2 = &quot;ounces-force&quot;,
symbol = &quot;ozf&quot;,
utype = &quot;force&quot;,
scale = 0.2780138203095378125,
default = &quot;mN&quot;,
link = &quot;Pound-force&quot;,
},
[&quot;p&quot;] = {
name1 = &quot;pond&quot;,
symbol = &quot;p&quot;,
utype = &quot;force&quot;,
scale = 0.00980665,
default = &quot;mN oz-f&quot;,
link = &quot;Kilogram-force&quot;,
},
[&quot;pdl&quot;] = {
name1 = &quot;poundal&quot;,
symbol = &quot;pdl&quot;,
utype = &quot;force&quot;,
scale = 0.138254954376,
default = &quot;N&quot;,
},
[&quot;S/T-f&quot;] = {
name1 = &quot;short ton-force&quot;,
name2 = &quot;short tons-force&quot;,
symbol = &quot;S/T&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;force&quot;,
scale = 8896.443230521,
default = &quot;kN&quot;,
},
[&quot;S/Tf&quot;] = {
name1 = &quot;short ton-force&quot;,
name2 = &quot;short tons-force&quot;,
symbol = &quot;S/Tf&quot;,
utype = &quot;force&quot;,
scale = 8896.443230521,
default = &quot;kN&quot;,
},
[&quot;ST-f&quot;] = {
name1 = &quot;short ton-force&quot;,
name2 = &quot;short tons-force&quot;,
symbol = &quot;ST&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;force&quot;,
scale = 8896.443230521,
default = &quot;kN&quot;,
},
[&quot;STf&quot;] = {
name1 = &quot;short ton-force&quot;,
name2 = &quot;short tons-force&quot;,
symbol = &quot;STf&quot;,
usename = 1,
utype = &quot;force&quot;,
scale = 8896.443230521,
default = &quot;kN&quot;,
},
[&quot;t-f&quot;] = {
name1 = &quot;tonne-force&quot;,
name2 = &quot;tonnes-force&quot;,
symbol = &quot;t&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;force&quot;,
scale = 9806.65,
default = &quot;kN LT-f ST-f&quot;,
link = &quot;Ton-force#Tonne-force&quot;,
},
[&quot;tf&quot;] = {
name1 = &quot;tonne-force&quot;,
name2 = &quot;tonnes-force&quot;,
symbol = &quot;tf&quot;,
utype = &quot;force&quot;,
scale = 9806.65,
default = &quot;kN LTf STf&quot;,
link = &quot;Ton-force#Tonne-force&quot;,
},
[&quot;dyne&quot;] = {
target = &quot;dyn&quot;,
},
[&quot;newtons&quot;] = {
target = &quot;N&quot;,
},
[&quot;poundal&quot;] = {
target = &quot;pdl&quot;,
},
[&quot;tonne-force&quot;] = {
target = &quot;tf&quot;,
},
[&quot;impgal/mi&quot;] = {
per = { &quot;@impgal&quot;, &quot;mi&quot; },
utype = &quot;fuel efficiency&quot;,
invert = 1,
iscomplex= true,
default = &quot;l/km USgal/mi&quot;,
},
[&quot;km/L&quot;] = {
per = { &quot;km&quot;, &quot;L&quot; },
utype = &quot;fuel efficiency&quot;,
invert = -1,
iscomplex= true,
default = &quot;mpgimp mpgus&quot;,
},
[&quot;km/l&quot;] = {
per = { &quot;km&quot;, &quot;l&quot; },
utype = &quot;fuel efficiency&quot;,
invert = -1,
iscomplex= true,
default = &quot;mpgimp mpgus&quot;,
},
[&quot;L/100 km&quot;] = {
per = { &quot;L&quot;, &quot;100km&quot; },
utype = &quot;fuel efficiency&quot;,
invert = 1,
iscomplex= true,
default = &quot;mpgimp mpgus&quot;,
symlink = &quot;[[Fuel economy in automobiles#Units of measure|L/100&amp;nbsp;km]]&quot;,
},
[&quot;l/100 km&quot;] = {
per = { &quot;l&quot;, &quot;100km&quot; },
utype = &quot;fuel efficiency&quot;,
invert = 1,
iscomplex= true,
default = &quot;mpgimp mpgus&quot;,
symlink = &quot;[[Fuel economy in automobiles#Units of measure|l/100&amp;nbsp;km]]&quot;,
},
[&quot;L/km&quot;] = {
per = { &quot;L&quot;, &quot;km&quot; },
utype = &quot;fuel efficiency&quot;,
invert = 1,
iscomplex= true,
default = &quot;mpgimp mpgus&quot;,
},
[&quot;l/km&quot;] = {
per = { &quot;l&quot;, &quot;km&quot; },
utype = &quot;fuel efficiency&quot;,
invert = 1,
iscomplex= true,
default = &quot;mpgimp mpgus&quot;,
},
[&quot;mi/impqt&quot;] = {
per = { &quot;mi&quot;, &quot;impqt&quot; },
utype = &quot;fuel efficiency&quot;,
invert = -1,
iscomplex= true,
default = &quot;km/L&quot;,
},
[&quot;mi/U.S.qt&quot;] = {
per = { &quot;mi&quot;, &quot;U.S.qt&quot; },
utype = &quot;fuel efficiency&quot;,
invert = -1,
iscomplex= true,
default = &quot;km/L&quot;,
},
[&quot;mi/USqt&quot;] = {
per = { &quot;mi&quot;, &quot;USqt&quot; },
utype = &quot;fuel efficiency&quot;,
invert = -1,
iscomplex= true,
default = &quot;km/L&quot;,
},
[&quot;mi/usqt&quot;] = {
per = { &quot;mi&quot;, &quot;usqt&quot; },
utype = &quot;fuel efficiency&quot;,
invert = -1,
iscomplex= true,
default = &quot;km/L&quot;,
},
[&quot;mpgimp&quot;] = {
per = { &quot;mi&quot;, &quot;@impgal&quot; },
symbol = &quot;mpg&lt;sub&gt;&amp;#8209;imp&lt;/sub&gt;&quot;,
utype = &quot;fuel efficiency&quot;,
invert = -1,
iscomplex= true,
default = &quot;L/100 km+mpgus&quot;,
symlink = &quot;[[Fuel economy in automobiles#Units of measure|mpg]]&lt;sub&gt;&amp;#8209;[[Imperial units|imp]]&lt;/sub&gt;&quot;,
},
[&quot;mpgus&quot;] = {
per = { &quot;mi&quot;, &quot;+USgal&quot; },
symbol = &quot;mpg&lt;sub&gt;&amp;#8209;US&lt;/sub&gt;&quot;,
utype = &quot;fuel efficiency&quot;,
invert = -1,
iscomplex= true,
default = &quot;L/100 km+mpgimp&quot;,
symlink = &quot;[[Fuel economy in automobiles#Units of measure|mpg]]&lt;sub&gt;&amp;#8209;[[United States customary units|US]]&lt;/sub&gt;&quot;,
},
[&quot;U.S.gal/mi&quot;] = {
per = { &quot;*U.S.gal&quot;, &quot;mi&quot; },
sp_us = true,
utype = &quot;fuel efficiency&quot;,
invert = 1,
iscomplex= true,
default = &quot;l/km impgal/mi&quot;,
},
[&quot;usgal/mi&quot;] = {
per = { &quot;+USgal&quot;, &quot;mi&quot; },
utype = &quot;fuel efficiency&quot;,
invert = 1,
iscomplex= true,
default = &quot;l/km impgal/mi&quot;,
},
[&quot;L/100km&quot;] = {
target = &quot;L/100 km&quot;,
},
[&quot;l/100km&quot;] = {
target = &quot;l/100 km&quot;,
},
[&quot;mpg&quot;] = {
shouldbe = &quot;Use %{mpgus%} for miles per US gallon or %{mpgimp%} for miles per imperial gallon (not %{mpg%})&quot;,
},
[&quot;mpgU.S.&quot;] = {
target = &quot;mpgus&quot;,
symbol = &quot;mpg&lt;sub&gt;&amp;#8209;U.S.&lt;/sub&gt;&quot;,
sp_us = true,
symlink = &quot;[[Fuel economy in automobiles#Units of measure|mpg]]&lt;sub&gt;&amp;#8209;[[United States customary units|U.S.]]&lt;/sub&gt;&quot;,
},
[&quot;mpgu.s.&quot;] = {
target = &quot;mpgus&quot;,
symbol = &quot;mpg&lt;sub&gt;&amp;#8209;U.S.&lt;/sub&gt;&quot;,
sp_us = true,
symlink = &quot;[[Fuel economy in automobiles#Units of measure|mpg]]&lt;sub&gt;&amp;#8209;[[United States customary units|U.S.]]&lt;/sub&gt;&quot;,
},
[&quot;mpgUS&quot;] = {
target = &quot;mpgus&quot;,
},
[&quot;USgal/mi&quot;] = {
target = &quot;usgal/mi&quot;,
},
[&quot;kPa/m&quot;] = {
per = { &quot;kPa&quot;, &quot;-m-frac&quot; },
utype = &quot;fracture gradient&quot;,
default = &quot;psi/ft&quot;,
},
[&quot;psi/ft&quot;] = {
per = { &quot;psi&quot;, &quot;-ft-frac&quot; },
utype = &quot;fracture gradient&quot;,
default = &quot;kPa/m&quot;,
},
[&quot;cm/km&quot;] = {
name1 = &quot;centimetre per kilometre&quot;,
name1_us = &quot;centimeter per kilometer&quot;,
name2 = &quot;centimetres per kilometre&quot;,
name2_us = &quot;centimeters per kilometer&quot;,
symbol = &quot;cm/km&quot;,
utype = &quot;gradient&quot;,
scale = 0.00001,
default = &quot;ft/mi&quot;,
link = &quot;Grade (slope)&quot;,
},
[&quot;ft/mi&quot;] = {
name1 = &quot;foot per mile&quot;,
name2 = &quot;feet per mile&quot;,
symbol = &quot;ft/mi&quot;,
utype = &quot;gradient&quot;,
scale = 0.00018939393939393939,
default = &quot;v &lt; 5.28 ! c ! ! m/km&quot;,
link = &quot;Grade (slope)&quot;,
},
[&quot;ft/nmi&quot;] = {
name1 = &quot;foot per nautical mile&quot;,
name2 = &quot;feet per nautical mile&quot;,
symbol = &quot;ft/nmi&quot;,
utype = &quot;gradient&quot;,
scale = 0.00016457883369330455,
default = &quot;v &lt; 6.076 ! c ! ! m/km&quot;,
link = &quot;Grade (slope)&quot;,
},
[&quot;in/ft&quot;] = {
name1 = &quot;inch per foot&quot;,
name2 = &quot;inches per foot&quot;,
symbol = &quot;in/ft&quot;,
utype = &quot;gradient&quot;,
scale = 0.083333333333333329,
default = &quot;mm/m&quot;,
link = &quot;Grade (slope)&quot;,
},
[&quot;in/mi&quot;] = {
name1 = &quot;inch per mile&quot;,
name2 = &quot;inches per mile&quot;,
symbol = &quot;in/mi&quot;,
utype = &quot;gradient&quot;,
scale = 1.5782828282828283e-5,
default = &quot;v &lt; 0.6336 ! m ! c ! m/km&quot;,
link = &quot;Grade (slope)&quot;,
},
[&quot;m/km&quot;] = {
name1 = &quot;metre per kilometre&quot;,
name1_us = &quot;meter per kilometer&quot;,
name2 = &quot;metres per kilometre&quot;,
name2_us = &quot;meters per kilometer&quot;,
symbol = &quot;m/km&quot;,
utype = &quot;gradient&quot;,
scale = 0.001,
default = &quot;ft/mi&quot;,
link = &quot;Grade (slope)&quot;,
},
[&quot;mm/km&quot;] = {
name1 = &quot;millimetre per kilometre&quot;,
name1_us = &quot;millimeter per kilometer&quot;,
name2 = &quot;millimetres per kilometre&quot;,
name2_us = &quot;millimeters per kilometer&quot;,
symbol = &quot;mm/km&quot;,
utype = &quot;gradient&quot;,
scale = 0.000001,
default = &quot;in/mi&quot;,
link = &quot;Grade (slope)&quot;,
},
[&quot;mm/m&quot;] = {
name1 = &quot;millimetre per metre&quot;,
name1_us = &quot;millimeter per meter&quot;,
name2 = &quot;millimetres per metre&quot;,
name2_us = &quot;millimeters per meter&quot;,
symbol = &quot;mm/m&quot;,
utype = &quot;gradient&quot;,
scale = 0.001,
default = &quot;in/ft&quot;,
link = &quot;Grade (slope)&quot;,
},
[&quot;admi&quot;] = {
name1 = &quot;admiralty mile&quot;,
symbol = &quot;nmi&amp;nbsp;(admiralty)&quot;,
utype = &quot;length&quot;,
scale = 1853.184,
default = &quot;km mi&quot;,
link = &quot;Nautical mile&quot;,
},
[&quot;AU&quot;] = {
name1 = &quot;astronomical unit&quot;,
symbol = &quot;AU&quot;,
utype = &quot;length&quot;,
scale = 149597870700,
default = &quot;km mi&quot;,
},
[&quot;Brnmi&quot;] = {
name1 = &quot;British nautical mile&quot;,
symbol = &quot;(Brit)&amp;nbsp;nmi&quot;,
utype = &quot;length&quot;,
scale = 1853.184,
default = &quot;km mi&quot;,
link = &quot;Nautical mile&quot;,
},
[&quot;bu&quot;] = {
name2 = &quot;bu&quot;,
symbol = &quot;bu&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 0.0030303030303030303,
default = &quot;mm&quot;,
link = &quot;Japanese units of measurement#Length&quot;,
},
[&quot;ch&quot;] = {
name1 = &quot;chain&quot;,
symbol = &quot;ch&quot;,
utype = &quot;length&quot;,
scale = 20.1168,
default = &quot;ft m&quot;,
subdivs = { [&quot;ft&quot;] = { 66, default = &quot;m&quot; }, [&quot;yd&quot;] = { 22, default = &quot;m&quot; } },
link = &quot;Chain (unit)&quot;,
},
[&quot;chlk&quot;] = {
name1 = &quot;[[Chain (unit)|chain]]&quot;,
symbol = &quot;[[Chain (unit)|ch]]&quot;,
utype = &quot;length&quot;,
scale = 20.1168,
default = &quot;ft m&quot;,
link = &quot;&quot;,
},
[&quot;chain&quot;] = {
symbol = &quot;chain&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 20.1168,
default = &quot;ft m&quot;,
subdivs = { [&quot;ft&quot;] = { 66, default = &quot;m&quot; }, [&quot;yd&quot;] = { 22, default = &quot;m&quot; } },
link = &quot;Chain (unit)&quot;,
},
[&quot;chainlk&quot;] = {
symbol = &quot;[[Chain (unit)|chain]]&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 20.1168,
default = &quot;ft m&quot;,
link = &quot;&quot;,
},
[&quot;dpcm&quot;] = {
name2 = &quot;dot/cm&quot;,
symbol = &quot;dot/cm&quot;,
utype = &quot;length&quot;,
scale = 100,
invert = -1,
iscomplex= true,
default = &quot;dpi&quot;,
link = &quot;Dots per inch&quot;,
},
[&quot;dpi&quot;] = {
name2 = &quot;DPI&quot;,
symbol = &quot;DPI&quot;,
utype = &quot;length&quot;,
scale = 39.370078740157481,
invert = -1,
iscomplex= true,
default = &quot;pitch&quot;,
link = &quot;Dots per inch&quot;,
},
[&quot;fathom&quot;] = {
symbol = &quot;fathom&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 1.8288,
default = &quot;ft m&quot;,
},
[&quot;foot&quot;] = {
name1 = &quot;foot&quot;,
name2 = &quot;foot&quot;,
symbol = &quot;ft&quot;,
utype = &quot;length&quot;,
scale = 0.3048,
default = &quot;m&quot;,
subdivs = { [&quot;in&quot;] = { 12, default = &quot;m&quot; } },
link = &quot;Foot (unit)&quot;,
},
[&quot;ft&quot;] = {
name1 = &quot;foot&quot;,
name2 = &quot;feet&quot;,
symbol = &quot;ft&quot;,
utype = &quot;length&quot;,
scale = 0.3048,
exception= &quot;integer_more_precision&quot;,
default = &quot;m&quot;,
subdivs = { [&quot;in&quot;] = { 12, default = &quot;m&quot; } },
link = &quot;Foot (unit)&quot;,
},
[&quot;furlong&quot;] = {
symbol = &quot;furlong&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 201.168,
default = &quot;ft m&quot;,
},
[&quot;Gly&quot;] = {
name1 = &quot;gigalight-year&quot;,
symbol = &quot;Gly&quot;,
utype = &quot;length&quot;,
scale = 9.4607304725808e24,
default = &quot;Mpc&quot;,
link = &quot;Light-year#Distances in light-years&quot;,
},
[&quot;Gpc&quot;] = {
name1 = &quot;gigaparsec&quot;,
symbol = &quot;Gpc&quot;,
utype = &quot;length&quot;,
scale = 3.0856775814671916e25,
default = &quot;Gly&quot;,
link = &quot;Parsec#Megaparsecs and gigaparsecs&quot;,
},
[&quot;hand&quot;] = {
name1 = &quot;hand&quot;,
symbol = &quot;h&quot;,
utype = &quot;length&quot;,
builtin = &quot;hand&quot;,
scale = 0.1016,
iscomplex= true,
default = &quot;in cm&quot;,
link = &quot;Hand (unit)&quot;,
},
[&quot;in&quot;] = {
name1 = &quot;inch&quot;,
name2 = &quot;inches&quot;,
symbol = &quot;in&quot;,
utype = &quot;length&quot;,
scale = 0.0254,
exception= &quot;subunit_more_precision&quot;,
default = &quot;mm&quot;,
},
[&quot;inabbreviated&quot;] = {
name2 = &quot;in&quot;,
symbol = &quot;in&quot;,
utype = &quot;length&quot;,
scale = 0.0254,
default = &quot;mm&quot;,
link = &quot;Inch&quot;,
},
[&quot;kly&quot;] = {
name1 = &quot;kilolight-year&quot;,
symbol = &quot;kly&quot;,
utype = &quot;length&quot;,
scale = 9.4607304725808e18,
default = &quot;pc&quot;,
link = &quot;Light-year#Distances in light-years&quot;,
},
[&quot;kpc&quot;] = {
name1 = &quot;kiloparsec&quot;,
symbol = &quot;kpc&quot;,
utype = &quot;length&quot;,
scale = 3.0856775814671916e19,
default = &quot;kly&quot;,
link = &quot;Parsec#Parsecs and kiloparsecs&quot;,
},
[&quot;LD&quot;] = {
name1 = &quot;lunar distance&quot;,
symbol = &quot;LD&quot;,
utype = &quot;length&quot;,
scale = 384403000,
default = &quot;km mi&quot;,
link = &quot;Lunar distance (astronomy)&quot;,
},
[&quot;league&quot;] = {
symbol = &quot;league&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 4828.032,
default = &quot;km&quot;,
link = &quot;League (unit)&quot;,
},
[&quot;ly&quot;] = {
name1 = &quot;light-year&quot;,
symbol = &quot;ly&quot;,
utype = &quot;length&quot;,
scale = 9.4607304725808e15,
default = &quot;AU&quot;,
},
[&quot;m&quot;] = {
_name1 = &quot;metre&quot;,
_name1_us= &quot;meter&quot;,
_symbol = &quot;m&quot;,
utype = &quot;length&quot;,
scale = 1,
prefixes = 1,
default = &quot;v &gt; 0 and v &lt; 3 ! ftin ! ft&quot;,
link = &quot;Metre&quot;,
},
[&quot;mi&quot;] = {
name1 = &quot;mile&quot;,
symbol = &quot;mi&quot;,
utype = &quot;length&quot;,
scale = 1609.344,
default = &quot;km&quot;,
subdivs = { [&quot;ch&quot;] = { 80, default = &quot;km&quot; }, [&quot;chlk&quot;] = { 80, default = &quot;km&quot; }, [&quot;chain&quot;] = { 80, default = &quot;km&quot; }, [&quot;chainlk&quot;] = { 80, default = &quot;km&quot; }, [&quot;ft&quot;] = { 5280, default = &quot;km&quot; }, [&quot;furlong&quot;] = { 8, default = &quot;km&quot; }, [&quot;yd&quot;] = { 1760, default = &quot;km&quot; } },
},
[&quot;mil&quot;] = {
symbol = &quot;mil&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 0.0000254,
default = &quot;mm&quot;,
link = &quot;Thousandth of an inch&quot;,
},
[&quot;Mly&quot;] = {
name1 = &quot;megalight-year&quot;,
symbol = &quot;Mly&quot;,
utype = &quot;length&quot;,
scale = 9.4607304725808e21,
default = &quot;kpc&quot;,
link = &quot;Light-year#Distances in light-years&quot;,
},
[&quot;Mpc&quot;] = {
name1 = &quot;megaparsec&quot;,
symbol = &quot;Mpc&quot;,
utype = &quot;length&quot;,
scale = 3.0856775814671916e22,
default = &quot;Mly&quot;,
link = &quot;Parsec#Megaparsecs and gigaparsecs&quot;,
},
[&quot;NM&quot;] = {
name1 = &quot;nautical mile&quot;,
symbol = &quot;NM&quot;,
utype = &quot;length&quot;,
scale = 1852,
default = &quot;km mi&quot;,
},
[&quot;nmi&quot;] = {
name1 = &quot;nautical mile&quot;,
symbol = &quot;nmi&quot;,
utype = &quot;length&quot;,
scale = 1852,
default = &quot;km mi&quot;,
},
[&quot;oldUKnmi&quot;] = {
name1 = &quot;nautical mile&quot;,
symbol = &quot;nmi&quot;,
utype = &quot;length&quot;,
scale = 1853.184,
default = &quot;km mi&quot;,
},
[&quot;oldUSnmi&quot;] = {
name1 = &quot;nautical mile&quot;,
symbol = &quot;nmi&quot;,
utype = &quot;length&quot;,
scale = 1853.24496,
default = &quot;km mi&quot;,
},
[&quot;pc&quot;] = {
name1 = &quot;parsec&quot;,
symbol = &quot;pc&quot;,
utype = &quot;length&quot;,
scale = 3.0856775814671916e16,
default = &quot;ly&quot;,
},
[&quot;perch&quot;] = {
name2 = &quot;perches&quot;,
symbol = &quot;perch&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 5.0292,
default = &quot;ft m&quot;,
link = &quot;Rod (unit)&quot;,
},
[&quot;pitch&quot;] = {
name2 = &quot;μm&quot;,
symbol = &quot;μm&quot;,
utype = &quot;length&quot;,
scale = 1e-6,
default = &quot;dpi&quot;,
defkey = &quot;pitch&quot;,
linkey = &quot;pitch&quot;,
link = &quot;Dots per inch&quot;,
},
[&quot;pole&quot;] = {
symbol = &quot;pole&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 5.0292,
default = &quot;ft m&quot;,
link = &quot;Rod (unit)&quot;,
},
[&quot;pre1954U.S.nmi&quot;] = {
name1 = &quot;(pre-1954&amp;nbsp;U.S.) nautical mile&quot;,
symbol = &quot;(pre&amp;#8209;1954&amp;nbsp;U.S.) nmi&quot;,
utype = &quot;length&quot;,
scale = 1853.24496,
default = &quot;km mi&quot;,
link = &quot;Nautical mile&quot;,
},
[&quot;pre1954USnmi&quot;] = {
name1 = &quot;(pre-1954&amp;nbsp;US) nautical mile&quot;,
name1_us = &quot;(pre-1954&amp;nbsp;U.S.) nautical mile&quot;,
symbol = &quot;(pre&amp;#8209;1954&amp;nbsp;US) nmi&quot;,
sym_us = &quot;(pre&amp;#8209;1954&amp;nbsp;U.S.) nmi&quot;,
utype = &quot;length&quot;,
scale = 1853.24496,
default = &quot;km mi&quot;,
link = &quot;Nautical mile&quot;,
},
[&quot;rd&quot;] = {
name1 = &quot;rod&quot;,
symbol = &quot;rd&quot;,
utype = &quot;length&quot;,
scale = 5.0292,
default = &quot;ft m&quot;,
link = &quot;Rod (unit)&quot;,
},
[&quot;royal cubit&quot;] = {
name1 = &quot;royal cubit&quot;,
symbol = &quot;cu&quot;,
utype = &quot;length&quot;,
scale = 0.524,
default = &quot;mm&quot;,
},
[&quot;rtkm&quot;] = {
name1 = &quot;route kilometre&quot;,
name1_us = &quot;route kilometer&quot;,
symbol = &quot;km&quot;,
utype = &quot;length&quot;,
scale = 1000,
default = &quot;mi&quot;,
link = &quot;Kilometre&quot;,
},
[&quot;rtmi&quot;] = {
name1 = &quot;route mile&quot;,
symbol = &quot;mi&quot;,
utype = &quot;length&quot;,
scale = 1609.344,
default = &quot;km&quot;,
link = &quot;Mile&quot;,
},
[&quot;shaku&quot;] = {
name2 = &quot;shaku&quot;,
symbol = &quot;shaku&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 0.30303030303030304,
default = &quot;m&quot;,
link = &quot;Shaku (unit)&quot;,
},
[&quot;sm&quot;] = {
name1 = &quot;smoot&quot;,
symbol = &quot;sm&quot;,
utype = &quot;length&quot;,
scale = 1.70180,
default = &quot;m&quot;,
link = &quot;Smoot (unit)&quot;,
},
[&quot;smi&quot;] = {
name1 = &quot;statute mile&quot;,
symbol = &quot;mi&quot;,
utype = &quot;length&quot;,
scale = 1609.344,
default = &quot;km&quot;,
subdivs = { [&quot;chain&quot;] = { 80, default = &quot;km&quot; } },
},
[&quot;solar radius&quot;] = {
name1 = &quot;solar radius&quot;,
name2 = &quot;solar radii&quot;,
symbol = &quot;''R''&lt;sub&gt;☉&lt;/sub&gt;&quot;,
utype = &quot;length&quot;,
scale = 695700e3,
default = &quot;km&quot;,
},
[&quot;sun&quot;] = {
name2 = &quot;sun&quot;,
symbol = &quot;sun&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 0.030303030303030304,
default = &quot;mm&quot;,
link = &quot;Japanese units of measurement#Length&quot;,
},
[&quot;thou&quot;] = {
name2 = &quot;thou&quot;,
symbol = &quot;thou&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 0.0000254,
default = &quot;mm&quot;,
link = &quot;Thousandth of an inch&quot;,
},
[&quot;verst&quot;] = {
symbol = &quot;verst&quot;,
usename = 1,
utype = &quot;length&quot;,
scale = 1066.8,
default = &quot;km mi&quot;,
},
[&quot;yd&quot;] = {
name1 = &quot;yard&quot;,
symbol = &quot;yd&quot;,
utype = &quot;length&quot;,
scale = 0.9144,
default = &quot;m&quot;,
subdivs = { [&quot;ft&quot;] = { 3, default = &quot;m&quot; } },
},
[&quot;μin&quot;] = {
name1 = &quot;microinch&quot;,
name2 = &quot;microinches&quot;,
symbol = &quot;μin&quot;,
utype = &quot;length&quot;,
scale = 0.0000000254,
default = &quot;nm&quot;,
link = &quot;SI prefix#Non-SI units&quot;,
},
[&quot;Å&quot;] = {
name1 = &quot;ångström&quot;,
symbol = &quot;Å&quot;,
utype = &quot;length&quot;,
scale = 0.0000000001,
default = &quot;in&quot;,
link = &quot;Angstrom&quot;,
},
[&quot;Hz&quot;] = {
_name1 = &quot;hertz&quot;,
_name2 = &quot;hertz&quot;,
_symbol = &quot;Hz&quot;,
utype = &quot;length&quot;,
scale = 3.3356409519815204e-9,
invert = -1,
iscomplex= true,
prefixes = 1,
default = &quot;m&quot;,
link = &quot;Hertz&quot;,
},
[&quot;-ft-frac&quot;] = {
target = &quot;ft&quot;,
link = &quot;Fracture gradient&quot;,
},
[&quot;-in-stiff&quot;] = {
target = &quot;in&quot;,
link = &quot;Stiffness&quot;,
},
[&quot;-m-frac&quot;] = {
target = &quot;m&quot;,
link = &quot;Fracture gradient&quot;,
},
[&quot;-m-stiff&quot;] = {
target = &quot;m&quot;,
link = &quot;Stiffness&quot;,
},
[&quot;100km&quot;] = {
target = &quot;km&quot;,
multiplier= 100,
},
[&quot;admiralty nmi&quot;] = {
target = &quot;oldUKnmi&quot;,
},
[&quot;angstrom&quot;] = {
target = &quot;Å&quot;,
},
[&quot;au&quot;] = {
target = &quot;AU&quot;,
symbol = &quot;au&quot;,
},
[&quot;feet&quot;] = {
target = &quot;ft&quot;,
},
[&quot;hands&quot;] = {
target = &quot;hand&quot;,
},
[&quot;inch&quot;] = {
target = &quot;in&quot;,
},
[&quot;light-year&quot;] = {
target = &quot;ly&quot;,
},
[&quot;meter&quot;] = {
target = &quot;m&quot;,
sp_us = true,
},
[&quot;meters&quot;] = {
target = &quot;m&quot;,
sp_us = true,
},
[&quot;metre&quot;] = {
target = &quot;m&quot;,
},
[&quot;metres&quot;] = {
target = &quot;m&quot;,
},
[&quot;micrometre&quot;] = {
target = &quot;μm&quot;,
},
[&quot;micron&quot;] = {
target = &quot;μm&quot;,
default = &quot;μin&quot;,
},
[&quot;mile&quot;] = {
target = &quot;mi&quot;,
},
[&quot;miles&quot;] = {
target = &quot;mi&quot;,
},
[&quot;parsec&quot;] = {
target = &quot;pc&quot;,
},
[&quot;rod&quot;] = {
target = &quot;rd&quot;,
},
[&quot;smoot&quot;] = {
target = &quot;sm&quot;,
},
[&quot;uin&quot;] = {
target = &quot;μin&quot;,
},
[&quot;yard&quot;] = {
target = &quot;yd&quot;,
},
[&quot;yards&quot;] = {
target = &quot;yd&quot;,
},
[&quot;yds&quot;] = {
target = &quot;yd&quot;,
},
[&quot;dtex&quot;] = {
name1 = &quot;decitex&quot;,
name2 = &quot;decitex&quot;,
symbol = &quot;dtex&quot;,
utype = &quot;linear density&quot;,
scale = 1e-7,
default = &quot;lb/yd&quot;,
link = &quot;Units of textile measurement#Tex&quot;,
},
[&quot;kg/cm&quot;] = {
name1 = &quot;kilogram per centimetre&quot;,
name1_us = &quot;kilogram per centimeter&quot;,
name2 = &quot;kilograms per centimetre&quot;,
name2_us = &quot;kilograms per centimeter&quot;,
symbol = &quot;kg/cm&quot;,
utype = &quot;linear density&quot;,
scale = 100,
default = &quot;lb/yd&quot;,
link = &quot;Linear density&quot;,
},
[&quot;kg/m&quot;] = {
name1 = &quot;kilogram per metre&quot;,
name1_us = &quot;kilogram per meter&quot;,
name2 = &quot;kilograms per metre&quot;,
name2_us = &quot;kilograms per meter&quot;,
symbol = &quot;kg/m&quot;,
utype = &quot;linear density&quot;,
scale = 1,
default = &quot;lb/yd&quot;,
link = &quot;Linear density&quot;,
},
[&quot;lb/ft&quot;] = {
name1 = &quot;pound per foot&quot;,
name2 = &quot;pounds per foot&quot;,
symbol = &quot;lb/ft&quot;,
utype = &quot;linear density&quot;,
scale = 1.4881639435695539,
default = &quot;kg/m&quot;,
link = &quot;Linear density&quot;,
},
[&quot;lb/yd&quot;] = {
name1 = &quot;pound per yard&quot;,
name2 = &quot;pounds per yard&quot;,
symbol = &quot;lb/yd&quot;,
utype = &quot;linear density&quot;,
scale = 0.49605464785651798,
default = &quot;kg/m&quot;,
link = &quot;Linear density&quot;,
},
[&quot;G&quot;] = {
_name1 = &quot;gauss&quot;,
_name2 = &quot;gauss&quot;,
_symbol = &quot;G&quot;,
utype = &quot;magnetic field strength&quot;,
scale = 0.0001,
prefixes = 1,
default = &quot;T&quot;,
link = &quot;Gauss (unit)&quot;,
},
[&quot;T&quot;] = {
_name1 = &quot;tesla&quot;,
_symbol = &quot;T&quot;,
utype = &quot;magnetic field strength&quot;,
scale = 1,
prefixes = 1,
default = &quot;G&quot;,
link = &quot;Tesla (unit)&quot;,
},
[&quot;A/m&quot;] = {
name1 = &quot;ampere per metre&quot;,
name1_us = &quot;ampere per meter&quot;,
name2 = &quot;amperes per metre&quot;,
name2_us = &quot;amperes per meter&quot;,
symbol = &quot;A/m&quot;,
utype = &quot;magnetizing field&quot;,
scale = 1,
default = &quot;Oe&quot;,
link = &quot;Magnetic field#Units&quot;,
},
[&quot;kA/m&quot;] = {
name1 = &quot;kiloampere per metre&quot;,
name1_us = &quot;kiloampere per meter&quot;,
name2 = &quot;kiloamperes per metre&quot;,
name2_us = &quot;kiloamperes per meter&quot;,
symbol = &quot;kA/m&quot;,
utype = &quot;magnetizing field&quot;,
scale = 1000,
default = &quot;kOe&quot;,
link = &quot;Magnetic field#Units&quot;,
},
[&quot;MA/m&quot;] = {
name1 = &quot;megaampere per metre&quot;,
name1_us = &quot;megaampere per meter&quot;,
name2 = &quot;megaamperes per metre&quot;,
name2_us = &quot;megaamperes per meter&quot;,
symbol = &quot;MA/m&quot;,
utype = &quot;magnetizing field&quot;,
scale = 1e6,
default = &quot;kOe&quot;,
link = &quot;Magnetic field#Units&quot;,
},
[&quot;Oe&quot;] = {
_name1 = &quot;oersted&quot;,
_symbol = &quot;Oe&quot;,
utype = &quot;magnetizing field&quot;,
scale = 79.5774715,
prefixes = 1,
default = &quot;kA/m&quot;,
link = &quot;Oersted&quot;,
},
[&quot;-Lcwt&quot;] = {
name1 = &quot;hundredweight&quot;,
name2 = &quot;hundredweight&quot;,
symbol = &quot;cwt&quot;,
utype = &quot;mass&quot;,
scale = 50.80234544,
default = &quot;lb&quot;,
},
[&quot;-Scwt&quot;] = {
name1 = &quot;hundredweight&quot;,
name2 = &quot;hundredweight&quot;,
symbol = &quot;cwt&quot;,
utype = &quot;mass&quot;,
scale = 45.359237,
default = &quot;lb&quot;,
},
[&quot;-ST&quot;] = {
name1 = &quot;short ton&quot;,
symbol = &quot;ST&quot;,
utype = &quot;mass&quot;,
scale = 907.18474,
default = &quot;t&quot;,
},
[&quot;carat&quot;] = {
symbol = &quot;carat&quot;,
usename = 1,
utype = &quot;mass&quot;,
scale = 0.0002,
default = &quot;g&quot;,
link = &quot;Carat (mass)&quot;,
},
[&quot;drachm&quot;] = {
name1_us = &quot;dram&quot;,
symbol = &quot;drachm&quot;,
usename = 1,
utype = &quot;mass&quot;,
scale = 0.001771845195,
default = &quot;g&quot;,
link = &quot;Dram (unit)&quot;,
},
[&quot;dram&quot;] = {
target = &quot;drachm&quot;,
},
[&quot;dwt&quot;] = {
name1 = &quot;pennyweight&quot;,
symbol = &quot;dwt&quot;,
utype = &quot;mass&quot;,
scale = 0.00155517384,
default = &quot;oz g&quot;,
},
[&quot;DWton&quot;] = {
symbol = &quot;deadweight ton&quot;,
usename = 1,
utype = &quot;mass&quot;,
scale = 1016.0469088,
default = &quot;DWtonne&quot;,
link = &quot;Tonnage&quot;,
},
[&quot;DWtonne&quot;] = {
symbol = &quot;deadweight tonne&quot;,
usename = 1,
utype = &quot;mass&quot;,
scale = 1000,
default = &quot;DWton&quot;,
link = &quot;Tonnage&quot;,
},
[&quot;g&quot;] = {
_name1 = &quot;gram&quot;,
_symbol = &quot;g&quot;,
utype = &quot;mass&quot;,
scale = 0.001,
prefixes = 1,
default = &quot;oz&quot;,
link = &quot;Gram&quot;,
},
[&quot;gr&quot;] = {
name1 = &quot;grain&quot;,
symbol = &quot;gr&quot;,
utype = &quot;mass&quot;,
scale = 0.00006479891,
default = &quot;g&quot;,
link = &quot;Grain (unit)&quot;,
},
[&quot;Gt&quot;] = {
name1 = &quot;gigatonne&quot;,
symbol = &quot;Gt&quot;,
utype = &quot;mass&quot;,
scale = 1000000000000,
default = &quot;LT ST&quot;,
link = &quot;Tonne&quot;,
},
[&quot;impgalh2o&quot;] = {
name1 = &quot;imperial gallon of water&quot;,
name2 = &quot;imperial gallons of water&quot;,
symbol = &quot;imp&amp;nbsp;gal H&lt;sub&gt;2&lt;/sub&gt;O&quot;,
utype = &quot;mass&quot;,
scale = 4.5359236999999499,
default = &quot;lb kg&quot;,
link = &quot;Imperial gallon&quot;,
},
[&quot;kt&quot;] = {
name1 = &quot;kilotonne&quot;,
symbol = &quot;kt&quot;,
utype = &quot;mass&quot;,
scale = 1000000,
default = &quot;LT ST&quot;,
link = &quot;Tonne&quot;,
},
[&quot;lb&quot;] = {
name1 = &quot;pound&quot;,
symbol = &quot;lb&quot;,
utype = &quot;mass&quot;,
scale = 0.45359237,
exception= &quot;integer_more_precision&quot;,
default = &quot;kg&quot;,
subdivs = { [&quot;oz&quot;] = { 16, default = &quot;kg&quot; } },
link = &quot;Pound (mass)&quot;,
},
[&quot;Lcwt&quot;] = {
name1 = &quot;long hundredweight&quot;,
name2 = &quot;long hundredweight&quot;,
symbol = &quot;Lcwt&quot;,
usename = 1,
utype = &quot;mass&quot;,
scale = 50.80234544,
default = &quot;lb&quot;,
subdivs = { [&quot;qtr&quot;] = { 4, default = &quot;kg&quot; }, [&quot;st&quot;] = { 8, default = &quot;kg&quot; } },
link = &quot;Hundredweight&quot;,
},
[&quot;long cwt&quot;] = {
name1 = &quot;long hundredweight&quot;,
name2 = &quot;long hundredweight&quot;,
symbol = &quot;long&amp;nbsp;cwt&quot;,
utype = &quot;mass&quot;,
scale = 50.80234544,
default = &quot;lb kg&quot;,
subdivs = { [&quot;qtr&quot;] = { 4, default = &quot;kg&quot; } },
link = &quot;Hundredweight&quot;,
},
[&quot;long qtr&quot;] = {
name1 = &quot;long quarter&quot;,
symbol = &quot;long&amp;nbsp;qtr&quot;,
utype = &quot;mass&quot;,
scale = 12.70058636,
default = &quot;lb kg&quot;,
link = &quot;Avoirdupois&quot;,
},
[&quot;LT&quot;] = {
symbol = &quot;long ton&quot;,
usename = 1,
utype = &quot;mass&quot;,
scale = 1016.0469088,
default = &quot;t&quot;,
subdivs = { [&quot;Lcwt&quot;] = { 20, default = &quot;t&quot;, unit = &quot;-Lcwt&quot; } },
},
[&quot;lt&quot;] = {
name1 = &quot;long ton&quot;,
symbol = &quot;LT&quot;,
utype = &quot;mass&quot;,
scale = 1016.0469088,
default = &quot;t&quot;,
subdivs = { [&quot;Lcwt&quot;] = { 20, default = &quot;t&quot;, unit = &quot;-Lcwt&quot; } },
},
[&quot;metric ton&quot;] = {
symbol = &quot;metric ton&quot;,
usename = 1,
utype = &quot;mass&quot;,
scale = 1000,
default = &quot;long ton&quot;,
link = &quot;Tonne&quot;,
},
[&quot;MT&quot;] = {
name1 = &quot;metric ton&quot;,
symbol = &quot;t&quot;,
utype = &quot;mass&quot;,
scale = 1000,
default = &quot;LT ST&quot;,
link = &quot;Tonne&quot;,
},
[&quot;Mt&quot;] = {
name1 = &quot;megatonne&quot;,
symbol = &quot;Mt&quot;,
utype = &quot;mass&quot;,
scale = 1000000000,
default = &quot;LT ST&quot;,
link = &quot;Tonne&quot;,
},
[&quot;oz&quot;] = {
name1 = &quot;ounce&quot;,
symbol = &quot;oz&quot;,
utype = &quot;mass&quot;,
scale = 0.028349523125,
default = &quot;g&quot;,
},
[&quot;ozt&quot;] = {
name1 = &quot;troy ounce&quot;,
symbol = &quot;ozt&quot;,
utype = &quot;mass&quot;,
scale = 0.0311034768,
default = &quot;oz g&quot;,
},
[&quot;pdr&quot;] = {
name1 = &quot;pounder&quot;,
symbol = &quot;pdr&quot;,
utype = &quot;mass&quot;,
scale = 0.45359237,
default = &quot;kg&quot;,
link = &quot;Pound (mass)&quot;,
},
[&quot;qtr&quot;] = {
name1 = &quot;quarter&quot;,
symbol = &quot;qtr&quot;,
utype = &quot;mass&quot;,
scale = 12.70058636,
default = &quot;lb kg&quot;,
subdivs = { [&quot;lb&quot;] = { 28, default = &quot;kg&quot; } },
link = &quot;Avoirdupois&quot;,
},
[&quot;Scwt&quot;] = {
name1 = &quot;short hundredweight&quot;,
name2 = &quot;short hundredweight&quot;,
symbol = &quot;Scwt&quot;,
usename = 1,
utype = &quot;mass&quot;,
scale = 45.359237,
default = &quot;lb&quot;,
link = &quot;Hundredweight&quot;,
},
[&quot;short cwt&quot;] = {
name1 = &quot;short hundredweight&quot;,
name2 = &quot;short hundredweight&quot;,
symbol = &quot;short&amp;nbsp;cwt&quot;,
utype = &quot;mass&quot;,
scale = 45.359237,
default = &quot;lb kg&quot;,
link = &quot;Hundredweight&quot;,
},
[&quot;short qtr&quot;] = {
name1 = &quot;short quarter&quot;,
symbol = &quot;short&amp;nbsp;qtr&quot;,
utype = &quot;mass&quot;,
scale = 11.33980925,
default = &quot;lb kg&quot;,
link = &quot;Avoirdupois&quot;,
},
[&quot;ST&quot;] = {
symbol = &quot;short ton&quot;,
usename = 1,
utype = &quot;mass&quot;,
scale = 907.18474,
default = &quot;t&quot;,
subdivs = { [&quot;Scwt&quot;] = { 20, default = &quot;t&quot;, unit = &quot;-Scwt&quot; } },
},
[&quot;shtn&quot;] = {
name1 = &quot;short ton&quot;,
symbol = &quot;sh&amp;nbsp;tn&quot;,
utype = &quot;mass&quot;,
scale = 907.18474,
default = &quot;t&quot;,
},
[&quot;shton&quot;] = {
symbol = &quot;ton&quot;,
usename = 1,
utype = &quot;mass&quot;,
scale = 907.18474,
default = &quot;t&quot;,
},
[&quot;solar mass&quot;] = {
name1 = &quot;solar mass&quot;,
name2 = &quot;solar masses&quot;,
symbol = &quot;''M''&lt;sub&gt;☉&lt;/sub&gt;&quot;,
utype = &quot;mass&quot;,
scale = 1.98855e30,
default = &quot;kg&quot;,
},
[&quot;st&quot;] = {
name1 = &quot;stone&quot;,
name2 = &quot;stone&quot;,
symbol = &quot;st&quot;,
utype = &quot;mass&quot;,
scale = 6.35029318,
default = &quot;lb kg&quot;,
subdivs = { [&quot;lb&quot;] = { 14, default = &quot;kg lb&quot; } },
link = &quot;Stone (unit)&quot;,
},
[&quot;t&quot;] = {
name1 = &quot;tonne&quot;,
name1_us = &quot;metric ton&quot;,
symbol = &quot;t&quot;,
utype = &quot;mass&quot;,
scale = 1000,
default = &quot;LT ST&quot;,
},
[&quot;tonne&quot;] = {
name1 = &quot;tonne&quot;,
name1_us = &quot;metric ton&quot;,
symbol = &quot;t&quot;,
utype = &quot;mass&quot;,
scale = 1000,
default = &quot;shton&quot;,
},
[&quot;troy pound&quot;] = {
symbol = &quot;troy pound&quot;,
usename = 1,
utype = &quot;mass&quot;,
scale = 0.3732417216,
default = &quot;lb kg&quot;,
link = &quot;Troy weight&quot;,
},
[&quot;usgalh2o&quot;] = {
name1 = &quot;US gallon of water&quot;,
name1_us = &quot;U.S. gallon of water&quot;,
name2 = &quot;US gallons of water&quot;,
name2_us = &quot;U.S. gallons of water&quot;,
symbol = &quot;US&amp;nbsp;gal H&lt;sub&gt;2&lt;/sub&gt;O&quot;,
utype = &quot;mass&quot;,
scale = 3.7776215836051126,
default = &quot;lb kg&quot;,
link = &quot;United States customary units#Fluid volume&quot;,
},
[&quot;viss&quot;] = {
name2 = &quot;viss&quot;,
symbol = &quot;viss&quot;,
utype = &quot;mass&quot;,
scale = 1.632932532,
default = &quot;kg&quot;,
link = &quot;Burmese units of measurement#mass&quot;,
},
[&quot;billion tonne&quot;] = {
target = &quot;e9t&quot;,
},
[&quot;kilogram&quot;] = {
target = &quot;kg&quot;,
},
[&quot;kilotonne&quot;] = {
target = &quot;kt&quot;,
},
[&quot;lbs&quot;] = {
target = &quot;lb&quot;,
},
[&quot;lbt&quot;] = {
target = &quot;troy pound&quot;,
},
[&quot;lcwt&quot;] = {
target = &quot;Lcwt&quot;,
},
[&quot;long ton&quot;] = {
target = &quot;LT&quot;,
},
[&quot;mcg&quot;] = {
target = &quot;μg&quot;,
},
[&quot;million tonne&quot;] = {
target = &quot;e6t&quot;,
},
[&quot;scwt&quot;] = {
target = &quot;Scwt&quot;,
},
[&quot;short ton&quot;] = {
target = &quot;ST&quot;,
},
[&quot;stone&quot;] = {
target = &quot;st&quot;,
},
[&quot;thousand tonne&quot;] = {
target = &quot;e3t&quot;,
},
[&quot;tonnes&quot;] = {
target = &quot;t&quot;,
},
[&quot;kg/kW&quot;] = {
name1 = &quot;kilogram per kilowatt&quot;,
name2 = &quot;kilograms per kilowatt&quot;,
symbol = &quot;kg/kW&quot;,
utype = &quot;mass per unit power&quot;,
scale = 0.001,
default = &quot;lb/hp&quot;,
link = &quot;Kilowatt&quot;,
},
[&quot;lb/hp&quot;] = {
name1 = &quot;pound per horsepower&quot;,
name2 = &quot;pounds per horsepower&quot;,
symbol = &quot;lb/hp&quot;,
utype = &quot;mass per unit power&quot;,
scale = 0.00060827738784176115,
default = &quot;kg/kW&quot;,
link = &quot;Horsepower&quot;,
},
[&quot;kg/h&quot;] = {
per = { &quot;kg&quot;, &quot;h&quot; },
utype = &quot;mass per unit time&quot;,
default = &quot;lb/h&quot;,
},
[&quot;lb/h&quot;] = {
per = { &quot;lb&quot;, &quot;h&quot; },
utype = &quot;mass per unit time&quot;,
default = &quot;kg/h&quot;,
},
[&quot;g-mol/d&quot;] = {
name1 = &quot;gram-mole per day&quot;,
name2 = &quot;gram-moles per day&quot;,
symbol = &quot;g&amp;#8209;mol/d&quot;,
utype = &quot;molar rate&quot;,
scale = 1.1574074074074073e-5,
default = &quot;μmol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;g-mol/h&quot;] = {
name1 = &quot;gram-mole per hour&quot;,
name2 = &quot;gram-moles per hour&quot;,
symbol = &quot;g&amp;#8209;mol/h&quot;,
utype = &quot;molar rate&quot;,
scale = 0.00027777777777777778,
default = &quot;mmol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;g-mol/min&quot;] = {
name1 = &quot;gram-mole per minute&quot;,
name2 = &quot;gram-moles per minute&quot;,
symbol = &quot;g&amp;#8209;mol/min&quot;,
utype = &quot;molar rate&quot;,
scale = 0.016666666666666666,
default = &quot;g-mol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;g-mol/s&quot;] = {
name1 = &quot;gram-mole per second&quot;,
name2 = &quot;gram-moles per second&quot;,
symbol = &quot;g&amp;#8209;mol/s&quot;,
utype = &quot;molar rate&quot;,
scale = 1,
default = &quot;lb-mol/min&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;gmol/d&quot;] = {
name1 = &quot;gram-mole per day&quot;,
name2 = &quot;gram-moles per day&quot;,
symbol = &quot;gmol/d&quot;,
utype = &quot;molar rate&quot;,
scale = 1.1574074074074073e-5,
default = &quot;μmol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;gmol/h&quot;] = {
name1 = &quot;gram-mole per hour&quot;,
name2 = &quot;gram-moles per hour&quot;,
symbol = &quot;gmol/h&quot;,
utype = &quot;molar rate&quot;,
scale = 0.00027777777777777778,
default = &quot;mmol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;gmol/min&quot;] = {
name1 = &quot;gram-mole per minute&quot;,
name2 = &quot;gram-moles per minute&quot;,
symbol = &quot;gmol/min&quot;,
utype = &quot;molar rate&quot;,
scale = 0.016666666666666666,
default = &quot;gmol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;gmol/s&quot;] = {
name1 = &quot;gram-mole per second&quot;,
name2 = &quot;gram-moles per second&quot;,
symbol = &quot;gmol/s&quot;,
utype = &quot;molar rate&quot;,
scale = 1,
default = &quot;lbmol/min&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;kmol/d&quot;] = {
name1 = &quot;kilomole per day&quot;,
name2 = &quot;kilomoles per day&quot;,
symbol = &quot;kmol/d&quot;,
utype = &quot;molar rate&quot;,
scale = 0.011574074074074073,
default = &quot;mmol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;kmol/h&quot;] = {
name1 = &quot;kilomole per hour&quot;,
name2 = &quot;kilomoles per hour&quot;,
symbol = &quot;kmol/h&quot;,
utype = &quot;molar rate&quot;,
scale = 0.27777777777777779,
default = &quot;mol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;kmol/min&quot;] = {
name1 = &quot;kilomole per minute&quot;,
name2 = &quot;kilomoles per minute&quot;,
symbol = &quot;kmol/min&quot;,
utype = &quot;molar rate&quot;,
scale = 16.666666666666668,
default = &quot;mol/s&quot;,
link = &quot;Kilomole (unit)&quot;,
},
[&quot;kmol/s&quot;] = {
name1 = &quot;kilomole per second&quot;,
name2 = &quot;kilomoles per second&quot;,
symbol = &quot;kmol/s&quot;,
utype = &quot;molar rate&quot;,
scale = 1000,
default = &quot;lb-mol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;lb-mol/d&quot;] = {
name1 = &quot;pound-mole per day&quot;,
name2 = &quot;pound-moles per day&quot;,
symbol = &quot;lb&amp;#8209;mol/d&quot;,
utype = &quot;molar rate&quot;,
scale = 0.0052499116898148141,
default = &quot;mmol/s&quot;,
link = &quot;Mole (unit)#Other units called \&quot;mole\&quot;&quot;,
},
[&quot;lb-mol/h&quot;] = {
name1 = &quot;pound-mole per hour&quot;,
name2 = &quot;pound-moles per hour&quot;,
symbol = &quot;lb&amp;#8209;mol/h&quot;,
utype = &quot;molar rate&quot;,
scale = 0.12599788055555555,
default = &quot;mol/s&quot;,
link = &quot;Mole (unit)#Other units called \&quot;mole\&quot;&quot;,
},
[&quot;lb-mol/min&quot;] = {
name1 = &quot;pound-mole per minute&quot;,
name2 = &quot;pound-moles per minute&quot;,
symbol = &quot;lb&amp;#8209;mol/min&quot;,
utype = &quot;molar rate&quot;,
scale = 7.5598728333333334,
default = &quot;mol/s&quot;,
link = &quot;Mole (unit)#Other units called \&quot;mole\&quot;&quot;,
},
[&quot;lb-mol/s&quot;] = {
name1 = &quot;pound-mole per second&quot;,
name2 = &quot;pound-moles per second&quot;,
symbol = &quot;lb&amp;#8209;mol/s&quot;,
utype = &quot;molar rate&quot;,
scale = 453.59237,
default = &quot;kmol/s&quot;,
link = &quot;Mole (unit)#Other units called \&quot;mole\&quot;&quot;,
},
[&quot;lbmol/d&quot;] = {
name1 = &quot;pound-mole per day&quot;,
name2 = &quot;pound-moles per day&quot;,
symbol = &quot;lbmol/d&quot;,
utype = &quot;molar rate&quot;,
scale = 0.0052499116898148141,
default = &quot;mmol/s&quot;,
link = &quot;Mole (unit)#Other units called \&quot;mole\&quot;&quot;,
},
[&quot;lbmol/h&quot;] = {
name1 = &quot;pound-mole per hour&quot;,
name2 = &quot;pound-moles per hour&quot;,
symbol = &quot;lbmol/h&quot;,
utype = &quot;molar rate&quot;,
scale = 0.12599788055555555,
default = &quot;mol/s&quot;,
link = &quot;Mole (unit)#Other units called \&quot;mole\&quot;&quot;,
},
[&quot;lbmol/min&quot;] = {
name1 = &quot;pound-mole per minute&quot;,
name2 = &quot;pound-moles per minute&quot;,
symbol = &quot;lbmol/min&quot;,
utype = &quot;molar rate&quot;,
scale = 7.5598728333333334,
default = &quot;mol/s&quot;,
link = &quot;Mole (unit)#Other units called \&quot;mole\&quot;&quot;,
},
[&quot;lbmol/s&quot;] = {
name1 = &quot;pound-mole per second&quot;,
name2 = &quot;pound-moles per second&quot;,
symbol = &quot;lbmol/s&quot;,
utype = &quot;molar rate&quot;,
scale = 453.59237,
default = &quot;kmol/s&quot;,
link = &quot;Mole (unit)#Other units called \&quot;mole\&quot;&quot;,
},
[&quot;mmol/s&quot;] = {
name1 = &quot;millimole per second&quot;,
name2 = &quot;millimoles per second&quot;,
symbol = &quot;mmol/s&quot;,
utype = &quot;molar rate&quot;,
scale = 0.001,
default = &quot;lb-mol/d&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;mol/d&quot;] = {
name1 = &quot;mole per day&quot;,
name2 = &quot;moles per day&quot;,
symbol = &quot;mol/d&quot;,
utype = &quot;molar rate&quot;,
scale = 1.1574074074074073e-5,
default = &quot;μmol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;mol/h&quot;] = {
name1 = &quot;mole per hour&quot;,
name2 = &quot;moles per hour&quot;,
symbol = &quot;mol/h&quot;,
utype = &quot;molar rate&quot;,
scale = 0.00027777777777777778,
default = &quot;mmol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;mol/min&quot;] = {
name1 = &quot;mole per minute&quot;,
name2 = &quot;moles per minute&quot;,
symbol = &quot;mol/min&quot;,
utype = &quot;molar rate&quot;,
scale = 0.016666666666666666,
default = &quot;mol/s&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;mol/s&quot;] = {
name1 = &quot;mole per second&quot;,
name2 = &quot;moles per second&quot;,
symbol = &quot;mol/s&quot;,
utype = &quot;molar rate&quot;,
scale = 1,
default = &quot;lb-mol/min&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;μmol/s&quot;] = {
name1 = &quot;micromole per second&quot;,
name2 = &quot;micromoles per second&quot;,
symbol = &quot;μmol/s&quot;,
utype = &quot;molar rate&quot;,
scale = 0.000001,
default = &quot;lb-mol/d&quot;,
link = &quot;Mole (unit)&quot;,
},
[&quot;umol/s&quot;] = {
target = &quot;μmol/s&quot;,
},
[&quot;/acre&quot;] = {
name1 = &quot;per acre&quot;,
name2 = &quot;per acre&quot;,
symbol = &quot;/acre&quot;,
utype = &quot;per unit area&quot;,
scale = 0.00024710538146716532,
default = &quot;/ha&quot;,
link = &quot;Acre&quot;,
},
[&quot;/ha&quot;] = {
name1 = &quot;per hectare&quot;,
name2 = &quot;per hectare&quot;,
symbol = &quot;/ha&quot;,
utype = &quot;per unit area&quot;,
scale = 100e-6,
default = &quot;/acre&quot;,
link = &quot;Hectare&quot;,
},
[&quot;/sqcm&quot;] = {
name1 = &quot;per square centimetre&quot;,
name1_us = &quot;per square centimeter&quot;,
name2 = &quot;per square centimetre&quot;,
name2_us = &quot;per square centimeter&quot;,
symbol = &quot;/cm&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;per unit area&quot;,
scale = 1e4,
default = &quot;/sqin&quot;,
link = &quot;Square centimetre&quot;,
},
[&quot;/sqin&quot;] = {
name1 = &quot;per square inch&quot;,
name2 = &quot;per square inch&quot;,
symbol = &quot;/in&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;per unit area&quot;,
scale = 1550.0031000062002,
default = &quot;/sqcm&quot;,
link = &quot;Square inch&quot;,
},
[&quot;/sqkm&quot;] = {
name1 = &quot;per square kilometre&quot;,
name1_us = &quot;per square kilometer&quot;,
name2 = &quot;per square kilometre&quot;,
name2_us = &quot;per square kilometer&quot;,
symbol = &quot;/km&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;per unit area&quot;,
scale = 1e-6,
default = &quot;/sqmi&quot;,
link = &quot;Square kilometre&quot;,
},
[&quot;/sqmi&quot;] = {
name1 = &quot;per square mile&quot;,
name2 = &quot;per square mile&quot;,
symbol = &quot;/sq&amp;nbsp;mi&quot;,
utype = &quot;per unit area&quot;,
scale = 3.8610215854244582e-7,
default = &quot;/sqkm&quot;,
link = &quot;Square mile&quot;,
},
[&quot;PD/acre&quot;] = {
name1 = &quot;inhabitant per acre&quot;,
name2 = &quot;inhabitants per acre&quot;,
symbol = &quot;/acre&quot;,
utype = &quot;per unit area&quot;,
scale = 0.00024710538146716532,
default = &quot;PD/ha&quot;,
link = &quot;Acre&quot;,
},
[&quot;PD/ha&quot;] = {
name1 = &quot;inhabitant per hectare&quot;,
name2 = &quot;inhabitants per hectare&quot;,
symbol = &quot;/ha&quot;,
utype = &quot;per unit area&quot;,
scale = 100e-6,
default = &quot;PD/acre&quot;,
link = &quot;Hectare&quot;,
},
[&quot;PD/sqkm&quot;] = {
name1 = &quot;inhabitant per square kilometre&quot;,
name1_us = &quot;inhabitant per square kilometer&quot;,
name2 = &quot;inhabitants per square kilometre&quot;,
name2_us = &quot;inhabitants per square kilometer&quot;,
symbol = &quot;/km&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;per unit area&quot;,
scale = 1e-6,
default = &quot;PD/sqmi&quot;,
link = &quot;Square kilometre&quot;,
},
[&quot;PD/sqmi&quot;] = {
name1 = &quot;inhabitant per square mile&quot;,
name2 = &quot;inhabitants per square mile&quot;,
symbol = &quot;/sq&amp;nbsp;mi&quot;,
utype = &quot;per unit area&quot;,
scale = 3.8610215854244582e-7,
default = &quot;PD/sqkm&quot;,
link = &quot;Square mile&quot;,
},
[&quot;/cm2&quot;] = {
target = &quot;/sqcm&quot;,
},
[&quot;/in2&quot;] = {
target = &quot;/sqin&quot;,
},
[&quot;/km2&quot;] = {
target = &quot;/sqkm&quot;,
},
[&quot;pd/acre&quot;] = {
target = &quot;PD/acre&quot;,
},
[&quot;pd/ha&quot;] = {
target = &quot;PD/ha&quot;,
},
[&quot;PD/km2&quot;] = {
target = &quot;PD/sqkm&quot;,
},
[&quot;pd/km2&quot;] = {
target = &quot;PD/sqkm&quot;,
},
[&quot;PD/km²&quot;] = {
target = &quot;PD/sqkm&quot;,
},
[&quot;pd/sqkm&quot;] = {
target = &quot;PD/sqkm&quot;,
},
[&quot;pd/sqmi&quot;] = {
target = &quot;PD/sqmi&quot;,
},
[&quot;/l&quot;] = {
name1 = &quot;per litre&quot;,
name1_us = &quot;per liter&quot;,
name2 = &quot;per litre&quot;,
name2_us = &quot;per liter&quot;,
symbol = &quot;/l&quot;,
utype = &quot;per unit volume&quot;,
scale = 1000,
default = &quot;/usgal&quot;,
link = &quot;Litre&quot;,
},
[&quot;/USgal&quot;] = {
name1 = &quot;per gallon&quot;,
name2 = &quot;per gallon&quot;,
symbol = &quot;/gal&quot;,
utype = &quot;per unit volume&quot;,
scale = 264.172052,
default = &quot;/l&quot;,
link = &quot;US gallon&quot;,
customary= 2,
},
[&quot;/usgal&quot;] = {
target = &quot;/USgal&quot;,
},
[&quot;bhp&quot;] = {
name1 = &quot;brake horsepower&quot;,
name2 = &quot;brake horsepower&quot;,
symbol = &quot;bhp&quot;,
utype = &quot;power&quot;,
scale = 745.69987158227022,
default = &quot;kW&quot;,
link = &quot;Horsepower#Brake horsepower&quot;,
},
[&quot;Cal/d&quot;] = {
name1 = &quot;large calorie per day&quot;,
name2 = &quot;large calories per day&quot;,
symbol = &quot;Cal/d&quot;,
utype = &quot;power&quot;,
scale = 0.048425925925925928,
default = &quot;kJ/d&quot;,
link = &quot;Calorie&quot;,
},
[&quot;Cal/h&quot;] = {
name1 = &quot;large calorie per hour&quot;,
name2 = &quot;large calories per hour&quot;,
symbol = &quot;Cal/h&quot;,
utype = &quot;power&quot;,
scale = 1.1622222222222223,
default = &quot;kJ/h&quot;,
link = &quot;Calorie&quot;,
},
[&quot;cal/h&quot;] = {
name1 = &quot;calorie per hour&quot;,
name2 = &quot;calories per hour&quot;,
symbol = &quot;cal/h&quot;,
utype = &quot;power&quot;,
scale = 0.0011622222222222223,
default = &quot;W&quot;,
link = &quot;Calorie&quot;,
},
[&quot;CV&quot;] = {
name1 = &quot;metric horsepower&quot;,
name2 = &quot;metric horsepower&quot;,
symbol = &quot;CV&quot;,
utype = &quot;power&quot;,
scale = 735.49875,
default = &quot;kW&quot;,
},
[&quot;hk&quot;] = {
name1 = &quot;metric horsepower&quot;,
name2 = &quot;metric horsepower&quot;,
symbol = &quot;hk&quot;,
utype = &quot;power&quot;,
scale = 735.49875,
default = &quot;kW&quot;,
},
[&quot;hp&quot;] = {
name1 = &quot;horsepower&quot;,
name2 = &quot;horsepower&quot;,
symbol = &quot;hp&quot;,
utype = &quot;power&quot;,
scale = 745.69987158227022,
default = &quot;kW&quot;,
},
[&quot;hp-electric&quot;] = {
name1 = &quot;electric horsepower&quot;,
name2 = &quot;electric horsepower&quot;,
symbol = &quot;hp&quot;,
utype = &quot;power&quot;,
scale = 746,
default = &quot;kW&quot;,
link = &quot;Horsepower#Electrical horsepower&quot;,
},
[&quot;hp-electrical&quot;] = {
name1 = &quot;electrical horsepower&quot;,
name2 = &quot;electrical horsepower&quot;,
symbol = &quot;hp&quot;,
utype = &quot;power&quot;,
scale = 746,
default = &quot;kW&quot;,
link = &quot;Horsepower#Electrical horsepower&quot;,
},
[&quot;hp-metric&quot;] = {
name1 = &quot;metric horsepower&quot;,
name2 = &quot;metric horsepower&quot;,
symbol = &quot;hp&quot;,
utype = &quot;power&quot;,
scale = 735.49875,
default = &quot;kW&quot;,
},
[&quot;ihp&quot;] = {
name1 = &quot;indicated horsepower&quot;,
name2 = &quot;indicated horsepower&quot;,
symbol = &quot;ihp&quot;,
utype = &quot;power&quot;,
scale = 745.69987158227022,
default = &quot;kW&quot;,
link = &quot;Horsepower#Indicated horsepower&quot;,
},
[&quot;kcal/h&quot;] = {
name1 = &quot;kilocalorie per hour&quot;,
name2 = &quot;kilocalories per hour&quot;,
symbol = &quot;kcal/h&quot;,
utype = &quot;power&quot;,
scale = 1.1622222222222223,
default = &quot;kW&quot;,
link = &quot;Calorie&quot;,
},
[&quot;kJ/d&quot;] = {
name1 = &quot;kilojoule per day&quot;,
name2 = &quot;kilojoules per day&quot;,
symbol = &quot;kJ/d&quot;,
utype = &quot;power&quot;,
scale = 0.011574074074074073,
default = &quot;Cal/d&quot;,
link = &quot;Kilojoule&quot;,
},
[&quot;kJ/h&quot;] = {
name1 = &quot;kilojoule per hour&quot;,
name2 = &quot;kilojoules per hour&quot;,
symbol = &quot;kJ/h&quot;,
utype = &quot;power&quot;,
scale = 0.27777777777777779,
default = &quot;W&quot;,
link = &quot;Kilojoule&quot;,
},
[&quot;PS&quot;] = {
name1 = &quot;metric horsepower&quot;,
name2 = &quot;metric horsepower&quot;,
symbol = &quot;PS&quot;,
utype = &quot;power&quot;,
scale = 735.49875,
default = &quot;kW&quot;,
},
[&quot;shp&quot;] = {
name1 = &quot;shaft horsepower&quot;,
name2 = &quot;shaft horsepower&quot;,
symbol = &quot;shp&quot;,
utype = &quot;power&quot;,
scale = 745.69987158227022,
default = &quot;kW&quot;,
link = &quot;Horsepower#Shaft horsepower&quot;,
},
[&quot;W&quot;] = {
_name1 = &quot;watt&quot;,
_symbol = &quot;W&quot;,
utype = &quot;power&quot;,
scale = 1,
prefixes = 1,
default = &quot;hp&quot;,
link = &quot;Watt&quot;,
},
[&quot;BTU/h&quot;] = {
per = { &quot;BTU&quot;, &quot;h&quot; },
utype = &quot;power&quot;,
default = &quot;W&quot;,
},
[&quot;Btu/h&quot;] = {
per = { &quot;Btu&quot;, &quot;h&quot; },
utype = &quot;power&quot;,
default = &quot;W&quot;,
},
[&quot;BHP&quot;] = {
target = &quot;bhp&quot;,
},
[&quot;btu/h&quot;] = {
target = &quot;BTU/h&quot;,
},
[&quot;HP&quot;] = {
target = &quot;hp&quot;,
},
[&quot;Hp&quot;] = {
target = &quot;hp&quot;,
},
[&quot;hp-mechanical&quot;] = {
target = &quot;hp&quot;,
},
[&quot;IHP&quot;] = {
target = &quot;ihp&quot;,
},
[&quot;SHP&quot;] = {
target = &quot;shp&quot;,
},
[&quot;whp&quot;] = {
target = &quot;hp&quot;,
},
[&quot;hp/lb&quot;] = {
name1 = &quot;horsepower per pound&quot;,
name2 = &quot;horsepower per pound&quot;,
symbol = &quot;hp/lb&quot;,
utype = &quot;power per unit mass&quot;,
scale = 1643.986806,
default = &quot;kW/kg&quot;,
link = &quot;Power-to-weight ratio&quot;,
},
[&quot;hp/LT&quot;] = {
name1 = &quot;horsepower per long ton&quot;,
name2 = &quot;horsepower per long ton&quot;,
symbol = &quot;hp/LT&quot;,
utype = &quot;power per unit mass&quot;,
scale = 0.73392268125000004,
default = &quot;kW/t&quot;,
link = &quot;Power-to-weight ratio&quot;,
},
[&quot;hp/ST&quot;] = {
name1 = &quot;horsepower per short ton&quot;,
name2 = &quot;horsepower per short ton&quot;,
symbol = &quot;hp/ST&quot;,
utype = &quot;power per unit mass&quot;,
scale = 0.821993403,
default = &quot;kW/t&quot;,
link = &quot;Power-to-weight ratio&quot;,
},
[&quot;hp/t&quot;] = {
name1 = &quot;horsepower per tonne&quot;,
name2 = &quot;horsepower per tonne&quot;,
symbol = &quot;hp/t&quot;,
utype = &quot;power per unit mass&quot;,
scale = 0.74569987158227022,
default = &quot;kW/t&quot;,
link = &quot;Power-to-weight ratio&quot;,
},
[&quot;kW/kg&quot;] = {
name1 = &quot;kilowatt per kilogram&quot;,
name2 = &quot;kilowatts per kilogram&quot;,
symbol = &quot;kW/kg&quot;,
utype = &quot;power per unit mass&quot;,
scale = 1000,
default = &quot;hp/lb&quot;,
link = &quot;Power-to-weight ratio&quot;,
},
[&quot;kW/t&quot;] = {
name1 = &quot;kilowatt per tonne&quot;,
name2 = &quot;kilowatts per tonne&quot;,
symbol = &quot;kW/t&quot;,
utype = &quot;power per unit mass&quot;,
scale = 1,
default = &quot;PS/t&quot;,
link = &quot;Power-to-weight ratio&quot;,
},
[&quot;PS/t&quot;] = {
name1 = &quot;metric horsepower per tonne&quot;,
name2 = &quot;metric horsepower per tonne&quot;,
symbol = &quot;PS/t&quot;,
utype = &quot;power per unit mass&quot;,
scale = 0.73549875,
default = &quot;kW/t&quot;,
link = &quot;Power-to-weight ratio&quot;,
},
[&quot;shp/lb&quot;] = {
name1 = &quot;shaft horsepower per pound&quot;,
name2 = &quot;shaft horsepower per pound&quot;,
symbol = &quot;shp/lb&quot;,
utype = &quot;power per unit mass&quot;,
scale = 1643.986806,
default = &quot;kW/kg&quot;,
link = &quot;Power-to-weight ratio&quot;,
},
[&quot;hp/tonne&quot;] = {
target = &quot;hp/t&quot;,
symbol = &quot;hp/tonne&quot;,
default = &quot;kW/tonne&quot;,
},
[&quot;kW/tonne&quot;] = {
target = &quot;kW/t&quot;,
symbol = &quot;kW/tonne&quot;,
},
[&quot;-lb/in2&quot;] = {
name1 = &quot;pound per square inch&quot;,
name2 = &quot;pounds per square inch&quot;,
symbol = &quot;lb/in&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;pressure&quot;,
scale = 6894.7572931683608,
default = &quot;kPa kgf/cm2&quot;,
link = &quot;Pounds per square inch&quot;,
},
[&quot;atm&quot;] = {
name1 = &quot;standard atmosphere&quot;,
symbol = &quot;atm&quot;,
utype = &quot;pressure&quot;,
scale = 101325,
default = &quot;kPa&quot;,
link = &quot;Atmosphere (unit)&quot;,
},
[&quot;Ba&quot;] = {
name1 = &quot;barye&quot;,
symbol = &quot;Ba&quot;,
utype = &quot;pressure&quot;,
scale = 0.1,
default = &quot;Pa&quot;,
},
[&quot;bar&quot;] = {
symbol = &quot;bar&quot;,
utype = &quot;pressure&quot;,
scale = 100000,
default = &quot;kPa&quot;,
link = &quot;Bar (unit)&quot;,
},
[&quot;dbar&quot;] = {
name1 = &quot;decibar&quot;,
symbol = &quot;dbar&quot;,
utype = &quot;pressure&quot;,
scale = 10000,
default = &quot;kPa&quot;,
link = &quot;Bar (unit)&quot;,
},
[&quot;inHg&quot;] = {
name1 = &quot;inch of mercury&quot;,
name2 = &quot;inches of mercury&quot;,
symbol = &quot;inHg&quot;,
utype = &quot;pressure&quot;,
scale = 3386.388640341,
default = &quot;kPa&quot;,
},
[&quot;kBa&quot;] = {
name1 = &quot;kilobarye&quot;,
symbol = &quot;kBa&quot;,
utype = &quot;pressure&quot;,
scale = 100,
default = &quot;hPa&quot;,
link = &quot;Barye&quot;,
},
[&quot;kg-f/cm2&quot;] = {
name1 = &quot;kilogram-force per square centimetre&quot;,
name1_us = &quot;kilogram-force per square centimeter&quot;,
name2 = &quot;kilograms-force per square centimetre&quot;,
name2_us = &quot;kilograms-force per square centimeter&quot;,
symbol = &quot;kg&lt;sub&gt;f&lt;/sub&gt;/cm&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;pressure&quot;,
scale = 98066.5,
default = &quot;psi&quot;,
link = &quot;Kilogram-force&quot;,
},
[&quot;kg/cm2&quot;] = {
name1 = &quot;kilogram per square centimetre&quot;,
name1_us = &quot;kilogram per square centimeter&quot;,
name2 = &quot;kilograms per square centimetre&quot;,
name2_us = &quot;kilograms per square centimeter&quot;,
symbol = &quot;kg/cm&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;pressure&quot;,
scale = 98066.5,
default = &quot;psi&quot;,
link = &quot;Kilogram-force&quot;,
},
[&quot;kgf/cm2&quot;] = {
name1 = &quot;kilogram-force per square centimetre&quot;,
name1_us = &quot;kilogram-force per square centimeter&quot;,
name2 = &quot;kilograms-force per square centimetre&quot;,
name2_us = &quot;kilograms-force per square centimeter&quot;,
symbol = &quot;kgf/cm&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;pressure&quot;,
scale = 98066.5,
default = &quot;psi&quot;,
link = &quot;Kilogram-force&quot;,
},
[&quot;ksi&quot;] = {
name1 = &quot;kilopound per square inch&quot;,
name2 = &quot;kilopounds per square inch&quot;,
symbol = &quot;ksi&quot;,
utype = &quot;pressure&quot;,
scale = 6894757.2931683613,
default = &quot;MPa&quot;,
link = &quot;Pounds per square inch&quot;,
},
[&quot;lbf/in2&quot;] = {
name1 = &quot;pound-force per square inch&quot;,
name2 = &quot;pounds-force per square inch&quot;,
symbol = &quot;lbf/in&lt;sup&gt;2&lt;/sup&gt;&quot;,
utype = &quot;pressure&quot;,
scale = 6894.7572931683608,
default = &quot;kPa kgf/cm2&quot;,
link = &quot;Pounds-force per square inch&quot;,
},
[&quot;mb&quot;] = {
name1 = &quot;millibar&quot;,
symbol = &quot;mb&quot;,
utype = &quot;pressure&quot;,
scale = 100,
default = &quot;hPa&quot;,
link = &quot;Bar (unit)&quot;,
},
[&quot;mbar&quot;] = {
name1 = &quot;millibar&quot;,
symbol = &quot;mbar&quot;,
utype = &quot;pressure&quot;,
scale = 100,
default = &quot;hPa&quot;,
link = &quot;Bar (unit)&quot;,
},
[&quot;mmHg&quot;] = {
name1 = &quot;millimetre of mercury&quot;,
name1_us = &quot;millimeter of mercury&quot;,
name2 = &quot;millimetres of mercury&quot;,
name2_us = &quot;millimeters of mercury&quot;,
symbol = &quot;mmHg&quot;,
utype = &quot;pressure&quot;,
scale = 133.322387415,
default = &quot;kPa&quot;,
link = &quot;Millimeter of mercury&quot;,
},
[&quot;Pa&quot;] = {
_name1 = &quot;pascal&quot;,
_symbol = &quot;Pa&quot;,
utype = &quot;pressure&quot;,
scale = 1,
prefixes = 1,
default = &quot;psi&quot;,
link = &quot;Pascal (unit)&quot;,
},
[&quot;psf&quot;] = {
name1 = &quot;pound per square foot&quot;,
name2 = &quot;pounds per square foot&quot;,
symbol = &quot;psf&quot;,
utype = &quot;pressure&quot;,
scale = 47.880258980335839,
default = &quot;kPa&quot;,
link = &quot;Pounds per square inch&quot;,
},
[&quot;psi&quot;] = {
name1 = &quot;pound per square inch&quot;,
name2 = &quot;pounds per square inch&quot;,
symbol = &quot;psi&quot;,
utype = &quot;pressure&quot;,
scale = 6894.7572931683608,
default = &quot;kPa&quot;,
link = &quot;Pounds per square inch&quot;,
},
[&quot;Torr&quot;] = {
name1 = &quot;torr&quot;,
symbol = &quot;Torr&quot;,
utype = &quot;pressure&quot;,
scale = 133.32236842105263,
default = &quot;kPa&quot;,
},
[&quot;N/cm2&quot;] = {
per = { &quot;N&quot;, &quot;cm2&quot; },
utype = &quot;pressure&quot;,
default = &quot;psi&quot;,
},
[&quot;N/m2&quot;] = {
per = { &quot;N&quot;, &quot;m2&quot; },
utype = &quot;pressure&quot;,
default = &quot;psi&quot;,
},
[&quot;g/cm2&quot;] = {
per = { &quot;g&quot;, &quot;cm2&quot; },
utype = &quot;pressure&quot;,
default = &quot;lb/sqft&quot;,
multiplier= 9.80665,
},
[&quot;g/m2&quot;] = {
per = { &quot;g&quot;, &quot;m2&quot; },
utype = &quot;pressure&quot;,
default = &quot;lb/sqft&quot;,
multiplier= 9.80665,
},
[&quot;kg/ha&quot;] = {
per = { &quot;kg&quot;, &quot;ha&quot; },
utype = &quot;pressure&quot;,
default = &quot;lb/acre&quot;,
multiplier= 9.80665,
},
[&quot;kg/m2&quot;] = {
per = { &quot;kg&quot;, &quot;m2&quot; },
utype = &quot;pressure&quot;,
default = &quot;lb/sqft&quot;,
multiplier= 9.80665,
},
[&quot;lb/1000sqft&quot;] = {
per = { &quot;lb&quot;, &quot;1000sqft&quot; },
utype = &quot;pressure&quot;,
default = &quot;g/m2&quot;,
multiplier= 9.80665,
},
[&quot;lb/acre&quot;] = {
per = { &quot;lb&quot;, &quot;acre&quot; },
utype = &quot;pressure&quot;,
default = &quot;kg/ha&quot;,
multiplier= 9.80665,
},
[&quot;lb/sqft&quot;] = {
per = { &quot;lb&quot;, &quot;sqft&quot; },
utype = &quot;pressure&quot;,
default = &quot;kg/m2&quot;,
multiplier= 9.80665,
},
[&quot;lb/sqyd&quot;] = {
per = { &quot;lb&quot;, &quot;sqyd&quot; },
utype = &quot;pressure&quot;,
default = &quot;kg/m2&quot;,
multiplier= 9.80665,
},
[&quot;LT/acre&quot;] = {
per = { &quot;LT&quot;, &quot;acre&quot; },
utype = &quot;pressure&quot;,
default = &quot;t/ha&quot;,
multiplier= 9.80665,
},
[&quot;MT/ha&quot;] = {
per = { &quot;MT&quot;, &quot;ha&quot; },
utype = &quot;pressure&quot;,
default = &quot;LT/acre ST/acre&quot;,
multiplier= 9.80665,
},
[&quot;oz/sqft&quot;] = {
per = { &quot;oz&quot;, &quot;sqft&quot; },
utype = &quot;pressure&quot;,
default = &quot;g/m2&quot;,
multiplier= 9.80665,
},
[&quot;oz/sqyd&quot;] = {
per = { &quot;oz&quot;, &quot;sqyd&quot; },
utype = &quot;pressure&quot;,
default = &quot;g/m2&quot;,
multiplier= 9.80665,
},
[&quot;ST/acre&quot;] = {
per = { &quot;ST&quot;, &quot;acre&quot; },
utype = &quot;pressure&quot;,
default = &quot;t/ha&quot;,
multiplier= 9.80665,
},
[&quot;t/ha&quot;] = {
per = { &quot;t&quot;, &quot;ha&quot; },
utype = &quot;pressure&quot;,
default = &quot;LT/acre ST/acre&quot;,
multiplier= 9.80665,
},
[&quot;tonne/acre&quot;] = {
per = { &quot;tonne&quot;, &quot;acre&quot; },
utype = &quot;pressure&quot;,
default = &quot;tonne/ha&quot;,
multiplier= 9.80665,
},
[&quot;tonne/ha&quot;] = {
per = { &quot;tonne&quot;, &quot;ha&quot; },
utype = &quot;pressure&quot;,
default = &quot;tonne/acre&quot;,
multiplier= 9.80665,
},
[&quot;kgfpsqcm&quot;] = {
target = &quot;kgf/cm2&quot;,
},
[&quot;kgpsqcm&quot;] = {
target = &quot;kg/cm2&quot;,
},
[&quot;kN/m2&quot;] = {
target = &quot;kPa&quot;,
},
[&quot;lb/in2&quot;] = {
target = &quot;lbf/in2&quot;,
},
[&quot;torr&quot;] = {
target = &quot;Torr&quot;,
},
[&quot;Bq&quot;] = {
_name1 = &quot;becquerel&quot;,
_symbol = &quot;Bq&quot;,
utype = &quot;radioactivity&quot;,
scale = 1,
prefixes = 1,
default = &quot;pCi&quot;,
link = &quot;Becquerel&quot;,
},
[&quot;Ci&quot;] = {
_name1 = &quot;curie&quot;,
_symbol = &quot;Ci&quot;,
utype = &quot;radioactivity&quot;,
scale = 3.7e10,
prefixes = 1,
default = &quot;GBq&quot;,
link = &quot;Curie&quot;,
},
[&quot;Rd&quot;] = {
_name1 = &quot;rutherford&quot;,
_symbol = &quot;Rd&quot;,
utype = &quot;radioactivity&quot;,
scale = 1e6,
prefixes = 1,
default = &quot;MBq&quot;,
link = &quot;Rutherford (unit)&quot;,
},
[&quot;cm/h&quot;] = {
name1 = &quot;centimetre per hour&quot;,
name1_us = &quot;centimeter per hour&quot;,
name2 = &quot;centimetres per hour&quot;,
name2_us = &quot;centimeters per hour&quot;,
symbol = &quot;cm/h&quot;,
utype = &quot;speed&quot;,
scale = 2.7777777777777775e-6,
default = &quot;in/h&quot;,
link = &quot;Metre per second&quot;,
},
[&quot;cm/s&quot;] = {
name1 = &quot;centimetre per second&quot;,
name1_us = &quot;centimeter per second&quot;,
name2 = &quot;centimetres per second&quot;,
name2_us = &quot;centimeters per second&quot;,
symbol = &quot;cm/s&quot;,
utype = &quot;speed&quot;,
scale = 0.01,
default = &quot;in/s&quot;,
link = &quot;Metre per second&quot;,
},
[&quot;cm/year&quot;] = {
name1 = &quot;centimetre per year&quot;,
name1_us = &quot;centimeter per year&quot;,
name2 = &quot;centimetres per year&quot;,
name2_us = &quot;centimeters per year&quot;,
symbol = &quot;cm/year&quot;,
utype = &quot;speed&quot;,
scale = 3.168873850681143e-10,
default = &quot;in/year&quot;,
link = &quot;Orders of magnitude (speed)&quot;,
},
[&quot;foot/s&quot;] = {
name1 = &quot;foot per second&quot;,
name2 = &quot;foot per second&quot;,
symbol = &quot;ft/s&quot;,
utype = &quot;speed&quot;,
scale = 0.3048,
default = &quot;m/s&quot;,
link = &quot;Feet per second&quot;,
},
[&quot;ft/min&quot;] = {
name1 = &quot;foot per minute&quot;,
name2 = &quot;feet per minute&quot;,
symbol = &quot;ft/min&quot;,
utype = &quot;speed&quot;,
scale = 0.00508,
default = &quot;m/min&quot;,
link = &quot;Feet per second&quot;,
},
[&quot;ft/s&quot;] = {
name1 = &quot;foot per second&quot;,
name2 = &quot;feet per second&quot;,
symbol = &quot;ft/s&quot;,
utype = &quot;speed&quot;,
scale = 0.3048,
default = &quot;m/s&quot;,
link = &quot;Feet per second&quot;,
},
[&quot;furlong per fortnight&quot;] = {
name2 = &quot;furlongs per fortnight&quot;,
symbol = &quot;furlong per fortnight&quot;,
usename = 1,
utype = &quot;speed&quot;,
scale = 0.00016630952380952381,
default = &quot;km/h mph&quot;,
link = &quot;FFF System&quot;,
},
[&quot;in/h&quot;] = {
name1 = &quot;inch per hour&quot;,
name2 = &quot;inches per hour&quot;,
symbol = &quot;in/h&quot;,
utype = &quot;speed&quot;,
scale = 7.0555555555555559e-6,
default = &quot;cm/h&quot;,
link = &quot;Inch&quot;,
},
[&quot;in/s&quot;] = {
name1 = &quot;inch per second&quot;,
name2 = &quot;inches per second&quot;,
symbol = &quot;in/s&quot;,
utype = &quot;speed&quot;,
scale = 0.0254,
default = &quot;cm/s&quot;,
link = &quot;Inch&quot;,
},
[&quot;in/year&quot;] = {
name1 = &quot;inch per year&quot;,
name2 = &quot;inches per year&quot;,
symbol = &quot;in/year&quot;,
utype = &quot;speed&quot;,
scale = 8.0489395807301024e-10,
default = &quot;cm/year&quot;,
link = &quot;Orders of magnitude (speed)&quot;,
},
[&quot;isp&quot;] = {
name1 = &quot;second&quot;,
symbol = &quot;s&quot;,
utype = &quot;speed&quot;,
scale = 9.80665,
default = &quot;km/s&quot;,
link = &quot;Specific impulse&quot;,
},
[&quot;km/d&quot;] = {
name1 = &quot;kilometre per day&quot;,
name1_us = &quot;kilometer per day&quot;,
name2 = &quot;kilometres per day&quot;,
name2_us = &quot;kilometers per day&quot;,
symbol = &quot;km/d&quot;,
utype = &quot;speed&quot;,
scale = 1.1574074074074074e-2,
default = &quot;mi/d&quot;,
link = &quot;Orders of magnitude (speed)&quot;,
},
[&quot;km/h&quot;] = {
name1 = &quot;kilometre per hour&quot;,
name1_us = &quot;kilometer per hour&quot;,
name2 = &quot;kilometres per hour&quot;,
name2_us = &quot;kilometers per hour&quot;,
symbol = &quot;km/h&quot;,
utype = &quot;speed&quot;,
scale = 0.27777777777777779,
default = &quot;mph&quot;,
link = &quot;Kilometres per hour&quot;,
},
[&quot;km/s&quot;] = {
name1 = &quot;kilometre per second&quot;,
name1_us = &quot;kilometer per second&quot;,
name2 = &quot;kilometres per second&quot;,
name2_us = &quot;kilometers per second&quot;,
symbol = &quot;km/s&quot;,
utype = &quot;speed&quot;,
scale = 1000,
default = &quot;mi/s&quot;,
link = &quot;Metre per second&quot;,
},
[&quot;kn&quot;] = {
name1 = &quot;knot&quot;,
symbol = &quot;kn&quot;,
utype = &quot;speed&quot;,
scale = 0.51444444444444448,
default = &quot;km/h mph&quot;,
link = &quot;Knot (unit)&quot;,
},
[&quot;kNs/kg&quot;] = {
name2 = &quot;kN&amp;#8209;s/kg&quot;,
symbol = &quot;kN&amp;#8209;s/kg&quot;,
utype = &quot;speed&quot;,
scale = 1000,
default = &quot;isp&quot;,
link = &quot;Specific impulse&quot;,
},
[&quot;m/min&quot;] = {
name1 = &quot;metre per minute&quot;,
name1_us = &quot;meter per minute&quot;,
name2 = &quot;metres per minute&quot;,
name2_us = &quot;meters per minute&quot;,
symbol = &quot;m/min&quot;,
utype = &quot;speed&quot;,
scale = 0.016666666666666666,
default = &quot;ft/min&quot;,
link = &quot;Metre per second&quot;,
},
[&quot;m/s&quot;] = {
name1 = &quot;metre per second&quot;,
name1_us = &quot;meter per second&quot;,
name2 = &quot;metres per second&quot;,
name2_us = &quot;meters per second&quot;,
symbol = &quot;m/s&quot;,
utype = &quot;speed&quot;,
scale = 1,
default = &quot;ft/s&quot;,
},
[&quot;Mach&quot;] = {
name2 = &quot;Mach&quot;,
symbol = &quot;Mach&quot;,
utype = &quot;speed&quot;,
builtin = &quot;mach&quot;,
scale = 0,
iscomplex= true,
default = &quot;km/h mph&quot;,
link = &quot;Mach number&quot;,
},
[&quot;mi/d&quot;] = {
name1 = &quot;mile per day&quot;,
name2 = &quot;miles per day&quot;,
symbol = &quot;mi/d&quot;,
utype = &quot;speed&quot;,
scale = 1.8626666666666667e-2,
default = &quot;km/d&quot;,
link = &quot;Orders of magnitude (speed)&quot;,
},
[&quot;mi/s&quot;] = {
name1 = &quot;mile per second&quot;,
name2 = &quot;miles per second&quot;,
symbol = &quot;mi/s&quot;,
utype = &quot;speed&quot;,
scale = 1609.344,
default = &quot;km/s&quot;,
link = &quot;Mile&quot;,
},
[&quot;mm/h&quot;] = {
name1 = &quot;millimetre per hour&quot;,
name1_us = &quot;millimeter per hour&quot;,
name2 = &quot;millimetres per hour&quot;,
name2_us = &quot;millimeters per hour&quot;,
symbol = &quot;mm/h&quot;,
utype = &quot;speed&quot;,
scale = 2.7777777777777781e-7,
default = &quot;in/h&quot;,
link = &quot;Metre per second&quot;,
},
[&quot;mph&quot;] = {
name1 = &quot;mile per hour&quot;,
name2 = &quot;miles per hour&quot;,
symbol = &quot;mph&quot;,
utype = &quot;speed&quot;,
scale = 0.44704,
default = &quot;km/h&quot;,
link = &quot;Miles per hour&quot;,
},
[&quot;Ns/kg&quot;] = {
name2 = &quot;N&amp;#8209;s/kg&quot;,
symbol = &quot;N&amp;#8209;s/kg&quot;,
utype = &quot;speed&quot;,
scale = 1,
default = &quot;isp&quot;,
link = &quot;Specific impulse&quot;,
},
[&quot;si tsfc&quot;] = {
name2 = &quot;g/(kN⋅s)&quot;,
symbol = &quot;g/(kN⋅s)&quot;,
utype = &quot;speed&quot;,
scale = 9.9999628621379242e-7,
invert = -1,
iscomplex= true,
default = &quot;tsfc&quot;,
link = &quot;Thrust specific fuel consumption&quot;,
},
[&quot;tsfc&quot;] = {
name2 = &quot;lb/(lbf⋅h)&quot;,
symbol = &quot;lb/(lbf⋅h)&quot;,
utype = &quot;speed&quot;,
scale = 2.832545036049801e-5,
invert = -1,
iscomplex= true,
default = &quot;si tsfc&quot;,
link = &quot;Thrust specific fuel consumption&quot;,
},
[&quot;cm/y&quot;] = {
target = &quot;cm/year&quot;,
},
[&quot;cm/yr&quot;] = {
target = &quot;cm/year&quot;,
},
[&quot;in/y&quot;] = {
target = &quot;in/year&quot;,
},
[&quot;in/yr&quot;] = {
target = &quot;in/year&quot;,
},
[&quot;knot&quot;] = {
target = &quot;kn&quot;,
},
[&quot;knots&quot;] = {
target = &quot;kn&quot;,
},
[&quot;kph&quot;] = {
target = &quot;km/h&quot;,
},
[&quot;mi/h&quot;] = {
target = &quot;mph&quot;,
},
[&quot;mm/s&quot;] = {
per = { &quot;mm&quot;, &quot;s&quot; },
utype = &quot;speed&quot;,
default = &quot;in/s&quot;,
link = &quot;metre per second&quot;,
},
[&quot;C&quot;] = {
name1 = &quot;degree Celsius&quot;,
name2 = &quot;degrees Celsius&quot;,
symbol = &quot;°C&quot;,
usesymbol= 1,
utype = &quot;temperature&quot;,
scale = 1,
offset = -273.15,
iscomplex= true,
istemperature= true,
default = &quot;F&quot;,
link = &quot;Celsius&quot;,
},
[&quot;F&quot;] = {
name1 = &quot;degree Fahrenheit&quot;,
name2 = &quot;degrees Fahrenheit&quot;,
symbol = &quot;°F&quot;,
usesymbol= 1,
utype = &quot;temperature&quot;,
scale = 0.55555555555555558,
offset = 32-273.15*(9/5),
iscomplex= true,
istemperature= true,
default = &quot;C&quot;,
link = &quot;Fahrenheit&quot;,
},
[&quot;K&quot;] = {
_name1 = &quot;kelvin&quot;,
_symbol = &quot;K&quot;,
usesymbol= 1,
utype = &quot;temperature&quot;,
scale = 1,
offset = 0,
iscomplex= true,
istemperature= true,
prefixes = 1,
default = &quot;C F&quot;,
link = &quot;Kelvin&quot;,
},
[&quot;keVT&quot;] = {
name1 = &quot;kiloelectronvolt&quot;,
symbol = &quot;keV&quot;,
utype = &quot;temperature&quot;,
scale = 11.604505e6,
offset = 0,
iscomplex= true,
default = &quot;MK&quot;,
link = &quot;Electronvolt&quot;,
},
[&quot;R&quot;] = {
name1 = &quot;degree Rankine&quot;,
name2 = &quot;degrees Rankine&quot;,
symbol = &quot;°R&quot;,
usesymbol= 1,
utype = &quot;temperature&quot;,
scale = 0.55555555555555558,
offset = 0,
iscomplex= true,
istemperature= true,
default = &quot;K F C&quot;,
link = &quot;Rankine scale&quot;,
},
[&quot;Celsius&quot;] = {
target = &quot;C&quot;,
},
[&quot;°C&quot;] = {
target = &quot;C&quot;,
},
[&quot;°F&quot;] = {
target = &quot;F&quot;,
},
[&quot;°R&quot;] = {
target = &quot;R&quot;,
},
[&quot;C-change&quot;] = {
name1 = &quot;degree Celsius change&quot;,
name2 = &quot;degrees Celsius change&quot;,
symbol = &quot;°C&quot;,
usesymbol= 1,
utype = &quot;temperature change&quot;,
scale = 1,
default = &quot;F-change&quot;,
link = &quot;Celsius&quot;,
},
[&quot;F-change&quot;] = {
name1 = &quot;degree Fahrenheit change&quot;,
name2 = &quot;degrees Fahrenheit change&quot;,
symbol = &quot;°F&quot;,
usesymbol= 1,
utype = &quot;temperature change&quot;,
scale = 0.55555555555555558,
default = &quot;C-change&quot;,
link = &quot;Fahrenheit&quot;,
},
[&quot;K-change&quot;] = {
name1 = &quot;kelvin change&quot;,
name2 = &quot;kelvins change&quot;,
symbol = &quot;K&quot;,
usesymbol= 1,
utype = &quot;temperature change&quot;,
scale = 1,
default = &quot;F-change&quot;,
link = &quot;Kelvin&quot;,
},
[&quot;°C-change&quot;] = {
target = &quot;C-change&quot;,
},
[&quot;°F-change&quot;] = {
target = &quot;F-change&quot;,
},
[&quot;century&quot;] = {
name1 = &quot;century&quot;,
name2 = &quot;centuries&quot;,
symbol = &quot;ha&quot;,
utype = &quot;time&quot;,
scale = 3155760000,
default = &quot;Gs&quot;,
},
[&quot;d&quot;] = {
name1 = &quot;day&quot;,
symbol = &quot;d&quot;,
utype = &quot;time&quot;,
scale = 86400,
default = &quot;ks&quot;,
},
[&quot;decade&quot;] = {
name1 = &quot;decade&quot;,
symbol = &quot;daa&quot;,
utype = &quot;time&quot;,
scale = 315576000,
default = &quot;Ms&quot;,
},
[&quot;dog year&quot;] = {
name1 = &quot;dog year&quot;,
symbol = &quot;dog yr&quot;,
utype = &quot;time&quot;,
scale = 220903200,
default = &quot;years&quot;,
},
[&quot;fortnight&quot;] = {
symbol = &quot;fortnight&quot;,
usename = 1,
utype = &quot;time&quot;,
scale = 1209600,
default = &quot;week&quot;,
},
[&quot;h&quot;] = {
name1 = &quot;hour&quot;,
symbol = &quot;h&quot;,
utype = &quot;time&quot;,
scale = 3600,
default = &quot;ks&quot;,
},
[&quot;long billion year&quot;] = {
name1 = &quot;billion years&quot;,
name2 = &quot;billion years&quot;,
symbol = &quot;Ta&quot;,
utype = &quot;time&quot;,
scale = 31557600000000000000,
default = &quot;Es&quot;,
link = &quot;Annum&quot;,
},
[&quot;millennium&quot;] = {
name1 = &quot;millennium&quot;,
name2 = &quot;millennia&quot;,
symbol = &quot;ka&quot;,
utype = &quot;time&quot;,
scale = 31557600000,
default = &quot;Gs&quot;,
},
[&quot;milliard year&quot;] = {
name1 = &quot;milliard years&quot;,
name2 = &quot;milliard years&quot;,
symbol = &quot;Ga&quot;,
utype = &quot;time&quot;,
scale = 31557600000000000,
default = &quot;Ps&quot;,
link = &quot;Annum&quot;,
},
[&quot;million year&quot;] = {
name1 = &quot;million years&quot;,
name2 = &quot;million years&quot;,
symbol = &quot;Ma&quot;,
utype = &quot;time&quot;,
scale = 31557600000000,
default = &quot;Ts&quot;,
link = &quot;Annum&quot;,
},
[&quot;min&quot;] = {
name1 = &quot;minute&quot;,
symbol = &quot;min&quot;,
utype = &quot;time&quot;,
scale = 60,
default = &quot;s&quot;,
},
[&quot;month&quot;] = {
symbol = &quot;month&quot;,
usename = 1,
utype = &quot;time&quot;,
scale = 2629800,
default = &quot;Ms&quot;,
},
[&quot;months&quot;] = {
name1 = &quot;month&quot;,
symbol = &quot;mo&quot;,
utype = &quot;time&quot;,
scale = 2629800,
default = &quot;year&quot;,
},
[&quot;s&quot;] = {
_name1 = &quot;second&quot;,
_symbol = &quot;s&quot;,
utype = &quot;time&quot;,
scale = 1,
prefixes = 1,
default = &quot;min&quot;,
link = &quot;Second&quot;,
},
[&quot;short billion year&quot;] = {
name1 = &quot;billion years&quot;,
name2 = &quot;billion years&quot;,
symbol = &quot;Ga&quot;,
utype = &quot;time&quot;,
scale = 31557600000000000,
default = &quot;Ps&quot;,
link = &quot;Annum&quot;,
},
[&quot;short trillion year&quot;] = {
name1 = &quot;trillion years&quot;,
name2 = &quot;trillion years&quot;,
symbol = &quot;Ta&quot;,
utype = &quot;time&quot;,
scale = 31557600000000000000,
default = &quot;Es&quot;,
link = &quot;Annum&quot;,
},
[&quot;thousand million year&quot;] = {
name1 = &quot;thousand million years&quot;,
name2 = &quot;thousand million years&quot;,
symbol = &quot;Ga&quot;,
utype = &quot;time&quot;,
scale = 31557600000000000,
default = &quot;Ps&quot;,
link = &quot;Annum&quot;,
},
[&quot;wk&quot;] = {
symbol = &quot;week&quot;,
usename = 1,
utype = &quot;time&quot;,
scale = 604800,
default = &quot;Ms&quot;,
},
[&quot;year&quot;] = {
name1 = &quot;year&quot;,
symbol = &quot;a&quot;,
utype = &quot;time&quot;,
scale = 31557600,
default = &quot;Ms&quot;,
link = &quot;Annum&quot;,
},
[&quot;years&quot;] = {
name1 = &quot;year&quot;,
symbol = &quot;yr&quot;,
utype = &quot;time&quot;,
scale = 31557600,
default = &quot;Ms&quot;,
link = &quot;Annum&quot;,
},
[&quot;byr&quot;] = {
target = &quot;short billion year&quot;,
},
[&quot;day&quot;] = {
target = &quot;d&quot;,
},
[&quot;days&quot;] = {
target = &quot;d&quot;,
},
[&quot;dog yr&quot;] = {
target = &quot;dog year&quot;,
},
[&quot;Gyr&quot;] = {
target = &quot;thousand million year&quot;,
},
[&quot;hour&quot;] = {
target = &quot;h&quot;,
},
[&quot;hours&quot;] = {
target = &quot;h&quot;,
},
[&quot;kMyr&quot;] = {
target = &quot;thousand million year&quot;,
},
[&quot;kmyr&quot;] = {
target = &quot;thousand million year&quot;,
},
[&quot;kyr&quot;] = {
target = &quot;millennium&quot;,
},
[&quot;long byr&quot;] = {
target = &quot;long billion year&quot;,
},
[&quot;minute&quot;] = {
target = &quot;min&quot;,
},
[&quot;minutes&quot;] = {
target = &quot;min&quot;,
},
[&quot;mth&quot;] = {
target = &quot;month&quot;,
},
[&quot;Myr&quot;] = {
target = &quot;million year&quot;,
},
[&quot;myr&quot;] = {
target = &quot;million year&quot;,
},
[&quot;second&quot;] = {
target = &quot;s&quot;,
},
[&quot;seconds&quot;] = {
target = &quot;s&quot;,
},
[&quot;tmyr&quot;] = {
target = &quot;thousand million year&quot;,
},
[&quot;tryr&quot;] = {
target = &quot;short trillion year&quot;,
},
[&quot;tyr&quot;] = {
target = &quot;millennium&quot;,
},
[&quot;week&quot;] = {
target = &quot;wk&quot;,
},
[&quot;weeks&quot;] = {
target = &quot;wk&quot;,
},
[&quot;yr&quot;] = {
target = &quot;year&quot;,
},
[&quot;kg.m&quot;] = {
name1 = &quot;kilogram metre&quot;,
name1_us = &quot;kilogram meter&quot;,
symbol = &quot;kg⋅m&quot;,
utype = &quot;torque&quot;,
scale = 9.80665,
default = &quot;Nm lbft&quot;,
},
[&quot;kgf.m&quot;] = {
name1 = &quot;kilogram force-metre&quot;,
name1_us = &quot;kilogram force-meter&quot;,
symbol = &quot;kgf⋅m&quot;,
utype = &quot;torque&quot;,
scale = 9.80665,
default = &quot;Nm lbfft&quot;,
link = &quot;Kilogram metre&quot;,
},
[&quot;kgm&quot;] = {
name1 = &quot;kilogram metre&quot;,
name1_us = &quot;kilogram meter&quot;,
symbol = &quot;kg⋅m&quot;,
utype = &quot;torque&quot;,
scale = 9.80665,
default = &quot;Nm lbfft&quot;,
},
[&quot;lb-fft&quot;] = {
name1 = &quot;pound force-foot&quot;,
name2 = &quot;pound force-feet&quot;,
symbol = &quot;ft⋅lb&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;torque&quot;,
scale = 1.3558179483314004,
default = &quot;Nm&quot;,
link = &quot;Pound-foot (torque)&quot;,
},
[&quot;lb.ft&quot;] = {
name1 = &quot;pound force-foot&quot;,
name2 = &quot;pound force-feet&quot;,
symbol = &quot;lb⋅ft&quot;,
utype = &quot;torque&quot;,
scale = 1.3558179483314004,
default = &quot;Nm&quot;,
link = &quot;Pound-foot (torque)&quot;,
},
[&quot;lb.in&quot;] = {
name1 = &quot;pound force-inch&quot;,
symbol = &quot;lb⋅in&quot;,
utype = &quot;torque&quot;,
scale = 0.1129848290276167,
default = &quot;mN.m&quot;,
link = &quot;Pound-foot (torque)&quot;,
},
[&quot;lbfft&quot;] = {
name1 = &quot;pound force-foot&quot;,
name2 = &quot;pound force-feet&quot;,
symbol = &quot;lbf⋅ft&quot;,
utype = &quot;torque&quot;,
scale = 1.3558179483314004,
default = &quot;Nm&quot;,
link = &quot;Pound-foot (torque)&quot;,
},
[&quot;lbft&quot;] = {
name1 = &quot;pound-foot&quot;,
name2 = &quot;pound-feet&quot;,
symbol = &quot;lb⋅ft&quot;,
utype = &quot;torque&quot;,
scale = 1.3558179483314004,
default = &quot;Nm&quot;,
link = &quot;Pound-foot (torque)&quot;,
},
[&quot;m.kg-f&quot;] = {
name1 = &quot;metre kilogram-force&quot;,
name1_us = &quot;meter kilogram-force&quot;,
name2 = &quot;metre kilograms-force&quot;,
name2_us = &quot;meter kilograms-force&quot;,
symbol = &quot;m⋅kg&lt;sub&gt;f&lt;/sub&gt;&quot;,
utype = &quot;torque&quot;,
scale = 9.80665,
default = &quot;Nm lbfft&quot;,
link = &quot;Kilogram metre&quot;,
},
[&quot;m.kgf&quot;] = {
name1 = &quot;metre kilogram-force&quot;,
name1_us = &quot;meter kilogram-force&quot;,
name2 = &quot;metre kilograms-force&quot;,
name2_us = &quot;meter kilograms-force&quot;,
symbol = &quot;m⋅kgf&quot;,
utype = &quot;torque&quot;,
scale = 9.80665,
default = &quot;Nm lbfft&quot;,
link = &quot;Kilogram metre&quot;,
},
[&quot;mN.m&quot;] = {
name1 = &quot;millinewton metre&quot;,
name1_us = &quot;millinewton meter&quot;,
symbol = &quot;mN⋅m&quot;,
utype = &quot;torque&quot;,
scale = 0.001,
default = &quot;lb.in&quot;,
link = &quot;Newton metre&quot;,
},
[&quot;Nm&quot;] = {
_name1 = &quot;newton metre&quot;,
_name1_us= &quot;newton meter&quot;,
_symbol = &quot;N⋅m&quot;,
utype = &quot;torque&quot;,
alttype = &quot;energy&quot;,
scale = 1,
prefixes = 1,
default = &quot;lbfft&quot;,
link = &quot;Newton metre&quot;,
},
[&quot;kN/m&quot;] = {
per = { &quot;kN&quot;, &quot;-m-stiff&quot; },
utype = &quot;torque&quot;,
default = &quot;lbf/in&quot;,
},
[&quot;lbf/in&quot;] = {
per = { &quot;lbf&quot;, &quot;-in-stiff&quot; },
utype = &quot;torque&quot;,
default = &quot;kN/m&quot;,
},
[&quot;lb-f.ft&quot;] = {
target = &quot;lb-fft&quot;,
},
[&quot;lbf.ft&quot;] = {
target = &quot;lbfft&quot;,
},
[&quot;lbf·ft&quot;] = {
target = &quot;lbfft&quot;,
},
[&quot;lb·ft&quot;] = {
target = &quot;lb.ft&quot;,
},
[&quot;mkg-f&quot;] = {
target = &quot;m.kg-f&quot;,
},
[&quot;mkgf&quot;] = {
target = &quot;m.kgf&quot;,
},
[&quot;N.m&quot;] = {
target = &quot;Nm&quot;,
},
[&quot;N·m&quot;] = {
target = &quot;Nm&quot;,
},
[&quot;-12USoz(mL)serve&quot;] = {
name1_us = &quot;12&amp;nbsp;U.S.&amp;nbsp;fl&amp;nbsp;oz (355&amp;nbsp;mL) serving&quot;,
symbol = &quot;12&amp;nbsp;US&amp;nbsp;fl&amp;nbsp;oz (355&amp;nbsp;mL) serving&quot;,
sym_us = &quot;12&amp;nbsp;U.S.&amp;nbsp;fl&amp;nbsp;oz (355&amp;nbsp;mL) serving&quot;,
utype = &quot;volume&quot;,
scale = 0.00035488235475000004,
default = &quot;mL&quot;,
link = &quot;Beverage can#Standard sizes&quot;,
},
[&quot;-12USoz(ml)serve&quot;] = {
name1_us = &quot;12&amp;nbsp;U.S.&amp;nbsp;fl&amp;nbsp;oz (355&amp;nbsp;ml) serving&quot;,
symbol = &quot;12&amp;nbsp;US&amp;nbsp;fl&amp;nbsp;oz (355&amp;nbsp;ml) serving&quot;,
sym_us = &quot;12&amp;nbsp;U.S.&amp;nbsp;fl&amp;nbsp;oz (355&amp;nbsp;ml) serving&quot;,
utype = &quot;volume&quot;,
scale = 0.00035488235475000004,
default = &quot;ml&quot;,
link = &quot;Beverage can#Standard sizes&quot;,
},
[&quot;-12USozserve&quot;] = {
name1_us = &quot;12&amp;nbsp;U.S.&amp;nbsp;fl&amp;nbsp;oz serving&quot;,
symbol = &quot;12&amp;nbsp;US&amp;nbsp;fl&amp;nbsp;oz serving&quot;,
sym_us = &quot;12&amp;nbsp;U.S.&amp;nbsp;fl&amp;nbsp;oz serving&quot;,
utype = &quot;volume&quot;,
scale = 0.00035488235475000004,
default = &quot;mL&quot;,
link = &quot;Beverage can#Standard sizes&quot;,
},
[&quot;acre foot&quot;] = {
name1 = &quot;acre foot&quot;,
name2 = &quot;acre foot&quot;,
symbol = &quot;acre⋅ft&quot;,
utype = &quot;volume&quot;,
scale = 1233.48183754752,
default = &quot;m3&quot;,
},
[&quot;acre ft&quot;] = {
name1 = &quot;acre foot&quot;,
name2 = &quot;acre feet&quot;,
symbol = &quot;acre⋅ft&quot;,
utype = &quot;volume&quot;,
scale = 1233.48183754752,
default = &quot;m3&quot;,
},
[&quot;AUtbsp&quot;] = {
name1 = &quot;Australian tablespoon&quot;,
symbol = &quot;AU&amp;nbsp;tbsp&quot;,
utype = &quot;volume&quot;,
scale = 0.000020,
default = &quot;ml&quot;,
},
[&quot;Bcuft&quot;] = {
name1 = &quot;billion cubic foot&quot;,
name2 = &quot;billion cubic feet&quot;,
symbol = &quot;billion cu&amp;nbsp;ft&quot;,
utype = &quot;volume&quot;,
scale = 28316846.592,
default = &quot;Gl&quot;,
link = &quot;Cubic foot&quot;,
},
[&quot;bdft&quot;] = {
name1 = &quot;board foot&quot;,
name2 = &quot;board feet&quot;,
symbol = &quot;bd&amp;nbsp;ft&quot;,
utype = &quot;volume&quot;,
scale = 0.0023597372167,
default = &quot;m3&quot;,
},
[&quot;board feet&quot;] = {
name2 = &quot;board feet&quot;,
symbol = &quot;board foot&quot;,
usename = 1,
utype = &quot;volume&quot;,
scale = 0.0023597372167,
default = &quot;m3&quot;,
},
[&quot;board foot&quot;] = {
name2 = &quot;board foot&quot;,
symbol = &quot;board foot&quot;,
usename = 1,
utype = &quot;volume&quot;,
scale = 0.0023597372167,
default = &quot;m3&quot;,
},
[&quot;cc&quot;] = {
name1 = &quot;cubic centimetre&quot;,
name1_us = &quot;cubic centimeter&quot;,
symbol = &quot;cc&quot;,
utype = &quot;volume&quot;,
scale = 0.000001,
default = &quot;cuin&quot;,
},
[&quot;CID&quot;] = {
name1 = &quot;cubic inch&quot;,
name2 = &quot;cubic inches&quot;,
symbol = &quot;cu&amp;nbsp;in&quot;,
utype = &quot;volume&quot;,
scale = 0.000016387064,
default = &quot;cc&quot;,
link = &quot;Cubic inch#Engine displacement&quot;,
},
[&quot;cord&quot;] = {
symbol = &quot;cord&quot;,
utype = &quot;volume&quot;,
scale = 3.624556363776,
default = &quot;m3&quot;,
link = &quot;Cord (unit)&quot;,
},
[&quot;cufoot&quot;] = {
name1 = &quot;cubic foot&quot;,
name2 = &quot;cubic foot&quot;,
symbol = &quot;cu&amp;nbsp;ft&quot;,
utype = &quot;volume&quot;,
scale = 0.028316846592,
default = &quot;m3&quot;,
},
[&quot;cuft&quot;] = {
name1 = &quot;cubic foot&quot;,
name2 = &quot;cubic feet&quot;,
symbol = &quot;cu&amp;nbsp;ft&quot;,
utype = &quot;volume&quot;,
scale = 0.028316846592,
default = &quot;m3&quot;,
},
[&quot;cuin&quot;] = {
name1 = &quot;cubic inch&quot;,
name2 = &quot;cubic inches&quot;,
symbol = &quot;cu&amp;nbsp;in&quot;,
utype = &quot;volume&quot;,
scale = 0.000016387064,
default = &quot;cm3&quot;,
},
[&quot;cumi&quot;] = {
name1 = &quot;cubic mile&quot;,
symbol = &quot;cu&amp;nbsp;mi&quot;,
utype = &quot;volume&quot;,
scale = 4168181825.440579584,
default = &quot;km3&quot;,
},
[&quot;cuyd&quot;] = {
name1 = &quot;cubic yard&quot;,
symbol = &quot;cu&amp;nbsp;yd&quot;,
utype = &quot;volume&quot;,
scale = 0.764554857984,
default = &quot;m3&quot;,
},
[&quot;firkin&quot;] = {
symbol = &quot;firkin&quot;,
usename = 1,
utype = &quot;volume&quot;,
scale = 0.04091481,
default = &quot;l impgal USgal&quot;,
},
[&quot;foot3&quot;] = {
target = &quot;cufoot&quot;,
},
[&quot;Goilbbl&quot;] = {
name1 = &quot;billion barrels&quot;,
name2 = &quot;billion barrels&quot;,
symbol = &quot;Gbbl&quot;,
utype = &quot;volume&quot;,
scale = 158987294.928,
default = &quot;v * 1.58987294928 &lt; 10 ! e6 ! e9 ! m3&quot;,
link = &quot;Barrel (unit)#Oil barrel&quot;,
},
[&quot;gr water&quot;] = {
name1 = &quot;grains water&quot;,
name2 = &quot;grains water&quot;,
symbol = &quot;gr H&lt;sub&gt;2&lt;/sub&gt;O&quot;,
utype = &quot;volume&quot;,
scale = 0.00000006479891,
default = &quot;cm3&quot;,
link = &quot;Grain (unit)&quot;,
},
[&quot;grt&quot;] = {
name1 = &quot;gross register ton&quot;,
symbol = &quot;grt&quot;,
utype = &quot;volume&quot;,
scale = 2.8316846592,
default = &quot;m3&quot;,
link = &quot;Gross register tonnage&quot;,
},
[&quot;impbbl&quot;] = {
name1 = &quot;imperial barrel&quot;,
symbol = &quot;imp&amp;nbsp;bbl&quot;,
utype = &quot;volume&quot;,
scale = 0.16365924,
default = &quot;l impgal USgal&quot;,
link = &quot;Barrel (unit)&quot;,
},
[&quot;impbsh&quot;] = {
name1 = &quot;imperial bushel&quot;,
symbol = &quot;imp&amp;nbsp;bsh&quot;,
utype = &quot;volume&quot;,
scale = 0.03636872,
default = &quot;l impgal USdrygal&quot;,
},
[&quot;impbu&quot;] = {
name1 = &quot;imperial bushel&quot;,
symbol = &quot;imp&amp;nbsp;bu&quot;,
utype = &quot;volume&quot;,
scale = 0.03636872,
default = &quot;m3&quot;,
},
[&quot;impgal&quot;] = {
name1 = &quot;imperial gallon&quot;,
symbol = &quot;imp&amp;nbsp;gal&quot;,
utype = &quot;volume&quot;,
scale = 0.00454609,
default = &quot;l USgal&quot;,
},
[&quot;impgi&quot;] = {
name1 = &quot;gill&quot;,
symbol = &quot;gi&quot;,
utype = &quot;volume&quot;,
scale = 0.0001420653125,
default = &quot;ml USoz&quot;,
link = &quot;Gill (unit)&quot;,
},
[&quot;impkenning&quot;] = {
name1 = &quot;imperial kenning&quot;,
symbol = &quot;kenning&quot;,
utype = &quot;volume&quot;,
scale = 0.01818436,
default = &quot;l USdrygal&quot;,
link = &quot;Kenning (unit)&quot;,
},
[&quot;impoz&quot;] = {
name1 = &quot;imperial fluid ounce&quot;,
symbol = &quot;imp&amp;nbsp;fl&amp;nbsp;oz&quot;,
utype = &quot;volume&quot;,
scale = 0.0000284130625,
default = &quot;ml USoz&quot;,
},
[&quot;imppk&quot;] = {
name1 = &quot;imperial peck&quot;,
symbol = &quot;pk&quot;,
utype = &quot;volume&quot;,
scale = 0.00909218,
default = &quot;l USdrygal&quot;,
link = &quot;Peck&quot;,
},
[&quot;imppt&quot;] = {
name1 = &quot;imperial pint&quot;,
symbol = &quot;imp&amp;nbsp;pt&quot;,
utype = &quot;volume&quot;,
scale = 0.00056826125,
default = &quot;l&quot;,
},
[&quot;impqt&quot;] = {
name1 = &quot;imperial quart&quot;,
symbol = &quot;imp&amp;nbsp;qt&quot;,
utype = &quot;volume&quot;,
scale = 0.0011365225,
default = &quot;ml USoz&quot;,
customary= 3,
},
[&quot;kilderkin&quot;] = {
symbol = &quot;kilderkin&quot;,
usename = 1,
utype = &quot;volume&quot;,
scale = 0.08182962,
default = &quot;l impgal USgal&quot;,
},
[&quot;koilbbl&quot;] = {
name1 = &quot;thousand barrels&quot;,
name2 = &quot;thousand barrels&quot;,
symbol = &quot;kbbl&quot;,
utype = &quot;volume&quot;,
scale = 158.987294928,
default = &quot;v * 1.58987294928 &lt; 10 ! ! e3 ! m3&quot;,
link = &quot;Barrel (unit)#Oil barrel&quot;,
},
[&quot;L&quot;] = {
_name1 = &quot;litre&quot;,
_name1_us= &quot;liter&quot;,
_symbol = &quot;L&quot;,
utype = &quot;volume&quot;,
scale = 0.001,
prefixes = 1,
default = &quot;impgal USgal&quot;,
link = &quot;Litre&quot;,
},
[&quot;l&quot;] = {
_name1 = &quot;litre&quot;,
_name1_us= &quot;liter&quot;,
_symbol = &quot;l&quot;,
utype = &quot;volume&quot;,
scale = 0.001,
prefixes = 1,
default = &quot;impgal USgal&quot;,
link = &quot;Litre&quot;,
},
[&quot;m3&quot;] = {
_name1 = &quot;cubic metre&quot;,
_name1_us= &quot;cubic meter&quot;,
_symbol = &quot;m&lt;sup&gt;3&lt;/sup&gt;&quot;,
prefix_position= 7,
utype = &quot;volume&quot;,
scale = 1,
prefixes = 3,
default = &quot;cuft&quot;,
link = &quot;Cubic metre&quot;,
},
[&quot;Mbbl&quot;] = {
name1 = &quot;thousand barrels&quot;,
name2 = &quot;thousand barrels&quot;,
symbol = &quot;Mbbl&quot;,
utype = &quot;volume&quot;,
scale = 158.987294928,
default = &quot;v * 1.58987294928 &lt; 10 ! e3 ! ! m3&quot;,
link = &quot;Barrel (unit)#Oil barrel&quot;,
},
[&quot;MMoilbbl&quot;] = {
name1 = &quot;million barrels&quot;,
name2 = &quot;million barrels&quot;,
symbol = &quot;MMbbl&quot;,
utype = &quot;volume&quot;,
scale = 158987.294928,
default = &quot;v * 1.58987294928 &lt; 10 ! e3 ! e6 ! m3&quot;,
link = &quot;Barrel (unit)#Oil barrel&quot;,
},
[&quot;Moilbbl&quot;] = {
name1 = &quot;million barrels&quot;,
name2 = &quot;million barrels&quot;,
symbol = &quot;Mbbl&quot;,
utype = &quot;volume&quot;,
scale = 158987.294928,
default = &quot;v * 1.58987294928 &lt; 10 ! e3 ! e6 ! m3&quot;,
link = &quot;Barrel (unit)#Oil barrel&quot;,
},
[&quot;MTON&quot;] = {
name1 = &quot;measurement ton&quot;,
symbol = &quot;MTON&quot;,
utype = &quot;volume&quot;,
scale = 1.13267386368,
default = &quot;m3&quot;,
},
[&quot;MUSgal&quot;] = {
name1 = &quot;million US gallons&quot;,
name1_us = &quot;million U.S. gallons&quot;,
name2 = &quot;million US gallons&quot;,
name2_us = &quot;million U.S. gallons&quot;,
symbol = &quot;million US&amp;nbsp;gal&quot;,
sym_us = &quot;million U.S.&amp;nbsp;gal&quot;,
utype = &quot;volume&quot;,
scale = 3785.411784,
default = &quot;Ml&quot;,
link = &quot;US gallon&quot;,
},
[&quot;oilbbl&quot;] = {
name1 = &quot;barrel&quot;,
symbol = &quot;bbl&quot;,
utype = &quot;volume&quot;,
scale = 0.158987294928,
default = &quot;m3&quot;,
link = &quot;Barrel (unit)#Oil barrel&quot;,
},
[&quot;stere&quot;] = {
symbol = &quot;stère&quot;,
usename = 1,
utype = &quot;volume&quot;,
scale = 1,
default = &quot;cuft&quot;,
},
[&quot;Toilbbl&quot;] = {
name1 = &quot;trillion barrels&quot;,
name2 = &quot;trillion barrels&quot;,
symbol = &quot;Tbbl&quot;,
utype = &quot;volume&quot;,
scale = 158987294928,
default = &quot;v * 1.58987294928 &lt; 10 ! e9 ! e12 ! m3&quot;,
link = &quot;Barrel (unit)#Oil barrel&quot;,
},
[&quot;USbbl&quot;] = {
name1 = &quot;US barrel&quot;,
name1_us = &quot;U.S. barrel&quot;,
symbol = &quot;US&amp;nbsp;bbl&quot;,
sym_us = &quot;U.S.&amp;nbsp;bbl&quot;,
utype = &quot;volume&quot;,
scale = 0.119240471196,
default = &quot;l USgal impgal&quot;,
link = &quot;Barrel (unit)&quot;,
},
[&quot;USbeerbbl&quot;] = {
name1 = &quot;US beer barrel&quot;,
name1_us = &quot;U.S. beer barrel&quot;,
symbol = &quot;US&amp;nbsp;bbl&quot;,
sym_us = &quot;U.S.&amp;nbsp;bbl&quot;,
utype = &quot;volume&quot;,
scale = 0.117347765304,
default = &quot;l USgal impgal&quot;,
link = &quot;Barrel (unit)&quot;,
},
[&quot;USbsh&quot;] = {
name1 = &quot;US bushel&quot;,
name1_us = &quot;U.S. bushel&quot;,
symbol = &quot;US&amp;nbsp;bsh&quot;,
sym_us = &quot;U.S.&amp;nbsp;bsh&quot;,
utype = &quot;volume&quot;,
scale = 0.03523907016688,
default = &quot;l USdrygal impgal&quot;,
link = &quot;Bushel&quot;,
},
[&quot;USbu&quot;] = {
name1 = &quot;US bushel&quot;,
name1_us = &quot;U.S. bushel&quot;,
symbol = &quot;US&amp;nbsp;bu&quot;,
sym_us = &quot;U.S.&amp;nbsp;bu&quot;,
utype = &quot;volume&quot;,
scale = 0.03523907016688,
default = &quot;l USdrygal impgal&quot;,
link = &quot;Bushel&quot;,
},
[&quot;USdrybbl&quot;] = {
name1 = &quot;US dry barrel&quot;,
name1_us = &quot;U.S. dry barrel&quot;,
symbol = &quot;US&amp;nbsp;dry&amp;nbsp;bbl&quot;,
sym_us = &quot;U.S.&amp;nbsp;dry&amp;nbsp;bbl&quot;,
utype = &quot;volume&quot;,
scale = 0.11562819898508,
default = &quot;m3&quot;,
link = &quot;Barrel (unit)&quot;,
},
[&quot;USdrygal&quot;] = {
name1 = &quot;US dry gallon&quot;,
name1_us = &quot;U.S. dry gallon&quot;,
symbol = &quot;US&amp;nbsp;dry&amp;nbsp;gal&quot;,
sym_us = &quot;U.S.&amp;nbsp;dry&amp;nbsp;gal&quot;,
utype = &quot;volume&quot;,
scale = 0.00440488377086,
default = &quot;l&quot;,
link = &quot;Gallon&quot;,
},
[&quot;USdrypt&quot;] = {
name1 = &quot;US dry pint&quot;,
name1_us = &quot;U.S. dry pint&quot;,
symbol = &quot;US&amp;nbsp;dry&amp;nbsp;pt&quot;,
sym_us = &quot;U.S.&amp;nbsp;dry&amp;nbsp;pt&quot;,
utype = &quot;volume&quot;,
scale = 0.0005506104713575,
default = &quot;ml&quot;,
link = &quot;Pint&quot;,
},
[&quot;USdryqt&quot;] = {
name1 = &quot;US dry quart&quot;,
name1_us = &quot;U.S. dry quart&quot;,
symbol = &quot;US&amp;nbsp;dry&amp;nbsp;qt&quot;,
sym_us = &quot;U.S.&amp;nbsp;dry&amp;nbsp;qt&quot;,
utype = &quot;volume&quot;,
scale = 0.001101220942715,
default = &quot;ml&quot;,
link = &quot;Quart&quot;,
},
[&quot;USflgal&quot;] = {
name1 = &quot;US gallon&quot;,
name1_us = &quot;U.S. gallon&quot;,
symbol = &quot;US fl gal&quot;,
sym_us = &quot;U.S.&amp;nbsp;fl&amp;nbsp;gal&quot;,
utype = &quot;volume&quot;,
scale = 0.003785411784,
default = &quot;l impgal&quot;,
link = &quot;Gallon&quot;,
},
[&quot;USgal&quot;] = {
name1 = &quot;US gallon&quot;,
name1_us = &quot;U.S. gallon&quot;,
symbol = &quot;US&amp;nbsp;gal&quot;,
sym_us = &quot;U.S.&amp;nbsp;gal&quot;,
utype = &quot;volume&quot;,
scale = 0.003785411784,
default = &quot;l impgal&quot;,
},
[&quot;USgi&quot;] = {
name1 = &quot;gill&quot;,
symbol = &quot;gi&quot;,
utype = &quot;volume&quot;,
scale = 0.0001182941183,
default = &quot;ml impoz&quot;,
link = &quot;Gill (unit)&quot;,
},
[&quot;USkenning&quot;] = {
name1 = &quot;US kenning&quot;,
name1_us = &quot;U.S. kenning&quot;,
symbol = &quot;US&amp;nbsp;kenning&quot;,
sym_us = &quot;U.S.&amp;nbsp;kenning&quot;,
utype = &quot;volume&quot;,
scale = 0.01761953508344,
default = &quot;l impgal&quot;,
link = &quot;Kenning (unit)&quot;,
},
[&quot;USmin&quot;] = {
name1 = &quot;US minim&quot;,
name1_us = &quot;U.S. minim&quot;,
symbol = &quot;US&amp;nbsp;min&quot;,
sym_us = &quot;U.S.&amp;nbsp;min&quot;,
utype = &quot;volume&quot;,
scale = 0.000000061611519921875,
default = &quot;ml&quot;,
link = &quot;Minim (unit)&quot;,
},
[&quot;USoz&quot;] = {
name1 = &quot;US fluid ounce&quot;,
name1_us = &quot;U.S. fluid ounce&quot;,
symbol = &quot;US&amp;nbsp;fl&amp;nbsp;oz&quot;,
sym_us = &quot;U.S.&amp;nbsp;fl&amp;nbsp;oz&quot;,
utype = &quot;volume&quot;,
scale = 0.0000295735295625,
default = &quot;ml&quot;,
},
[&quot;USpk&quot;] = {
name1 = &quot;US peck&quot;,
name1_us = &quot;U.S. peck&quot;,
symbol = &quot;US&amp;nbsp;pk&quot;,
sym_us = &quot;U.S.&amp;nbsp;pk&quot;,
utype = &quot;volume&quot;,
scale = 0.00880976754172,
default = &quot;l impgal&quot;,
link = &quot;Peck&quot;,
},
[&quot;USpt&quot;] = {
name1 = &quot;US pint&quot;,
name1_us = &quot;U.S. pint&quot;,
symbol = &quot;US&amp;nbsp;pt&quot;,
sym_us = &quot;U.S.&amp;nbsp;pt&quot;,
utype = &quot;volume&quot;,
scale = 0.000473176473,
default = &quot;l imppt&quot;,
link = &quot;Pint&quot;,
},
[&quot;USqt&quot;] = {
name1 = &quot;US quart&quot;,
name1_us = &quot;U.S. quart&quot;,
symbol = &quot;US&amp;nbsp;qt&quot;,
sym_us = &quot;U.S.&amp;nbsp;qt&quot;,
utype = &quot;volume&quot;,
scale = 0.000946352946,
default = &quot;ml&quot;,
link = &quot;Quart&quot;,
customary= 1,
},
[&quot;USquart&quot;] = {
name1 = &quot;US quart&quot;,
name1_us = &quot;U.S. quart&quot;,
symbol = &quot;US&amp;nbsp;qt&quot;,
sym_us = &quot;U.S.&amp;nbsp;qt&quot;,
utype = &quot;volume&quot;,
scale = 0.000946352946,
default = &quot;ml impoz&quot;,
link = &quot;Quart&quot;,
},
[&quot;UStbsp&quot;] = {
name1 = &quot;US tablespoon&quot;,
name1_us = &quot;U.S. tablespoon&quot;,
symbol = &quot;US&amp;nbsp;tbsp&quot;,
sym_us = &quot;U.S.&amp;nbsp;tbsp&quot;,
utype = &quot;volume&quot;,
scale = 1.4786764781250001e-5,
default = &quot;ml&quot;,
},
[&quot;winecase&quot;] = {
symbol = &quot;case&quot;,
usename = 1,
utype = &quot;volume&quot;,
scale = 0.009,
default = &quot;l&quot;,
link = &quot;Case (goods)&quot;,
},
[&quot;*U.S.drygal&quot;] = {
target = &quot;USdrygal&quot;,
sp_us = true,
customary= 2,
},
[&quot;*U.S.gal&quot;] = {
target = &quot;USgal&quot;,
sp_us = true,
default = &quot;L impgal&quot;,
customary= 2,
},
[&quot;+USdrygal&quot;] = {
target = &quot;USdrygal&quot;,
customary= 1,
},
[&quot;+usfloz&quot;] = {
target = &quot;USoz&quot;,
link = &quot;Fluid ounce&quot;,
customary= 1,
},
[&quot;+USgal&quot;] = {
target = &quot;USgal&quot;,
customary= 1,
},
[&quot;+USoz&quot;] = {
target = &quot;USoz&quot;,
customary= 1,
},
[&quot;@impgal&quot;] = {
target = &quot;impgal&quot;,
link = &quot;Gallon&quot;,
customary= 3,
},
[&quot;acre feet&quot;] = {
target = &quot;acre ft&quot;,
},
[&quot;acre-feet&quot;] = {
target = &quot;acre ft&quot;,
},
[&quot;acre-ft&quot;] = {
target = &quot;acre ft&quot;,
},
[&quot;acre.foot&quot;] = {
target = &quot;acre foot&quot;,
},
[&quot;acre.ft&quot;] = {
target = &quot;acre ft&quot;,
},
[&quot;acre·ft&quot;] = {
target = &quot;acre ft&quot;,
},
[&quot;bushels&quot;] = {
target = &quot;USbsh&quot;,
},
[&quot;cid&quot;] = {
target = &quot;CID&quot;,
},
[&quot;ft3&quot;] = {
target = &quot;cuft&quot;,
},
[&quot;gal&quot;] = {
target = &quot;USgal&quot;,
},
[&quot;gallon&quot;] = {
shouldbe = &quot;Use %{USgal%} for US gallons or %{impgal%} for imperial gallons (not %{gallon%})&quot;,
},
[&quot;gallons&quot;] = {
shouldbe = &quot;Use %{USgal%} for US gallons or %{impgal%} for imperial gallons (not %{gallons%})&quot;,
},
[&quot;Gcuft&quot;] = {
target = &quot;e9cuft&quot;,
},
[&quot;impfloz&quot;] = {
target = &quot;impoz&quot;,
},
[&quot;Impgal&quot;] = {
target = &quot;impgal&quot;,
},
[&quot;in3&quot;] = {
target = &quot;cuin&quot;,
symbol = &quot;in&lt;sup&gt;3&lt;/sup&gt;&quot;,
},
[&quot;kcuft&quot;] = {
target = &quot;e3cuft&quot;,
},
[&quot;kcum&quot;] = {
target = &quot;e3m3&quot;,
},
[&quot;km³&quot;] = {
target = &quot;km3&quot;,
},
[&quot;liter&quot;] = {
target = &quot;L&quot;,
sp_us = true,
},
[&quot;liters&quot;] = {
target = &quot;L&quot;,
sp_us = true,
},
[&quot;litre&quot;] = {
target = &quot;L&quot;,
},
[&quot;litres&quot;] = {
target = &quot;L&quot;,
},
[&quot;Mcuft&quot;] = {
target = &quot;e6cuft&quot;,
},
[&quot;Mcum&quot;] = {
target = &quot;e6m3&quot;,
},
[&quot;Mft3&quot;] = {
target = &quot;e6cuft&quot;,
},
[&quot;mi3&quot;] = {
target = &quot;cumi&quot;,
},
[&quot;m³&quot;] = {
target = &quot;m3&quot;,
},
[&quot;Pcuft&quot;] = {
target = &quot;e15cuft&quot;,
},
[&quot;pt&quot;] = {
shouldbe = &quot;Use %{USpt%} for US pints or %{imppt%} for imperial pints (not %{pt%})&quot;,
},
[&quot;qt&quot;] = {
shouldbe = &quot;Use %{USqt%} for US quarts or %{impqt%} for imperial quarts (not %{qt%})&quot;,
},
[&quot;Tcuft&quot;] = {
target = &quot;e12cuft&quot;,
},
[&quot;Tft3&quot;] = {
target = &quot;e12cuft&quot;,
},
[&quot;U.S.bbl&quot;] = {
target = &quot;USbbl&quot;,
sp_us = true,
default = &quot;l U.S.gal impgal&quot;,
},
[&quot;U.S.beerbbl&quot;] = {
target = &quot;USbeerbbl&quot;,
sp_us = true,
default = &quot;l U.S.gal impgal&quot;,
},
[&quot;U.S.bsh&quot;] = {
target = &quot;USbsh&quot;,
sp_us = true,
default = &quot;l U.S.drygal impgal&quot;,
},
[&quot;U.S.bu&quot;] = {
target = &quot;USbu&quot;,
sp_us = true,
default = &quot;l U.S.drygal impgal&quot;,
},
[&quot;U.S.drybbl&quot;] = {
target = &quot;USdrybbl&quot;,
sp_us = true,
},
[&quot;U.S.drygal&quot;] = {
target = &quot;USdrygal&quot;,
sp_us = true,
},
[&quot;U.S.drypt&quot;] = {
target = &quot;USdrypt&quot;,
sp_us = true,
},
[&quot;U.S.dryqt&quot;] = {
target = &quot;USdryqt&quot;,
sp_us = true,
},
[&quot;U.S.flgal&quot;] = {
target = &quot;USflgal&quot;,
sp_us = true,
},
[&quot;U.S.floz&quot;] = {
target = &quot;USoz&quot;,
sp_us = true,
},
[&quot;U.S.gal&quot;] = {
target = &quot;USgal&quot;,
sp_us = true,
default = &quot;L impgal&quot;,
link = &quot;U.S. gallon&quot;,
},
[&quot;u.s.gal&quot;] = {
target = &quot;USgal&quot;,
sp_us = true,
default = &quot;L impgal&quot;,
link = &quot;U.S. gallon&quot;,
},
[&quot;U.S.gi&quot;] = {
target = &quot;USgi&quot;,
sp_us = true,
},
[&quot;U.S.kenning&quot;] = {
target = &quot;USkenning&quot;,
sp_us = true,
},
[&quot;U.S.oz&quot;] = {
target = &quot;USoz&quot;,
sp_us = true,
},
[&quot;U.S.pk&quot;] = {
target = &quot;USpk&quot;,
sp_us = true,
},
[&quot;U.S.pt&quot;] = {
target = &quot;USpt&quot;,
sp_us = true,
},
[&quot;U.S.qt&quot;] = {
target = &quot;USqt&quot;,
sp_us = true,
default = &quot;L impqt&quot;,
customary= 2,
},
[&quot;usbbl&quot;] = {
target = &quot;USbbl&quot;,
},
[&quot;usbeerbbl&quot;] = {
target = &quot;USbeerbbl&quot;,
},
[&quot;usbsh&quot;] = {
target = &quot;USbsh&quot;,
},
[&quot;usbu&quot;] = {
target = &quot;USbu&quot;,
},
[&quot;usdrybbl&quot;] = {
target = &quot;USdrybbl&quot;,
},
[&quot;usdrygal&quot;] = {
target = &quot;USdrygal&quot;,
},
[&quot;usdrypt&quot;] = {
target = &quot;USdrypt&quot;,
},
[&quot;usdryqt&quot;] = {
target = &quot;USdryqt&quot;,
},
[&quot;USfloz&quot;] = {
target = &quot;USoz&quot;,
},
[&quot;usfloz&quot;] = {
target = &quot;USoz&quot;,
},
[&quot;USGAL&quot;] = {
target = &quot;USgal&quot;,
},
[&quot;usgal&quot;] = {
target = &quot;USgal&quot;,
},
[&quot;usgi&quot;] = {
target = &quot;USgi&quot;,
},
[&quot;uskenning&quot;] = {
target = &quot;USkenning&quot;,
},
[&quot;usoz&quot;] = {
target = &quot;USoz&quot;,
},
[&quot;uspk&quot;] = {
target = &quot;USpk&quot;,
},
[&quot;uspt&quot;] = {
target = &quot;USpt&quot;,
},
[&quot;usqt&quot;] = {
target = &quot;USqt&quot;,
},
[&quot;yd3&quot;] = {
target = &quot;cuyd&quot;,
},
[&quot;cuft/sqmi&quot;] = {
per = { &quot;cuft&quot;, &quot;sqmi&quot; },
utype = &quot;volume per unit area&quot;,
default = &quot;m3/km2&quot;,
},
[&quot;m3/ha&quot;] = {
name1 = &quot;cubic metre per hectare&quot;,
name1_us = &quot;cubic meter per hectare&quot;,
name2 = &quot;cubic metres per hectare&quot;,
name2_us = &quot;cubic meters per hectare&quot;,
symbol = &quot;m&lt;sup&gt;3&lt;/sup&gt;/ha&quot;,
utype = &quot;volume per unit area&quot;,
scale = 0.0001,
default = &quot;USbu/acre&quot;,
link = &quot;Hectare&quot;,
},
[&quot;m3/km2&quot;] = {
per = { &quot;m3&quot;, &quot;km2&quot; },
utype = &quot;volume per unit area&quot;,
default = &quot;cuft/sqmi&quot;,
},
[&quot;U.S.gal/acre&quot;] = {
per = { &quot;U.S.gal&quot;, &quot;acre&quot; },
utype = &quot;volume per unit area&quot;,
default = &quot;m3/km2&quot;,
},
[&quot;USbu/acre&quot;] = {
name2 = &quot;US bushels per acre&quot;,
symbol = &quot;US bushel per acre&quot;,
usename = 1,
utype = &quot;volume per unit area&quot;,
scale = 8.7077638761350888e-6,
default = &quot;m3/ha&quot;,
link = &quot;Bushel&quot;,
},
[&quot;USgal/acre&quot;] = {
per = { &quot;USgal&quot;, &quot;acre&quot; },
utype = &quot;volume per unit area&quot;,
default = &quot;m3/km2&quot;,
},
[&quot;cuyd/mi&quot;] = {
per = { &quot;cuyd&quot;, &quot;mi&quot; },
utype = &quot;volume per unit length&quot;,
default = &quot;m3/km&quot;,
},
[&quot;m3/km&quot;] = {
per = { &quot;m3&quot;, &quot;km&quot; },
utype = &quot;volume per unit length&quot;,
default = &quot;cuyd/mi&quot;,
},
[&quot;mich&quot;] = {
combination= { &quot;ch&quot;, &quot;mi&quot; },
multiple = { 80 },
utype = &quot;length&quot;,
},
[&quot;michlk&quot;] = {
combination= { &quot;chlk&quot;, &quot;mi&quot; },
multiple = { 80 },
utype = &quot;length&quot;,
},
[&quot;michainlk&quot;] = {
combination= { &quot;chainlk&quot;, &quot;mi&quot; },
multiple = { 80 },
utype = &quot;length&quot;,
},
[&quot;miydftin&quot;] = {
combination= { &quot;in&quot;, &quot;ft&quot;, &quot;yd&quot;, &quot;mi&quot; },
multiple = { 12, 3, 1760 },
utype = &quot;length&quot;,
},
[&quot;mift&quot;] = {
combination= { &quot;ft&quot;, &quot;mi&quot; },
multiple = { 5280 },
utype = &quot;length&quot;,
},
[&quot;ydftin&quot;] = {
combination= { &quot;in&quot;, &quot;ft&quot;, &quot;yd&quot; },
multiple = { 12, 3 },
utype = &quot;length&quot;,
},
[&quot;ydft&quot;] = {
combination= { &quot;ft&quot;, &quot;yd&quot; },
multiple = { 3 },
utype = &quot;length&quot;,
},
[&quot;ftin&quot;] = {
combination= { &quot;in&quot;, &quot;ft&quot; },
multiple = { 12 },
utype = &quot;length&quot;,
},
[&quot;footin&quot;] = {
combination= { &quot;in&quot;, &quot;foot&quot; },
multiple = { 12 },
utype = &quot;length&quot;,
},
[&quot;handin&quot;] = {
combination= { &quot;in&quot;, &quot;hand&quot; },
multiple = { 4 },
utype = &quot;length&quot;,
},
[&quot;lboz&quot;] = {
combination= { &quot;oz&quot;, &quot;lb&quot; },
multiple = { 16 },
utype = &quot;mass&quot;,
},
[&quot;stlb&quot;] = {
combination= { &quot;lb&quot;, &quot;st&quot; },
multiple = { 14 },
utype = &quot;mass&quot;,
},
[&quot;stlboz&quot;] = {
combination= { &quot;oz&quot;, &quot;lb&quot;, &quot;st&quot; },
multiple = { 16, 14 },
utype = &quot;mass&quot;,
},
[&quot;st and lb&quot;] = {
combination= { &quot;lb&quot;, &quot;st&quot; },
multiple = { 14 },
utype = &quot;mass&quot;,
},
[&quot;GN LTf&quot;] = {
combination= { &quot;GN&quot;, &quot;-LTf&quot; },
utype = &quot;force&quot;,
},
[&quot;GN LTf STf&quot;] = {
combination= { &quot;GN&quot;, &quot;-LTf&quot;, &quot;-STf&quot; },
utype = &quot;force&quot;,
},
[&quot;GN STf&quot;] = {
combination= { &quot;GN&quot;, &quot;-STf&quot; },
utype = &quot;force&quot;,
},
[&quot;GN STf LTf&quot;] = {
combination= { &quot;GN&quot;, &quot;-STf&quot;, &quot;-LTf&quot; },
utype = &quot;force&quot;,
},
[&quot;kN LTf&quot;] = {
combination= { &quot;kN&quot;, &quot;-LTf&quot; },
utype = &quot;force&quot;,
},
[&quot;kN LTf STf&quot;] = {
combination= { &quot;kN&quot;, &quot;-LTf&quot;, &quot;-STf&quot; },
utype = &quot;force&quot;,
},
[&quot;kN STf&quot;] = {
combination= { &quot;kN&quot;, &quot;-STf&quot; },
utype = &quot;force&quot;,
},
[&quot;kN STf LTf&quot;] = {
combination= { &quot;kN&quot;, &quot;-STf&quot;, &quot;-LTf&quot; },
utype = &quot;force&quot;,
},
[&quot;LTf STf&quot;] = {
combination= { &quot;-LTf&quot;, &quot;-STf&quot; },
utype = &quot;force&quot;,
},
[&quot;MN LTf&quot;] = {
combination= { &quot;MN&quot;, &quot;-LTf&quot; },
utype = &quot;force&quot;,
},
[&quot;MN LTf STf&quot;] = {
combination= { &quot;MN&quot;, &quot;-LTf&quot;, &quot;-STf&quot; },
utype = &quot;force&quot;,
},
[&quot;MN STf&quot;] = {
combination= { &quot;MN&quot;, &quot;-STf&quot; },
utype = &quot;force&quot;,
},
[&quot;MN STf LTf&quot;] = {
combination= { &quot;MN&quot;, &quot;-STf&quot;, &quot;-LTf&quot; },
utype = &quot;force&quot;,
},
[&quot;STf LTf&quot;] = {
combination= { &quot;-STf&quot;, &quot;-LTf&quot; },
utype = &quot;force&quot;,
},
[&quot;L/100 km mpgimp&quot;] = {
combination= { &quot;L/100 km&quot;, &quot;mpgimp&quot; },
utype = &quot;fuel efficiency&quot;,
},
[&quot;l/100 km mpgimp&quot;] = {
combination= { &quot;l/100 km&quot;, &quot;mpgimp&quot; },
utype = &quot;fuel efficiency&quot;,
},
[&quot;L/100 km mpgUS&quot;] = {
combination= { &quot;L/100 km&quot;, &quot;mpgus&quot; },
utype = &quot;fuel efficiency&quot;,
},
[&quot;L/100 km mpgus&quot;] = {
combination= { &quot;L/100 km&quot;, &quot;mpgus&quot; },
utype = &quot;fuel efficiency&quot;,
},
[&quot;l/100 km mpgus&quot;] = {
combination= { &quot;l/100 km&quot;, &quot;mpgus&quot; },
utype = &quot;fuel efficiency&quot;,
},
[&quot;mpgimp L/100 km&quot;] = {
combination= { &quot;mpgimp&quot;, &quot;L/100 km&quot; },
utype = &quot;fuel efficiency&quot;,
},
[&quot;LT ST t&quot;] = {
combination= { &quot;lt&quot;, &quot;-ST&quot;, &quot;t&quot; },
utype = &quot;mass&quot;,
},
[&quot;LT t ST&quot;] = {
combination= { &quot;lt&quot;, &quot;t&quot;, &quot;-ST&quot; },
utype = &quot;mass&quot;,
},
[&quot;ST LT t&quot;] = {
combination= { &quot;-ST&quot;, &quot;lt&quot;, &quot;t&quot; },
utype = &quot;mass&quot;,
},
[&quot;ST t LT&quot;] = {
combination= { &quot;-ST&quot;, &quot;t&quot;, &quot;lt&quot; },
utype = &quot;mass&quot;,
},
[&quot;t LT ST&quot;] = {
combination= { &quot;t&quot;, &quot;lt&quot;, &quot;-ST&quot; },
utype = &quot;mass&quot;,
},
[&quot;ton&quot;] = {
combination= { &quot;LT&quot;, &quot;ST&quot; },
utype = &quot;mass&quot;,
},
[&quot;kPa kg/cm2&quot;] = {
combination= { &quot;kPa&quot;, &quot;kgf/cm2&quot; },
utype = &quot;pressure&quot;,
},
[&quot;kPa lb/in2&quot;] = {
combination= { &quot;kPa&quot;, &quot;-lb/in2&quot; },
utype = &quot;pressure&quot;,
},
[&quot;floz&quot;] = {
combination= { &quot;impoz&quot;, &quot;USoz&quot; },
utype = &quot;volume&quot;,
},
}
---------------------------------------------------------------------------
-- Do not change the data in this table because it is created by running --
-- a script that reads the wikitext from a wiki page (see note above). --
---------------------------------------------------------------------------
local default_exceptions = {
-- Prefixed units with a default different from that of the base unit.
-- Each key item is a prefixed symbol (unitcode for engineering notation).
[&quot;cm&lt;sup&gt;2&lt;/sup&gt;&quot;] = &quot;sqin&quot;,
[&quot;dm&lt;sup&gt;2&lt;/sup&gt;&quot;] = &quot;sqin&quot;,
[&quot;e3acre&quot;] = &quot;km2&quot;,
[&quot;e3m2&quot;] = &quot;e6sqft&quot;,
[&quot;e6acre&quot;] = &quot;km2&quot;,
[&quot;e6ha&quot;] = &quot;e6acre&quot;,
[&quot;e6km2&quot;] = &quot;e6sqmi&quot;,
[&quot;e6m2&quot;] = &quot;e6sqft&quot;,
[&quot;e6sqft&quot;] = &quot;v * 9.290304 &lt; 100 ! e3 ! e6 ! m2&quot;,
[&quot;e6sqmi&quot;] = &quot;e6km2&quot;,
[&quot;hm&lt;sup&gt;2&lt;/sup&gt;&quot;] = &quot;acre&quot;,
[&quot;km&lt;sup&gt;2&lt;/sup&gt;&quot;] = &quot;sqmi&quot;,
[&quot;mm&lt;sup&gt;2&lt;/sup&gt;&quot;] = &quot;sqin&quot;,
[&quot;aJ&quot;] = &quot;eV&quot;,
[&quot;e3BTU&quot;] = &quot;MJ&quot;,
[&quot;e6BTU&quot;] = &quot;GJ&quot;,
[&quot;EJ&quot;] = &quot;kWh&quot;,
[&quot;fJ&quot;] = &quot;keV&quot;,
[&quot;GJ&quot;] = &quot;kWh&quot;,
[&quot;MJ&quot;] = &quot;kWh&quot;,
[&quot;PJ&quot;] = &quot;kWh&quot;,
[&quot;pJ&quot;] = &quot;MeV&quot;,
[&quot;TJ&quot;] = &quot;kWh&quot;,
[&quot;YJ&quot;] = &quot;kWh&quot;,
[&quot;yJ&quot;] = &quot;μeV&quot;,
[&quot;ZJ&quot;] = &quot;kWh&quot;,
[&quot;zJ&quot;] = &quot;meV&quot;,
[&quot;e12cuft/a&quot;] = &quot;v * 2.8316846592 &lt; 100 ! e9 ! e12 ! m3/a&quot;,
[&quot;e12cuft/d&quot;] = &quot;v * 2.8316846592 &lt; 100 ! e9 ! e12 ! m3/d&quot;,
[&quot;e12m3/a&quot;] = &quot;Tcuft/a&quot;,
[&quot;e12m3/d&quot;] = &quot;Tcuft/d&quot;,
[&quot;e3cuft/a&quot;] = &quot;v * 2.8316846592 &lt; 100 ! ! e3 ! m3/a&quot;,
[&quot;e3cuft/d&quot;] = &quot;v * 2.8316846592 &lt; 100 ! ! e3 ! m3/d&quot;,
[&quot;e3cuft/s&quot;] = &quot;v * 2.8316846592 &lt; 100 ! ! e3 ! m3/s&quot;,
[&quot;e3m3/a&quot;] = &quot;v &lt; 28.316846592 ! k ! M ! cuft/a&quot;,
[&quot;e3m3/d&quot;] = &quot;v &lt; 28.316846592 ! k ! M ! cuft/d&quot;,
[&quot;e3m3/s&quot;] = &quot;v &lt; 28.316846592 ! k ! M ! cuft/s&quot;,
[&quot;e3USgal/a&quot;] = &quot;v * 3.785411784 &lt; 1000 ! ! e3 ! m3/a&quot;,
[&quot;e6cuft/a&quot;] = &quot;v * 2.8316846592 &lt; 100 ! e3 ! e6 ! m3/a&quot;,
[&quot;e6cuft/d&quot;] = &quot;v * 2.8316846592 &lt; 100 ! e3 ! e6 ! m3/d&quot;,
[&quot;e6cuft/s&quot;] = &quot;v * 2.8316846592 &lt; 100 ! e3 ! e6 ! m3/s&quot;,
[&quot;e6m3/a&quot;] = &quot;v &lt; 28.316846592 ! M ! G ! cuft/a&quot;,
[&quot;e6m3/d&quot;] = &quot;v &lt; 28.316846592 ! M ! G ! cuft/d&quot;,
[&quot;e6m3/s&quot;] = &quot;v &lt; 28.316846592 ! e6 ! e9 ! cuft/s&quot;,
[&quot;e6USgal/a&quot;] = &quot;v * 3.785411784 &lt; 1000 ! e3 ! e6 ! m3/a&quot;,
[&quot;e9cuft/a&quot;] = &quot;m3/a&quot;,
[&quot;e9cuft/d&quot;] = &quot;v * 2.8316846592 &lt; 100 ! e6 ! e9 ! m3/d&quot;,
[&quot;e9m3/a&quot;] = &quot;v &lt; 28.316846592 ! G ! T ! cuft/a&quot;,
[&quot;e9m3/d&quot;] = &quot;v &lt; 28.316846592 ! G ! T ! cuft/d&quot;,
[&quot;e9m3/s&quot;] = &quot;v &lt; 28.316846592 ! e9 ! e12 ! cuft/s&quot;,
[&quot;e9USgal/a&quot;] = &quot;v * 3.785411784 &lt; 1000 ! e6 ! e9 ! m3/a&quot;,
[&quot;e9USgal/s&quot;] = &quot;v * 3.785411784 &lt; 1000 ! e6 ! e9 ! m3/s&quot;,
[&quot;nN&quot;] = &quot;gr-f&quot;,
[&quot;μN&quot;] = &quot;gr-f&quot;,
[&quot;mN&quot;] = &quot;oz-f&quot;,
[&quot;am&quot;] = &quot;in&quot;,
[&quot;cm&quot;] = &quot;in&quot;,
[&quot;dam&quot;] = &quot;ft&quot;,
[&quot;dm&quot;] = &quot;in&quot;,
[&quot;e12km&quot;] = &quot;e12mi&quot;,
[&quot;e12mi&quot;] = &quot;e12km&quot;,
[&quot;e3AU&quot;] = &quot;ly&quot;,
[&quot;e3km&quot;] = &quot;e3mi&quot;,
[&quot;e3mi&quot;] = &quot;e3km&quot;,
[&quot;e6km&quot;] = &quot;e6mi&quot;,
[&quot;e6mi&quot;] = &quot;e6km&quot;,
[&quot;e9km&quot;] = &quot;AU&quot;,
[&quot;e9mi&quot;] = &quot;e9km&quot;,
[&quot;Em&quot;] = &quot;mi&quot;,
[&quot;fm&quot;] = &quot;in&quot;,
[&quot;Gm&quot;] = &quot;mi&quot;,
[&quot;hm&quot;] = &quot;ft&quot;,
[&quot;km&quot;] = &quot;mi&quot;,
[&quot;mm&quot;] = &quot;in&quot;,
[&quot;Mm&quot;] = &quot;mi&quot;,
[&quot;nm&quot;] = &quot;in&quot;,
[&quot;Pm&quot;] = &quot;mi&quot;,
[&quot;pm&quot;] = &quot;in&quot;,
[&quot;Tm&quot;] = &quot;mi&quot;,
[&quot;Ym&quot;] = &quot;mi&quot;,
[&quot;ym&quot;] = &quot;in&quot;,
[&quot;Zm&quot;] = &quot;mi&quot;,
[&quot;zm&quot;] = &quot;in&quot;,
[&quot;μm&quot;] = &quot;in&quot;,
[&quot;e12lb&quot;] = &quot;v * 4.5359237 &lt; 10 ! Mt ! Gt&quot;,
[&quot;e3lb&quot;] = &quot;v * 4.5359237 &lt; 10 ! kg ! t&quot;,
[&quot;e3ozt&quot;] = &quot;v * 0.311034768 &lt; 10 ! kg ! t&quot;,
[&quot;e3t&quot;] = &quot;LT ST&quot;,
[&quot;e6carat&quot;] = &quot;t&quot;,
[&quot;e6lb&quot;] = &quot;v * 4.5359237 &lt; 10 ! t ! kilotonne&quot;,
[&quot;e6ozt&quot;] = &quot;lb kg&quot;,
[&quot;e6ST&quot;] = &quot;Mt&quot;,
[&quot;e6t&quot;] = &quot;LT ST&quot;,
[&quot;e9lb&quot;] = &quot;v * 4.5359237 &lt; 10 ! kilotonne ! Mt&quot;,
[&quot;e9t&quot;] = &quot;LT ST&quot;,
[&quot;Gg&quot;] = &quot;lb&quot;,
[&quot;kg&quot;] = &quot;lb&quot;,
[&quot;mg&quot;] = &quot;gr&quot;,
[&quot;Mg&quot;] = &quot;LT ST&quot;,
[&quot;ng&quot;] = &quot;gr&quot;,
[&quot;μg&quot;] = &quot;gr&quot;,
[&quot;mBq&quot;] = &quot;fCi&quot;,
[&quot;kBq&quot;] = &quot;nCi&quot;,
[&quot;MBq&quot;] = &quot;μCi&quot;,
[&quot;GBq&quot;] = &quot;mCi&quot;,
[&quot;TBq&quot;] = &quot;Ci&quot;,
[&quot;PBq&quot;] = &quot;kCi&quot;,
[&quot;EBq&quot;] = &quot;kCi&quot;,
[&quot;fCi&quot;] = &quot;mBq&quot;,
[&quot;pCi&quot;] = &quot;Bq&quot;,
[&quot;nCi&quot;] = &quot;Bq&quot;,
[&quot;μCi&quot;] = &quot;kBq&quot;,
[&quot;mCi&quot;] = &quot;MBq&quot;,
[&quot;kCi&quot;] = &quot;TBq&quot;,
[&quot;MCi&quot;] = &quot;PBq&quot;,
[&quot;ns&quot;] = &quot;μs&quot;,
[&quot;μs&quot;] = &quot;ms&quot;,
[&quot;ms&quot;] = &quot;s&quot;,
[&quot;ks&quot;] = &quot;h&quot;,
[&quot;Ms&quot;] = &quot;week&quot;,
[&quot;Gs&quot;] = &quot;decade&quot;,
[&quot;Ts&quot;] = &quot;millennium&quot;,
[&quot;Ps&quot;] = &quot;million year&quot;,
[&quot;Es&quot;] = &quot;thousand million year&quot;,
[&quot;MK&quot;] = &quot;keVT&quot;,
[&quot;cL&quot;] = &quot;impoz usoz&quot;,
[&quot;cl&quot;] = &quot;impoz usoz&quot;,
[&quot;cm&lt;sup&gt;3&lt;/sup&gt;&quot;] = &quot;cuin&quot;,
[&quot;dL&quot;] = &quot;impoz usoz&quot;,
[&quot;dl&quot;] = &quot;impoz usoz&quot;,
[&quot;mm&lt;sup&gt;3&lt;/sup&gt;&quot;] = &quot;cuin&quot;,
[&quot;dm&lt;sup&gt;3&lt;/sup&gt;&quot;] = &quot;cuin&quot;,
[&quot;e12cuft&quot;] = &quot;v * 2.8316846592 &lt; 100 ! e9 ! e12 ! m3&quot;,
[&quot;e12impgal&quot;] = &quot;v * 4.54609 &lt; 1000 ! T ! P ! l&quot;,
[&quot;e12m3&quot;] = &quot;v &lt; 28.316846592 ! T ! P ! cuft&quot;,
[&quot;e12U.S.gal&quot;] = &quot;v * 3.785411784 &lt; 1000 ! T ! P ! l&quot;,
[&quot;e12USgal&quot;] = &quot;v * 3.785411784 &lt; 1000 ! T ! P ! l&quot;,
[&quot;e15cuft&quot;] = &quot;v * 2.8316846592 &lt; 100 ! e12 ! e15 ! m3&quot;,
[&quot;e15m3&quot;] = &quot;Pcuft&quot;,
[&quot;e3bdft&quot;] = &quot;v * 0.23597372167 &lt; 100 ! e3 ! e6 ! m3&quot;,
[&quot;e3cuft&quot;] = &quot;v * 2.8316846592 &lt; 100 ! ! e3 ! m3&quot;,
[&quot;e3impgal&quot;] = &quot;v * 4.54609 &lt; 1000 ! k ! M ! l&quot;,
[&quot;e3m3&quot;] = &quot;v &lt; 28.316846592 ! k ! M ! cuft&quot;,
[&quot;e3U.S.gal&quot;] = &quot;v * 3.785411784 &lt; 1000 ! k ! M ! l&quot;,
[&quot;e3USgal&quot;] = &quot;v * 3.785411784 &lt; 1000 ! k ! M ! l&quot;,
[&quot;e6bdft&quot;] = &quot;v * 0.23597372167 &lt; 100 ! e3 ! e6 ! m3&quot;,
[&quot;e6cuft&quot;] = &quot;v * 2.8316846592 &lt; 100 ! e3 ! e6 ! m3&quot;,
[&quot;e6cuyd&quot;] = &quot;v * 7.64554857984 &lt; 10 ! e3 ! e6 ! m3&quot;,
[&quot;e6impgal&quot;] = &quot;v * 4.54609 &lt; 1000 ! M ! G ! l&quot;,
[&quot;e6L&quot;] = &quot;USgal&quot;,
[&quot;e6m3&quot;] = &quot;v &lt; 28.316846592 ! M ! G ! cuft&quot;,
[&quot;e6U.S.gal&quot;] = &quot;v * 3.785411784 &lt; 1000 ! M ! G ! l&quot;,
[&quot;e6USgal&quot;] = &quot;v * 3.785411784 &lt; 1000 ! M ! G ! l&quot;,
[&quot;e9bdft&quot;] = &quot;v * 0.23597372167 &lt; 100 ! e6 ! e9 ! m3&quot;,
[&quot;e9cuft&quot;] = &quot;v * 2.8316846592 &lt; 100 ! e6 ! e9 ! m3&quot;,
[&quot;e9impgal&quot;] = &quot;v * 4.54609 &lt; 1000 ! G ! T ! l&quot;,
[&quot;e9m3&quot;] = &quot;v &lt; 28.316846592 ! G ! T ! cuft&quot;,
[&quot;e9U.S.gal&quot;] = &quot;v * 3.785411784 &lt; 1000 ! G ! T ! l&quot;,
[&quot;e9USgal&quot;] = &quot;v * 3.785411784 &lt; 1000 ! G ! T ! l&quot;,
[&quot;GL&quot;] = &quot;cuft&quot;,
[&quot;Gl&quot;] = &quot;cuft&quot;,
[&quot;kL&quot;] = &quot;cuft&quot;,
[&quot;kl&quot;] = &quot;cuft&quot;,
[&quot;km&lt;sup&gt;3&lt;/sup&gt;&quot;] = &quot;cumi&quot;,
[&quot;mL&quot;] = &quot;impoz usoz&quot;,
[&quot;ml&quot;] = &quot;impoz usoz&quot;,
[&quot;Ml&quot;] = &quot;v &lt; 28.316846592 ! e3 ! e6 ! cuft&quot;,
[&quot;ML&quot;] = &quot;v &lt; 28.316846592 ! e3 ! e6 ! cuft&quot;,
[&quot;TL&quot;] = &quot;cumi&quot;,
[&quot;Tl&quot;] = &quot;cumi&quot;,
[&quot;μL&quot;] = &quot;cuin&quot;,
[&quot;μl&quot;] = &quot;cuin&quot;,
}
---------------------------------------------------------------------------
-- Do not change the data in this table because it is created by running --
-- a script that reads the wikitext from a wiki page (see note above). --
---------------------------------------------------------------------------
local link_exceptions = {
-- Prefixed units with a linked article different from that of the base unit.
-- Each key item is a prefixed symbol (not unitcode).
[&quot;mm&lt;sup&gt;2&lt;/sup&gt;&quot;] = &quot;Square millimetre&quot;,
[&quot;cm&lt;sup&gt;2&lt;/sup&gt;&quot;] = &quot;Square centimetre&quot;,
[&quot;dm&lt;sup&gt;2&lt;/sup&gt;&quot;] = &quot;Square decimetre&quot;,
[&quot;km&lt;sup&gt;2&lt;/sup&gt;&quot;] = &quot;Square kilometre&quot;,
[&quot;kJ&quot;] = &quot;Kilojoule&quot;,
[&quot;MJ&quot;] = &quot;Megajoule&quot;,
[&quot;fm&quot;] = &quot;Femtometre&quot;,
[&quot;pm&quot;] = &quot;Picometre&quot;,
[&quot;nm&quot;] = &quot;Nanometre&quot;,
[&quot;μm&quot;] = &quot;Micrometre&quot;,
[&quot;mm&quot;] = &quot;Millimetre&quot;,
[&quot;cm&quot;] = &quot;Centimetre&quot;,
[&quot;dm&quot;] = &quot;Decimetre&quot;,
[&quot;dam&quot;] = &quot;Decametre&quot;,
[&quot;hm&quot;] = &quot;Hectometre&quot;,
[&quot;km&quot;] = &quot;Kilometre&quot;,
[&quot;Mm&quot;] = &quot;Megametre&quot;,
[&quot;Gm&quot;] = &quot;Gigametre&quot;,
[&quot;Tm&quot;] = &quot;Terametre&quot;,
[&quot;Pm&quot;] = &quot;Petametre&quot;,
[&quot;Em&quot;] = &quot;Exametre&quot;,
[&quot;Zm&quot;] = &quot;Zettametre&quot;,
[&quot;Ym&quot;] = &quot;Yottametre&quot;,
[&quot;μg&quot;] = &quot;Microgram&quot;,
[&quot;mg&quot;] = &quot;Milligram&quot;,
[&quot;kg&quot;] = &quot;Kilogram&quot;,
[&quot;Mg&quot;] = &quot;Tonne&quot;,
[&quot;yW&quot;] = &quot;Yoctowatt&quot;,
[&quot;zW&quot;] = &quot;Zeptowatt&quot;,
[&quot;aW&quot;] = &quot;Attowatt&quot;,
[&quot;fW&quot;] = &quot;Femtowatt&quot;,
[&quot;pW&quot;] = &quot;Picowatt&quot;,
[&quot;nW&quot;] = &quot;Nanowatt&quot;,
[&quot;μW&quot;] = &quot;Microwatt&quot;,
[&quot;mW&quot;] = &quot;Milliwatt&quot;,
[&quot;kW&quot;] = &quot;Kilowatt&quot;,
[&quot;MW&quot;] = &quot;Megawatt&quot;,
[&quot;GW&quot;] = &quot;Gigawatt&quot;,
[&quot;TW&quot;] = &quot;Terawatt&quot;,
[&quot;PW&quot;] = &quot;Petawatt&quot;,
[&quot;EW&quot;] = &quot;Exawatt&quot;,
[&quot;ZW&quot;] = &quot;Zettawatt&quot;,
[&quot;YW&quot;] = &quot;Yottawatt&quot;,
[&quot;as&quot;] = &quot;Attosecond&quot;,
[&quot;fs&quot;] = &quot;Femtosecond&quot;,
[&quot;ps&quot;] = &quot;Picosecond&quot;,
[&quot;ns&quot;] = &quot;Nanosecond&quot;,
[&quot;μs&quot;] = &quot;Microsecond&quot;,
[&quot;ms&quot;] = &quot;Millisecond&quot;,
[&quot;ks&quot;] = &quot;Kilosecond&quot;,
[&quot;Ms&quot;] = &quot;Megasecond&quot;,
[&quot;Gs&quot;] = &quot;Gigasecond&quot;,
[&quot;Ts&quot;] = &quot;Terasecond&quot;,
[&quot;Ps&quot;] = &quot;Petasecond&quot;,
[&quot;Es&quot;] = &quot;Exasecond&quot;,
[&quot;Zs&quot;] = &quot;Zettasecond&quot;,
[&quot;Ys&quot;] = &quot;Yottasecond&quot;,
[&quot;mm&lt;sup&gt;3&lt;/sup&gt;&quot;] = &quot;Cubic millimetre&quot;,
[&quot;cm&lt;sup&gt;3&lt;/sup&gt;&quot;] = &quot;Cubic centimetre&quot;,
[&quot;dm&lt;sup&gt;3&lt;/sup&gt;&quot;] = &quot;Cubic decimetre&quot;,
[&quot;dam&lt;sup&gt;3&lt;/sup&gt;&quot;] = &quot;Cubic decametre&quot;,
[&quot;km&lt;sup&gt;3&lt;/sup&gt;&quot;] = &quot;Cubic kilometre&quot;,
[&quot;μL&quot;] = &quot;Microlitre&quot;,
[&quot;μl&quot;] = &quot;Microlitre&quot;,
[&quot;mL&quot;] = &quot;Millilitre&quot;,
[&quot;ml&quot;] = &quot;Millilitre&quot;,
[&quot;cL&quot;] = &quot;Centilitre&quot;,
[&quot;cl&quot;] = &quot;Centilitre&quot;,
[&quot;dL&quot;] = &quot;Decilitre&quot;,
[&quot;dl&quot;] = &quot;Decilitre&quot;,
[&quot;daL&quot;] = &quot;Decalitre&quot;,
[&quot;dal&quot;] = &quot;Decalitre&quot;,
[&quot;hL&quot;] = &quot;Hectolitre&quot;,
[&quot;hl&quot;] = &quot;Hectolitre&quot;,
[&quot;kL&quot;] = &quot;Kilolitre&quot;,
[&quot;kl&quot;] = &quot;Kilolitre&quot;,
[&quot;ML&quot;] = &quot;Megalitre&quot;,
[&quot;Ml&quot;] = &quot;Megalitre&quot;,
[&quot;GL&quot;] = &quot;Gigalitre&quot;,
[&quot;Gl&quot;] = &quot;Gigalitre&quot;,
[&quot;TL&quot;] = &quot;Teralitre&quot;,
[&quot;Tl&quot;] = &quot;Teralitre&quot;,
[&quot;PL&quot;] = &quot;Petalitre&quot;,
[&quot;Pl&quot;] = &quot;Petalitre&quot;,
}
---------------------------------------------------------------------------
-- Do not change the data in this table because it is created by running --
-- a script that reads the wikitext from a wiki page (see note above). --
---------------------------------------------------------------------------
local per_unit_fixups = {
-- Automatically created per units of form &quot;x/y&quot; may have their unit type
-- changed, for example, &quot;length/time&quot; is changed to &quot;speed&quot;.
-- Other adjustments can also be specified.
[&quot;$/area&quot;] = &quot;cost $ per unit area&quot;,
[&quot;$/length&quot;] = &quot;cost $ per unit length&quot;,
[&quot;$/mass&quot;] = &quot;cost $ per unit mass&quot;,
[&quot;$/volume&quot;] = &quot;cost $ per unit volume&quot;,
[&quot;£/area&quot;] = &quot;cost £ per unit area&quot;,
[&quot;/area&quot;] = &quot;per unit area&quot;,
[&quot;/volume&quot;] = &quot;per unit volume&quot;,
[&quot;area/area&quot;] = &quot;area per unit area&quot;,
[&quot;energy/length&quot;] = &quot;energy per unit length&quot;,
[&quot;energy/mass&quot;] = &quot;energy per unit mass&quot;,
[&quot;energy/time&quot;] = { utype = &quot;power&quot;, link = &quot;Power&quot; },
[&quot;energy/volume&quot;] = &quot;energy per unit volume&quot;,
[&quot;force/area&quot;] = { utype = &quot;pressure&quot;, link = &quot;Pressure&quot; },
[&quot;length/length&quot;] = { utype = &quot;gradient&quot;, link = &quot;Gradient&quot; },
[&quot;length/time&quot;] = { utype = &quot;speed&quot;, link = &quot;Speed&quot; },
[&quot;length/time/time&quot;] = { utype = &quot;acceleration&quot;, link = &quot;Acceleration&quot; },
[&quot;mass/area&quot;] = { utype = &quot;pressure&quot;, multiplier = 9.80665 },
[&quot;mass/length&quot;] = &quot;linear density&quot;,
[&quot;mass/mass&quot;] = &quot;concentration&quot;,
[&quot;mass/power&quot;] = &quot;mass per unit power&quot;,
[&quot;mass/time&quot;] = &quot;mass per unit time&quot;,
[&quot;mass/volume&quot;] = { utype = &quot;density&quot;, link = &quot;Density&quot; },
[&quot;power/mass&quot;] = &quot;power per unit mass&quot;,
[&quot;power/volume&quot;] = { link = &quot;Power density&quot; },
[&quot;pressure/length&quot;] = &quot;fracture gradient&quot;,
[&quot;speed/time&quot;] = { utype = &quot;acceleration&quot;, link = &quot;Acceleration&quot; },
[&quot;volume/area&quot;] = &quot;volume per unit area&quot;,
[&quot;volume/length&quot;] = &quot;volume per unit length&quot;,
[&quot;volume/time&quot;] = &quot;flow&quot;,
}
return {
all_units = all_units,
default_exceptions = default_exceptions,
link_exceptions = link_exceptions,
per_unit_fixups = per_unit_fixups,
}</text>
<sha1>2m2jva9xm4ehxw0gq49rcjmxj12n5w4</sha1>
</revision>
</page>
<page>
<title>Module:Convert/text</title>
<ns>828</ns>
<id>39508461</id>
<revision>
<id>820526674</id>
<parentid>814618348</parentid>
<timestamp>2018-01-15T04:11:32Z</timestamp>
<contributor>
<username>Johnuniq</username>
<id>6036800</id>
</contributor>
<comment>update from sandbox per [[Template talk:Convert#Module version 21]]; this removes many deprecated options</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="18532">-- Text used by Module:Convert for enwiki.
-- This is a separate module to simplify translation for use on another wiki.
-- See [[:en:Template:Convert/Transwiki guide]] if copying to another wiki.
-- Some units accept an SI prefix before the unit code, such as &quot;kg&quot; for kilogram.
local SIprefixes = {
-- The prefix field is what the prefix should be, if different from the prefix used.
['Y'] = { exponent = 24, name = 'yotta', },
['Z'] = { exponent = 21, name = 'zetta', },
['E'] = { exponent = 18, name = 'exa' , },
['P'] = { exponent = 15, name = 'peta' , },
['T'] = { exponent = 12, name = 'tera' , },
['G'] = { exponent = 9, name = 'giga' , },
['M'] = { exponent = 6, name = 'mega' , },
['k'] = { exponent = 3, name = 'kilo' , },
['h'] = { exponent = 2, name = 'hecto', },
['da']= { exponent = 1, name = 'deca' , name_us = 'deka' },
['d'] = { exponent = -1, name = 'deci' , },
['c'] = { exponent = -2, name = 'centi', },
['m'] = { exponent = -3, name = 'milli', },
['μ'] = { exponent = -6, name = 'micro', }, -- key = 'GREEK SMALL LETTER MU' (U+03BC) utf-8 CE BC
['µ'] = { exponent = -6, name = 'micro', prefix = 'μ' }, -- key = 'MICRO SIGN' (U+00B5) utf-8 C2 B5
['u'] = { exponent = -6, name = 'micro', prefix = 'μ' }, -- not an SI prefix, but allow for people typing this
['n'] = { exponent = -9, name = 'nano' , },
['p'] = { exponent =-12, name = 'pico' , },
['f'] = { exponent =-15, name = 'femto', },
['a'] = { exponent =-18, name = 'atto' , },
['z'] = { exponent =-21, name = 'zepto', },
['y'] = { exponent =-24, name = 'yocto', },
}
-- Some units can be qualified with one of the following prefixes, when linked.
local customary_units = {
{ &quot;US&quot;, link = &quot;United States customary units&quot; },
{ &quot;U.S.&quot;, link = &quot;United States customary units&quot; },
{ &quot;imperial&quot;, link = &quot;Imperial units&quot; },
{ &quot;imp&quot;, link = &quot;Imperial units&quot; },
}
-- Names when using engineering notation (a prefix of &quot;eN&quot; where N is a number; example &quot;e6km&quot;).
-- key = { &quot;name&quot;, link = &quot;article title&quot;, exponent = numeric_key_value }
-- If lk=on and link is defined, the name of the number will appear as a link.
local eng_scales = {
[&quot;3&quot;] = { &quot;thousand&quot;, exponent = 3 },
[&quot;6&quot;] = { &quot;million&quot;, exponent = 6 },
[&quot;9&quot;] = { &quot;billion&quot;, link = &quot;1000000000 (number)&quot;, exponent = 9 },
[&quot;12&quot;] = { &quot;trillion&quot;, link = &quot;1000000000000 (number)&quot;, exponent = 12 },
[&quot;15&quot;] = { &quot;quadrillion&quot;, link = &quot;1000000000000000 (number)&quot;, exponent = 15 },
}
local all_categories = {
unit = &quot;[[Category:Convert errors]]&quot;,
option = &quot;[[Category:Convert errors]]&quot;,
warning = '[[Category:Convert invalid options]]',
tracking = '[[Category:Convert tracking]]',
}
-- For some error messages, the following puts the wanted style around
-- each unit code marked like '...%{ft%}...'.
local unitcode_regex = '%%([{}])'
local unitcode_replace = { ['{'] = '&quot;', ['}'] = '&quot;' } -- no longer need the more elaborate substitute used before 2013-09-28
-- All messages that may be displayed if a problem occurs.
local all_messages = {
-- Message format string: $1=title, $2=text, $3=category, $4=anchor.
-- Each displayed message starts with &quot;Convert:&quot; so can easily locate by searching article.
cvt_format = '&lt;sup class=&quot;noprint Inline-Template&quot; style=&quot;white-space:nowrap;&quot;&gt;[&lt;i&gt;[[Help:Convert messages#$4|&lt;span title=&quot;Convert: $1&quot;&gt;convert: $2&lt;/span&gt;]]&lt;/i&gt;]&lt;/sup&gt;$3&lt;span class=&quot;error&quot;&gt;&lt;/span&gt;',
cvt_format2 = '&lt;sup class=&quot;noprint Inline-Template&quot; style=&quot;white-space:nowrap;&quot;&gt;[[Help:Convert messages#$4|&lt;span title=&quot;Convert: $1&quot;&gt;$2&lt;/span&gt;]]&lt;/sup&gt;$3&lt;span class=&quot;error&quot;&gt;&lt;/span&gt;',
cvt_format_preview = '&lt;strong class=&quot;error&quot;&gt;Error in convert: $1 [[Help:Convert messages#$4|(help)]]&lt;/strong&gt;$3',
-- Each of following messages is a table:
-- { [1] = 'title', -- mouseover title text
-- [2] = 'text', -- link text displayed in article
-- [3] = 'category key', -- key to lookup category in all_categories
-- [4] = 'anchor', -- anchor for link to relevant section on help page
-- regex = gsub_regex,
-- replace = gsub_table,
-- } Mouseover title text Link text CatKey Anchor
cvt_bad_input = { 'input &quot;$1&quot; must be a number and unit' , 'invalid input' , 'option', 'invalid_input' },
cvt_bad_num = { 'Value &quot;$1&quot; must be a number' , 'invalid number' , 'option', 'invalid_number' },
cvt_big_prec = { 'Precision &quot;$1&quot; is too large' , 'precision too large' , 'option', 'precision_too_large' },
cvt_invalid_num = { 'Number has overflowed' , 'number overflow' , 'option', 'number_overflow' },
cvt_no_num = { 'Needs the number to be converted' , 'needs a number' , 'option', 'needs_number' },
cvt_no_num2 = { 'Needs another number for a range' , 'needs another number', 'option', 'needs_another_number' },
cvt_bad_frac = { '&quot;$1&quot; needs an integer above 1' , 'invalid fraction' , 'option', 'invalid_fraction' },
cvt_bad_prec = { 'Precision &quot;$1&quot; must be an integer' , 'invalid precision' , 'option', 'invalid_precision' },
cvt_bad_sigfig = { '&quot;$1&quot; needs a positive integer' , 'invalid sigfig' , 'option', 'invalid_sigfig' },
cvt_empty_option = { 'Ignored empty option &quot;$1&quot;' , 'empty option' , 'option', 'empty_option' },
cvt_deprecated = { 'Option &quot;$1&quot; is deprecated' , '*' , 'option', 'deprecated_option', format = 'cvt_format2', nowarn = true },
cvt_no_spell = { 'Spelling is not available' , 'bug, ask for help' , 'option', 'ask_for_help' },
cvt_unknown_option = { 'Ignored invalid option &quot;$1&quot;' , 'invalid option' , 'option', 'invalid_option' },
cvt_wd_fail = { 'Unable to access Wikidata' , 'wikidata problem' , 'option', 'wikidata_problem' },
cvt_bad_default = { 'Unit &quot;$1&quot; has an invalid default' , 'bug, ask for help' , 'unit' , 'ask_for_help' },
cvt_bad_unit = { 'Unit &quot;$1&quot; is invalid here' , 'unit invalid here' , 'unit' , 'unit_invalid_here' },
cvt_no_default = { 'Unit &quot;$1&quot; has no default output unit' , 'bug, ask for help' , 'unit' , 'ask_for_help' },
cvt_no_unit = { 'Needs name of unit' , 'needs unit name' , 'unit' , 'needs_unit_name' },
cvt_unknown = { 'Unit name &quot;$1&quot; is not known' , 'unknown unit' , 'unit' , 'unknown_unit' },
cvt_should_be = { '$1' , 'ambiguous unit' , 'unit' , 'ambiguous_unit', regex = unitcode_regex, replace = unitcode_replace },
cvt_mismatch = { 'Cannot convert &quot;$1&quot; to &quot;$2&quot;' , 'unit mismatch' , 'unit' , 'unit_mismatch' },
cvt_bug_convert = { 'Bug: Cannot convert between specified units', 'bug, ask for help' , 'unit' , 'ask_for_help' },
cvt_lookup = { 'Unit &quot;$1&quot; is incorrectly defined' , 'bug, ask for help' , 'unit' , 'ask_for_help' },
}
-- Text to join input value/unit with output value/unit.
local disp_joins = {
-- [1]=before output, [2]=after output, [3]=between outputs in a combination; default &quot;; &quot;
-- [wantname] gives default abbr=off
[&quot;or&quot;] = { &quot; or &quot; , &quot;&quot; , &quot; or &quot;, wantname = true },
[&quot;sqbr-sp&quot;] = { &quot; [&quot; , &quot;]&quot; },
[&quot;sqbr-nbsp&quot;] = { &quot;&amp;nbsp;[&quot; , &quot;]&quot; },
[&quot;comma&quot;] = { &quot;, &quot; , &quot;&quot; , &quot;, &quot; },
[&quot;slash-sp&quot;] = { &quot; / &quot; , &quot;&quot; , wantname = true },
[&quot;slash-nbsp&quot;] = { &quot;&amp;nbsp;/ &quot;, &quot;&quot; , wantname = true },
[&quot;slash-nosp&quot;] = { &quot;/&quot; , &quot;&quot; , wantname = true },
[&quot;b&quot;] = { &quot; (&quot; , &quot;)&quot; },
[&quot;(or)&quot;] = { &quot; (&quot; , &quot;)&quot;, &quot; or &quot; },
[&quot;br&quot;] = { &quot;&lt;br /&gt;&quot; , &quot;&quot; , wantname = true },
[&quot;br()&quot;] = { &quot;&lt;br /&gt;(&quot; , &quot;)&quot;, wantname = true },
}
-- Text to separate values in a range.
local range_types = {
-- Specifying a table requires either:
-- * &quot;off&quot; and &quot;on&quot; values (for &quot;abbr=off&quot; and &quot;abbr=on&quot;), or
-- * &quot;input&quot; and &quot;output&quot; values (for LHS and RHS);
-- other fields are optional.
-- When &quot;adj=on|abbr=off&quot; applies, spaces in range text are replaced with hyphens.
-- With &quot;exception = true&quot;, that also occurs with &quot;adj=on|abbr=on&quot;.
-- If &quot;adj&quot; is defined here, that text (unchanged) is used with &quot;adj=on&quot;.
[&quot;+&quot;] = &quot; + &quot;,
[&quot;,&quot;] = &quot;,&amp;nbsp;&quot;,
[&quot;, and&quot;] = &quot;, and &quot;,
[&quot;, or&quot;] = &quot;, or &quot;,
[&quot;by&quot;] = &quot; by &quot;,
[&quot;-&quot;] = &quot;–&quot;,
[&quot;to about&quot;] = &quot; to about &quot;,
[&quot;and&quot;] = { off = &quot; and &quot;, on = &quot; and &quot;, exception = true },
[&quot;and(-)&quot;] = { input = &quot; and &quot;, output = &quot;–&quot; },
[&quot;or&quot;] = { off = &quot; or &quot; , on = &quot; or &quot; , exception = true },
[&quot;to&quot;] = { off = &quot; to &quot; , on = &quot; to &quot; , exception = true },
[&quot;to(-)&quot;] = { input = &quot;&amp;nbsp;to &quot;, output = &quot;–&quot; },
[&quot;+/-&quot;] = { off = &quot;&amp;nbsp;±&amp;nbsp;&quot;, on = &quot;&amp;nbsp;±&amp;nbsp;&quot;, adj = &quot;&amp;nbsp;±&amp;nbsp;&quot;, is_range_change = true },
[&quot;by(x)&quot;] = { input = &quot; by &quot;, output = &quot; ×&amp;nbsp;&quot;, out_range_x = true },
[&quot;x&quot;] = { off = &quot; by &quot;, on = &quot; ×&amp;nbsp;&quot;, abbr_range_x = true },
[&quot;xx&quot;] = &quot;&amp;nbsp;×&amp;nbsp;&quot;,
[&quot;*&quot;] = &quot;×&quot;,
[&quot;/&quot;] = &quot;&amp;thinsp;/&amp;thinsp;&quot;, -- for a table of high/low temperatures with {{convert|83|/|63|F|disp=br()|abbr=values}}
}
local range_aliases = {
-- [&quot;alternative name for a range&quot;] = &quot;standard range name&quot;
[&quot;–&quot;] = &quot;-&quot;,
[&quot;&amp;ndash;&quot;] = &quot;-&quot;,
[&quot;×&quot;] = &quot;x&quot;,
[&quot;&amp;times;&quot;] = &quot;x&quot;,
[&quot;±&quot;] = &quot;+/-&quot;,
[&quot;&amp;plusmn;&quot;] = &quot;+/-&quot;,
}
-- Convert accepts range text delimited with whitespace, for example, {{convert|1 to 2|ft}}.
-- In addition, the following &quot;words&quot; are accepted without spaces, for example, {{convert|1-2|ft}}.
-- Words must be in correct order for searching, for example, 'x' after 'xx'.
local range_words = { '-', '–', 'xx', 'x', '*' }
local ranges = {
types = range_types,
aliases = range_aliases,
words = range_words,
}
-- Valid option names.
local en_option_name = {
-- [&quot;local text for option name&quot;] = &quot;en name used in this module&quot;
[&quot;$&quot;] = &quot;$&quot;,
[&quot;abbr&quot;] = &quot;abbr&quot;,
[&quot;adj&quot;] = &quot;adj&quot;,
[&quot;comma&quot;] = &quot;comma&quot;,
[&quot;debug&quot;] = &quot;debug&quot;,
[&quot;disp&quot;] = &quot;disp&quot;,
[&quot;frac&quot;] = &quot;frac&quot;,
[&quot;input&quot;] = &quot;input&quot;,
[&quot;lang&quot;] = &quot;lang&quot;,
[&quot;lk&quot;] = &quot;lk&quot;,
[&quot;order&quot;] = &quot;order&quot;,
[&quot;qid&quot;] = &quot;qid&quot;,
[&quot;qual&quot;] = &quot;qual&quot;,
[&quot;qualifier&quot;] = &quot;qual&quot;,
[&quot;round&quot;] = &quot;round&quot;,
[&quot;sigfig&quot;] = &quot;sigfig&quot;,
[&quot;sing&quot;] = &quot;adj&quot;, -- &quot;sing&quot; is an old alias for &quot;adj&quot;
[&quot;sortable&quot;] = &quot;sortable&quot;,
[&quot;sp&quot;] = &quot;sp&quot;,
[&quot;spell&quot;] = &quot;spell&quot;,
[&quot;stylein&quot;] = &quot;stylein&quot;,
[&quot;styleout&quot;] = &quot;styleout&quot;,
[&quot;tracking&quot;] = &quot;tracking&quot;,
}
-- Valid option values.
-- Convention: parms.opt_xxx refers to an option that is set here
-- (not intended to be set by the template which invokes this module).
-- Example: At enwiki, &quot;abbr&quot; includes:
-- [&quot;comma&quot;] = &quot;opt_nocomma&quot;
-- As a result, if the template uses abbr=comma, Module:Convert sets:
-- parms[&quot;opt_nocomma&quot;] = true
-- parms[&quot;abbr&quot;] = nil
-- Therefore parms.abbr will be nil, or will have one of the listed values
-- that do not start with &quot;opt_&quot;.
-- An option value of form &quot;xxx?&quot; is the same as &quot;xxx&quot; but shows the input as deprecated.
local en_option_value = {
-- $=x is handled as a special case: x should be a currency symbol that will be used instead of &quot;$&quot;
[&quot;abbr&quot;] = {
-- [&quot;local text for option value&quot;] = &quot;en value used in this module&quot;
[&quot;def&quot;] = &quot;&quot;, -- ignored (some wrapper templates call convert with &quot;abbr=def&quot; to mean &quot;default abbreviation&quot;)
[&quot;h&quot;] = &quot;on&quot;, -- abbr=on + use &quot;h&quot; for hand unit (default)
[&quot;hh&quot;] = &quot;opt_hand_hh&quot;, -- abbr=on + use &quot;hh&quot; for hand unit
[&quot;in&quot;] = &quot;in&quot;, -- use symbol for LHS unit
[&quot;none&quot;] = &quot;off&quot;, -- old name for &quot;off&quot;
[&quot;off&quot;] = &quot;off&quot;, -- use name for all units
[&quot;on&quot;] = &quot;on&quot;, -- use symbol for all units
[&quot;out&quot;] = &quot;out&quot;, -- use symbol for RHS unit (default)
[&quot;unit&quot;] = &quot;unit&quot;, -- abbr=on but abbreviate units only: e6km → million km (not ×10⁶ km)
[&quot;values&quot;] = &quot;opt_values&quot;, -- show only input and output numbers, not units
[&quot;~&quot;] = &quot;opt_also_symbol&quot;, -- show input unit symbol as well as name
},
[&quot;adj&quot;] = {
[&quot;mid&quot;] = &quot;opt_adjectival, opt_adj_mid&quot;, -- adj=on with user-specified text after input unit (between input and output)
[&quot;off&quot;] = &quot;&quot;, -- ignored (off is the default)
[&quot;on&quot;] = &quot;opt_adjectival&quot;, -- unit name is singular and hyphenated
[&quot;pre&quot;] = &quot;opt_one_preunit&quot;, -- user-specified text before input unit
[&quot;ri0&quot;] = &quot;opt_ri=0&quot;, -- round input with precision = 0
[&quot;ri1&quot;] = &quot;opt_ri=1&quot;, -- round input with precision = 1
[&quot;ri2&quot;] = &quot;opt_ri=2&quot;, -- round input with precision = 2
[&quot;ri3&quot;] = &quot;opt_ri=3&quot;, -- round input with precision = 3
},
[&quot;comma&quot;] = {
[&quot;5&quot;] = &quot;opt_comma5&quot;, -- only use numsep grouping if 5 or more digits
[&quot;gaps&quot;] = &quot;opt_gaps&quot;, -- use gaps, not numsep, to separate groups of digits
[&quot;gaps3&quot;] = &quot;opt_gaps, opt_gaps3&quot;, -- group only in threes rather than default of no gap before a single digit after decimal mark
[&quot;off&quot;] = &quot;opt_nocomma&quot;, -- no numsep in input or output numbers
},
[&quot;debug&quot;] = {
[&quot;yes&quot;] = &quot;opt_sortable_debug&quot;, -- make the normally hidden sort key visible
},
[&quot;disp&quot;] = {
[&quot;5&quot;] = &quot;opt_round=5?&quot;, -- round output value to nearest 5
[&quot;b&quot;] = &quot;b&quot;, -- join: '(...)'
[&quot;(or)&quot;] = &quot;(or)&quot;, -- join: '(...)' with 'or' between outputs in a combination
[&quot;br&quot;] = &quot;br&quot;, -- join: '&lt;br /&gt;'
[&quot;br()&quot;] = &quot;br()&quot;, -- join: '&lt;br /&gt;(...)'
[&quot;comma&quot;] = &quot;comma&quot;, -- join: ','
[&quot;flip&quot;] = &quot;opt_flip&quot;, -- reverse order of input/output
[&quot;number&quot;] = &quot;opt_output_number_only&quot;, -- display output value (not input, and not output symbol/name)
[&quot;or&quot;] = &quot;or&quot;, -- join: 'or'
[&quot;out&quot;] = &quot;opt_output_only&quot;,
[&quot;output number only&quot;] = &quot;opt_output_number_only&quot;,
[&quot;output only&quot;] = &quot;opt_output_only&quot;,
[&quot;preunit&quot;] = &quot;opt_two_preunits&quot;, -- user-specified text before input and output units
[&quot;sqbr&quot;] = &quot;sqbr&quot;, -- join: '[...]'
[&quot;table&quot;] = &quot;opt_table&quot;, -- output is suitable for a table cell with align=&quot;right&quot;
[&quot;tablecen&quot;] = &quot;opt_tablecen&quot;, -- output is suitable for a table cell with align=&quot;center&quot;
[&quot;unit&quot;] = &quot;opt_input_unit_only&quot;, -- display input symbol/name (not output, and not input value)
[&quot;unit or text&quot;] = &quot;opt_input_unit_only, opt_ignore_error&quot;, -- display input symbol/name, or given unit code if not known
[&quot;unit2&quot;] = &quot;opt_output_unit_only&quot;,
[&quot;x&quot;] = &quot;x&quot;, -- join: &lt;first&gt;...&lt;second&gt; (user-specified text)
},
-- frac=x is handled as a special case: x must be an integer (possibly in local language) = 2 or more
-- input=x is handled as a special case: x should be &lt;value&gt;&lt;space&gt;&lt;unitcode&gt; or &lt;wikidata-property-id&gt;
[&quot;lang&quot;] = { -- language for output digits (both en and local digits are always accepted for input)
[&quot;en&quot;] = &quot;opt_lang_en&quot;, -- use en digits for numbers, regardless of local language
[&quot;local&quot;] = &quot;opt_lang_local&quot;, -- use local digits for numbers (default, although config can change default to en)
},
[&quot;lk&quot;] = {
[&quot;in&quot;] = &quot;in&quot;, -- link LHS unit name or symbol
[&quot;off&quot;] = &quot;off&quot;, -- do not link: same as default except for hand unit
[&quot;on&quot;] = &quot;on&quot;, -- link all unit names or symbols (but not twice for the same unit)
[&quot;out&quot;] = &quot;out&quot;, -- link RHS unit name or symbol
},
[&quot;order&quot;] = {
[&quot;flip&quot;] = &quot;opt_flip&quot;, -- reverse order of input/output
[&quot;out&quot;] = &quot;opt_order_out&quot;, -- do not show input; instead, use order in output combination, with the first output shown as the input
},
-- qid=x is handled as a special case: x should be a Wikidata Q item identifier.
-- qual=x is handled as a special case: x should be a Wikidata Q item identifier.
[&quot;round&quot;] = {
[&quot;0.5&quot;] = &quot;opt_round=0.5&quot;, -- round output value to nearest 0.5
[&quot;5&quot;] = &quot;opt_round=5&quot;, -- round output value to nearest 5
[&quot;10&quot;] = &quot;opt_round=10&quot;, -- round output value to nearest 10 (same as but clearer than &quot;|-1&quot;)
[&quot;25&quot;] = &quot;opt_round=25&quot;, -- round output value to nearest 25
[&quot;50&quot;] = &quot;opt_round=50&quot;, -- round output value to nearest 50
[&quot;each&quot;] = &quot;opt_round_each&quot;, -- using default precision in a range, round each output separately (default uses highest precision of each item in range)
},
-- sigfig=x is handled as a special case: x must be an integer (possibly in local language) = 1 or more
[&quot;sortable&quot;] = {
[&quot;off&quot;] = &quot;&quot;, -- ignored (off is the default)
[&quot;on&quot;] = &quot;opt_sortable_on&quot;, -- output sort key for use in a sortable table, based on value from converting to a standard base unit
},
[&quot;sp&quot;] = {
[&quot;us&quot;] = &quot;opt_sp_us&quot;, -- use U.S. spelling (like &quot;meter&quot; instead of default &quot;metre&quot;)
},
[&quot;spell&quot;] = { -- only English spelling is supported; not scientific notation; only some fractions
[&quot;in&quot;] = &quot;opt_spell_in&quot;, -- spell input value in words
[&quot;In&quot;] = &quot;opt_spell_in, opt_spell_upper&quot;, -- spell input value in words with first letter uppercase
[&quot;on&quot;] = &quot;opt_spell_in, opt_spell_out&quot;, -- spell input and output values in words
[&quot;On&quot;] = &quot;opt_spell_in, opt_spell_out, opt_spell_upper&quot;, -- same, with first letter of first word in result uppercase
},
-- stylein=x is handled as a special case: x can be any text
-- styleout=x is handled as a special case: x can be any text
-- tracking=x is handled as a special case: x can be any text
}
return {
SIprefixes = SIprefixes,
all_categories = all_categories,
all_messages = all_messages,
currency = { ['$'] = true, ['£'] = true },
customary_units = customary_units,
disp_joins = disp_joins,
en_option_name = en_option_name,
en_option_value = en_option_value,
eng_scales = eng_scales,
ranges = ranges,
}</text>
<sha1>qp6yj3a6r8tvugb8vhlzus48h656e6s</sha1>
</revision>
</page>
<page>
<title>Module:DemoTemplate</title>
<ns>828</ns>
<id>46945466</id>
<revision>
<id>668486715</id>
<parentid>667086697</parentid>
<timestamp>2015-06-24T16:21:20Z</timestamp>
<contributor>
<username>Jackmcbarn</username>
<id>19285809</id>
</contributor>
<comment>fix bug with equals signs in positional parameters</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="919">require('Module:No globals')
local newBuffer = require('Module:OutputBuffer')
local mt = {}
function mt.__index(t, title)
return function(frame)
local getBuffer, print, printf = newBuffer()
printf('{{%s', title)
local ipairsArgs = {}
for k,v in ipairs(frame.args) do
if string.find(v, '=', 1, true) then
break
end
ipairsArgs[k] = true
printf('|%s', v)
end
for k,v in pairs(frame.args) do
if not ipairsArgs[k] then
printf('|%s=%s', string.gsub(k, '=', '{{=}}'), v)
end
end
print('}}')
local buffer = getBuffer()
-- rather than calling expandTemplate with the title and args we have, call preprocess, so that our code example will always match our output, even in the cases of pipes or other things we should have escaped but didn't
return string.format('&lt;code&gt;%s&lt;/code&gt; &amp;rarr; %s', mw.text.nowiki(buffer), frame:preprocess(buffer))
end
end
return setmetatable({}, mt)</text>
<sha1>qngjuip51n16bp7fhsbud168a9jjmg2</sha1>
</revision>
</page>
<page>
<title>Module:OutputBuffer</title>
<ns>828</ns>
<id>43146584</id>
<revision>
<id>695184564</id>
<parentid>614439121</parentid>
<timestamp>2015-12-14T09:30:14Z</timestamp>
<contributor>
<username>The Earwig</username>
<id>7418060</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Module:OutputBuffer]]&quot;: [[WP:High-risk templates|High-risk Lua module]]: over 10,000 mainspace transclusions ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="245">return function()
local buffer = {}
return function(sep)
local b = buffer
buffer = {}
return table.concat(b, sep)
end,
function(text)
buffer[#buffer + 1] = text
end,
function(...)
buffer[#buffer + 1] = string.format(...)
end
end</text>
<sha1>q99uj160az0ttaurr5k4mo7r9ep8nyi</sha1>
</revision>
</page>
<page>
<title>Module:Val</title>
<ns>828</ns>
<id>44970376</id>
<revision>
<id>804711435</id>
<parentid>804708744</parentid>
<timestamp>2017-10-10T17:40:37Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Module:Val]]&quot;: [[WP:High-risk templates|High-risk Lua module]]: 6,000+ transclusions ([Edit=Require extended confirmed access] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="22745">-- For Template:Val, output a number and optional unit.
-- Format options include scientific and uncertainty notations.
local data_module -- name of module defining units
local function valerror(msg, nocat, iswarning)
-- Return formatted message text for an error or warning.
-- Can append &quot;#FormattingError&quot; to URL of a page with a problem to find it.
local anchor = '&lt;span id=&quot;FormattingError&quot;&gt;&lt;/span&gt;'
local body, category
if nocat or mw.title.getCurrentTitle():inNamespaces(1, 2, 3, 5) then
-- No category in Talk, User, User_talk, or Wikipedia_talk.
category = ''
else
category = '[[Category:Pages with incorrect formatting templates use]]'
end
if iswarning then
body = '&lt;sup class=&quot;noprint Inline-Template&quot; style=&quot;white-space:nowrap;&quot;&gt;' ..
'[[Template:Val|&lt;span title=&quot;' ..
msg:gsub('&quot;', '&amp;quot;') ..
'&quot;&gt;warning&lt;/span&gt;]]&lt;/sup&gt;'
else
body = '&lt;strong class=&quot;error&quot;&gt;' ..
'Error in &amp;#123;&amp;#123;[[Template:val|val]]&amp;#125;&amp;#125;: ' ..
msg ..
'&lt;/strong&gt;'
end
return anchor .. body .. category
end
local range_types = {
-- No need for '&amp;nbsp;' because nowrap applies to all output.
[&quot;,&quot;] = &quot;, &quot;,
[&quot;by&quot;] = &quot; by &quot;,
[&quot;-&quot;] = &quot;–&quot;,
[&quot;–&quot;] = &quot;–&quot;,
[&quot;and&quot;] = &quot; and &quot;,
[&quot;or&quot;] = &quot; or &quot; ,
[&quot;to&quot;] = &quot; to &quot; ,
[&quot;x&quot;] = &quot; × &quot;,
[&quot;×&quot;] = &quot; × &quot;,
[&quot;/&quot;] = &quot;/&quot;,
}
local range_repeat_unit = {
-- WP:UNIT wants unit repeated when a &quot;multiply&quot; range is used.
[&quot;x&quot;] = true,
[&quot;×&quot;] = true,
}
local function extract_item(index, numbers, arg)
-- Extract an item from arg and store the result in numbers[index].
-- If no argument or if argument is valid, return nil (no error);
-- otherwise, return an error message.
-- The stored result is:
-- * a table for a number (empty if there was no specified number); or
-- * a string for range text
-- Input like 1e3 is regarded as invalid for all except argument 1
-- which accepts e notation as an alternative to the 'e' argument.
-- Input commas are removed so 1,234 is the same as 1234.
local which = index
local function fail(msg)
local description
if which == 'e' then
description = 'exponent parameter (&lt;b&gt;e&lt;/b&gt;)'
else
description = 'parameter ' .. which
end
return description .. ' ' .. (msg or 'is not a valid number') .. '.'
end
local result = {}
local range = range_types[arg]
if range then
if type(index) == 'number' and (index % 2 == 0) then
if index == 2 then
if numbers[1] and numbers[1].exp then
return fail('cannot use a range if the first parameter includes &quot;e&quot;')
end
numbers.has_ranges = true
else
if not numbers.has_ranges then
return fail('needs a range in parameter 2')
end
end
numbers[index] = range
if range_repeat_unit[arg] then
-- Any &quot;repeat&quot; range forces unit (if any) to be repeated for all items.
numbers.isrepeat = true
end
return nil
end
return fail('does not accept a range')
end
if numbers.has_ranges and type(index) == 'number' and (index % 2 == 0) then
return fail('should be a range')
end
if index == 'e' then
local e = numbers[1] and numbers[1].exp
if e then
if arg then
return fail('cannot be used if the first parameter includes &quot;e&quot;')
end
arg = e
which = 1
end
end
if arg and arg ~= '' then
arg = arg:gsub(',', '')
if arg:sub(1, 1) == '(' and arg:sub(-1) == ')' then
result.parens = true
arg = arg:sub(2, -2)
end
local a, b = arg:match('^(.+)[Ee](.+)$')
if a then
if index == 1 then
arg = a
result.exp = b
else
return fail('cannot use e notation')
end
end
local isnegative, propersign, prefix
local minus = '−'
prefix, arg = arg:match('^(.-)([%d.]+)$')
local value = tonumber(arg)
if not value then
return fail()
end
if arg:sub(1, 1) == '.' then
arg = '0' .. arg
end
if prefix == '' then
-- Ignore.
elseif prefix == '±' then
-- Display for first number, ignore for others.
if index == 1 then
propersign = '±'
end
elseif prefix == '+' then
propersign = '+'
elseif prefix == '-' or prefix == minus then
propersign = minus
isnegative = true
else
return fail()
end
result.clean = arg
result.sign = propersign or ''
result.value = isnegative and -value or value
end
numbers[index] = result
return nil -- no error
end
local function get_args(numbers, args)
-- Extract arguments and store the results in numbers.
-- Return nothing (no error) if ok; otherwise, return an error message.
for index = 1, 99 do
local which = index
local arg = args[which] -- has been trimmed
if not arg then
which = 'e'
arg = args[which]
end
local msg = extract_item(which, numbers, arg)
if msg then
return msg
end
if which == 'e' then
break
end
if index &gt; 19 then
return 'too many parameters'
end
end
if numbers.has_ranges and (#numbers % 2 == 0) then
return 'need a number after the last parameter because it is a range.'
end
end
local function get_scale(text, ucode)
-- Return the value of text as a number, or throw an error.
-- This supports extremely basic expressions of the form:
-- a / b
-- a ^ b
-- where a and b are numbers or 'pi'.
local n = tonumber(text)
if n then
return n
end
n = text:gsub('pi', math.pi)
for _, op in ipairs({ '/', '^' }) do
local a, b = n:match('^(.-)' .. op .. '(.*)$')
if a then
a = tonumber(a)
b = tonumber(b)
if a and b then
if op == '/' then
return a / b
elseif op == '^' then
return a ^ b
end
end
break
end
end
error('Unit &quot;' .. ucode .. '&quot; has invalid scale &quot;' .. text .. '&quot;')
end
local function get_builtin_unit(ucode, definitions)
-- Return table of information for the specified built-in unit, or nil if not known.
-- Each defined unit code must be followed by two spaces (not tab characters).
local _, pos = definitions:find('\n' .. ucode .. ' ', 1, true)
if pos then
local endline = definitions:find('%s*\n', pos)
if endline then
local result = {}
local n = 0
local text = definitions:sub(pos + 1, endline - 1):gsub('%s%s+', '\t')
for item in (text .. '\t'):gmatch('(%S.-)\t') do
if item == 'ALIAS' then
result.alias = true
elseif item == 'ANGLE' then
result.isangle = true
result.nospace = true
elseif item == 'NOSPACE' then
result.nospace = true
elseif item == 'SI' then
result.si = true
else
n = n + 1
if n == 1 then
local link, symbol = item:match('^%[%[([^|]+)|(.+)%]%]$')
if link then
result.symbol = symbol
result.link = link
n = 2
else
result.symbol = item
end
elseif n == 2 then
result.link = item
elseif n == 3 then
result.scale_text = item
result.scale = get_scale(item, ucode)
else
result.more_ignored = item
break
end
end
end
if result.si then
local s = result.symbol
if ucode == 'mc' .. s or ucode == 'mu' .. s then
result.ucode = 'µ' .. s -- unit code for convert should be this
end
end
if n &gt;= 2 or (n &gt;= 1 and result.alias) then
return result
end
-- Ignore invalid definition, treating it as a comment.
end
end
end
local function convert_lookup(ucode, value, scaled_top, want_link, si, options)
local lookup = require('Module:Convert')._unit
return lookup(ucode, {
value = value,
scaled_top = scaled_top,
link = want_link,
si = si,
sort = options.sortable,
})
end
local function get_unit(ucode, value, scaled_top, options)
local want_link = options.want_link
if scaled_top then
want_link = options.want_per_link
end
local data = mw.loadData(data_module)
local result = options.want_longscale and
get_builtin_unit(ucode, data.builtin_units_long_scale) or
get_builtin_unit(ucode, data.builtin_units)
local si, use_convert
if result then
if result.alias then
ucode = result.symbol
use_convert = true
end
if result.scale then
-- Setting si means convert will use the unit as given, and the sort key
-- will be calculated from the value without any extra scaling that may
-- occur if convert found the unit code. For example, if val defines the
-- unit 'year' with a scale and if si were not set, convert would also apply
-- its own scale because convert knows that a year is 31,557,600 seconds.
si = { result.symbol, result.link }
value = value * result.scale
end
if result.si then
ucode = result.ucode or ucode
si = { result.symbol, result.link }
use_convert = true
end
else
result = {}
use_convert = true
end
local convert_unit = convert_lookup(ucode, value, scaled_top, want_link, si, options)
result.sortkey = convert_unit.sortspan
if use_convert then
result.text = convert_unit.text
result.scaled_top = convert_unit.scaled_value
else
if want_link then
result.text = '[[' .. result.link .. '|' .. result.symbol .. ']]'
else
result.text = result.symbol
end
result.scaled_top = value
end
return result
end
local function makeunit(value, options)
-- Return table of information for the requested unit and options, or
-- return nil if no unit.
options = options or {}
local unit
local ucode = options.u
local percode = options.per
if ucode then
unit = get_unit(ucode, value, nil, options)
elseif percode then
unit = { nospace = true, scaled_top = value }
else
return nil
end
local text = unit.text or ''
local sortkey = unit.sortkey
if percode then
local function bracketed(code, text)
return code:find('[*./]') and '(' .. text .. ')' or text
end
local perunit = get_unit(percode, 1, unit.scaled_top, options)
text = (ucode and bracketed(ucode, text) or '') ..
'/' .. bracketed(percode, perunit.text)
sortkey = perunit.sortkey
end
if not (unit.nospace or options.nospace) then
text = '&amp;nbsp;' .. text
end
return { text = text, isangle = unit.isangle, sortkey = sortkey }
end
local function list_units(mode)
-- Return wikitext to list the built-in units.
-- A unit code should not contain wikimarkup so don't bother escaping.
local data = mw.loadData(data_module)
local definitions = data.builtin_units .. data.builtin_units_long_scale
local last_was_blank = true
local n = 0
local result = {}
local function add(line)
if line == '' then
last_was_blank = true
else
if last_was_blank and n &gt; 0 then
n = n + 1
result[n] = ''
end
last_was_blank = false
n = n + 1
result[n] = line
end
end
local si_prefixes = {
-- These are the prefixes recognized by convert; u is accepted for micro.
y = 'y',
z = 'z',
a = 'a',
f = 'f',
p = 'p',
n = 'n',
u = 'µ',
['µ'] = 'µ',
m = 'm',
c = 'c',
d = 'd',
da = 'da',
h = 'h',
k = 'k',
M = 'M',
G = 'G',
T = 'T',
P = 'P',
E = 'E',
Z = 'Z',
Y = 'Y',
}
local function is_valid(ucode, unit)
if unit and not unit.more_ignored then
assert(type(unit.symbol) == 'string' and unit.symbol ~= '')
if unit.alias then
if unit.link or unit.scale_text or unit.si then
return false
end
end
if unit.si then
if unit.scale_text then
return false
end
ucode = unit.ucode or ucode
local base = unit.symbol
if ucode == base then
unit.display = base
return true
end
local plen = #ucode - #base
if plen &gt; 0 then
local prefix = si_prefixes[ucode:sub(1, plen)]
if prefix and ucode:sub(plen + 1) == base then
unit.display = prefix .. base
return true
end
end
else
unit.display = unit.symbol
return true
end
end
return false
end
local lookup = require('Module:Convert')._unit
local function show_convert(ucode, unit)
-- If a built-in unit defines a scale or sets the SI flag, any unit defined in
-- convert is not used (the scale or SI prefix's scale is used for a sort key).
-- If there is no scale or SI flag, and the unit is not defined in convert,
-- the sort key may not be correct; this allows such units to be identified.
if not (unit.si or unit.scale_text) then
if mode == 'convert' then
unit.show = not lookup(unit.alias and unit.symbol or ucode).unknown
unit.show_text = 'CONVERT'
elseif mode == 'unknown' then
unit.show = lookup(unit.alias and unit.symbol or ucode).unknown
unit.show_text = 'UNKNOWN'
elseif not unit.alias then
-- Show convert's scale in square brackets ('[1]' for an unknown unit).
-- Don't show scale for an alias because it's misleading for temperature
-- and an alias is probably not useful for anything else.
local scale = lookup(ucode, {value=1, sort='on'}).scaled_value
if type(scale) == 'number' then
scale = string.format('%.5g', scale):gsub('e%+?(%-?)0*(%d+)', 'e%1%2')
else
scale = '?'
end
unit.show = true
unit.show_text = '[' .. scale .. ']'
end
end
end
for line in definitions:gmatch('([^\n]*)\n') do
local pos, _ = line:find(' ', 1, true)
if pos then
local ucode = line:sub(1, pos - 1)
local unit = get_builtin_unit(ucode, '\n' .. line .. '\n')
if is_valid(ucode, unit) then
show_convert(ucode, unit)
local flags, text
if unit.alias then
text = unit.symbol
else
text = '[[' .. unit.link .. '|' .. unit.display .. ']]'
end
if unit.isangle then
unit.nospace = nil -- don't show redundant flag
end
for _, f in ipairs({
{ 'alias', 'ALIAS' },
{ 'isangle', 'ANGLE' },
{ 'nospace', 'NOSPACE' },
{ 'si', 'SI' },
{ 'scale_text', unit.scale_text },
{ 'show', unit.show_text },
}) do
if unit[f[1]] then
local t = f[2]
if t:match('^%u+$') then
t = '&lt;small&gt;' .. t .. '&lt;/small&gt;'
end
if flags then
flags = flags .. ' ' .. t
else
flags = t
end
end
end
if flags then
text = text .. ' • ' .. flags
end
add(ucode .. ' = ' .. text .. '&lt;br /&gt;')
else
add(line .. ' ◆ &lt;b&gt;invalid definition&lt;/b&gt;&lt;br /&gt;')
end
else
add(line)
end
end
return table.concat(result, '\n')
end
local delimit_groups = require('Module:Gapnum').groups
local function delimit(sign, numstr, fmt)
-- Return sign and numstr (unsigned digits or '.' only) after formatting.
-- Four-digit integers are not formatted with gaps.
fmt = (fmt or ''):lower()
if fmt == 'none' or (fmt == '' and #numstr == 4 and numstr:match('^%d+$')) then
return sign .. numstr
end
-- Group number by integer and decimal parts.
-- If there is no decimal part, delimit_groups returns only one table.
local ipart, dpart = delimit_groups(numstr)
local result
if fmt == 'commas' then
result = sign .. table.concat(ipart, ',')
if dpart then
result = result .. '.' .. table.concat(dpart)
end
else
-- Delimit with a small gap by default.
local groups = {}
groups[1] = table.remove(ipart, 1)
for _, v in ipairs(ipart) do
table.insert(groups, '&lt;span style=&quot;margin-left:.25em;&quot;&gt;' .. v .. '&lt;/span&gt;')
end
if dpart then
table.insert(groups, '.' .. (table.remove(dpart, 1) or ''))
for _, v in ipairs(dpart) do
table.insert(groups, '&lt;span style=&quot;margin-left:.25em;&quot;&gt;' .. v .. '&lt;/span&gt;')
end
end
result = sign .. table.concat(groups)
end
return result
end
local function sup_sub(sup, sub, align)
-- Return the same result as Module:Su except val defaults to align=right.
if align == 'l' or align == 'left' then
align = 'left'
elseif align == 'c' or align == 'center' then
align = 'center'
else
align = 'right'
end
return '&lt;span style=&quot;display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:85%;text-align:' ..
align .. ';&quot;&gt;' .. sup .. '&lt;br /&gt;' .. sub .. '&lt;/span&gt;'
end
local function range_text(items, unit_table, options)
local fmt = options.fmt
local nend = items.nend or ''
if items.isrepeat or unit_table.isangle then
nend = nend .. unit_table.text
end
local text = ''
for i = 1, #items do
if i % 2 == 0 then
text = text .. items[i]
else
text = text .. delimit(items[i].sign, items[i].clean, fmt) .. nend
end
end
return text
end
local function uncertainty_text(uncertainty, unit_table, options)
local angle, text, need_parens
if unit_table.isangle then
angle = unit_table.text
end
local upper = uncertainty.upper or {}
local lower = uncertainty.lower or {}
local uncU = upper.clean
if uncU then
local fmt = options.fmt
local uncL = lower.clean
if uncL then
uncU = delimit('+', uncU, fmt) .. (upper.errend or '')
uncL = delimit('−', uncL, fmt) .. (lower.errend or '')
if angle then
uncU = uncU .. angle
uncL = uncL .. angle
end
text = (angle or '') ..
'&lt;span style=&quot;margin-left:0.3em;&quot;&gt;' ..
sup_sub(uncU, uncL, options.align) ..
'&lt;/span&gt;'
else
if upper.parens then
text = '(' .. uncU .. ')' -- old template did not delimit
else
text = (angle or '') ..
'&lt;span style=&quot;margin-left:0.3em;margin-right:0.15em;&quot;&gt;±&lt;/span&gt;' ..
delimit('', uncU, fmt)
need_parens = true
end
if uncertainty.errend then
text = text .. uncertainty.errend
end
if angle then
text = text .. angle
end
end
else
if angle then
text = angle
end
end
return text, need_parens
end
local function _main(values, unit_spec, options)
data_module = 'Module:Val/units' .. (options.sandbox and '/sandbox' or '')
local action = options.action
if action then
if action == 'list' then
-- Kludge: am using the align parameter (a=xxx) for type of list.
return list_units(options.align)
end
return valerror('invalid action &quot;' .. action .. '&quot;.', options.nocat)
end
local number = values.number or (values.numbers and values.numbers[1]) or {}
local e_10 = options.e or {}
local novalue = (number.value == nil and e_10.clean == nil)
local fmt = options.fmt
local want_sort = true
local sortable = options.sortable
if sortable == 'off' or (sortable == nil and novalue) then
want_sort = false
elseif sortable == 'debug' then
-- Same as sortable = 'on' but the sort key is displayed.
else
sortable = 'on'
end
local sort_value = 1
if want_sort then
sort_value = number.value or 1
if e_10.value and sort_value ~= 0 then
-- The 'if' avoids {{val|0|e=1234}} giving an invalid sort_value due to overflow.
sort_value = sort_value * 10^e_10.value
end
end
local unit_table = makeunit(sort_value, {
u = unit_spec.u,
want_link = unit_spec.want_link,
per = unit_spec.per,
want_per_link = unit_spec.want_per_link,
nospace = novalue,
want_longscale = unit_spec.want_longscale,
sortable = sortable,
})
local sortkey
if unit_table then
if want_sort then
sortkey = unit_table.sortkey
end
else
unit_table = { text = '' }
if want_sort then
sortkey = convert_lookup('dummy', sort_value, nil, nil, nil, { sortable = sortable }).sortspan
end
end
local final_unit = unit_table.isangle and '' or unit_table.text
local e_text, n_text, need_parens
local uncertainty = values.uncertainty
if uncertainty then
if number.clean then
n_text = delimit(number.sign, number.clean, fmt) .. (number.nend or '')
local text
text, need_parens = uncertainty_text(uncertainty, unit_table, options)
if text then
n_text = n_text .. text
end
else
n_text = ''
end
else
if values.numbers.isrepeat then
final_unit = ''
end
n_text = range_text(values.numbers, unit_table, options)
need_parens = true
end
if e_10.clean then
if need_parens then
n_text = '(' .. n_text .. ')'
end
e_text = '10&lt;sup&gt;' .. delimit(e_10.sign, e_10.clean, fmt) .. '&lt;/sup&gt;'
if number.clean then
e_text = '&lt;span style=&quot;margin-left:0.25em;margin-right:0.15em;&quot;&gt;×&lt;/span&gt;' .. e_text
end
else
e_text = ''
end
local result =
(sortkey or '') ..
(options.prefix or '') ..
n_text ..
e_text ..
final_unit ..
(options.suffix or '')
if result ~= '' then
result = '&lt;span class=&quot;nowrap&quot;&gt;' .. result .. '&lt;/span&gt;'
end
return result .. (options.warning or '')
end
local function check_parameters(args, has_ranges, nocat)
-- Return warning text for the first problem parameter found, or nothing if ok.
local whitelist = {
a = true,
action = true,
debug = true,
e = true,
['end'] = true,
errend = true,
['+errend'] = true,
['-errend'] = true,
fmt = true,
['long scale'] = true,
long_scale = true,
longscale = true,
nocategory = true,
p = true,
s = true,
sortable = true,
u = true,
ul = true,
up = true,
upl = true,
}
for k, v in pairs(args) do
if type(k) == 'string' and not whitelist[k] then
local warning = 'Val parameter &quot;' .. k .. '=' .. v .. '&quot; is not supported'
return valerror(warning, nocat, true)
end
end
if not has_ranges and args[4] then
return valerror('Val parameter 4 ignored', nocat, true)
end
end
local function main(frame)
local getArgs = require('Module:Arguments').getArgs
local args = getArgs(frame, {wrappers = { 'Template:Val', 'Template:Val/sandboxlua' }})
local nocat = args.nocategory
local numbers = {} -- table of number tables, perhaps with range text
local msg = get_args(numbers, args)
if msg then
return valerror(msg, nocat)
end
if args.u and args.ul then
return valerror('unit (&lt;b&gt;u&lt;/b&gt;) and unit with link (&lt;b&gt;ul&lt;/b&gt;) are both specified, only one is allowed.', nocat)
end
if args.up and args.upl then
return valerror('unit per (&lt;b&gt;up&lt;/b&gt;) and unit per with link (&lt;b&gt;upl&lt;/b&gt;) are both specified, only one is allowed.', nocat)
end
local values
if numbers.has_ranges then
-- Multiple values with range separators but no uncertainty.
numbers.nend = args['end']
values = {
numbers = numbers,
}
else
-- A single value with optional uncertainty.
local function setfield(i, dst, src)
local v = args[src]
if v then
if numbers[i] then
numbers[i][dst] = v
else
numbers[i] = { [dst] = v }
end
end
end
setfield(1, 'nend', 'end')
setfield(2, 'errend', '+errend')
setfield(3, 'errend', '-errend')
values = {
number = numbers[1],
uncertainty = {
upper = numbers[2],
lower = numbers[3],
errend = args.errend,
}
}
end
local unit_spec = {
u = args.ul or args.u,
want_link = args.ul ~= nil,
per = args.upl or args.up,
want_per_link = args.upl ~= nil,
want_longscale = (args.longscale or args.long_scale or args['long scale']) == 'on',
}
local options = {
action = args.action,
align = args.a,
e = numbers.e,
fmt = args.fmt,
nocat = nocat,
prefix = args.p,
sandbox = string.find(frame:getTitle(), 'sandbox', 1, true) ~= nil,
sortable = args.sortable or (args.debug == 'yes' and 'debug' or nil),
suffix = args.s,
warning = check_parameters(args, numbers.has_ranges, nocat),
}
return _main(values, unit_spec, options)
end
return { main = main, _main = _main }</text>
<sha1>e8fqbimtzjarl2gokdfvw8mazzzqyog</sha1>
</revision>
</page>
<page>
<title>Module:Val/units</title>
<ns>828</ns>
<id>44972360</id>
<revision>
<id>808692175</id>
<parentid>807812095</parentid>
<timestamp>2017-11-04T14:32:16Z</timestamp>
<contributor>
<username>Quondum</username>
<id>12331483</id>
</contributor>
<comment>support the unit used by the SI's defnition of the [[Avogadro constant]]</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="25101">-- Definitions for units known to val
-- File format is two strings and a return statement with them in it:
-- string in quotes [=[ ... builtin_units ... ]=].
-- string in quotes [=[ ... builtin_units_long_scale ... ]=].
-- First string, builtin_units, is short-scale, second string is long scale.
-- Entry format:
-- One record per line, starting in first column, having 2-4 fields.
-- Field separator: two or more spaces
-- Between first and second fields: two or more spaces
-- Between all other fields: two or more spaces, or one or more tabs
-- Entries without two spaces in them are ignored.
-- There must be a blank line before the first entry and after the last.
-- I.e. the first two and last two characters of the string must be newlines.
-- Format of entry. Two record types:
--
-- One record type is a wikilink:
-- Unit-code [[ pagename | Symbol-accepts-HTML-only ]]
-- Text-field separator is still two spaces. Two spaces not allowed in wikilink.
--
-- The other record type is all fields:
-- Unit-code symbol-accepts-HTML-only pagename#section-OK
--
-- Plus there is an optional field that goes at the end after two or more spaces.
-- Whether it is a number or an equation or the letters SI,
-- any of these three has the same function: a wikitable sorting &quot;scale&quot;.
-- It is for sorting, and it works for either record type.
-- Difference is SI can't accept HTML. But SI correctly scales any SI prefix.
-- (Optional fields ALIAS and NOSPACE and ANGLE are for advanced users.)
-- &quot;Invalid unit&quot; error:
-- Using SI requires that the symbol equal unit-code, so never allows HTML.
-- Any difference between SI or symbol must be an SI prefix, such as k, M, or G.
-- A space at the end of an entry is an error. No space at each EOL.
local builtin_units = [=[
== Test ==
Foo [[Hz|&lt;samp&gt;Foo&lt;/samp&gt;]]
Baz [[Hertz|baz&lt;sub&gt;0&lt;/sub&gt;]]
Baz [[Kelvins|baz&lt;sub&gt;0&lt;/sub&gt;]]
Bar [[Foobar|bar&lt;abbr title=&quot;super duper&quot;&gt;0&lt;/abbr&gt;]]
quux [[Foobar|&lt;span title=&quot;super duper 2&quot;&gt;bar0&lt;/span&gt;]]
== Unsorted units ==
c0 [[Speed of light#Numerical value, notation, and units|''c''&lt;sub&gt;0&lt;/sub&gt;]]
lbf [[Pound (force)|&lt;span title=&quot;pound-force&quot;&gt;lb&lt;sub&gt;F&lt;/sub&gt;&lt;/span&gt; ]]
C/mol [[Faraday constant|C/mol]]
C.mol-1 [[Faraday constant|C&amp;sdot;mol&lt;sup&gt;−1&lt;/sup&gt;]]
C/kg [[Roentgen (unit)|C/kg]]
C.kg-1 [[Roentgen (unit)|C&amp;sdot;kg&lt;sup&gt;−1&lt;/sup&gt;]]
F.m-1 [[vacuum permittivity|F&amp;sdot;m&lt;sup&gt;−1&lt;/sup&gt;]]
F/m [[vacuum permittivity|F/m]]
e [[Elementary charge|''e'']]
kB [[Kilobyte|kB]] 8e3
MB [[Megabyte|MB]] 8e6
GB [[Gigabyte|GB]] 8e9
TB [[Terabyte|TB]] 8e12
== Time and frequency ==
byte/s [[Data rate units|byte/s]] 8
kB/s [[Data rate units#Kilobyte per second|&lt;span title=&quot;Kilobytes per second&quot;&gt;kB/s&lt;/span&gt;]] 8e3
MB/s [[Data rate units#Megabyte per second|&lt;span title=&quot;Megabytes per second&quot;&gt;MB/s&lt;/span&gt;]] 8e6
GB/s [[Data rate units#Gigabyte per second|&lt;span title=&quot;Gigabytes per second&quot;&gt;GB/s&lt;/span&gt;]] 8e9
TB/s [[Data rate units#Terabyte per second|&lt;span title=&quot;Terabytes per second&quot;&gt;TB/s&lt;/span&gt;]] 8e12
bit/s [[Bit per second|bit/s]] 1
bps [[Bit per second|bit/s]] 1
kbit/s [[Kilobit per second|kbit/s]] 1e3
Mbit/s [[Megabit per second|Mbit/s]] 1e6
Gbit/s [[Gigabit per second|Gbit/s]] 1e9
Tbit/s [[Terabit per second|Tbit/s]] 1e12
kT/s [[Transfer (computing)|&lt;span title=&quot;Kilotransfers per second&quot;&gt;kT/s&lt;/span&gt;]] 1e3
MT/s [[Transfer (computing)|&lt;span title=&quot;Megatransfers per second&quot;&gt;MT/s&lt;/span&gt;]] 1e6
GT/s [[Transfer (computing)|&lt;span title=&quot;Gigatransfers per second&quot;&gt;GT/s&lt;/span&gt;]] 1e9
year [[Year|year]] 31557600
years [[Year|years]] 31557600
yr [[Year#Symbols y and yr|yr]] 31557600
y [[Year|y]] 31557600
a [[Annum|a]] 31557600
Ga [[Gigaannum|Ga]] 31557600000000000
Ma [[Megaannum|Ma]] 31557600000000
ka [[Kiloannum|ka]] 31557600000
kyr [[kyr|kyr]] 31557600000
kya [[kyr|kya]] 31557600000
myr [[myr|myr]] 31557600000000
mya [[Mya (unit)|mya]] 31557600000000
byr [[Billion years|byr]] 31557600000000000
bya [[Billion years ago|bya]] 31557600000000000
Gyr [[Year#SI prefix multipliers|Ga]] 31557600000000000
BP [[Before present|BP]]
uBP [[Radiocarbon dating#Calibration|&lt;sup&gt;14&lt;/sup&gt;C yr BP]]
BC [[Before Christ|BC]] -1
AD [[Anno Domini|AD]] 1
BCE [[Before the Common Era|BCE]] -1
CE [[Common Era|CE]] 1
s-1 [[Second|s&lt;sup&gt;−1&lt;/sup&gt;]]
s-2 [[Second|s&lt;sup&gt;−2&lt;/sup&gt;]]
s2 [[Second|s&lt;sup&gt;2&lt;/sup&gt;]]
s [[Second|s]] SI
as [[Attosecond|s]] SI
cs [[Second|s]] SI
das [[Second|s]] SI
ds [[Second|s]] SI
Es [[Second|s]] SI
fs [[Femtosecond|s]] SI
Gs [[Second|s]] SI
hs [[Second|s]] SI
ks [[Second|s]] SI
ms [[Millisecond|s]] SI
µs [[Microsecond|s]] SI
us [[Microsecond|s]] SI
Ms [[Second|s]] SI
ns [[Nanosecond|s]] SI
ps [[Picosecond|s]] SI
Ps [[Second|s]] SI
Ts [[Second|s]] SI
Ys [[Second|s]] SI
ys [[Yoctosecond|s]] SI
Zs [[Second|s]] SI
zs [[Zeptosecond|s]] SI
Hz [[Hertz|Hz]] SI
aHz [[Hertz|Hz]] SI
cHz [[Hertz|Hz]] SI
daHz [[Hertz|Hz]] SI
dHz [[Hertz|Hz]] SI
EHz [[Hertz|Hz]] SI
fHz [[Hertz|Hz]] SI
hHz [[Hertz|Hz]] SI
GHz [[Gigahertz|Hz]] SI
kHz [[Kilohertz|Hz]] SI
MHz [[Megahertz|Hz]] SI
mHz [[Hertz|Hz]] SI
uHz [[Hertz|Hz]] SI
µHz [[Hertz|Hz]] SI
nHz [[Hertz|Hz]] SI
pHz [[Hertz|Hz]] SI
PHz [[Hertz|Hz]] SI
THz [[Hertz|Hz]] SI
yHz [[Hertz|Hz]] SI
YHz [[Hertz|Hz]] SI
zHz [[Hertz|Hz]] SI
ZHz [[Hertz|Hz]] SI
== Length, area, volume ==
fb-1 [[Barn (unit)|fb&lt;sup&gt;−1&lt;/sup&gt;]]
mas [[Milliarcsecond|mas]] pi/648000000
m-1 [[Metre|m&lt;sup&gt;−1&lt;/sup&gt;]]
m-2 [[Square metre|m&lt;sup&gt;−2&lt;/sup&gt;]]
m-3 [[Cubic metre|m&lt;sup&gt;−3&lt;/sup&gt;]]
km2 [[Square kilometre|km&lt;sup&gt;2&lt;/sup&gt;]]
km3 [[Cubic kilometre|km&lt;sup&gt;3&lt;/sup&gt;]]
µm2 [[Square metre|µm&lt;sup&gt;2&lt;/sup&gt;]]
um2 [[Square metre|µm&lt;sup&gt;2&lt;/sup&gt;]]
am2 [[Square metre|am&lt;sup&gt;2&lt;/sup&gt;]]
cm2 [[Square centimetre|cm&lt;sup&gt;2&lt;/sup&gt;]]
dam2 [[Square metre|dam&lt;sup&gt;2&lt;/sup&gt;]]
dm2 [[Square metre|dm&lt;sup&gt;2&lt;/sup&gt;]]
Em2 [[Square metre|Em&lt;sup&gt;2&lt;/sup&gt;]]
fm2 [[Square metre|fm&lt;sup&gt;2&lt;/sup&gt;]]
Gm2 [[Square metre|Gm&lt;sup&gt;2&lt;/sup&gt;]]
hm2 [[Square metre|hm&lt;sup&gt;2&lt;/sup&gt;]]
mm2 [[Square metre|mm&lt;sup&gt;2&lt;/sup&gt;]]
Mm2 [[Square metre|Mm&lt;sup&gt;2&lt;/sup&gt;]]
nm2 [[Square metre|nm&lt;sup&gt;2&lt;/sup&gt;]]
pm2 [[Square metre|pm&lt;sup&gt;2&lt;/sup&gt;]]
Pm2 [[Square metre|Pm&lt;sup&gt;2&lt;/sup&gt;]]
Tm2 [[Square metre|Tm&lt;sup&gt;2&lt;/sup&gt;]]
ym2 [[Square metre|ym&lt;sup&gt;2&lt;/sup&gt;]]
Ym2 [[Square metre|Ym&lt;sup&gt;2&lt;/sup&gt;]]
zm2 [[Square metre|zm&lt;sup&gt;2&lt;/sup&gt;]]
Zm2 [[Square metre|Zm&lt;sup&gt;2&lt;/sup&gt;]]
gal [[Gallon|gal]]
Gal [[Gal (unit)|Gal]]
uGal [[Gal (unit)|µGal]]
µGal [[Gal (unit)|µGal]]
mGal [[Gal (unit)|mGal]]
b [[Barn (unit)|b]] SI
ab [[Barn (unit)|b]] SI
cb [[Barn (unit)|b]] SI
dab [[Barn (unit)|b]] SI
db [[Barn (unit)|b]] SI
Eb [[Barn (unit)|b]] SI
fb [[Barn (unit)|b]] SI
Gb [[Barn (unit)|b]] SI
hb [[Barn (unit)|b]] SI
kb [[Barn (unit)|b]] SI
mb [[Barn (unit)|b]] SI
µb [[Barn (unit)|b]] SI
ub [[Barn (unit)|b]] SI
Mb [[Barn (unit)|b]] SI
nb [[Barn (unit)|b]] SI
pb [[Barn (unit)|b]] SI
Pb [[Barn (unit)|b]] SI
Tb [[Barn (unit)|b]] SI
Yb [[Barn (unit)|b]] SI
yb [[Barn (unit)|b]] SI
Zb [[Barn (unit)|b]] SI
zb [[Barn (unit)|b]] SI
== Velocity and acceleration ==
m/s2 [[Metre per second squared|m/s&lt;sup&gt;2&lt;/sup&gt;]]
m.s-2 [[Metre per second squared|m&amp;sdot;s&lt;sup&gt;−2&lt;/sup&gt;]]
m/s [[Metre per second|m/s]]
km/s [[Metre per second|km/s]]
m.s-1 [[Metre per second|m&amp;sdot;s&lt;sup&gt;−1&lt;/sup&gt;]]
km.s-1 [[Metre per second|km&amp;sdot;s&lt;sup&gt;−1&lt;/sup&gt;]]
== Mass and energy ==
lbm [[Pound (mass)|&lt;span title=&quot;pound-mass&quot;&gt;lb&lt;sub&gt;m&lt;/sub&gt;&lt;/span&gt;]]
uJ [[Joule|µJ]]
J.s [[Joule-second|J&amp;sdot;s]]
kWh [[Kilowatt hour|kWh]]
kW.h [[Kilowatt hour|kW&amp;sdot;h]]
J/C [[Volt|J/C]]
J/kg [[Joule|J/kg]]
g [[Gram|g]] SI
ag [[Attogram|g]] SI
cg [[Centigram|g]] SI
dag [[Gram|g]] SI
dg [[Decigram|g]] SI
Eg [[Exagram|g]] SI
fg [[Femtogram|g]] SI
Gg [[Gigagram|g]] SI
hg [[Kilogram#SI multiples|g]] SI
kg [[Kilogram|g]] SI
mcg [[Microgram|g]] SI
Mg [[Megagram|g]] SI
mg [[Milligram|g]] SI
ug [[Microgram|g]] SI
µg [[Microgram|g]] SI
ng [[Nanogram|g]] SI
Pg [[Petagram|g]] SI
pg [[Picogram|g]] SI
Tg [[Tonne|g]] SI
yg [[Yoctogram|g]] SI
Yg [[Yottagram|g]] SI
zg [[Zeptogram|g]] SI
Zg [[Zettagram|g]] SI
== Pressure and density ==
psi [[Pounds per square inch|psi]]
g/cm3 [[Gram per cubic centimetre|g/cm&lt;sup&gt;3&lt;/sup&gt;]]
kg/m3 [[Kilogram per cubic metre|kg/m&lt;sup&gt;3&lt;/sup&gt;]]
kg/cm3 [[Density#Formula and common units|kg/cm&lt;sup&gt;3&lt;/sup&gt;]]
g/L [[Gram per litre|g/L]]
g/l [[Gram per litre|g/L]]
mcg/dL [[Gram per litre|µg/dL]]
mcg/dl [[Gram per litre|µg/dL]]
mg/mL [[Gram per litre|mg/mL]]
mg/ml [[Gram per litre|mg/mL]]
ug/dL [[Gram per litre|µg/dL]]
ug/dl [[Gram per litre|µg/dL]]
μg/dL [[Gram per litre|μg/dL]]
μg/dl [[Gram per litre|μg/dL]]
mg/L [[Gram per litre|mg/dL]]
mg/l [[Gram per litre|&lt;abbr title=&quot;milligrams per liter&quot;&gt;mg/L&lt;/abbr&gt;]]
mg/L [[Gram per litre|&lt;abbr title=&quot;milligrams per liter&quot;&gt;mg/L&lt;/abbr&gt;]]
mgl-1 [[Gram per litre|&lt;abbr title=&quot;milligrams per liter&quot;&gt;mg/L&lt;/abbr&gt;]]
mgL-1 [[Gram per litre|&lt;abbr title=&quot;milligrams per liter&quot;&gt;mg/L&lt;/abbr&gt;]]
== Temperature ==
degC °C ALIAS
degF °F ALIAS
degR °R ALIAS
K [[Kelvin|K]] SI
YK [[Yottakelvin|K]] SI
ZK [[Zettakelvin|K]] SI
EK [[Kelvin|K]] SI
PK [[Petakelvin|K]] SI
TK [[Terakelvin|K]] SI
GK [[Gigakelvin|K]] SI
MK [[Megakelvin|K]] SI
kK [[Kilokelvin|K]] SI
hK [[Hectokelvin|K]] SI
daK [[Decakelvin|K]] SI
dK [[Decikelvin|K]] SI
cK [[Centikelvin|K]] SI
mK [[Millikelvin|K]] SI
µK [[Microkelvin|K]] SI
uK [[Microkelvin|K]] SI
nK [[Nanokelvin|K]] SI
pK [[Picokelvin|K]] SI
fK [[Femtokelvin|K]] SI
aK [[Attokelvin|K]] SI
zK [[Zeptokelvin|K]] SI
yK [[Yoctokelvin|K]] SI
== Electromagnetism ==
Wb [[Weber (unit)|Wb]]
N.A-2 [[Permeability (electromagnetism)|N&amp;sdot;A&lt;sup&gt;−2&lt;/sup&gt;]]
H.m-1 [[Permeability (electromagnetism)|H&amp;sdot;m&lt;sup&gt;−1&lt;/sup&gt;]]
V/m [[Electric field|V/m]]
V.m-1 [[Electric field|V&amp;sdot;m&lt;sup&gt;−1&lt;/sup&gt;]]
C [[Coulomb|C]] SI
YC [[Coulomb|C]] SI
ZC [[Coulomb|C]] SI
EC [[Coulomb|C]] SI
PC [[Coulomb|C]] SI
TC [[Coulomb|C]] SI
GC [[Coulomb|C]] SI
MC [[Coulomb|C]] SI
kC [[Coulomb|C]] SI
hC [[Coulomb|C]] SI
daC [[Coulomb|C]] SI
dC [[Coulomb|C]] SI
cC [[Coulomb|C]] SI
mC [[Coulomb|C]] SI
µC [[Coulomb|C]] SI
uC [[Coulomb|C]] SI
nC [[Coulomb|C]] SI
pC [[Coulomb|C]] SI
fC [[Coulomb|C]] SI
aC [[Coulomb|C]] SI
zC [[Coulomb|C]] SI
yC [[Coulomb|C]] SI
F [[Farad|F]] SI
YF [[Farad|F]] SI
ZF [[Farad|F]] SI
EF [[Farad|F]] SI
PF [[Farad|F]] SI
TF [[Farad|F]] SI
GF [[Farad|F]] SI
MF [[Farad|F]] SI
kF [[Farad|F]] SI
hF [[Farad|F]] SI
daF [[Farad|F]] SI
dF [[Farad|F]] SI
cF [[Farad|F]] SI
mF [[Farad|F]] SI
µF [[Farad|F]] SI
uF [[Farad|F]] SI
nF [[Farad|F]] SI
pF [[Farad|F]] SI
fF [[Farad|F]] SI
aF [[Farad|F]] SI
zF [[Farad|F]] SI
yF [[Farad|F]] SI
H [[Henry (unit)|H]] SI
YH [[Henry (unit)|H]] SI
ZH [[Henry (unit)|H]] SI
EH [[Henry (unit)|H]] SI
PH [[Henry (unit)|H]] SI
TH [[Henry (unit)|H]] SI
GH [[Henry (unit)|H]] SI
MH [[Henry (unit)|H]] SI
kH [[Henry (unit)|H]] SI
hH [[Henry (unit)|H]] SI
daH [[Henry (unit)|H]] SI
dH [[Henry (unit)|H]] SI
cH [[Henry (unit)|H]] SI
mH [[Henry (unit)|H]] SI
µH [[Henry (unit)|H]] SI
uH [[Henry (unit)|H]] SI
nH [[Henry (unit)|H]] SI
pH [[Henry (unit)|H]] SI
fH [[Henry (unit)|H]] SI
aH [[Henry (unit)|H]] SI
zH [[Henry (unit)|H]] SI
yH [[Henry (unit)|H]] SI
A [[Ampere|A]] SI
YA [[Ampere|A]] SI
ZA [[Ampere|A]] SI
EA [[Ampere|A]] SI
PA [[Ampere|A]] SI
TA [[Ampere|A]] SI
GA [[Ampere|A]] SI
MA [[Ampere|A]] SI
kA [[Ampere|A]] SI
hA [[Ampere|A]] SI
daA [[Ampere|A]] SI
dA [[Ampere|A]] SI
cA [[Ampere|A]] SI
mA [[Ampere|A]] SI
µA [[Ampere|A]] SI
uA [[Ampere|A]] SI
nA [[Ampere|A]] SI
pA [[Ampere|A]] SI
fA [[Ampere|A]] SI
aA [[Ampere|A]] SI
zA [[Ampere|A]] SI
yA [[Ampere|A]] SI
V [[Volt|V]] SI
YV [[Volt|V]] SI
ZV [[Volt|V]] SI
EV [[Volt|V]] SI
PV [[Volt|V]] SI
TV [[Volt|V]] SI
GV [[Volt|V]] SI
MV [[Volt|V]] SI
kV [[Volt|V]] SI
hV [[Volt|V]] SI
daV [[Volt|V]] SI
dV [[Volt|V]] SI
cV [[Volt|V]] SI
mV [[Volt|V]] SI
µV [[Volt|V]] SI
uV [[Volt|V]] SI
nV [[Volt|V]] SI
pV [[Volt|V]] SI
fV [[Volt|V]] SI
aV [[Volt|V]] SI
zV [[Volt|V]] SI
yV [[Volt|V]] SI
VA [[Volt-ampere|VA]] SI
YVA [[Volt-ampere|VA]] SI
ZVA [[Volt-ampere|VA]] SI
EVA [[Volt-ampere|VA]] SI
PVA [[Volt-ampere|VA]] SI
TVA [[Volt-ampere|VA]] SI
GVA [[Volt-ampere|VA]] SI
MVA [[Volt-ampere|VA]] SI
kVA [[Volt-ampere|VA]] SI
hVA [[Volt-ampere|VA]] SI
daVA [[Volt-ampere|VA]] SI
dVA [[Volt-ampere|VA]] SI
cVA [[Volt-ampere|VA]] SI
mVA [[Volt-ampere|VA]] SI
µVA [[Volt-ampere|VA]] SI
uVA [[Volt-ampere|VA]] SI
nVA [[Volt-ampere|VA]] SI
pVA [[Volt-ampere|VA]] SI
fVA [[Volt-ampere|VA]] SI
aVA [[Volt-ampere|VA]] SI
zVA [[Volt-ampere|VA]] SI
yVA [[Volt-ampere|VA]] SI
R [[Rayleigh (unit)|R]] SI
G [[Gauss (unit)|G]] SI
aG [[Attogauss|G]] SI
cG [[Centigauss|G]] SI
daG [[Decagauss|G]] SI
dG [[Decigauss|G]] SI
EG [[Exagauss|G]] SI
fG [[Femtogauss|G]] SI
GG [[Gigagauss|G]] SI
hG [[Hectogauss|G]] SI
kG [[Kilogauss|G]] SI
MG [[Megagauss|G]] SI
mG [[Milligauss|G]] SI
uG [[Microgauss|G]] SI
µG [[Microgauss|G]] SI
nG [[Nanogauss|G]] SI
PG [[Petagauss|G]] SI
pG [[Picogauss|G]] SI
TG [[Teragauss|G]] SI
yG [[Yoctogauss|G]] SI
YG [[Yottagauss|G]] SI
zG [[Zeptogauss|G]] SI
ZG [[Zettagauss|G]] SI
T [[Tesla (unit)|T]] SI
aT [[Attotesla|T]] SI
cT [[Centitesla|T]] SI
daT [[Decatesla|T]] SI
dT [[Decitesla|T]] SI
ET [[Exatesla|T]] SI
fT [[Femtotesla|T]] SI
GT [[Gigatesla|T]] SI
hT [[Hectotesla|T]] SI
kT [[Kilotesla|T]] SI
MT [[Megatesla|T]] SI
mT [[Millitesla|T]] SI
uT [[Microtesla|T]] SI
µT [[Microtesla|T]] SI
nT [[Nanotesla|T]] SI
PT [[Petatesla|T]] SI
pT [[Picotesla|T]] SI
TT [[Teratesla|T]] SI
yT [[Yoctotesla|T]] SI
YT [[Yottatesla|T]] SI
zT [[Zeptotesla|T]] SI
ZT [[Zettatesla|T]] SI
== Astrophysics ==
au [[Astronomical unit|au]]
c [[Speed of light|''c'']]
ly [[Light-year|ly]]
Earth mass [[Earth mass|''M''&lt;sub&gt;⊕&lt;/sub&gt;]]
Earth radius [[Earth radius|''R''&lt;sub&gt;⊕&lt;/sub&gt;]]
M_Earth [[Earth mass|''M''&lt;sub&gt;⊕&lt;/sub&gt;]]
R_Earth [[Earth radius|''R''&lt;sub&gt;⊕&lt;/sub&gt;]]
M+ [[Earth mass|''M''&lt;sub&gt;⊕&lt;/sub&gt;]]
R+ [[Earth radius|''R''&lt;sub&gt;⊕&lt;/sub&gt;]]
Jupiter mass [[Jupiter mass|''M''&lt;sub&gt;J&lt;/sub&gt;]]
Jupiter radius [[Jupiter radius|''R''&lt;sub&gt;J&lt;/sub&gt;]]
M_Jupiter [[Jupiter mass|''M''&lt;sub&gt;J&lt;/sub&gt;]]
R_Jupiter [[Jupiter radius|''R''&lt;sub&gt;J&lt;/sub&gt;]]
Solar mass [[Solar mass|''M''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
solar mass [[Solar mass|''M''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
M_Solar [[Solar mass|''M''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
M_solar [[Solar mass|''M''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
R_Solar [[Solar radius|''R''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
R_solar [[Solar radius|''R''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
Solar radius [[Solar radius|''R''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
solar radius [[Solar radius|''R''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
Solar luminosity [[Solar luminosity|''L''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
solar luminosity [[Solar luminosity|''L''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
L_solar [[Solar luminosity|''L''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
L_Solar [[Solar luminosity|''L''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
Lo [[Solar luminosity|''L''&lt;sub&gt;&amp;#x2609;&lt;/sub&gt;]]
pc2 [[Parsec|pc&lt;sup&gt;2&lt;/sup&gt;]]
pc3 [[Parsec|pc&lt;sup&gt;3&lt;/sup&gt;]]
kpc2 [[Parsec#Parsecs and kiloparsecs|kpc&lt;sup&gt;2&lt;/sup&gt;]]
kpc3 [[Parsec#Parsecs and kiloparsecs|kpc&lt;sup&gt;3&lt;/sup&gt;]]
kpc [[Parsec#Parsecs and kiloparsecs|kpc]]
Mpc2 [[Parsec#Megaparsecs and gigaparsecs|Mpc&lt;sup&gt;2&lt;/sup&gt;]]
Mpc3 [[Parsec#Megaparsecs and gigaparsecs|Mpc&lt;sup&gt;3&lt;/sup&gt;]]
Mpc [[Parsec#Megaparsecs and gigaparsecs|Mpc]]
Gpc2 [[Parsec#Megaparsecs and gigaparsecs|Gpc&lt;sup&gt;2&lt;/sup&gt;]]
Gpc3 [[Parsec#Megaparsecs and gigaparsecs|Gpc&lt;sup&gt;3&lt;/sup&gt;]]
Gpc [[Parsec#Megaparsecs and gigaparsecs|Gpc]]
== Nuclear physics and chemistry ==
cm-1 [[Wavenumber|cm&lt;sup&gt;−1&lt;/sup&gt;]]
u [[Unified atomic mass unit|u]]
osmol [[Osmole (unit)|osmol]]
Osm [[Osmole (unit)|Osm]]
M [[Molarity|M]]
TM [[Molarity|M]] SI
GM [[Molarity|M]] SI
MM [[Molarity|M]] SI
kM [[Molarity|M]] SI
hM [[Molarity|M]] SI
daM [[Molarity|M]] SI
dM [[Molarity|M]] SI
cM [[Molarity|M]] SI
mM [[Molarity|M]] SI
uM [[Molarity|M]] 1e-6
nM [[Molarity|M]] SI
pM [[Molarity|M]] SI
kg/mol [[Molar mass|M]]
kg.mol-1 [[Molar mass|kg&amp;sdot;mol&lt;sup&gt;−1&lt;/sup&gt;]]
g/mol [[Molar mass|g/mol]]
g.mol-1 [[Molar mass|g&amp;sdot;mol&lt;sup&gt;−1&lt;/sup&gt;]]
eV/c2 [[Electronvolt#Mass|eV/''c''&lt;sup&gt;2&lt;/sup&gt;]]
keV/c2 [[Electronvolt#Mass|keV/''c''&lt;sup&gt;2&lt;/sup&gt;]]
MeV/c2 [[Electronvolt#Mass|MeV/''c''&lt;sup&gt;2&lt;/sup&gt;]]
GeV/c2 [[Electronvolt#Mass|GeV/''c''&lt;sup&gt;2&lt;/sup&gt;]]
TeV/c2 [[Electronvolt#Mass|TeV/''c''&lt;sup&gt;2&lt;/sup&gt;]]
µN [[Nuclear magneton|µ&lt;span style=&quot;display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:85%;text-align:left&quot;&gt;&lt;br /&gt;N&lt;/span&gt;]]
µB [[Bohr magneton|µ&lt;span style=&quot;display:inline-block;margin-bottom:-0.3em;vertical-align:-0.4em;line-height:1.2em;font-size:85%;text-align:left&quot;&gt;&lt;br /&gt;B&lt;/span&gt;]]
eV [[Electronvolt|eV]]
mev [[Electronvolt|meV]]
keV [[Electronvolt|keV]]
MeV [[Electronvolt|MeV]]
GeV [[Electronvolt|GeV]]
TeV [[Electronvolt|TeV]]
mol-1 [[Avogadro constant|mol&lt;sup&gt;−1&lt;/sup&gt;]]
J/mol [[Joule per mole|J/mol]]
J.mol-1 [[Joule per mole|J&amp;sdot;mol&lt;sup&gt;−1&lt;/sup&gt;]]
kJ.mol-1 [[Joule per mole|kJ&amp;sdot;mol&lt;sup&gt;−1&lt;/sup&gt;]]
kJ/mol [[Joule per mole|kJ/mol]]
MJ.mol-1 [[Joule per mole|MJ&amp;sdot;mol&lt;sup&gt;−1&lt;/sup&gt;]]
MJ/mol [[Joule per mole|MJ/mol]]
GJ/mol [[Joule per mole|GJ/mol]]
GJ.mol-1 [[Joule per mole|GJ&amp;sdot;mol&lt;sup&gt;−1&lt;/sup&gt;]]
TJ.mol-1 [[Joule per mole|TJ&amp;sdot;mol&lt;sup&gt;−1&lt;/sup&gt;]]
TJ/mol [[Joule per mole|TJ/mol]]
== Numbers and phrases ==
pp [[Page (paper)|pp]]
ppb [[Parts per billion|ppb]] 1e-9
ppm [[Parts per million|ppm]] 1e-6
billiard [[Orders of magnitude (numbers)#1015|billiard]] 1e15
billion [[1,000,000,000|billion]] 1e9
billionth [[1,000,000,000|billionth]] 1e-9
billionths [[1,000,000,000|billionths]] 1e-9
decilliard [[Orders of magnitude (numbers)#1063|decilliard]] 1e63
decillion [[Orders of magnitude (numbers)#1033|decillion]] 1e33
decillionth [[Orders of magnitude (numbers)#1033|decillionth]] 1e-33
decillionths [[Orders of magnitude (numbers)#1033|decillionths]] 1e-33
milliard [[1,000,000,000|milliard]] 1e9
million [[Million|million]] 1e6
millionth [[Million|millionth]] 1e-6
millionths [[Million|millionths]] 1e-6
nonilliard [[Orders of magnitude (numbers)#1057|nonilliard]] 1e57
nonillion [[Orders of magnitude (numbers)#1030|nonillion]] 1e30
nonillionth [[Orders of magnitude (numbers)#1030|nonillionth]] 1e-30
nonillionths [[Orders of magnitude (numbers)#1030|nonillionths]] 1e-30
octilliard [[Orders of magnitude (numbers)#1051|octilliard]] 1e51
octillion [[Orders of magnitude (numbers)#1027|octillion]] 1e27
octillionth [[Orders of magnitude (numbers)#1027|octillionth]] 1e-27
octillionths [[Orders of magnitude (numbers)#1027|octillionths]] 1e-27
quadrilliard [[Orders of magnitude (numbers)#1027|quadrilliard]] 1e27
quadrillion [[Orders of magnitude (numbers)#1015|quadrillion]] 1e15
quadrillionth [[Orders of magnitude (numbers)#1015|quadrillionth]] 1e-15
quadrillionths [[Orders of magnitude (numbers)#1015|quadrillionths]] 1e-15
quintilliard [[Orders of magnitude (numbers)#1033|quintilliard]] 1e33
quintillion [[Orders of magnitude (numbers)#1018|quintillion]] 1e18
quintillionth [[Orders of magnitude (numbers)#1018|quintillionth]] 1e-18
quintillionths [[Orders of magnitude (numbers)#1018|quintillionths]] 1e-18
septilliard [[Orders of magnitude (numbers)#1045|septilliard]] 1e45
septillion [[Orders of magnitude (numbers)#1024|septillion]] 1e24
septillionth [[Orders of magnitude (numbers)#1024|septillionth]] 1e-24
septillionths [[Orders of magnitude (numbers)#1024|septillionths]] 1e-24
sextilliard [[Orders of magnitude (numbers)#1039|sextilliard]] 1e39
sextillion [[Orders of magnitude (numbers)#1021|sextillion]] 1e21
sextillionth [[Orders of magnitude (numbers)#1021|sextillionth]] 1e-21
sextillionths [[Orders of magnitude (numbers)#1021|sextillionths]] 1e-21
trilliard [[Orders of magnitude (numbers)#1021|trilliard]] 1e21
trillion [[Orders of magnitude (numbers)#1012|trillion]] 1e12
trillionth [[Orders of magnitude (numbers)#1012|trillionth]] 1e-12
trillionths [[Orders of magnitude (numbers)#1012|trillionths]] 1e-12
== Angles ==
% % Percent ANGLE 0.01
percent % Percent ANGLE 0.01
per cent % Percent ANGLE 0.01
‰ ‰ Per mil ANGLE 1e-3
per mil ‰ Per mil ANGLE 1e-3
per mill ‰ Per mil ANGLE 1e-3
per mille ‰ Per mil ANGLE 1e-3
permil ‰ Per mil ANGLE 1e-3
permill ‰ Per mil ANGLE 1e-3
permille ‰ Per mil ANGLE 1e-3
° ° Degree (angle) ANGLE pi/180
deg ° Degree (angle) ANGLE pi/180
' ′ Minute of arc ANGLE pi/10800
′ ′ Minute of arc ANGLE pi/10800
arcmin ′ Minute of arc ANGLE pi/10800
arcminute ′ Minute of arc ANGLE pi/10800
&quot; ″ Second of arc ANGLE pi/648000
″ ″ Second of arc ANGLE pi/648000
arcsec ″ Second of arc ANGLE pi/648000
arcsecond ″ Second of arc ANGLE pi/648000
]=]
-- If val has &quot;|long scale=on&quot; the following definitions are used
-- (then, if not found here, the normal definitions are used).
-- Unit code [[Link|Symbol]] Flags/Scale
local builtin_units_long_scale = [=[
== Long scale numbers and phrases ==
billion [[Orders of magnitude (numbers)#1012|billion]] 1e12
billionth [[Orders of magnitude (numbers)#1012|billionth]] 1e-12
billionths [[Orders of magnitude (numbers)#1012|billionths]] 1e-12
decillion [[Orders of magnitude (numbers)#1060|decillion]] 1e60
decillionth [[Orders of magnitude (numbers)#1060|decillionth]] 1e-60
decillionths [[Orders of magnitude (numbers)#1060|decillionths]] 1e-60
nonillion [[Orders of magnitude (numbers)#1054|nonillion]] 1e54
nonillionth [[Orders of magnitude (numbers)#1054|nonillionth]] 1e-54
nonillionths [[Orders of magnitude (numbers)#1054|nonillionths]] 1e-54
octillion [[Orders of magnitude (numbers)#1048|octillion]] 1e48
octillionth [[Orders of magnitude (numbers)#1048|octillionth]] 1e-48
octillionths [[Orders of magnitude (numbers)#1048|octillionths]] 1e-48
quadrillion [[Orders of magnitude (numbers)#1024|quadrillion]] 1e24
quadrillionth [[Orders of magnitude (numbers)#1024|quadrillionth]] 1e-24
quadrillionths [[Orders of magnitude (numbers)#1024|quadrillionths]] 1e-24
quintillion [[Orders of magnitude (numbers)#1030|quintillion]] 1e30
quintillionth [[Orders of magnitude (numbers)#1030|quintillionth]] 1e-30
quintillionths [[Orders of magnitude (numbers)#1030|quintillionths]] 1e-30
septillion [[Orders of magnitude (numbers)#1042|septillion]] 1e42
septillionth [[Orders of magnitude (numbers)#1042|septillionth]] 1e-42
septillionths [[Orders of magnitude (numbers)#1042|septillionths]] 1e-42
sextillion [[Orders of magnitude (numbers)#1036|sextillion]] 1e36
sextillionth [[Orders of magnitude (numbers)#1036|sextillionth]] 1e-36
sextillionths [[Orders of magnitude (numbers)#1036|sextillionths]] 1e-36
trillion [[Orders of magnitude (numbers)#1018|trillion]] 1e18
trillionth [[Orders of magnitude (numbers)#1018|trillionth]] 1e-18
trillionths [[Orders of magnitude (numbers)#1018|trillionths]] 1e-18
]=]
return { builtin_units = builtin_units, builtin_units_long_scale = builtin_units_long_scale }</text>
<sha1>m7wqwrnc3nca3z6upt5x4bmynaq8gh4</sha1>
</revision>
</page>
<page>
<title>Template:See also/doc</title>
<ns>10</ns>
<id>6717092</id>
<revision>
<id>810218198</id>
<parentid>809807849</parentid>
<timestamp>2017-11-14T00:24:22Z</timestamp>
<contributor>
<username>72</username>
<id>28970402</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/98.201.68.9|98.201.68.9]] ([[User talk:98.201.68.9|talk]]) to last version by V2Blast</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="7644">{{documentation subpage}}
{{lua|Module:Labelled list hatnote}}
{{high-risk|118000+}}
This template is used to create [[WP:Hatnotes|hatnotes]] to point to a small number of other related titles at the '''top''' of [[Help:Section|article sections]] according to [[Wikipedia:Layout]]. It looks like this:
{{See also|Article}}
Do not use this template inside the ''&quot;See also&quot; section'' at the end of an article, or for links to other articles or subsections of the same article within regular article text. Where subsections are linked to, [[Template:Section link]] may be suitable instead.
Refer to the examples below to see how the template handles link targets containing section links and commas.
==Usage==
; Basic usage:
&amp;#123;{See also|''page1''|''page2''|''page3''|...}}
; All parameters:
&amp;#123;{See also|''page1''|''page2''|''page3''| ...
|label 1 = ''label 1''|label 2 = ''label2''|label 3 = ''label3''| ...
|l1 = ''label1''|l2 = ''label2''|l3 = ''label3''| ...
|selfref = ''yes''|category = ''no''}}
==Parameters==
This template accepts the following parameters:
* &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;3&lt;/code&gt;, ... – the pages to link to. At least one page name is required. Categories and files are automatically escaped with the [[Help:Colon trick|colon trick]], and links to sections are automatically formatted as ''page § section'', rather than the MediaWiki default of ''page#section''.
* &lt;code&gt;label 1&lt;/code&gt;, &lt;code&gt;label 2&lt;/code&gt;, &lt;code&gt;label 3&lt;/code&gt;, ...; or &lt;code&gt;l1&lt;/code&gt;, &lt;code&gt;l2&lt;/code&gt;, &lt;code&gt;l3&lt;/code&gt;, ...; optional labels for each of the pages to link to.
* &lt;code&gt;selfref&lt;/code&gt; – if set to &quot;yes&quot;, &quot;y&quot;, &quot;true&quot; or &quot;1&quot;, adds the CSS class &quot;selfref&quot;. This is used to denote self-references to Wikipedia. See [[Template:Selfref]] for more information.
* &lt;code&gt;category&lt;/code&gt; – if set to &quot;no&quot;, &quot;n&quot;, &quot;false&quot;, or &quot;0&quot;, suppresses the error tracking category ([[:Category:Hatnote templates with errors]]). This only has an effect if the first positional parameter (the page to link to) is omitted.
== Examples ==
* &lt;code&gt;&lt;nowiki&gt;{{See also|Article}}&lt;/nowiki&gt;&lt;/code&gt; → {{See also|Article}}
* &lt;code&gt;&lt;nowiki&gt;{{See also|Article#Section}}&lt;/nowiki&gt;&lt;/code&gt; → {{See also|Article#Section}}
* &lt;code&gt;&lt;nowiki&gt;{{See also|Article#Section|label 1=Custom section label}}&lt;/nowiki&gt;&lt;/code&gt; → {{See also|Article#Section|label 1=Custom section label}}
* &lt;code&gt;&lt;nowiki&gt;{{See also|Article1|Article2|Article3}}&lt;/nowiki&gt;&lt;/code&gt; → {{See also|Article1|Article2|Article3}}
* &lt;code&gt;&lt;nowiki&gt;{{See also|Article1|Article,2|Article3}}&lt;/nowiki&gt;&lt;/code&gt; → {{See also|Article1|Article,2|Article3}}
* &lt;code&gt;&lt;nowiki&gt;{{See also|Article1|l1=Custom label 1|Article2|l2=Custom label 2}}&lt;/nowiki&gt;&lt;/code&gt; → {{See also|Article1|l1=Custom label 1|Article2|l2=Custom label 2}}
* &lt;code&gt;&lt;nowiki&gt;{{See also|Veni, vidi, vici|Julius Caesar}}&lt;/nowiki&gt;&lt;/code&gt; → {{See also|Veni, vidi, vici|Julius Caesar}}
* &lt;code&gt;&lt;nowiki&gt;{{See also|Veni, vidi, vici|Julius Caesar#Civil war}}&lt;/nowiki&gt;&lt;/code&gt; → {{See also|Veni, vidi, vici|Julius Caesar#Civil war}}
* &lt;code&gt;&lt;nowiki&gt;{{See also|Julius Caesar#Civil war|Veni, vidi, vici}}&lt;/nowiki&gt;&lt;/code&gt; → {{See also|Julius Caesar#Civil war|Veni, vidi, vici}}
* &lt;code&gt;&lt;nowiki&gt;{{See also|Julius Caesar#Civil war|Crossing the Rubicon}}&lt;/nowiki&gt;&lt;/code&gt; → {{See also|Julius Caesar#Civil war|Crossing the Rubicon}}
==Errors==
If no page names are supplied, the template will output the following message:
*{{See also|category=no}}
If you see this error message, it is for one of four reasons:
# No parameters were specified (the template code was &lt;code&gt;&lt;nowiki&gt;{{See also}}&lt;/nowiki&gt;&lt;/code&gt;). Please use &lt;code&gt;&lt;nowiki&gt;{{See also|&lt;/nowiki&gt;''page''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; instead.
# Some parameters were specified, but no page names were included. For example, the template text &lt;code&gt;&lt;nowiki&gt;{{See also|selfref=yes}}&lt;/nowiki&gt;&lt;/code&gt; will produce this error. Please use (for example) &lt;code&gt;&lt;nowiki&gt;{{See also|&lt;/nowiki&gt;''page''&lt;nowiki&gt;|selfref=yes}}&lt;/nowiki&gt;&lt;/code&gt; instead.
# A page name was specified, but it contains an equals sign (&quot;=&quot;). The equals sign has a special meaning in template code, and because of this it cannot be used in template parameters that do not specify a parameter name. For example, the template code &lt;code&gt;&lt;nowiki&gt;{{See also|1+1=2|2+2=4}}&lt;/nowiki&gt;&lt;/code&gt; will produce this error. To work around this, you can specify the parameter name explicitly by using &lt;code&gt;1=&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, etc., before the page name, like this: &lt;code&gt;&lt;nowiki&gt;{{See also|1=1+1=2|2=2+2=4}}&lt;/nowiki&gt;&lt;/code&gt;.
# You tried to access [[Module:See also]] directly by using &lt;code&gt;&lt;nowiki&gt;{{#invoke:See also|seealso|&lt;/nowiki&gt;''text''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;. Use of #invoke in this way has been disabled for performance reasons. Please use &lt;code&gt;&lt;nowiki&gt;{{See also|&lt;/nowiki&gt;''text''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; instead.
If you see this error message and are unsure of what to do, please post a message on [[WP:HD|the help desk]], and someone should be able to help you.
Pages that contain this error message are tracked in [[:Category:Hatnote templates with errors]].
==See also==
*{{tl|Category see also}}
*{{tl|Main}}
*{{tl|See}} (redirect to {{tl|Further information}})
{{Hatnote templates}}
{{Collapse top|TemplateData}}
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;This template creates a hatnote to point to a small number of related pages. It is placed at the top of a section, directly underneath the section heading.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Page 1&quot;,
&quot;description&quot;: &quot;The name of the first page that you want to link to.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: true
},
&quot;2&quot;: {
&quot;label&quot;: &quot;Page 2&quot;,
&quot;description&quot;: &quot;The name of the second page that you want to link to.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: false
},
&quot;3&quot;: {
&quot;label&quot;: &quot;Page 3&quot;,
&quot;description&quot;: &quot;The name of the third page that you want to link to. More pages can be added using the parameters \&quot;4\&quot;, \&quot;5\&quot;, \&quot;6\&quot;, etc.&quot;,
&quot;type&quot;: &quot;wiki-page-name&quot;,
&quot;required&quot;: false
},
&quot;label 1&quot;: {
&quot;label&quot;: &quot;Label 1&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;What the first linked article is to be displayed as. &quot;,
&quot;aliases&quot;: [
&quot;l1&quot;
]
},
&quot;label 2&quot;: {
&quot;label&quot;: &quot;Label 2&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;description&quot;: &quot;What the second linked article is to be displayed as.&quot;,
&quot;aliases&quot;: [
&quot;l2&quot;
]
},
&quot;selfref&quot;: {
&quot;type&quot;: &quot;boolean&quot;,
&quot;label&quot;: &quot;Self reference&quot;,
&quot;description&quot;: &quot;Set to \&quot;yes\&quot; if the template is a self-reference to Wikipedia that would not make sense on mirrors or forks of the Wikipedia site.&quot;,
&quot;example&quot;: &quot;yes&quot;,
&quot;default&quot;: &quot;no&quot;
},
&quot;category&quot;: {
&quot;label&quot;: &quot;Category&quot;,
&quot;description&quot;: &quot;Set to \&quot;no\&quot;, \&quot;n\&quot;, \&quot;false\&quot;, or \&quot;0\&quot; to suppresses the error tracking category (Category:Hatnote templates with errors). This only has an effect if no page names are specified.&quot;,
&quot;type&quot;: &quot;boolean&quot;,
&quot;default&quot;: &quot;yes&quot;,
&quot;example&quot;: &quot;no&quot;
},
&quot;label 3&quot;: {
&quot;aliases&quot;: [
&quot;l3&quot;
],
&quot;type&quot;: &quot;string&quot;,
&quot;label&quot;: &quot;Label 3&quot;,
&quot;description&quot;: &quot;What the third linked article is to be displayed as. Other labels can be added by using increasing numbers (starting with \&quot;label 4\&quot; or \&quot;l4\&quot; for page 4) as parameter names.&quot;
}
},
&quot;format&quot;: &quot;inline&quot;
}
&lt;/templatedata&gt;
{{Collapse bottom}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories go here and interwikis go in Wikidata. --&gt;
[[Category:Cross-reference templates]]
[[Category:Exclude in print]]
[[Category:Hatnote templates]]
[[Category:Related-topic templates]]
[[Category:Wikipedia page-section templates]]
[[Category:Wikipedia see also]]
}}&lt;/includeonly&gt;</text>
<sha1>0hkcnlqxpunc75crxopwkpz7hfoml8w</sha1>
</revision>
</page>
<page>
<title>Template:Dc2</title>
<ns>10</ns>
<id>34603369</id>
<revision>
<id>818865813</id>
<parentid>475023228</parentid>
<timestamp>2018-01-06T01:56:41Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>+class (consistent with [[Template:xtd]], etc.), and classes should come first, before style=&quot;...&quot;)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="427">&lt;del class=&quot;deprecated-content {{{class|}}}&quot; style=&quot;color:{{#if:{{{red|}}}|#B26F5A|#A9A9A9}}; text-decoration:line-through; {{#if:{{{style|}}}|{{{style}}}|}}&quot; {{#if:{{{id|}}}|id=&quot;{{{id}}}|}}&quot; {{#if:{{{title|{{{2|}}}}}}|title=&quot;{{{title|{{{2}}}}}}&quot;|}}&gt;&lt;span style=&quot;color:{{#if:{{{red|}}}|#8B0000|#696969}};&quot;&gt;{{{1}}}&lt;/span&gt;&lt;/del&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!--Categories and interwikis go on the /doc subpage.--&gt;
&lt;/noinclude&gt;</text>
<sha1>tmcld3ovd3qs0rvduru5wy00o7wgvn3</sha1>
</revision>
</page>
<page>
<title>Template:Navbox hatnote templates</title>
<ns>10</ns>
<id>43969917</id>
<redirect title="Template:Hatnote templates" />
<revision>
<id>627401596</id>
<timestamp>2014-09-28T11:01:37Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>Sardanaphalus moved page [[Template:Navbox hatnote templates]] to [[Template:Hatnote templates]]: &quot;Navbox&quot; not needed (unlike &quot;Infobox&quot;)..?</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="56">#REDIRECT [[Template:Hatnote templates]]
{{R from move}}</text>
<sha1>4i808o7j8kjukiznk1xnijsgd9ul7et</sha1>
</revision>
</page>
<page>
<title>Template:Selfref/doc</title>
<ns>10</ns>
<id>14442622</id>
<revision>
<id>819098582</id>
<parentid>819097703</parentid>
<timestamp>2018-01-07T12:03:56Z</timestamp>
<contributor>
<username>Geekdiva</username>
<id>2841465</id>
</contributor>
<minor/>
<comment>Two related edits: 1. view a printable version → view a printable version of an article that has a self-reference hatnote. 2. this template masks what you tell it. → this template masks its content.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5867">{{distinguish|Template:Self-reference}}
{{Documentation subpage}}
{{High-use|2060}}
&lt;!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE, AND INTERWIKIS TO WIKIDATA. --&gt;
The {{tl|Selfref}} template adds a [[WP:HAT|hatnote]] to a Wikipedia article that will ''not appear'' in any [[WP:Reusing Wikipedia content|reuse of Wikipedia article content]]. In [[WP:Glossary|Wikipedia terminology]], self-references in an article usually mention Wikipedia directly or tell readers to take an action that has to take place on Wikipedia, such as editing the article. Typically, self-references within Wikipedia articles to the Wikipedia project should be avoided. Reading such information off-site would only cause confusion.
With this template, you can safely make a self-reference ''where needed'', but that need is rare. Before using this template, make sure the self-reference that you're thinking of adding doesn't fall into one of the types listed at [[Wikipedia:Self-references to avoid]].
To see this behavior, view a [[Wikipedia:Keyboard_shortcuts#List_of_access_keys|printable version]] of an article that has a self-reference hatnote, and notice how this template masks its content.
== Usage ==
This template should not be [[WP:Template substitution|substituted]].
In most cases, {{tlf|Selfref}} is used to create a disambiguation link to a page in the &quot;Wikipedia:&quot; namespace from article-space; for instance, the page [[Objectivity (disambiguation)]] could have a self-referential &quot;[[WP:HATNOTE|hatnote]]&quot; link at the top: &lt;code&gt;&lt;nowiki&gt;{{Selfref|For Wikipedia's policy on avoiding bias, see [[Wikipedia:Neutral point of view]].}}&lt;/nowiki&gt;&lt;/code&gt;.
When using {{tlf|Selfref}} in this way, use the following format:
&lt;pre&gt;
{{Selfref|The self-referential notice to display, including links.}}
&lt;/pre&gt;
which produces:
{{Selfref|The self-referential notice to display, including links.}}
When using {{tlf|Selfref}} in this way, the text will be indented slightly, italicized (Wikipedia house style for self-referential notes), and both preceded and followed by a linebreak.
To use it inline without the indentation and line breaking, add the parameter {{para||inline}}:
&lt;pre&gt;
{{Selfref|the self-referential text to display, including links|inline}}
&lt;/pre&gt;
or use the alias {{tl|Selfref inline}}:
&lt;pre&gt;
{{Selfref inline|the self-referential text to display, including links}}
&lt;/pre&gt;
both of which produce: {{Selfref inline|the self-referential text to display, including links}} (illustrated here on the same line as other content).
===Unprintworthy content===
Rarely, there is other, non-self-referential content which shouldn't appear in mirrors, print editions, or other off-Wikipedia reuses of Wikipedia content, and which shouldn't be italicized as a self-reference.
It is preferable to mark such unprintworthy content with the {{tl|Unprintworthy inline}} template (which includes the &lt;code&gt;noprint&lt;/code&gt; CSS class, but not the &lt;code&gt;plainlinks&lt;/code&gt; class, since links in such content will not be internal self-references). Although not all [[WP:Mirrors and forks|mirror sites]] do so, the content in question can be removed by reusers of WP content, without any reformatting, by ignoring or removing content marked up by this template, or more accurately by the &lt;code&gt;selfreference&lt;/code&gt; CSS class that it (and some other templates) use.
A &quot;brittle&quot;, legacy usage of {{tlf|Selfref}} has technically also been used for such unprintworthy cases, and pre-dates the {{tl|Unprintworthy inline}} template. This is to simply end the template with a pipe character &amp;ndash; &lt;code&gt;|&lt;/code&gt;:
{{dc2|1=&lt;pre&gt;
{{Selfref|the unprintworthy text to display without self-ref styling|}}&lt;/pre&gt;}}
This method cannot be depended upon (for one thing, many editors will interpret the pipe as an error and remove it, turning the template into an indented self-ref hatnote!). This syntax has been obsolete since 2008, and any remaining uses of it should be replaced with {{tl|Selfref inline}} (if real self-references) or {{tl|Unprintworthy inline}} (if simply unprintworthy).
== Example ==
{|border=1 class=&quot;wikitable&quot;
! Code !! Page on Wikipedia !! Page on [some] mirrors
|-
| &lt;code&gt;&lt;nowiki&gt;{{Selfref|For the Wikipedia Sandbox, see [[WP:SAND]]}}&lt;/nowiki&gt;&lt;/code&gt;
&lt;code&gt;&lt;nowiki&gt;The Wikipedia Sandbox is a page on Wikipedia. {{Selfref|(You can edit it by clicking &quot;edit&quot; on the page.)|inline}} It has been edited many times.&lt;/nowiki&gt;&lt;/code&gt;
| {{Selfref|For the Wikipedia Sandbox, see [[WP:SAND]]}}
The Wikipedia Sandbox is a page on Wikipedia. {{Selfref|(You can edit it by clicking &quot;edit&quot; on the page.)|inline}} It has been edited many times.
| The Wikipedia Sandbox is a page on Wikipedia. It has been edited many times.
|}
== See also ==
*[[Wikipedia:Self-references to avoid]]
*{{tlx|srlink}}, for the opposite case when you want a link to the Wikipedia: namespace that ''does'' show in mirrors without breaking (for instance when writing an article about Wikipedia or something connected to it).
*{{tlx|Printworthy selfref}} – for cases of self-references that are printworthy and may or may not be desired by reusers of WP content, depending upon whether they are mirroring or just using single articles
* {{tlx|Unprintworthy inline}} – for unprintworthy inline material that isn't technically a self-reference
* [[Wikipedia:Hatnote]]
{{Navbox hatnote templates|state=collapsed}}
&lt;includeonly&gt;&lt;!--
++++ PLEASE ADD CATEGORIES BELOW THIS LINE, THANK YOU. --&gt;
&lt;!--Categories--&gt;
[[Category:Wikipedia self-reference templates]]&lt;!--For both forms of this template.--&gt;
[[Category:Disambiguation and redirection templates]]&lt;!--For frequent use atop DAB pages; it's not actually a DAB/redir template, per se.--&gt;
[[Category:Wikipedia page-section templates]]&lt;!--For hatnote usage only.--&gt;
[[Category:Cross-reference templates]]&lt;!--For the inline usage.--&gt;
&lt;/includeonly&gt;</text>
<sha1>tcud4h4kjtn9a5g4s22rhqqs8ltou45</sha1>
</revision>
</page>
<page>
<title>Template:Selfref inline</title>
<ns>10</ns>
<id>43662462</id>
<revision>
<id>689278598</id>
<parentid>689278153</parentid>
<timestamp>2015-11-06T02:12:35Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>+cat.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="246">{{Selfref|{{{1}}}|inline}}&lt;noinclude&gt;
{{documentation|Template:Selfref/doc}}
&lt;!--Categories USUALLY go on the /doc page, but not in this case (the doc page is that of the parent, non-inline template).--&gt;
[[Category:Inline templates]]
&lt;/noinclude&gt;</text>
<sha1>nbx5swprrdxddlka0k5dm36ux33aoum</sha1>
</revision>
</page>
<page>
<title>Template:Sfnote/doc</title>
<ns>10</ns>
<id>35108955</id>
<revision>
<id>575047870</id>
<parentid>482360171</parentid>
<timestamp>2013-09-29T20:48:27Z</timestamp>
<contributor>
<username>Funandtrvl</username>
<id>2966869</id>
</contributor>
<comment>fx fmt</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="381">{{Documentation subpage}}
&lt;!-- Categories and interwikis go at the bottom of this page. --&gt;
== Usage ==
This template is a typing aid that provides a link to {{sfnote}}.
===Optional===
For the first letter to be in lower case, use:
{{para|lc|&lt;var&gt;y&lt;/var&gt;}}
== See also ==
&lt;includeonly&gt;
&lt;!-- Categories go here: --&gt;
[[Category:Documentation assistance templates]]
&lt;/includeonly&gt;</text>
<sha1>g9oji2cc3yp2s89byop34528d5vagg6</sha1>
</revision>
</page>
<page>
<title>Template:Pi</title>
<ns>10</ns>
<id>31444754</id>
<revision>
<id>648669965</id>
<parentid>502878653</parentid>
<timestamp>2015-02-24T19:31:42Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Pi: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="75">&lt;span class=&quot;texhtml&quot;&gt;&amp;pi;&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>k2f3zvtvj6ye58go03r1tbs79hygmnh</sha1>
</revision>
</page>
<page>
<title>Template:Commons</title>
<ns>10</ns>
<id>1142901</id>
<revision>
<id>663514605</id>
<parentid>579832974</parentid>
<timestamp>2015-05-22T08:35:03Z</timestamp>
<contributor>
<username>Ianblair23</username>
<id>145927</id>
</contributor>
<comment>sister → sister project</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="340">{{Sister project
| position = {{{position|}}}
| project = commons
| text = Wikimedia Commons has {{{alt-term|media related to}}} '''''[[commons:{{{1|Special:Search/{{PAGENAME}}}}}|{{{2|{{{1|{{PAGENAME}}}}}}}}]]'''''.
}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories to the /doc sub-page and interwikis to Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>jsl21m980dd0x35wcb0x3ig1wed7oj1</sha1>
</revision>
</page>
<page>
<title>Template:Shortcut/doc</title>
<ns>10</ns>
<id>9604644</id>
<revision>
<id>815837826</id>
<parentid>813922862</parentid>
<timestamp>2017-12-17T14:20:22Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>recat.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="5762">{{documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
{{high-use|17,000+}}
{{Template shortcut|Shc|Short|Shorthand}}
{{Lua|Module:Shortcut}}
{{Commons|Template:Redirects}}
This is the documentation for {{tl|shortcut}} and its sister templates.
The ''[[Wikipedia:Shortcut|shortcut]]'' family of templates is put into context here, but they each have their own documentation pages, [[#See also|see below]].
A shortcut template is similar to the {{tl|anchor}} template, but it adds a visual ''box'' graphic to the rendered page, as well as providing an alternative name. Creating a redirect page is a requirement to fulfill the shortcut mechanism.
== Usage ==
The characteristics of the ''box'' graphic are determined by which of the family of shortcut templates are chosen. For example, the ''policy shortcut'' box has the word ''policy'' on it for use on policy pages. The graphic alignment of the box depends on the whether it's a ''shortcut'' or a ''shortcut-l'':
*{{tl|shortcut}} – right-aligned box
*{{tl|shortcut-l}} – left aligned box
*{{tl|policy shortcut}} – ''shortcut'' that also says &quot;policy&quot;
*{{tl|Ombox/shortcut}} – ''shortcut'' that embeds into message boxes
This template should not be used for articles in the main namespace, because the graphic produces an unavoidable [[WP:SELF|self-reference]].
# Insert the shortcut template.
# Create a redirect page with the {{tl|R from shortcut}} template suffixed to the redirect. Name the page after your shortcut name. Include the namespace name in both the shortcut name and the redirect page name. For example, substitute your own shortcut name as the title of the page, and substitute the proper namespace, then add the REDIRECT as the top-line on your redirect page, and the category to the third line of the redirect:
#:&lt;code&gt;&lt;nowiki&gt;#REDIRECT [[&lt;/nowiki&gt;''Namespace'':''Title of page with''#''Optional very long section name'']]&lt;br&gt;&lt;br&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;&lt;tt&gt;R from shortcut&lt;/tt&gt;}}&lt;/code&gt;
# Verify operation. Note that shortcut templates should display in all capitals, but operate without all capitals.
'''Notes'''
Shortcuts are used mainly on user pages and talk pages in reference to the Wikipedia, Help, and Portal namespaces. These templates inform about the shortcuts available to the page they are on. For example, [[WP:SHORT]] redirects to [[Wikipedia:Shortcut]] and therefore, Wikipedia:Shortcut renders a shortcut box listing WP:SHORT. It is a self-reference that is normally avoided in the main article namespace.
The point of these templates is not to list every single redirect for a page (indeed, that's what &quot;[[Special:WhatLinksHere|What links here]]&quot; is for). Instead, they should list only one or two common and easily remembered redirects.
For policy pages, one can use the {{tl|policy shortcut}} template, which takes up to ten (10) shortcuts as parameters. Be careful not to use a ''policy template'' on a guideline or essay.
== Parameters ==
{{tl|shortcut}} takes the following parameters:
* &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;3&lt;/code&gt;... - the shortcut links.
* &lt;code&gt;msg&lt;/code&gt; - an unlinked message that goes after the shortcut links.
* &lt;code&gt;category&lt;/code&gt; - set to &quot;no&quot;, &quot;n&quot;, &quot;false&quot; or &quot;0&quot; to suppress error categories.
== Examples ==
{| class=&quot;wikitable&quot;
! Code
! Result
|-
| style=&quot;vertical-align:top;&quot; | {{tlc|{{BASEPAGENAME}}|WP:SHORT}}
| {{{{BASEPAGENAME}}|WP:SHORT}}
|-
| style=&quot;vertical-align:top;&quot; | {{tlc|{{BASEPAGENAME}}|WP:V|WP:VERIFY|WP:SOURCE}}
| {{{{BASEPAGENAME}}|WP:V|WP:VERIFY|WP:SOURCE}}
|-
| style=&quot;vertical-align:top;&quot; | {{tlc|{{BASEPAGENAME}}|WP:V|WP:VERIFY|4=msg=A message}}
| {{{{BASEPAGENAME}}|WP:V|WP:VERIFY|msg=A message}}
|}
== Anchors ==
These templates automatically add an [[HTML element#Anchor|anchor]] for each shortcut name parameter. For example, if a shortcut box with the shortcut [[WP:SHORT]] is placed on the page [[Wikipedia:Shortcut]], then the link [[Wikipedia:Shortcut#WP:SHORT]] will take you to the position in the page where that shortcut box is placed.
For instance, try this link: [[#WP:SHORT]]
This makes it easier to create a shortcut for a section of a page, because you can refer to the anchor when creating the shortcut redirect itself. Like this:
:&lt;code&gt;&lt;nowiki&gt;#REDIRECT [[Pagename#WP:SHORT]] {{R from shortcut}}&lt;/nowiki&gt;&lt;/code&gt;
== Positioning ==
This template is usually placed below the section header or at the top of a page.
Before July 26, 2010, when the anchor was inside the box, this caused the section header to scroll above the page window. Fixes for this issue included:
* Placing the shortcut above the section header; a bit confusing when editing
* Creating the redirect to the section header, not the shortcut; this would break if the section header was renamed
* Placing an {{tl|anchor}} in the section header that duplicated the shortcut
These fixes are no longer needed, but do not break the current implementation.
== See also ==
* [[Wikipedia:Shortcut]] – The how-to guide and guideline about how and when to create shortcuts and shortcut boxes. A must-read for anyone handling shortcuts.
* {{tl|Anchor}} – a way to overcome the otherwise permanent fact that section titles are the only way to link to a section
* {{tl|Ombox/shortcut}} – for embedding into message boxes
* {{tl|Policy shortcut}} – for shortcuts to sections of policy pages
* {{tl|R from shortcut}} – for placement on the redirect page
* {{tl|Shortcut-l}} – for left aligned normal shortcuts
* {{tl|Template shortcut}} – used for shortcuts/redirects to a template page
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
&lt;!--Categories below this line, please; interwikis at Wikidata--&gt;
[[Category:Shortcut templates]]
}}&lt;/includeonly&gt;</text>
<sha1>9fy3q75rh9cy6yvj82jpa4bma7rq1gn</sha1>
</revision>
</page>
<page>
<title>Template:Side box</title>
<ns>10</ns>
<id>20504849</id>
<revision>
<id>774482268</id>
<parentid>611333719</parentid>
<timestamp>2017-04-08T19:24:23Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Side box]]&quot;: [[WP:High-risk templates|Highly visible template]]: Allowing template editors ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="142">{{#invoke:Side box|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>s1zpy5c500y28mjgve7gykq14088u4e</sha1>
</revision>
</page>
<page>
<title>Template:Sister project</title>
<ns>10</ns>
<id>20505184</id>
<revision>
<id>787938066</id>
<parentid>777927888</parentid>
<timestamp>2017-06-28T13:37:35Z</timestamp>
<contributor>
<username>Train2104</username>
<id>10341578</id>
</contributor>
<minor/>
<comment>wkt logo renamed</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1403">{{Side box
| metadata=no
| position = {{{position|}}}
| image =
{{#switch: {{{image|}}}
| none = &lt;!-- &quot;image=none&quot;, do nothing --&gt;
| = &lt;!-- No image fed, select an image --&gt;
[[File:{{#switch: {{lc: {{{project|}}} }}
| commons = Commons-logo.svg
| meta|metawiki|m = Wikimedia Community Logo.svg
| wikibooks|wbk|wb|b = Wikibooks-logo-en-noslogan.svg
| wikidata|data = Wikidata-logo.svg
| wikiquote|quote|wqt|q = Wikiquote-logo.svg
| wikipedia|wp|w = Wikipedia-logo-v2.svg
| wikisource|source|ws|s = Wikisource-logo.svg
| wiktionary|wkt|wdy|d = Wiktionary-logo-en-v2.svg
| wikinews|news|wnw|n = Wikinews-logo.svg
| wikispecies|species = Wikispecies-logo.svg
| wikiversity|wvy|v = Wikiversity-logo.svg
| wikivoyage|voyage|voy = Wikivoyage-Logo-v3-icon.svg
| mediawiki|mw = Mediawiki.png
| outreachwiki|outreach = Wikimedia Outreach.png
| incubator = Incubator-notext.svg
| #default = Wikimedia-logo.svg
}}|40x40px|class=noviewer|alt=|link=
]]
| #default = {{{image|}}}
}}
| text = {{{text}}}
| below = {{{below|}}}
| imageright = {{{imageright|}}}
| class = plainlinks sistersitebox
}}&lt;noinclude&gt;{{Documentation}}&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;&lt;/noinclude&gt;</text>
<sha1>ourm3r954byna7jozjp47ggyjuoy2zn</sha1>
</revision>
</page>
<page>
<title>Module:Side box</title>
<ns>828</ns>
<id>42926982</id>
<revision>
<id>765979084</id>
<parentid>738676004</parentid>
<timestamp>2017-02-17T14:37:25Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<minor/>
<comment>tweak color per request</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="2743">-- This module implements {{side box}}.
local yesno = require('Module:Yesno')
local p = {}
function p.main(frame)
local origArgs = frame:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = v:match('%s*(.-)%s*$')
if v ~= '' then
args[k] = v
end
end
return p._main(args)
end
function p._main(args)
local data = p.makeData(args)
return p.renderSidebox(data)
end
function p.makeData(args)
local data = {}
-- Main table classes
data.classes = {}
if yesno(args.metadata) ~= false then
table.insert(data.classes, 'metadata')
end
if args.position and args.position:lower() == 'left' then
table.insert(data.classes, 'mbox-small-left')
else
table.insert(data.classes, 'mbox-small')
end
table.insert(data.classes, args.class)
-- Image
if args.image and args.image ~= 'none' then
data.image = args.image
end
-- Copy over data that doesn't need adjusting
local argsToCopy = {
-- Styles
'style',
'textstyle',
-- Above row
'above',
'abovestyle',
-- Body row
'text',
'imageright',
-- Below row
'below',
}
for i, key in ipairs(argsToCopy) do
data[key] = args[key]
end
return data
end
function p.renderSidebox(data)
-- Renders the sidebox HTML.
-- Table root
local root = mw.html.create('table')
root:attr('role', 'presentation')
for i, class in ipairs(data.classes or {}) do
root:addClass(class)
end
root:css{border = '1px solid #aaa', ['background-color'] = '#f9f9f9', color = '#000'}
if data.style then
root:cssText(data.style)
end
-- The &quot;above&quot; row
if data.above then
local aboveCell = root:newline():tag('tr'):tag('td')
aboveCell
:attr('colspan', data.imageright and 3 or 2)
:addClass('mbox-text')
if data.textstyle then
aboveCell:cssText(data.textstyle)
end
if data.abovestyle then
aboveCell:cssText(data.abovestyle)
end
aboveCell
:newline()
:wikitext(data.above)
end
-- The body row
local bodyRow = root:newline():tag('tr'):newline()
if data.image then
bodyRow:tag('td')
:addClass('mbox-image')
:wikitext(data.image)
else
bodyRow:tag('td'):css('width', '1px')
end
local textCell = bodyRow:newline():tag('td')
textCell:addClass('mbox-text plainlist')
if data.textstyle then
textCell:cssText(data.textstyle)
end
textCell:wikitext(data.text)
if data.imageright then
bodyRow:newline():tag('td')
:addClass('mbox-imageright')
:wikitext(data.imageright)
end
-- The below row
if data.below then
local belowCell = root:newline():tag('tr'):tag('td')
belowCell
:attr('colspan', data.imageright and 3 or 2)
:addClass('mbox-text')
if data.textstyle then
belowCell:cssText(data.textstyle)
end
belowCell:wikitext(data.below)
end
return tostring(root)
end
return p</text>
<sha1>40brk1c8277xql0q2lrsmvl4okh26ku</sha1>
</revision>
</page>
<page>
<title>Template:Dot</title>
<ns>10</ns>
<id>8120349</id>
<redirect title="Template:·" />
<revision>
<id>222372155</id>
<parentid>90100849</parentid>
<timestamp>2008-06-29T00:24:46Z</timestamp>
<contributor>
<username>Luna Santin</username>
<id>1587622</id>
</contributor>
<minor/>
<comment>Protected Template:Dot: potential risk, doubtful there will ever be significant need to edit this [edit=sysop:move=sysop]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="25">#REDIRECT [[Template:·]]</text>
<sha1>miz6j5ktcgs5v2y2i7e02wlxiqtlti6</sha1>
</revision>
</page>
<page>
<title>Template:Nbsp</title>
<ns>10</ns>
<id>9539256</id>
<redirect title="Template:Spaces" />
<revision>
<id>232013688</id>
<parentid>232013552</parentid>
<timestamp>2008-08-15T01:13:52Z</timestamp>
<contributor>
<username>J.delanoy</username>
<id>2372780</id>
</contributor>
<minor/>
<comment>Protected Template:Nbsp: high visibility template [edit=sysop:move=sysop]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="29">#REDIRECT [[Template:Spaces]]</text>
<sha1>ox12ekkowioy7uiwg47qmdn6epzwzce</sha1>
</revision>
</page>
<page>
<title>Template:Sidebar/doc</title>
<ns>10</ns>
<id>19226132</id>
<revision>
<id>816158327</id>
<parentid>816158305</parentid>
<timestamp>2017-12-19T17:29:33Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<comment>/* See also */</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="12163">{{Documentation subpage}}
&lt;!-----Edit template documentation below this line-----&gt;
{{#ifeq:{{FULLPAGENAME}}|Template:Sidebar|{{High-risk| 114000+ }}{{Template display|nomobile}}}}
{{Lua|Module:Sidebar}}
{{about|the vertical navigation template|the horizontal template|Template:Navbox|the left sidebar of the interface|mw:Manual:Interface/Sidebar{{!}}the article in the Mediawiki Manual}}
This template is a [[wikt:Metatemplate|metatemplate]] for the creation of sidebar templates, i.e. boxes that are [[Vertical direction|vertically]]-aligned [[Wikipedia:Navigation template|navigation templates]]. Sidebars, like [[Wikipedia:Manual of Style/Infoboxes|infoboxes]], are usually positioned on the right-hand side of a page.
{{tl|Sidebar with collapsible lists}} is a version of {{tl|Sidebar}} that adds collapsibility to its sections, i.e. the means to show or hide sections by clicking links beside their headings.
{{Navbox visibility}}
== Usage ==
{{Generic template demo |name={{PAGENAME}} |pretitle |title |image |above |heading1 |content1 |heading2 |content2 |heading3 |content3 |content4=''…… etc ……'' |heading35 |content35 |below}}
(parameters with infrequent use omitted)
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Sidebar
| style =
| name = {{subst:PAGENAME}}
| pretitle =
| title =
| image =
| headingstyle =
| contentstyle =
| above =
| heading1 =
| content1 =
| heading2 =
| content2 =
| heading3 =
| content3 =
&lt;!-- etc, to: --&gt;
| heading35 =
| content35 =
| below =
}}
&lt;/pre&gt;
== Parameters ==
No parameters are mandatory, but if the {{small|{{smallcaps|V{{dot}}T{{dot}}E}}}} {{tl|navbar}} links along the bottom of a {{tlf|Sidebar}} are to function correctly (unless their appearance is suppressed; see the ''navbar'' parameter [[#Other parameters|below]]), the parameter ''name'' needs to be set (to [[Wikipedia:Page name|the name of]] the sidebar's page). (This does not apply if the [[Lua (programming language)|Lua module]] that produces {{tlf|Sidebar}}, [[Module:Sidebar]], is being used directly.)
===Principal parameters===
{| class=&quot;wikitable&quot; style=&quot;line-height:1.4em;&quot;
!style=&quot;width:14.0em&lt;!--(cf table below)--&gt;;padding-left:0.25em;text-align:left;&quot;| Parameter
!style=&quot;padding-left:0.5em;text-align:left;&quot;| Explanation
|-
| {{para|name}}
|style=&quot;padding-left:0.5em;&quot;| The sidebar's name, i.e. the name following &quot;Template:&quot; in the title shown at the top of the sidebar's page. &lt;br /&gt;Required if the {{small|{{smallcaps|V{{dot}}T{{dot}}E}}}} {{tl|navbar}} links at the bottom of the sidebar are to function correctly, unless their appearance is suppressed (see the ''navbar'' parameter [[#Other parameters|below]]) or {{tlf|Sidebar}} is not being used as a [[Wrapper function|wrapper]] for [[Module:Sidebar]]. When {{tlf|Sidebar}} is used as a wrapper, setting {{para|name|&lt;nowiki&gt;{{subst:PAGENAME}}&lt;/nowiki&gt;}} is recommended.
|-
| {{para|outertitle}}
|style=&quot;padding-left:0.5em;&quot;| Use to place a title for the sidebar immediately above the sidebar.
|-
| {{para|topimage}}
|style=&quot;padding-left:0.5em;&quot;| Use to place an image at the top of the sidebar, i.e. above {{para|title}} (if used). Full wiki syntax is expected (i.e. &lt;code&gt;&lt;nowiki&gt;[[File:...]]&lt;/nowiki&gt;&lt;/code&gt;). &lt;br /&gt;To add a caption below the image, use {{para|topcaption}}.
|-
| {{para|pretitle}}
|style=&quot;padding-left:0.5em;&quot;| Use to place a line such as &quot;Part of the ''X'' series on&quot; before the title.
|-
| {{para|title}}
|style=&quot;padding-left:0.5em;&quot;| Use to place a title for the sidebar at the top of the sidebar. (If {{para|topimage}} is used, it will appear immediately below it).
|-
| {{para|image}}
|style=&quot;padding-left:0.5em;&quot;| Use to place an image between the {{para|title}} (if used) and first section. As with {{para|topimage}}, full wiki syntax is expected (i.e. &lt;code&gt;&lt;nowiki&gt;[[File:...]]&lt;/nowiki&gt;&lt;/code&gt;). &lt;br /&gt;To add a caption below the image, use {{para|caption}}.
|-
| {{para|headingstyle}}
|style=&quot;padding-left:0.5em;&quot;| Use to alter the default [[Help:Cascading Style Sheets|CSS]] styling set for section headings. &lt;br /&gt;To alter the CSS styling for a specific section's heading, use {{para|heading&lt;sub&gt;n&lt;/sub&gt;style}}, where ''n'' is the number of the section.
|-
| {{para|contentstyle}}
|style=&quot;padding-left:0.5em;&quot;| Use to alter the default CSS styling set for section content. &lt;br /&gt;To alter the CSS styling for a particular section's content, use {{para|content&lt;sub&gt;n&lt;/sub&gt;style}}, where ''n'' is the number of the section.
|-
| {{para|heading1}}&lt;br/&gt;{{para|content1}}
|style=&quot;padding-left:0.5em;&quot;| First section's heading{{\}}content. ''content1'' is required if ''heading1'' is also to appear.
|-
| {{para|heading2}}&lt;br/&gt;{{para|content2}}
|style=&quot;padding-left:0.5em;&quot;| Second section's heading{{\}}content. (''content2'' required if ''heading2'' also to appear; etc.)
|-
| {{para|heading3}}&lt;br/&gt;{{para|content3}}
|style=&quot;padding-left:0.5em;&quot;| Third section's heading{{\}}content.
|-
|colspan=&quot;2&quot; style=&quot;padding-left:0.5em;&quot;| ...... etc ......
|-
| {{para|heading35}}&lt;br/&gt;{{para|content35}}
|style=&quot;padding-left:0.5em;&quot;| Currently, the last possible section heading and/or content.
|}
===Other parameters===
&lt;!--Linked from [[Template:Subinfobox bodystyle/doc]]--&gt;
{| class=&quot;wikitable plainlist&quot; style=&quot;line-height:1.4em;&quot;
!style=&quot;width:14.0em&lt;!--(cf table above)--&gt;;padding-left:0.25em;text-align:left;&quot;| Parameter
!style=&quot;padding-left:0.5em;text-align:left;&quot;| Explanation
|-
| {{para|above}}
|style=&quot;padding-left:0.5em;&quot;| Same as the {{para|above}} offered by {{tl|Navbox}}.
|-
|
*{{nowrap|{{para|class}} or {{para|bodyclass}}}}
*{{para|outertitleclass}}
*{{para|topimageclass}}
*{{para|pretitleclass}}
*{{para|titleclass}}
*{{para|imageclass}}
*{{para|aboveclass}}
*{{para|headingclass}}
*{{para|contentclass}}
*{{para|belowclass}}
|style=&quot;padding-left:0.5em;&quot;|
[[Wikipedia:WikiProject Microformats#What are microformats?|Microformat]] classes for the corresponding parameters. &lt;br /&gt;({{para|class}} and {{para|bodyclass}} are applied across the whole sidebar.)
|-
| {{para|below}}
|style=&quot;padding-left:0.5em;&quot;| Same as the {{para|below}} offered by {{tl|Navbox}}.&lt;br /&gt;(Use, for example, to add one or more portal links to the bottom of the template (shown, by default, in bold).)
|-
|
*{{nowrap|{{para|style}} or {{para|bodystyle}}}}
*{{para|outertitlestyle}}
*{{para|topimagestyle}}
*{{para|topcaptionstyle}}
*{{para|pretitlestyle}}
*{{para|titlestyle}}
*{{para|imagestyle}}
*{{para|captionstyle}}
*{{para|abovestyle}}
*{{para|headingstyle}}
*{{para|heading&lt;sub&gt;n&lt;/sub&gt;style}}
*{{para|contentstyle}}
*{{para|content&lt;sub&gt;n&lt;/sub&gt;style}}
*{{para|belowstyle}}
*{{longitem|{{para|navbarstyle}}&lt;br/&gt;{{nbsp|2}}{{smaller|(or {{para|tnavbarstyle}})}}}}
|style=&quot;padding-left:0.5em;&quot;|
Use to alter the default [[Help:Cascading Style Sheets|CSS]] styling for the corresponding parameters. &lt;br /&gt;({{para|style}} and {{para|bodystyle}} are applied across the whole sidebar.)
|-
| {{para|cellspacing}}&lt;br/&gt;{{para|cellpadding}}
|style=&quot;padding-left:0.5em;&quot;| Use to amend the default cellspacing{{\}}cellpadding set for the infobox-class table with which the sidebar is built.
|-
| {{longitem|{{para|navbar}}{{nowrap|{{nbsp|2}}{{smaller|(or {{para|tnavbar}})}}}}}}
|style=&quot;padding-left:0.5em;&quot;| Set to &quot;off&quot;, &quot;none&quot;, etc. (without quotes) to remove the {{tl|navbar}} links ({{small|{{smallcaps|V{{dot}}T{{dot}}E}}}}) that otherwise appear at the bottom of the sidebar.
|-
| {{longitem|{{para|navbarfontstyle}}&lt;br/&gt;{{nbsp|2}}{{smaller|(or {{para|tnavbarfontstyle}})}}}}
|style=&quot;padding-left:0.5em;&quot;| Use to specify the font style used by the navbar at the bottom of the sidebar (see {{tl|navbar}} for options available).
|}
== Handling long links ==
{{tl|Normalwraplink}} may be used to handle links that should wrap within the sidebar or otherwise need to be made to wrap, in order to prevent the sidebar from becoming too wide. Use {{tlx|normalwraplink|''longlinkname''}}, where {{para||''longlinkname''}} is the long link without its square brackets.
Use the {{para|wraplinks|true}} parameter to turn link wrapping off for the whole template.
== Embedding ==
One sidebar template can be embedded into another using the {{para|child}} parameter. This feature can be used to create a modular sidebar, or to create more well-defined and logical sections.
{{Sidebar
| title = Top-level title
| content1 =
{{Sidebar |child=yes
| title = First subsection
| heading1 = Heading 1.1
| content1 = Content 1.1
}}
| content2 =
{{Sidebar |child=yes
| title = Second subsection
| heading1 = Heading 2.1
| content1 = Content 2.1
}}
| below = &quot;below&quot; text
}}
&lt;pre style=&quot;position:relative;bottom:0.5em; overflow:auto;&quot;&gt;
{{Sidebar
| title = Top-level title
| content1 =
{{Sidebar |child=yes
| title = First subsection
| heading1 = Heading 1.1
| content1 = Content 1.1
}}
| content2 =
{{Sidebar |child=yes
| title = Second subsection
| heading1 = Heading 2.1
| content1 = Content 2.1
}}
| below = &quot;below&quot; text
}}
&lt;/pre&gt;
Note in the examples above that the child sidebar is placed in a {{code|content}} field, not a {{code|heading}} field. Notice also that the section subheadings do not appear in bold if this is not explicitly specified. To obtain bold section headings, move the titles to the {{code|heading}} field, using
{{Sidebar
| title = Top-level title
| heading1 = First subsection
| content1 =
{{Sidebar |child=yes
| heading1 = Heading 1.1
| content1 = Content 1.1
}}
| heading2 = Second subsection
| content2 =
{{Sidebar |child=yes
| heading1 = Heading 2.1
| content1 = Content 2.1
}}
| below = &quot;below&quot; text
}}
&lt;pre style=&quot;position:relative;bottom:0.5em; overflow:auto;&quot;&gt;
{{Sidebar
| title = Top-level title
| heading1 = First subsection
| content1 =
{{Sidebar |child=yes
| heading1 = Heading 1.1
| content1 = Content 1.1
}}
| heading2 = Second subsection
| content2 =
{{Sidebar |child=yes
| heading1 = Heading 2.1
| content1 = Content 2.1
}}
| below = &quot;below&quot; text
}}
&lt;/pre&gt;
== Full blank syntax ==
{{Generic template demo |name= |outertitle |topimage |pretitle |title |image |caption |above |heading1 |content1 |heading2 |content2 |heading3 |content3 |content4=''…… etc ……'' |heading35 |content35 |below}}
(omitting heading4/content4 to penultimate heading/content parameters)
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{Sidebar
| name = {{subst:PAGENAME}}
| class = &lt;!-- or: | bodyclass = --&gt;
| style = &lt;!-- or: | bodystyle = --&gt;
| width =
| cellspacing =
| cellpadding =
| wraplinks = &lt;!-- &quot;true&quot; otherwise (default:) omit --&gt;
| outertitleclass =
| outertitlestyle =
| outertitle =
| topimageclass =
| topimagestyle =
| topimage =
| topcaptionstyle =
| topcaption =
| pretitleclass =
| pretitlestyle =
| pretitle =
| titleclass =
| title =
| imageclass =
| imagestyle =
| image =
| captionstyle =
| caption =
| headingclass =
| headingstyle =
| contentclass =
| contentstyle =
| aboveclass =
| abovestyle =
| above =
| heading1style =
| heading1 =
| content1style =
| content1 =
| heading2style =
| heading2 =
| content2style =
| content2 =
| heading3style =
| heading3 =
| content3style =
| content3 =
&lt;!-- etc, to: --&gt;
| heading35style =
| heading35 =
| content35style =
| content35 =
| belowclass =
| belowstyle =
| below =
| navbarstyle = &lt;!-- or: | tnavbarstyle = --&gt;
| navbarfontstyle = &lt;!-- or: | tnavbarfontstyle = --&gt;
| navbar = &lt;!-- or: | tnavbar = --&gt; &lt;!-- &quot;off&quot;, &quot;none&quot;, etc otherwise (default:) omit --&gt;
}}
&lt;/pre&gt;
== Supplementary documentation ==
Supplementary related documentation (concerning {{tl|navbar}} use within a sidebar) is at [[Template:Navbar/doc]].
== Tracking category ==
* {{clc|Pages using sidebar with the child parameter}}
== See also ==
* [[Special:Permalink/609911857|Last pre-Lua version]]
* {{tl|Sidebar with collapsible lists}}
* {{tl|Infobox}}
* [[Wikipedia:UBLIST]], for help using unbulleted lists within content.
&lt;includeonly&gt;
{{#ifeq:{{PAGENAME}}|{{BASEPAGENAME}} |
[[Category:Sidebar templates| ]]
[[Category:Wikipedia metatemplates]]
[[Category:Navigational boxes| ]]
[[Category:Exclude in print]]
}}
&lt;/includeonly&gt;</text>
<sha1>1bni35t6mct8asvrl4uqu77bk8zvj35</sha1>
</revision>
</page>
<page>
<title>Template:Smallcaps</title>
<ns>10</ns>
<id>1898720</id>
<revision>
<id>678988144</id>
<parentid>483916797</parentid>
<timestamp>2015-09-01T20:49:28Z</timestamp>
<contributor>
<username>NeilN</username>
<id>409043</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Smallcaps: [[WP:High-risk templates|Highly visible template]] ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="184">&lt;span class=&quot;smallcaps&quot; style=&quot;font-variant:small-caps;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;noinclude&gt;
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>k5k0o6qmavp0kxj9qt7uicc08o1nnk9</sha1>
</revision>
</page>
<page>
<title>Template:Precision</title>
<ns>10</ns>
<id>28372034</id>
<revision>
<id>772120865</id>
<parentid>540301189</parentid>
<timestamp>2017-03-25T12:38:46Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Precision]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="125">&lt;includeonly&gt;{{#invoke:Math|precision|{{{1|0}}}|check_fraction=true}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>hbl3vf33a239ici6o7feo2ici90hboa</sha1>
</revision>
</page>
<page>
<title>Template:Significant figures/doc</title>
<ns>10</ns>
<id>37771953</id>
<revision>
<id>733345492</id>
<parentid>697617747</parentid>
<timestamp>2016-08-07T05:02:09Z</timestamp>
<contributor>
<username>Auntof6</username>
<id>5402993</id>
</contributor>
<comment>rem interwikis (now in Wikidata)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2672">{{template shortcut|sigfig}}
This template has two different functions dependent on input.
#If only one parameter is given the template counts the number of [[significant figures]] of the given number within the ranges 10&lt;sup&gt;12&lt;/sup&gt; to 10&lt;sup&gt;−12&lt;/sup&gt; and -10&lt;sup&gt;−12&lt;/sup&gt; to -10&lt;sup&gt;12&lt;/sup&gt;. It ignores any digits outside this range&lt;!--... maybe --&gt;.
#If two parameters are given the template rounds the first number to the number of significant figures given by the second.
== Examples ==
=== Two parameters ===
*{{xpdop3p3c|d=|significant figures|123.456|||7}}
*{{xpdop3p3c|d=|significant figures|123.456|||6}}
*{{xpdop3p3c|d=|significant figures|123.456|||5}}
*{{xpdop3p3c|d=|significant figures|123.456|||4}}
----
*{{xpdop3p3c|d=|significant figures|123,456|||3}}
*{{xpdop3p3c|d=|significant figures|12345.6|||3}}
*{{xpdop3p3c|d=|significant figures|1234.56|||3}}
*{{xpdop3p3c|d=|significant figures|12.3456|||3}}
*{{xpdop3p3c|d=|significant figures|1.23456|||3}}
----
*{{xpdop3p3c|d=|significant figures|.123456|||3}}
*{{xpdop3p3c|d=|significant figures|.0123456|||3}}
*{{xpdop3p3c|d=|significant figures|.00123456|||3}}
*{{xpdop3p3c|d=|significant figures|0.123456|||3}}
*{{xpdop3p3c|d=|significant figures|0.0123456|||3}}
*{{xpdop3p3c|d=|significant figures|0.00123456|||3}}
----
*{{xpdop3p3c|d=|significant figures|123.456|||2}}
*{{xpdop3p3c|d=|significant figures|123.456|||1}}
*{{xpdop3p3c|d=|significant figures|123.456|||0}}
----
*{{xpdop3p3c|d=|significant figures|987654321|||9}}
*{{xpdop3p3c|d=|significant figures|987654321|||8}}
*{{xpdop3p3c|d=|significant figures|987654321|||7}}
*{{xpdop3p3c|d=|significant figures|987654321|||6}}
*{{xpdop3p3c|d=|significant figures|987654321|||5}}
*{{xpdop3p3c|d=|significant figures|987654321|||4}}
*{{xpdop3p3c|d=|significant figures|987654321|||3}}
*{{xpdop3p3c|d=|significant figures|987654321|||2}}
*{{xpdop3p3c|d=|significant figures|987654321|||1}}
=== One parameter ===
*{{xpdop3c|d=|significant figures|123400}}
*{{xpdop3c|d=|significant figures|12340}}
*{{xpdop3c|d=|significant figures|1234}}
*{{xpdop3c|d=|significant figures|123.4}}
*{{xpdop3c|d=|significant figures|12.34}}
*{{xpdop3c|d=|significant figures|1.234}}
----
*{{xpdop3c|d=|significant figures|0.1234}}
*{{xpdop3c|d=|significant figures|0.01234}}
*{{xpdop3c|d=|significant figures|0.001234}}
*{{xpdop3c|d=|significant figures|.1234}}
*{{xpdop3c|d=|significant figures|.01234}}
*{{xpdop3c|d=|significant figures|.001234}}
----
*{{xpdop3c|d=|significant figures|-123.4}}
*{{xpdop3c|d=|significant figures|-12.34}}
*{{xpdop3c|d=|significant figures|-1.234}}
&lt;includeonly&gt;
[[Category:Mathematical function templates]]
&lt;/includeonly&gt;</text>
<sha1>kxcn04gfh1ss5opoycv4f109o9hp9uz</sha1>
</revision>
</page>
<page>
<title>Template:Significant figures/sum</title>
<ns>10</ns>
<id>13120695</id>
<revision>
<id>819688092</id>
<parentid>617348015</parentid>
<timestamp>2018-01-10T19:22:20Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Significant figures/sum]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirme...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="217">&lt;includeonly&gt;{{#expr:{{{3}}}+{{precision|{{{1}}}}}+1}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{doc|content=
This subtemplate counts significant figures in a number.
[[Category:Subtemplates of template sigfig|sum]]
}}
&lt;/noinclude&gt;</text>
<sha1>e7j4j78ycloqm5okb6fgy3695cxuldu</sha1>
</revision>
</page>
<page>
<title>Template:Xpdop3p3c</title>
<ns>10</ns>
<id>27993806</id>
<revision>
<id>372714107</id>
<timestamp>2010-07-10T08:27:06Z</timestamp>
<contributor>
<username>Patrick</username>
<id>4388</id>
</contributor>
<comment>from Meta</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="620">{{xpda|gives={{{gives|gives}}}|l4={{{l|}}}|result={{{d|&quot;}}}{{{{{1}}}|{{{2|}}}{{{3|}}}{{{4|}}}|{{{5|}}}{{{6|}}}{{{7|}}}}}{{{8|}}}{{{9|}}}{{{10|}}}{{{11|}}}{{{12|}}}{{{13|}}}{{{14|}}}{{{15|}}}{{{d|&quot;}}}|{{{d|&quot;}}}|{|{|{{{1}}}|&amp;p|{{xpd/code|{{{2|}}}}}|{{xpd/code|{{{3|}}}}}|{{xpd/code|{{{4|}}}}}|&amp;p|{{xpd/code|{{{5|}}}}}|{{xpd/code|{{{6|}}}}}|{{xpd/code|{{{7|}}}}}|}|}|{{xpd/code|{{{8|}}}}}|{{xpd/code|{{{9|}}}}}|{{xpd/code|{{{10|}}}}}|{{xpd/code|{{{11|}}}}}|{{xpd/code|{{{12|}}}}}|{{xpd/code|{{{13|}}}}}|{{xpd/code|{{{14|}}}}}|{{xpd/code|{{{15|}}}}}|{{xpd/code|{{{16|}}}}}|{{{d|&quot;}}}}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>f6e2aem4y1f0p3khgb8oa4h9z0gqiyn</sha1>
</revision>
</page>
<page>
<title>Template:Sigfig/rnd</title>
<ns>10</ns>
<id>37772153</id>
<redirect title="Template:Significant figures/rnd" />
<revision>
<id>525374020</id>
<timestamp>2012-11-28T17:30:08Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<comment>MSGJ moved page [[Template:Sigfig/rnd]] to [[Template:Significant figures/rnd]]: expand abbreviation</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="47">#REDIRECT [[Template:Significant figures/rnd]]
</text>
<sha1>ftbxb9y8068ym7z7r0upoz3yd9bmf8n</sha1>
</revision>
</page>
<page>
<title>Template:Xpd5op3p3p3c</title>
<ns>10</ns>
<id>28200309</id>
<revision>
<id>376236888</id>
<timestamp>2010-07-30T09:58:09Z</timestamp>
<contributor>
<username>Patrick</username>
<id>4388</id>
</contributor>
<comment>from m:</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="579">{{xpda|gives={{{gives|gives}}}|l9={{{l|}}}|result={{{d|&quot;}}}{{{1}}}{{{2}}}{{{3}}}{{{4}}}{{{5}}}{{{{{6}}}|{{{7}}}{{{8|}}}{{{9|}}}|{{{10|}}}{{{11|}}}{{{12|}}}|{{{13|}}}{{{14|}}}{{{15|}}}}}{{{d|&quot;}}}|{{{d|&quot;}}}|{{xpd/code|{{{1|}}}}}|{{xpd/code|{{{2|}}}}}|{{xpd/code|{{{3|}}}}}|{{xpd/code|{{{4|}}}}}|{{xpd/code|{{{5|}}}}}|{|{|{{{6}}}|&amp;p|{{xpd/code|{{{7}}}}}|{{{8}}}|{{xpd/code|{{{9}}}}}|&amp;p|{{xpd/code|{{{10|}}}}}|{{xpd/code|{{{11|}}}}}|{{xpd/code|{{{12|}}}}}|&amp;p|{{xpd/code|{{{13|}}}}}|{{xpd/code|{{{14|}}}}}|{{xpd/code|{{{15|}}}}}|}|}|{{{d|&quot;}}}}}&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>6koxjqy8y58bzsxc3x2qbjxwwl9qb9l</sha1>
</revision>
</page>
<page>
<title>Template:Smaller/TemplateData</title>
<ns>10</ns>
<id>40096249</id>
<revision>
<id>775613537</id>
<parentid>774498431</parentid>
<timestamp>2017-04-16T01:05:38Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<comment>TFD closed as keep ([[WP:XFDC|XFDcloser]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="265">
==TemplateData==
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;Resizes text by 90%&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Text&quot;,
&quot;description&quot;: &quot;The text to display&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
}
}
}
&lt;/templatedata&gt;</text>
<sha1>2grgn5q4i0qoxhdmrvzdxuvyau3spvo</sha1>
</revision>
</page>
<page>
<title>Template:Inline spacing templates</title>
<ns>10</ns>
<id>53869587</id>
<revision>
<id>814086745</id>
<parentid>793236901</parentid>
<timestamp>2017-12-06T20:50:15Z</timestamp>
<contributor>
<username>Dinoguy1000</username>
<id>2412089</id>
</contributor>
<comment>update</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="803">{{Navbox
| name = Inline spacing templates
| title = [[:Category:Inline spacing templates|Inline spacing templates]]
| listclass = hlist
| state = {{{state|expanded}}}
| above =
| image =
| group1 = Non-breaking space characters
| list1 =
* {{tl|Figure space}}
* {{tl|Hair space}}
* {{tl|Nb5}}
* {{tl|Nb10}}
* {{tl|Narrow no-break space}}
* {{tl|Ns}}
* {{tl|Quad}}
* {{tl|Spaces}}
* {{tl|Thin space}}
* {{tl|Zero width joiner}}
| group2 = Breaking space characters
| list2 = * {{tl|Sp}}
* {{tl|Zero width space}}
| group3 = Non-character spaces
| list3 = * {{tl|Gaps}}
* {{tl|In5}}
* {{tl|Indent}}
* {{tl|Pad}}
* {{tl|Px2}}
| below =
}}&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||[[Category:Inline spacing templates]]}}&lt;/includeonly&gt;</text>
<sha1>itaq0973ctkih9xrqsxv4ichb5vqgbd</sha1>
</revision>
</page>
<page>
<title>Template:Sp/doc</title>
<ns>10</ns>
<id>25109254</id>
<revision>
<id>782204772</id>
<parentid>777015741</parentid>
<timestamp>2017-05-25T14:31:14Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>clarify</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3170">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --&gt;
===Usage===
{{tlx|sp}} will insert a single, ordinary space character. It can serve as a human-readable alternative to the &lt;code&gt;&amp;amp;#32;&lt;/code&gt; [[numeric character reference]].
====Anywhere you need a regular space====
You can use {{tl|sp}} anywhere you need a regular, breaking space. If you need a non-breaking space or multiple spaces in a row, use {{tl|space}}.
====Inserting a space inside a parser function====
Sometimes when using [[Help:parser functions|parser functions]], you need to insert a space at the beginning or end of an optional message. {{tl|sp}} can be used for that purpose. In the following examples, look closely at the spacing between words and punctuation to see the subtle differences.
;Example
&lt;nowiki&gt;I like green{{#if:{{{blue|}}}|and blue}}.&lt;/nowiki&gt;
The above example works fine if 'blue' does not have a value ('&lt;code&gt;I like green.&lt;/code&gt;').
However, if 'blue' is set to true (&lt;code&gt;|blue=true&lt;/code&gt;), then the message is incorrectly run together ('&lt;code&gt;I like greenand blue.&lt;/code&gt;').
&lt;nowiki&gt;I like green {{#if:{{{blue|}}}|and blue}}.&lt;/nowiki&gt;
Adding the space between 'green' and '&amp;#123;&amp;#123;#if' avoids running the '&lt;code&gt;green and&lt;/code&gt;' together, but now there will be an extra space if 'blue' is not set ('&lt;code&gt;I like green .&lt;/code&gt;').
&lt;nowiki&gt;I like green{{#if:{{{blue|}}}| and blue}}.&lt;/nowiki&gt;
Adding the space between the pipe ('&amp;#124;') and the word 'and' doesn't work. Any leading or trailing spaces from a parser function output are stripped, so this produces exactly the same output as the first example when 'blue' is true ('&lt;code&gt;I like greenand blue.&lt;/code&gt;').
&lt;nowiki&gt;I like green{{#if:{{{blue|}}}|{{sp}}and blue}}.&lt;/nowiki&gt;
This one works! By inserting the {{tl|sp}} in the parser function output, the space is not stripped, and the correct output is given whether blue is set to true ('&lt;code&gt;I like green and blue.&lt;/code&gt;') or not set at all ('&lt;code&gt;I like green.&lt;/code&gt;').
====Disabling default substitution====
Suppose you have a template, {{tl|Example}}, that uses [[WP:substitution|substitution]], like this:
&lt;nowiki&gt;{{{{{subst|subst:}}}#if{{{condition|}}}|message}}&lt;/nowiki&gt;
When the template is [[WP:Transclusion|transcluded]] and saved, the result would be interpreted as:
&lt;nowiki&gt;{{subst:#if{{{condition|}}}|message}}&lt;/nowiki&gt;
You could override the substitution by setting the 'subst' attribute to {{tl|sp}}:
&lt;nowiki&gt;{{Example| subst={{sp}} }}&lt;/nowiki&gt;
Now the result would be interpreted as:
&lt;nowiki&gt;{{ #if{{{condition|}}}|message}}&lt;/nowiki&gt;
The extra blank space preceding the '#if' would not affect the template at all (except to suppress the default substitution).
===See also===
* {{tlx|space}}: A similar template that is often more useful except when working with parser functions
* {{tlx|fdw-iw}}: A template that uses {{tl|sp}} with parser functions
* {{tlx|sp?}}: for spelling issues
* {{Tl|Nnbsp}}
{{Inline spacing templates}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Inline spacing templates]]
[[Category:Typing-aid templates]]
&lt;/includeonly&gt;</text>
<sha1>gzvbyta028d3eojpjyfgmfxzqk4u7ag</sha1>
</revision>
</page>
<page>
<title>Template:Bigger</title>
<ns>10</ns>
<id>37772836</id>
<redirect title="Template:Larger" />
<revision>
<id>769880967</id>
<parentid>631128460</parentid>
<timestamp>2017-03-12T04:27:00Z</timestamp>
<contributor>
<username>Godsy</username>
<id>23257138</id>
</contributor>
<comment>[[Template:This is a redirect]] has been deprecated, change to [[Template:Redirect category shell]].</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="117">#REDIRECT [[Template:Larger]]
{{Redirect category shell|
{{R from alternative name}}
{{R from template shortcut}}
}}</text>
<sha1>jj4ijw3adarv6fbm335bugoya2wvz2e</sha1>
</revision>
</page>
<page>
<title>Template:Improve documentation</title>
<ns>10</ns>
<id>33874298</id>
<revision>
<id>819685842</id>
<parentid>803370542</parentid>
<timestamp>2018-01-10T19:17:03Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Improve documentation]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="953">&lt;!--{{Improve documentation}} begin --&gt;{{Ombox
| substcheck = &lt;includeonly&gt;{{subst:substcheck}}&lt;/includeonly&gt;
| type = content
| name = Improve documentation
| class = ambox-Refimprove
| image = [[File:Question book-new.svg|50x40px|alt=|link=]]
| text = This {{#switch:{{NAMESPACE}}|Module=module|#default=template}}'s [[Wikipedia:Template documentation|documentation]] is '''missing, inadequate, or does not accurately describe its functionality''' or the [[Help:Parameters|parameters]] in its code. Please help [{{fullurl:{{FULLPAGENAME}}{{#ifexist:{{FULLPAGENAME}}/doc|/doc}}|action=edit}} to expand and improve it]. {{#if:{{{talk|{{{1|}}}}}} |See [[{{TALKPAGENAME}}|talk page]] for details.|}} {{#if:{{{date|{{{2|}}}}}} |{{smaller|''({{{date}}})''}}}}
}}&lt;includeonly&gt;{{Dated maintenance category|||Templates with missing or incorrect documentation}}&lt;/includeonly&gt;&lt;!--
&lt;!--{{Improve documentation}} end--&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>nommtlw21lp2f4mg4uerfwb74v6fo9g</sha1>
</revision>
</page>
<page>
<title>Template:Spaces/doc</title>
<ns>10</ns>
<id>9538226</id>
<revision>
<id>801336188</id>
<parentid>796284626</parentid>
<timestamp>2017-09-19T02:15:41Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>update /doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2647">{{Documentation subpage}}
&lt;!-- EDIT TEMPLATE DOCUMENTATION AFTER THIS LINE --&gt;
{{Improve documentation|date=October 2014}}
{{COinS safe|n}}
{{high-risk| 1695000+ }}
{{Template shortcuts |&amp;nbsp|nbs|nbsp|nbsp;|space|spcs}}
{{stack|{{Lua|Module:String}}}}&lt;!--wider box than {{Template shortcut}}--&gt;
A template to produce one or more [[non-breaking space]]s (&lt;code&gt;&amp;amp;nbsp;&lt;/code&gt; character entities).
== Usage ==
=== Syntax ===
{{bigger|&lt;code&gt;&lt;nowiki&gt;{{spaces|&lt;/nowiki&gt;''N''{{!}}''type''}}}}&lt;/code&gt; produces ''N'' consecutive non-breaking spaces (where ''N'' is a [[Integer|whole number]] larger than zero) of the type specified by the second parameter (which are ordered by decreasing space width): &lt;code&gt;em&lt;/code&gt;, &lt;code&gt;fig&lt;/code&gt;, &lt;code&gt;en&lt;/code&gt;, &lt;code&gt;thin&lt;/code&gt;, &lt;code&gt;hair&lt;/code&gt;. If type is not specified, ''N'' non-breaking spaces (&lt;source inline lang=xml&gt;&amp;nbsp;&lt;/source&gt;) are produced. A non-breaking space has the same width as a standard space, whose width is between the width of &lt;code&gt;en&lt;/code&gt; and &lt;code&gt;thin&lt;/code&gt;.
{{bigger|&lt;code&gt;&lt;nowiki&gt;{{space|&lt;/nowiki&gt;''type''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;}} produces a single non-breaking space of the type indicated.
=== Controlling line-breaking in infoboxes ===
This template, usually as its alias {{tlx|nbsp}}, may be used with {{tlx|wbr}} and {{tlx|nowrap}} to control line-breaking in bulletless lists in infoboxes, to prevent wrapped long entries from being confused with multiple entries. See [[Template:Wbr/doc#Controlling line-breaking in infoboxes]] for details.
== Template data ==
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;Inserts one or more non-breaking spaces&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Quantity&quot;,
&quot;description&quot;: &quot;How many non-breaking spaces to insert&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;default&quot;: &quot;1&quot;
}
}
}
&lt;/templatedata&gt;
== See also ==
* {{tl|pad}} to add inline spacing in units of px, em or ex
* {{tl|0}} to add invisible characters
* {{tlg|nowrap|item|italic=on}} to stop the linewrapping of any part of {{var|item}}
* {{tl|nb5}} to insert five non-breaking spaces
* {{tl|indent}} indents by a specified number of spaces (with leading newline)
* {{tl|in5}} indents by five or a specified number of spaces (with no leading newline)
* {{tl|block indent}}, to indent an entire block of content, similar to a [[Template:Quote|block quotation]] (uses {{tag|div|o}} and CSS margins)
* {{tl|sp}}, to add regular, breaking space
{{Inline spacing templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
[[Category:Inline spacing templates]]
[[Category:Character templates]]
}}&lt;/includeonly&gt;</text>
<sha1>99zih6v08uias7gj3a8mpg03bcykbmm</sha1>
</revision>
</page>
<page>
<title>Template:Template shortcuts</title>
<ns>10</ns>
<id>39967990</id>
<redirect title="Template:Template shortcut" />
<revision>
<id>737242066</id>
<parentid>735989818</parentid>
<timestamp>2016-09-01T15:24:45Z</timestamp>
<contributor>
<username>R'n'B</username>
<id>2300502</id>
</contributor>
<minor/>
<comment>Reverted edits by [[Special:Contribs/Sagar1031983|Sagar1031983]] ([[User talk:Sagar1031983|talk]]) to last version by Wbm1058</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="50">#REDIRECT [[Template:Template shortcut]]
{{R an}}</text>
<sha1>2sv491pmf88ls95q72261vqsucjq014</sha1>
</revision>
</page>
<page>
<title>Template:R from merge</title>
<ns>10</ns>
<id>4503589</id>
<revision>
<id>739150534</id>
<parentid>736191096</parentid>
<timestamp>2016-09-13T02:04:39Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>boldface type</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="868">&lt;noinclude&gt;{{This is a redirect/rcat}}
&lt;/noinclude&gt;{{Redirect template
|name=From a merge
|from=a page that was merged into another page
|info=This redirect was kept in order to preserve this page's &lt;span class=&quot;editlink plainlinks&quot;&gt;[{{fullurl:{{FULLPAGENAMEE}}|action=history}} '''edit history''']&lt;/span&gt; after its content was merged into {{#if:{{{1|}}}|'''[[{{{1}}}]]'''|the target page's content}}. Please ''do not'' remove the tag that generates this text (unless the need to recreate content on this page has been demonstrated) nor delete this page.
** For redirects with substantive [[Help:page histories|page histories]] that ''did not result from page merges'' use {{tl|R with history}} ''instead''.
|all category=Redirects from merges
}}&lt;noinclude&gt;
&lt;!-- Place categories on /doc subpage; interwikis go to Wikidata. --&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>1ginff0zgj33zj5t68ek3atu0yze2lw</sha1>
</revision>
</page>
<page>
<title>Template:Rcat shell</title>
<ns>10</ns>
<id>51109080</id>
<redirect title="Template:Redirect category shell" />
<revision>
<id>769144560</id>
<parentid>758727587</parentid>
<timestamp>2017-03-07T20:43:44Z</timestamp>
<contributor>
<username>Train2104</username>
<id>10341578</id>
</contributor>
<comment>per editreq</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="130">#REDIRECT [[Template:Redirect category shell]]
{{Redirect category shell|{{r to redirect template}}{{r from template shortcut}}}}</text>
<sha1>rr6oj1sbu8ysj42xdb3d40yxnozjxrm</sha1>
</revision>
</page>
<page>
<title>Template:Lipsum</title>
<ns>10</ns>
<id>877865</id>
<redirect title="Template:Lorem ipsum" />
<revision>
<id>400131065</id>
<parentid>43938340</parentid>
<timestamp>2010-12-02T14:57:53Z</timestamp>
<contributor>
<username>Mhiji</username>
<id>13262827</id>
</contributor>
<comment>fix redirect</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="34">#REDIRECT [[Template:Lorem ipsum]]</text>
<sha1>i3p2ixnjoni13xxp783suzmnz36ikip</sha1>
</revision>
</page>
<page>
<title>Template:Portal</title>
<ns>10</ns>
<id>1780010</id>
<revision>
<id>583050805</id>
<parentid>583049721</parentid>
<timestamp>2013-11-24T05:37:16Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Portal: [[WP:High-risk templates|Highly visible template]]: allow template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="168">&lt;includeonly&gt;{{#invoke:Portal|portal}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata --&gt;
&lt;/noinclude&gt;</text>
<sha1>eu0a2ons0y70cfblniy3kcxuib58bvt</sha1>
</revision>
</page>
<page>
<title>Template:Stack/doc</title>
<ns>10</ns>
<id>30999902</id>
<revision>
<id>649910208</id>
<parentid>642644413</parentid>
<timestamp>2015-03-04T23:22:22Z</timestamp>
<contributor>
<username>Frietjes</username>
<id>13791031</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="146">{{Documentation subpage}}
{{Stack documentation}}
&lt;includeonly&gt;
[[Category:Graphics templates]]
[[Category:Positioning templates]]
&lt;/includeonly&gt;</text>
<sha1>lkwxb60dta8ltv20vh4t9wmfyhwskby</sha1>
</revision>
</page>
<page>
<title>Template:Stack begin</title>
<ns>10</ns>
<id>30999864</id>
<revision>
<id>791456060</id>
<parentid>729132696</parentid>
<timestamp>2017-07-20T11:20:46Z</timestamp>
<contributor>
<username>TheDJ</username>
<id>244887</id>
</contributor>
<comment>add classes on this version of stack as well</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="339">&lt;includeonly&gt;&lt;div class=&quot;mw-stack mobile-float-reset&quot; style=&quot;box-sizing: border-box; overflow: hidden; {{{style|float:{{{float|right}}}; {{#switch:{{{clear|}}} | true = clear:{{{float|right}}}; | left|right|both = clear:{{{clear|}}}; | #default= }}}}} margin:{{{cellspacing|1}}}px;&quot;&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>5v2pvqkehtexw5oyidfyei9q99u1o8c</sha1>
</revision>
</page>
<page>
<title>Template:Stack documentation</title>
<ns>10</ns>
<id>23191220</id>
<revision>
<id>778916454</id>
<parentid>778913495</parentid>
<timestamp>2017-05-05T23:33:09Z</timestamp>
<contributor>
<username>Mr. Guye</username>
<id>16852310</id>
</contributor>
<comment>/* Optional parameters */ Why are the methods used to display [[inequality sign]]s different? Wikipedia hates mixed markup methods. Why is one method an [[HTML entity]] and the other the keyboard symbol? Making them both into HTML entities.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="7754">&lt;noinclude&gt;
{{ombox |text=This template serves as the shared documentation for {{tl|Stack}}, {{tl|Stack begin}}, and {{tl|Stack end}}.}}
&lt;/noinclude&gt;
This template can be used to stack images and other floating content such as infobox templates without causing problems with spacing and floating. Enter a string of images/templates as the first parameter to have them stack without generating floating errors or spacing errors. You can stack many objects from the top of a section and not force further subsections to space out.
{{TOClimit|3}}
== Usage ==
At its simplest:
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{stack|&lt;objects&gt;}}
&lt;/pre&gt;
Alternatively, using {{tld|stack begin}} and {{tld|stack end}}:
&lt;pre style=&quot;overflow:auto;&quot;&gt;
{{stack begin}}
&lt;objects&gt;
{{stack end}}
&lt;/pre&gt;
The &lt;code&gt;&lt;object&gt;&lt;/code&gt; may simply be a string of wikicode for many images/templates.
===Optional parameters===
:&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;stack| &lt;objects&gt; | float=left/'''right''' | clear=true/'''false'''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
or
:&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;stack begin | float=left/'''right''' | clear=true/'''false'''&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
where
:*&lt;code&gt;float=&lt;/code&gt; ''left'' or ''right'' (default is '''right''')
:*: This option can be used to float the stack to the left or right of the page
:*&lt;code&gt;clear=&lt;/code&gt; ''true'' or ''false'' (default is '''false''')
:*: This option can be used to force the stack to the far left or right (e.g., near an infobox).
You can also explicitly list multiple arguments:
:&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;stack| float=left/'''right''' | clear=true/'''false'''
:|1=&lt;object(s)&gt;
:|2=&lt;object(s)&gt;
:|3=&lt;object(s)&gt;, etc. up to 9 parameters in the current version
:&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
* This multiple argument version does include extra vertical whitespace between each (set of) &amp;lt;object(s)&amp;gt;.
== Examples ==
&lt;!--
--&gt;To illustrate the utility of the stack templates, consider the following situation. We would like to have two right floating images at the top of the first section of our article (here, the ''Lipsum'' section), and one left floating image at the top of the second section (here, the ''Lorem'' section). To achieve this layout, without using a stack template, we could try the following code:&lt;!--
--&gt;&lt;source lang=&quot;moin&quot;&gt;
=====''Lipsum''=====
[[File:Test.png|thumb|right|Example 1a]]
[[File:Test.png|thumb|right|Example 1b]]
... text ...
=====''Lorem''=====
[[File:Test.png|thumb|left|Example 1c]]
... text ...
=====''Ipsum''=====
... text ...
&lt;/source&gt;&lt;!--
--&gt;The result of this is shown in the [[#Without stack|without stack]] section below. Notice how the left floating image (Example 1c) is prevented from floating above the last right floating image (Example 1b). You may need to resize the width of your browser to fully appreciate the issue. To fix this problem, we can stack the two right floating images together, using the following code:&lt;!--
--&gt;&lt;source lang=&quot;moin&quot;&gt;
=====''Lipsum''=====
{{stack |[[File:Test.png|thumb|right|Example 2a]] [[File:Test.png|thumb|right|Example 2b]]}}
... text ...
=====''Lorem''=====
[[File:Test.png|thumb|left|Example 2c]]
... text ...
=====''Ipsum''=====
... text ...
&lt;/source&gt;&lt;!--
--&gt;The result of this is show in the [[#With stack|with stack]] section below. Notice how by adding this stack template, the left floating image (Example 2c) can now float higher and is not blocked from floating higher than the top of the last right floating image (Example 2b).
{{clear}}
{{anchor|Without stack}}
====Without {{tlf|stack}}====
=====''Lipsum''=====
[[File:Test.png|thumb|right|Example 1a]]
[[File:Test.png|thumb|right|Example 1b]]
''{{lipsum}}''
=====''Lorem''=====
[[File:Test.png|thumb|left|Example 1c]]
''{{lipsum}}''
=====''Ipsum''=====
''{{lipsum}}''
''{{lipsum}}''
{{clear}}
{{anchor|With stack}}
====With {{tlf|stack}}====
----
=====''Lipsum''=====
{{stack|[[File:Test.png|thumb|right|Example 2a]] [[File:Test.png|thumb|right|Example 2b]]}}
''{{lipsum}}''
=====''Lorem''=====
[[File:Test.png|thumb|left |Example 2c]]
''{{lipsum}}''
=====''Ipsum''=====
''{{lipsum}}''
''{{lipsum}}''
{{clear}}
====With {{tlf|stack begin}} and {{tlf|stack end}}====
=====''Lipsum'' with second table wider=====
{{stack begin}}
{| class=&quot;wikitable&quot;
! Sample table 1
|-
| Example 1a
|-
| Example 1b
|-
|}
{| class=&quot;wikitable&quot;
! Sample wider table 2
|-
|Example 2a
|-
|Example 2b
|-
|}
{{stack end}}
''{{lipsum}}''
=====''Lorem''=====
{| style=&quot;background:whitesmoke;&quot;
! Sample table 3
|-
| Example 3a
|-
|}
''{{lipsum}}''
=====''Ipsum''=====
''{{lipsum}}''
''{{lipsum}}''
{{clear}}
=====''Lipsum'' with first table wider=====
{{stack begin}}
{| class=&quot;wikitable&quot;
! Sample wider table 1
|-
| Example 1a
|-
| Example 1b
|-
|}
{| class=&quot;wikitable&quot;
! Sample table 2
|-
| Example 2a
|-
| Example 2b
|-
|}
{{stack end}}
''{{lipsum}}''
=====''Lorem''=====
{| style=&quot;background:whitesmoke;&quot;
! Sample table 3
|-
| Example 3a
|-
|}
''{{lipsum}}''
=====''Ipsum''=====
''{{lipsum}}''
''{{lipsum}}''
{{clear}}
===More examples===
{{tlf|Stack}} can also be used to float one or more images across a page.
{{stack |[[File:Test.png|80px]]}}
{{stack |[[File:Test.png|120px]]}}
&lt;pre style=&quot;width:25.0em;overflow:auto;&quot;&gt;
{{stack|[[File:Test.png|80px]]}}
{{stack|[[File:Test.png|120px]]}}
&lt;/pre&gt;
It might take some experience to learn how the box area floats, in combination with various images or [[WP:Wikitables|wikitables]] on a page. {{tlf|Stack}}'s operation is very quick, as it uses an [[HTML]] &amp;lt;table&gt; to achieve its effects.
===Floating portal boxes===
{{tlf|Stack}} can be used to float a portal box beside an infobox (or other right-aligned item) when other methods might not work as anticipated.
{| class=&quot;infobox&quot;
| '''Infobox'''
&lt;br/&gt;line 1 &lt;br /&gt;line 2 &lt;br /&gt;line 3 &lt;br /&gt;line 4 &lt;br /&gt;line 5 &lt;br /&gt;line 6 &lt;br /&gt;line 7 &lt;br /&gt;line 8 &lt;br /&gt;line 9
|}
[[File:Mona Lisa, by Leonardo da Vinci, from C2RMF retouched.jpg|thumb|right|60px|Test image]]
{| class=&quot;wikitable&quot;
|style=&quot;width:33.0em&lt;!--(was 420px)--&gt;;&quot;|
This is a wikitable serving as a typical left-aligned table. The overlap on left-aligned tables had been a frequent problem when other boxes nearby were set to &quot;float:right&quot;. So this is a test of how well a floating portal-box would avoid overlapping onto a left-side table.
|}
{{stack |{{portal|Animals}}{{portal|Cats}}}}
The example here uses {{tld|stack}} to float two portal boxes (Animals, Cats) as follows:
&lt;pre&gt;
{{stack |{{portal|Animals}}{{portal|Cats}} }}
&lt;/pre&gt;
The two portal-boxes are stacked and floated together by both being listed as {{tld|stack}}'s (first) parameter. Because the infobox and image were also stacked together, {{tld|stack}} moved the two portal-boxes alongside the infobox despite their being specified after the image.
Normally, a portal-box would be stuck below the Mona Lisa image, causing this entire text section to format further below, and causing a large text-gap of empty whitespace to appear near the infobox. There is no limit to the number of portalboxes (or Commonscat boxes) which can be listed within a {{tld|stack}} call, such as in a stub or an article with many stacked images near the bottom. Using {{tld|stack}} is extremely efficient, due to being a short template which uses builtin tag &amp;lt;table&gt; to float the boxes.
== Stack template family ==
* {{tl|Stack}}
* {{tl|Stack begin}}
* {{tl|Stack end}}
== See also ==
* {{tl|Double image}}, which places images side by side horizontally.
* {{tl|Multiple image}}, providing both vertical and horizontal layouts for multiple images.
* {{tl|Superimpose}}, which places one image over another.
* {{tl|Superimpose2}}, which can place up to fifty image layers over one another.
&lt;noinclude&gt;
[[Category:Template documentation]]
&lt;/noinclude&gt;</text>
<sha1>17c4qmcna5sa8tgt03cddfus26ahj4m</sha1>
</revision>
</page>
<page>
<title>Template:Stack end</title>
<ns>10</ns>
<id>30999870</id>
<revision>
<id>729132704</id>
<parentid>488707942</parentid>
<timestamp>2016-07-10T03:44:08Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<comment>tableless layout</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="75">&lt;includeonly&gt;&lt;/div&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>4svdptpks693oo75dst5prxxduoz5on</sha1>
</revision>
</page>
<page>
<title>Module:Portal</title>
<ns>828</ns>
<id>38965350</id>
<revision>
<id>752302732</id>
<parentid>729840072</parentid>
<timestamp>2016-11-30T14:58:40Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>quick hack to prevent p._image from returning filenames with things like &quot;|border&quot; in them</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="10273">--[==[ This module is a Lua implementation of the old {{Portal}} template. As of August 2013 it is used on nearly 5,000,000 articles.
-- Please take care when updating it! It outputs two functions: p.portal, which generates a list of portals, and p.image, which
-- produces the image name for an individual portal.
-- The portal image data is kept in submodules of [[Module:Portal/images]], listed below:
-- [[Module:Portal/images/a]] - for portal names beginning with &quot;A&quot;.
-- [[Module:Portal/images/b]] - for portal names beginning with &quot;B&quot;.
-- [[Module:Portal/images/c]] - for portal names beginning with &quot;C&quot;.
-- [[Module:Portal/images/d]] - for portal names beginning with &quot;D&quot;.
-- [[Module:Portal/images/e]] - for portal names beginning with &quot;E&quot;.
-- [[Module:Portal/images/f]] - for portal names beginning with &quot;F&quot;.
-- [[Module:Portal/images/g]] - for portal names beginning with &quot;G&quot;.
-- [[Module:Portal/images/h]] - for portal names beginning with &quot;H&quot;.
-- [[Module:Portal/images/i]] - for portal names beginning with &quot;I&quot;.
-- [[Module:Portal/images/j]] - for portal names beginning with &quot;J&quot;.
-- [[Module:Portal/images/k]] - for portal names beginning with &quot;K&quot;.
-- [[Module:Portal/images/l]] - for portal names beginning with &quot;L&quot;.
-- [[Module:Portal/images/m]] - for portal names beginning with &quot;M&quot;.
-- [[Module:Portal/images/n]] - for portal names beginning with &quot;N&quot;.
-- [[Module:Portal/images/o]] - for portal names beginning with &quot;O&quot;.
-- [[Module:Portal/images/p]] - for portal names beginning with &quot;P&quot;.
-- [[Module:Portal/images/q]] - for portal names beginning with &quot;Q&quot;.
-- [[Module:Portal/images/r]] - for portal names beginning with &quot;R&quot;.
-- [[Module:Portal/images/s]] - for portal names beginning with &quot;S&quot;.
-- [[Module:Portal/images/t]] - for portal names beginning with &quot;T&quot;.
-- [[Module:Portal/images/u]] - for portal names beginning with &quot;U&quot;.
-- [[Module:Portal/images/v]] - for portal names beginning with &quot;V&quot;.
-- [[Module:Portal/images/w]] - for portal names beginning with &quot;W&quot;.
-- [[Module:Portal/images/x]] - for portal names beginning with &quot;X&quot;.
-- [[Module:Portal/images/y]] - for portal names beginning with &quot;Y&quot;.
-- [[Module:Portal/images/z]] - for portal names beginning with &quot;Z&quot;.
-- [[Module:Portal/images/other]] - for portal names beginning with any other letters. This includes numbers,
-- letters with diacritics, and letters in non-Latin alphabets.
-- [[Module:Portal/images/aliases]] - for adding aliases for existing portal names. Use this page for variations
-- in spelling and diacritics, etc., no matter what letter the portal begins with.
--
-- The images data pages are separated by the first letter to reduce server load when images are added, changed, or removed.
-- Previously all the images were on one data page at [[Module:Portal/images]], but this had the disadvantage that all
-- 5,000,000 pages using this module needed to be refreshed every time an image was added or removed.
]==]
local p = {}
local function matchImagePage(s)
-- Finds the appropriate image subpage given a lower-case
-- portal name plus the first letter of that portal name.
if type(s) ~= 'string' or #s &lt; 1 then return end
local firstLetter = mw.ustring.sub(s, 1, 1)
local imagePage
if mw.ustring.find(firstLetter, '^[a-z]') then
imagePage = 'Module:Portal/images/' .. firstLetter
else
imagePage = 'Module:Portal/images/other'
end
return mw.loadData(imagePage)[s]
end
local function getAlias(s)
-- Gets an alias from the image alias data page.
local aliasData = mw.loadData('Module:Portal/images/aliases')
for portal, aliases in pairs(aliasData) do
for _, alias in ipairs(aliases) do
if alias == s then
return portal
end
end
end
end
local function getImageName(s)
-- Gets the image name for a given string.
local default = 'Portal-puzzle.svg|link=|alt='
if type(s) ~= 'string' or #s &lt; 1 then
return default
end
s = mw.ustring.lower(s)
return matchImagePage(s) or matchImagePage(getAlias(s)) or default
end
function p._portal(portals, args)
-- This function builds the portal box used by the {{portal}} template.
local root = mw.html.create('div')
:attr('role', 'navigation')
:attr('aria-label', 'Portals')
:addClass('noprint portal plainlist')
:addClass(args.left and 'tleft' or 'tright')
:css('margin', args.margin or (args.left == 'yes' and '0.5em 1em 0.5em 0') or '0.5em 0 0.5em 1em')
:css('border', 'solid #aaa 1px')
:newline()
-- If no portals have been specified, display an error and add the page to a tracking category.
if not portals[1] then
root:wikitext('&lt;strong class=&quot;error&quot;&gt;No portals specified: please specify at least one portal&lt;/strong&gt;[[Category:Portal templates without a parameter]]')
return tostring(root)
end
-- Start the list. This corresponds to the start of the wikitext table in the old [[Template:Portal]].
local listroot = root:tag('ul')
:css('display', 'table')
:css('box-sizing', 'border-box')
:css('padding', '0.1em')
:css('max-width', '175px')
:css('width', type(args.boxsize) == 'string' and (args.boxsize .. 'px') or nil)
:css('background', '#f9f9f9')
:css('font-size', '85%')
:css('line-height', '110%')
:css('font-style', 'italic')
:css('font-weight', 'bold')
-- Display the portals specified in the positional arguments.
for _, portal in ipairs(portals) do
local image = getImageName(portal)
-- Generate the html for the image and the portal name.
listroot
:newline()
:tag('li')
:css('display', 'table-row')
:tag('span')
:css('display', 'table-cell')
:css('padding', '0.2em')
:css('vertical-align', 'middle')
:css('text-align', 'center')
:wikitext(string.format('[[File:%s|32x28px|class=noviewer]]', image))
:done()
:tag('span')
:css('display', 'table-cell')
:css('padding', '0.2em 0.2em 0.2em 0.3em')
:css('vertical-align', 'middle')
:wikitext(string.format('[[Portal:%s|%s%sportal]]', portal, portal, args['break'] and '&lt;br /&gt;' or ' '))
end
return tostring(root)
end
function p._image(portals)
-- Wrapper function to allow getImageName() to be accessed through #invoke.
local name = getImageName(portals[1])
return name:match('^(.-)|') or name -- FIXME: use a more elegant way to separate borders etc. from the image name
end
local function getAllImageTables()
-- Returns an array containing all image subpages (minus aliases) as loaded by mw.loadData.
local images = {}
for i, subpage in ipairs{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'other'} do
images[i] = mw.loadData('Module:Portal/images/' .. subpage)
end
return images
end
function p._displayAll(portals, args)
-- This function displays all portals that have portal images. This function is for maintenance purposes and should not be used in
-- articles, for two reasons: 1) there are over 1500 portals with portal images, and 2) the module doesn't record how the portal
-- names are capitalized, so the portal links may be broken.
local lang = mw.language.getContentLanguage()
local count = 1
for _, imageTable in ipairs(getAllImageTables()) do
for portal in pairs(imageTable) do
portals[count] = lang:ucfirst(portal)
count = count + 1
end
end
return p._portal(portals, args)
end
function p._imageDupes()
-- This function searches the image subpages to find duplicate images. If duplicate images exist, it is not necessarily a bad thing,
-- as different portals might just happen to choose the same image. However, this function is helpful in identifying images that
-- should be moved to a portal alias for ease of maintenance.
local exists, dupes = {}, {}
for _, imageTable in ipairs(getAllImageTables()) do
for portal, image in pairs(imageTable) do
if not exists[image] then
exists[image] = portal
else
table.insert(dupes, string.format('The image &quot;[[:File:%s|%s]]&quot; is used for both portals &quot;%s&quot; and &quot;%s&quot;.', image, image, exists[image], portal))
end
end
end
if #dupes &lt; 1 then
return 'No duplicate images found.'
else
return 'The following duplicate images were found:\n* ' .. table.concat(dupes, '\n* ')
end
end
local function processPortalArgs(args)
-- This function processes a table of arguments and returns two tables: an array of portal names for processing by ipairs, and a table of
-- the named arguments that specify style options, etc. We need to use ipairs because we want to list all the portals in the order
-- they were passed to the template, but we also want to be able to deal with positional arguments passed explicitly, for example
-- {{portal|2=Politics}}. The behaviour of ipairs is undefined if nil values are present, so we need to make sure they are all removed.
args = type(args) == 'table' and args or {}
local portals = {}
local namedArgs = {}
for k, v in pairs(args) do
if type(k) == 'number' and type(v) == 'string' then -- Make sure we have no non-string portal names.
table.insert(portals, k)
elseif type(k) ~= 'number' then
namedArgs[k] = v
end
end
table.sort(portals)
for i, v in ipairs(portals) do
portals[i] = args[v]
end
return portals, namedArgs
end
local function makeWrapper(funcName)
-- Processes external arguments and sends them to the other functions.
return function (frame)
-- If called via #invoke, use the args passed into the invoking
-- template, or the args passed to #invoke if any exist. Otherwise
-- assume args are being passed directly in from the debug console
-- or from another Lua module.
local origArgs
if type(frame.getParent) == 'function' then
origArgs = frame:getParent().args
for k, v in pairs(frame.args) do
origArgs = frame.args
break
end
else
origArgs = frame
end
-- Trim whitespace and remove blank arguments.
local args = {}
for k, v in pairs(origArgs) do
if type(v) == 'string' then
v = mw.text.trim(v)
end
if v ~= '' then
args[k] = v
end
end
return p[funcName](processPortalArgs(args)) -- passes two tables to func: an array of portal names, and a table of named arguments.
end
end
for _, funcName in ipairs{'portal', 'image', 'imageDupes', 'displayAll'} do
p[funcName] = makeWrapper('_' .. funcName)
end
return p</text>
<sha1>7np96ej58kiycf2l3mbp0omxk8k6db5</sha1>
</revision>
</page>
<page>
<title>Module:Portal/images/a</title>
<ns>828</ns>
<id>40416057</id>
<revision>
<id>822780564</id>
<parentid>806157048</parentid>
<timestamp>2018-01-28T12:56:04Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<comment>replace deleted image for ancient japan</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="11588">--[==[ This is the &quot;A&quot; list of portal image names. It contains a list of portal images for use with [[Module:Portal]]
-- for portal names that start with the letter &quot;A&quot;. For aliases to existing portal names, and for portal names that
-- start with other letters, please use the appropriate page from the following list:
-- [[Module:Portal/images/b]] - for portal names beginning with &quot;B&quot;.
-- [[Module:Portal/images/c]] - for portal names beginning with &quot;C&quot;.
-- [[Module:Portal/images/d]] - for portal names beginning with &quot;D&quot;.
-- [[Module:Portal/images/e]] - for portal names beginning with &quot;E&quot;.
-- [[Module:Portal/images/f]] - for portal names beginning with &quot;F&quot;.
-- [[Module:Portal/images/g]] - for portal names beginning with &quot;G&quot;.
-- [[Module:Portal/images/h]] - for portal names beginning with &quot;H&quot;.
-- [[Module:Portal/images/i]] - for portal names beginning with &quot;I&quot;.
-- [[Module:Portal/images/j]] - for portal names beginning with &quot;J&quot;.
-- [[Module:Portal/images/k]] - for portal names beginning with &quot;K&quot;.
-- [[Module:Portal/images/l]] - for portal names beginning with &quot;L&quot;.
-- [[Module:Portal/images/m]] - for portal names beginning with &quot;M&quot;.
-- [[Module:Portal/images/n]] - for portal names beginning with &quot;N&quot;.
-- [[Module:Portal/images/o]] - for portal names beginning with &quot;O&quot;.
-- [[Module:Portal/images/p]] - for portal names beginning with &quot;P&quot;.
-- [[Module:Portal/images/q]] - for portal names beginning with &quot;Q&quot;.
-- [[Module:Portal/images/r]] - for portal names beginning with &quot;R&quot;.
-- [[Module:Portal/images/s]] - for portal names beginning with &quot;S&quot;.
-- [[Module:Portal/images/t]] - for portal names beginning with &quot;T&quot;.
-- [[Module:Portal/images/u]] - for portal names beginning with &quot;U&quot;.
-- [[Module:Portal/images/v]] - for portal names beginning with &quot;V&quot;.
-- [[Module:Portal/images/w]] - for portal names beginning with &quot;W&quot;.
-- [[Module:Portal/images/x]] - for portal names beginning with &quot;X&quot;.
-- [[Module:Portal/images/y]] - for portal names beginning with &quot;Y&quot;.
-- [[Module:Portal/images/z]] - for portal names beginning with &quot;Z&quot;.
-- [[Module:Portal/images/other]] - for portal names beginning with any other letters. This includes numbers,
-- letters with diacritics, and letters in non-Latin alphabets.
-- [[Module:Portal/images/aliases]] - for adding aliases for existing portal names. Use this page for variations
-- in spelling and diacritics, etc., no matter what letter the portal begins with.
-- When adding entries, please use alphabetical order. The format of the images table entries is as follows:
-- [&quot;portal name&quot;] = &quot;image.svg&quot;,
-- The portal name should be the name of your portal, in lower case. For example, the portal name for
-- &quot;Portal:United Kingdom&quot; would be &quot;united kingdom&quot;. The image name should be capitalised normally, and the &quot;File:&quot;
-- namespace prefix should be
-- omitted.
]==]
return {
[&quot;a nightmare on elm street&quot;] = &quot;Nightmare Portal.gif|alt=icon&quot;,
[&quot;a. r. rahman&quot;] = &quot;A R Rahman NH7 BLR 2015 1.jpg|alt=icon&quot;,
[&quot;abkhazia&quot;] = &quot;Flag of Abkhazia.svg|border|link=|alt=flag&quot;,
[&quot;aboriginal peoples in canada&quot;] = &quot;Aboriginal War Veterans monument (close).JPG|alt=icon&quot;,
[&quot;abu dhabi&quot;] = &quot;Flag of Abu Dhabi.svg|border|link=|alt=flag&quot;,
[&quot;actors and filmmakers&quot;] = &quot;Charlie Chaplin 1912.jpg|link=|alt=photo&quot;,
[&quot;ac/dc&quot;] = &quot;Acdc logo band.svg|link=|alt=&quot;,
[&quot;academy award&quot;] = &quot;Video-x-generic.svg|link=|alt=&quot;,
[&quot;acadia&quot;] = &quot;Flag of Acadia.svg|border|link=|alt=flag&quot;,
[&quot;acc&quot;] = &quot;ACC Map crop 2014.png|alt=icon&quot;,
[&quot;adelaide&quot;] = &quot;Escudo de Adelaida.png|alt=icon&quot;,
[&quot;aerosmith&quot;] = &quot;Joe Perry 1.jpg|alt=icon&quot;,
[&quot;aerospace biography&quot;] = &quot;Armstrong-Spencom01.jpg|link=|alt=photo&quot;,
[&quot;aesthetics&quot;] = &quot;Morning Glory Flower square.jpg|alt=icon&quot;,
[&quot;afghanistan&quot;] = &quot;Flag of Afghanistan.svg|border|link=|alt=flag&quot;,
[&quot;africa&quot;] = &quot;Africa-locator.jpg|border|link=|alt=map&quot;,
[&quot;african american&quot;] = &quot;AmericaAfrica.svg|alt=icon&quot;,
[&quot;african diaspora&quot;] = &quot;Moromi.png|link=|alt=map&quot;,
[&quot;agriculture and agronomy&quot;] = &quot;Veranotrigo.jpg|alt=icon&quot;,
[&quot;agropedia&quot;] = &quot;Farmer plowing in Fahrenwalde, Mecklenburg-Vorpommern, Germany.jpg|alt=icon&quot;,
[&quot;ahmadiyya&quot;] = &quot;White Minaret Symbol.png|alt=icon&quot;,
[&quot;ahmedabad&quot;] = &quot;Mosque of Sidi Sayed Jaali.JPG|alt=icon&quot;,
[&quot;ai&quot;] = &quot;ArtificialFictionBrain.png|alt=icon&quot;,
[&quot;ajman&quot;] = &quot;Flag of Ajman.svg|border|link=|alt=flag&quot;,
[&quot;akb48&quot;] = &quot;AKB48 logo2.svg|link=|alt=&quot;,
[&quot;alabama&quot;] = &quot;Flag of Alabama.svg|border|link=|alt=flag&quot;,
[&quot;alaska&quot;] = &quot;Flag of Alaska.svg|border|link=|alt=flag&quot;,
[&quot;albania&quot;] = &quot;Flag of Albania.svg|border|link=|alt=flag&quot;,
[&quot;albemarle county&quot;] = &quot;Monticello 2010-10-29.jpg|link=|alt=photo&quot;,
[&quot;alberta&quot;] = &quot;Flag of Alberta.svg|border|link=|alt=flag&quot;,
[&quot;a-league&quot;] = &quot;Soccer ball.svg|alt=icon&quot;,
[&quot;algebra&quot;] = &quot;Arithmetic symbols.svg|link=|alt=&quot;,
[&quot;algeria&quot;] = &quot;Flag of Algeria.svg|border|link=|alt=flag&quot;,
[&quot;alphabet&quot;] = &quot;Abc.xyz Favicon.png|link=|alt=&quot;,
[&quot;alternative medicine&quot;] = &quot;Rod of Asclepius2.svg|alt=icon&quot;,
[&quot;alternative rock&quot;] = &quot;Guitar 1.svg|link=|alt=icon&quot;,
[&quot;american animation&quot;] = &quot;Animation disc US.svg|link=|alt=icon&quot;,
[&quot;american cinema&quot;] = &quot;Cinema of the United States.svg|link=|alt=icon&quot;,
[&quot;american civil war&quot;] = &quot;Acw bs 7a.png|border|link=|alt=&quot;,
[&quot;american football&quot;] = &quot;American football.svg|link=|alt=icon&quot;,
[&quot;american football league&quot;] = &quot;AFL Trophy alt.png|link=|alt=trophy&quot;,
[&quot;american music&quot;] = &quot;Musical Notes USA.svg|link=|alt=icon&quot;,
[&quot;american old west&quot;] = &quot;Frederic Remington Dismounted Moving Led Horses.jpg|link=|alt=painting&quot;,
[&quot;american open wheel racing&quot;] = &quot;JuanMontoya2015Indy500.JPG|link=|alt=photo&quot;,
[&quot;american revolutionary war&quot;] = &quot;Washington Crossing the Delaware by Emanuel Leutze, MMA-NYC, 1851.jpg|border|link=|alt=&quot;,
[&quot;american samoa&quot;] = &quot;Flag of American Samoa.svg|border|link=|alt=flag&quot;,
[&quot;american television&quot;] = &quot;USA flag on television.svg|link=|alt=icon&quot;,
[&quot;americas&quot;] = &quot;Americas (orthographic projection).svg|link=|alt=map&quot;,
[&quot;amiga&quot;] = &quot;Boingball.png|link=|alt=&quot;,
[&quot;amphibians and reptiles&quot;] = &quot;Lizardicon.svg|link=|alt=&quot;,
[&quot;amsterdam&quot;] = &quot;Flag of Amsterdam.svg|border|link=|alt=flag&quot;,
[&quot;amusement parks&quot;] = &quot;Roller Coaster Icon.svg|link=|alt=&quot;,
[&quot;anabaptism&quot;] = &quot;Dirk.willems.rescue.ncs.jpg|link=|alt=&quot;,
[&quot;analysis&quot;] = &quot;Nuvola apps kmplot.svg|alt=icon&quot;,
[&quot;analytical chemistry&quot;] = &quot;Nuvola apps edu science.svg|alt=icon&quot;,
[&quot;anarchism&quot;] = &quot;BlackFlagSymbol.svg|border|link=|alt=flag&quot;,
[&quot;anatomy&quot;] = &quot;Anatomy posture and body mechanics 08.web.jpg|alt=icon&quot;,
[&quot;ancient egypt&quot;] = &quot;Pyramidi aavikolla.png|link=|alt=&quot;,
[&quot;ancient germanic culture&quot;] = &quot;Mjollnir icon.png|link=|alt=&quot;,
[&quot;ancient greece&quot;] = &quot;Parthenon from west.jpg|link=|alt=&quot;,
[&quot;ancient japan&quot;] = &quot;Shiki no Fuji, Ōmuro fukin by Takahashi Shōtei.jpg|link=|alt=&quot;,
[&quot;ancient near east&quot;] = &quot;Babylonlion.JPG|link=|alt=&quot;,
[&quot;ancient rome&quot;] = &quot;SPQRomani.svg|link=|alt=&quot;,
[&quot;andaman and nicobar islands&quot;] = &quot;India Andaman and Nicobar Islands locator map.svg|border|link=|alt=map&quot;,
[&quot;andhra pradesh&quot;] = &quot;Archbridgegodavari.JPG|alt=icon&quot;,
[&quot;andorra&quot;] = &quot;Flag of Andorra.svg|border|link=|alt=flag&quot;,
[&quot;anglicanism&quot;] = &quot;Canterbury cathedral.jpg|link=|alt=&quot;,
[&quot;anglo-saxon england&quot;] = &quot;Peterborough Chronicle cropped.jpg|link=|alt=&quot;,
[&quot;angola&quot;] = &quot;Flag of Angola.svg|border|link=|alt=flag&quot;,
[&quot;anguilla&quot;] = &quot;Flag of Anguilla.svg|border|link=|alt=flag&quot;,
[&quot;animal rights&quot;] = &quot;Paw (Animal Rights symbol).svg|alt=icon&quot;,
[&quot;animals&quot;] = &quot;Caribou from Wagon Trails.jpg|alt=icon&quot;,
[&quot;animation&quot;] = &quot;Animation disc.svg|alt=icon&quot;,
[&quot;animation/canadian animation work group&quot;] = &quot;Animation disc Maple Leaf.svg|alt=icon&quot;,
[&quot;anime and manga&quot;] = &quot;Wikipe-tan face.svg|alt=icon&quot;,
[&quot;antarctica&quot;] = &quot;ContinentAntarctica.svg|alt=icon&quot;,
[&quot;anthropology&quot;] = &quot;Moai Easter Island InvMH-35-61-1.jpg|link=|alt=&quot;,
[&quot;antigua and barbuda&quot;] = &quot;Flag of Antigua and Barbuda.jpg|border|link=|alt=flag&quot;,
[&quot;appalachia&quot;] = &quot;Appalachian region of United States.png|border|link=|alt=map&quot;,
[&quot;apple inc.&quot;] = &quot;Apple logo black.svg|link=|alt=&quot;,
[&quot;applied science&quot;] = &quot;Metallurgy stub icon.svg|link=|alt=icon&quot;,
[&quot;aquarium fish&quot;] = &quot;Pterois antennata-3.jpg|link=|alt=&quot;,
[&quot;arab world&quot;] = &quot;Flag of the Arab League.svg|border|link=|alt=flag&quot;,
[&quot;arabic&quot;] = &quot;Arabic-dad-letter.svg|link=Arabic language|alt=icon&quot;,
[&quot;arab–israeli conflict&quot;] = &quot;Flickr - Israel Defense Forces - IDF Forces in Staging Areas Around Gaza Strip (1).jpg|alt=icon&quot;,
[&quot;archaeology&quot;] = &quot;Stonehenge Closeup.jpg|link=|alt=&quot;,
[&quot;architecture&quot;] = &quot;P parthenon.svg|alt=icon&quot;,
[&quot;arctic&quot;] = &quot;Ibca gebco comp cover.jpg|link=|alt=&quot;,
[&quot;argentina&quot;] = &quot;Flag of Argentina.svg|border|link=|alt=flag&quot;,
[&quot;arizona&quot;] = &quot;Flag of Arizona.svg|border|link=|alt=flag&quot;,
[&quot;arkansas&quot;] = &quot;Flag of Arkansas.svg|border|link=|alt=flag&quot;,
[&quot;armenia&quot;] = &quot;Flag of Armenia.svg|border|link=|alt=flag&quot;,
[&quot;arminianism&quot;] = &quot;Arminius 5 flopped and cropped.png|link=|alt=&quot;,
[&quot;arunachal pradesh&quot;] = &quot;India Arunachal Pradesh locator map.svg|link=|alt=map&quot;,
[&quot;art&quot;] = &quot;Ballerina-icon.jpg|alt=icon&quot;,
[&quot;arthropods&quot;] = &quot;Cercophonius squama.jpg|alt=icon&quot;,
[&quot;artificial intelligence&quot;] = &quot;Animation2.gif|alt=icon&quot;,
[&quot;arts&quot;] = &quot;Nuvola apps package graphics.png|alt=icon&quot;,
[&quot;arts and entertainment&quot;] = &quot;Meryl in 1990.jpg|link=|alt=photo&quot;,
[&quot;aruba&quot;] = &quot;Flag of Aruba.svg|border|link=|alt=flag&quot;,
[&quot;asia&quot;] = &quot;Asia (orthographic projection).svg|alt=icon&quot;,
[&quot;asian americans&quot;] = &quot;1 chinatown san francisco arch gateway.JPG|alt=icon&quot;,
[&quot;asian games&quot;] = &quot;Asian Games logo01.png|link=|alt=&quot;,
[&quot;aspect ratio 1.000&quot;] = &quot;Flag of Switzerland.svg|link=|alt=image&quot;,
[&quot;aspect ratio 1.333&quot;] = &quot;Flag of Gabon.svg|link=|alt=image&quot;,
[&quot;aspect ratio 1.400&quot;] = &quot;Flag of Kosovo.svg|link=|alt=image&quot;,
[&quot;aspect ratio 1.500&quot;] = &quot;Flag of the European Union.svg|link=|alt=image&quot;,
[&quot;aspect ratio 1.667&quot;] = &quot;Flag of Bangladesh.svg|link=|alt=image&quot;,
[&quot;aspect ratio 2.000&quot;] = &quot;Flag of the United Kingdom.svg|link=|alt=image&quot;,
[&quot;assam&quot;] = &quot;Seal of Assam.png|link=|alt=&quot;,
[&quot;association football&quot;] = &quot;Soccer ball.svg|alt=icon&quot;,
[&quot;assyrians&quot;] = &quot;Flag of Assyria.svg|border|link=|alt=flag&quot;,
[&quot;astrobiology&quot;] = &quot;PIA01130 Interior of Europa.jpg|link=|alt=&quot;,
[&quot;astrology&quot;] = &quot;Astrologia-tynkä.jpg|link=|alt=&quot;,
[&quot;astronomy&quot;] = &quot;Crab Nebula.jpg|link=|alt=&quot;,
[&quot;atheism&quot;] = &quot;Atheism template.svg|alt=icon&quot;,
[&quot;athletics&quot;] = &quot;Athletics pictogram.svg|link=|alt=&quot;,
[&quot;atlanta&quot;] = &quot;Atlflag.svg|link=|alt=flag&quot;,
[&quot;atlas&quot;] = &quot;World map green.png|alt=icon&quot;,
[&quot;atmosphere&quot;] = &quot;Cumulus clouds in fair weather.jpeg|link=|alt=icon&quot;,
[&quot;atmospheric sciences&quot;] = &quot;Cumulus clouds in fair weather.jpeg|link=|alt=icon&quot;,
[&quot;austin&quot;] = &quot;Stemma di Austin.png|link=|alt=seal&quot;,
[&quot;australia&quot;] = &quot;Flag of Australia.svg|border|link=|alt=flag&quot;,
[&quot;australian capital territory&quot;] = &quot;Flag of the Australian Capital Territory.svg|border|link=|alt=flag&quot;,
[&quot;australian roads&quot;] = &quot;Australia road sign W5-29.svg|alt=icon&quot;,
[&quot;australian rules football&quot;] = &quot;Sherrin-transparent.png|link=|alt=&quot;,
[&quot;austria&quot;] = &quot;Flag of Austria.svg|border|link=|alt=flag&quot;,
[&quot;austria-hungary&quot;] = &quot;Wappen Österreich-Ungarn 1916 (Klein).png|link=|alt=&quot;,
[&quot;automobiles&quot;] = &quot;Sportcar sergio luiz ara 01.svg|link=|alt=&quot;,
[&quot;aviation&quot;] = &quot;Aviacionavion.png|link=|alt=&quot;,
[&quot;avril lavigne&quot;] = &quot;LetGo.jpg|alt=icon&quot;,
[&quot;ayyavazhi&quot;] = &quot;Ayyavazh logo transperent.png|alt=icon&quot;,
[&quot;azad kashmir&quot;] = &quot;Flag of Azad Kashmir.svg|border|link=|alt=flag&quot;,
[&quot;azerbaijan&quot;] = &quot;Flag of Azerbaijan.svg|border|link=|alt=flag&quot;
}</text>
<sha1>nx732yzxcau7rq1mrmm9r5p2upya6j3</sha1>
</revision>
</page>
<page>
<title>Module:Portal/images/c</title>
<ns>828</ns>
<id>40416122</id>
<revision>
<id>821676785</id>
<parentid>806797430</parentid>
<timestamp>2018-01-21T23:32:26Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>replace PNG with SVG</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="12501">--[==[ This is the &quot;C&quot; list of portal image names. It contains a list of portal images for use with [[Module:Portal]]
-- for portal names that start with the letter &quot;C&quot;. For aliases to existing portal names, and for portal names that
-- start with other letters, please use the appropriate page from the following list:
-- [[Module:Portal/images/a]] - for portal names beginning with &quot;A&quot;.
-- [[Module:Portal/images/b]] - for portal names beginning with &quot;B&quot;.
-- [[Module:Portal/images/d]] - for portal names beginning with &quot;D&quot;.
-- [[Module:Portal/images/e]] - for portal names beginning with &quot;E&quot;.
-- [[Module:Portal/images/f]] - for portal names beginning with &quot;F&quot;.
-- [[Module:Portal/images/g]] - for portal names beginning with &quot;G&quot;.
-- [[Module:Portal/images/h]] - for portal names beginning with &quot;H&quot;.
-- [[Module:Portal/images/i]] - for portal names beginning with &quot;I&quot;.
-- [[Module:Portal/images/j]] - for portal names beginning with &quot;J&quot;.
-- [[Module:Portal/images/k]] - for portal names beginning with &quot;K&quot;.
-- [[Module:Portal/images/l]] - for portal names beginning with &quot;L&quot;.
-- [[Module:Portal/images/m]] - for portal names beginning with &quot;M&quot;.
-- [[Module:Portal/images/n]] - for portal names beginning with &quot;N&quot;.
-- [[Module:Portal/images/o]] - for portal names beginning with &quot;O&quot;.
-- [[Module:Portal/images/p]] - for portal names beginning with &quot;P&quot;.
-- [[Module:Portal/images/q]] - for portal names beginning with &quot;Q&quot;.
-- [[Module:Portal/images/r]] - for portal names beginning with &quot;R&quot;.
-- [[Module:Portal/images/s]] - for portal names beginning with &quot;S&quot;.
-- [[Module:Portal/images/t]] - for portal names beginning with &quot;T&quot;.
-- [[Module:Portal/images/u]] - for portal names beginning with &quot;U&quot;.
-- [[Module:Portal/images/v]] - for portal names beginning with &quot;V&quot;.
-- [[Module:Portal/images/w]] - for portal names beginning with &quot;W&quot;.
-- [[Module:Portal/images/x]] - for portal names beginning with &quot;X&quot;.
-- [[Module:Portal/images/y]] - for portal names beginning with &quot;Y&quot;.
-- [[Module:Portal/images/z]] - for portal names beginning with &quot;Z&quot;.
-- [[Module:Portal/images/other]] - for portal names beginning with any other letters. This includes numbers,
-- letters with diacritics, and letters in non-Latin alphabets.
-- [[Module:Portal/images/aliases]] - for adding aliases for existing portal names. Use this page for variations
-- in spelling and diacritics, etc., no matter what letter the portal begins with.
-- When adding entries, please use alphabetical order. The format of the images table entries is as follows:
-- [&quot;portal name&quot;] = &quot;image.svg&quot;,
-- The portal name should be the name of your portal, in lower case. For example, the portal name for
-- &quot;Portal:United Kingdom&quot; would be &quot;united kingdom&quot;. The image name should be capitalised normally, and the &quot;File:&quot;
-- namespace prefix should be
-- omitted.
]==]
return {
[&quot;cabo verde&quot;] = &quot;Flag of Cape Verde.svg|border|link=|alt=flag&quot;,
[&quot;calgary&quot;] = &quot;Flag of Calgary, Alberta.svg|border|link=|alt=flag&quot;,
[&quot;california&quot;] = &quot;Flag of California.svg|border|link=|alt=flag&quot;,
[&quot;california central valley&quot;] = &quot;California Central Valley county map.svg|link=|alt=map&quot;,
[&quot;california delta&quot;] = &quot;California SD-03 (2011).svg|link=|alt=map&quot;,
[&quot;california roads&quot;] = &quot;California 1.svg|link=|alt=sign&quot;,
[&quot;california state highways&quot;] = &quot;California 1.svg|link=|alt=sign&quot;,
[&quot;california state polytechnic university, pomona&quot;] = &quot;Cal Poly logo.svg|link=|alt=logo&quot;,
[&quot;california state university&quot;] = &quot;Flag of California.svg|border|link=|alt=flag&quot;,
[&quot;calvinism&quot;] = &quot;Kreuz-hugenotten.svg|alt=icon&quot;,
[&quot;cambodia&quot;] = &quot;Flag of Cambodia.svg|border|link=|alt=flag&quot;,
[&quot;cameroon&quot;] = &quot;Flag of Cameroon.svg|border|link=|alt=flag&quot;,
[&quot;canada&quot;] = &quot;Flag of Canada.svg|border|link=|alt=flag&quot;,
[&quot;canada roads&quot;] = &quot;Trans-Canada Highway shield.svg|link=|alt=&quot;,
[&quot;canada/kawartha lakes&quot;] = &quot;Kawartha Lakes flag.svg|border|link=|alt=flag&quot;,
[&quot;canadian armed forces&quot;] = &quot;Canadian Forces emblem.svg|alt=icon&quot;,
[&quot;canadian communities&quot;] = &quot;Map Canada political-geo.png|link=|alt=&quot;,
[&quot;canadian football&quot;] = &quot;Canadian football.png|alt=icon&quot;,
[&quot;canadian law&quot;] = &quot;Supreme Court of Canada.jpg|link=|alt=&quot;,
[&quot;canadian politics&quot;] = &quot;Can-vote-stub.svg|alt=icon&quot;,
[&quot;canadian territories&quot;] = &quot;Northern Canada.svg|alt=icon&quot;,
[&quot;cannabis&quot;] = &quot;Cannabis leaf.svg|alt=icon&quot;,
[&quot;cape cod and the islands&quot;] = &quot;Nobska Lighthouse 1.jpg|alt=icon&quot;,
[&quot;cape verde&quot;] = &quot;Flag of Cape Verde.svg|border|link=|alt=flag&quot;,
[&quot;capital district&quot;] = &quot;Empire State Plaza symbol 2.svg|link=|alt=&quot;,
[&quot;capitalism&quot;] = &quot;Capitalismlogo.svg|alt=icon&quot;,
[&quot;caribbean&quot;] = &quot;Caribbean map blank.png|border|link=|alt=map&quot;,
[&quot;caribbean community&quot;] = &quot;Flag of CARICOM.svg|border|link=|alt=flag&quot;,
[&quot;carnivorous plants&quot;] = &quot;Digested fly.JPG|link=|alt=photo&quot;,
[&quot;cars&quot;] = &quot;Sportcar sergio luiz ara 01.svg|link=|alt=&quot;,
[&quot;cartoon network&quot;] = &quot;Cartoon Network.svg|border|link=|alt=&quot;,
[&quot;cartoon&quot;] = &quot;Mad scientist.svg|alt=icon&quot;,
[&quot;catalan-speaking countries&quot;] = &quot;Siñal d'Aragón.svg|border|alt=icon&quot;,
[&quot;catholicism&quot;] = &quot;046CupolaSPietro.jpg|border|alt=icon&quot;,
[&quot;cats&quot;] = &quot;Cat03.jpg|alt=icon&quot;,
[&quot;cayman islands&quot;] = &quot;Flag of the Cayman Islands.svg|border|link=|alt=flag&quot;,
[&quot;celine dion&quot;] = &quot;Celine Dion Concert Singing 'Taking Chances' 2008.jpg|alt=icon&quot;,
[&quot;celtic studies&quot;] = &quot;Celtic-knot-insquare-39crossings.svg|link=|alt=&quot;,
[&quot;central african republic&quot;] = &quot;Flag of the Central African Republic.svg|border|link=|alt=flag&quot;,
[&quot;central america&quot;] = &quot;Age of Consent - Central America.svg|alt=icon&quot;,
[&quot;central asia&quot;] = &quot;Central Asian Games participating countries.PNG|alt=icon&quot;,
[&quot;cetaceans&quot;] = &quot;Sperm whale fluke.jpg|link=|alt=&quot;,
[&quot;chad&quot;] = &quot;Flag of Chad.svg|border|link=|alt=flag&quot;,
[&quot;chandigarh&quot;] = &quot;Gandhi Bhawan at Punjab University.jpg|alt=icon&quot;,
[&quot;channel islands&quot;] = &quot;Flag of Sark.svg|border|link=|alt=flag&quot;,
[&quot;charles dickens&quot;] = &quot;Charles Dickens 3.jpg|link=|alt=&quot;,
[&quot;charlotte&quot;] = &quot;Dilworth, Charlotte, NC, USA - panoramio.jpg|link=|alt=photo&quot;,
[&quot;chattanooga&quot;] = &quot;Flag of Chattanooga.svg|link=|alt=flag&quot;,
[&quot;chechnya&quot;] = &quot;Flag of the Chechen Republic.svg|border|link=|alt=flag&quot;,
[&quot;cheesehead&quot;] = &quot;Cheesehead.png|alt=icon&quot;,
[&quot;chemistry&quot;] = &quot;Papapishu-Lab-icon-6.svg|link=|alt=&quot;,
[&quot;chennai&quot;] = &quot;Chennai High Court 1200x800.jpg|alt=icon&quot;,
[&quot;cher&quot;] = &quot;Cher Assinatura.png|link=|alt=&quot;,
[&quot;cheshire&quot;] = &quot;Cheshire Flag.svg|border|alt=icon&quot;,
[&quot;chess&quot;] = &quot;Nuvola apps package games strategy.png|alt=icon&quot;,
[&quot;chhattisgarh&quot;] = &quot;India Chhattisgarh locator map.svg|border|link=|alt=map&quot;,
[&quot;chicago&quot;] = &quot;Seal of Chicago, Illinois.svg|link=|alt=&quot;,
[&quot;children's literature&quot;] = &quot;Tom Sawyer 1876 frontispiece.jpg|link=|alt=&quot;,
[&quot;chile&quot;] = &quot;Flag of Chile.svg|border|link=|alt=flag&quot;,
[&quot;china&quot;] = &quot;Flag of the People's Republic of China.svg|border|link=|alt=flag&quot;,
[&quot;chittagong&quot;] = &quot;Beach View of the Saint Martin's Island.jpg|alt=icon&quot;,
[&quot;christian democracy&quot;] = &quot;Orange flag waving.svg|alt=icon&quot;,
[&quot;christian metal&quot;] = &quot;Guitar 1.svg|link=|alt=&quot;,
[&quot;christian music&quot;] = &quot;Musical note nicu bucule 01.svg|link=|alt=&quot;,
[&quot;christianity&quot;] = &quot;P christianity.svg|alt=icon&quot;,
[&quot;christianity in china&quot;] = &quot;Blessing message.svg|link=|alt=&quot;,
[&quot;christianity in india&quot;] = &quot;India with cross.svg|alt=icon&quot;,
[&quot;christina aguilera&quot;] = &quot;Christina Aguilera (at premiere of \&quot;To John With Love\&quot;, September 2010).jpg|alt=icon&quot;,
[&quot;christmas&quot;] = &quot;Xmas tree.svg|link=|alt=&quot;,
[&quot;christmas island&quot;] = &quot;Flag of Christmas Island.svg|link=|alt=flag&quot;,
[&quot;chronology&quot;] = &quot;History.gif|link=|alt=&quot;,
[&quot;cincinnati&quot;] = &quot;Cincinnati Dusk Light.JPG|link=|alt=&quot;,
[&quot;city of port of spain&quot;] = &quot;POS Academy for the Performing Arts 03 2012 0960.JPG|alt=icon&quot;,
[&quot;city of san fernando&quot;] = &quot;HilltopSandoview.jpg|link=|alt=&quot;,
[&quot;classical civilisation&quot;] = &quot;2006 01 21 Athènes Parthénon.JPG|alt=icon&quot;,
[&quot;classical guitar&quot;] = &quot;Classical Guitar two views2.png|alt=icon&quot;,
[&quot;classical music&quot;] = &quot;Audio a.svg|link=|alt=&quot;,
[&quot;classical tamil&quot;] = &quot;Word_Tamil.svg|link=|alt=word&quot;,
[&quot;cleveland&quot;] = &quot;Flag of Cleveland, Ohio.svg|border|link=|alt=flag&quot;,
[&quot;climate&quot;] = &quot;The Earth seen from Apollo 17 with transparent background.png|link=|alt=icon&quot;,
[&quot;climate change&quot;] = &quot;SurfaceTemperature.jpg|link=|alt=icon&quot;,
[&quot;cocos (keeling) islands&quot;] = &quot;Flag of the Cocos (Keeling) Islands.svg|link=|alt=flag&quot;,
[&quot;coffee&quot;] = &quot;Emblem-relax.svg|alt=icon&quot;,
[&quot;cognitive science&quot;] = &quot;Crystal mind.jpg|link=|alt=icon&quot;,
[&quot;cold war&quot;] = &quot;Cold War Map 1959.svg|alt=icon&quot;,
[&quot;college basketball&quot;] = &quot;Basketball.png|link=|alt=&quot;,
[&quot;college football&quot;] = &quot;NCAAFootball transparent.png|alt=icon&quot;,
[&quot;colombia&quot;] = &quot;Flag of Colombia.svg|border|link=|alt=flag&quot;,
[&quot;colonialism&quot;] = &quot;PithHelmetTruman.jpg|link=|alt=&quot;,
[&quot;color&quot;] = &quot;Colouring pencils.jpg|alt=icon&quot;,
[&quot;colorado&quot;] = &quot;Flag of Colorado.svg|border|link=|alt=flag&quot;,
[&quot;colorado school of mines&quot;] = &quot;CSM Seal.JPG|link=|alt=seal&quot;,
[&quot;colorado state university&quot;] = &quot;Colorado State University logo.png|link=|alt=logo&quot;,
[&quot;columbia university&quot;] = &quot;Columbia University Shield.svg|link=|alt=shield&quot;,
[&quot;columbia, missouri&quot;] = &quot;Greetings from Columbia, Missouri (73489).jpg|link=|alt=postcard&quot;,
[&quot;comedy&quot;] = &quot;SMirC-laugh.svg|alt=icon&quot;,
[&quot;comics&quot;] = &quot;Speech balloon.svg|link=|alt=&quot;,
[&quot;commonwealth games&quot;] = &quot;Commonwealth Games Federation seal.svg|alt=icon&quot;,
[&quot;commonwealth realms&quot;] = &quot;Commonwealth Realms map2.png|alt=icon&quot;,
[&quot;communism&quot;] = &quot;Symbol-hammer-and-sickle.svg|link=|alt=&quot;,
[&quot;community of christ&quot;] = &quot;USVA headstone emb-20.svg|link=|alt=&quot;,
[&quot;community&quot;] = &quot;P globe blue.png|alt=icon&quot;,
[&quot;comoros&quot;] = &quot;Flag of Comoros.svg|border|link=|alt=flag&quot;,
[&quot;companies&quot;] = &quot;Industry5.svg|link=|alt=&quot;,
[&quot;complementary and alternative medicine&quot;] = &quot;Rod of Asclepius2.svg|alt=icon&quot;,
[&quot;computer graphics&quot;] = &quot;5-cell.gif|link=|alt=&quot;,
[&quot;computer networking&quot;] = &quot;Bus icon.svg|link=|alt=&quot;,
[&quot;computer programming&quot;] = &quot;8bit-dynamiclist (reversed).gif|alt=icon&quot;,
[&quot;computer science&quot;] = &quot;Internet map 1024.jpg|alt=icon&quot;,
[&quot;computer security&quot;] = &quot;Monitor padlock.svg|alt=icon&quot;,
[&quot;computer-generated imagery&quot;] = &quot;Gaussian.JPG|link=|alt=&quot;,
[&quot;connecticut&quot;] = &quot;Flag of Connecticut.svg|border|link=|alt=flag&quot;,
[&quot;conservatism&quot;] = &quot;DodgerBlue flag waving.svg|link=|alt=&quot;,
[&quot;constructed languages&quot;] = &quot;Design conlang.png|alt=icon&quot;,
[&quot;contents&quot;] = &quot;Wikipedia's W.svg|link=|alt=&quot;,
[&quot;contents/indexes&quot;] = &quot;Pointing-right.svg|link=|alt=icon&quot;,
[&quot;contents/lists&quot;] = &quot;Liste.svg|link=|alt=icon&quot;,
[&quot;contents/outlines&quot;] = &quot;Pointing-left.svg|link=|alt=icon&quot;,
[&quot;cook islands&quot;] = &quot;Flag of the Cook Islands.svg|border|link=|alt=flag&quot;,
[&quot;cooperatives&quot;] = &quot;Twinpines.svg|link=|alt=&quot;,
[&quot;córdoba&quot;] = &quot;Escudo ciudad de cordoba argentina.svg|link=|alt=&quot;,
[&quot;cornell university&quot;] = &quot;Cornell University seal.svg|link=|alt=seal&quot;,
[&quot;cornhusker&quot;] = &quot;Nebraska silhouette.png|alt=icon&quot;,
[&quot;cornwall&quot;] = &quot;Flag of Cornwall.svg|border|link=|alt=flag&quot;,
[&quot;cosmology&quot;] = &quot;Ilc 9yr moll4096.png|link=|alt=&quot;,
[&quot;costa rica&quot;] = &quot;Flag of Costa Rica.svg|border|link=|alt=flag&quot;,
[&quot;côte d'ivoire&quot;] = &quot;Flag of Côte d'Ivoire.svg|border|link=|alt=flag&quot;,
[&quot;country music&quot;] = &quot;Steel guitar-KayEss.1.jpeg|alt=icon&quot;,
[&quot;creationism&quot;] = &quot;Michelangelo, Creation of Adam 04.jpg|link=|alt=&quot;,
[&quot;cricket&quot;] = &quot;Cricketball.png|link=|alt=&quot;,
[&quot;crimea&quot;] = &quot;Flag of Crimea.svg|border|link=|alt=flag&quot;,
[&quot;criminal justice&quot;] = &quot;Scale of justice 2.svg|link=|alt=&quot;,
[&quot;croatia&quot;] = &quot;Flag of Croatia.svg|border|link=|alt=flag&quot;,
[&quot;crusades&quot;] = &quot;Arms of the Kingdom of Jerusalem.svg|alt=icon&quot;,
[&quot;crustaceans&quot;] = &quot;Charybdis japonica.jpg|alt=icon&quot;,
[&quot;cryptography&quot;] = &quot;Crypto key.svg|alt=icon&quot;,
[&quot;cryptozoology&quot;] = &quot;Okapi2.jpg|alt=icon&quot;,
[&quot;crystallography&quot;] = &quot;Pyriteespagne.jpg|link=|alt=image&quot;,
[&quot;cuba&quot;] = &quot;Flag of Cuba.svg|border|link=|alt=flag&quot;,
[&quot;cultural heritage of serbia&quot;] = &quot;Spomenik Kulture.svg|link=|alt=&quot;,
[&quot;culture&quot;] = &quot;P culture.svg|alt=icon&quot;,
[&quot;cumbria&quot;] = &quot;Herdwick sheep crop.jpg|alt=icon&quot;,
[&quot;curaçao&quot;] = &quot;Flag of Curaçao.svg|border|link=|alt=flag&quot;,
[&quot;current events&quot;] = &quot;Ambox globe.svg|link=|alt=&quot;,
[&quot;current events/turkey&quot;] = &quot;Wikinews-logo.png|link=|alt=&quot;,
[&quot;cycling&quot;] = &quot;Cycling (road) pictogram.svg|link=|alt=&quot;,
[&quot;cyprus&quot;] = &quot;Cyprus blank 1.svg|border|link=|alt=&quot;,
[&quot;czech republic&quot;] = &quot;Flag of the Czech Republic.svg|border|link=|alt=flag&quot;,
[&quot;czechia&quot;] = &quot;Flag of the Czech Republic.svg|border|link=|alt=flag&quot;
}</text>
<sha1>3gbogwr9xn5buclrllskeb331xubg4e</sha1>
</revision>
</page>
<page>
<title>Template:Str crop/doc</title>
<ns>10</ns>
<id>22792884</id>
<revision>
<id>616072293</id>
<parentid>616072253</parentid>
<timestamp>2014-07-08T11:22:32Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>/* top */ wording</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="472">{{Documentation subpage}}
&lt;!----PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE----&gt;
== Usage ==
Use to remove the right-most {{{2}}} characters of a string {{{1}}}.
===Example===
; code : &lt;code&gt;&lt;nowiki&gt;{{str crop |Example |3}}&lt;/nowiki&gt;&lt;/code&gt;
; result : {{str crop |Example |3}}
== See also ==
{{String-handling templates |trim}}
&lt;includeonly&gt;
&lt;!----CATEGORIES BELOW THIS LINE, PLEASE:----&gt;
[[Category:String manipulation templates]]
&lt;/includeonly&gt;</text>
<sha1>9xahfgfbfxfa6zh428d1iafkofw995n</sha1>
</revision>
</page>
<page>
<title>Template:Str endswith/doc</title>
<ns>10</ns>
<id>22860188</id>
<revision>
<id>761791602</id>
<parentid>720626402</parentid>
<timestamp>2017-01-24T20:42:03Z</timestamp>
<contributor>
<ip>50.53.1.33</ip>
</contributor>
<comment>update</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1041">{{documentation subpage}}
{{lua|Module:Str endswith}}
&lt;!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE --&gt;
This is the {{tl|str endswith}} meta-template.
It returns &quot;yes&quot; if the first parameter ends with the second parameter. Both parameters are trimmed before use.
=== Examples ===
* {{tlx|str endswith|foo (bar)|(bar)}} → {{str endswith|foo (bar)|(bar)}}
* {{tlx|str endswith|foo|bar}} → {{str endswith|foo|bar}}
* {{tlx|str endswith|(bar)|foo (bar)}} → {{str endswith|(bar)|foo (bar)}}
* {{tlx|str endswith|foo bar&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;bar}} → {{str endswith|foo bar | bar}}
; border cases
* {{tlx|str endswith}} → {{str endswith}}
* {{tlx|str endswith|&lt;nowiki/&gt;|&lt;nowiki/&gt;}} → {{str endswith||}}
* {{tlx|str endswith|&lt;nowiki/&gt;|&amp;#32;}} → {{str endswith|| }}
* {{tlx|str endswith|&amp;#32;|&lt;nowiki/&gt;}} → {{str endswith| |}}
===See also===
{{String-handling templates |anlys/tech}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:String manipulation templates]]
&lt;/includeonly&gt;</text>
<sha1>ir0rgbz17t5mc0hjujosmolxxhcdgba</sha1>
</revision>
</page>
<page>
<title>Template:Str left/doc</title>
<ns>10</ns>
<id>22224126</id>
<revision>
<id>802550301</id>
<parentid>714278724</parentid>
<timestamp>2017-09-26T21:54:03Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>update /doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="7602">{{Documentation subpage}}
&lt;!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). --&gt;
{{high-risk| 1370000+ }}
== Usage ==
: {{Tlx|Str left|&lt;string&gt;|&lt;count&gt;}}
Gives the resultant &lt;count&gt; of characters ''creating a substring of characters'' from the start of the [[w:Trim (programming)|trimmed]] string (i.e. the substring returned will have length &lt;count&gt;, exclusive of leading whitespace characters, which are trimmed first before &lt;count&gt; is invoked).
If &lt;count&gt; is invalid, empty or zero, an empty string is returned. If undefined, it defaults to 1.
== Limitations ==
* Length to 500: The maximum substring stops at 500 long, yet gives no error message. Only 500 characters can be extracted even if the &lt;string&gt; is longer.
* Inexpensive (uses no other templates).
== Examples ==
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 10 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 10 }}
:*&lt;code&gt;&lt;nowiki&gt;{{Str left| &amp;nbsp; Lorem ipsum dolor sit amet | 4 }}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{Str left| Lorem ipsum dolor sit amet | 4 }}, (note leading spaces trimmed!)
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 1 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 1 }}
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 0 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 0 }}
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | }}
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet }}
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 40 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | Lorem ipsum dolor sit amet | 40 }}
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | àçé | 2 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | àçé | 2 }}
:*: This example is demonstrating the safety of this template with the UTF-8 encoding (this should work now) :
===Examples of limitations===
All the limitations of use for this template and shown below are caused by the current implementation of the &lt;nowiki&gt;{{padleft:}}&lt;/nowiki&gt; parser function used in this template, which does not filter its third parameter containing the characters used for padding a string to the specified length (it currently counts incorrectly the characters to extract from the padding string, and incorrectly measures its effective length; in addition this parameter is limited to 500 bytes).
The following examples are demonstrating that this template is not safe with character entity references found in its string parameter :
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | a&amp;amp;nbsp;c | 3 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | a&amp;nbsp;c | 3 }}
:*: This should display &quot;a&amp;nbsp;c&quot;, but the named character entity was partially truncated, leaving no length available for the final &quot;c&quot;.
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | a&amp;amp;#66;c | 3 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | a&amp;#66;c | 3 }}
:*: This should display &quot;abc&quot;, but the named character entity was partially truncated, leaving no length available for the final &quot;c&quot;.
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | a c | 3 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | a c | 3 }}
:*: The result is correct, as expected.
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | a&amp;amp;#32;c | 3 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | a&amp;#32;c | 3 }}
:*: This last example should be equivalent to the previous one, but it is not.
The following example shows that the presence of some wiki markup that should be transparent and ignored, does not allow this template to work as expected (the nowiki section is replaced by a unique index string in the effective runtime value of the parameter; this unique (43-bytes long) string starts by a control character (which will be finally filtered out from the generated HTML page if it remains in the result of this template), followed by &quot;UNIQ&quot; and some unique sequence and terminated by &quot;QINU&quot; and a final control character; it is partially visible below, because the unique string is not complete after truncation, and then cannot be eliminated from the output in the first two lines):
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | a&amp;lt;nowiki/&amp;gt;bc | 3 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | a&lt;nowiki/&gt;bc | 3 }}
:*: It effectively returns 3 bytes, but the \x07 (BELL) control in the second position is stripped out when generating the HTML displayed here.
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | a&amp;lt;nowiki/&amp;gt;bc | 43 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | a&lt;nowiki/&gt;bc | 43 }}
:*: It effectively returns 43 bytes, but the \x07 (BELL) control in the second position is stripped out when generating the HTML displayed here, and the final \x07 was truncated
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | a&amp;lt;nowiki/&amp;gt;bc | 44 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | a&lt;nowiki/&gt;bc | 44 }}
:*: It effectively returns 44 bytes, but the complete 43-bytes sequence is filtered out from the output wiki code when generating the final HTML, so there just remains the first leading &quot;a&quot; character .
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | a&amp;lt;nowiki/&amp;gt;bc | 45 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | a&lt;nowiki/&gt;bc | 45 }}
On the opposite, the HTML comments, and the &quot;noinclude&quot;, &quot;includeonly&quot; and &quot;onlyinclude&quot; wiki markup tags are safe, because they are preprocessed in template parameters, before including it and substituting parameters:
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | a&amp;lt;noinclude/&amp;gt;bc | 3 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | a&lt;noinclude/&gt;bc | 3 }}
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | a&amp;lt;!-- comment --&amp;gt;bc | 3 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | a&lt;!-- comment --&gt;bc | 3 }}
Note also that the specified length will cause the input string to be padded by repeating it, if this length is larger than the input string length:
:* &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt; {{BASEPAGENAME}} | Abc. | 10 &lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{ {{BASEPAGENAME}} | Abc. | 10 }}
== Template data ==
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;A template to give the &lt;count&gt; substring of characters from the start of the trimmed string &quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;String&quot;,
&quot;description&quot;: &quot;The string to be trimmed and counted&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
},
&quot;2&quot;: {
&quot;label&quot;: &quot;Count&quot;,
&quot;description&quot;: &quot;Gives the &lt;count&gt; substring of characters from the start of the trimmed string&quot;,
&quot;type&quot;: &quot;number&quot;,
&quot;required&quot;: true
}
}
}
&lt;/templatedata&gt;
== See also ==
* [[Bugzilla:22555]] (need for correcting padleft/padright functions and to provide better string-handling parser functions)
{{String-handling templates |trim}}
&lt;includeonly&gt;{{Sandbox other||
&lt;!-- Categories go below this line, please; interwikis go to Wikidata, thank you! --&gt;
[[Category:String manipulation templates]]
}}&lt;/includeonly&gt;</text>
<sha1>7a5rasvbkc5rm1ok2h12njz1nyorukc</sha1>
</revision>
</page>
<page>
<title>Template:Str len/doc</title>
<ns>10</ns>
<id>22169855</id>
<revision>
<id>774485363</id>
<parentid>615944777</parentid>
<timestamp>2017-04-08T19:49:12Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<comment>It no longer is</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3520">{{Documentation subpage}}
{{Lua|Module:String}}
&lt;!----PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE----&gt;
This is the {{tl|str len}} meta-template.
It takes a string as parameter and returns its length (excluding spaces at the start and end). It can now count as high as necessary.
===Examples===
If the parameter is empty or undefined it is considered to be of zero length:
:&lt;code&gt;&lt;nowiki&gt;{{str len}}&lt;/nowiki&gt;&lt;/code&gt; returns {{str len}}
:&lt;code&gt;&lt;nowiki&gt;{{str len|}}&lt;/nowiki&gt;&lt;/code&gt; returns {{str len|}}
:&lt;code&gt;&lt;nowiki&gt;{{str len| }}&lt;/nowiki&gt;&lt;/code&gt; returns {{str len| }}
It counts the length correctly, even if the string contains spaces, looks like a number, or contains special characters:
:&lt;code&gt;&lt;nowiki&gt;{{str len| ab cde }}&lt;/nowiki&gt;&lt;/code&gt; returns {{str len| ab cde }}
:&lt;code&gt;&lt;nowiki&gt;{{str len| 1234567 }}&lt;/nowiki&gt;&lt;/code&gt; returns {{str len| 1234567 }}
:&lt;code&gt;&lt;nowiki&gt;{{str len| café åäö }}&lt;/nowiki&gt;&lt;/code&gt; returns {{str len| café åäö }}
:&lt;code&gt;&lt;nowiki&gt;{{str len| 499-characters... }}&lt;/nowiki&gt;&lt;/code&gt; returns {{str len| abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi }}
:&lt;code&gt;&lt;nowiki&gt;{{str len| 1000-characters... }}&lt;/nowiki&gt;&lt;/code&gt; returns {{str len| abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghi abcdefghij }}
===Template data===
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;The template takes a string as parameter and returns its length, excluding spaces at the start and end of the string&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Alpha-numeric text&quot;,
&quot;description&quot;: &quot;The string to be counted&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
}
}
}
&lt;/templatedata&gt;
===Technical details===
This is the first general-purpose template to be implemented using [[mw:Extension:Scribunto]]. The Lua code is located in [[Module:String]].
===See also===
{{String-handling templates |IRL}}
&lt;includeonly&gt;
{{#ifeq:{{SUBPAGENAME}}|sandbox | |
&lt;!----CATEGORIES BELOW THIS LINE, PLEASE:----&gt;
[[Category:String manipulation templates]]
}}
&lt;/includeonly&gt;</text>
<sha1>6fk1osvzsqg7bw3hhaeqjzp6d3c29qq</sha1>
</revision>
</page>
<page>
<title>Template:Str rep/doc</title>
<ns>10</ns>
<id>24238664</id>
<revision>
<id>788598319</id>
<parentid>731720368</parentid>
<timestamp>2017-07-02T09:58:29Z</timestamp>
<contributor>
<username>Loooke</username>
<id>29624353</id>
</contributor>
<comment>Use &lt;code&gt; and &lt;/code&gt;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="709">{{Documentation subpage}}
{{lua|Module:String}}
{{High-risk|419000+}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
=== Usage ===
&lt;code&gt;&lt;nowiki&gt;{{Str rep|&lt;string&gt;|&lt;find&gt;|&lt;replacewith&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
Returns &lt;string&gt; with the '''first''' occurrence of &lt;find&gt; replaced with &lt;replacewith&gt;.
=== Example ===
* &lt;code&gt;&lt;nowiki&gt;{{str rep|Dogs chase cats|chase|love}}&lt;/nowiki&gt;&lt;/code&gt; = {{str rep|Dogs chase cats|chase|love}}
=== See also ===
* {{tl|Replace}} - to replace ''all'' occurrences (Lua based)
{{string-handling templates}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES AND INTERWIKIS LINKS HERE, THANKS --&gt;
[[Category:String manipulation templates|Replace, {{PAGENAME}}]]
&lt;/includeonly&gt;</text>
<sha1>fexgbj9l15o9md3ahaki7j4p9bflhtm</sha1>
</revision>
</page>
<page>
<title>Template:Stub documentation/doc</title>
<ns>10</ns>
<id>30653903</id>
<revision>
<id>626678777</id>
<parentid>626676916</parentid>
<timestamp>2014-09-22T21:11:05Z</timestamp>
<contributor>
<username>Alexf</username>
<id>55327</id>
</contributor>
<comment>rvv</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="242">{{Documentation subpage}}
&lt;!-- Amit pandey --&gt;
=== Usage ===
This template is used by [[Template:Asbox]] to display common documentation for all stub templates.
=== See also ===
&lt;includeonly&gt;
&lt;!-- CATEGORIES HERE, THANKS --&gt;
&lt;/includeonly&gt;</text>
<sha1>ejnwmln6arwqwish6uag12kxoevjdxo</sha1>
</revision>
</page>
<page>
<title>Template:Clear left</title>
<ns>10</ns>
<id>1783267</id>
<revision>
<id>646354886</id>
<parentid>579832159</parentid>
<timestamp>2015-02-09T15:14:05Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<comment>Consolidating clearing templates code</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="75">{{Clear|left}}&lt;noinclude&gt;
{{Documentation|Template:Clear/doc}}
&lt;/noinclude&gt;</text>
<sha1>sij6fpy41vrmcjrpzuw1khz627y3217</sha1>
</revision>
</page>
<page>
<title>Template:I smallsup</title>
<ns>10</ns>
<id>44290571</id>
<revision>
<id>632327452</id>
<timestamp>2014-11-03T20:44:16Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<comment>Created template</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="237">&lt;includeonly&gt;{{#if:{{{2|}}} |&lt;span style=&quot;padding-left:{{{1}}};&quot;&gt;&lt;sup&gt;&lt;small&gt;{{{2}}}&lt;/small&gt;&lt;/sup&gt;&lt;/span&gt; |&lt;span style=&quot;padding-left:0.2em;&quot;&gt;&lt;sup&gt;&lt;small&gt;{{{1}}}&lt;/small&gt;&lt;/sup&gt;&lt;/span&gt;}}&lt;/includeonly&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>dp95maeasfwo7mygv55c4in7ca2pg8s</sha1>
</revision>
</page>
<page>
<title>Template:I sup</title>
<ns>10</ns>
<id>22522760</id>
<revision>
<id>792647911</id>
<parentid>632310356</parentid>
<timestamp>2017-07-27T19:35:01Z</timestamp>
<contributor>
<username>Quondum</username>
<id>12331483</id>
</contributor>
<comment>/* top */ 0.2em → 0.12em (default spacing was jarringly large for typical italic font)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="208">&lt;includeonly&gt;{{#if:{{{2|}}} |&lt;span style=&quot;padding-left:{{{1}}};&quot;&gt;&lt;sup&gt;{{{2}}}&lt;/sup&gt;&lt;/span&gt; |&lt;span style=&quot;padding-left:0.12em;&quot;&gt;&lt;sup&gt;{{{1}}}&lt;/sup&gt;&lt;/span&gt;}}&lt;/includeonly&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>c1ydr9znjelubgb2tdytil77a0bllj1</sha1>
</revision>
</page>
<page>
<title>Template:Overunderset</title>
<ns>10</ns>
<id>39925314</id>
<revision>
<id>563688659</id>
<parentid>563685065</parentid>
<timestamp>2013-07-10T16:49:13Z</timestamp>
<contributor>
<username>Maschen</username>
<id>12734413</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="480">&lt;span class=&quot;sfrac nowrap; &quot;&gt;&lt;span style=&quot;display:none; display:inline-block; vertical-align:middle; text-align:center;&quot;&gt;&lt;span style=&quot;display:block; line-height:1em; font-size:70%; padding:0 0.1em;&quot;&gt;{{{2}}}&lt;/span&gt;&lt;span style=&quot;display:block; line-height:1em; padding:0 0.1em;&quot;&gt;{{{1}}}&lt;/span&gt;&lt;span style=&quot;display:block; font-size:70%; line-height:1em; padding:0 0.1em;&quot;&gt;{{{3}}}&lt;/span&gt;&lt;/span&gt;&lt;noinclude&gt;{{doc}}&lt;/noinclude&gt;&lt;!---ADD CATEGORIES TO THE \doc PAGE - NOT HERE - THANKS ---&gt;</text>
<sha1>0iyjaf4jmkb8rwpvekcelx7ytz39f6t</sha1>
</revision>
</page>
<page>
<title>Template:Smallsub</title>
<ns>10</ns>
<id>41837525</id>
<revision>
<id>821204153</id>
<parentid>593872468</parentid>
<timestamp>2018-01-19T00:33:26Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Smallsub]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="102">&lt;includeonly&gt;&lt;sub&gt;&lt;small&gt;{{{1}}}&lt;/small&gt;&lt;/sub&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>a301pj00q29nirqf6zpi3ie8rrfo350</sha1>
</revision>
</page>
<page>
<title>Template:Smallsup</title>
<ns>10</ns>
<id>5673485</id>
<revision>
<id>772120913</id>
<parentid>558575990</parentid>
<timestamp>2017-03-25T12:38:47Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:Smallsup]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access] (i...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="102">&lt;includeonly&gt;&lt;sup&gt;&lt;small&gt;{{{1}}}&lt;/small&gt;&lt;/sup&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>mlix1y93be7qpylydjn1k0t69oyvr6i</sha1>
</revision>
</page>
<page>
<title>Template:Su/doc</title>
<ns>10</ns>
<id>16844241</id>
<revision>
<id>707677403</id>
<parentid>679756656</parentid>
<timestamp>2016-03-01T04:37:33Z</timestamp>
<contributor>
<ip>217.28.0.236</ip>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="4239">{{Documentation subpage}}
{{COinS safe|n}}
{{lua|Module:Su}}
&lt;!-- EDIT TEMPLATE DOCUMENTATION BELOW THIS LINE --&gt;
== Purpose ==
Template for creating two smaller lines of text on one actual line, this can be used for [[Template:val|scientific notations of uncertainty]] and [[Template:PhysicsParticle|physics]] symbols, such as [[:Category:Nuclide templates|nuclides]] and [[Template:SubatomicParticle|particles]].
It was named after the '''&amp;lt;sup&gt;''' and '''&amp;lt;sub&gt;''' HTML tags, which share the first two letters of their name with this template. This template uses the third letter of the name of these tags, '''p''' and '''b''', as the name of the argument that drives the output of the top and bottom line, respectively.
[[File:Nuvola apps important.svg|left|48px]] '''Editors beware''': ''these templates use all kinds of hacky tricks to make the output render correctly in a wide variety of browsers. If you plan to make changes to this template, please make sure you verify that this template renders correctly after those changes in all major browsers. This list includes the latest version(s) of Chrome, FireFox, MSIE, Opera and Safari as well as any version of those browsers that is still in common use, such as MSIE 6.0 and 7.0!''
{{clear left}}
== Arguments ==
{|
|-
|style=&quot;width:2em;&quot;| {{para|p}} || The contents of the top line.
|-
| {{para|b|}}|| The contents of the bottom line.
|-
| {{para|a|}} || The alignment of both lines ({{para|a|r}}: right-aligned; {{para|a|c}}: center-aligned; default is left-aligned).
|-
| {{para|w|}} || The size of the characters ({{para|w|f}}: fixed-width (monospace), otherwise template inherits the current font and context by default).
|-
| {{para|lh|}} || The line height or distance from top to bottom (including top character). Default is 1.2em.
|}
==Note on fractions==
Usually, when using vulgar fractions it is MOS habit to use &amp;amp;frasl; &lt;code&gt;&amp;frasl;&lt;/code&gt; ([[MOS:FRAC]]) and {{tl|frac}}.
However, in &amp;lt;sub&gt; or &amp;lt;sup&gt; tags, best use the keyboard slash &lt;code&gt;/&lt;/code&gt; for readability in most browsers:
:X{{su|p=1&amp;frasl;2|b=7&amp;frasl;8}} (fraction slash) {{nay}}
and
:X{{su|p=1/2|b=7/8}} (keyboard slash) {{aye}}
== Examples ==
=== Simple ===
: &lt;code&gt;&lt;nowiki&gt;X{{su|p=a}}X{{su|b=b}}X{{su|p=a|b=b}}X&lt;/nowiki&gt;&lt;/code&gt;
: X{{su|p=a}}X{{su|b=b}}X{{su|p=a|b=b}}X
=== Left-aligned {{nobold|(default)}} ===
: &lt;code&gt;&lt;nowiki&gt;X{{su|p=aaaaa|b=b}}X{{su|p=a|b=bbbbb}}X&lt;/nowiki&gt;&lt;/code&gt;
: X{{su|p=aaaaa|b=b}}X{{su|p=a|b=bbbbb}}X
=== Right-aligned ===
: &lt;code&gt;&lt;nowiki&gt;X{{su|a=r|p=aaaaa|b=b}}X{{su|a=r|p=a|b=bbbbb}}X&lt;/nowiki&gt;&lt;/code&gt;
: X{{su|a=r|p=aaaaa|b=b}}X{{su|a=r|p=a|b=bbbbb}}X
=== Center-aligned ===
: &lt;code&gt;&lt;nowiki&gt;X{{su|a=c|p=aaaaa|b=b}}X{{su|a=c|p=a|b=bbbbb}}X&lt;/nowiki&gt;&lt;/code&gt;
: X{{su|a=c|p=aaaaa|b=b}}X{{su|a=c|p=a|b=bbbbb}}X
=== Smaller font ===
: &lt;code&gt;&lt;nowiki&gt;{{small|X{{su|p=a}}X{{su|b=b}}X{{su|p=a|b=b}}X}}&lt;/nowiki&gt;&lt;/code&gt;
: {{small|X{{su|p=a}}X{{su|b=b}}X{{su|p=a|b=b}}X}}
=== Larger font ===
: &lt;code&gt;&lt;nowiki&gt;{{big|X{{su|p=a}}X{{su|b=b}}X{{su|p=a|b=b}}X}}&lt;/nowiki&gt;&lt;/code&gt;
: {{big|X{{su|p=a}}X{{su|b=b}}X{{su|p=a|b=b}}X}}
=== Fixed-width ===
: &lt;code&gt;&lt;nowiki&gt;X{{su|p=...|b=www}}X{{su|w=f|p=...|b=www}}X&lt;/nowiki&gt;&lt;/code&gt;
: X{{su|p=...|b=www}}X{{su|w=f|p=...|b=www}}X
=== Close-spacing ===
: &lt;code&gt;&lt;nowiki&gt;{{su|p=4|b=4}} {{su|lh=0.8em|p=4|b=4}}&lt;/nowiki&gt;&lt;/code&gt;
: {{su|p=4|b=4}} {{su|lh=0.8em|p=4|b=4}}
== Line breaks ==
Unlike &lt;nowiki&gt;&lt;sup&gt;&lt;/nowiki&gt; and &lt;nowiki&gt;&lt;sub&gt;&lt;/nowiki&gt; tags, this template does not prevent line breaks between the two small lines and the preceding text. Thus, if this template is used to supply a subscript and superscript over a base symbol, the whole structure has to be enclosed in a {{tl|nowrap}}, or this template should be invoked through another template that takes care of the wrapping in an appropriate way.
'''Example''': &lt;code&gt;&lt;nowiki&gt;{{nowrap|X{{su|p=a|b=b}}}}&lt;/nowiki&gt;&lt;/code&gt;&amp;nbsp;{{big|→}} {{nowrap|X{{su|p=a|b=b}}}}
== See also ==
{{Sup and sub-related templates}}
{{Math templates |notation}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!--Categories below this line, please; interwikis to Wikidata.--&gt;
[[Category:Superscript and subscript templates]]
[[Category:Mathematical formatting templates]]
}}&lt;/includeonly&gt;</text>
<sha1>9m6ya7c8ueoj7w7w8wu20ih4ydm2nv0</sha1>
</revision>
</page>
<page>
<title>Template:Subsub</title>
<ns>10</ns>
<id>36466262</id>
<revision>
<id>502858700</id>
<timestamp>2012-07-17T21:11:13Z</timestamp>
<contributor>
<username>Kri</username>
<id>253188</id>
</contributor>
<comment>Created template</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="162">&lt;includeonly&gt;&lt;sub&gt;&lt;sub&gt;{{{1}}}&lt;/sub&gt;&lt;/sub&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add cats and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>87wgft17jigs0dsvxl4rgtalkambrn6</sha1>
</revision>
</page>
<page>
<title>Template:Sup and sub-related templates</title>
<ns>10</ns>
<id>43043217</id>
<revision>
<id>746331842</id>
<parentid>654446707</parentid>
<timestamp>2016-10-26T19:13:24Z</timestamp>
<contributor>
<username>Mrjulesd</username>
<id>17505739</id>
</contributor>
<comment>[[Category:Documentation see also templates]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2181">{{Navbox with columns
| name = Sup and sub-related templates
| state = {{{state|}}}
| title = Superscript and subscript-related templates
&lt;!--------------------------- {{sup}}/{{sub}} and related -----------------------------&gt;
| col1header = &lt;nowiki&gt;{{sup}}&lt;/nowiki&gt; and related templates
| col1 =
{{Aligned table
|cols=3 |class=nowrap
| {{tlbare|sup}} |
| text{{sup|superscript}}{{spaces|4}}{{sup|superscript}}text
| {{tlbare|smallsup}} | ({{tlbare|ssup}})
| text{{smallsup|small superscript}}{{spaces|4}}{{smallsup|small superscript}}text
| {{tlbare|i sup}} | ({{tlbare|isup}}{{int:dot-separator}}{{tlbare|padlsup}})
| ''text''{{i sup|superscript}}{{spaces|2}}({{smaller|rather than:}}&amp;nbsp;''text''{{sup|superscript}})
| {{tlbare|i smallsup}} | ({{tlbare|issup}}{{int:dot-separator}}{{tlbare|padlssup}})
| ''text''{{i smallsup|small superscript}}{{spaces|2}}({{smaller|rather than:}}&amp;nbsp;''text''{{smallsup|small superscript}})
| {{tlbare|sub}} |
| text{{sub|subscript}}{{spaces|4}}{{sub|subscript}}text
| {{tlbare|smallsub}} | ({{tlbare|ssub}})
| text{{smallsub|small subscript}}{{spaces|4}}{{smallsub|small subscript}}text
| {{tlbare|subsub}} |
| text{{subsub|double-subscripted}}{{spaces|4}}{{subsub|double-subscripted}}text
}}
&lt;!---------------------------- Combined sup/sub -------------------------------&gt;
| col2style = border-left:1px solid #aaa;
| col2header = Combined super/subscripts
| col2 =
{{Aligned table
|cols=3 |class=nowrap
| {{tlbare|su}} |
| text{{su|p=p&amp;#61;superscript|b=b&amp;#61;subscript}}{{spaces|4}}{{su|p=p&amp;#61;superscript|b=b&amp;#61;subscript}}text
| {{tlbare|sup sub}} |
| text{{sup sub|sup|sub}}{{spaces|4}}{{sup sub|sup|sub}}text
| {{tlbare|±}} |
| 1.23{{±|4|2}}
| {{tlbare|overunderset}}&amp;nbsp;/ {{tlbare|underoverset}} |
| {{overunderset|text|superscript|subscript}}
}}
| below = [[Subscript and superscript]]
}}&lt;noinclude&gt;
{{Documentation
| content =
{{Collapsible option |statename=optional}}
[[Category:Superscript and subscript templates| ]]
[[Category:Documentation see also templates]]
}}&lt;!--(end Documentation)--&gt;
&lt;/noinclude&gt;</text>
<sha1>4q961i8xl01amkkyall6wwweyr5qydh</sha1>
</revision>
</page>
<page>
<title>Template:±</title>
<ns>10</ns>
<id>3105587</id>
<revision>
<id>597058230</id>
<parentid>488706539</parentid>
<timestamp>2014-02-25T12:02:51Z</timestamp>
<contributor>
<username>Edokter</username>
<id>1624037</id>
</contributor>
<comment>formatting</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="157">{{#if:{{{1|}}}
|{{#if:{{{2|}}}
|{{su
|p=+{{{1}}}
|b=&amp;minus;{{{2}}}}}
|±{{{1}}}
}}
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>tlrc1lja7gdiot301nowf5ag53e5zeq</sha1>
</revision>
</page>
<page>
<title>Template:Sub/doc</title>
<ns>10</ns>
<id>9858743</id>
<revision>
<id>670651405</id>
<parentid>665176739</parentid>
<timestamp>2015-07-09T09:02:58Z</timestamp>
<contributor>
<username>Od1n</username>
<id>1733529</id>
</contributor>
<comment>for a bit of time, shown example wasn't matching the template (refs [[Special:Diff/205629775|205629775]], [[Special:Diff/241530597|241530597]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="994">{{Documentation subpage}}
&lt;!-- EDIT TEMPLATE DOCUMENTATION BELOW THIS LINE --&gt;
'''Sub'''scripts text, i.e.
: &lt;code&gt;&lt;nowiki&gt;{{sub|Text to be subscripted}}&lt;/nowiki&gt;&lt;/code&gt; produces: {{sub|Text to be subscripted}}
This template may be listed at [[Wikipedia:Subst]] as a good candidate for substituting (i.e. &lt;nowiki&gt;{{subst:sub}}&lt;/nowiki&gt;). On a page that uses the template many times, however, this is likely to clutter and lengthen the page significantly.
Text can also be subscripted simply by using the &lt;nowiki&gt;&lt;sub&gt; and &lt;/sub&gt;&lt;/nowiki&gt; tags, so that:
: &lt;code&gt;&lt;nowiki&gt;&lt;sub&gt;Text to be subscripted&lt;/sub&gt;&lt;/nowiki&gt;&lt;/code&gt; also produces: &lt;sub&gt;Text to be subscripted&lt;/sub&gt;
== See also ==
{{Sup and sub-related templates |expanded}}
{{Math templates|notation |state=collapsed}}
&lt;includeonly&gt;
&lt;!-- ADD CATEGORIES BELOW THIS LINE --&gt;
[[Category:Superscript and subscript templates]]
[[Category:Mathematical formatting templates]]
[[Category:Wikipedia XHTML tag-replacing templates]]
&lt;/includeonly&gt;</text>
<sha1>g4qghoj2o4gorzd30ox4h0jbejlupjx</sha1>
</revision>
</page>
<page>
<title>Template:Sup/doc</title>
<ns>10</ns>
<id>9858745</id>
<revision>
<id>788496010</id>
<parentid>665176774</parentid>
<timestamp>2017-07-01T19:19:29Z</timestamp>
<contributor>
<username>Senator2029</username>
<id>13054498</id>
</contributor>
<minor/>
<comment>code → kbd</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="932">{{documentation subpage}}
'''Sup'''erscripts text, i.e.
: &lt;kbd&gt;&lt;nowiki&gt;{{sup|Text to be superscripted}}&lt;/nowiki&gt;&lt;/kbd&gt; p.s.roduces: &lt;sup&gt;Text to be superscripted&lt;/sup&gt;
This template is listed at [[Wikipedia:Subst]] as a good candidate for substituting (i.e. &lt;nowiki&gt;{{subst:sup}}&lt;/nowiki&gt;). On a page that uses the template many times, however, this is likely to clutter and lengthen the page significantly.
Text can also be superscripted simply by using the &lt;nowiki&gt;&lt;sup&gt; and &lt;/sup&gt;&lt;/nowiki&gt; tags, so that:
:{{tag|sup|content=Text to be superscripted}} also produces: &lt;sup&gt;Text to be superscripted&lt;/sup&gt;
== See also ==
{{Sup and sub-related templates |expanded}}
{{Math templates|notation |state=collapsed}}
&lt;includeonly&gt;
&lt;!-- ADD CATEGORIES BELOW THIS LINE --&gt;
[[Category:Superscript and subscript templates]]
[[Category:Wikipedia XHTML tag-replacing templates]]
[[Category:Mathematical formatting templates]]
&lt;/includeonly&gt;</text>
<sha1>c9ajojkceh42wd1avz5ctc19b6t5ozg</sha1>
</revision>
</page>
<page>
<title>Template:Sup sub/doc</title>
<ns>10</ns>
<id>21772622</id>
<revision>
<id>631223848</id>
<parentid>613569782</parentid>
<timestamp>2014-10-26T19:34:06Z</timestamp>
<contributor>
<username>Sardanaphalus</username>
<id>427947</id>
</contributor>
<minor/>
<comment>/* See also */ template name update</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="807">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
An alias for {{tl|su}}: &lt;nowiki&gt;{{sup sub|X|Y}} → {{su|p=X|b=Y}}&lt;/nowiki&gt;.
== Usage==
&lt;code&gt;
&lt;nowiki&gt;{{sup sub | superscript | subscript}}&lt;/nowiki&gt;
&lt;/code&gt; produces:
:{{sup sub | superscript | subscript}}
To get: {{larger|∑}}{{sup sub|n−1|k−1}}{{larger|(}}{{sup sub|2|g}}{{larger|)}}
You would use: &lt;nowiki&gt;{{larger|∑}}&lt;/nowiki&gt;'''&lt;nowiki&gt;{{sup sub|n−1|k−1}}&lt;/nowiki&gt;'''&lt;nowiki&gt;{{larger|(}}&lt;/nowiki&gt;'''&lt;nowiki&gt;{{sup sub|2|g}}&lt;/nowiki&gt;'''&lt;nowiki&gt;{{larger|)}}&lt;/nowiki&gt;
===See also===
{{Sup and sub-related templates}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES AND INTERWIKIS HERE, THANKS --&gt;
[[Category:Superscript and subscript templates]]
[[Category:Mathematical formatting templates]]
&lt;/includeonly&gt;</text>
<sha1>a55d5pzy0gftv8kyoqyq5g7rs9ayr10</sha1>
</revision>
</page>
<page>
<title>Template:Interwikitmp-grp</title>
<ns>10</ns>
<id>6603778</id>
<revision>
<id>667351324</id>
<parentid>474587919</parentid>
<timestamp>2015-06-17T14:08:39Z</timestamp>
<contributor>
<username>WOSlinker</username>
<id>3138265</id>
</contributor>
<comment>remove deleted cat as per [[Wikipedia:Categories for discussion/Log/2015 April 24]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2129">{| class=&quot;plainlinks mbox-small&quot; style=&quot;border:1px solid #aaa; background-color:#f9f9f9;&quot;
|-
! colspan=&quot;2&quot; class=&quot;mbox-text&quot; | Similar templates on Wikimedia sister projects
|-
{{#if: {{{meta|}}}{{{mta|}}}{{{ALL|}}}| &lt;!--- Meta-wiki ---&gt;
{{interwikitmp-grp/core
|1=m
|2={{{meta|{{{mta|{{{2|{{BASEPAGENAME}}}}}}}}}}}
|3=Meta-wiki
|4=Wikimedia-logo.svg
}}
}}
|-
{{#if:{{{commons|}}}{{{cms|}}}{{{com|}}}{{{ALL|}}}| &lt;!--- Mediawiki Commons ---&gt;
{{interwikitmp-grp/core
|1=commons
|2={{{commons|{{{cms|{{{com|{{{2|{{BASEPAGENAME}}}}}}}}}}}}}}
|3=Commons
|4=Commons-logo.svg
}}
}}
|-
{{#if:{{{wbk|}}}{{{wb|}}}{{{ALL|}}}| &lt;!--- Wikibooks ----&gt;
{{interwikitmp-grp/core
|1=b
|2={{{wbk|{{{wb|{{{2|{{BASEPAGENAME}}}}}}}}}}}
|3=Wikibooks
|4=Wikibooks-logo.svg
}}
}}
|-
{{#if:{{{wqt|}}} {{{wq|}}}{{{WQT|}}}{{{ALL|}}}| &lt;!--- Wikiquote ----&gt;
{{interwikitmp-grp/core
|1=q
|2={{{wqt|{{{wq|{{{2|{{BASEPAGENAME}}}}}}}}}}}
|3=Wikiquote
|4=Wikiquote-logo.svg
}}
}}
|-
{{#if:{{{ws|}}}{{{wsr|}}}{{{WSR|}}}{{{ALL|}}}| &lt;!--- Wikisource ----&gt;
{{interwikitmp-grp/core
|1=s
|2={{{ws|{{{wsr|{{{2|{{BASEPAGENAME}}}}}}}}}}}
|3=Wikisource
|4=Wikisource-logo.svg
}}
}}
|-
{{#if:{{{wkt|}}}{{{wdy|}}}{{{ALL|}}}| &lt;!--- Wiktionary ----&gt;
{{interwikitmp-grp/core
|1=wikt
|2={{{wkt|{{{wdy|{{{2|{{lcfirst:{{BASEPAGENAME}}}}}}}}}}}}}
|3=Wiktionary
|4=Wiktionary-logo-en.svg
}}
}}
|-
{{#if:{{{wn|}}}{{{wnw|}}}{{{ALL|}}}|
{{interwikitmp-grp/core
|1=n
|2={{{wn|{{{wnw|{{{2|{{BASEPAGENAME}}}}}}}}}}}
|3=Wikinews
|4=Wikinews-logo.svg
}}
}}
|-
{{#if:{{{species|}}}{{{wsp|}}}{{{ALL|}}}| &lt;!-- Wikispecies ---&gt;
{{interwikitmp-grp/core
|1=species
|2={{{species|{{{wsp|{{{2|{{BASEPAGENAME}}}}}}}}}}}
|3=Wikispecies
|4=Wikispecies-logo.svg
}}
}}
|-
{{#if:{{{wvy|}}}{{{ALL|}}}| &lt;!-- Wikiversity ---&gt;
{{interwikitmp-grp/core
|1=v
|2={{{wvy|{{{wv|{{{2|{{BASEPAGENAME}}}}}}}}}}}
|3=Wikiversity
|4=Wikiversity-logo.svg
}}
}}
|-
{{#if:{{{mw|}}}{{{ALL|}}}{{{mdw|}}}| &lt;!-- MediaWiki.org --&gt;
{{interwikitmp-grp/core
|1=mw
|2={{{mw|{{{mdw|{{{2|{{BASEPAGENAME}}}}}}}}}}}
|3=MediaWiki
|4=Mediawiki.png
}}
}}
|}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>qep0kdjos26b2qm9ndwcwr5chh7k0oa</sha1>
</revision>
</page>
<page>
<title>Template:Interwikitmp-grp/core</title>
<ns>10</ns>
<id>20417668</id>
<revision>
<id>312846834</id>
<parentid>273684172</parentid>
<timestamp>2009-09-09T20:42:37Z</timestamp>
<contributor>
<username>Plastikspork</username>
<id>5075409</id>
</contributor>
<minor/>
<comment>Protected Template:Interwikitmp-grp/core: [[WP:HRT|Highly visible template]] ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="248">&lt;noinclude&gt;{| class=&quot;plainlinks mbox-small&quot; style=&quot;border:1px solid #aaa; background-color:#f9f9f9;&quot;
&lt;/noinclude&gt;|-
| class=&quot;mbox-image&quot; | [[File:{{{4}}}|25x25px]]
| class=&quot;mbox-text&quot; | [[{{{1}}}:Template:{{{2}}}|{{{3}}}]]&lt;noinclude&gt;
|}&lt;/noinclude&gt;</text>
<sha1>k2bv0lqikanai6a4y861vb7xpri08z7</sha1>
</revision>
</page>
<page>
<title>Template:Tag/doc</title>
<ns>10</ns>
<id>21338059</id>
<revision>
<id>793306544</id>
<parentid>793151141</parentid>
<timestamp>2017-07-31T23:02:23Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>/* Parameters */ update doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3405">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --&gt;
: {{tc|tag|''tagname'' [|''type''] [|content&amp;#61;''text''] [|params&amp;#61;''parameters'']}}
This template provides a quick way to mention an [[XML]]/[[HTML]]-style tag in a preformatted way. Mainly used in discussion/help pages.
===Parameters===
Required parameters shown in '''''bold italics'''''.
; {{para|first unnamed}} {{nobold|&amp;nbsp;(''tagname'' above)}} : The XML/HTML tag's name (e.g. {{mono|100%|code}}, {{mono|100%|ref}}).
; {{para|second unnamed}} {{nobold|&amp;nbsp;(''type'' above)}} : To indicate which of the tag's types is/are presented:
:; &lt;kbd&gt;p&lt;/kbd&gt; &amp;nbsp;(&lt;kbd&gt;pair&lt;/kbd&gt;) ''(default)'' : A matching pair of open/start and close/end tags (e.g. {{tag|div|pair}}).&lt;br/&gt;To suppress the ellipsis (&quot;...&quot;) between the tags, add an empty {{para|content}} parameter.
:; &lt;kbd&gt;o&lt;/kbd&gt; &amp;nbsp;(&lt;kbd&gt;open&lt;/kbd&gt;) : An open/start tag (e.g. {{tag|span|open}}).
:; &lt;kbd&gt;c&lt;/kbd&gt; &amp;nbsp;(&lt;kbd&gt;close&lt;/kbd&gt;) : A close/end tag (e.g. {{tag|span|close}}).
:; &lt;kbd&gt;e&lt;/kbd&gt; &amp;nbsp;(&lt;kbd&gt;empty&lt;/kbd&gt;) &amp;nbsp;or &amp;nbsp;&lt;kbd&gt;s&lt;/kbd&gt; &amp;nbsp;(&lt;kbd&gt;single&lt;/kbd&gt;) &amp;nbsp;or &amp;nbsp;&lt;kbd&gt;v&lt;/kbd&gt; &amp;nbsp;(&lt;kbd&gt;void&lt;/kbd&gt;) : An empty element, formed with a single self-terminating tag (e.g. {{tag|hr|single}}); in HTML5 these are now known as &quot;void&quot; elements, though &quot;empty&quot; is the more common term.
; {{para|content}} : Text to place between open/start and close/end tags.
; {{para|params}} : Parameters to be included as part of an open/start tag.
; {{para|wrap|yes}} : Disable nowrap for long samples.
===Examples===
{{Markup
| &lt;nowiki&gt;{{tag|ref}}&lt;/nowiki&gt; | {{tag|ref}}
| &lt;nowiki&gt;{{tag|ref|content=}}&lt;/nowiki&gt; | {{tag|ref|content=}}
| &lt;nowiki&gt;{{tag|ref|content=hello}}&lt;/nowiki&gt; | {{tag|ref|content=hello}}
| &lt;nowiki&gt;{{tag|span|content=foo}}&lt;/nowiki&gt; | {{tag|span|content=foo}}
| &lt;nowiki&gt;{{tag|span|open}}&lt;/nowiki&gt; | {{tag|span|open}}
| &lt;nowiki&gt;{{tag|span|open|content=hello}}&lt;/nowiki&gt; | {{tag|span|open|content=hello}}
| &lt;nowiki&gt;{{tag|span|close|content=hello}}&lt;/nowiki&gt; | {{tag|span|close|content=hello}}
| &lt;nowiki&gt;{{tag|span|pair|content=hello}}&lt;/nowiki&gt; | {{tag|span|pair|content=hello}}
| &lt;nowiki&gt;{{tag|ref|open|params=group=&quot;note&quot;}}&lt;/nowiki&gt; | {{tag|ref|open|params=group=&quot;note&quot;}}
| &lt;nowiki&gt;{{tag|references|single}}&lt;/nowiki&gt; | {{tag|references|single}}
| &lt;nowiki&gt;{{tag|br|single}}&lt;/nowiki&gt; | {{tag|br|single}}
| &lt;nowiki&gt;{{tag|!--|content=comment}}&lt;/nowiki&gt; | {{tag|!--|content=comment}}
| &lt;nowiki&gt;{{tag|math|params=chem}}&lt;/nowiki&gt; | {{tag|math|params=chem}}
| &lt;nowiki&gt;{{tag|a
|params=href=&quot;&amp;lt;nowiki&gt;https://en.wikipedia.org/&amp;lt;/nowiki&gt;&quot;
|content=English Wikipedia}}&lt;/nowiki&gt; | {{tag|a|params=href=&quot;&lt;nowiki&gt;https://en.wikipedia.org/&lt;/nowiki&gt;&quot;|content=English Wikipedia}}
}}
===See also===
{{Interwikitmp-grp|commons=Tag|wbk=Tag|mw=Tag}}
* {{tl|HTMLElement}}
* {{tl|XMLElement}}
* {{tl|xtag}} adds a MediaWiki parser or extension tag that links to the extension page.
* [[mw:Help:Magic words#Miscellaneous|#tag:]], the [[Wikipedia:Parser functions|parser function]] that generates working tags.
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Programming typing-aid templates]]
[[Category:Wikipedia XHTML tag-replacing templates| ]]
}}&lt;/includeonly&gt;</text>
<sha1>32gsmap7q93fe1sfx1idfn8aad9heku</sha1>
</revision>
</page>
<page>
<title>Template:Template error report/doc</title>
<ns>10</ns>
<id>51792695</id>
<revision>
<id>758493661</id>
<parentid>758492798</parentid>
<timestamp>2017-01-05T19:46:29Z</timestamp>
<contributor>
<username>DMacks</username>
<id>712163</id>
</contributor>
<comment>doc parameter 1</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1316">{{Documentation subpage}}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
The [https://tools.wmflabs.org/bambots/TemplateParam.php Template Parameters tool] is now available on [[toollabs:|Tool Labs]], for viewing template parameter usage. It works with [[Wikipedia:TemplateData|TemplateData]] to show the validity of parameter names that are used in template transclusions. For a required parameter, it can display a list of pages where the template is missing the parameter. The tool also shows commonly used values for each parameter. The data is updated monthly.
== Usage ==
The template is included in transclusions of {{Tl|TemplateData header}}. If it's needed elsewhere, simply place the following in the template's documentation:
&lt;code&gt;&lt;pre&gt;&lt;nowiki&gt;
== Error reports ==
{{Template error report}}
&lt;/nowiki&gt;&lt;/pre&gt;&lt;/code&gt;
By default, it links a report for the template-page being viewed. To link a report for a different template-page, pass it as the first parameter:
:{{tlx|Template error report|Example}}
makes a link to the error repor for [[Template:Example]]:
:{{Template error report|Example}}
&lt;includeonly&gt;{{sandbox other||
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
}}&lt;/includeonly&gt;</text>
<sha1>oq7adxm0e382quatz777gthmibrlosr</sha1>
</revision>
</page>
<page>
<title>Template:Template other/doc</title>
<ns>10</ns>
<id>21418554</id>
<revision>
<id>778315210</id>
<parentid>777393876</parentid>
<timestamp>2017-05-02T11:11:28Z</timestamp>
<contributor>
<username>NotThatAnonymous</username>
<id>19097016</id>
</contributor>
<comment>Rephrasing.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2850">{{Documentation subpage}}
{{Template shortcut|ns10}}
{{High-risk| 250,000+ }}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
This is a meta-template which helps other templates detect whether they are used in the &quot;Template:&quot; namespace.
==Usage==
This template usually takes one or two parameters:
: {{tc|Template other&amp;nbsp;|''[result/action if on a template page]''&amp;#32;(|''[result/action if on another type of page]'')}}
For example, if {{tlf|Template other&amp;#32;|On template page&amp;#32;|Not on template page}} were on a &quot;Template:&quot; page, it would return:
: {{Template other |On template page |Not on template page}}
On any other type of page (e.g. &quot;Wikipedia:&quot;, &quot;User:&quot;) it would return:
: {{Template other|demospace=other |On template page |Not on template page}}
A typical use is to manage the categorization of template pages. Adding {{tlf|Template other&amp;nbsp;|&amp;#32;|{{!((}}Category:''[category name]''{{))!}}}} to a template, for instance, means it would only categorize a page when that page isn't a template page. (The first parameter consists of nothing, so no action taken if/when the template is on a template page.)
==Demospace==
The parameter {{mono|demospace}} can be used to demonstrate or test this template. By default, it is undefined and has no effect on the template's action, but:
* when set as &quot;template&quot; ({{para|demospace|template}}), it prompts the template to return the ''first'' result/action above (i.e. to behave as if on a &quot;Template:&quot; page) even if the template is on a different type of page;
* when set as &quot;other&quot; ({{para|demospace|other}}), it prompts the template to return the ''second'' result/action above (i.e. to behave as if not on a &quot;Template:&quot; page) even if the template is on a &quot;Template:&quot; page.
For example:
&lt;pre&gt;
{{Template other
| demospace = template
| Template page text
| Other pages text
}}
&lt;/pre&gt;
No matter on what kind of page the code above is used, it returns:
{{Template other
| demospace = template
| Template page text
| Other pages text
}}
You can make it so your template also understands the '''demospace''' parameter. That means you can demonstrate the different appearances of your template in the documentation for your template. Then do like this:
&lt;pre&gt;
{{template other
| Template page text
| Other pages text
| demospace = {{{demospace|}}}
}}
&lt;/pre&gt;
==Technical details==
This template detects &quot;Template talk:&quot; pages as type '''other'''. For more details relevant to this template, see {{tl|Main talk other}}, which works similarly.
{{Namespace and pagename-detecting templates}}
&lt;includeonly&gt;{{sandbox other||
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Namespace manipulation templates]]
[[Category:Template namespace templates]]
}}&lt;/includeonly&gt;</text>
<sha1>ihagzdvdnx2jorkt1uktkzo8xrjlbo1</sha1>
</revision>
</page>
<page>
<title>Template:Hilite</title>
<ns>10</ns>
<id>3521493</id>
<redirect title="Template:Highlight" />
<revision>
<id>804535580</id>
<parentid>697037922</parentid>
<timestamp>2017-10-09T17:16:23Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Hilite]]&quot;: [[WP:High-risk templates|Highly visible template]]; 2,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="32">#REDIRECT [[Template:Highlight]]</text>
<sha1>51xixvf1bd1q22cw3mmsb3zgty518m4</sha1>
</revision>
</page>
<page>
<title>Template:Param</title>
<ns>10</ns>
<id>10360058</id>
<revision>
<id>819686133</id>
<parentid>671370791</parentid>
<timestamp>2018-01-10T19:17:23Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:Param]]&quot;: [[WP:SEMI|semi-protecting]] highly-visible templates in response to recent template-space vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefin...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="349">{{#ifeq:{{Yesno|{{{nested|no}}}}}|yes||&lt;{{{tag|code}}}&gt;}}&amp;#123;&amp;#123;&amp;#123;{{{1&lt;noinclude&gt;|foo&lt;/noinclude&gt;}}}{{#ifeq:{{{2}}}|{{{2|}}} |&amp;#124;}}{{{2|}}}&amp;#125;&amp;#125;&amp;#125;{{#ifeq:{{Yesno|{{{nested|no}}}}}|yes||&lt;/{{{tag|code}}}&gt;}}&lt;noinclude&gt;
{{Documentation}}
&lt;!--
PLEASE ADD CATEGORIES AND INTERWIKIS
TO THE /doc SUBPAGE, THANKS
--&gt;
&lt;/noinclude&gt;</text>
<sha1>qvl904teu15zatr1ralor7q8z3zs23g</sha1>
</revision>
</page>
<page>
<title>Template:Template usage/doc</title>
<ns>10</ns>
<id>47053708</id>
<revision>
<id>793358321</id>
<parentid>679757192</parentid>
<timestamp>2017-08-01T08:05:20Z</timestamp>
<contributor>
<username>Huntster</username>
<id>92632</id>
</contributor>
<comment>Missing a closing bracket in the example.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="24020">{{Documentation subpage}}
{{tsh|tlusage|tlre}}
== Purpose ==
This template helps field the details of users' &lt;kbd&gt;parameter=value&lt;/kbd&gt; deployments on the wiki for any inline template usage.&lt;ref&gt;Some templates, like ''Info box'', and ''Cite'' are usually written with one line per parameter. These are possible to find using regexp, but this feature is not yet available for this template.&lt;/ref&gt;
[[Special:Version#installed software|This version]] of the search engine, [[mw:Help:CirrusSearch|Cirrus Search]], offers
regular expression searches. Here is the advantage:
: {{Sl|hastemplate:&quot;Convert&quot; insource:&quot;{{!}}xx{{!}}&quot; prefix::}} finds 3123 articles, but
: {{Template usage|Convert|[\{{!}}xx\{{!}}]|0}} finds the 45 you really wanted, the ones having the xx ''inside the template call''.
This template instills some regexp-search best practices:
* Always filter a regexp search. Never run a bare regexp search. This template creates a search link, but unlike {{tl|search link}}, this template pre-builds filters and the more arcane elements of the regexp necessary to target a pattern ''inside'' a template wikitext. Here you need only enter the template name, and start focusing on the search &quot;pattern&quot;.
* Start in a small search domain before running it on the wider wiki. This template defaults the search domain to ''one page'' in order to create a small footprint, because only a few regex searches are technically able to run at a time against the database. It minimizes your footprint, and guarantees that your search link will never run an untested regexp on {{NUMBEROFPAGES}} pages, even if [[H:S#User preferences|someone's default search]] would let them do that.
*Develop the query with the target data in view for study. By default you start with this template in an ''ad hoc'' sandbox, the edit box of a page that already contains a sample of the target. [[Regular expressions]] are formal logic, and so these little computer programs will usually contain mistakes at first that are very easy to discover by running a quick test, so it is characteristic of regex that they are rapidly developed around a small set of test data, rather than slowly debugged against the large data-set they are designed for.
{{tl|Regex}} also employs these practices, but not specifically for template calls.
With this template developers can 1) generate lists of sub-optimal or non-preferred template usage, and &lt;ref&gt;These will propagate themselves as there presence tempts editors who copy other template calls that they see. These errors are caused by haste, or poor, or misunderstood template documentation.&lt;/ref&gt; 2) achieve template feature parity and avoid the need for backward compatible code. They can do this by directly removing unwanted template usage from the wikitext. Robo-edits can change a feature or add a new feature in lock step with a new version of a template. [[WP:AWB]] is such a robo-editor and it can also do safe regexp searches, and is a complete alternative, but you'd have to download Wikipedia first.
== Arguments ==
{{details|Help:Template#Parameters}}
{| class=&quot;wikitable&quot;
|-
|{{para|template}} or {{param|1}}|| template name. Defaults to &quot;Template usage&quot;. It is also the first unnamed parameter.
|-
|{{para|pattern}} or {{param|2}}|| a regexp search pattern. Targets the inside of all occurrences of the template in wikitext, that is, after the first pipe and before the closing curly bracket:
&lt;kbd&gt;&amp;#123;&amp;#123;Val{{!}}{{hilite|1=9999{{!}}ul=m/s{{!}}fmt=commas}}&amp;#125;&amp;#125;&lt;/kbd&gt;.
Always use {{tl|!}} for `{{!}}'. Use {{tl|1==}} for `=' at any time, or when using the unnamed form. See [[#About CirrusSearch|&amp;sect;About CirrusSearch]]&quot; below for more details about types of queries.
|-
|{{para|prefix}} or {{param|3}}|| search domain. Has [[H:S#Parameters|the usual ''prefix:'' meaning]], plus accepts a [[WP:namespace|namespace]] number, or &lt;code&gt;n&lt;/code&gt; for the current namespace (or `{&lt;nowiki/&gt;{ns:1}}:', etc.). For all of mainspace use &lt;code&gt;:&lt;/code&gt; or &lt;kbd&gt;0&lt;/kbd&gt; (zero). To search only mainspace articles that start with ''letter(s)'', assign ''that'' to prefix. To search another namespace that starts with ''letter(s)'', spell-out the namespace (or use `{&lt;nowiki/&gt;{ns:1}}:''letter(s)'', etc.'). Defaults to its current page.
|-
|{{para|label}} or {{param|4}}|| search link label. It is the forth &quot;unnamed&quot; parameter, so if you enter the first three directly (unnamed), you can also enter a link label directly.
|}
{&lt;nowiki /&gt;{Template | parameters | can direct template behavior.}}
:&quot;Named&quot; parameters use &lt;kbd&gt;|{{spaces|2}}name{{spaces|2}}={{spaces|2}}indirect value{{spaces|2}}|&lt;/kbd&gt;{{spaces|2}}passing in{{spaces|2}}'&lt;kbd&gt;indirect value&lt;/kbd&gt;'.
:&quot;Unnamed&quot; parameters use &lt;kbd&gt;|{{spaces|2}}direct value{{spaces|2}}|&lt;/kbd&gt;{{spaces|2}}passing in{{spaces|2}}'&lt;kbd&gt;{{spaces|2}}direct value{{spaces|2}}&lt;/kbd&gt;' (with outer spaces.)
== Procedure ==
Namespace plus pagename equals fullpagename.
The procedure here is an iterative, read-evaluate-modify cycle.
# Find an existing fullpagename with the template instances you are interested in targeting. Or create one yourself, and save it to the database so the query will find it.
# Open the wikitext. Enter the template name and a regex pattern. (A prefix will be added later.)
# Show Preview.
# Click the newly rendered search link. Note the bold text in each match, the query (centered), and the count (off to the right).
# Go back in your browser to the edit box. (Or don't go back, you may want to modify the query on the search results page.)
# Modify the regexp in the edit box. Cycle.
# Enter a prefix. Start with a namespace. You can then reduce the number of results by adding [[H:S#Parameters|the first letter(s) of]] pagenames onto the namespace.
Then you might need to run each alias (name) the template might have.
Step '''6''' is the core provision of this template. ''Caveat emptor'': if you change the ''target'', you'll have to save and [[WP:Purge|purge]], ''but not if you just change the pattern''.
This template offers the addition of the search link label, but defaults to showing the regexp.
Currently there is no way to share a {{tlf|tlusage}} search link if you want it to search more than one namespace. The workaround is one ''tlusage'' per namespace, or to copy the regexp from a ''tlusage'' results page query to a {{tl|search link}} template, which offers the setting of namespaces, and all. Currently choosing a namespace is not mandatory there, but if you don't choose a namespace there, be aware of possible inconsistencies: the search domain will be different every time it runs, depending on the current user's current search domain. You can set it and forget it at [[Special:Search]] Advanced.
== Examples and sandbox ==
As an ''ad hoc'' sandbox, you can show the wikitext of a section like this, already saved in the database, with template calls on it, modify some patterns, do a Show Preview, and see what matches when you click on the newly formed &quot;search the database&quot; link, all quite safely, and without changing a thing in the database.
&lt;!--If you change the below, sample, targets, you'll have to save the page
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
to get them into the database to find them in the query. The first batch here
is such concentrated text that it shows up to six or seven hits on the results page. There is no excess verbiage here. --&gt;
The template calls that produce &quot;{{val|1|ul=ft/s|fmt = commas}},
{{val|2|u=ft2}},
{{val|3|u=m/s| fmt =commas }},
{{val|4|u=m*s-2}},
{{val|5|u=ft.s-2}},
{{val|6|u=C/J}}, and
{{val|7|ul=J/C}}&quot;
appear in the wikitext of this section like this:
# &lt;kbd&gt;&lt;nowiki&gt;{{val|1|ul=ft/s|fmt = commas}}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|2|u=ft2}}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|3|u=m/s| fmt =commas }}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|4|u=m*s-2}}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|5|u=ft.s-2}}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|6|u=C/J}}&lt;/nowiki&gt;&lt;/kbd&gt;
# &lt;kbd&gt;&lt;nowiki&gt;{{val|7|ul=J/C}}&lt;/nowiki&gt;&lt;/kbd&gt; → {{val|7|ul=J/C}}
&lt;!--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you change the above targets, you'll have to save the page
to get them into the database to find them in the query.--&gt;
Note how the above targets are |numbered|, then click on these links.
{| class=&quot;wikitable&quot;
! scope=&quot;col&quot; width=&quot;200px&quot; | Query
! Transcluding {{tlf|tlusage}} produces a [[Template:Internal search templates common doc#Search links|search link]]
! Answer
|-
|'''Q1''' Does this page employ template Val?
|{{#invoke:DemoTemplate|search link|hastemplate:&quot;val&quot; prefix:{{FULLPAGENAME}}}}
|'''A.''' Yes, because its title shows on the search results.
|-
|'''Q2''' Does this page use Val's fmt parameter?
|&lt;code&gt;&lt;nowiki&gt;{{tlusage|val|fmt }}&lt;/nowiki&gt;&lt;/code&gt; →
{{tlusage|val|fmt }}
|'''A'''. Look for 1 and 3 in the search results in bold text.
|-
|'''Q3'''. Which calls to Val on this page use &lt;kbd&gt;u=ft&lt;/kbd&gt; OR &lt;kbd&gt;ul=ft&lt;/kbd&gt;? (a one letter diff)
| &lt;code&gt;&lt;nowiki&gt;{{tlusage|val|pattern=ul?=ft}}&lt;/nowiki&gt;&lt;/code&gt; →
{{tlusage|val|pattern=ul?=ft}}
|'''A'''. Look for 1, 2, and 5 in bold text.
|-
|'''Q4'''. AND of these, who also uses fmt=commas after that?
|&lt;code&gt;&lt;nowiki&gt;{{tlusage|val|pattern=ul?=ft.*commas}}&lt;/nowiki&gt;&lt;/code&gt; →
{{tlusage|val|pattern=ul?=ft.*commas}}
|A. No context shown, but article title is shown. A half a Bug?
|-
|Which use one space before commas?
|&lt;code&gt;&lt;nowiki&gt;{{tlusage|val|. commas}}&lt;/nowiki&gt;&lt;/code&gt; →
{{tlusage|val|. commas}}
|'''A'''. 1 but not 2.
|-
|'''Q5'''. Which use either ul?=ft OR fmt=commas
|&lt;code&gt;&lt;nowiki&gt;{{tlusage|val|pattern=(ul?=ft{{!}}co)}}&lt;/nowiki&gt;&lt;/code&gt; →
{{tlusage|val|pattern=(ul?=ft{{!}}=co)}}
|'''A'''. 1, 2, 3, and 5.
|-
|'''Q6'''. Which use ''ft'' or ''m'', in {{para|u}} or {{para|ul}}?
|&lt;code&gt;&lt;nowiki&gt;{{tlusage|val|pattern=ul?=(ft{{!}}m)}}&lt;/nowiki&gt;&lt;/code&gt; →
{{tlusage|val|pattern=ul?=(ft{{!}}m)}}
|'''A'''. 1, 2, 3, 4, and 5.
|-
|'''Q7'''. Which use . or * in the unit code?
|&lt;code&gt;&lt;nowiki&gt;{{tlusage|val|pattern=u.+(\.{{!}}\*) }}&lt;/nowiki&gt;&lt;/code&gt; →
{{tlusage|val|pattern=u.+(\.{{!}}\*) }}
|'''A'''. 4 and 5.
|-
|Which use a pipe?
|&lt;code&gt;&lt;nowiki&gt;{{tlusage|val|\{{!}} }}&lt;/nowiki&gt;&lt;/code&gt; →
{{tlusage|val|\{{!}} }}
|All of them
|-
|'''Q8'''. Which use / or - ''within'' the {{para|u}} or {{para|ul}} paramter?
|&lt;code&gt;&lt;nowiki&gt;{{tlusage|val|pattern=ul?=[^{{!}}}]+(\/{{!}}-)}}&lt;/nowiki&gt;&lt;/code&gt; →
{{tlusage|val|pattern=ul?=[^{{!}}}]+(\/{{!}}-)}}
|'''A'''. 1,3,4,5,6 and 7.
|-
|'''Q9'''. Where is Val used in the template namespace with u or ul?
|&lt;code&gt;&lt;nowiki&gt;{{tlre|val|pattern=ul?=|prefix=10}}&lt;/nowiki&gt;&lt;/code&gt; →
{{tlre|val|pattern=ul|prefix=10}}
|'''A'''. In the 15 or so articles listed. (Uses the {{tlf|tlre}} shortcut.)
|-
| '''Q10''' Which articles employ {{tl|Convert}}'s &quot;and(-)&quot; option?
| &lt;code&gt;&lt;nowiki&gt;{{tlre|Convert|Articles using {{tlf|Convert}}'s &quot;and(-)&quot; option.|pattern=and\(-\)|prefix = 0|}}|prefix = 0|}}&lt;/nowiki&gt;&lt;/code&gt; →
{{tlre|Convert|Articles using {{tlf|Convert}}'s &quot;and(-)&quot; option.|pattern=and\(-\)|prefix = 0|}}
| '''A''' Only two.
|}
In '''Q2''', notice how the MediaWiki software ignores the spaces ''around'' parameters, but how in '''Q4''' the same MediaWiki software processes the spaces ''inside'' parameters. Q2 might have been solved with a plain &lt;kbd&gt;insource:val fmt&lt;/kbd&gt; search because &quot;fmt&quot; and &quot;val&quot; are whole words, and fmt is rarely seen apart from inside Val. How about &lt;kbd&gt;hastemplate:val insource:fmt&lt;/kbd&gt;?
Also see the {{plain link|https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html#regexp-syntax| more general examples for the regex of CirrusSearch}}.
== About CirrusSearch ==
These powerful (but expensive) [[mw:Extension:CirrusSearch|CirrusSearch]] search results could not be obtained with the previous [[mw:Extension:Lucene-search|Lucene-search]] parameters. Regexp searches are restricted on the server, so this template reduces the regex search footprint by using the ''hastemplate:'' filter every time, and further restricts the search domain to a namespace ''at most'', by using the ''prefix:'' filter. The ''prefix:'' filter can also filter a namespace by specifying that only page names that start with given letters are searched.
=== Parameters insource and hastemplate ===
{{See also|Help:Search#Parameters}}
Here are some notes on the [[mw:Help:CirrusSearch|CirrusSearch]] features of ''hastemplate'' and ''insource''.
''Hastemplate'' finds what is deployed:
* hastemplate will '''not''' count a template when only their sub-template is called
* hastemplate will '''not''' count templates inside comments
* hastemplate will '''not''' count templates inside nowiki tags
* hastemplate '''will''' count templates inside parser functions and other templates, as long as the template is wrapped with double curly braces.
Hastemplate is case-insensitive.
Insource has a dual role:
*&lt;kbd&gt;insource:&quot;''quotes-delimited arguments''&quot;&lt;/kbd&gt; finds only whole, alphanumeric words, adjacent to one another in that sequence in the wikitext, treating the entire set of non-alpanumeric characters between them as if they were whitespace. For example, &lt;code&gt;insource:&quot;M S&quot;&lt;/code&gt; matches &lt;kbd&gt;m/s&lt;/kbd&gt;, as do &lt;code&gt;insource:&quot;M-S&quot;&lt;/code&gt; and &lt;code&gt;insource:&quot;m=s&quot;&lt;/code&gt;; they all have two arguments, and what matched is shown in bold.
*Plain &lt;kbd&gt;insource:word1 word2&lt;/kbd&gt; has one argument, word1. The words after word1 are treated normally: they're all ANDed as whole words (never as pieces or patterns) OR their word stems, anywhere in the wikitext of the page, and in any sequence; and the match is not shown in bold. (Intitle acts the same way around the &quot;quotes&quot; syntax.)
* &lt;kbd&gt;Insource:/''slash delimited argument''/&lt;/kbd&gt; finds everything, even comments. It only ever has one argument. What matched is shown in bold text.
*&lt;kbd&gt;Insource:/''regexp''/&lt;/kbd&gt; finds everything, even pieces and parts, conveying no notion of &quot;words&quot;, but only that of a character in an adjacent position to another character in a sequence.
* &lt;kbd&gt;Insource:/''regexp''/&lt;/kbd&gt; requires you to use &lt;kbd&gt;\/&lt;/kbd&gt; for any slash character in the pattern for an obvious reason. It also requires you to &quot;backslash-escape&quot; other metacharacters for various other reasons.
For ''insource:'' spaces are not allowed after the colon; it's &lt;code&gt;insource:&quot;&lt;/code&gt;, or &lt;code&gt;insource:/&lt;/code&gt; for good reasons.
Insource &quot;with quotes&quot; is a safe and sufficient way to find many kinds of template usage. Say the target string is {{nowrap|&lt;kbd&gt;&lt;nowiki&gt;{{Val|9999|ul=AU|fmt=commas}}&lt;/nowiki&gt;&lt;/kbd&gt;}}:
* &lt;kbd&gt;insource:&quot;val 9999 ul AU fmt commas&quot;&lt;/kbd&gt; → match
* &lt;kbd&gt;hastemplate: val insource:&quot;9999 ul&quot;&lt;/kbd&gt; → match
* &lt;kbd&gt;hastemplate: val insource:&quot;999&quot;&lt;/kbd&gt; → no match
* &lt;kbd&gt;hastemplate: val insource:&quot;fmt commas&quot;&lt;/kbd&gt; → match
* &lt;kbd&gt;hastemplate: val insource:&quot;ul AU&quot;&lt;/kbd&gt; → match
* &lt;kbd&gt;hastemplate: val insource:&quot;ul au&quot;&lt;/kbd&gt; → match
* &lt;kbd&gt;hastemplate: val insource:fmt&lt;/kbd&gt; → match
In some cases there might be disadvantages. The ''insource'':&quot;quotes version&quot;, is case insensitive and blind to non-alphanumeric characters. In other cases it is an advantage to have more search results than intended. For thorough precision, use /regex/.
=== About regex ===
This covers enough regex to get started using this template to answer any question about wikitext contents on the wiki. Regex are about using ''meta characters'' to create patterns that match any ''literal characters''. The pattern you give will match a target, character by character. To make some positions match with multiple possibilities, metacharacters are needed, and they are from the same keyboard characters that are also in the wikitext.
==== Metacharacters ====
The left curly bracket is a metacharacter, and so the regexp pattern given must &quot;escape&quot; any opening curly bracket &lt;code&gt;\{&lt;/code&gt; in the target &quot;&lt;kbd&gt;{&lt;/kbd&gt;&quot; intending to match a template in the wikitext. All target text (all wikitext) is literal text, but we can backslash &quot;escape&quot; the regex metacharacters &lt;code&gt; \. \? \+ \* &lt;nowiki&gt;\{{!}}&lt;/nowiki&gt; \{ \[ \] \( \) \&quot; \\ \# \@ \&lt; \~ &lt;/code&gt; when we refer to them as literal characters in the wikitext we are interested in mining. (Notice the backslash-escape of the already template-escaped pipe character in order to find a literal pipe character in the wikitext.) Search will ignore the backslash wherever it is meaningless or unnecessary: &lt;code&gt;\n&lt;/code&gt; matches &lt;kbd&gt;n&lt;/kbd&gt;, and so on. So although you don't need to backslash escape &lt;code&gt;&amp;&lt;/code&gt; or &lt;code&gt;&gt;&lt;/code&gt; or &lt;code&gt;}&lt;/code&gt;, it is safe to do so. An unnecessary backslash will not cause your pattern to fail, but what ''will'' is using certain characters literally{{mdash}}&lt;kbd&gt; [ ] . * + ? &amp;#124; { ( ) &quot; \ # @ &lt; ~ &lt;/kbd&gt;.
* &lt;code&gt;[0-9]&lt;/code&gt; will match any digit, &lt;code&gt;[a-y]&lt;/code&gt; any lowercase letter except z, &lt;code&gt;[zZ]&lt;/code&gt; any z, (and so on). So square brackets mean &quot;character class&quot;.
* Dot &lt;code&gt;.&lt;/code&gt; will match a newline, or ''any character'' in the targeted position
The number of sequential digits or characters these symbols match is expressed by following it with a ''quantifying'' metacharacter:
* &lt;code&gt;*&lt;/code&gt; means zero or more
* &lt;code&gt;+&lt;/code&gt; means one or more
* &lt;code&gt;?&lt;/code&gt; means zero or one
of the character it follows after. The number of times it matches can also be given in a range, &lt;code&gt;a{2} a{2,} a{2,5}&lt;/code&gt; matches exactly 2, 2 or more, or 2-5 &lt;kbd&gt;a&lt;/kbd&gt;'s. So curly brackets mean &quot;quantifier&quot;.
* The parenthesis are a grouping mechanism, so we can quantify more than just the previous character, and so we can make boundaries for a set of ''alternative'' matches. (See ''alternation'' below.)
* The quotation marks are an escape mechanism, like square brackets or the backslash.
* The angle brackets stand for numerals, not digits. Say &lt;code&gt;&lt;5-799&gt;&lt;/code&gt;, to match 5{{ndash}}799, in one to three positions. Compare this with the alternative: &lt;code&gt;[0-9]{1,3}&lt;/code&gt; could match ones, tens, or thousands as, 0-999 or 00-999 or 000-999.
* Tilde &lt;code&gt;~&lt;/code&gt; looks ahead and negates the next character. In other words, if the pattern matches in this position, then un-match it if the next character is &lt;code&gt;~&lt;/code&gt;''character''.
The {{plain link|https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html#regexp-syntax|other metacharacters offered by CirrusSearch}} may be helpful in some cases: ''complement'' &lt;kbd&gt;~&lt;/kbd&gt;, ''interval'' &lt;kbd&gt; &lt;3-5559&gt;&lt;/kbd&gt;, ''intersection'' &lt;kbd&gt;&amp;&lt;/kbd&gt;, and ''any string'' &lt;kbd&gt;@&lt;/kbd&gt;.
==== Character classes ====
A character class is enclosed in [square brackets]. It means these characters, &quot;literal characters&quot;, plural. It means &quot;literal&quot;, and so ''normally'' you don't have to escape a metacharacter character in a character class; they're already square-brackets escaped. The /slash delimiters/ mean we must of course escape ''any'' slash character, even inside a character class. No other character in a character class except slash always needs escaping; but because &lt;code&gt;]&lt;/code&gt; and &lt;code&gt;-&lt;/code&gt; have special meaning (metacharacter) to a character class, they must be escaped sometimes: those two are also literal (escaped) metacharacters ''if they are the first character'', but otherwise they must be also, like dash, be escaped: only backslash-escape works as the escape mechanism in a character class.
A character class can serve to escape metacharacters, so &lt;code&gt;[-|*\/.{\]]&lt;/code&gt; or &lt;code&gt;[]|*\/.{\-]&lt;/code&gt; means &quot;either a dash OR pipe OR star OR slash OR dot OR left curly bracket or a right square bracket&quot;. So &lt;code&gt;[][.?+*|\/{}()\-]&quot;&lt;/code&gt; or &lt;code&gt;[-[.?+*|\/{}()\]]&quot;&lt;/code&gt; works to find all the metacharacters in the wikitext, all of them except the backslash. Neither &lt;code&gt;[\]&lt;/code&gt; nor &lt;code&gt;[\\]&lt;/code&gt; allows us to OR a literal backslash. To OR a backslash character, there's '''alternation''' with the pattern &lt;code&gt;\\&lt;/code&gt; to handle that case. (See below.)
A character class understands the &quot;inverse&quot; of itself, &lt;kbd&gt;[^abc]&lt;/kbd&gt; is &quot;not a or b or c&quot;. A character class stands for a single character in a targeted position, so it's not really an inverse of a set, but rather a NOT of a character.
==== Alternation ====
Finally, '''alternation''' is a class of regex that contains alternative possibilities for a match, say an AA or a BB, or a CC:
* &quot;AA&quot; OR &quot;BB&quot; OR &quot;CC&quot; in Boolean logic
* &lt;kbd&gt;AA|BB|CC&lt;/kbd&gt; in a standard, MediaWiki CirrusSearch, regexp
* &lt;code&gt;'''('''&lt;nowiki&gt;AA{{!}}BB{{!}}CC&lt;/nowiki&gt;''')'''&lt;/code&gt; where it is used within a larger regexp. We need to replace the pipe character with {{tl|!}} so that the &quot;pipe&quot; for the regexp won't confuse this template (or any other template). We need the parentheses at times because an alternation finds the ''longest'' pattern, and so the parentheses define that boundary, but it's a boundary you don't have to make if an alternation is the entire regexp pattern. In our case the {{para|pattern}} you supply is situated at the end of a longer, pre-built regexp.
==== About this template ====
The wiki regex is pretty straightforward. Characters stand for themselves unless they are metacharacters. If they are metacharacters they are escaped if outside of a character class. Use one of three escape mechanisms:
* &lt;code&gt;&quot;.&quot;&lt;/code&gt;
* &lt;code&gt;\.&lt;/code&gt;
* &lt;code&gt;[.]&lt;/code&gt;
where the dot is now a literal dot in the wikitext, not the metacharacter.
First, this template take's [[#Parameters|its arguments]] named or unnamed. If you use the ''unnamed'' one, you can give regexp patterns that start or end with a space. If you use the ''named'' one, you must, additionally, &quot;escape&quot; any outer space. (To escape is explained elsewhere.)
The regexp targets the area after the initial pipe and before the first closing curly bracket, &lt;kbd&gt;&amp;#123;&amp;#123;Val{{!}}'''{{hilite|1=9999{{!}}ul=m/s{{!}}fmt=commas}}'''&amp;#125;&amp;#125;&lt;/kbd&gt;. This pattern portion is expanded &lt;kbd&gt;/[Vv]al\|[^}]*&lt;/kbd&gt;&lt;code&gt;{{param|pattern}}&lt;/code&gt;&lt;kbd&gt;\}/&lt;/kbd&gt;.
This template ''could'' construct the pattern &lt;kbd&gt;\{[Nn]ame.?\|[^}]*{{param|pattern}}&lt;/kbd&gt;, where &lt;kbd&gt;pattern&lt;/kbd&gt; is the value you give. That regexp means
* &lt;kbd&gt;pattern&lt;/kbd&gt; ''follows'' any number (&lt;kbd&gt;*&lt;/kbd&gt;) of characters that are &quot;''not'' (&lt;kbd&gt;^&lt;/kbd&gt;) a right curly bracket&quot;; in other words it will ''precede'' a right curly bracket.
* The template ''Name'' follows a left curly bracket, and is case insensitive.
* A pipe &lt;kbd&gt;\|&lt;/kbd&gt; (&lt;code&gt;\{{tl|!}}&lt;/code&gt;) follows the name, but makes allowance for one possible character in between, the dot.
* The dot &lt;kbd&gt; . &lt;/kbd&gt; can match any character, including the &quot;zero or one&quot; (&lt;kbd&gt;?&lt;/kbd&gt;) newline characters that will match the case where the initial pipe is put on its own line, such as how the citation and infobox templates are often transcluded (or &quot;called&quot;).
This template ''cannot'' make that pattern with the &lt;kbd&gt;.?&lt;/kbd&gt; because in general there are many template names that only differ by the last letter, (such as the [[Template:tl#General-purpose formatting|tl]] family of template names). But to match the particular case where the template's first parameter starts after a newline you have to match that newline with a dot. You can modify the query and add that &lt;kbd&gt; .? &lt;/kbd&gt; for searches for Infobox and Cite templates. Because &lt;code&gt;?&lt;/code&gt; counts zero as a match, it will also work where the pipe is on the same line.
== See also ==
* {{tl|Regex}}
* [[User:John of Reading/Typo fixing with AutoWikiBrowser|One power user's AutoWikiBrowser]]
== Notes ==
{{reflist}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
&lt;!-- Categories below this line, please; interwikis at Wikidata .
The includeonly tags put the categorizing [[category:mark]] onto the template
wherever this page is transcluded.
The #ifeq comparison to the sandbox neutralizes its effect there. --&gt;
[[Category:Search templates]]
}}&lt;/includeonly&gt;</text>
<sha1>g10w44aoorxde3ia7wy441cv0dlheg7</sha1>
</revision>
</page>
<page>
<title>Template:Tlusage</title>
<ns>10</ns>
<id>47192419</id>
<redirect title="Template:Template usage" />
<revision>
<id>670638257</id>
<timestamp>2015-07-09T06:29:58Z</timestamp>
<contributor>
<username>Cpiral</username>
<id>2517237</id>
</contributor>
<comment>new redirect to Template:Template usage</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="36">#REDIRECT[[Template:Template usage]]</text>
<sha1>4upel98p6hf0lqcqs94e5h08aojlc1a</sha1>
</revision>
</page>
<page>
<title>Template:TemplateData header/doc</title>
<ns>10</ns>
<id>40047552</id>
<revision>
<id>751701530</id>
<parentid>677887769</parentid>
<timestamp>2016-11-27T10:07:43Z</timestamp>
<contributor>
<username>Zyxw</username>
<id>473593</id>
</contributor>
<comment>document other parameters, add category, add wrapper to prevent /sandbox from being added to categories</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2174">{{Documentation subpage}}
&lt;!-- Categories go at the bottom of this page and interwikis go in Wikidata. --&gt;
Inserts a brief header for the template data section. Adds the page to [[:Category:TemplateData documentation]].
== Usage ==
&lt;pre&gt;
==TemplateData== or ==Parameters== or ==Usage==
{{TemplateData header}}
&lt;templatedata&gt;{
...
}&lt;/templatedata&gt;
&lt;/pre&gt;
Use &lt;code&gt;&lt;nowiki&gt;{{TemplateData header|Template name}}&lt;/nowiki&gt;&lt;/code&gt; to display a name for the template other than the default, which is [[Help:Magic_words#Variables|&lt;nowiki&gt;{{BASEPAGENAME}}&lt;/nowiki&gt;]].
:{|
{{TemplateData header|Template name}}
|}
Use &lt;code&gt;&lt;nowiki&gt;{{TemplateData header|nolink=1}}&lt;/nowiki&gt;&lt;/code&gt; to omit the [[Help:Link#Wikilinks|wikilink]] from the word &quot;TemplateData&quot; in the header text, for instances where it is already linked outside this template.
:{|
{{TemplateData header|nolink=1}}
|}
Use &lt;code&gt;&lt;nowiki&gt;{{TemplateData header|noheader=1}}&lt;/nowiki&gt;&lt;/code&gt; to omit the first sentence of the header text.
:{|
{{TemplateData header|noheader=1}}
|}
==Parameters==
{{TemplateData header}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;Inserts a brief header for the template data section. Adds the page to [[Category:TemplateData documentation]]&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Template name&quot;,
&quot;description&quot;: &quot;Used to display a name for the template other than the default, which is {{BASEPAGENAME}}.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;nolink&quot;: {
&quot;label&quot;: &quot;No link&quot;,
&quot;description&quot;: &quot;Assigning any value to this parameter will omit cause the template to omit the wikilink from the word \&quot;TemplateData\&quot; in the header text, for instances where it is already linked outside this template.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;noheader&quot;: {
&quot;label&quot;: &quot;No header&quot;,
&quot;description&quot;: &quot;Assigning any value to this parameter will cause the template to omit the first sentence of the header text.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
}
}
}&lt;/templatedata&gt;
&lt;includeonly&gt;{{sandbox other||
&lt;!-- Categories go here, and interwikis go in Wikidata --&gt;
[[Category:TemplateData documentation| ]]
}}&lt;/includeonly&gt;</text>
<sha1>1z4d7qkaecj8ghzbbvooy6k7k6cnj61</sha1>
</revision>
</page>
<page>
<title>Template:Title disambig text/doc</title>
<ns>10</ns>
<id>23313388</id>
<revision>
<id>753502307</id>
<parentid>723172584</parentid>
<timestamp>2016-12-07T15:37:52Z</timestamp>
<contributor>
<username>Swpb</username>
<id>1921264</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="921">{{Documentation subpage}}
{{lua|Module:String}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
=== Usage ===
: &lt;code&gt;{{Tlx|Title disambig text|''Title (disambig)''}}&lt;/code&gt;
If page title is of the form ''Title (disambig)'', this function will return ''disambig''. If no parenthetical expression is present, returns an empty string.
Write this to use the current page as title:
: &lt;code&gt;{{Tlx|Title disambig text|&lt;nowiki&gt;{{PAGENAME}}&lt;/nowiki&gt;}}&lt;/code&gt;
=== Examples ===
*&lt;tt&gt;&lt;nowiki&gt;{{Title disambig text|Title (whatever)}}&lt;/nowiki&gt;&lt;/tt&gt; &amp;rarr; {{Title disambig text|Title (whatever)}}
*&lt;tt&gt;&lt;nowiki&gt;{{Title disambig text|[[Title (whatever)]]}}&lt;/nowiki&gt;&lt;/tt&gt; &amp;rarr; {{Title disambig text|[[Title (whatever)]]}}
=== See also ===
{{string-handling templates}}
&lt;includeonly&gt;
[[Category:String manipulation templates]]
[[Category:Text-specific formatting and function templates]]
&lt;/includeonly&gt;</text>
<sha1>n719f0fqcfjvof0yy07rpur74h9jcsl</sha1>
</revision>
</page>
<page>
<title>Template:Redirect-distinguish</title>
<ns>10</ns>
<id>25278774</id>
<revision>
<id>719847699</id>
<parentid>637040747</parentid>
<timestamp>2016-05-12T04:24:48Z</timestamp>
<contributor>
<username>Nihiltres</username>
<id>236191</id>
</contributor>
<comment>Updated from sandbox with Lua implementation</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="119">&lt;includeonly&gt;{{#invoke:Redirect-distinguish|redirectDistinguish}}&lt;/includeonly&gt;&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>mhok9n15gafd5dkfe96bfrsgmdhyf9u</sha1>
</revision>
</page>
<page>
<title>Template:Tl/doc</title>
<ns>10</ns>
<id>6571565</id>
<revision>
<id>815435152</id>
<parentid>793830624</parentid>
<timestamp>2017-12-14T20:30:29Z</timestamp>
<contributor>
<username>Paine Ellsworth</username>
<id>9092818</id>
</contributor>
<minor/>
<comment>update /doc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="3436">{{Documentation subpage}}
&lt;!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). --&gt;
{{redirect-distinguish|Template:TI|Template:Ti}}
{{#ifeq:{{FULLPAGENAME}} | Template:Tl | {{High-risk| 4160000+ }} {{used in system}} }}
__NOTOC__
The '''template link''' template is a simple [[w:Macro (computer science)|macro]] [[m:Help:template|template]] used to display a template name as a link surrounded by braces, thus showing the template name as code rather than actually invoking it. Its primary use is in instruction and documentation where it is used to refer to a template by name without invoking it. Note that this template may be used under the name &quot;tee-el&quot; (tl) as well as &quot;tee-one&quot; (t1)— both function the same way and produce the same results (this is not true for all such visually confusing templates containing a possible 1/l mix-up: {{tl|Tla}} and {{tl|T1a}} are not interchangeable). A short example of its use is:
::&lt;code&gt;&lt;nowiki&gt;{{tl|Example}}&lt;/nowiki&gt;&lt;/code&gt;
:which generates
::{{tl|Example}}
== TemplateData ==
{{TemplateData header}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;This template displays a template name as a link surrounded by braces, thus showing how the template name would be used in code. Its primary use is in instruction and documentation.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;template name&quot;,
&quot;description&quot;: &quot;the template name without the namespace prefix “Template:”, which is added automatically&quot;,
&quot;type&quot;: &quot;line&quot;,
&quot;required&quot;: true
}
}}&lt;/templatedata&gt;
More complex variations are described below.
==Examples==
{| class=&quot;wikitable&quot;
! Code
! Result
! Notes
|-
| &lt;code&gt;&lt;nowiki&gt;{{tl|Void}}&lt;/nowiki&gt;&lt;/code&gt;
| {{[[Template:Void|Void]]}}
| Standard usage
|-
| &lt;code&gt;&lt;nowiki&gt;{{tls|Example}}&lt;/nowiki&gt;&lt;/code&gt;
| {{[[Wikipedia:Substitution|subst]]:[[Template:Example|Example]]}}
| For templates that should be [[Wikipedia:Substitution|substituted]]
|-
| &lt;code&gt;&lt;nowiki&gt;{{tl2|X1}}&lt;/nowiki&gt;&lt;/code&gt;
| &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;[[{{{LANG|}}}{{{SISTER|}}}{{ns:Template}}:X1|X1]]&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
| This formats the link to show how it would look in code (i.e., monospace font)
|-
| &lt;code&gt;&lt;nowiki&gt;{{tl2|sister=M:|3x}}&lt;/nowiki&gt;&lt;/code&gt;
| &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;[[{{{LANG|}}}M:{{ns:Template}}:3x|3x]]&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
| Same as above, for templates on another Wikimedia project (in this example, Meta)
|-
| &lt;code&gt;&lt;nowiki&gt;{{tl2|sister=wikibooks|lang=de:|WP}}&lt;/nowiki&gt;&lt;/code&gt;
| &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;[http://de.wikibooks.org/wiki/Vorlage:WP WP]&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;&lt;!--
––––– This is currently a fraudulent output result... the template code needs modified to work
––––– per this plan, then this /doc file fixed up to match whatever the correct syntax actually is.
––––– ALMOST work:
[[:de:wikibooks:{{ns:template}}:WP|WP]]
[[de:wikibooks:{{ns:template}}:WP|WP]]
--&gt;
| For templates on another language project
|-
| &lt;code&gt;&lt;nowiki&gt;{{tl|1==)}}&lt;/nowiki&gt;&lt;/code&gt;
| {{tl|1==)}}
| Use the format &lt;code&gt;&lt;nowiki&gt;{{tl|1=templatename}}&lt;/nowiki&gt;&lt;/code&gt; if the template contains template coding characters such as {{tl|1==)}} or {{tl|1=!}}
|}
== See also ==
{{Template-linking templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories go below this line, please; interwikis go to Wikidata, thank you! --&gt;
[[Category:Internal template-link templates]]
}}&lt;/includeonly&gt;</text>
<sha1>0jnwbjrdyae525bwwk5ct4nloh84xfi</sha1>
</revision>
</page>
<page>
<title>Module:Redirect-distinguish</title>
<ns>828</ns>
<id>50503884</id>
<revision>
<id>804712405</id>
<parentid>752883818</parentid>
<timestamp>2017-10-10T17:47:29Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Module:Redirect-distinguish]]&quot;: [[WP:High-risk templates|High-risk Lua module]]; 1,000+ transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1403">local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments --initialize lazily
local mTableTools = require('Module:TableTools')
local p = {}
function p.redirectDistinguish (frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame)
return p._redirectDistinguish(args)
end
function p._redirectDistinguish(args)
if not args[1] then
return mHatnote.makeWikitextError(
'no redirect supplied',
'Template:Redirect-distinguish',
args.category
)
end
local redirectTitle = mw.title.new(args[1])
if redirectTitle and redirectTitle.exists then
if not redirectTitle.isRedirect then
args[1] = args[1] .. '[[Category:Articles with redirect hatnotes needing review]]'
end
elseif not string.match(args[1], 'REDIRECT%d+') and not args[1] == 'TERM' then
args[1] = args[1] .. '[[Category:Missing redirects]]'
end
if not args[2] then
return mHatnote.makeWikitextError(
'no page to be distinguished supplied',
'Template:Redirect-distinguish',
args.category
)
end
args = mTableTools.compressSparseArray(args)
--Assignment by removal here makes for convenient concatenation later
local redirect = table.remove(args, 1)
local text = string.format(
'&quot;%s&quot; redirects here. It is not to be confused with %s.',
redirect,
mHatlist.orList(args, true)
)
return mHatnote._hatnote(text)
end
return p</text>
<sha1>4m643aqwg5loe4xx2wyz0hxrvykgc0d</sha1>
</revision>
</page>
<page>
<title>Template:Tla/doc</title>
<ns>10</ns>
<id>30468085</id>
<revision>
<id>783298614</id>
<parentid>618053676</parentid>
<timestamp>2017-06-01T11:15:49Z</timestamp>
<contributor>
<username>WurmWoode</username>
<id>4977632</id>
</contributor>
<minor/>
<comment>/* Usage */</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="712">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --&gt;
===Usage===
This template works exactly like {{tl|tl}} with the addition of optionally displaying alternative label text.
* &lt;code&gt;&lt;nowiki&gt;{{tla|quote|link to quote template}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{tla|quote|link to quote template}}
When the second parameter is omitted, the original template name is displayed (i.e. {{tlf|tla}} reverts to {{tlf|tl}}):
* &lt;code&gt;&lt;nowiki&gt;{{tla|quote}}&lt;/nowiki&gt;&lt;/code&gt; &amp;rarr; {{tla|quote}}
===See also===
{{Template-linking templates}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Internal template-link templates]]
[[sl:Predloga:Tla]]
&lt;/includeonly&gt;</text>
<sha1>2djeo7x4teokd9pyq6otoethgvugjwe</sha1>
</revision>
</page>
<page>
<title>Template:Tlbare/doc</title>
<ns>10</ns>
<id>43565108</id>
<revision>
<id>679757361</id>
<parentid>650045669</parentid>
<timestamp>2015-09-06T16:18:49Z</timestamp>
<contributor>
<username>GoingBatty</username>
<id>11555324</id>
</contributor>
<minor/>
<comment>[[WP:AWB/T|typo(s) fixed]]: etc&amp; → etc.&amp; using [[Project:AWB|AWB]] (11376)</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1764">{{Documentation subpage}}
&lt;!----Categories where indicated at the bottom of this page, please; interwikis at Wikidata (see [[Wikipedia:Wikidata]])----&gt;
&quot;tlbare&quot; {{big|⇒}} &quot;{{bigger|'''t'''}}emplate {{bigger|'''l'''}}ink, '''bare'''&quot;
A template in the same vein as the category-linking template {{tl|c}}, producing a &quot;bare&quot; link –&amp;nbsp;i.e. without &quot;Template:&quot; prefix, braces, etc.&amp;nbsp;– to the template named by the first parameter. If a second parameter is supplied, it is used in place of the first as the link's text.
===Syntax===
: {{tlx|tlbare|''template_name''}}
: {{tlx|tlbare|''template_name''|''link_text''}}
===Examples===
: {{tlf|tlbare|Example}} produces: {{tlbare|Example}}
: {{tlf|tlbare|Example|the &quot;Example&quot; template}} produces: {{tlbare|Example|the &quot;Example&quot; template}}
===Resizing===
: {{tlx|tlbare|''N''%|''template_name''}}
: {{tlx|tlbare|''N''%|''template_name''|''link_text''}}
If the first parameter ends in a percent sign (&quot;%&quot;), it will be treated as a font-size setting for the template's output. For example:
{| style=&quot;width:27em&quot;
|-
| {{tlf|tlbare|Example}} || produces: || {{tlbare|Example}}
|-
| {{tlf|tlbare|90%|Example}} || produces: || {{tlbare|90%|Example}}
|-
| {{tlf|tlbare|90|Example}} || produces: || {{tlbare|90|Example}}
|}
===See also===
* {{tl|c}}, the same kind of template for a category.
* {{tl|tl}} and {{tlf|tnf}}, similar templates that include, respectively, braces as well as a link; and braces without a link.
* {{cl|Internal template-link templates}} for more templates providing template links within Wikipedia.
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!----Categories below this line, please; interwikis at Wikidata----&gt;
[[Category:Internal template-link templates]]
}}&lt;/includeonly&gt;</text>
<sha1>3veh5u4hcwposwpssujy0apb3xlj5je</sha1>
</revision>
</page>
<page>
<title>Template:IPA</title>
<ns>10</ns>
<id>1346385</id>
<revision>
<id>787015399</id>
<parentid>787008040</parentid>
<timestamp>2017-06-22T22:34:02Z</timestamp>
<contributor>
<username>Nardog</username>
<id>5908908</id>
</contributor>
<comment>Undid revision 787008040 by [[Special:Contributions/Nardog|Nardog]] ([[User talk:Nardog|talk]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="142">&lt;span title=&quot;Representation in the International Phonetic Alphabet (IPA)&quot; class=&quot;IPA&quot;&gt;{{{1}}}&lt;/span&gt;&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>cb94aa8b4ccpaxvw4bn9h37rhxq5dza</sha1>
</revision>
</page>
<page>
<title>Template:Tlc/doc</title>
<ns>10</ns>
<id>16451835</id>
<revision>
<id>789191949</id>
<parentid>789191728</parentid>
<timestamp>2017-07-05T22:40:36Z</timestamp>
<contributor>
<username>Zyxw</username>
<id>473593</id>
</contributor>
<comment>/* Examples */ use transparent to show same background as rest of documentation when viewed from template page</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="9522">{{Documentation subpage}}
{{#switch:{{PAGENAME}}
| Tlc = {{high-risk|355800+}}
| Tld = {{high-use|62600+}}
| #default=
}}
This page provides documentation for {{tl|tlc}}, {{tl|tld}} and {{tl|tlf}}.
== Purpose and naming ==
When a template name with braces is to be shown in documentation, the braces have to be escaped in some way so it doesn't become an actual call to the template. Instead of using &lt;code&gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;/code&gt; tags you can write it more simply and concisely by using the {{tlc|tlc}}, {{tlc|tld}}, or {{tlc|tlf}} templates.
These templates work similarly to {{tlc|tl}} and {{tlc|tlx}}, but don't make the template name into a link. When writing documentation you might want to avoid a lot of unnecessary links, since they can decrease readability. So on the first occurrence of a template name use {{tlx|tl}} or {{tlx|tlx}}, and then use {{tlc|tlc}}, {{tlc|tld}} or {{tlc|tlf}} thereafter.
{| class=&quot;wikitable&quot;
|-
! Template
! style=&quot;width:15em;&quot;|[[Wikt:mnemonic|Mnemonic]]
! Format differentiation
|-
| {{tlc|tlc}}
| '''T'''emplate '''l'''ink '''c'''ode
|rowspan=2 |Uses the &lt;code&gt;&lt;nowiki&gt;&lt;code&gt;...&lt;/code&gt;&lt;/nowiki&gt;&lt;/code&gt; tags meant for showing programming code. Essentially the non-linking equivalent of {{tlx|tlx}}.
|-
| {{tlc|tld}}
| '''T'''emplate '''l'''ink '''d'''ialup-host
|-
| {{tlc|tlf}}
| '''T'''emplate '''l'''ink '''f'''ormat-normal
| Uses proportional-spaced font as is normal for regular text rather than a monospace font as typically used with programming code. Essentially the non-linking equivalent of {{tlx|tlp}}.
|}
The three names were based on {{tlx|tl}} '''t'''emplate '''l'''ink, despite the fact that, unlike the actual {{tlc|tl}} template, these three don't include an actual link. The mnemonics for {{tlc|tld}} and {{tlc|tlf}} were invented after the fact, since the template creator used the single letters still available rather than the preferred {{tlc|tlt}} (using &lt;nowiki&gt;&lt;tt&gt;&lt;/nowiki&gt;) and {{tlc|tln}} (using &quot;normal&quot;, non-coded text style) monikers.
===Basic operation===
Here is how these templates look. Code is to the left; actual rendering to the right:
:{{tlc|tlc|name|parameters}} = {{tlc|name|parameters}}
:{{tlc|tld|name|parameters}} = {{tld|name|parameters}}
:{{tlc|tlf|name|parameters}} = {{tlf|name|parameters}}
===Use with editprotected templates===
Most Wikipedia users and even editors will have little or no need for use (or knowledge) of these templates. You will find them of more use if you are a writer or documenter of templates. However, editors may be pointed here when attempting to deal with edit requests on pages which have been [[Wikipedia:Protection policy|protected]] in some way.
Pages which have been protected can't be edited by every user, but would-be editors can request specific changes on the corresponding [[WP:Talk page|Discussion page]]. An editor requesting a change to a semi-protected page, for example, would add the {{tl|editsemiprotected}} template, followed by their request, to the Talk page. The {{tlc|editsemiprotected}} template expands to a texty notice which includes the instruction &quot;Replace the {{tlc|editsemiprotected}} template with {{tlc|tlf|editsemiprotected}} when the request has been accepted or rejected.&quot; An empowered editor acting on the request would then change the template per this instruction.
The desired effect is to replace the {{tlc|editsemiprotected}} template (with its big, eye-catching box of information) by the ''name'' of the template, merely showing that the template had been there, and acted upon. The use of the {{tlc|tlf}} template means that the template should appear in a normal, proportional font-face, as in &quot;{{tlf|editsemiprotected}}&quot;.
==Documentation==
===Functional details===
* This template takes another ''template-name'' and some associated [[Help:Pipe trick|pipe-tricked]] [[m:Parameter#Parameters|(numbered) parameters]] (or 'pass parameters'), and displays them as an 'example demonstration' of how the ''template-name'' template could be coded, literally. Its primary use is in instruction and documentation.
*Specifics here??? &lt;!-- Coding details, other parameters (SUBST?), other notes? Cf. [[Template:Tlx]]. --&gt;
*Features of {{tlc|tlc}}, {{tlc|tld}} and {{tlc|tlf}}:
** They show a template name and up to eight parameters.
** They also show empty parameters. (See examples hereafter.)
** They prevent [[line wrap]]s in their output.
===Usage===
{{tlc|Tlc|Template|first_parameter|second|third|fourth|...|eighth}} → {{Tlc|Template|first_parameter|second|third|fourth|fifth|sixth|seventh|eighth}}
{{tlc|Tld|Template|first_parameter|second|third|fourth|...|eighth}} → {{Tld|Template|first_parameter|second|third|fourth|fifth|sixth|seventh|eighth}}
{{tlc|Tlf|Template|first_parameter|second|third|fourth|...|eighth}} → {{Tlf|Template|first_parameter|second|third|fourth|fifth|sixth|seventh|eighth}}
=== Examples ===
Note: A different background color was used in the following table to make the &quot;&lt;code&gt;code colouring&lt;/code&gt;&quot; visible.
&lt;table class=&quot;wikitable&quot; style=&quot;background-color:transparent&quot;&gt;
&lt;tr&gt;&lt;th&gt;Code&lt;th&gt;Result&lt;th&gt;Comment
&lt;tr&gt;&lt;td&gt;{{tlc|tlc}} &lt;td&gt;{{tlc}} &lt;td&gt;Shows its own syntax.
&lt;tr&gt;&lt;td&gt;{{tlc|tlc|name}} &lt;td&gt;{{tlc|name}} &lt;td&gt;
&lt;tr&gt;&lt;td&gt;{{tlc|tlc|name|one}} &lt;td&gt;{{tlc|name|one}} &lt;td&gt;
&lt;tr&gt;&lt;td&gt;{{tlc|tlc|name|one|two}} &lt;td&gt;{{tlc|name|one|two}} &lt;td&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;nowiki&gt;{{tlc|name|a|b|c|d|e|f|g|h|i|j}}&lt;/nowiki&gt;&lt;/code&gt; &lt;td&gt;{{tlc|name|a|b|c|d|e|f|g|h|i}} &lt;td&gt;Shows up to eight parameters. The rest are dropped.
&lt;tr&gt;&lt;td&gt;{{tlc|tlc|name|||three|four}} &lt;td&gt;{{tlc|name|||three|four}} &lt;td&gt;Also shows empty parameters.
&lt;tr&gt;&lt;td&gt;{{tlc|tlc|name|||three||}} &lt;td&gt;{{tlc|name|||three||}} &lt;td&gt;Even shows empty parameters that come in the end.
&lt;tr&gt;&lt;td&gt;{{tlc|tlc|name|one{{=}}a|two{{=}}b}} &lt;td&gt;{{tlc|name|one=a|two=b}} &lt;td&gt;The use of equal signs is a problem, but there is a fix; see next row.
&lt;tr&gt;&lt;td&gt;{{tlc|tlc|name|one{{((}}{{=}}{{))}}a|two{{((}}{{=}}{{))}}b}} &lt;td&gt;{{tlc|name|one{{=}}a|two{{=}}b}} &lt;td&gt;Use &lt;code&gt;&lt;nowiki&gt;{{=}}&lt;/nowiki&gt;&lt;/code&gt; in place of an equal sign, so that it gets rendered properly.
&lt;tr&gt;&lt;td&gt;{{tlc|tlc|name|{{tlf|IPA|/tʃ/}}|two}} &lt;td&gt;{{tlc|tlc|name|{{IPA|/tʃ/}}|two}} &lt;td&gt;Nested template calls also cause problems ...
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;nowiki&gt;{{tlc|name|{{tlf|IPA|/tʃ/}}|two}}&lt;/nowiki&gt;&lt;/code&gt; &lt;td&gt;{{tlc|tlc|name|{{tlf|IPA|/tʃ/}}|two}} &lt;td&gt;... but there are ways to get around this issue, also.
&lt;tr&gt;&lt;td&gt;&lt;code&gt;&lt;nowiki&gt;{{tlc|name|{{((}}IPA{{!}}/tʃ/{{))}}|two}}&lt;/nowiki&gt;&lt;/code&gt; &lt;td&gt;{{tlc|tlc|name|{{tlf|IPA|/tʃ/}}|two}} &lt;td&gt;... another way to do the same thing, using &lt;code&gt;&lt;nowiki&gt;{{((}}&lt;/nowiki&gt;&lt;/code&gt;, &lt;code&gt;&lt;nowiki&gt;{{!}}&lt;/nowiki&gt;&lt;/code&gt; and &lt;code&gt;&lt;nowiki&gt;{{))}}&lt;/nowiki&gt;&lt;/code&gt; to insert literal &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;&lt;/code&gt;, &lt;code&gt;&lt;nowiki&gt;|&lt;/nowiki&gt;&lt;/code&gt; and &lt;code&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;, respectively.
&lt;/table&gt;
An alternative to using constructs such as &lt;code&gt;&lt;nowiki&gt;{{=}}&lt;/nowiki&gt;&lt;/code&gt; and &lt;code&gt;&lt;nowiki&gt;{{tlf|...}}&lt;/nowiki&gt;&lt;/code&gt; to prevent characters from getting interpreted syntactically is to use &lt;code&gt;&lt;nowiki&gt;&lt;code&gt;&amp;lt;nowiki&gt;...&amp;lt;/nowiki&gt;&lt;/code&gt;&lt;/nowiki&gt;&lt;/code&gt;, which will prevent '''all''' characters from being interpreted. For example, in place of
&lt;code&gt;&lt;nowiki&gt;{{tlc|name|one{{=}}{{tlf|IPA|/tʃ/}}|two}}&lt;/nowiki&gt;&lt;/code&gt;
you can use
&lt;code&gt;&lt;nowiki&gt;&lt;code&gt;&amp;lt;nowiki&gt;{{name|one={{IPA|/tʃ/}}|two}}&amp;lt;/nowiki&gt;&lt;/code&gt;&lt;/nowiki&gt;&lt;/code&gt;
Both render as
&lt;code&gt;&lt;nowiki&gt;{{name|one={{IPA|/tʃ/}}|two}}&lt;/nowiki&gt;&lt;/code&gt;
If a vertical display with parameters on their own lines is desired, this can also be laid out manually in this manner, or more rapidly done with &lt;code&gt;&lt;nowiki&gt;&lt;pre&gt;...&lt;/pre&gt;&lt;/nowiki&gt;&lt;/code&gt;.
Here are the codes to emulate {{tlc|tlf}}, {{tlc|tld}} and {{tlc|tlc}} using &lt;code&gt;&amp;lt;nowiki&amp;gt;&lt;/code&gt;:
{|
! Using templates: !! Using &lt;code&gt;&amp;lt;nowiki&amp;gt;&lt;/code&gt;: !! Rendered result:
|-
|style=&quot;padding-right: 50px;&quot;| &lt;code&gt;&lt;nowiki&gt;{{tlf|name|one{{=}}a|two{{=}}b}}&lt;/nowiki&gt;&lt;/code&gt;
|style=&quot;padding-right: 50px;&quot;| &lt;code&gt;&lt;nowiki&gt;&amp;lt;nowiki&amp;gt;{{name|one=a|two=b}}&amp;lt;/nowiki&amp;gt;&lt;/nowiki&gt;&lt;/code&gt;
|&lt;nowiki&gt;{{name|one=a|two=b}}&lt;/nowiki&gt;
|-
|style=&quot;padding-right: 50px;&quot;| &lt;code&gt;&lt;nowiki&gt;{{tld|name|one{{=}}a|two{{=}}b}}&lt;/nowiki&gt;&lt;/code&gt;
|style=&quot;padding-right: 50px;&quot;| &lt;code&gt;&lt;nowiki&gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{name|one=a|two=b}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/nowiki&gt;&lt;/code&gt;
|&lt;code&gt;&lt;nowiki&gt;{{name|one=a|two=b}}&lt;/nowiki&gt;&lt;/code&gt;
|-
|style=&quot;padding-right: 50px;&quot;| &lt;code&gt;&lt;nowiki&gt;{{tlc|name|one{{=}}a|two{{=}}b}}&lt;/nowiki&gt;&lt;/code&gt;
|style=&quot;padding-right: 50px;&quot;| &lt;code&gt;&lt;nowiki&gt;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{name|one=a|two=b}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;/nowiki&gt;&lt;/code&gt;
|&lt;code&gt;&lt;nowiki&gt;{{name|one=a|two=b}}&lt;/nowiki&gt;&lt;/code&gt;
|}
===Limitations===
As documented at [[Help:Template#Problems and workarounds]], template arguments starting with one of the four MediaWiki magic characters &lt;code&gt;:&lt;/code&gt; &lt;code&gt;;&lt;/code&gt; &lt;code&gt;*&lt;/code&gt; or &lt;code&gt;#&lt;/code&gt; are interpreted ''as if'' they were at the beginning of a line, and are formatted as HTML lists. To avoid this, references to {{tlc|&lt;nowiki/&gt;*}} or {{tlc|&amp;#35;expr}} must have the first character escaped. You can either use {{tag|nowiki|s}} or an escape like &lt;code&gt;&amp;amp;#35;&lt;/code&gt;.
===See also===
{{Template-linking templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- ADD CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Template-related templates]] &lt;!--but not e.g. Category:Internal template-link templates, as these templates do not include links to templates--&gt;
[[Category:Typing-aid templates]]
}}&lt;/includeonly&gt;</text>
<sha1>qrhicqelyayomj7neiv4nwb198qihrw</sha1>
</revision>
</page>
<page>
<title>Template:Tlf/doc</title>
<ns>10</ns>
<id>16451940</id>
<revision>
<id>784627749</id>
<parentid>722463907</parentid>
<timestamp>2017-06-09T08:43:27Z</timestamp>
<contributor>
<ip>203.111.197.204</ip>
</contributor>
<comment>remove sandbox</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="939">{{Documentation subpage}}
{{high-use|5800+}}
&lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --&gt;
This is the {{tl|tlf}} template. It is equivalent to {{tl|tlp}} but does not link the template name presented.
===Examples===
{{Markup |width=50.0em
| &lt;nowiki&gt;{{tlf|Template name|parameters}}&lt;/nowiki&gt; | {{tlf|Template name|parameters}}
| &lt;nowiki&gt;{{tlf|convert}}&lt;/nowiki&gt; | {{tlf|convert}}
| &lt;nowiki&gt;{{tlf|convert|10|m}}&lt;/nowiki&gt; | {{tlf|convert|10|m}}
| &lt;nowiki&gt;{{tlf|Example|a|b|c|d|e|f|g|h|i}}&lt;/nowiki&gt; | {{tlf|Example|a|b|c|d|e|f|g|h|i}}
}}
===See also===
{{Template-linking templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- ADD CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Template-related templates]] &lt;!--but not e.g. Category:Internal template-link templates, as this template does not link to a template--&gt;
[[Category:Typing-aid templates]]
}}&lt;/includeonly&gt;</text>
<sha1>4j13b1sfdpei7chvmhjbzfabz965mee</sha1>
</revision>
</page>
<page>
<title>Template:Tlg/doc</title>
<ns>10</ns>
<id>31738496</id>
<revision>
<id>790782686</id>
<parentid>789374879</parentid>
<timestamp>2017-07-16T01:21:31Z</timestamp>
<contributor>
<username>Zyxw</username>
<id>473593</id>
</contributor>
<comment>update examples</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="7680">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --&gt;
{{tl|tlg}} (abbreviating &quot;[t]emplate [l]ink {{small|(with)}} [g]eneral {{small|(options)}}&quot;) is a generalised version of the {{tl|tl}} (&quot;template link&quot;) template. It can be used to replace or implement {{tlf|tl}} and related templates such as {{tl|tlb}}, {{tl|tlx}}, etc.
===Parameters===
====Named====
With the exception of {{mono|alttext}}, {{tlf|tlg}}'s named parameters are toggles that are either omitted (default) or activated (by being assigned a value such as &quot;on&quot;, &quot;yes&quot;, &quot;true&quot;, &quot;include&quot;, etc.). They may be included in any order (see Examples below):
{| class=&quot;wikitable&quot;
! Parameter || Action || As in
|-
| braceinside || Include innermost braces as part of the template link || {{tl|tlw}}
|-
| bold&lt;br/&gt;boldlink&lt;br/&gt;boldname || Renders the template link/name in '''bold''' || {{tl|tlb}}, {{tl|tlx}}, etc.
|-
| code || Display output using HTML [[HTML element#code|{{tag|code}}]] tags ([[monospaced font]]) || {{tl|tlc}}, {{tl|tlx}}, etc.
|-
| plaincode || Uses {{tag|code|params=style=&quot;border:none; background:transparent;&quot;}} ||
|-
| kbd || Display output using HTML [[HTML element#kbd|{{tag|kbd}}]] tags (monospaced font) || {{tl|tltt}}, {{tl|tltt2}}, etc.
|-
| italic&lt;br/&gt;italics || Display any parameters accompanying the template link/name in ''italic/s'' || {{tl|tlxi}}
|-
| nolink || Don't render the template name as a link || {{tl|tln}}
|-
| nowrap || Prevent the insertion of line breaks ([[word wrap]]) in the output || {{tl|tlp}}, {{tl|tlf}}, etc.
|-
| nowrapname || Prevent word wrapping in the output of template name/link (parameters will wrap if needed) ||
|-
| subst || Include a [[Help:Substitution|subst:]] prefix before the template link/name || {{tl|tls}}
|-
| &lt;nowiki&gt;|alttext=[text]&lt;/nowiki&gt; || Use [text] as the label for the template link || {{tl|tla}}
|}
====Unnamed====
{{tlf|tlg}} may take up to ten unnamed parameters as parameters accompanying the template link (or name); see Examples below.
===Examples===
{{#switch:{{SITENAME}} |Wikipedia|Meta= |
; Note: On the source sister projects, en.wikipedia and Meta, '''X0, X1, X2, …, X9 are sandbox templates''' for experimentation on involved templates that need be in template space. An auto-cleansing software facility exists that might be used to duplicate the facility on other Sister projects.
}}
{{Aligned table
|cols=3 |class=wikitable
|style=border:1;cellpadding:4;background-color:transparent;&lt;!-- to see background of &lt;code&gt;...&lt;/code&gt; --&gt;
| '''Code''' | '''Output''' | '''Remarks'''
| {{tlx|tlg|Abc}} | {{tlg|Abc}} |
| {{tlx|tlg|abC}} | {{tlg|abC}} | template names are case-sensitive
| {{tlx|tlg|abc}} | {{tlg|abc}} | first letter is case-insensitive though
| {{tlx|tlg|x0}} | {{tlg|x0}} |
| {{tlx|tlg|x0|code{{=}}on}} | {{tlg|x0|code=on}} | &amp;lt;code&amp;gt; style
| {{tlx|tlg|x0|plaincode{{=}}on}} | {{tlg|x0|plaincode=on}} | plaincode style
| {{tlx|tlg|x0|kbd{{=}}on}} | {{tlg|x0|kbd=on}} | &amp;lt;kbd&amp;gt; style
| {{tlx|tlg|x0|bold{{=}}on}} | {{tlg|x0|bold=on}} | bold link/name
| {{tlx|tlg|x1|one|italic{{=}}on}} | {{tlg|x1|one|italic=on}} | parameter/s in italics
| {{tlx|tlg|x0|nolink{{=}}on}} | {{tlg|x0|nolink=on}} |
| {{tlx|tlg|x0|subst{{=}}on}} | {{tlg|x0|subst=on}} |
| {{tlx|tlg|x0|braceinside{{=}}on}} | {{tlg|x0|braceinside=on}} |
| {{tlx|tlg|x0|alttext{{=}}x0 link}} | {{tlg|x0|alttext=x0 link}} |
| {{tlx|tlg|x0|bold{{=}}on|code{{=}}on|braceinside{{=}}on}} | {{tlg|x0|bold=on|code=on|braceinside=on}} | No reason you can't combine multiple parameter settings
| {{tlx|tlg|x1|one}} | {{tlg|x1|one}} |
| {{tlx|tlg|x2|one|two}} | {{tlg|x2|one|two}} |
| {{tlx|tlg|x2|bold{{=}}on|code{{=}}on|one|two}} | {{tlg|x2|bold=on|code=on|one|two}} | Can combine named and anonymous parameters …
| {{tlx|tlg|x2|one|two|bold{{=}}on|code{{=}}on}} | {{tlg|x2|one|two|bold=on|code=on}} | … in any order …
| {{tlx|tlg|x2|one|code{{=}}on|two|bold{{=}}on|three}} | {{tlg|x2|one|code=on|two|bold=on|three}} | … even intermixed …
| {{tlx|tlg|x2|one|code{{=}}on|two|bold{{=}}on|three|italic{{=}}on}} | {{tlg|x2|one|code=on|two|bold=on|three|italic=on}} | … with many different configurations.
| {{tlx|tlg|x3|1|2|3|4|5|6|7|8|9&amp;#124;10}} | {{tlg|x3|1|2|3|4|5|6|7|8|9|10}} |
| {{tlx|tlg|x4|1|2|3|4|5|6|7|8|9&amp;#124;10&amp;#124;11}} | {{tlg|x4|1|2|3|4|5|6|7|8|9|10|11}} | up to 10 parameters, then …
| {{tlx|tlg|x5|1|2|3|4|5|6|7|8|9&amp;#124;10&amp;amp;#124;11}} | {{tlg|x5|1|2|3|4|5|6|7|8|9|10&amp;#124;11}} | {{align|right|&lt;code&gt;&amp;amp;#124;&lt;/code&gt; for more}}
| {{tlx|tlg}} | {{tlg}} | with no arguments, the current page name is substituted
| {{tlx|tlg|x1|x&amp;#61;u}} | {{tlg|x1|x=u}} | '''{{=}}''' won't work
| {{tlx|tlg|x1|x&amp;amp;#61;u}} | {{tlg|x1|x&amp;#61;u}} | {{align|right|&lt;code&gt;&amp;amp;#61;&lt;/code&gt; is okay}}
| {{tlx|tlg|x1|x&lt;nowiki&gt;{{=}}&lt;/nowiki&gt;u}} | {{tlg|x1|x{{=}}u}} | {{align|right|&lt;code&gt;&lt;nowiki&gt;{{=}}&lt;/nowiki&gt;&lt;/code&gt; is okay}}
| {{tlx|tlg|x1|x&amp;lt;nowiki&amp;gt;&amp;#61;&amp;lt;/nowiki&amp;gt;u}} | {{tlg|x1|x&lt;nowiki&gt;=&lt;/nowiki&gt;u}} | {{align|right|sticky nowiki is okay}}
| {{tlx|tlg|x2|&lt;nowiki /&gt;|two|&lt;nowiki /&gt;|&lt;nowiki /&gt;}} | {{tlg|x2||two||}} | empty parameters work too, even at the end
| {{tlx|tlg|x2|&lt;nowiki&gt;3=two&lt;/nowiki&gt;|&lt;nowiki&gt;2=one&lt;/nowiki&gt;}} | {{tlg|x2|3=two|2=one}} | {{align|right|right to left okay}}
| {{tlx|tlg|convert|&lt;nowiki&gt;&amp;lt;nowiki&gt;14|m|ftin|abbr=out|sp=us&amp;lt;/nowiki&gt;&lt;/nowiki&gt;}} | {{tlg|convert|&lt;nowiki&gt;14|m|ftin|abbr=out|sp=us&lt;/nowiki&gt;}} | Unlimited parameters as one nowiki string
}}
{| class=&quot;wikitable&quot; |style=&quot;border:1; cellpadding:4; background-color:transparent;&quot;
|+ style=&quot;text-align:left;&quot; | Wrapping of long names (default)
|-
! Code
! style=&quot;width:15em;&quot; | Output
|-
| {{tlx|tlg|long template name that would wrap to new line|this is a long value for the 1st parameter that would wrap}}
| {{tlg|long template name that would wrap to new line|this is a long value for the 1st parameter that would wrap}}
|}
{| class=&quot;wikitable&quot; |style=&quot;border:1; cellpadding:4; background-color:transparent;&quot;
|+ style=&quot;text-align:left;&quot; | Wrapping of long names (&lt;kbd&gt;nowrap=on&lt;/kbd&gt;)
|-
! Code
! style=&quot;width:15em;&quot; | Output
|-
| {{tlx|tlg|nowrap{{=}}on|long template name that would wrap to new line|long value for the 1st parameter that would wrap}}
| {{tlg|nowrap=on|long template name that would wrap to new line|long value for the 1st parameter that would wrap}}
|}
{| class=&quot;wikitable&quot; |style=&quot;border:1; cellpadding:4; background-color:transparent;&quot;
|+ style=&quot;text-align:left;&quot; | Wrapping of long names (&lt;kbd&gt;nowrapname=on&lt;/kbd&gt;)
|-
! Code
! style=&quot;width:15em;&quot; | Output
|-
| {{tlx|tlg|nowrapname{{=}}on|long template name that would wrap to new line|long value for the 1st parameter that would wrap}}
| {{tlg|nowrapname=on|long template name that would wrap to new line|long value for the 1st parameter that would wrap}}
|}
== See also ==
{{Template-linking templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Internal template-link templates]]
[[Category:Typing-aid templates]]
}}&lt;/includeonly&gt;</text>
<sha1>m31l9pbp2cr2ciqqg7323nudz22mn9u</sha1>
</revision>
</page>
<page>
<title>Template:Tlx/doc</title>
<ns>10</ns>
<id>9263303</id>
<revision>
<id>780763309</id>
<parentid>762726538</parentid>
<timestamp>2017-05-17T01:39:28Z</timestamp>
<contributor>
<username>Ahecht</username>
<id>2016996</id>
</contributor>
<comment>add template data</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="11162">&lt;includeonly&gt;{{small |1=Note: This documentation for {{tlx|tlx}} is also [[w:Wikipedia:Template doc page pattern|transcluded]] by its derivatives {{tlx|tlxb}}, {{tlx|tlxc}}, {{tlx|tlxw}} (&lt;span class=&quot;plainlinks&quot;&gt;[{{fullurl:Template:Tlx/doc |action=edit}} edit]&lt;/span&gt;{{#ifeq:{{SITENAME}}|Meta |). |{{dot}}[[M:template:{{PAGENAMEE}}|master page]]).}}&lt;!--(end small:)--&gt;}}&lt;/includeonly&gt;&lt;!--
--&gt;&lt;noinclude&gt;{{Documentation subpage}}{{clear}}&lt;/noinclude&gt;
{{#ifeq:{{BASEPAGENAME}}|Tlx |{{High-risk|1,070,000+}} {{Used in system}} }}
This template is used to show example template usage without expanding the template itself.
== Basic use ==
''(Note: In the following examples, [[Ellipsis|ellipses (groups of three dots)]] indicate where parameters have been omitted.)''
: {{tlx{{\sandbox}}|tlx|Template|''first parameter''|''second parameter''|''third''|...|''tenth''}} produces: {{tlx{{\sandbox}}|Template|''first parameter''|''second parameter''|''third''|...|''tenth''}}
Where parameters might contain one or more equals-signs (&quot;=&quot;), replace each equals-sign with {{tlf|{{=}}}}:
: {{tlx{{\sandbox}}|tlx|Template|''first''&lt;nowiki&gt;{{=}}&lt;/nowiki&gt;''something''|''second''|''third''&lt;nowiki&gt;{{=}}&lt;/nowiki&gt;''something''|...|tenth}} produces: {{tlx{{\sandbox}}|Template|''first{{=}}something''|''second''|''third{{=}}something''|...|''tenth''}}
For more than ten parameters, possibly also containing equals-signs, use {{tag|nowiki}} thus:
: {{tlx{{\sandbox}}|tlx|Template|&amp;lt;nowiki&gt;&lt;nowiki&gt;''first''|''second''|''third=something''|...|''999th''&lt;/nowiki&gt;&amp;lt;/nowiki&gt;}} produces: {{tlx{{\sandbox}}|Template|&lt;nowiki&gt;first|second|third=something|...|999th&lt;/nowiki&gt;}}
== Purpose and naming ==
[[Wikt:mnemonic|Mnemonically]], &quot;['''t''']emplate ['''l''']ink e['''x''']panded&quot; (after {{tl|tl}}, &quot;['''t''']emplate ['''l''']ink&quot;).
This template allows an example of calling a template, accompanied by one or more parameters&lt;!-- (&quot;pass parameters&quot;, i.e. [[Help:Pipe trick|pipe-tricked]] [[m:Parameter#Parameters|parameters]])--&gt;, to be displayed without also causing the template to be called.
Up to ten of the template's parameters (numbered or nowiki-keywords) may be displayed as placeholders, while more than over 10 parameters can be displayed using a coded vertical-bar (as in &quot;{{small|&amp;amp;#124;}}...&quot;). A keyword parameter can be used with equals code &amp;amp;#61; or &lt;nowiki&gt;{{=}}&lt;/nowiki&gt; or in nowiki-text: &quot;{{tag|nowiki|content=size=10}}&quot; or all parameters as a string in &quot;{{tag|nowiki|o}}&quot; tags; see ''[[#Examples|Examples]]'' at bottom. For more details, see [[{{TALKPAGENAME}}|this talk]] page.
; Exceptions
If the intended template lists numerous parameters, then perhaps this template should really ''not'' be used, and just hardcode the usage with {{tag|code|o}}{{tag|nowiki|o}}. For example:
: {{tag|code|content={{tag|nowiki|content=&lt;nowiki&gt;{{Anytemplate|arg1=23|size=250px|&lt;/nowiki&gt;&lt;var&gt;other parameters...&lt;/var&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;}}}}.
If a vertical display, with parameters on their own lines, is desired, this can also be laid out manually in this manner, or more rapidly done with {{tag|pre}}.
===Parameters===
* If the only parameter supplied is {{param|1}}, i.e. a template's name, {{tlf|tlx}}'s output is the same as {{tl|tl}}&amp;nbsp;&amp;ndash; i.e. a link within [[Braces (punctuation)|braces]]&amp;nbsp;&amp;ndash; but in a [[monospaced font]]:
** {{tc|tl|tl}} produces: {{tl|tl}}
** {{tc|tlx|tl}} produces: {{tlx{{\sandbox}}|tl}}
: {{tlf|tl}} will also not take nor display additional parameters.
; Named parameters
{{para|subst}}
: Setting this parameter to any non-blank value will prefix the string &lt;code&gt;subst:&lt;/code&gt; linked to [[Help:Substitution]]. This is useful to indicate when a template should be substituted. For example, {{tlx{{\sandbox}}|tlx|Welcome|3=subst=Y}} produces: {{tlx{{\sandbox}}|Welcome|subst=Y}}. This is similar to the action of the {{tlx{{\sandbox}}|tlxs}} template: {{tlx{{\sandbox}}|tlxs|Welcome}} produces: {{tlxs|Welcome}}.
{{para|SISTER}}
: For an interwiki link to [[H:IW|other sister projects]], such as: {{para|SISTER|M:}} ([[m:|Meta]]), {{para|SISTER|Q:}} ([[q:|WikiQuote]]), {{para|SISTER|S:}} ([[s:|WikiSource]]), etc, facilitating interwiki template documentation and/or discussion.
{{para|LANG}}
: For a link to [[H:ILL|Wikipedias in other languages]], such as: {{para|LANG|de:}} ([[:de:|German]]), {{para|LANG|sv:}} ([[:sv:|Swedish]]), etc, facilitating cross-language template documentation and/or discussion.
== Documentation ==
{{tl|Tlx}} is a generalization of {{tl|tl|x}}, {{tl|tlp|x|y}} etc., with output that is arguably more legible. This depends on the browser, but narrow gaps between characters such as &quot;{{thinsp}}'''{'''{{thinsp}}&quot;, &quot;{{thinsp}}'''&amp;#124;'''{{thinsp}}&quot;, &quot;{{thinsp}}'''}'''{{thinsp}}&quot; and links can be hard to read when not monospaced (and hard to click on; for uses like &lt;code&gt;&lt;nowiki&gt;{{!}}&lt;/nowiki&gt;&lt;/code&gt;, see {{tl|tlw}}, which makes the click target bigger).
===Usage===
:&lt;code&gt;{&amp;#123;tlx{{!}}Templatename&amp;#125;}&lt;/code&gt;
:&lt;code&gt;{&amp;#123;tlx{{!}}Templatename{{!}}param&amp;#125;}&lt;/code&gt;
:&lt;code&gt;{&amp;#123;tlx{{!}}Templatename{{!}}1{{!}}2{{!}}3{{!}}4{{!}}5{{!}}6{{!}}7{{!}}8{{!}}9{{!}}10&amp;#125;}&lt;/code&gt;
:&lt;code&gt;{&amp;#123;tlx{{!}}Templatename{{!}}1{{!}}2{{!}}3{{!}}4{{!}}5{{!}}6{{!}}7{{!}}8{{!}}9{{!}}10&amp;amp;#124;more&amp;#125;}&lt;/code&gt;
:&lt;code&gt;{&amp;#123;tlx{{!}}Templatename{{!}}param&amp;amp;#61;value&amp;#125;}&lt;/code&gt;
There are up to 10 placeholders for parameters of the specified template.
===Examples===
{{#switch:{{SITENAME}} |Wikipedia|Meta= |
; Note: At the en.wikipedia and Meta sites, '''X0, X1, X2,&amp;nbsp;... X9 are sandbox templates''' for experimentation on involved templates that need be in template space. An auto-cleansing software facility exists that might be used to duplicate the facility on other sister projects.
}}
{{Aligned table |cols=3
|class=wikitable |style=border:1;cellpadding:4;
|row1style=background:whitesmoke;font-weight:bold;
| Code | Result | Remarks
| {{tlx|tlx|x0}} | {{tlx{{\sandbox}}|x0}} | &amp;#160;
| {{tlx|tlx|Abc}} | {{tlx{{\sandbox}}|Abc}} | &amp;#160;
| {{tlx|tlx|ABC}} | {{tlx{{\sandbox}}|ABC}} | &amp;#160;
| {{tlx|tlx|AbC}} | {{tlx{{\sandbox}}|AbC}} | &amp;#160;
| {{tlx|tlx|x1|one}} | {{tlx{{\sandbox}}|x1|one}} | &amp;#160;
| {{tlx|tlx|x2|one|two}} | {{tlx{{\sandbox}}|x2|one|two}} | &amp;#160;
&lt;!--(Parameter number:)--&gt;
| {{tlx|tlx|x3|1|2|3|4|5|6|7|8|9&amp;#124;10}} | {{tlx{{\sandbox}}|x3|1|2|3|4|5|6|7|8|9|10}} | &amp;#160;
| {{tlx|tlx|x4|1|2|3|4|5|6|7|8|9&amp;#124;10&amp;#124;11}} | {{tlx{{\sandbox}}|x4|1|2|3|4|5|6|7|8|9|10|11}} | up to 10 parameters...
| {{tlx|tlx|x5|1|2|3|4|5|6|7|8|9&amp;#124;10&amp;amp;#124;11}} | {{tlx{{\sandbox}}|x5|1|2|3|4|5|6|7|8|9|10&amp;#124;11}} | {{align|right|...&lt;code&gt;&amp;amp;#124;&lt;/code&gt; for more}}
&lt;!--(Equals-sign:)--&gt;
| {{tlx|tlx|x1|x&amp;#61;u}} | {{tlx{{\sandbox}}|x1|x=u}} | the straightforward equals-sign won't work...
| {{tlx|tlx|x1|x&amp;amp;#61;u}} | {{tlx{{\sandbox}}|x1|x&amp;#61;u}} | {{align|right|...but &lt;code&gt;&amp;amp;#61;&lt;/code&gt; is okay}}
| {{tlx|tlx|x1|x&lt;nowiki&gt;{{=}}&lt;/nowiki&gt;u}} | {{tlx{{\sandbox}}|x1|x{{=}}u}} | {{align|right|...and &lt;code&gt;&lt;nowiki&gt;{{=}}&lt;/nowiki&gt;&lt;/code&gt; is okay}}
| {{tlx|tlx|x1|&amp;lt;nowiki&amp;gt;x&amp;#61;u&amp;lt;/nowiki&amp;gt;}} | {{tlx{{\sandbox}}|x1|&lt;nowiki&gt;x=u&lt;/nowiki&gt;}} | {{align|right|sticky nowiki also okay}}
&lt;!--(Empty/space/pipe:)--&gt;
| {{tlx|tlx|x2|&amp;#160;|two}} | {{tlx{{\sandbox}}|x2| |two}} | empty won't work...
| {{tlx|tlx|x2|&amp;amp;#32;|two}} | {{tlx{{\sandbox}}|x2|&amp;#32;|two}} | {{align|right|...but &lt;code&gt;&amp;amp;#32;&lt;/code&gt; is okay}}
| {{tlx|tlx|x2|&amp;amp;nbsp;|two}} | {{tlx{{\sandbox}}|x2|&amp;nbsp;|two}} | {{align|right|...&lt;code&gt;&amp;amp;nbsp;&lt;/code&gt; is also okay}}
| {{tlx|tlx|x2|{{tag|nowiki|s}}|two}} | {{tlx{{\sandbox}}|x2|&lt;nowiki/&gt;|two}} | {{align|right|{{tag|nowiki|s}} handles the space}}
| {{tlx|tlx|x2| &amp;amp;#124; two}} | {{tlx{{\sandbox}}|x2| &amp;#124; two}} | {{align|right|&lt;code&gt;&amp;amp;#124;&lt;/code&gt; is okay}}
| {{tlx|tlx|x2| {&amp;#123;!&amp;#125;} two}} | {{tlx{{\sandbox}}|x2 | {{!}} two}} | {{align|right|&lt;nowiki&gt;{{!}}&lt;/nowiki&gt; is dubious}}
| {{tlx|tlx|x2|&lt;nowiki&gt;2=&lt;/nowiki&gt;|&lt;nowiki&gt;3=two&lt;/nowiki&gt;}} | {{tlx{{\sandbox}}|x2|2=|3=two}} | empty really doesn't work
| {{tlx|tlx|x2|&lt;nowiki&gt;2=one&lt;/nowiki&gt;|two}} | {{tlx{{\sandbox}}|x2|two}} | &quot;two&quot; overrides &quot;2{{=}}one&quot;
| {{tlx|tlx|x2|&lt;nowiki&gt;3=two&lt;/nowiki&gt;|&lt;nowiki&gt;2=one&lt;/nowiki&gt;}} | {{tlx{{\sandbox}}|x2|3=two|2=one}} | {{align|right|irregular parameter order is okay}}
}}
; Unlimited parameters as one {{tag|nowiki}} string
: {{tlx{{\sandbox}}|tlx|convert|&lt;nowiki&gt;&amp;lt;nowiki&gt;14|m|ftin|abbr=out|sp=us&amp;lt;/nowiki&gt;&lt;/nowiki&gt;}}
== See also ==
* {{tl|tlxb}}, a version of {{tlf|tlx}} where the template name is shown in bold.
*: {{tl|tlb}}, a version of {{tlf|tl}} where the template name is shown in bold.
* {{tl|temt}}, a version of {{tlf|tlx}} that handles templates whose names include &quot;Template:&quot; and pages outside the Template: [[Wikipedia:Namespace|namespace]] that are treated as templates.
* {{tl|para}}, for the presentation of template parameters and values (e.g. {{para|paraname|val}}, {{para|another}}).
== Template-linking templates ==
{{Template-linking templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |{{#ifeq:{{BASEPAGENAME}}|Tlx |
[[Category:Internal template-link templates]]
[[Category:Interwiki link templates]]
[[Category:Typing-aid templates]]
}} }}&lt;/includeonly&gt;
{{collapse top|Template data}}
&lt;templatedata&gt;
{
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Template name&quot;,
&quot;description&quot;: &quot;Name of the template to link&quot;,
&quot;example&quot;: &quot;Tlx&quot;,
&quot;type&quot;: &quot;wiki-template-name&quot;,
&quot;required&quot;: true
},
&quot;2&quot;: {
&quot;label&quot;: &quot;1st parameter&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;3&quot;: {
&quot;label&quot;: &quot;2nd parameter&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;4&quot;: {
&quot;label&quot;: &quot;3rd parameter&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;5&quot;: {
&quot;label&quot;: &quot;4th parameter&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;6&quot;: {
&quot;label&quot;: &quot;5th parameter&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;7&quot;: {
&quot;label&quot;: &quot;6th parameter&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;8&quot;: {
&quot;label&quot;: &quot;7th parameter&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;9&quot;: {
&quot;label&quot;: &quot;8th parameter&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;10&quot;: {
&quot;label&quot;: &quot;9th parameter&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;11&quot;: {
&quot;label&quot;: &quot;10th parameter&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;12&quot;: {},
&quot;subst&quot;: {
&quot;description&quot;: &quot;Set to any value to show \&quot;subst:\&quot; before the template name&quot;,
&quot;example&quot;: &quot;true&quot;,
&quot;type&quot;: &quot;boolean&quot;
},
&quot;LANG&quot;: {
&quot;label&quot;: &quot;Language&quot;,
&quot;description&quot;: &quot;For a link to Wikipedias in other languages&quot;,
&quot;example&quot;: &quot;de:&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;SISTER&quot;: {
&quot;description&quot;: &quot;For an interwiki link to other sister projects&quot;,
&quot;example&quot;: &quot;M:&quot;,
&quot;type&quot;: &quot;string&quot;
}
},
&quot;description&quot;: &quot;Show example template usage without expanding the template itself.&quot;,
&quot;paramOrder&quot;: [
&quot;1&quot;,
&quot;2&quot;,
&quot;3&quot;,
&quot;4&quot;,
&quot;5&quot;,
&quot;6&quot;,
&quot;7&quot;,
&quot;8&quot;,
&quot;9&quot;,
&quot;10&quot;,
&quot;11&quot;,
&quot;12&quot;,
&quot;subst&quot;,
&quot;LANG&quot;,
&quot;SISTER&quot;
],
&quot;format&quot;: &quot;inline&quot;
}
&lt;/templatedata&gt;
{{collapse bottom}}</text>
<sha1>1xsmd1o6w4kga35gvloopugczag7dhz</sha1>
</revision>
</page>
<page>
<title>Template:Tlxs</title>
<ns>10</ns>
<id>18326463</id>
<revision>
<id>818882728</id>
<parentid>620816449</parentid>
<timestamp>2018-01-06T04:20:03Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>support same bolding option at [[Template:Tlg]], etc. Sandboxed and tested.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="990">&lt;includeonly&gt;&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{#ifeq:{{{link subst|yes}}}|yes
|[[Wikipedia:Substitution|subst]]
|subst
}}:{{#if:{{{bold|{{{boldlink|{{{boldname|}}}}}}}}}|'''}}[[Template:{{{1|{{PAGENAME}}}}}|{{#ifeq:{{lcfirst:{{{1|{{PAGENAME}}}}}}}|{{lc:{{{1|{{PAGENAME}}}}}}}|{{lcfirst:{{{1|{{PAGENAME}}}}}}}|{{{1|{{PAGENAME}}}}}}}]]{{#if:{{{bold|{{{boldlink|{{{boldname|}}}}}}}}}|'''}}&lt;!--
--&gt;{{#ifeq:{{{2|+}}}|{{{2|-}}}|&amp;#124;{{{2}}}}}&lt;!--
--&gt;{{#ifeq:{{{3|+}}}|{{{3|-}}}|&amp;#124;{{{3}}}}}&lt;!--
--&gt;{{#ifeq:{{{4|+}}}|{{{4|-}}}|&amp;#124;{{{4}}}}}&lt;!--
--&gt;{{#ifeq:{{{5|+}}}|{{{5|-}}}|&amp;#124;{{{5}}}}}&lt;!--
--&gt;{{#ifeq:{{{6|+}}}|{{{6|-}}}|&amp;#124;{{{6}}}}}&lt;!--
--&gt;{{#ifeq:{{{7|+}}}|{{{7|-}}}|&amp;#124;{{{7}}}}}&lt;!--
--&gt;{{#ifeq:{{{8|+}}}|{{{8|-}}}|&amp;#124;{{{8}}}}}&lt;!--
--&gt;{{#ifeq:{{{9|+}}}|{{{9|-}}}|&amp;#124;{{{9}}}}}&lt;!--
--&gt;{{#ifeq:{{{10|+}}}|{{{10|-}}}|&amp;#124;{{{10}}}}}&lt;!--
--&gt;{{#ifeq:{{{11|+}}}|{{{11|-}}}|&amp;#124;&lt;i&gt;...&lt;/i&gt;}}&lt;!--
--&gt;&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>2ej36xls59au2rl56eekxvpqfetkwjz</sha1>
</revision>
</page>
<page>
<title>Template:Tnull/doc</title>
<ns>10</ns>
<id>12158808</id>
<revision>
<id>738265730</id>
<parentid>649706223</parentid>
<timestamp>2016-09-07T22:39:33Z</timestamp>
<contributor>
<username>Erutuon</username>
<id>7162328</id>
</contributor>
<comment>difference from tlc</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1945">{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE --&gt;
===Usage===
'''Tnull''' is used to nullify templates in the monospaced font. It is similar to {{tlx|tlx}} in the way that it has support for many parameters, but it does not link the template name. It is similar to {{tl|tlc}}, but does not prevent text wrapping.
===Example===
Typing &lt;code&gt;&amp;#123;&amp;#123;tnull|foo|bar|baz|boo&amp;#125;&amp;#125;&lt;/code&gt; in the edit window would yield &lt;code&gt;&amp;#123;&amp;#123;foo|bar|baz|boo&amp;#125;&amp;#125;&lt;/code&gt; in the rendered page.
===Special character handling===
====&quot;=&quot; (equality sign)====
If there is a &quot;=&quot; character (equality/equals sign) in ''any'' parameter, it must be replaced with &lt;code&gt;&amp;amp;#61;&lt;/code&gt; [or {{tl|{{=}}}}?]:
:&lt;code&gt;&amp;#123;&amp;#123;tnull|click|image&amp;amp;#61;&lt;var&gt;image name&lt;/var&gt;|width&amp;amp;#61;&lt;var&gt;width&lt;/var&gt;|height&amp;amp;#61;&lt;var&gt;height&lt;/var&gt;|link&amp;amp;#61;&lt;var&gt;page name&lt;/var&gt;&amp;#125;&amp;#125;&lt;/code&gt;
Or you can use &lt;code&gt;&lt;var&gt;parameter-number&lt;/var&gt;=&lt;var&gt;value&lt;/var&gt;&lt;/code&gt; as in:
:&lt;code&gt;&amp;#123;&amp;#123;tnull|click|2=image=&lt;var&gt;image name&lt;/var&gt;|3=width=&lt;var&gt;width&lt;/var&gt;|4=height=&lt;var&gt;height&lt;/var&gt;|5=link=&lt;var&gt;page name&lt;/var&gt;&amp;#125;&amp;#125;&lt;/code&gt;
Either method would yield the following output:
:{{tnull|click|2=image=&lt;var&gt;image name&lt;/var&gt;|3=width=&lt;var&gt;width&lt;/var&gt;|4=height=&lt;var&gt;height&lt;/var&gt;|5=link=&lt;var&gt;page name&lt;/var&gt;}}
====&quot;|&quot; (vertical bar, pipe)====
If a second consecutive pipe (|) is used to denote that a parameter has been skipped, you must replace it with &lt;code&gt;&amp;amp;#124;&lt;/code&gt; as in:
:&lt;code&gt;&amp;#123;&amp;#123;tnull|look from|Alan|&amp;amp;#124;all the Alans&amp;#125;&amp;#125;&lt;/code&gt;
That would yield the following displayed output:
:{{tnull|look from|Alan|&amp;#124;all the Alans}}
===See also===
{{Template-linking templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- ADD CATEGORIES BELOW THIS LINE, PLEASE: --&gt;
[[Category:Template-related templates]]
[[Category:Typing-aid templates]]
}}&lt;/includeonly&gt;</text>
<sha1>8lv3pq1wq963gywjga8vkvlegx9918o</sha1>
</revision>
</page>
<page>
<title>Template:First character</title>
<ns>10</ns>
<id>49512711</id>
<revision>
<id>804532158</id>
<parentid>706293978</parentid>
<timestamp>2017-10-09T16:54:30Z</timestamp>
<contributor>
<username>MusikAnimal</username>
<id>14882394</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:First character]]&quot;: [[WP:High-risk templates|Highly visible template]]; thousands of transclusions ([Edit=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="93">&lt;includeonly&gt;{{Str left|{{{1|}}}|1}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;noinclude&gt;</text>
<sha1>gewt2k24jlgqhj8mp4n6dzooaibgwv4</sha1>
</revision>
</page>
<page>
<title>Template:Transclude/doc</title>
<ns>10</ns>
<id>21843427</id>
<revision>
<id>681394538</id>
<parentid>681156113</parentid>
<timestamp>2015-09-16T23:29:24Z</timestamp>
<contributor>
<username>Zyxw</username>
<id>473593</id>
</contributor>
<comment>misc formatting</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1927">{{Documentation subpage}}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
{{high-use|15,000+}}
This template resolves page names as they would be handled by MediaWiki's template-transclusion process. It thereby removes ambiguity when doing ''other'' things with template pagenames, e.g. linking.
The most prominent use of this template is in the {{Navbar|template:transclude/doc|mini=1}} menu used at the top of each {{tl|navbox}}, though it is used in other templates as well, such as {{tl|usbk}}.
== Usage ==
* &lt;code&gt;&lt;nowiki&gt;{{transclude| Template:Foo }}&lt;/nowiki&gt;&lt;/code&gt; → '''{{transclude|Template:Foo}}'''
* &lt;code&gt;&lt;nowiki&gt;{{transclude| Category:Foo }}&lt;/nowiki&gt;&lt;/code&gt; → '''{{transclude|Category:Foo}}'''
* &lt;code&gt;&lt;nowiki&gt;{{transclude| Foo }}&lt;/nowiki&gt;&lt;/code&gt; → '''{{transclude|Foo}}'''
* &lt;code&gt;&lt;nowiki&gt;{{transclude| :Foo }}&lt;/nowiki&gt;&lt;/code&gt; → '''{{transclude|:Foo}}'''
* &lt;code&gt;&lt;nowiki&gt;{{transclude| :File:Foo }}&lt;/nowiki&gt;&lt;/code&gt; → '''{{transclude|:File:Foo}}'''
==TemplateData==
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;This template resolves page names as they would be handled by MediaWiki's template-transclusion process. It thereby removes ambiguity when doing other things with template pagenames, e.g. linking.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Page name&quot;,
&quot;description&quot;: &quot;The name of the page you are trying to link to&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
}
}
}
&lt;/templatedata&gt;
== See also ==
* {{tl|Linked}}
* {{tl|Category title}}
* {{tl|File title}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Wikipedia formatting and function templates|Transclude]]
}}&lt;/includeonly&gt;</text>
<sha1>49opo7lusnf6vykm13emu8w8gp892w3</sha1>
</revision>
</page>
<page>
<title>Template:Trim/doc</title>
<ns>10</ns>
<id>22257082</id>
<revision>
<id>811912659</id>
<parentid>811912444</parentid>
<timestamp>2017-11-24T20:13:35Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<minor/>
<comment>tweak</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1540">{{Documentation subpage}}
{{High-risk|844000+}}
{{notice|This template is for trimming whitespace from strings. For the maintenance tag for images, see {{tl|trimming}}}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
This template trims leading and trailing (but not interior) whitespace from a string. The string should be passed as the first unnamed parameter. The parameter must be named {{para|1}} if its value contains a &lt;code&gt;=&lt;/code&gt; character.
You may [[WP:SUBST|substitute]] this template - that is, if used as {{tlxs|trim}}, the resulting wikicode is &quot;clean&quot;.
== Usage ==
{{tlx|trim|&lt;var&gt;text&lt;/var&gt;}} = &lt;var&gt;text&lt;/var&gt; with any leading or trailing whitespace removed.
== Examples ==
*&quot;{{tlx|trim| abc}}&quot; produces &quot;{{trim| abc}}&quot;
*&quot;{{tlx|trim|xyz&amp;nbsp;}}&quot; produces &quot;{{trim|xyz }}&quot;
*&quot;{{tlx|trim| abc xyz&amp;nbsp;}}&quot; produces &quot;{{trim| abc xyz }}&quot;
== Template data ==
{{TemplateDataHeader}}
&lt;templatedata&gt;
{
&quot;description&quot;: &quot;The template trims whitespace from a string.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;String&quot;,
&quot;description&quot;: &quot;The string to be trimmed of whitespace&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: true
}
}
}
&lt;/templatedata&gt;
== See also ==
* {{tl|crop}}
{{String-handling templates |trim}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES AND INTERWIKIS HERE, THANKS --&gt;
[[Category:String manipulation templates]]
[[Category:Parameter handling templates]]
&lt;/includeonly&gt;</text>
<sha1>nxvky4guojd4d3kti6m4790kk3ns9mb</sha1>
</revision>
</page>
<page>
<title>Template:Last edited by</title>
<ns>10</ns>
<id>22211371</id>
<revision>
<id>743417057</id>
<parentid>631965327</parentid>
<timestamp>2016-10-09T15:22:24Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Last edited by: Allowing template editors ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="412">&lt;span class=&quot;plainlinks&quot;&gt;This {{pagetype|subjectspace=yes}} was [{{fullurl:{{FULLPAGENAME}}|diff=cur}} last edited] by [[User:{{REVISIONUSER}}|{{REVISIONUSER}}]] {{Toolbar|[[User talk:{{REVISIONUSER}}|talk]]|[[Special:Contributions/{{REVISIONUSER}}|contribs]]}} {{time ago|{{REVISIONTIMESTAMP}}}}. {{small|''([{{fullurl:{{FULLPAGENAMEE}}|action=purge}} Update])''}}&lt;/span&gt;&lt;noinclude&gt;{{documentation}}&lt;/noinclude&gt;</text>
<sha1>mjmph7pkfu09rd9bqm6zqfst5aupy09</sha1>
</revision>
</page>
<page>
<title>Template:Under construction/doc</title>
<ns>10</ns>
<id>13987695</id>
<revision>
<id>801805112</id>
<parentid>801700833</parentid>
<timestamp>2017-09-21T23:55:27Z</timestamp>
<contributor>
<username>GoldRingChip</username>
<id>195596</id>
</contributor>
<minor/>
<comment>Reverted 1 edit by [[Special:Contributions/Delftstudent|Delftstudent]] ([[User talk:Delftstudent|talk]]) to last revision by GoldRingChip. ([[WP:TW|TW]])</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="6591">&lt;!--
PLEASE NOTE
This is NOT the place to create new articles. Any material placed here as part of a
new article as a &quot;work in progress&quot; will be deleted. Please read [[Wikipedia:Starting an article]]
for guidelines on creating an article.
--&gt;{{documentation subpage}}
&lt;!-- Categories go where indicated at the bottom of this page, please; interwikis go to Wikidata (see also: [[Wikipedia:Wikidata]]). --&gt;
'''''Example template:'''''
{{Under construction|nocat=true}}
----
{{High-use| 1969 }}
{{Twinkle standard installation}}
== Usage ==
{{Main|Wikipedia:How to edit a page|Wikipedia:Template messages|Template:In use/doc}}
This template is for articles actively undergoing construction. If the article instead is actively undergoing a major edit, please use {{Tl|In use}}.
In general, this template should not be used for new articles with little content. Instead, the [[Wikipedia:About the Sandbox|sandbox]] should be used to develop the article so that it has reasonable content when it is copied into namespace.
Articles tagged with this template are automatically added to the category [[:Category:Pages actively undergoing construction]]. Add the parameter &lt;code&gt;|placedby=&lt;/code&gt; (followed by your login name) to make it easy for people to contact the person who placed the template.
If used on a non-article page (such as a user page) which is not yet ready for use, type {{Tlx|Under construction|notready&amp;#61;true}}. That will produce the following:
{{Under construction|notready=true|nocat=true}}
A comment may be added to the box using the ''|comment='' switch.
As this template is used in multiple namespaces it uses {{tl|mbox}}, which will automatically detect individual namespace usage and adapt appropriate styling accordingly.
===Blank template===
&lt;pre&gt;&lt;nowiki&gt;{{under construction |placedby= |section= |nosection= |nocat= |notready= |comment= |category= |altimage= }}&lt;/nowiki&gt;&lt;/pre&gt;
===Parameters===
*'''altimage''' - provide an alternate image for the template. Should be a complete file tag, e.g. &lt;code&gt;&lt;nowiki&gt;[[File:Under_construction_icon-orange.svg|64px]]&lt;/nowiki&gt;&lt;/code&gt;
*'''category''' - a custom category (must be prefixed with the &quot;Category:&quot; namespace identifier and enclosed in double square brackets) into which the page will be placed. If omitted, the page is placed by default in [[:Category:Pages actively undergoing construction]]. However the age will not be placed into a category if the page is in the &quot;User:&quot; or &quot;User talk:&quot; namespaces.
*'''comment''' - free-form text. If present, the text &quot;Contributor note:&quot; is shown followed by the content of {{para|comment}}.
*'''nocat''' - set to '''true''' (e.g. &lt;tt&gt;&lt;nowiki&gt;nocat=true&lt;/nowiki&gt;&lt;/tt&gt;) to prevent the page from being placed into default [[:Category:Pages actively undergoing construction]] or into custom category. Set to anything but '''true''' or don't set it at all, and it will be included.
*'''notready''' - value is immaterial, but if present, and not blank, adds the text &quot;, and is not yet ready for use&quot; following the word &quot;restructuring&quot;.
*'''nosection''' - value is immaterial, but if present, and not blank (e.g. &lt;tt&gt;&lt;nowiki&gt;nosection=yes&lt;/nowiki&gt;&lt;/tt&gt;), removes the phrase &quot;or section&quot;, i.e. makes the message apply to the entire page
*'''placedby''' - user name of the person placing the template.
*'''section''' - value is immaterial, but if present, and not blank (e.g. &lt;tt&gt;&lt;nowiki&gt;section=yes&lt;/nowiki&gt;&lt;/tt&gt;), removes the phrase &quot;article or&quot;, i.e. makes the message apply only to a section.
== Template data ==
&lt;templatedata&gt;
{
&quot;params&quot;: {
&quot;altimage&quot;: {
&quot;label&quot;: &quot;Alternate image&quot;,
&quot;description&quot;: &quot;Provide an alternate image for the template. Should be a complete file tag.&quot;,
&quot;example&quot;: &quot;[[File:Under_construction_icon-orange.svg|64px]]&quot;,
&quot;type&quot;: &quot;wiki-file-name&quot;
},
&quot;section&quot;: {
&quot;label&quot;: &quot;Section&quot;,
&quot;description&quot;: &quot;Replaces phrase \&quot;article\&quot; with \&quot;section\&quot;&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;suggested&quot;: true
},
&quot;nosection&quot;: {
&quot;label&quot;: &quot;No section&quot;,
&quot;description&quot;: &quot;Replaces phrase \&quot;section\&quot; with article&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;notready&quot;: {
&quot;label&quot;: &quot;Not ready&quot;,
&quot;description&quot;: &quot;Adds the text \&quot;, and is not yet ready for use\&quot; following the word \&quot;restructuring\&quot;.&quot;,
&quot;type&quot;: &quot;string&quot;
},
&quot;placedby&quot;: {
&quot;label&quot;: &quot;Placed by&quot;,
&quot;description&quot;: &quot;User name of the person placing the template.&quot;,
&quot;type&quot;: &quot;wiki-user-name&quot;,
&quot;example&quot;: &quot;[[User:Jack]]&quot;,
&quot;required&quot;: true
},
&quot;comment&quot;: {
&quot;label&quot;: &quot;Comment&quot;,
&quot;description&quot;: &quot;A place to add any additional details to the template&quot;,
&quot;type&quot;: &quot;unbalanced-wikitext&quot;
},
&quot;nocat&quot;: {
&quot;label&quot;: &quot;No category&quot;,
&quot;description&quot;: &quot;Prevents the page from being placed into default Category:Pages actively undergoing construction or into custom category.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;default&quot;: &quot;false&quot;
},
&quot;Category&quot;: {
&quot;description&quot;: &quot;A custom category (must be prefixed with the \&quot;Category:\&quot; namespace identifier and enclosed in double square brackets) into which the page will be placed.&quot;,
&quot;example&quot;: &quot;[[Category:Science articles undergoing expansion]]&quot;,
&quot;type&quot;: &quot;unbalanced-wikitext&quot;
}
},
&quot;paramOrder&quot;: [
&quot;altimage&quot;,
&quot;section&quot;,
&quot;nosection&quot;,
&quot;notready&quot;,
&quot;placedby&quot;,
&quot;comment&quot;,
&quot;nocat&quot;,
&quot;Category&quot;
],
&quot;format&quot;: &quot;inline&quot;,
&quot;description&quot;: &quot;This template is for articles actively undergoing construction. If the article instead is actively undergoing a major edit, please use {{In use}}. &quot;
}
&lt;/templatedata&gt;
== See also ==
* [http://tools.wmflabs.org/tb-dev/PUCS/ A tool reports pages containing 'under construction' notices ranked by the time since last edit]
* {{tl|newpage}}, for newly created pages still under construction
* {{tl|increation}} to use this template when multiple edits are being made to add content immediately after creating the article
* {{tl|in use}}, for articles actively undergoing a major edit for a short while to list them in [[:Category:Pages actively undergoing a major edit]]
* {{tl|Underdiscussion}}, for a non main page undergoing active discussion on its talk page
* {{tl|Deletion under review}}, to prevent deletion nomination until the review process is complete
* [[Wikipedia:Deletion of newly created pages]], regarding preventing pages from getting deleted while they are brand new.
* {{tl|Incomplete}}
* {{tl|Data missing}}
&lt;includeonly&gt;{{Sandbox other||
&lt;!-- Categories go below this line, please; interwikis go to Wikidata, thank you! --&gt;
[[Category:Under-construction templates|{{PAGENAME}}]]
[[Category:Templates used by Twinkle]]
}}&lt;/includeonly&gt;</text>
<sha1>hsc198a6fddvvkn6au8kfnydqen9h8j</sha1>
</revision>
</page>
<page>
<title>Template:Subst only</title>
<ns>10</ns>
<id>18410319</id>
<revision>
<id>754234040</id>
<parentid>750467072</parentid>
<timestamp>2016-12-11T15:32:54Z</timestamp>
<contributor>
<username>GXXF</username>
<id>27386673</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="832">{{Ombox
| type = notice
| image = [[File:Information icon.svg|40px|alt=|link=]]
| text = '''This template should always be [[Help:Substitution|substituted]]''' (i.e., use &lt;!--
--&gt;{{#ifeq:{{NAMESPACE}}:{{BASEPAGENAME}}|Template:Subst only |{{braces|[[Wikipedia:Substitution|subst]]:'''''Template name'''''}} |{{{actualtemplate|{{template other|{{Tlsp|{{PAGENAME}}}}|{{Tlsu|{{FULLPAGENAME}}}}}}}}}}}). &lt;!--
--&gt;{{#if:{{yesno|{{{auto|no}}}}} |Any accidental transclusions will be automatically substituted by a bot.{{{1|}}}{{#ifeq:{{BASEPAGENAME}}|{{PAGENAME}}|[[Category:Wikipedia templates to be automatically substituted]]}}}} &lt;!--
--&gt;{{#if:{{{alt|}}} |For transcluding, use {{Tl|{{{alt|}}}}} instead.}}
}}{{#ifeq:{{BASEPAGENAME}}|{{PAGENAME}}|[[Category:Wikipedia substituted templates]]}}&lt;noinclude&gt;{{Documentation}}&lt;/noinclude&gt;</text>
<sha1>5vtpo0qd5us1bwv3ttrtsa7k0gxpdkh</sha1>
</revision>
</page>
<page>
<title>Template:Substituted</title>
<ns>10</ns>
<id>15674347</id>
<redirect title="Template:Subst only" />
<revision>
<id>769931250</id>
<parentid>578878461</parentid>
<timestamp>2017-03-12T13:00:37Z</timestamp>
<contributor>
<username>Christian75</username>
<id>1306352</id>
</contributor>
<comment>{{redr}} is deprecated - converting to {{Redirect category shell}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="127">#REDIRECT [[Template:Subst only]]
{{Redirect category shell|
{{R from merge}}
{{R from related word}}
{{R for convenience}}
}}</text>
<sha1>ku6n4cg9scslgqbsy0rv4ka5gly6gbp</sha1>
</revision>
</page>
<page>
<title>Template:Tlsp</title>
<ns>10</ns>
<id>3267625</id>
<revision>
<id>603826562</id>
<parentid>375589145</parentid>
<timestamp>2014-04-12T02:59:45Z</timestamp>
<contributor>
<username>Callanecc</username>
<id>10440891</id>
</contributor>
<minor/>
<comment>Changed protection level of Template:Tlsp: [[WP:High-risk templates|Highly visible template]]: Over 4000 transclusions; allowing template editors ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (in</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="398">{{[[Wikipedia:Substitution|subst]]:[[{{ns:Template}}:{{{1|Tlsp}}}|{{{1|Tlsp}}}]]{{#if:{{{2|}}}|&amp;#124;{{{2}}}}}{{#if:{{{3|}}}|&amp;#124;{{{3}}}}}{{#if:{{{4|}}}|&amp;#124;{{{4}}}}}{{#if:{{{5|}}}|&amp;#124;{{{5}}}}}{{#if:{{{6|}}}|&amp;#124;{{{6}}}}}{{#if:{{{subst|}}}|&amp;#124;subst={{{subst}}}}}}}{{#if:{{{7|}}}|{{error|{{tl|tlsp}} only supports up to 5 template parameters}}}}&lt;noinclude&gt;
{{documentation}}
&lt;/noinclude&gt;</text>
<sha1>104dcpn711ikww9e87o2yebaxnfksw6</sha1>
</revision>
</page>
<page>
<title>Template:Unicode/doc</title>
<ns>10</ns>
<id>9423617</id>
<revision>
<id>719586002</id>
<parentid>719310575</parentid>
<timestamp>2016-05-10T15:54:43Z</timestamp>
<contributor>
<username>Izkala</username>
<id>23051379</id>
</contributor>
<comment>Reactivate substing</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="828">{{documentation subpage}}
&lt;includeonly&gt;{{deprecated template|date=April 2016|note=This template is non-functional, but is kept because it was widely used in the past, and deleting it could render old versions of articles unreadable.}}&lt;/includeonly&gt;
{{substituted|auto=yes}} &lt;!-- needed for AnomieBOT to automate substitution --&gt;
== See also ==
* {{tl|IPA}} – To format symbols of the International Phonetic Alphabet
* {{tl|PUA}} – To mark characters from the Private Use Area that should be retained
* {{tl|transl}} – Generic [[romanization]]
* {{tl|script}} – Scripts in Unicode navigation box
* {{tl|unichar}} – to format an [[Unicode]] character description
{{Unicode templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox||
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
}}&lt;/includeonly&gt;</text>
<sha1>pwj2nj9amkpmavwf5hpt5rpp1z8e5uc</sha1>
</revision>
</page>
<page>
<title>Template:Unicode templates</title>
<ns>10</ns>
<id>32966924</id>
<revision>
<id>794657494</id>
<parentid>737439953</parentid>
<timestamp>2017-08-09T08:59:31Z</timestamp>
<contributor>
<username>JohnBlackburne</username>
<id>3082175</id>
</contributor>
<comment>update after move</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1140">{{Navbox
| name = Unicode templates
| bodyclass = hlist
| title = [[Unicode]] templates
| state = {{{state|{{{1|expanded}}}}}}
| group1 = General
| list1 =
* {{tl|Unicode navigation}}
* {{tl|Uncommon Unicode notice}}
| group2 = Inline
| list2 =
* {{tl|Unichar}}
* {{tl|UTF-8}}
* {{tl|UTF-8toScalar}}
* {{tl|UTF-16}}
| group3 = Character properties
| list3 =
* {{tlbare|Bidi Class (Unicode)|Bidi Class}}
* {{tlbare|General Category (Unicode)|General Category}}
* {{tlbare|Hexadecimal digit (Unicode)|Hexadecimal digit}}
* {{tlbare|Numeric Type (Unicode)|Numeric Type}}
* {{tlbare|Whitespace (Unicode)|Whitespace}}
| group4 = [[Code point]]s
| list4 =
* {{tlbare|Planes (Unicode)|Planes}}
* {{tlbare|Private Use Area (Unicode)|Private Use Area}}
* {{tlbare|Unicode blocks}}
| group5 = Scripts
| list5 =
* {{tl|ISO 15924 script codes and related Unicode data}}
| group6 = [[CJK characters|CJK-specific]]
| list6 =
* {{tl|CJK ideographs in Unicode}}
* {{tl|CJKV}}
* {{tl|Unihan}}
* {{tl|Lang-zh}}
| below =
* {{icon|Category}} {{c|Unicode charts}}
* {{icon|Category}} {{c|Unicode templates}}
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>0d2q2g9t0wa7zwvxiiz5ggvk67asvd1</sha1>
</revision>
</page>
<page>
<title>Template:User page/doc</title>
<ns>10</ns>
<id>13453577</id>
<revision>
<id>768922363</id>
<parentid>732343382</parentid>
<timestamp>2017-03-06T15:17:17Z</timestamp>
<contributor>
<username>Adem20</username>
<id>25436602</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1662">{{documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
{{high-use}}
=== Usage ===
This template may be placed on pages in [[Wikipedia:User pages|user space]] in order to differentiate them from pages containing [[WP:NS|encyclopedic content]]. It is recommended that it be included via &lt;code&gt;&lt;nowiki&gt;{{subst:user page}}&lt;/nowiki&gt;&lt;/code&gt; so that it will be displayed even on mirror sites that don't use this template.
==== Parameters ====
* {{tnull|user page|2=logo=yes|3=noindex=yes}}
** {{para|logo|&lt;var&gt;yes&lt;/var&gt;}}&amp;nbsp;– shows the Wikipedia logo on the left (default {{var|hidden}})
** {{para|logo|&lt;var&gt;right&lt;/var&gt;}}&amp;nbsp;- shows the Wikipedia logo on the right (default {{var|hidden}})
** {{para|noindex|&lt;var&gt;yes&lt;/var&gt;}}&amp;nbsp;– prevents external search engines from indexing the page (default {{var|no}})
** {{para|rounded|&lt;var&gt;yes&lt;/var&gt;}}&amp;nbsp;- makes the container's border rounded (default {{var|no}})
** {{para|border-radius|&lt;var&gt;15px&lt;/var&gt;}}&amp;nbsp;- changes the border radius, if &lt;code&gt;rounded={{var|yes}}&lt;/code&gt; is also set (default {{var|15px}})
** {{para|border-s|&lt;var&gt;1&lt;/var&gt;}}&amp;nbsp;- the size of the border (default {{var|1}})
** {{para|border-c|&lt;var&gt;#ffc9c9&lt;/var&gt;}}&amp;nbsp;- the color of the border (default {{var|#ffc9c9}})
** {{para|background|&lt;var&gt;#fffff3&lt;/var&gt;}}&amp;nbsp;- changes the background color (default {{var|#fffff3}})
{{Userspace Disclaimers}}
&lt;includeonly&gt;
&lt;!-- PLEASE ADD CATEGORIES BELOW THIS LINE, THANKS. --&gt;
[[Category:User namespace templates|{{PAGENAME}}]]
[[Category:Wikipedia templates which apply NOINDEX]]
&lt;!-- PLEASE ADD INTERWIKIS BELOW THIS LINE, THANKS. --&gt;
&lt;/includeonly&gt;</text>
<sha1>6jkavr50zrhazw1rptj7l000d32ksc5</sha1>
</revision>
</page>
<page>
<title>Template:Clickable button 2</title>
<ns>10</ns>
<id>37309562</id>
<revision>
<id>612451876</id>
<parentid>597304406</parentid>
<timestamp>2014-06-11T04:31:09Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>switch to [[Module:Clickable button 2]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="152">{{#invoke:Clickable button 2|main}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>opjw9s2c61c3mdy8g6kgotbq28z2cho</sha1>
</revision>
</page>
<page>
<title>Template:Not a sandbox</title>
<ns>10</ns>
<id>29576000</id>
<revision>
<id>793967974</id>
<parentid>792835867</parentid>
<timestamp>2017-08-05T00:32:33Z</timestamp>
<contributor>
<username>Tystnaden</username>
<id>12361669</id>
</contributor>
<comment>Add closing &lt;/div&gt;</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="480">{{Mbox
| type = content
| image = [[File:Sandbox Not.svg|50px|alt=|link=]]
| text = '''This page is ''&lt;u&gt;not&lt;/u&gt;'' a [[Wikipedia:About the Sandbox|sandbox]].'''&lt;br&gt;&lt;div style=&quot;font-size:90%&quot;&gt;It should not be used for test editing. To experiment, please use the [[Draft:Sandbox|Wikipedia sandbox]], your [[Special:MyPage/sandbox|user sandbox]], or one of the [[Wikipedia:About the sandbox#Specialized sandboxes|other sandboxes]].&lt;/div&gt;
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>ag3frrtrgc3rb1ijb45y0ec5cj9u55j</sha1>
</revision>
</page>
<page>
<title>Template:Select skin</title>
<ns>10</ns>
<id>11570814</id>
<revision>
<id>819697970</id>
<parentid>776772292</parentid>
<timestamp>2018-01-10T20:20:23Z</timestamp>
<contributor>
<username>Redrose64</username>
<id>9612106</id>
</contributor>
<comment>add Timeless</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="819">{{#if:{{{view|}}}|View {{#if:{{{1|}}}|[[{{{1}}}]]|this page}} in the [[WP:Skin|skin]]:&amp;ensp;}}&lt;div class=&quot;hlist noprint plainlinks nowraplinks&quot; style=&quot;{{{style|}}}&quot;&gt;
* [{{fullurl:{{{1|{{FULLPAGENAME}}}}}|useskin=cologneblue}} {{int:skinname-cologneblue}}]
* [//en.m.wikipedia.org{{localurl:{{{1|{{FULLPAGENAME}}}}}|useskin=minerva}} {{int:skinname-minerva}}] (mobile)
* [{{fullurl:{{{1|{{FULLPAGENAME}}}}}|useskin=modern}} {{int:skinname-modern}}]
* [{{fullurl:{{{1|{{FULLPAGENAME}}}}}|useskin=monobook}} {{int:skinname-monobook}}]
* [{{fullurl:{{{1|{{FULLPAGENAME}}}}}|useskin=timeless}} {{int:skinname-timeless}}]
* [{{fullurl:{{{1|{{FULLPAGENAME}}}}}|useskin=vector}} {{int:skinname-vector}}]
&lt;/div&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;!-- PLEASE ADD THIS TEMPLATE'S CATEGORIES TO THE /doc SUBPAGE, THANKS --&gt;
&lt;/noinclude&gt;</text>
<sha1>qivw01lvtqqblfot31gp5j2kcv5tddh</sha1>
</revision>
</page>
<page>
<title>Template:Selectskin</title>
<ns>10</ns>
<id>32735243</id>
<redirect title="Template:Select skin" />
<revision>
<id>444652989</id>
<timestamp>2011-08-13T16:48:03Z</timestamp>
<contributor>
<username>The Evil IP address</username>
<id>8337922</id>
</contributor>
<comment>moved [[Template:Selectskin]] to [[Template:Select skin]]: spacing</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="34">#REDIRECT [[Template:Select skin]]</text>
<sha1>3mkhlgtp9uoe3j4xzcik5vcduzls5kn</sha1>
</revision>
</page>
<page>
<title>Template:User other</title>
<ns>10</ns>
<id>21949014</id>
<revision>
<id>772120970</id>
<parentid>388688988</parentid>
<timestamp>2017-03-25T12:38:50Z</timestamp>
<contributor>
<username>Jo-Jo Eumerus</username>
<id>17449355</id>
</contributor>
<minor/>
<comment>Changed protection level for &quot;[[Template:User other]]&quot;: Allowing template editors on some templates with full protection dating back to pre-[[WP:TPROT|TPROT]] times which aren't too often or too sensitively used. ([Edit=Require template editor access]...</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="423">{{#switch:
&lt;!--If no or empty &quot;demospace&quot; parameter then detect namespace--&gt;
{{#if:{{{demospace|}}}
| {{lc: {{{demospace}}} }} &lt;!--Use lower case &quot;demospace&quot;--&gt;
| {{#ifeq:{{NAMESPACE}}|{{ns:User}}
| user
| other
}}
}}
| user = {{{1|}}}
| other
| #default = {{{2|}}}
}}&lt;!--End switch--&gt;&lt;noinclude&gt;
{{documentation}}
&lt;!-- Add categories and interwikis to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>sp41goodrevog1opvdjjf3951ofz05b</sha1>
</revision>
</page>
<page>
<title>Template:User sandbox/doc</title>
<ns>10</ns>
<id>34901647</id>
<revision>
<id>815879586</id>
<parentid>800524476</parentid>
<timestamp>2017-12-17T20:11:18Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>+cat.</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="4618">&lt;noinclude&gt;{{Pp-template|small=yes}}
&lt;/noinclude&gt;{{Documentation subpage}}
&lt;!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --&gt;
{{not a sandbox}}
{{high-risk|172,000+}}
This template is for placement at the top of [[WP:SANDBOX|sandbox]] pages in the [[WP:USER|User]] namespace so that readers understand it is ''not'' an active/live article or Wikipedia project page.
Non-userspace uses of this template are tracked in [[:Category:Non-userspace pages using User sandbox]].
== Usage ==
;Basic usage (shown above)
&lt;pre&gt;{{user sandbox}}&lt;/pre&gt;
;Plain version
&lt;pre&gt;{{user sandbox|plain=yes}}&lt;/pre&gt;
{{user sandbox|plain=yes|demospace=User}}
;All parameters
&lt;pre style=&quot;overflow:auto;&quot;&gt;{{user sandbox|Username|plain=all|list=[[Personalization|Custom]] [[WP:USERSUBPAGE|list]] of [[Help:My sandbox|sandboxes]]|selectskin=yes|afc=no|noindex=yes|demospace=User}}&lt;/pre&gt;
{{user sandbox|Username|plain=all|list=[[Personalization|Custom]] [[WP:USERSUBPAGE|list]] of [[Help:My sandbox|sandboxes]]|selectskin=yes|afc=no|noindex=yes|demospace=User}}
== Parameters ==
* The first positional parameter is the username of the editor the sandbox belongs to. This is not necessary if the sandbox is located in that user's userspace.
* '''plain''' - this removes most of the extra links. If this is equal to &quot;all&quot;, only the basic message is left. If this parameter is present but not equal to &quot;all&quot;, the text &quot;For a sandbox of your own, create it here&quot; is still visible.
* '''list''' - a list of your user sandboxes can be inserted here. This needs to be done with square brackets, e.g. &lt;code&gt;&lt;nowiki&gt;[[User:Example/Sandbox1]], [[User:Example/Sandbox2]]&lt;/nowiki&gt;&lt;/code&gt;.
* '''selectskin''' - if this is set to &quot;yes&quot;, a menu appears allowing you to select different skins to use with the sandbox.
* '''afc''' - if this is set to &quot;no&quot;, the text &quot;If you are writing an article, and are ready to request its creation, click here&quot; is suppressed. This parameter is unnecessary if the {{para|plain}} parameter is specified.
* '''noindex''' - by default, pages with this template transcluded on them are not indexed by search engines. If this parameter is set to anything other than &quot;yes&quot;, indexing by search engines is allowed.
* '''demospace''' - if this is set to the name of a Wikipedia [[WP:NS|namespace]], the template acts as if it was transcluded in that namespace no matter what the actual current namespace is. This is useful for demonstration purposes.
== Template data ==
{{TemplateDataHeader}}
&lt;templatedata&gt;{
&quot;description&quot;: &quot;This template creates a box marking the current page as a user sandbox.&quot;,
&quot;params&quot;: {
&quot;1&quot;: {
&quot;label&quot;: &quot;Username&quot;,
&quot;description&quot;: &quot;The username of the editor who owns the page. If the page is in that editor's userspace, this parameter is optional.&quot;,
&quot;type&quot;: &quot;string/wiki-user-name&quot;,
&quot;required&quot;: false
},
&quot;plain&quot;: {
&quot;label&quot;: &quot;Plain&quot;,
&quot;description&quot;: &quot;If set to 'all', this hides all of the extra links. If set to something else, this hides nearly all of the extra links.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;list&quot;: {
&quot;label&quot;: &quot;List&quot;,
&quot;description&quot;: &quot;Can be set to a list of other sandboxes owned by this editor. Optional.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;selectskin&quot;: {
&quot;label&quot;: &quot;Show skin selector&quot;,
&quot;description&quot;: &quot;Set to 'yes' to include a menu for displaying the sandbox with different skins.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;afc&quot;: {
&quot;label&quot;: &quot;Show AFC notice&quot;,
&quot;description&quot;: &quot;Set to 'no' to hide the AFC notice ('If you are writing an article...'), which is shown by default.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;noindex&quot;: {
&quot;label&quot;: &quot;Hide from search engines&quot;,
&quot;description&quot;: &quot;Set to something other than 'yes' to make this page visible to search engines like Google.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
},
&quot;demospace&quot;: {
&quot;label&quot;: &quot;Demo namespace&quot;,
&quot;description&quot;: &quot;Set to a namespace to make this template behave as if it is in that namespace.&quot;,
&quot;type&quot;: &quot;string&quot;,
&quot;required&quot;: false
}
}
}&lt;/templatedata&gt;
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox | |
&lt;!-- Categories below this line, please; interwikis at Wikidata --&gt;
[[Category:Sandbox templates]]
[[Category:User namespace templates]]
[[Category:Exclude in print]]
[[Category:Wikipedia header templates]]
}}&lt;/includeonly&gt;
{{Userspace Disclaimers}}</text>
<sha1>7dr4r39gu4jhsrb8lq1wb289v4zign0</sha1>
</revision>
</page>
<page>
<title>Module:AFC submission catcheck</title>
<ns>828</ns>
<id>39127846</id>
<revision>
<id>622962267</id>
<parentid>622961646</parentid>
<timestamp>2014-08-27T01:20:00Z</timestamp>
<contributor>
<username>Jackmcbarn</username>
<id>19285809</id>
</contributor>
<comment>fix another script error</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="825">local p = {}
local function removeFalsePositives(str)
if not str then
return ''
end
return mw.ustring.gsub(mw.ustring.gsub(str, &quot;&lt;!--.---&gt;&quot;, &quot;&quot;), &quot;&lt;nowiki&gt;.-&lt;/nowiki&gt;&quot;, &quot;&quot;)
end
function p.checkforcats(frame)
local t = mw.title.getCurrentTitle()
tc = t:getContent()
if tc == nil then
return &quot;&quot;
end
tc = removeFalsePositives(mw.ustring.gsub(tc,&quot;%[%[Category:Articles created via the Article Wizard%]%]&quot;,&quot;&quot;))
if mw.ustring.match(tc, &quot;%[%[%s-[Cc]ategory:&quot; ) == nil then
return &quot;&quot;
else
return &quot;[[Category:AfC submissions with categories]]&quot;
end
end
function p.submitted(frame)
if mw.ustring.find(removeFalsePositives(mw.title.getCurrentTitle():getContent()), '{{AFC submission||', 1, true) then
return frame.args[1]
else
return frame.args[2]
end
end
return p</text>
<sha1>s4t78eronlkuhlmfj0281o1359hlm3e</sha1>
</revision>
</page>
<page>
<title>Module:Clickable button 2</title>
<ns>828</ns>
<id>43015762</id>
<revision>
<id>805212889</id>
<parentid>712259601</parentid>
<timestamp>2017-10-13T20:43:27Z</timestamp>
<contributor>
<username>Matt Fitzpatrick</username>
<id>291848</id>
</contributor>
<comment>removed button role, this template's typical use is to navigate to a new url, which is link role not button role</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="3506">-- This module implements {{clickable button 2}}.
local yesno = require('Module:Yesno')
local p = {}
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Clickable button 2'
})
return p.luaMain(args)
end
function p.luaMain(args)
if not args[1] and not args.url then
return ''
end
local data = p.makeLinkData(args)
local link = p.renderLink(data)
local trackingCategories = p.renderTrackingCategories(args)
return link .. trackingCategories
end
function p.makeLinkData(args)
local data = {}
-- Get the link and display values, and find whether we are outputting a
-- wikilink or a URL.
if args.url then
data.isUrl = true
data.link = args.url
if args[1] then
data.display = args[1]
else
data.display = args.url
end
else
data.isUrl = false
data.link = args[1]
if args[2] then
data.display = args[2]
else
data.display = args[1]
end
end
-- Classes
local class = args.class and args.class:lower()
data.classes = {}
if class == 'ui-button-green'
or class == 'ui-button-blue'
or class == 'ui-button-red'
then
table.insert(
data.classes,
'submit ui-button ui-widget ui-state-default ui-corner-all'
.. ' ui-button-text-only ui-button-text'
)
else
table.insert(data.classes, 'mw-ui-button')
end
if class then
table.insert(data.classes, class)
end
-- Styles
do
--[[
-- Check whether we are on the same page as we have specified in
-- args[1], but not if we are using a URL link, as then args[1] is only
-- a display value. If we are currently on the page specified in
-- args[1] make the button colour darker so that it stands out from
-- other buttons on the page.
--]]
local success, linkTitle, currentTitle
if not data.isUrl then
currentTitle = mw.title.getCurrentTitle()
success, linkTitle = pcall(mw.title.new, args[1])
end
if success
and linkTitle
and mw.title.equals(currentTitle, linkTitle)
then
if class == 'ui-button-blue'
or class == 'mw-ui-progressive'
or class == 'mw-ui-constructive'
then
data.backgroundColor = '#2962CB'
elseif class == 'ui-button-green' then
data.backgroundColor = '#008B6D'
elseif class == 'ui-button-red' or class == 'mw-ui-destructive' then
data.backgroundColor = '#A6170F'
else
data.backgroundColor = '#CCC'
data.color = '#666'
end
end
-- Add user-specified styles.
data.style = args.style
end
return data
end
function p.renderLink(data)
-- Render the display span tag.
local display
do
local displaySpan = mw.html.create('span')
for i, class in ipairs(data.classes or {}) do
displaySpan:addClass(class)
end
displaySpan
:css{
['background-color'] = data.backgroundColor,
color = data.color
}
if data.style then
displaySpan:cssText(data.style)
end
displaySpan:wikitext(data.display)
display = tostring(displaySpan)
end
-- Render the link
local link
if data.isUrl then
link = string.format('[%s %s]', data.link, display)
else
link = string.format('[[%s|%s]]', data.link, display)
end
return string.format('&lt;span class=&quot;plainlinks&quot;&gt;%s&lt;/span&gt;', link)
end
function p.renderTrackingCategories(args)
if yesno(args.category) == false then
return ''
end
local class = args.class and args.class:lower()
if class == 'ui-button-green'
or class == 'ui-button-blue'
or class == 'ui-button-red'
then
return '[[Category:Pages using old style ui-button-color]]'
else
return ''
end
end
return p</text>
<sha1>0xfqotd4yihbv9gbak0pp9irn2weat8</sha1>
</revision>
</page>
<page>
<title>Template:Ambox</title>
<ns>10</ns>
<id>13179742</id>
<revision>
<id>704688422</id>
<parentid>578398722</parentid>
<timestamp>2016-02-12T23:50:56Z</timestamp>
<contributor>
<username>MSGJ</username>
<id>42630</id>
</contributor>
<minor/>
<comment>add temporary tracking category for small amboxes</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="220">{{#invoke:Message box|ambox}}{{#ifeq:{{{small}}}|left|[[Category:Articles using small message boxes]]}}&lt;noinclude&gt;
{{documentation}}
&lt;!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --&gt;
&lt;/noinclude&gt;</text>
<sha1>j0j11qao0sl45x6kzzme1ycda7wiz9f</sha1>
</revision>
</page>
<page>
<title>Template:Very long/doc</title>
<ns>10</ns>
<id>18625585</id>
<revision>
<id>690446168</id>
<parentid>649185245</parentid>
<timestamp>2015-11-13T11:49:10Z</timestamp>
<contributor>
<username>This, that and the other</username>
<id>4168824</id>
</contributor>
<comment>{{Twinkle standard installation}}</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="2107">{{Documentation subpage}}
{{Twinkle standard installation}}
{{Template shortcut|Long|Toobig|Toolong|Too-long|Too long|VeryLong}}
&lt;!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE --&gt;
See [[Wikipedia:Article size]] for more information on this topic.
== Usage ==
Add {{Tlx|Very long|date{{=}}{{CURRENTMONTHNAME}} {{CURRENTYEAR}}}} to the top of the article, below any [[WP:HAT|hatnotes]].
If a particular section of an article is getting long, even though it has already been split to its own article as per [[WP:SUMMARY|the summary style]], then it can be tagged by adding {{Tlx|Very long|section|date{{=}}{{CURRENTMONTHNAME}} {{CURRENTYEAR}}}} to the top of the section, which renders then as: {{Very long|section|date={{CURRENTMONTHNAME}} {{CURRENTYEAR}}}}
; Small parameter
{{Tlx|Very long|small{{=}}left|date{{=}}{{CURRENTMONTHNAME}} {{CURRENTYEAR}}}} generates the following small sized template: {{Very long|small=left|date={{CURRENTMONTHNAME}} {{CURRENTYEAR}}}}
; Section
{{Tlx|Very long section}} and {{Tlx|Very long|section|small{{=}}left|date{{=}}{{CURRENTMONTHNAME}} {{CURRENTYEAR}}}} both render: {{Very long section}}
; Readable prose size
The readable prose size in kilobytes, calculated with the help of tools like [[User:Dr pda/prosesize|Prosesize]] or [[User:Shubinator/DYKcheck|Shubinator's DYK tool]], can be added manually to the template: {{Tlx|Very long|rps{{=}}75}} generates the following template: {{Very long|rps=75}}
This template adds tagged articles to [[:Category:Articles that may be too long]], or one of its dated subcategories.
{{Wikipedia:Template messages/Merging and splitting/List}}
=== See also ===
* A list of related [[Wikipedia:Cleanup|cleanup]] templates at [[Wikipedia:Template messages/Cleanup]]
* {{Tl|Lead too long}}
* {{Tl|Sections}}
* {{Tl|Sub-sections}}
* {{Tl|Overly detailed}}
* {{Tl|Too many see alsos}}
* {{Tl|Very long section}}
* {{tl|Archiveme}} – a template for long talk pages
&lt;includeonly&gt;
&lt;!-- CATEGORIES AND INTERWIKIS HERE, THANKS --&gt;
[[Category:Cleanup templates]]
[[Category:Coherency templates]]
&lt;/includeonly&gt;</text>
<sha1>s1jgc11qrttrjsr8gv2yqld5nlcjar2</sha1>
</revision>
</page>
<page>
<title>Template:Very long section</title>
<ns>10</ns>
<id>17786820</id>
<revision>
<id>784071445</id>
<parentid>582082074</parentid>
<timestamp>2017-06-06T09:08:13Z</timestamp>
<contributor>
<username>UsuallyNonviolentBot</username>
<id>31197275</id>
</contributor>
<minor/>
<comment>/* top */Remove deprecated parameter $N from [[Module:Unsubst]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="262">{{ {{{|safesubst:}}}#invoke:Unsubst||date=__DATE__ |$B=
{{Very long
|name=Very long section
|subst=&lt;includeonly&gt;{{subst:&lt;/includeonly&gt;&lt;includeonly&gt;substcheck}}&lt;/includeonly&gt;
|1=section
|small=left
|date={{{date|}}}
}}
}}&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>feh3vepnglzoz23r9i7gdw2vwyj1sns</sha1>
</revision>
</page>
<page>
<title>Template:In5</title>
<ns>10</ns>
<id>24463938</id>
<revision>
<id>821201633</id>
<parentid>715138110</parentid>
<timestamp>2018-01-19T00:30:16Z</timestamp>
<contributor>
<username>Primefac</username>
<id>11508456</id>
</contributor>
<minor/>
<comment>Protected &quot;[[Template:In5]]&quot;: [[WP:SEMIPROT|semi-protection]] of high-usage templates to combat systematic vandalism ([Edit=Require autoconfirmed or confirmed access] (indefinite) [Move=Require autoconfirmed or confirmed access] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="169">&lt;includeonly&gt;{{{{{|safesubst:}}}#invoke:in5|in5|1={{{1|}}}}}&lt;/includeonly&gt;&lt;noinclude&gt;
{{Documentation}}
&lt;!--[[Category:Smart formatting templates|In5]]--&gt;
&lt;/noinclude&gt;</text>
<sha1>8vq8wpy1id7garukyg2rx2pi2ojk3nv</sha1>
</revision>
</page>
<page>
<title>Template:Notice/doc</title>
<ns>10</ns>
<id>15789310</id>
<revision>
<id>786773850</id>
<parentid>780020933</parentid>
<timestamp>2017-06-21T14:41:41Z</timestamp>
<contributor>
<username>Eyesnore</username>
<id>18177679</id>
</contributor>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="11492">&lt;!--
********************************************************************
**** This documentation is shared between multiple templates, ****
**** using {{BASEPAGENAME}} and {{#switch:...}} to customize. ****
********************************************************************
--&gt;
{{Documentation subpage}}
&lt;!-- PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE AND INTERWIKIS TO WIKIDATA --&gt;
{{Used in system}}
This is the {{tl|{{BASEPAGENAME}}}} message box. It should be used '''sparingly''' and only for {{#switch:{{BASEPAGENAME}}
|Warning='''important''' warnings about an article or a user that cannot be shown using a more specific template. Please only use it when something is seriously wrong and other people might not otherwise know about it.
|&lt;!--DEFAULT:--&gt;'''significant''' information for which a more specific template doesn't exist.
}} Less important comments should be put as regular text on the page's talk page instead.
== Usage ==
'''&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}}|1=Place notice text here. |heading=Optional heading above the text&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;'''
This box automatically changes its style depending on what kind of page it appears; see {{tl|Mbox}} for details, and view the examples below for demonstrations.
=== Use in talk and userspace ===
Outside &quot;important&quot; locations like mainspace, policy pages, and noticeboards, this message box can also be used on other pages in a more relaxed way, such as on the top of talk page alerts, wikiproject pages, userspace pages, etc. Talk and noticeboard cases should probably include your [[WP:Signature|signature]] at the end of the template's main content.
===Optional parameters ===
The box can be titled with an optional {{para|heading}} (or {{para|header}} or {{para|title}}). This is left-aligned by default. This:&lt;br /&gt;
{{in5}}&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |heading=Heading |[[Lorem ipsum|Lorem ipsum]] dolor sit amet...&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
produces an all-left notice:
{{{{BASEPAGENAME}}|demospace=main |heading=Heading |style=margin-bottom:2.0em; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
It can be hard to notice or read short heading and/or message on a wide monitor when they centered. For long content, it can be centered with {{para|align|center}}.&lt;br /&gt;{{small|1=[While {{para|align|right}} is a valid value, it will only be useful when this template is ported to right-to-left language Wikipedias, and shouldn't be used on English Wikipedia or it will be difficult to read.]}}&lt;br /&gt;
This:&lt;br /&gt;
{{in5}}&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |heading=Heading |align=center |Lorem ipsum dolor sit amet...&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
produces:
{{{{BASEPAGENAME}}|demospace=main |heading=Heading |style=margin-bottom:2.0em; |align=center |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
A shorthand parameter to center the heading and main text at the same time is {{para|center|y}}. This:&lt;br /&gt;
{{in5}}&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |heading=Heading |center=y |Lorem ipsum dolor sit amet...&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
produces:
{{{{BASEPAGENAME}}|demospace=main |heading=Heading |style=margin-bottom:2.0em; |center=y |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
The parameter {{para|textstyle}} can be used to pass arbitrary inline CSS to the main note content. For example, one could center small-caps text below a left-aligned heading; this:&lt;br /&gt;
{{in5}}&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |heading=Heading |textstyle=text-align:center; font-variant:small-caps; |Lorem ipsum dolor sit amet...&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
produces:
{{{{BASEPAGENAME}}|demospace=main |heading=Heading |style=margin-bottom:2.0em; |textstyle=text-align:center; font-variant:small-caps;|Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
Similarly, the parameter {{para|headstyle}} can be used to pass arbitrary inline CSS to the heading content. For example, one could center a red heading above a left-aligned message; this:&lt;br /&gt;
{{in5}}&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |heading=Heading |headstyle=text-align:center; color:red; |Lorem ipsum dolor sit amet...&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;
produces:
{{{{BASEPAGENAME}}|demospace=main |heading=Heading |style=margin-bottom:2.0em; |headstyle=text-align:center; color:red;|Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
The message box can also take an {{para|image}} parameter (with a value of just the bare filename of the image, without &lt;code&gt;File:...&lt;/code&gt;, &lt;code&gt;Image:...&lt;/code&gt;, or markup), but this is discouraged in articles. For an example of its use, see below.
See [[#Talk pages]], below for the talkpage-only {{para|small|y}} parameter. See also [[#Adding an image, shortcuts, etc., on the righthand side]] for additional parameters that work in talk and project pages but not articles.
===Articles===
: &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; produces:
{{{{BASEPAGENAME}}|demospace=main|style=margin-bottom:2.0em; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
===Talk pages===
On talk pages, &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |Lorem ipsum dolor sit amet...&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; produces:
{{{{BASEPAGENAME}}|demospace=talk|style=margin-bottom:2.0em; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
You may also set the talkpage-only parameter {{para|small|yes}}, which alters the template's appearance thus:
{{{{BASEPAGENAME}}|demospace=talk |small=yes |header=Header |style=text-align:center;&lt;!--margin-bottom:2.0em;--&gt; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
: &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |small=yes |header=Header |style=text-align:center; |Lorem ipsum dolor sit amet...&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt;&amp;nbsp;produces&amp;nbsp;......
{{clear}}
Setting the {{para|image}} parameter changes the image shown on the lefthand side of the template.
: &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |image=Stop hand nuvola.svg |heading=Heading |Lorem ipsum dolor sit amet...&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; produces:
{{{{BASEPAGENAME}}|demospace=talk&lt;!--|style=margin-bottom:2.0em;--&gt; |image=Stop hand nuvola.svg |heading=Heading |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
(Note the effect of omitting {{para|style|text-align:center;}} here)
===File and category pages===
&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |Lorem ipsum dolor sit amet...&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; on a File: page would produce... {{{{BASEPAGENAME}}|demospace=image&lt;!--file?--&gt;|style=margin-bottom:2.0em; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}} ... and, on a Category: page, would produce: {{{{BASEPAGENAME}}|demospace=category|style=margin-bottom:2.0em; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
===Other pages===
On other pages, such as those in the [[Wikipedia:User pages|User:]], [[Wikipedia:Wikipedia namespace|Wikipedia:]] and [[Wikipedia:Help namespace|Help:]] [[Wikipedia:Namespaces|namespaces]], &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |Lorem ipsum dolor sit amet...&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; would produce:
{{{{BASEPAGENAME}}|demospace=wikipedia|style=margin-bottom:2.0em; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
===External links and equals signs===
In most cases, external links can be used in the template without any complications. If a link &amp;ndash;&amp;nbsp;or any text&amp;nbsp;&amp;ndash; contains one or more equals signs (&quot; &amp;#61; &quot;), however, everything before the first sign will be interpreted as the name of a parameter. To prevent this, name the text carrying the link as the first numbered parameter:
: &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |1=Any text/links including &quot;=&quot; should now be interpreted correctly.&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; produces:
{{{{BASEPAGENAME}}|style=margin-bottom:2.0em; |1=Any text/links including &quot;=&quot; should now be interpreted correctly.}}
===Adding an image, shortcuts, etc., on the righthand side===
To add shortcuts, images, other templates, etc. to the righthand side of the template, use {{para|imageright}}. This does not work in articles. For example,&lt;br /&gt;&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |imageright=&lt;nowiki&gt;[[File:Wiki letter w.svg|40px]] |Lorem ipsum dolor sit amet...}}&lt;/nowiki&gt;&lt;/code&gt; produces:
{{{{BASEPAGENAME}}|style=margin-bottom:2.0em; |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. |imageright=[[File:Wiki letter w.svg|40px]]}}
&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |imageright=&lt;nowiki&gt;{{Shortcuts|You|Me}} |Lorem ipsum dolor sit amet...}}&lt;/nowiki&gt;&lt;/code&gt; includes the {{tl|Shortcut}}s template providing links to [[You]] and [[Me]]:
{{{{BASEPAGENAME}}|style=margin-bottom:2.0em; |imageright={{Shortcut|You|Me}} |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
====Alternate shortcut option====
As an alternative to imageright, the {{para|shortcut}} (or {{para|shortcut1}}) and {{para|shortcut''N''}} parameters (where {{nowrap|''N'' {{=}} 2}} to 5) may be used to display shortcuts. For instance, &lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |shortcut1=Me |shortcut2=You |shortcut3=Them |shortcut4=Us |shortcut5=Everyone |Lorem ipsum dolor sit amet...&lt;nowiki&gt;}}&lt;/nowiki&gt;&lt;/code&gt; produces:
{{{{BASEPAGENAME}}|style=margin-bottom:2.0em; |shortcut1=Me |shortcut2=You |shortcut3=Them |shortcut4=Us |shortcut5=Everyone |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
''Note: If both imageright and any of the shorcut parameters are used, the contents of imageright will override the shortcut/s.'' For example,&lt;br /&gt;&lt;code&gt;&lt;nowiki&gt;{{&lt;/nowiki&gt;{{BASEPAGENAME}} |imageright=&lt;nowiki&gt;[[File:Wiki letter w.svg|40px]] |shortcut1=Me |shortcut2=You |shortcut3=Them |shortcut4=Us |shortcut5=Everyone |Lorem ipsum dolor sit amet...}}&lt;/nowiki&gt;&lt;/code&gt; produces:
{{{{BASEPAGENAME}}|style=margin-bottom:2.0em; |imageright=[[File:Wiki letter w.svg|40px]] |shortcut1=Me |shortcut2=You |shortcut3=Them |shortcut4=Us |shortcut5=Everyone |Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.}}
{{{{BASEPAGENAME}} and warning templates}}
&lt;includeonly&gt;{{#ifeq:{{SUBPAGENAME}}|sandbox |
| &lt;!-- CATEGORIES BELOW THIS LINE PLEASE; INTERWIKIS AT WIKIDATA --&gt;
[[Category:Notice and warning templates]]
[[Category:Talk header templates]]
&lt;!--[[labconsole:Template:Notice]]--&gt;
}}&lt;/includeonly&gt;</text>
<sha1>hq1n95559v92jbiprjz04ee9tg4pjg3</sha1>
</revision>
</page>
<page>
<title>Template:Notice and warning templates</title>
<ns>10</ns>
<id>44902051</id>
<revision>
<id>725013893</id>
<parentid>653966668</parentid>
<timestamp>2016-06-13T01:22:27Z</timestamp>
<contributor>
<username>Mrjulesd</username>
<id>17505739</id>
</contributor>
<comment>added cat</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="983">{{Navbox
| name = Notice and warning templates
| state = {{{state|}}}
| title = {{c|Notice and warning templates}}
| liststyle = text-align:left;
| tracking = no &lt;!-- keep all the documanted templates out of the hlist tracking category --&gt;
| list1 =
* {{tlb|Caution}} – For messages indicating e.g. that errors or misuse may have wide repercussions.
* {{tlb|Consensus}} – For notices relating to [[Wikipedia:Consensus|consensus]] about methods, procedures, editing, etc.
* {{tlb|Notice}} – For significant information.
* {{tlb|Warning}} – For particularly significant warnings.
* {{tl|Warnsign}} – Inline version of {{tlf|Warning}}.
| below = See also {{tl|Ambox}}, the generic [[Template:Mbox|messagebox]] for article messages.
}}&lt;noinclude&gt;
{{Documentation |content={{Collapsible option |statename=optional &lt;!--|default=collapsed--&gt;}}
[[Category:Notice and warning templates| ]]
[[Category:Documentation see also templates]]
}}&lt;!--(end Documentation)--&gt;
&lt;/noinclude&gt;</text>
<sha1>2fa1j6723p8k7g48e3w08uatnxt72x0</sha1>
</revision>
</page>
<page>
<title>Template:Ombox/shortcut</title>
<ns>10</ns>
<id>18551499</id>
<revision>
<id>812902874</id>
<parentid>812902540</parentid>
<timestamp>2017-11-30T15:38:58Z</timestamp>
<contributor>
<username>Atón</username>
<id>24952938</id>
</contributor>
<comment>less right and left padding</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="1024">&lt;div role=&quot;note&quot; class=&quot;shortcutbox plainlist noprint&quot; style=&quot;float: right; border-left: 1px solid #aaa; padding: .4em 0em .4em 1em; text-align: center; line-height: 1.4em; font-weight: bold; font-size: smaller;&quot;&gt;&lt;!--
Putting anchors on page:
--&gt;{{#if:{{{1|}}}|&lt;span id=&quot;{{{1|}}}&quot;&gt;&lt;/span&gt; }}{{#if:{{{2|}}}|&lt;span id=&quot;{{{2|}}}&quot;&gt;&lt;/span&gt; }}{{#if:{{{3|}}}|&lt;span id=&quot;{{{3|}}}&quot;&gt;&lt;/span&gt; }}{{#if:{{{4|}}}|&lt;span id=&quot;{{{4|}}}&quot;&gt;&lt;/span&gt; }}{{#if:{{{5|}}}|&lt;span id=&quot;{{{5|}}}&quot;&gt;&lt;/span&gt; }}&lt;!--
Adding the shortcut links:
--&gt;&lt;div style=&quot;display: inline-block; border-bottom: 1px solid #aaa; line-height: 1.5em; font-weight: normal; margin-bottom: .2em;&quot;&gt;[[Wikipedia:Shortcut|Shortcut{{#if:{{{2|}}}|s}}]]&lt;/div&gt;&lt;!--
--&gt;{{#if:{{{1|}}}|
* {{nowrap|{{no redirect|{{{1}}}}}}}
}}{{#if:{{{2|}}}|
* {{nowrap|{{no redirect|{{{2}}}}}}}
}}{{#if:{{{3|}}}|
* {{nowrap|{{no redirect|{{{3}}}}}}}
}}{{#if:{{{4|}}}|
* {{nowrap|{{no redirect|{{{4}}}}}}}
}}{{#if:{{{5|}}}|
* {{nowrap|{{no redirect|{{{5}}}}}}}
}}
&lt;/div&gt;
&lt;noinclude&gt;
{{Documentation}}
&lt;/noinclude&gt;</text>
<sha1>e2b9llha0q75zf7if01bl1kp6rfaqu2</sha1>
</revision>
</page>
<page>
<title>Template:Tlb</title>
<ns>10</ns>
<id>25984912</id>
<revision>
<id>610784191</id>
<parentid>609086643</parentid>
<timestamp>2014-05-30T12:40:04Z</timestamp>
<contributor>
<username>Armbrust</username>
<id>8454797</id>
</contributor>
<comment>TfD was closed as no consensus</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="681">{{Tlg|bold=yes|subst={{{subst|}}}|{{{1|}}}&lt;!--
--&gt;|2{{#ifeq:{{{2}}}|{{{2|x}}}||x}}={{{2}}}&lt;!--
--&gt;|3{{#ifeq:{{{3}}}|{{{3|x}}}||x}}={{{3}}}&lt;!--
--&gt;|4{{#ifeq:{{{4}}}|{{{4|x}}}||x}}={{{4}}}&lt;!--
--&gt;|5{{#ifeq:{{{5}}}|{{{5|x}}}||x}}={{{5}}}&lt;!--
--&gt;|6{{#ifeq:{{{6}}}|{{{6|x}}}||x}}={{{6}}}&lt;!--
--&gt;|7{{#ifeq:{{{7}}}|{{{7|x}}}||x}}={{{7}}}&lt;!--
--&gt;|8{{#ifeq:{{{8}}}|{{{8|x}}}||x}}={{{8}}}&lt;!--
--&gt;|9{{#ifeq:{{{9}}}|{{{9|x}}}||x}}={{{9}}}&lt;!--
--&gt;|10{{#ifeq:{{{10}}}|{{{10|x}}}||x}}={{{10}}}&lt;!--
--&gt;|11{{#ifeq:{{{11}}}|{{{11|x}}}||x}}={{{11}}}&lt;!--
--&gt;|12{{#ifeq:{{{12}}}|{{{12|x}}}||x}}={{{12}}}}}&lt;noinclude&gt;
{{Documentation}}
&lt;!-- Add categories to the /doc subpage, not here! --&gt;
&lt;/noinclude&gt;</text>
<sha1>gm3otft11z39k88rcclt9chph90nut9</sha1>
</revision>
</page>
<page>
<title>Template:Warning/doc</title>
<ns>10</ns>
<id>12856135</id>
<redirect title="Template:Notice/doc" />
<revision>
<id>713495216</id>
<parentid>713491744</parentid>
<timestamp>2016-04-04T11:05:37Z</timestamp>
<contributor>
<username>SMcCandlish</username>
<id>378390</id>
</contributor>
<comment>this can now share the documentation at [[Template:Notice/doc]]</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="33">#REDIRECT [[Template:Notice/doc]]</text>
<sha1>0imaor7k0ga7nlh2b2oytk82ms4v0uq</sha1>
</revision>
</page>
<page>
<title>Template:Warning and warning templates</title>
<ns>10</ns>
<id>51235859</id>
<redirect title="Template:Notice and warning templates" />
<revision>
<id>732810023</id>
<timestamp>2016-08-03T11:33:00Z</timestamp>
<contributor>
<username>Dcljr</username>
<id>6496</id>
</contributor>
<comment>REDIRECT [[Template:Notice and warning templates]] -- easiest way to fix redlink in [[Template:Warning]] documentation</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="51">#REDIRECT [[Template:Notice and warning templates]]</text>
<sha1>2awwkfq9ydsen9039u6khw4nq4z9kuf</sha1>
</revision>
</page>
<page>
<title>Module:In5</title>
<ns>828</ns>
<id>39792252</id>
<revision>
<id>561820541</id>
<parentid>561814081</parentid>
<timestamp>2013-06-27T13:15:53Z</timestamp>
<contributor>
<username>Mr. Stradivarius</username>
<id>4708675</id>
</contributor>
<comment>better default handling</comment>
<model>Scribunto</model>
<format>text/plain</format>
<text xml:space="preserve" bytes="1250">-- This module implements {{in5}}.
local p = {}
function p.in5(frame)
local indent = frame.args[1]
-- Trim whitespace and convert to number. Default to 5 if not present,
-- as per the template title.
indent = tonumber( mw.text.trim(indent) ) or 5
-- Round down to nearest integer. Decimal values produce funky results
-- from the original template, but there's no need for us to replicate that.
indent = math.floor( indent )
-- Don't output anything for zero or less. Again, there was some funky output
-- here for negatives, but now we're in Lua we should use sane defaults.
if indent &lt;= 0 then
return
end
local base = '&amp;nbsp; '
local modulo = '&amp;nbsp;'
--[[
Indent values and the corresponding values for base and modulo:
indent base modulo
1 0 1
2 0 2
3 1 1
4 1 2
5 2 1
6 2 2
7 3 1
8 3 2
9 4 1
10 4 2
]]
local baseNum = math.floor( (indent - 1) / 2 )
local modNum = math.fmod( indent - 1 , 2 ) + 1
return mw.ustring.rep( base, baseNum) .. mw.ustring.rep( modulo, modNum )
end
return p</text>
<sha1>d2jdhmzl1ariwd7uypwfkhex9llkyg6</sha1>
</revision>
</page>
<page>
<title>Template:T</title>
<ns>10</ns>
<id>568524</id>
<redirect title="Template:Tl" />
<revision>
<id>384137055</id>
<parentid>338765961</parentid>
<timestamp>2010-09-11T03:24:59Z</timestamp>
<contributor>
<username>NuclearWarfare</username>
<id>5697725</id>
</contributor>
<minor/>
<comment>Protected Template:T: [[WP:HRT|Highly visible template]] ([edit=sysop] (indefinite) [move=sysop] (indefinite))</comment>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="122">#REDIRECT [[Template:tl]]
&lt;!-- Used as Template:tl throughout English Wikipedia; demo template referenced only on meta -&gt;</text>
<sha1>74rtluejlc1izdmxf0pe9y03u63c8ez</sha1>
</revision>
</page>
<page>
<title>Template:Yes/doc</title>
<ns>10</ns>
<id>12861048</id>
<revision>
<id>746902974</id>
<parentid>737678935</parentid>
<timestamp>2016-10-30T07:36:05Z</timestamp>
<contributor>
<username>Numbermaniac</username>
<id>17157159</id>
</contributor>
<minor/>
<model>wikitext</model>
<format>text/x-wiki</format>
<text xml:space="preserve" bytes="194">{{Documentation subpage}}
{{high-use|4,500+}}
&lt;!-- PLEASE ADD CATEGORIES AT THE BOTTOM OF THIS PAGE --&gt;
{{Table cell templates/doc}}
&lt;includeonly&gt;
&lt;!-- CATEGORIES HERE, THANKS --&gt;
&lt;/includeonly&gt;</text>
<sha1>93m1gljj23u6y1bpwtx9h79kz43kvz4</sha1>
</revision>
</page>
</mediawiki>

File Metadata

Mime Type
text/html
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
cd/5b/cd8ad8e90dc120e8649d4b32dbe5
Default Alt Text
Wikipedia-20180204124650.xml (3 MB)

Event Timeline