Help:Magic words

From Saltwiki
(Redirected from Help:Variables)

Magic words are strings of text that MediaWiki associates with a return value or function, such as time, site details, or page names. This page is about usage of standard magic words; for a technical reference, see Manual:Magic words.

There are three general types of magic words:

Page-dependent magic words will affect or return data about the current page (by default), even if the word is added through a transcluded template or included system message.

Behavior switches

A behavior switch controls the layout or behaviour of the page and can often be used to specify desired omissions and inclusions in the content.

Word Description Versions
Table of contents
__NOTOC__ Hides the table of contents (TOC).
__FORCETOC__ Forces the table of content to appear at its normal position (above the first header).
__TOC__ Places a table of contents at the word's current position (overriding __NOTOC__). If this is used multiple times, the table of contents will appear at the first word's position.
__NOEDITSECTION__ Hides the section edit links beside headings.
__NEWSECTIONLINK__ Adds a link ("+" by default) beside the "edit" tab for adding a new section on a non-talk page (see Adding a section to the end). 1.7+
__NONEWSECTIONLINK__ Removes the link beside the "edit" tab on pages in talk namespaces. 1.15+
__NOGALLERY__ Used on a category page, replaces thumbnails in the category view with normal links. 1.7+
__HIDDENCAT__ Used on a category page, hides the category from the lists of categories in its members and parent categories (there is an option in the user preferences to show them). 1.13+
Language conversion
On wikis with language variants, don't perform any content language conversion (character and phase) in article display; for example, only show Chinese (zh) instead of variants like zh_cn, zh_tw, zh_sg, or zh_hk.
On wikis with language variants, don't perform language conversion on the title (all other content is converted).
__START__ No effect.
__END__ Explicitly marks the end of the article, to prevent MediaWiki from removing trailing whitespace. Removed in 19213. 1.1 - 1.8
__INDEX__ Tell search engines to index the page (overrides $wgArticleRobotPolicies, but not robots.txt). 1.14+
__NOINDEX__ Tell search engines not to index the page (ie, do not list in search engines' results). 1.14+
__STATICREDIRECT__ On redirect pages, don't allow MediaWiki to automatically update the link when someone moves a page and checks "Update any redirects that point to the original title". 1.13+


Variables return information about the current page, wiki, or date. Their syntax is similar to templates. Variables marked as "[expensive]" are tracked by the software, and the number that can be included on a page is limited.

If a template name conflicts with a variable, the variable will be used (so to transclude the template Template:PAGENAME you would need to write {{Template:PAGENAME}}). In some cases, adding parameters will force the parser to invoke a template; for example, {{CURRENTDAYNAME|x}} transcludes Template:CURRENTDAYNAME not the variable.

Date and time

The following variables return the current date and time in UTC.

Due to MediaWiki and browser caching, these variables frequently show when the page was cached rather than the current time.

Variable Output Description Versions
{{CURRENTYEAR}} 2022 Year
{{CURRENTMONTH}} 11 Month (zero-padded number)
{{CURRENTMONTHNAME}} November Month (name)
{{CURRENTMONTHNAMEGEN}} November Month (genitive form)
{{CURRENTMONTHABBREV}} Nov Month (abbreviation) 1.5+
{{CURRENTDAY}} 29 Day of the month (unpadded number)
{{CURRENTDAY2}} 29 Day of the month (zero-padded number) 1.6+
{{CURRENTDOW}} 2 Day of the week (unpadded number)
{{CURRENTDAYNAME}} Tuesday Day of the week (name)
{{CURRENTTIME}} 15:46 Time (24-hour HH:mm format)
{{CURRENTHOUR}} 15 Hour (24-hour zero-padded number)
{{CURRENTWEEK}} 48 Week (number)
{{CURRENTTIMESTAMP}} 20221129154636 YYYYMMDDHHmmss timestamp 1.7+

The following variables do the same as the above, but using the site's server config or $wgLocaltimezone.

  • {{LOCALDAY}}
  • {{LOCALDAY2}}
  • {{LOCALDOW}}
For more thorough time formatting, you may want to install Extension:ParserFunctions to use the #time parser function

Technical metadata

Revision variables return data about the latest edit to the current page, even if viewing an older version of the page.

Variable Output Description Versions
{{SITENAME}} Saltwiki The wiki's site name ($wgSitename).
{{SERVER}} domain URL ($wgServer)
{{SERVERNAME}} domain name (No longer dependent on $wgServerName as of version 1.17)

Outputs a unicode-directional mark that matches the wiki's default language's direction (‎ on left-to-right wikis, ‏ on right-to-left wikis), useful in text with multi-directional text. 1.7+
{{SCRIPTPATH}} relative script path ($wgScriptPath)
{{STYLEPATH}} /skins relative style path ($wgStylePath) 1.16+
{{CURRENTVERSION}} 1.31.1 The wiki's MediaWiki version. 1.7+
The wiki's default interface language ($wgLanguageCode) 1.7+
Latest revision to current page
{{REVISIONID}} 6685 Unique revision ID 1.5+
{{REVISIONDAY}} 11 Day edit was made (unpadded number) 1.8+
{{REVISIONDAY2}} 11 Day edit was made (zero-padded number) 1.8+
{{REVISIONMONTH}} 07 Month edit was made (zero-padded number as of 1.17+, unpadded number in prior versions) 1.8+
{{REVISIONYEAR}} 2016 Year edit was made 1.8+
{{REVISIONTIMESTAMP}} 20160711100818 Timestamp as of time of edit 1.8+
{{REVISIONUSER}} MTerwald The username of the user who made the most recent edit to the page, or the current user when previewing an edit 1.15+
{{PAGESIZE:page name}}
{{PAGESIZE:page name|R}}
[expensive] Returns the byte size of the specified page. Use "|R" to get raw numbers. 1.13+
{{PROTECTIONLEVEL:action}} protection level Outputs the protection level (e.g. 'autoconfirm', 'sysop') for a given action (e.g. 'edit', 'move') on the current page or an empty string if not protected. 1.15+
Affects page content
{{DISPLAYTITLE:title}} Format the current page's title header. The value must be equivalent to the default title: only capitalization changes and replacing spaces with underscores. It can be disabled or enabled by $wgAllowDisplayTitle; disabled by default before 1.10+, enabled by default thereafter. 1.7+
Used for categorizing pages, sets a default category sort key. For example if you put {{DEFAULTSORT:Smith, John}} at the end of John Smith, the page would be sorted under "S" by default in categories. 1.10+


Numbers returned by these variables normally contain separators (commas or spaces, depending on the local language), but can return raw numbers with the ":R" flag (for example, {{NUMBEROFPAGES}} → 875 and {{NUMBEROFPAGES:R}} → 875). Use "|R" for magic words that require a parameter like PAGESINCATEGORY (for example {{PAGESINCATEGORY:Help}} and {{PAGESINCATEGORY:Help|R}}). Also applicable to {{PAGESIZE:page name}} above.

Variable Output Description Versions
Entire wiki
{{NUMBEROFPAGES}} 875 Number of wiki pages. 1.7+
{{NUMBEROFARTICLES}} 195 Number of pages in content namespaces.
{{NUMBEROFFILES}} 19 Number of uploaded files. 1.5+
{{NUMBEROFEDITS}} 6,739 Number of page edits. 1.10+
{{NUMBEROFVIEWS}} Template:NUMBEROFVIEWS Number of page views. Usually useless on a wiki using caching. 1.14+
{{NUMBEROFUSERS}} 60 Number of registered users. 1.7+
{{NUMBEROFADMINS}} 5 Number of users in the sysop group. 1.7+
{{NUMBEROFACTIVEUSERS}} 1 Number of active users, based on the criteria used in Special:Statistics. 1.15+
[expensive] Number of pages in the given category. 1.13+
({{NUMBERINGROUP:bureaucrat}} used here)
Number of users in a specific group. 1.14+
not enabled Number of pages in the given namespace (replace index with the relevant namespace index). For instance, {{PAGESINNAMESPACE:14}} will output the number of category pages. {{PAGESINNS:0}} differs from {{NUMBEROFARTICLES}} in that the former includes redirects and disambiguation pages. Disabled by default, enable with $wgAllowSlowParserFunctions. 1.7+

Page names

Variable Output Description Versions
{{FULLPAGENAME}} Help:Magic words Namespace and page title. 1.6+
{{PAGENAME}} Magic words Page title.
{{BASEPAGENAME}} Magic words Page title excluding the current subpage and namespace ("Title/foo" on "Title/foo/bar").

For more complex splitting, use {{#titleparts:}} from ParserFunctions extension.

{{SUBPAGENAME}} Magic words The subpage title ("foo" on "Title/foo"). 1.6+
{{SUBJECTPAGENAME}} Help:Magic words The namespace and title of the associated content page. 1.7+
{{TALKPAGENAME}} Help talk:Magic words The namespace and title of the associated talk page. 1.7+

The {{BASEPAGENAME}} and {{SUBPAGENAME}} magic words only work in namespaces that have subpages enabled. See Manual:$wgNamespacesWithSubpages for information on enabling subpages.

The following are equivalents encoded for use in MediaWiki URLs (i.e. spaces replaced with underscores and some characters percent-encoded):


As of 1.15+, these can all take a parameter, allowing specification of the page to be operated on, instead of just the current page:

  • {{PAGENAME:Template:Main Page}}Main Page
Error creating thumbnail: File missing
Page titles containing certain characters, such as single quotes (') or asterisks *, may produce unexpected results when handled with these magic words, e.g. {{PAGESINCATEGORY:{{PAGENAME}}}}. See bugs 14779, 16474.

PAGENAME encoding

The PAGENAME variable encoding states are not simple. For simplicity in this section, ignore wide characters. The following characters are not allow in wiki page names and will not be further mentioned:

# < > [ ] _ { | }

That is the three types of brackets, pound sign, underscore and vertical bar. Note that a page can have a leading space but not a trailing space and that spaces. We will present other ASCII 7-bit values for characters as the URL-style encoding of percent-hex-hex for clarity and utility since this is the same notation one would manually encode them in a URL. For this discussion, we will refer only to ASCII 7-bit values, not accented characters and such. There are also some bizzare combinations that . There are also other snags that are complex. For instance, you can create the a wiki page named!"$'abc

but you cannot a page named!"$'abc

for reasons too complex to explain here, but it has something to do with quotes and stuff.


Some characters returned by PAGENAME are HTML-style encoded:

  • " (double quote %22) is converted to &quot;
  • ' (single quote %27) is converted to &#39; (39 is the decimal value of hexadecimal 27 )
  • & (ambersand %3B) is converted to &amp;

We will refer to these as "the three pagename characters".


PAGENAMEE converts spaces to underscore and URL-style encodes some other characters:

  • It converts " % & ' + = ? \ ^ ` ~ to %22 %25 %26 %27 %2B %3D %3F %5C %5E %60 %7E
  • It does not convert alphanumerics and the characters: ! $ ( ) * , - . / : ; @

This avoids the problematic coding of the three pagename characters but the typical encoding of space is the plus sign (or sometimes as %20). The default MediaWiki configuration has limited string manipulation features so this will often not be a sufficient solution. A solution to this might be to create a library of string manipulation templates. Note that Extension:StringFunctions is obsolete, but it still might suffice.

Web server HTTP interface and web browser URL:

The URL you cut/paste in your web browser URL is similar but not exactly the same as PAGENAMEE .

  • In order to type in a page name as a URL in your web browser, the following two characters must be URL-style encoded: % ? as %25 %3F . See RFC1738 for details.
  • For the URL you see in your browser, the situation is more complex. As a URL in a web browser's address box, some characters in pagenames are converted sometimes and othertimes not converted. If you type in a URL into your web browser ending in A_=_B or A=B then it will send that URL directly and you will get to the wiki page if it exists. But many wiki pages have spaces in them and then something different happens. If you enter a URL into your web browser ending in A = B (with spaces around the equals sign), then your web browser encodes spaces to %20, and thus sends A%20=%20B to the web server. The wiki web server, then converts the string to A_%3D_B and sends that back to the web browser via w:URL redirection. The wiki web server converted the equals sign because it was next to a blank. Characters that the wiki web servers converts in this way is the same as the PAGENAMEE list, but again, only when they are adjacent to a space. On top of this, your web browser will hide some conversions in a possibly brower-dependent manner because it does, in effect, a urldecode action on the real URL. This decoding is essential for usability for users of non-English languages such as Asian languages can type in wide characters into a brower's URL address. For instance, a URL ending in %E6%9D%B1%E4%BA%AC, you browser will usually urlconvert it and display it as 東京, which are the two Kanji characters for Tokyo. An easy way to reliably see the real URL is to cut-and-paste it as text into a simple text editor and see what it looks like and how much encoding happened.

The urlencode converts almost all characters except alphanumerics and three of the RFC1738 URL "safe" characters: - . (dash, period) and it converts blank to plus. While the technique of embedding {{uuencode:{{{userparam|{{PAGENAME}}})))) into off-wiki URLs as a CGI-style parameter can be useful in templates (i.e. treating simple pagenames as data). We will call this technique urlencode-pagename. With the three PAGENAME characters above (i.e. " ' &), this can result in a double encoding (first into HTML and then into urlencode). An example would be where the HTML-style ampersand of &esc;amp; is converted into to the URL-style %26amp%3B . Sometimes remote web sites can handle this, but many cannot. For these page names, the invocation of a template that uses urlencode-pagename will have to spell out that page name again as the parameter userparam with the simple version of the three PAGENAME characters. As with PAGENAMEE, another possible workaround is string manipulation templates or adding appropriate extensions.


Variable Output Description Versions
{{NAMESPACE}} Help Name of the page's namespace
Name of the associated content namespace 1.7+
{{TALKSPACE}} Help talk Name of the associated talk namespace 1.7+

The following are equivalents encoded for use in MediaWiki URLs (spaces replaced with underscores and some characters percent-encoded):


As of 1.15+, these can take a page name parameter and will return the namespace of the page name parameter, instead of the current page's:

  • {{NAMESPACE:Template:Main Page}}Template
  • {{SUBJECTSPACE:Template:Main Page}}Template
  • {{TALKSPACE:Template:Main Page}}Template talk

Parser functions

Parser functions are very similar to variables, but take one or more parameters (technically, any magic word that takes a parameter is a parser function), and the name is sometimes prefixed with a hash to distinguish them from templates.

This page only describes parser functions that are integral to the MediaWiki software. Other parser functions may be added by MediaWiki extensions such as the ParserFunctions extension. For those see Help:Extension:ParserFunctions.

URL data

Parser function Input → Output Description Versions
{{localurl:page name}}
{{localurl:page name|query_string}}
{{localurl:MediaWiki}} → /index.php/MediaWiki
{{localurl:MediaWiki|printable=yes}} → /index.php?title=MediaWiki&printable=yes
The relative path to the title.
{{fullurl:page name}}
{{fullurl:page name|query_string}}
{{fullurl:interwiki:remote page name|query_string}}
{{fullurl:Category:Top level}}

{{fullurl:Category:Top level|action=edit}}

The absolute path to the title. This will also resolve Interwiki prefixes. 1.5+
{{filepath:file name}}
{{filepath:file name|nowiki}}


The absolute URL to the full size or thumbnail (1.18+) of a media file. 1.12+
{{urlencode:string}} (or {{urlencode:string|QUERY}})
{{urlencode:x y z á é}} (or {{urlencode:x y z á é|QUERY}}) → x+y+z+%C3%A1+%C3%A9
{{urlencode:x y z á é|WIKI}} → x_y_z_%C3%A1_%C3%A9
{{urlencode:x y z á é|PATH}} → x%20y%20z%20%C3%A1%20%C3%A9

Note that the default changed from |WIKI to |QUERY in 1.17; this may break templates that rely on this function.

The input encoded for use in URLs. Note that there is no urldecode function like there is in the obsolete Extension:StringFunctions. 1.7+ (or 1.17+)
{{anchorencode:string}} {{anchorencode:x y z á é}} → x_y_z_.C3.A1_.C3.A9 The input encoded for use in URL section anchors (after the '#' symbol in a URL). 1.8+


{{ns:}} returns the localized name for the namespace with that index. {{nse:}} is the equivalent encoded for MediaWiki URLs. It does the same, but it replaces spaces with underscores, making it usable in external links.

Content namespaces Talk namespaces
Usage Output Usage Output
{{ns:-2}} or {{ns:Media}} Media
{{ns:-1}} or {{ns:Special}} Special
{{ns:0}} or {{ns:}} {{ns:1}} or {{ns:Talk}} Talk
{{ns:2}} or {{ns:User}} User {{ns:3}} or {{ns:User talk}} User talk
{{ns:4}} or {{ns:Project}} Saltwiki {{ns:5}} or {{ns:Project talk}} Saltwiki talk
{{ns:6}} or {{ns:File}} or {{ns:Image}} File {{ns:7}} or {{ns:File talk}} or {{ns:Image talk}} File talk
{{ns:8}} or {{ns:MediaWiki}} MediaWiki {{ns:9}} or {{ns:MediaWiki talk}} MediaWiki talk
{{ns:10}} or {{ns:Template}} Template {{ns:11}} or {{ns:Template talk}} Template talk
{{ns:12}} or {{ns:Help}} Help {{ns:13}} or {{ns:Help talk}} Help talk
{{ns:14}} or {{ns:Category}} Category {{ns:15}} or {{ns:Category talk}} Category talk


Usage Input → Output Description Version
{{lc:string}} {{lc:DATA CENTER}} → data center The lowercase input. 1.5+
{{lcfirst:string}} {{lcfirst:DATA center}} → dATA center The input with the very first character lowercase. 1.5+
{{uc:string}} {{uc:text transform}} → TEXT TRANSFORM The uppercase input. 1.5+
{{ucfirst:string}} {{ucfirst:text TRANSFORM}} → Text TRANSFORM The input with the very first character uppercase. 1.5+
{{formatnum:unformatted num}}
{{formatnum:formatted num|R}}
→ 987,654,321.654321
→ 987654321.654321
→ 00,001
The input with decimal and decimal group separators, and localized digit script, according to the wiki's default locale. The |R parameter can be used to unformat a number, for use in mathematical situations.
Error creating thumbnail: File missing
Warning: Leading zeroes are not removed, you can use {{#expr:00001}} instead if you have Extension:ParserFunctions installed

{{#dateformat:date}} {{#formatdate:date}} {{#dateformat:date|format}} {{#formatdate:date|format}}

{{#dateformat:25 deC 2009|ymd}}
2009 DeC 25 (your pref), 2009 DeC 25 (default)
{{#formatdate:dec 25,2009|dmy}}
25 Dec 2009 (your pref), 25 Dec 2009 (default)
December 25, 2009 (your pref), December 25, 2009 (default)
{{#formatdate:2009 dec 25|ISO 8601}}
2009-12-25 (your pref), 2009-12-25 (default)
{{#dateformat:25 decEmber|mdy}}
DecEmber 25 (your pref), DecEmber 25 (default)

Note: In the example above, "your pref" refers to your date preference on the current MediaWiki wiki only.

Formats an unlinked date based on user "Date format" preference, and adds metadata tagging it as a formatted date. For logged-out users and those who have not set a date format in their preferences, dates can be given a default: mdy, dmy, ymd, ISO 8601 (all case sensitive). If only the month and day are given, only mdy and dmy are valid. If a format is not specified or is invalid, the input format is used as a default. If the supplied date is not recognized as a valid date (specifically, if it contains any metadata such as from a nested use of these or a similar template), it is rendered unchanged, and no (additional) metadata is generated.
Error creating thumbnail: File missing
Warning: Although the ISO 8601 standard requires that dates be in the Gregorian calendar, the ISO parameter in this function will still format dates that fall outside the usual Gregorian range (e.g. dates prior to 1583). Also, the magic word cannot properly convert between negative years (used with ISO 8601) and years BC or years BCE (used in general writing).
{{padleft:xyz|5}} → 00xyz
{{padleft:xyz|5|_}} → __xyz {{padleft:xyz|5|abc}} → abxyz {{padleft:xyz|2}} → xyz
{{padleft:|1|xyz}} → x (first character of the string)
Inserts a string of padding characters (character chosen in third parameter; default '0') of a specified length (second parameter) next to a chosen base character or variable (first parameter). The final digits or characters in the base replace the final characters in the padding; i.e. {{padleft:44|3|0}} produces 044. The padding string may be truncated if its length does not evenly divide the required number of characters.
bug (fixed in r45734): multibyte characters are interpreted as two characters, which can skew width. These also cannot be used as padding characters.
{{padright:xyz|5}} → xyz00

{{padright:xyz|5|_}} → xyz__ {{padright:xyz|5|abc}} → xyzab {{padright:xyz|2}} → xyz
{{padright:|1|xyz}} → x

Identical to padleft, but adds padding characters to the right side.
{{plural:2|is|are}} {{plural:0|is|are}} → are
{{plural:1*1|is|are}} → is
{{plural:21 mod 10|is|are}} → are
{{plural:{{#expr:21 mod 10}}|is|are}} → is
{{plural:1|is|are}} → is
{{plural:2|is|are}} → are
Outputs the singular form (second parameter) if the first parameter is an expression equalling one; the plural form (third parameter) otherwise. Plural transformations are used for languages like Russian based on "count mod 10".
{{grammar:N|noun}} Outputs the correct inflected form of the given word described by the inflection code after the colon (language-dependent). Grammar transformations are used for inflected languages like Polish. See also Manual:$wgGrammarForms. 1.7+


Usage Output Description Version
{{int:message name}} {{int:edit}}Edit
(depends on user language, try: frja)
Internationalizes (translates) the given interface (MediaWiki namespace) message into the user language. Note that this can damage/confuse cache consistency, see bug 14404.
{{#language:language code}}
language code
The native name for the given language code, in accordance with ISO 639. 1.7+
{{#special:special page name}}
Special:Special page name
The localized name for the given canonical Special: page. 1.9+
(depends on parser tag) Alias for XML-style parser or extension tags, but parsing wiki code. Inner content can be passed as first parameter, and attributes as subsequent ones:

<tagname attribute1="value1" attribute2="value2"> content </tagname >{{#tag:tagname|content|attribute1=value1|attribute2=value2}}

Warning : You must write {{#tag:tagname||attribute1=value1|attribute2=value2}} to pass an empty content.

|return text if user is male
|return text if user is female
|return text if user hasn't defined their gender}}
(depends on the named user's gender) A switch for the gender set in Special:Preferences

Note: If 3rd parameter is omitted and user hasn't defined his/her gender, then text if user is male is returned.

Language: English