Help:Magic words

From Wikipedia, the free encyclopedia
  (Redirected from Help:Parser function)
Jump to: navigation, search
"WP:MAGIC" redirects here. For an introduction, see Help:Magic words for beginners. For help on the automatic transformation of wikitext, see Help:Magic. For the WikiProject on stage magic and illusions, see Wikipedia:WikiProject Magic.

Magic words (including parser functions, variables and behavior switches) are features of wiki markup that give instructions to Wikipedia'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]

There are three types of magic words:

Behavior switches
Uppercase words surrounded by double underscores, e.g., __NOTOC__ or other keywords using parser function syntax.
Uppercase words surrounded by double braces (thus resembling templates), e.g. {{PAGENAME}}.
Parser functions
Keywords in double braces with parameters after a colon (some beginning with #), e.g. {{#expr:2+2}}.

Some magic words are case-insensitive, but not all. White space is stripped from the start and end of keywords and parameters, as in template syntax.

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

It is possible to substitute parser functions and most variables in the same way that templates are substituted (using the subst: keyword). This causes their current value (as evaluated at the time of substitution) to be written into the wikitext.

Behavior switches[edit]

Switch Description
__TOC__ Places the page's table of contents (TOC) at the word's position.
__FORCETOC__ Forces the TOC to appear in its default position immediately before the page's first section (first heading). Can be used anywhere on a page.
__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] ==).
__NEWSECTIONLINK__ On non-talk pages, adds a "New section" link as a means to add a new section to the page.
__NONEWSECTIONLINK__ Removes the "New section" 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 Wikipedia: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). Also instructs interwiki bots to treat the page as if an article.
__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.
{{NOEXTERNALLANGLINKS}} (equivalent to {{NOEXTERNALLANGLINKS|*}}) Suppresses the automated inclusion of Wikidata interlanguage links on the lefthand side of the page. Links to particular rather than all languages may be suppressed by using {{NOEXTERNALLANGLINKS|list}}, where list a pipe-delimited list of language codes (e.g. {{NOEXTERNALLANGLINKS|fr|es|ja}} to suppress the French ("fr"), Spanish ("es") and Japanese ("ja") interlanguage links).


Page name variable Its output in this wikitext 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.
{{TALKSPACE}} Help talk Namespace of the talk page associated with the current page.
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:Wikipedia:MOS}} returns Wikipedia talk:MOS on any page. See meta:Help:Page name for more details of parser functions.

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

Site variable Example Description
{{SITENAME}} Wikipedia
{{SERVER}} //
{{CURRENTVERSION}} 1.28.0-wmf.22 (ed0e5e6) Returns current MediaWiki version.

Other variables by type[edit]

Date and time Revision data Statisticsb
Universal time
Local website time
  • {{LOCALDAY}}
  • {{LOCALDAY2}}
  • {{LOCALDOW}}
a {{REVISIONID}} cannot be substituted and does not function in preview.
b English Wikipedia.
c This shows the last user to edit the page. There is no way to show the user viewing the page due to technical issues.

Parser functions[edit]


Function Description
{{PAGEID}} Unique page identifier number.
{{PAGESIZE:fullpagename}} Size of named page in bytes.
{{PROTECTIONLEVEL:action|fullpagename}} Protection level assigned to action ("edit", "move", etc.) on named page.
{{PROTECTIONEXPIRY:action|fullpagename}} Protection expiry assigned to action ("edit", "move", etc.) on named page.
{{PENDINGCHANGELEVEL}} Protection level for pending changes on the current page.
{{PAGESINCATEGORY:pagename}} Number of pages in the category named pagename.
{{NUMBERINGROUP:groupname}} Number of users in the usergroup named groupname.

To output numbers without comma separators (for example, as "123456789" rather than "123,456,789"), append the parameter |R.


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}} Adds comma separators to an unformatted_number (e.g. 123456789 becomes 123,456,789). To remove such formatting, use {{formatnum:formatted_number|R}} (i.e. {{formatnum:7,654,321|R}}, for example, produces 7654321).
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.
Pad with zeros to the right or left; an alternative padding string can be given as a third parameter; the alternative padding string may 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 for more details.
Used to format dates and times. #timel is based on local time as defined for the entire wiki; for the English Wikipedia, where local time is set to UTC, this is identical to #time. (See mw:Help:Extension:ParserFunctions##time.)
{{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 and translatewiki:Gender.
{{#tag:tag|content|p1=v1|p2=v2}} An equivalent to the HTML <tag>...</tag> that is useful when e.g. nesting references.


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}} Encodes string for use in URL query strings; {{urlencode:test string}}, for example, produces: test+string. To encode string for use in URL paths or MediaWiki page names, append, respectively, |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.


Further information: Help:Conditional expressions
Function Description
{{#expr:expression}} Evaluates expression (see m: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.).


Function Description
{{#babel:code1|code2|...}} Render userboxes telling your language skills. Improves upon the alternative, {{Babel}}.
{{#coordinates:arg1|arg2|...}} Save the GeoData coordinates of the subject to the page's database. Used in {{coord}}.
{{#invoke:module|function|arg1|arg2 |...}} Call a (Wikipedia-based-Lua) function in a Scribunto module (e.g. module String).
{{#language:lang code 1|lang code 2}} Output the language name of the language code (e.g. en) in its own language, else in language code2.
{{#lst:}}, {{#lsth:}}, {{#lstx:}} See Help:Labeled section transclusion
{{#property:arg1|arg2|...}} Include a property (Wikidata) from a named entity, instead of the default on the page.
{{#section:}}, {{#sectionh:}}, {{#sectionx:}} Aliases for {{#lst:}} etc.; see Help:Labeled section transclusion
{{#target:fullpagename}} Send a message to a list talk pages on the fullpagename, using the MassMessage function.
{{int:pagename}} Transclude a page from the MediaWiki namespace interface according to the user's language preferences. For example, a system message.

See also[edit]