Help:Magic words

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.

There are three general types of magic words:
 * Behavior switches: these are uppercase words surrounded by double underscores, e.g. __FOO__
 * Variables: these are uppercase words surrounded by double braces, e.g.  . As such, they look a lot like templates.
 * Parser functions: these take parameters and are either of the form   or  . See also.

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.

Variables
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    :PAGENAME you would need to write  ). In some cases, adding parameters will force the parser to invoke a template; for example,  transcludes     :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.

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


 * 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.

Statistics
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,  &rarr;  and   &rarr; ). Use "|R" for magic words that require a parameter like PAGESINCATEGORY (for example  and  ). Also applicable to  above.

Page names
The  and   magic words only work in namespaces that have subpages enabled. See 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, these can all take a parameter, allowing specification of the page to be operated on, instead of just the current page:
 * &rarr; 

PAGENAME encoding
The PAGENAME variable encoding states are not simple. For simplicity in this section, ignore wide characters. Note that unauthorized in page names in order to protect templates, etc. are # < > [ ] { } | and will not be further mentioned. We will present the ASCII 7-bit values for characters as percent-hex-hex for clarity and utility since this is the same notation one would manually encode them in a URL. The term alphanumerics means only ASCII 7-bit values.

Some characters returned by PAGENAME are encoded more for HTML display and to be embedded in a URL:
 * PAGENAME:
 * " (double quote %22) is converted to &amp;quot;
 * ' (single quote %27) is converted to &amp;#39; (39 is the decimal ASCII value for single quote)
 * & (ambersand %3B) is converted to &amp;amp;

PAGENAMEE converts spaces to underscore and a few other characters.
 * PAGENAMEE:
 * It converts & ' to %26 %27 and " = ^ to %22 %3D %5E %60
 * It does note convert alphanumerics and the characters ! $ *, - . / : ; @ ~

As an aside, the URL you cut/paste in your web browser URL is not the same as PAGENAMEE.
 * Web server HTTP interface:
 * For the input URL, the two characters that must be encoded are: % ? as %25 %3F
 * For the URL you see in your browser, the situation is not simple. Where some conversions are hidden in a brower-dependent manner because many web browersrs do, in effect, an incomplete urldecode action on the real URL to hide some of the encoding. This decoding is essential for usability so that, for examples, uses of non-English languages such as Asian languages can type in wide characters into a brower's URL address, such as for a CGI paramter, and have the characters properly encoded.
 * Converted by web server URL rewriting and the browser decoding: + & to %2B %3F in a user-visible manner. In some cases, such as being adjacent to a space, = is converted to %3D, and it other cases (which are complex) it does not appear to be converted. Typically, it depends on whether the character is adjacent to a space and this is related to the fact that spaces are converted to underscores. Essentially, this is a complex interaction between the web server URL rewriting and the web browser urldecode action. If you cut/paste the URL from the web browser into a plain text editor and examine that string, you will see that the actual URL will convert these characters as well: " = ^ ` as %22 %3D %5E %60

The urlencode converts almost all characters except alphanumerics and three of the RFC1738 URL/CGI "safe" characters: -. _ (dash, period, underscore). While the technique of embedding {{uuencode:{{{userparam|{{PAGENAME}}})))) into off-wiki URLs as a CGI-style parameter can be useful in templates, see notes about PAGENAME above. Specially, some search engines can recognize an urlencoding of an HTML-style encoding and others cannot.
 * urlencode:

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

As of, these can take a page name parameter and will return the namespace of the page name parameter, instead of the current page's:
 * &rarr; 
 * &rarr; 
 * &rarr; 

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. For those see Help:Extension:ParserFunctions.

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