Difference between revisions of "Help:Magic words"

m (Updating)
m (Deadfire moved page User:Deadfire/Drafts/Help:Magic words to Help:Magic words without leaving a redirect: Redo complete)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{pp-vandalism|small=yes}}
 
{{pp-vandalism|small=yes}}
{{for|an introduction|Help:Magic words for beginners}}
+
{{redirect|H:MW|the MediaWiki namespace|Help:MediaWiki namespace|information about the entire MediaWiki software application|w:MediaWiki}}
 
{{BattleTechWiki how-to|H:MW|BTW:MAGIC|BTW:MAGICWORD|BTW:MAGICWORDS}}
 
{{BattleTechWiki how-to|H:MW|BTW:MAGIC|BTW:MAGICWORD|BTW:MAGICWORDS}}
  
'''Magic words''' (including '''parser functions''', '''variables''' and '''behavior switches''') are features of [[Help:Wiki markup|wiki markup]] that give instructions to BattleTechWiki's underlying [[MediaWiki]] software. For example, magic words can suppress or position the table of contents, disable indexing by external search engines, and produce output dynamically based on the current page or on user-defined conditional logic. Some of these features are especially useful for [[BTW:Templates|templates]].
+
'''Magic words''' (including '''parser functions''', '''variables''' and '''behavior switches''') are features of [[Help:Wiki markup|wiki markup]] that give instructions to BattleTechWiki's underlying [[w:MediaWiki|MediaWiki]] software. For example, magic words can suppress or position the table of contents, disable indexing by external search engines, and produce output dynamically based on the current page or on user-defined conditional logic. Some of these features are especially useful for [[BattleTechWiki:Templates|templates]].
  
 
This page is a quick reference for magic words. For more information, refer to the main MediaWiki documentation:
 
This page is a quick reference for magic words. For more information, refer to the main MediaWiki documentation:
Line 17: Line 17:
  
 
The software generally interprets magic words in the following way:
 
The software generally interprets magic words in the following way:
* Magic words are [[case sensitive]].
+
* Magic words are [[w:case sensitive|case sensitive]].
* [[Whitespace character|White space]] is generously allowed for readability. It will be stripped from the start and end of their keywords and parameters (as is also done in template calls using named parameters).
+
* [[w:Whitespace character|White space]] is generously allowed for readability. It will be stripped from the start and end of their keywords and parameters (as is also done in template calls using named parameters).
* They can be [[BTW:Transclusion|transcluded]], even variables "about the current page". This is ensured by the parsing order.
+
* They can be [[BattleTechWiki:Transclusion|transcluded]], even variables "about the current page". This is ensured by the parsing order.
 
* Instead of magically transforming into HTML instructions, {{tag|[[help:wikitext#Nowiki|nowiki]]|o}} tags remove this magic so a magic word can itself be displayed (documented), e.g. <code><nowiki><nowiki>{{#magic:}}</nowiki></nowiki></code>or <code><nowiki>{{#magic:<nowiki/>}}</nowiki></code>.
 
* Instead of magically transforming into HTML instructions, {{tag|[[help:wikitext#Nowiki|nowiki]]|o}} tags remove this magic so a magic word can itself be displayed (documented), e.g. <code><nowiki><nowiki>{{#magic:}}</nowiki></nowiki></code>or <code><nowiki>{{#magic:<nowiki/>}}</nowiki></code>.
  
 
Magic words compared to templates:
 
Magic words compared to templates:
 
* As with templates, magic words can be [[help:transclusion|transcluded]] and [[Help:substitution|substituted]].
 
* As with templates, magic words can be [[help:transclusion|transcluded]] and [[Help:substitution|substituted]].
* The names of magic words are purposely chosen to be unlike the names of templates, and vice versa. Many parser function names will begin with a <code>#</code>([[Hash (character)|pound or hash]]), but template names [[wp:NCHASHTAG | will not start with a <code>#</code>]], and probably not end in a <code>:</code>(colon), or be all-uppercase.
+
* The names of magic words are purposely chosen to be unlike the names of templates, and vice versa. Many parser function names will begin with a <code>#</code>([[w:Hash (character)|pound or hash]]), but template names will not start with a <code>#</code>, and probably not end in a <code>:</code>(colon), or be all-uppercase.
 
* The first parameter's syntax differs. In <code>{{#magic: <nowiki/>p1 | p2 | p3}}</code>, the name is <code>#magic</code>and it is followed by an unspaced <code>:</code>and a required input parameter, <code>p1</code>. With a template, <code>p1</code>is optional and it is preceded by a <code>|</code>(pipe) instead of a <code>:</code>, e.g. <code>{{template<nowiki/>|p1}}</code>.
 
* The first parameter's syntax differs. In <code>{{#magic: <nowiki/>p1 | p2 | p3}}</code>, the name is <code>#magic</code>and it is followed by an unspaced <code>:</code>and a required input parameter, <code>p1</code>. With a template, <code>p1</code>is optional and it is preceded by a <code>|</code>(pipe) instead of a <code>:</code>, e.g. <code>{{template<nowiki/>|p1}}</code>.
  
Line 34: Line 34:
 
|-
 
|-
 
! scope=row id=TOC | <kbd><nowiki>__TOC__</nowiki></kbd>
 
! scope=row id=TOC | <kbd><nowiki>__TOC__</nowiki></kbd>
| Places the page's [[Help:Table of contents|table of contents (TOC)]] at the word's position.
+
| Places the page's [[Help:Table of contents|table of contents (TOC)]] at the word's position. This magic word does not work in skins that present the table of contents outside the article content e.g. the default Vector 2022 skin.  
 
|-
 
|-
 
! scope=row id=FORCETOC | <kbd><nowiki>__FORCETOC__</nowiki></kbd>
 
! scope=row id=FORCETOC | <kbd><nowiki>__FORCETOC__</nowiki></kbd>
| Forces the TOC to appear in its default position, even when there are fewer than four headings. Can be used anywhere on a page.
+
| Forces the TOC to appear in its default position, even when there are fewer than four headings. Can be used anywhere on a page. This magic word does not work in skins that present the table of contents outside the article content e.g. the default Vector 2022 skin.
 
|-
 
|-
 
! scope=row id=NOTOC | <kbd><nowiki>__NOTOC__</nowiki></kbd>
 
! scope=row id=NOTOC | <kbd><nowiki>__NOTOC__</nowiki></kbd>
Line 43: Line 43:
 
|-
 
|-
 
! scope=row id=NOEDITSECTION | <kbd><nowiki>__NOEDITSECTION__</nowiki></kbd>
 
! scope=row id=NOEDITSECTION | <kbd><nowiki>__NOEDITSECTION__</nowiki></kbd>
| Hides the "edit" links normally beside ''all'' headings on the page. To hide the edit link beside a ''particular'' heading, specify the heading using e.g. an [[HTML element|HTML tag]] such as {{tag|h2|content=''heading''}} rather than with the usual wiki equals-signs syntax (e.g. {{nowrap|1=<kbd>== ''heading'' ==</kbd>}}{{thinsp}}).
+
| Hides the "edit" links normally beside ''all'' headings on the page. To hide the edit link beside a ''particular'' heading, specify the heading using e.g. an [[w:HTML element|HTML tag]] such as {{tag|h2|content=''heading''}} rather than with the usual wiki equals-signs syntax (e.g. {{nowrap|1=<kbd>== ''heading'' ==</kbd>}}{{thinsp}}).
 
|-
 
|-
 
! scope=row id=ARCHIVEDTALK | <kbd><nowiki>__ARCHIVEDTALK__</nowiki></kbd>
 
! scope=row id=ARCHIVEDTALK | <kbd><nowiki>__ARCHIVEDTALK__</nowiki></kbd>
Line 58: Line 58:
 
|-
 
|-
 
! scope=row id=HIDDENCAT | <kbd><nowiki>__HIDDENCAT__</nowiki></kbd>
 
! scope=row id=HIDDENCAT | <kbd><nowiki>__HIDDENCAT__</nowiki></kbd>
| Makes a category [[BTW:HIDDENCAT|hidden]] when included on that category's page.
+
| Makes a category hidden when included on that category's page.
 
|-
 
|-
 
! scope=row id=INDEX | <kbd><nowiki>__INDEX__</nowiki></kbd>
 
! scope=row id=INDEX | <kbd><nowiki>__INDEX__</nowiki></kbd>
| Instructs [[Web search engine|search engine]]s to index the page.
+
| Instructs [[w:Web search engine|search engine]]s to index the page.
 
|-
 
|-
 
! scope=row id=NOINDEX | <kbd><nowiki>__NOINDEX__</nowiki></kbd>
 
! scope=row id=NOINDEX | <kbd><nowiki>__NOINDEX__</nowiki></kbd>
Line 73: Line 73:
 
|-
 
|-
 
! scope=row id=DISPLAYTITLE | <kbd>{<nowiki/>{DISPLAYTITLE:''title''}}</kbd>
 
! scope=row id=DISPLAYTITLE | <kbd>{<nowiki/>{DISPLAYTITLE:''title''}}</kbd>
| Used to amend the [[BTW:DISPLAYTITLE|displayed form]] of the page's title.
+
| Used to amend the displayed form of the page's title.
 
|-
 
|-
 
! scope=row id=DEFAULTSORT | <kbd>{<nowiki/>{DEFAULTSORT:''sortkey''}}</kbd>
 
! scope=row id=DEFAULTSORT | <kbd>{<nowiki/>{DEFAULTSORT:''sortkey''}}</kbd>
| Sets the default [[BTW:SORTKEY|key]] (the index) under which the page is categorised.
+
| Sets the default [[Help:Category#Sorting category pages|key]] (the index) under which the page is categorised.
|-
 
! scope=row id=NOEXTERNALLANGLINKS | <kbd>[[mw:Extension:Wikibase Client#noexternallanglinks|{<nowiki/>{NOEXTERNALLANGLINKS}}]]</kbd>
 
|| (equivalent to {<nowiki/>{NOEXTERNALLANGLINKS|*}}{{thinsp}}) Suppresses the automated inclusion of [[Wikidata:Help:Linking BattleTechWiki pages|Wikidata]] [[Help:Interlanguage links|interlanguage links]] on the lefthand side of the page. Links to particular rather than all languages may be suppressed by using {<nowiki/>{NOEXTERNALLANGLINKS|''list''}}, where ''list'' a [[Vertical bar|pipe]]-[[Delimiter|delimited]] list of [[language code]]s (e.g. {<nowiki/>{NOEXTERNALLANGLINKS|fr{{pipe}}es{{pipe}}ja}} to suppress the French ("fr"), Spanish ("es") and Japanese ("ja") interlanguage links).
 
 
|}
 
|}
  
 
==Variables==
 
==Variables==
 
 
{{Shortcut|BTW:VAR}}
 
{{Shortcut|BTW:VAR}}
{{further|mw:Help:Magic words#Variables|BattleTechWiki:Page name#sub}}
+
{{Further|mw:Help:Magic words#Variables}}
{{redirect|BTW:PAGENAME|the article naming policy|BattleTechWiki:Article titles}}
 
  
 
{| class="wikitable plainrowheaders"
 
{| class="wikitable plainrowheaders"
Line 109: Line 104:
 
| Title of topmost parent (before all subpages), excluding namespace.
 
| Title of topmost parent (before all subpages), excluding namespace.
 
|-
 
|-
! scope=row | <kbd>[[wp:pagename#sub|{<nowiki/>{SUBPAGENAME}}]]</kbd>
+
! scope=row | <kbd>{<nowiki/>{SUBPAGENAME}}</kbd>
 
| {{SUBPAGENAME}}
 
| {{SUBPAGENAME}}
| On a subpage, rightmost portion of ''current'' title; higher subpagenames show as [[Breadcrumb navigation|backlinks]].
+
| On a subpage, rightmost portion of ''current'' title; higher subpagenames show as [[w:Breadcrumb navigation|backlinks]].
 
|-
 
|-
 
! scope=row id=ARTICLEPAGENAME | <kbd>{<nowiki/>{ARTICLEPAGENAME}}</kbd>
 
! scope=row id=ARTICLEPAGENAME | <kbd>{<nowiki/>{ARTICLEPAGENAME}}</kbd>
Line 145: Line 140:
 
! scope=row id=FULLPAGENAMEE | {{longitem|style=line-height:1.5em|<kbd>{<nowiki/>{FULLPAGENAMEE}<nowiki/>}</kbd>,<br /><kbd>{<nowiki/>{PAGENAMEE}<nowiki/>}</kbd>,<br />{{pad|0.4em}}(etc.)}}
 
! scope=row id=FULLPAGENAMEE | {{longitem|style=line-height:1.5em|<kbd>{<nowiki/>{FULLPAGENAMEE}<nowiki/>}</kbd>,<br /><kbd>{<nowiki/>{PAGENAMEE}<nowiki/>}</kbd>,<br />{{pad|0.4em}}(etc.)}}
 
| {{longitem|style=line-height:1.5em|{{FULLPAGENAMEE}},<br/>{{PAGENAMEE}},<br/>(etc.)}}
 
| {{longitem|style=line-height:1.5em|{{FULLPAGENAMEE}},<br/>{{PAGENAMEE}},<br/>(etc.)}}
| Adding an E to the end of the above variables, renders the above encoded for use in MediaWiki [[URL]]s (i.e. with underscores replacing spaces).
+
| Adding an E to the end of the above variables, renders the above encoded for use in MediaWiki URLs (i.e. with underscores replacing spaces).
|-
 
! scope=row id=SHORTDESC | <kbd>{<nowiki/>{SHORTDESC}}</kbd>
 
| <!-- do not invoke this magic word here: shows nothing and places page in error-tracking category -->
 
| Only works on the English BattleTechWiki, where it displays a short description below the article title on mobile platforms. {{crossref|printworthy=y|See [[BattleTechWiki:Short description]].}}
 
 
|}
 
|}
  
 
''Note:'' The magic words above can also take a parameter, in order to parse values on a page other than the current page. A colon (<kbd>:</kbd>) is used to pass the parameter, rather than a pipe (<kbd>{{!}}</kbd>) that is used in templates, like <kbd><nowiki>{{MAGICWORD:value}}</nowiki></kbd>. For example, <kbd><nowiki>{{TALKPAGENAME:BattleTechWiki:MOS}}</nowiki></kbd> returns <samp><nowiki>BattleTechWiki talk:MOS</nowiki></samp> on any page.
 
''Note:'' The magic words above can also take a parameter, in order to parse values on a page other than the current page. A colon (<kbd>:</kbd>) is used to pass the parameter, rather than a pipe (<kbd>{{!}}</kbd>) that is used in templates, like <kbd><nowiki>{{MAGICWORD:value}}</nowiki></kbd>. For example, <kbd><nowiki>{{TALKPAGENAME:BattleTechWiki:MOS}}</nowiki></kbd> returns <samp><nowiki>BattleTechWiki talk:MOS</nowiki></samp> on any page.
  
''Note:'' In the "Category" and "Category talk" namespaces, to wikilink (some) page name variables may require [[help:link|prefixing a colon]] to avoid unwanted categorization.
+
''Note:'' In the "Category" and "Category talk" namespaces, to wikilink (some) page name variables may require [[Help:link|prefixing a colon]] to avoid unwanted categorization.
  
 
{{crossref|printworthy=y|For more details on parser functions that relate to page names and namespaces, see: {{section link|meta:Help:Page name#Variables and parser functions}}.}}
 
{{crossref|printworthy=y|For more details on parser functions that relate to page names and namespaces, see: {{section link|meta:Help:Page name#Variables and parser functions}}.}}
Line 168: Line 159:
 
! scope=row id=SERVER | <kbd>{<nowiki/>{SERVER}}</kbd>
 
! scope=row id=SERVER | <kbd>{<nowiki/>{SERVER}}</kbd>
 
| {{SERVER}}
 
| {{SERVER}}
| Domain [[URL]] ([[mw:Manual:$wgServer|$wgServer]]).
+
| Domain [[w:URL|URL]] ([[mw:Manual:$wgServer|$wgServer]]).
 
|-
 
|-
 
! scope=row id=SERVERNAME | <kbd>{<nowiki/>{SERVERNAME}}</kbd>
 
! scope=row id=SERVERNAME | <kbd>{<nowiki/>{SERVERNAME}}</kbd>
Line 222: Line 213:
 
| {{LOCALMONTHABBREV}}
 
| {{LOCALMONTHABBREV}}
 
|-
 
|-
! scope=row id=CURRENTDAY | <kbd>{<nowiki/>{CURRENTDAY}}</kbd>{{efn|<kbd><nowiki>{{CURRENTDAY}}</nowiki></kbd>, <kbd><nowiki>{{LOCALDAY}}</nowiki></kbd>and <kbd><nowiki>{{REVISIONDAY}}</nowiki></kbd>return the day (i.e. "6"), whilst <kbd><nowiki>{{CURRENTDAY2}}</nowiki></kbd>, <kbd><nowiki>{{LOCALDAY2}}</nowiki></kbd>and <kbd><nowiki>{{REVISIONDAY2}}</nowiki></kbd>return the day with zero-padding (i.e. "06"). For all two-digit days (i.e. 10 to 31), these are the same.|name=daynote}}
+
! scope=row id=CURRENTDAY | <kbd>{<nowiki/>{CURRENTDAY}}</kbd>{{efn|<kbd><nowiki>{{CURRENTDAY}}</nowiki></kbd>, <kbd><nowiki>{{LOCALDAY}}</nowiki></kbd> and <kbd><nowiki>{{REVISIONDAY}}</nowiki></kbd> return the day (e.g. "<samp>6</samp>"), whilst <kbd><nowiki>{{CURRENTDAY2}}</nowiki></kbd>, <kbd><nowiki>{{LOCALDAY2}}</nowiki></kbd> and <kbd><nowiki>{{REVISIONDAY2}}</nowiki></kbd> return the day with zero-padding (e.g. "<samp>06</samp>"). For all two-digit days (i.e. 10 to 31), these are the same.|name=daynote}}
 
| {{CURRENTDAY}}
 
| {{CURRENTDAY}}
 
! scope=row id=LOCALDAY | <kbd>{<nowiki/>{LOCALDAY}}</kbd>{{efn|name=daynote}}
 
! scope=row id=LOCALDAY | <kbd>{<nowiki/>{LOCALDAY}}</kbd>{{efn|name=daynote}}
Line 328: Line 319:
 
|-
 
|-
 
! scope=row id=PAGEID | <kbd>{<nowiki/>{PAGEID}}</kbd>
 
! scope=row id=PAGEID | <kbd>{<nowiki/>{PAGEID}}</kbd>
| Unique page identifier number (for example, this page's ID is <kbd>{{PAGEID}}</kbd>).  
+
| Unique page identifier number (for example, this page's ID is <samp>{{PAGEID}}</samp>).  
 
|-
 
|-
 
! scope=row id=PAGESIZE | <kbd>{<nowiki/>{PAGESIZE:''fullpagename''}}</kbd>
 
! scope=row id=PAGESIZE | <kbd>{<nowiki/>{PAGESIZE:''fullpagename''}}</kbd>
| Size of named page in bytes (for example, this page is <kbd>{{PAGESIZE:{{FULLPAGENAME}}}}</kbd> bytes).
+
| Size of named page in bytes (for example, this page is <samp>{{PAGESIZE:{{FULLPAGENAME}}}}</samp> bytes).
 
|-
 
|-
 
! scope=row id=PROTECTIONLEVEL | <kbd>{<nowiki/>{PROTECTIONLEVEL:''action''{{pipe}}''fullpagename''}}</kbd>
 
! scope=row id=PROTECTIONLEVEL | <kbd>{<nowiki/>{PROTECTIONLEVEL:''action''{{pipe}}''fullpagename''}}</kbd>
Line 338: Line 329:
 
! scope=row id=PROTECTIONEXPIRY | <kbd>{<nowiki/>{PROTECTIONEXPIRY:''action''{{pipe}}''fullpagename''}}</kbd>
 
! scope=row id=PROTECTIONEXPIRY | <kbd>{<nowiki/>{PROTECTIONEXPIRY:''action''{{pipe}}''fullpagename''}}</kbd>
 
| [[BattleTechWiki:Protection policy|Protection expiry]] assigned to ''action'' ("edit", "move", etc.) on named page (this page's protection expiry is <kbd>{{PROTECTIONEXPIRY:edit|Help:Magic words}}</kbd>).
 
| [[BattleTechWiki:Protection policy|Protection expiry]] assigned to ''action'' ("edit", "move", etc.) on named page (this page's protection expiry is <kbd>{{PROTECTIONEXPIRY:edit|Help:Magic words}}</kbd>).
|-
 
! scope=row id=PENDINGCHANGELEVEL | <kbd>{<nowiki/>{PENDINGCHANGELEVEL:''fullpagename''}}</kbd>
 
| Protection level for [[BTW:PC|pending changes]] on the named page (this page, which doesn't have one, is <kbd>{{PENDINGCHANGELEVEL}}</kbd>).
 
 
|-
 
|-
 
! scope=row id=PAGESINCATEGORY | <kbd>{<nowiki/>{PAGESINCATEGORY:''categoryname''}}</kbd>
 
! scope=row id=PAGESINCATEGORY | <kbd>{<nowiki/>{PAGESINCATEGORY:''categoryname''}}</kbd>
Line 348: Line 336:
 
| Number of users in the [[BattleTechWiki:User access levels|user group]] named ''groupname''.
 
| Number of users in the [[BattleTechWiki:User access levels|user group]] named ''groupname''.
 
|}
 
|}
Page IDs can be associated with articles via wikilinks (i.e. <code>[[Special:Redirect/page/3235121]]</code>goes to this page).
+
Page IDs can be associated with articles via wikilinks.
To output numbers without comma [[Delimiter|separator]]s (for example, as "123456789" rather than "123,456,789"), append the parameter <kbd>|R</kbd>.
+
To output numbers without comma [[w:Delimiter|separator]]s (for example, as "123456789" rather than "123,456,789"), append the parameter <kbd>|R</kbd>.
  
 
===Formatting===
 
===Formatting===
Line 373: Line 361:
 
|-
 
|-
 
! scope=row id=dateformat | <kbd>{<nowiki/>{#dateformat:''date''{{pipe}}''format''}}<br/>{<nowiki/>{#formatdate:''date''{{pipe}}''format''}}</kbd>
 
! scope=row id=dateformat | <kbd>{<nowiki/>{#dateformat:''date''{{pipe}}''format''}}<br/>{<nowiki/>{#formatdate:''date''{{pipe}}''format''}}</kbd>
| Formats a date according to user preferences; a default can be given as an optional case-sensitive second parameter for users without date preference; can convert a date from an existing format to any of <code>dmy</code>, <code>mdy</code>, <code>ymd</code>, or <code>[[ISO 8601]]</code> formats, with the user's preference overriding the specified format.
+
| Formats a date according to user preferences; a default can be given as an optional case-sensitive second parameter for users without date preference; can convert a date from an existing format to any of <code>dmy</code>, <code>mdy</code>, <code>ymd</code>, or <code>[[w:ISO 8601|ISO 8601]]</code> formats, with the user's preference overriding the specified format.
 
|-
 
|-
 
! scope=row id=padleft | <kbd>{<nowiki/>{padleft:''xyz''{{pipe}}''stringlength''}}<br/>{<nowiki/>{padright:''xyz''{{pipe}}''stringlength''}}<br><br>{<nowiki/>{padleft:''xyz''{{pipe}}''length''{{pipe}}''padstr''}}<br/>{<nowiki/>{padright:''xyz''{{pipe}}''length''{{pipe}}''padstr''}}</kbd>
 
! scope=row id=padleft | <kbd>{<nowiki/>{padleft:''xyz''{{pipe}}''stringlength''}}<br/>{<nowiki/>{padright:''xyz''{{pipe}}''stringlength''}}<br><br>{<nowiki/>{padleft:''xyz''{{pipe}}''length''{{pipe}}''padstr''}}<br/>{<nowiki/>{padright:''xyz''{{pipe}}''length''{{pipe}}''padstr''}}</kbd>
Line 382: Line 370:
 
|-
 
|-
 
! scope=row id=mwtime | <kbd>{<nowiki/>{#time:''format''{{pipe}}''object''}}</kbd><br/><kbd>{<nowiki/>{#timel:''format''{{pipe}}''object''}}<br><br>{<nowiki/>{#time:d F Y{{pipe}}''date''{{pipe}}''langcode''}}</kbd>
 
! scope=row id=mwtime | <kbd>{<nowiki/>{#time:''format''{{pipe}}''object''}}</kbd><br/><kbd>{<nowiki/>{#timel:''format''{{pipe}}''object''}}<br><br>{<nowiki/>{#time:d F Y{{pipe}}''date''{{pipe}}''langcode''}}</kbd>
| Used to format dates and times, for ISO format, dots or English month names. <kbd>#timel</kbd> is based on local time as defined for each wiki; for English BattleTechWiki, this is identical to <kbd>#time</kbd>.<br />The optional 3rd parameter is the output language code (French, German, Swedish: fr, de, sv, etc.). Example Finnish: <kbd><nowiki>{{#time:d F Y|June 30, 2016|fi}}</nowiki></kbd> shows: {{#time:d F Y|June 30, 2016|fi}} (June). ISO to German: <kbd><nowiki>{{#time:d. M Y|1987-10-31|de}}</nowiki></kbd> shows: {{#time:d. M Y|1987-10-31|de}}.<br />For format codes, see: [[mw:Help:Extension:ParserFunctions##time]]. Use the format <kbd><nowiki>{{#time: H:i, j F Y (e)|...}}</nowiki></kbd> to match the format used by timestamps in signatures.
+
| Used to format dates and times, for ISO format, dots or English month names. <kbd>#timel</kbd> is based on local time as defined for each wiki; for English Wikipedia, this is identical to <kbd>#time</kbd>.<br />The optional 3rd parameter is the output language code (French, German, Swedish: fr, de, sv, etc.). Example Finnish: <kbd><nowiki>{{#time:d F Y|June 30, 2016|fi}}</nowiki></kbd> shows: {{#time:d F Y|June 30, 2016|fi}} (June). ISO to German: <kbd><nowiki>{{#time:d. M Y|1987-10-31|de}}</nowiki></kbd> shows: {{#time:d. M Y|1987-10-31|de}}.<br />For format codes, see: [[mw:Help:Extension:ParserFunctions##time]]. Use the format <kbd><nowiki>{{#time: H:i, j F Y (e)|...}}</nowiki></kbd> to match the format used by timestamps in signatures.
 
|-
 
|-
 
! scope=row id=gender | <kbd>{<nowiki/>{gender:''user''{{pipe}}''m_out''{{pipe}}''f_out''{{pipe}}''u_out''}}</kbd>
 
! scope=row id=gender | <kbd>{<nowiki/>{gender:''user''{{pipe}}''m_out''{{pipe}}''f_out''{{pipe}}''u_out''}}</kbd>
| Outputs ''m_out'', ''f_out'' or ''u_out'' according to whether the gender specified in ''user''{{thinsp}}'s preferences is, respectively, male, female or unspecified. Other parameter permutations are available, see [[mw:Help:Magic words#gender]] and [[translatewiki:Special:MyLanguage/Gender|translatewiki:Gender]].
+
| Outputs ''m_out'', ''f_out'' or ''u_out'' according to whether the gender specified in ''user''{{thinsp}}'s preferences is, respectively, male, female or unspecified. Other parameter permutations are available, see [[mw:Help:Magic words#gender]].
 
|-
 
|-
! scope=row id=mwtag | <kbd>[[mw:Help:Magic words#Miscellaneous|{<nowiki/>{#tag:''tag''{{pipe}}''content with magic''}}]]</kbd>
+
! scope=row id=mwtag | <kbd>[[mw:Help:Magic words#Miscellaneous|{<nowiki/>{#tag:''tagname''{{pipe}}''content with magic''}}]]</kbd>
| Only way to [[eval]]uate magic words ''inside a tag'', in order to generate <code>&lt;''tag''>''magic''&lt;/''tag''></code>. Also handles tag attributes.
+
| Only way to [[w:eval|eval]]uate magic words ''inside a tag'', in order to generate <code>&lt;''tagname''>''magic''&lt;/''tagname''></code>. Also handles tag attributes. Details at [[mw:Help:Magic words#tag]].
 
|}
 
|}
  
Line 397: Line 385:
 
|-
 
|-
 
! scope=row id=localurl | <kbd>{<nowiki/>{localurl:''fullpagename'' {{pipe}}''query''}}</kbd>
 
! scope=row id=localurl | <kbd>{<nowiki/>{localurl:''fullpagename'' {{pipe}}''query''}}</kbd>
| Relative [[Path (computing)|path]] to page name. The ''query'' parameter is optional.
+
| Relative [[w:Path (computing)|path]] to page name. The ''query'' parameter is optional.
 
|-
 
|-
 
! scope=row id=fullurl | <kbd>{<nowiki/>{fullurl:''fullpagename'' {{pipe}}''query''}}</kbd>
 
! scope=row id=fullurl | <kbd>{<nowiki/>{fullurl:''fullpagename'' {{pipe}}''query''}}</kbd>
| Absolute path, without [[Application layer|protocol prefix]] (i.e. without "{{thinsp}}<nowiki>http:</nowiki>{{thinsp}}" etc.), to page name. The ''query'' parameter is optional.
+
| Absolute path, without [[w:Application layer|protocol prefix]] (i.e. without "{{thinsp}}<nowiki>http:</nowiki>{{thinsp}}" etc.), to page name. The ''query'' parameter is optional.
 
|-
 
|-
 
! scope=row id=canonicalurl | <kbd>{<nowiki/>{canonicalurl:''fullpagename'' {{pipe}}''query''}}</kbd>
 
! scope=row id=canonicalurl | <kbd>{<nowiki/>{canonicalurl:''fullpagename'' {{pipe}}''query''}}</kbd>
Line 409: Line 397:
 
|-
 
|-
 
! scope=row id=urlencode | <kbd>{<nowiki/>{urlencode:''string''}}</kbd>
 
! scope=row id=urlencode | <kbd>{<nowiki/>{urlencode:''string''}}</kbd>
| [[BTW:ENCODE|Encodes]] ''string'' for use in URL query strings; <kbd>{{braces|urlencode:test string}}</kbd>, for example, produces: {{urlencode:test string}}. To encode ''string'' for use in URL paths or MediaWiki page names, append, respectively, {{para||PATH}} or {{para||WIKI}} (to produce "{{urlencode:test string|PATH}}" or "{{urlencode:test string|WIKI}}").
+
| Encodes ''string'' for use in URL query strings; <kbd>{{braces|urlencode:test string}}</kbd>, for example, produces: {{urlencode:test string}}. To encode ''string'' for use in URL paths or MediaWiki page names, append, respectively, {{para||PATH}} or {{para||WIKI}} (to produce "{{urlencode:test string|PATH}}" or "{{urlencode:test string|WIKI}}").
 
|-
 
|-
 
! scope=row id=anchorencode | <kbd>{<nowiki/>{anchorencode:''string''}}</kbd>
 
! scope=row id=anchorencode | <kbd>{<nowiki/>{anchorencode:''string''}}</kbd>
| Input encoded for use in MediaWiki URL [[Help:Anchor|section anchor]]s.
+
| Input encoded for use in MediaWiki URL [[Help:Link#Section_linking_(anchors)|section anchor]]s.
 
|-
 
|-
 
! scope=row id=ns | <kbd>{<nowiki/>{ns:''n''}}</kbd>
 
! scope=row id=ns | <kbd>{<nowiki/>{ns:''n''}}</kbd>
| Returns the name of the [[wp:Namespace|namespace]] whose index is the number ''n''. For MediaWiki URLs, use <kbd>{<nowiki/>{nse:}}</kbd>.
+
| Returns the name of the [[BTW:Namespace|namespace]] whose index is the number ''n''. For MediaWiki URLs, use <kbd>{<nowiki/>{nse:}}</kbd>.
 
|-
 
|-
 
! scope=row id=rel2abs | <kbd>[[mw:Help:Extension:ParserFunctions##rel2abs|{<nowiki/>{#rel2abs:''path''}}]] </kbd>
 
! scope=row id=rel2abs | <kbd>[[mw:Help:Extension:ParserFunctions##rel2abs|{<nowiki/>{#rel2abs:''path''}}]] </kbd>
Line 432: Line 420:
 
|-
 
|-
 
! scope=row id=expr |<kbd>[[mw:Help:Extension:Parser functions##expr|{<nowiki/>{#expr:''expression''}}]] </kbd>
 
! scope=row id=expr |<kbd>[[mw:Help:Extension:Parser functions##expr|{<nowiki/>{#expr:''expression''}}]] </kbd>
| Evaluates ''expression'' (see [[m:Help:Calculation]]).
+
| Evaluates ''expression'' (see [[mw:Help:Calculation]]).
 
|-
 
|-
 
! scope=row id=if | <kbd>[[mw:Help:Extension:Parser functions##if|{<nowiki/>{#if:''string'' {{pipe}}''result1'' {{pipe}}''result2''}}]] </kbd>
 
! scope=row id=if | <kbd>[[mw:Help:Extension:Parser functions##if|{<nowiki/>{#if:''string'' {{pipe}}''result1'' {{pipe}}''result2''}}]] </kbd>
| Outputs ''result2'' if ''string'' is [[Empty string|empty]], otherwise outputs ''result1''.
+
| Outputs ''result2'' if ''string'' is [[w:Empty string|empty]], otherwise outputs ''result1''.
 
|-
 
|-
 
! scope=row id=ifeq | <kbd>[[mw:Help:Extension:Parser functions##ifeq|{<nowiki/>{#ifeq:''string1''{{pipe}}''string2'' {{pipe}}''result1'' {{pipe}}''result2''}}]] </kbd>
 
! scope=row id=ifeq | <kbd>[[mw:Help:Extension:Parser functions##ifeq|{<nowiki/>{#ifeq:''string1''{{pipe}}''string2'' {{pipe}}''result1'' {{pipe}}''result2''}}]] </kbd>
Line 453: Line 441:
 
|}
 
|}
  
If, in these conditional functions, [[Empty string|empty]] unnamed parameters are to be parsed as empty rather than as text (i.e. as empty rather than as the text "{{{1}}}", "{{{2}}}", etc.), they will require trailing pipes (i.e. <kbd>{{(((}}1{{pipe}}{{)))}}</kbd>, <kbd>{{(((}}2{{pipe}}{{)))}}</kbd>, etc., rather than <kbd>{{(((}}1{{)))}}</kbd>, <kbd>{{(((}}2{{)))}}</kbd>, etc.).
+
If, in these conditional functions, [[w:Empty string|empty]] unnamed parameters are to be parsed as empty rather than as text (i.e. as empty rather than as the text "{{{1}}}", "{{{2}}}", etc.), they will require trailing pipes (i.e. <kbd>{{(((}}1{{pipe}}{{)))}}</kbd>, <kbd>{{(((}}2{{pipe}}{{)))}}</kbd>, etc., rather than <kbd>{{(((}}1{{)))}}</kbd>, <kbd>{{(((}}2{{)))}}</kbd>, etc.).
 
* For the use of these functions in tables, see [[Help:Conditional tables]].
 
* For the use of these functions in tables, see [[Help:Conditional tables]].
  
Line 460: Line 448:
 
! scope=col | Function
 
! scope=col | Function
 
! scope=col | Description
 
! scope=col | Description
|-
 
! scope=row id=babel | <kbd>[[mw:Extension:Babel#Usage|{<nowiki/>{#babel:''code1''|''code2''|...}}]]</kbd>
 
| Render [[BattleTechWiki:Userboxes|userboxes]] telling your language skills. Improves upon {{tl|Babel}} (an alternative).
 
 
|-
 
|-
 
! scope=row id=categorytree | <kbd>[[mw:Extension:CategoryTree|{<nowiki/>{#categorytree:''category''|...}}]]</kbd>
 
! scope=row id=categorytree | <kbd>[[mw:Extension:CategoryTree|{<nowiki/>{#categorytree:''category''|...}}]]</kbd>
 
| List pages in a category, recursively.
 
| List pages in a category, recursively.
 
|-
 
|-
 +
<!--
 
! scope=row | <kbd>[[mw:Extension:GeoData#Parser function|{<nowiki/>{#coordinates:''arg1''|''arg2''|...}}]]</kbd>
 
! scope=row | <kbd>[[mw:Extension:GeoData#Parser function|{<nowiki/>{#coordinates:''arg1''|''arg2''|...}}]]</kbd>
 
| Save the [[Geographic coordinate system|GeoData coordinates]] of the subject to the page's database. Used in {{tl|coord}}.
 
| Save the [[Geographic coordinate system|GeoData coordinates]] of the subject to the page's database. Used in {{tl|coord}}.
 
|-
 
|-
 +
-->
 
! scope=row style=white-space:nowrap | <kbd>[[mw:Extension:Scribunto#Usage|{<nowiki/>{#invoke:''module''|''function''|''arg1''|...}}]]</kbd>
 
! scope=row style=white-space:nowrap | <kbd>[[mw:Extension:Scribunto#Usage|{<nowiki/>{#invoke:''module''|''function''|''arg1''|...}}]]</kbd>
 
|| Use [[mw:Extension:Scribunto|Scribunto]] to transclude a [[BattleTechWiki:Lua|lua]] template, e.g. function ''replace'' in [[Module:String#replace|module ''String'']].
 
|| Use [[mw:Extension:Scribunto|Scribunto]] to transclude a [[BattleTechWiki:Lua|lua]] template, e.g. function ''replace'' in [[Module:String#replace|module ''String'']].
|-
 
! scope=row id=language | <kbd>[[mw:Help:Magic words#Miscellaneous|{<nowiki/>{#language]]:[[ISO 639|''code1''|''code2''}}]]</kbd>
 
| Print the name represented by the language code, e.g. '''en''' → '''English'''. Print in language 2 if given, e.g. <kbd><nowiki>{{#language:en|zh}}</nowiki></kbd> prints {{#language:en|zh}}
 
 
|-
 
|-
 
! scope=row id=lst | <kbd>[[mw:Extension:Labeled Section Transclusion|<nowiki>{{#lst:}}, {{#lsth:}}, {{#lstx:}}</nowiki>]]</kbd>
 
! scope=row id=lst | <kbd>[[mw:Extension:Labeled Section Transclusion|<nowiki>{{#lst:}}, {{#lsth:}}, {{#lstx:}}</nowiki>]]</kbd>
 
| Three ways to [[Help:Labeled section transclusion|transclude a section of a page]].
 
| Three ways to [[Help:Labeled section transclusion|transclude a section of a page]].
|-
 
! scope=row id=mentor | <kbd>[[BattleTechWiki:Growth Team features|<nowiki>{{#mentor:Username}}</nowiki>]]</kbd>
 
| Display the currently assigned mentor for target Username, if set.
 
|-
 
! scope=row id=property | <kbd>[[m:Wikidata/Notes/Inclusion syntax v0.4|{<nowiki/>{#property:''arg1''|''arg2''|...}}]]</kbd>
 
| Include a [[d:Help:FAQ#Terminology|property]] ([[BattleTechWiki:Wikidata|Wikidata]]) from a named entity, instead of the default on the page.
 
 
|-
 
|-
 
! scope=row id=related | <kbd>[[mw:Reading/Web/Projects/Read more|{<nowiki/>{#related:...}}]]</kbd>
 
! scope=row id=related | <kbd>[[mw:Reading/Web/Projects/Read more|{<nowiki/>{#related:...}}]]</kbd>
Line 490: Line 468:
 
! scope=row id=section | <kbd>[[Help:Labeled section transclusion|{<nowiki/>{#section:}}, {<nowiki/>{#section-h:}}, {<nowiki/>{#section-x:}}]]</kbd>
 
! scope=row id=section | <kbd>[[Help:Labeled section transclusion|{<nowiki/>{#section:}}, {<nowiki/>{#section-h:}}, {<nowiki/>{#section-x:}}]]</kbd>
 
| Aliases for <kbd><nowiki>{{#lst:}}, {{#lsth}}, {{#lstx}}</nowiki></kbd> (above).
 
| Aliases for <kbd><nowiki>{{#lst:}}, {{#lsth}}, {{#lstx}}</nowiki></kbd> (above).
|-
 
! scope=row id=statements | <kbd>[[d:Wikidata:How to use data on Wikimedia projects|{<nowiki/>{#statements:''arg1''|...}}]]</kbd>
 
| Display the value of any statement (Wikidata) included in an item.
 
|-
 
! scope=row id=target | <kbd>[[mw:Help:Extension:MassMessage#Parser function delivery lists|{<nowiki/>{#target:''fullpagename''}}]]</kbd>
 
| Send a message to a list of talk pages on the fullpagename, using the [[m:MassMessage|MassMessage function]].
 
 
|-
 
|-
 
! scope=row id=int | <kbd>[[mw:Help:Magic words#Localization|{<nowiki/>{int:''pagename''}}]] </kbd>
 
! scope=row id=int | <kbd>[[mw:Help:Magic words#Localization|{<nowiki/>{int:''pagename''}}]] </kbd>
Line 511: Line 483:
 
* [[mw:Manual:Extending wiki markup]]
 
* [[mw:Manual:Extending wiki markup]]
 
* [https://phabricator.wikimedia.org/diffusion/MW/history/master/includes/parser/CoreParserFunctions.php CoreParserFunctions.php]
 
* [https://phabricator.wikimedia.org/diffusion/MW/history/master/includes/parser/CoreParserFunctions.php CoreParserFunctions.php]
 +
* [[w:User:Cacycle/wikEd|wikEd]], a MediaWiki editor with syntax highlighting for templates and parser functions
 +
* {{myprefs|Gadgets|Editing|check=Syntax highlighter}}
 +
* {{myprefs|Beta features|check=Wiki syntax highlighting}}
 
* [[Special:Version]], see last section "Parser function hooks":<!--(a #section link is not possible)-->a list that should include all of the magic words on this page
 
* [[Special:Version]], see last section "Parser function hooks":<!--(a #section link is not possible)-->a list that should include all of the magic words on this page
 
* {{tl|Ifexist not redirect}}, works with the <code><nowiki>{{#ifexist:}}</nowiki></code> expression while allowing redirects to be identified and parsed differently
 
* {{tl|Ifexist not redirect}}, works with the <code><nowiki>{{#ifexist:}}</nowiki></code> expression while allowing redirects to be identified and parsed differently
  
 
[[Category:BattleTechWiki features]]
 
[[Category:BattleTechWiki features]]

Latest revision as of 19:19, 12 January 2024

Magic words (including parser functions, variables and behavior switches) are features of wiki markup that give instructions to BattleTechWiki's underlying MediaWiki software. For example, magic words can suppress or position the table of contents, disable indexing by external search engines, and produce output dynamically based on the current page or on user-defined conditional logic. Some of these features are especially useful for templates.

This page is a quick reference for magic words. For more information, refer to the main MediaWiki documentation:

General information[edit]

In general, there are three types of magic words.

  1. Behavior switches: often appear in double underscores, all uppercase, e.g., __NOTOC__. They will change the behavior of a page, rather than return a value.
  2. Parser functions: all in lowercase. A parser function will be followed by colon and pipe-separated parameters, e.g., {{#ifexpr:Y|Yes|No}}, wrapped in double braces. They will take a value and return a value.
  3. Variables: these are all uppercase, e.g., {{PAGENAME}}. A variable will be wrapped in double braces and will return a value in its place.

The software generally interprets magic words in the following way:

  • Magic words are case sensitive.
  • White space is generously allowed for readability. It will be stripped from the start and end of their keywords and parameters (as is also done in template calls using named parameters).
  • They can be transcluded, even variables "about the current page". This is ensured by the parsing order.
  • Instead of magically transforming into HTML instructions, <nowiki> tags remove this magic so a magic word can itself be displayed (documented), e.g. <nowiki>{{#magic:}}</nowiki>or {{#magic:<nowiki/>}}.

Magic words compared to templates:

  • As with templates, magic words can be transcluded and substituted.
  • The names of magic words are purposely chosen to be unlike the names of templates, and vice versa. Many parser function names will begin with a #(pound or hash), but template names will not start with a #, and probably not end in a :(colon), or be all-uppercase.
  • The first parameter's syntax differs. In {{#magic: p1 | p2 | p3}}, the name is #magicand it is followed by an unspaced :and a required input parameter, p1. With a template, p1is optional and it is preceded by a |(pipe) instead of a :, e.g. {{template|p1}}.

Behavior switches[edit]

Switch Description
__TOC__ Places the page's table of contents (TOC) at the word's position. This magic word does not work in skins that present the table of contents outside the article content e.g. the default Vector 2022 skin.
__FORCETOC__ Forces the TOC to appear in its default position, even when there are fewer than four headings. Can be used anywhere on a page. This magic word does not work in skins that present the table of contents outside the article content e.g. the default Vector 2022 skin.
__NOTOC__ Suppresses the appearance of the page's TOC. Can be used anywhere on a page.
__NOEDITSECTION__ Hides the "edit" links normally beside all headings on the page. To hide the edit link beside a particular heading, specify the heading using e.g. an HTML tag such as <h2>heading</h2> rather than with the usual wiki equals-signs syntax (e.g. == heading ==).
__ARCHIVEDTALK__ Hides the "Reply" button
__NEWSECTIONLINK__ On non-talk pages, adds a "⧼vector-action-addsection⧽" link as a means to add a new section to the page.
__NONEWSECTIONLINK__ Removes the "⧼vector-action-addsection⧽" link (the add-new-section link) on talk pages.
__NOGALLERY__ Replaces thumbnails on a category page with normal links.
__HIDDENCAT__ Makes a category hidden when included on that category's page.
__INDEX__ Instructs search engines to index the page.
__NOINDEX__ Instructs search engines not to index the page. See BattleTechWiki:Controlling search engine indexing.
__STATICREDIRECT__ Prevents the link on a redirection page from being updated automatically when the page to which it redirects is moved (and "Update any redirects that point to the original title" is selected).
__DISAMBIG__ Marks a page as a disambiguation page, adds it to Special:DisambiguationPages and places inward links in Special:DisambiguationPageLinks. (See mw:Extension:Disambiguator.)
{{DISPLAYTITLE:title}} Used to amend the displayed form of the page's title.
{{DEFAULTSORT:sortkey}} Sets the default key (the index) under which the page is categorised.

Variables[edit]

Page name variable Output Description
{{FULLPAGENAME}} Help:Magic words Canonical page name. Title line. Title unless letter-case is altered with {{DISPLAYTITLE}}.
{{PAGENAME}} Magic words Title line excluding namespace.
{{BASEPAGENAME}} Magic words Title of parent page, excluding namespace.
{{ROOTPAGENAME}} Magic words Title of topmost parent (before all subpages), excluding namespace.
{{SUBPAGENAME}} Magic words On a subpage, rightmost portion of current title; higher subpagenames show as backlinks.
{{ARTICLEPAGENAME}} Help:Magic words Title of the subject page associated with the current page. These are useful on talk pages (but see note about Category talk pages).
{{SUBJECTPAGENAME}} Help:Magic words
{{TALKPAGENAME}} Help talk:Magic words Title of the talk page associated with the current page. Useful on subject pages.
{{NAMESPACENUMBER}} 12 Number of the current page's namespace.
{{NAMESPACE}} Help Namespace of the title.
{{ARTICLESPACE}} Help On a talk page, the namespace part of the title of the associated subject page.
{{SUBJECTSPACE}} Help
{{TALKSPACE}} Help talk Namespace of the talk page associated with the current page.
{{FULLPAGENAMEE}},
{{PAGENAMEE}},
 (etc.)
Help:Magic_words,
Magic_words,
(etc.)
Adding an E to the end of the above variables, renders the above encoded for use in MediaWiki URLs (i.e. with underscores replacing spaces).

Note: The magic words above can also take a parameter, in order to parse values on a page other than the current page. A colon (:) is used to pass the parameter, rather than a pipe (|) that is used in templates, like {{MAGICWORD:value}}. For example, {{TALKPAGENAME:BattleTechWiki:MOS}} returns BattleTechWiki talk:MOS on any page.

Note: In the "Category" and "Category talk" namespaces, to wikilink (some) page name variables may require prefixing a colon to avoid unwanted categorization.

For more details on parser functions that relate to page names and namespaces, see: meta:Help:Page name § Variables and parser functions.

Site variable Output Description
{{SITENAME}} BattleTechWiki Site name ($wgSitename).
{{SERVER}} https://www.sarna.net Domain URL ($wgServer).
{{SERVERNAME}} www.sarna.net Subdomain and domain name.
{{ARTICLEPATH}} /wiki/$1 Relative article path ($wgArticlePath).
{{SCRIPTPATH}} /wiki Relative script path ($wgScriptPath).
{{STYLEPATH}} https://cfw.sarna.net/wiki/skins Relative style path ($wgStylePath).
{{CURRENTVERSION}} 1.34.4 Returns current MediaWiki version.

Other variables by type[edit]

Current date and time
Universal time Local-website time
Variable Output Variable Output
{{CURRENTYEAR}} 2024 {{LOCALYEAR}} 2024
{{CURRENTMONTH}} 05 {{LOCALMONTH}} 05
{{CURRENTMONTHNAME}} May {{LOCALMONTHNAME}} May
{{CURRENTMONTHABBREV}} May {{LOCALMONTHABBREV}} May
{{CURRENTDAY}}[lower-alpha 1] 10 {{LOCALDAY}}[lower-alpha 1] 10
{{CURRENTDAY2}}[lower-alpha 1] 10 {{LOCALDAY2}}[lower-alpha 1] 10
{{CURRENTDOW}} 5 {{LOCALDOW}} 5
{{CURRENTDAYNAME}} Friday {{LOCALDAYNAME}} Friday
{{CURRENTTIME}} 19:13 {{LOCALTIME}} 15:13
{{CURRENTHOUR}} 19 {{LOCALHOUR}} 15
{{CURRENTWEEK}} 19 {{LOCALWEEK}} 19
{{CURRENTTIMESTAMP}}[lower-alpha 2] 20240510191343 {{LOCALTIMESTAMP}}[lower-alpha 2] 20240510151343
Page revision data
Variable Output
{{REVISIONDAY}}[lower-alpha 1] 12
{{REVISIONDAY2}}[lower-alpha 1] 12
{{REVISIONMONTH}} 01
{{REVISIONYEAR}} 2024
{{REVISIONTIMESTAMP}}[lower-alpha 2] 20240112191910
{{REVISIONUSER}}[lower-alpha 3] Deadfire
  1. 1.0 1.1 1.2 1.3 1.4 1.5 {{CURRENTDAY}}, {{LOCALDAY}} and {{REVISIONDAY}} return the day (e.g. "6"), whilst {{CURRENTDAY2}}, {{LOCALDAY2}} and {{REVISIONDAY2}} return the day with zero-padding (e.g. "06"). For all two-digit days (i.e. 10 to 31), these are the same.
  2. 2.0 2.1 2.2 These timestamp outputs can be formatted with {{Format revisiontimestamp}} (aka {{FRTS}}). For example, {{FRTS|{{REVISIONTIMESTAMP}}}} turns "20240112191910" into "2024-01-12 19:19:10".
  3. This shows the last user to edit the page. There is no way to show the user viewing the page with magic words due to technical restrictions.
Wiki statistics
{{NUMBEROFPAGES}} 134,235
{{NUMBEROFARTICLES}} 55,097
{{NUMBEROFFILES}} 20,768
{{NUMBEROFEDITS}} 1,069,101
{{NUMBEROFUSERS}} 13,818
{{NUMBEROFADMINS}} 11
{{NUMBEROFACTIVEUSERS}} 79

Parser functions[edit]

Metadata[edit]

Function Description
{{PAGEID}} Unique page identifier number (for example, this page's ID is 152385).
{{PAGESIZE:fullpagename}} Size of named page in bytes (for example, this page is 29,866 bytes).
{{PROTECTIONLEVEL:action|fullpagename}} Protection level assigned to action ("edit", "move", etc.) on named page (this page's protection level for "edit" is ).
{{PROTECTIONEXPIRY:action|fullpagename}} Protection expiry assigned to action ("edit", "move", etc.) on named page (this page's protection expiry is infinity).
{{PAGESINCATEGORY:categoryname}} Number of pages in the category named categoryname. Each subcategory is counted as one item.
{{NUMBERINGROUP:groupname}} Number of users in the user group named groupname.

Page IDs can be associated with articles via wikilinks. To output numbers without comma separators (for example, as "123456789" rather than "123,456,789"), append the parameter |R.

Formatting[edit]

Function Description
{{lc:string}} Converts all characters in string to lower case.
{{lcfirst:string}} Converts first character of string to lower case.
{{uc:string}} Converts all characters in string to upper case.
{{ucfirst:string}} Converts first character of string to upper case.
{{formatnum:unformatted_number}}
{{formatnum:formatted_num |R}}
R}} (i.e. {{formatnum:7,654,321|R}}, for example, produces 7654321).
{{#dateformat:date|format}}
{{#formatdate:date|format}}
Formats a date according to user preferences; a default can be given as an optional case-sensitive second parameter for users without date preference; can convert a date from an existing format to any of dmy, mdy, ymd, or ISO 8601 formats, with the user's preference overriding the specified format.
{{padleft:xyz|stringlength}}
{{padright:xyz|stringlength}}

{{padleft:xyz|length|padstr}}
{{padright:xyz|length|padstr}}
Pad with zeroes '0' to the right or left, to fill the given length; an alternative padding string can be given as a third parameter; the repeated padding string (padstr) will be truncated if its length does not evenly divide the required number of characters.
{{plural:N|singular|plural}} Outputs singular if N is equal to 1, otherwise outputs plural. See the documentation at mediawiki.org for more details.
{{#time:format|object}}
{{#timel:format|object}}

{{#time:d F Y|date|langcode}}
Used to format dates and times, for ISO format, dots or English month names. #timel is based on local time as defined for each wiki; for English Wikipedia, this is identical to #time.
The optional 3rd parameter is the output language code (French, German, Swedish: fr, de, sv, etc.). Example Finnish: {{#time:d F Y|June 30, 2016|fi}} shows: 30 kesäkuu 2016 (June). ISO to German: {{#time:d. M Y|1987-10-31|de}} shows: 31. Okt. 1987.
For format codes, see: mw:Help:Extension:ParserFunctions##time. Use the format {{#time: H:i, j F Y (e)|...}} to match the format used by timestamps in signatures.
{{gender:user|m_out|f_out|u_out}} Outputs m_out, f_out or u_out according to whether the gender specified in user's preferences is, respectively, male, female or unspecified. Other parameter permutations are available, see mw:Help:Magic words#gender.
{{#tag:tagname|content with magic}} Only way to evaluate magic words inside a tag, in order to generate <tagname>magic</tagname>. Also handles tag attributes. Details at mw:Help:Magic words#tag.

Paths[edit]

Function Description
{{localurl:fullpagename |query}} Relative path to page name. The query parameter is optional.
{{fullurl:fullpagename |query}} Absolute path, without protocol prefix (i.e. without "http:" etc.), to page name. The query parameter is optional.
{{canonicalurl:fullpagename |query}} Absolute path, including protocol prefix, to page name. The query parameter is optional.
{{filepath:filename}} Absolute path to the media file filename.
{{urlencode:string}} PATH or |WIKI (to produce "test%20string" or "test_string").
{{anchorencode:string}} Input encoded for use in MediaWiki URL section anchors.
{{ns:n}} Returns the name of the namespace whose index is the number n. For MediaWiki URLs, use {{nse:}}.
{{#rel2abs:path}} Converts a relative file path to an absolute path.
{{#titleparts:fullpagename|number|first segment}} Splits the fullpagename (title) into that number of segments.

Conditional[edit]

Function Description
{{#expr:expression}} Evaluates expression (see mw:Help:Calculation).
{{#if:string |result1 |result2}} Outputs result2 if string is empty, otherwise outputs result1.
{{#ifeq:string1|string2 |result1 |result2}} Outputs result1 if string1 and string2 are equal (alphabetically or numerically), otherwise outputs result2.
{{#iferror:test_string |result1 |result2}} Outputs result1 if test_string generates a parsing error, otherwise outputs result2.
{{#ifexpr:expression |result1 |result2}} Outputs result1 if expression is true, otherwise outputs result2.
{{#ifexist:pagetitle |result1 |result2}} Outputs result1 if the page [[pagetitle]] exists, otherwise outputs result2. Note that underscores are needed for spaces in namespaces.
{{#switch:string |c1=r1 |c2=r2 ... |default}} Outputs r1 if string is c1, r2 if string is c2, etc., otherwise outputs default (if provided).

If, in these conditional functions, empty unnamed parameters are to be parsed as empty rather than as text (i.e. as empty rather than as the text "{{{1}}}", "{{{2}}}", etc.), they will require trailing pipes (i.e. {{{1|}}}, {{{2|}}}, etc., rather than {{{1}}}, {{{2}}}, etc.).

Other[edit]

Function Description
{{#categorytree:category|...}} List pages in a category, recursively.
{{#invoke:module|function|arg1|...}} Use Scribunto to transclude a lua template, e.g. function replace in module String.
{{#lst:}}, {{#lsth:}}, {{#lstx:}} Three ways to transclude a section of a page.
{{#related:...}} Links to similar topics, to engage readers. (Beta feature.)
{{#section:}}, {{#section-h:}}, {{#section-x:}} Aliases for {{#lst:}}, {{#lsth}}, {{#lstx}} (above).
{{int:pagename}} Transclude an interface message, i.e. a pagename in MediaWiki namespace
{{!}} Used to include a pipe character as part of a template argument or table cell contents. Before this was added as a magic word, many wikis implemented this by creating Template:! with | as the content.
{{=}} Used to include an equal sign as part of a template argument or table cell contents. Before this was added as a magic word, many wikis implemented this by creating Template:= with = as the content.

See also[edit]