Extension:Parser function extensions

From MediaWiki.org

Jump to: navigation, search

A "parser function" is a template-like construct which returns a value based on at least one unnamed parameter, separated from the function name by a colon [:]; there may be more parameters which, like those of ordinary templates, each preceded by a "pipe" [|]. In the case of a hash character [#] at the start of the function name (which prevents collision with namespaces and interwiki prefixes) this may or may not be considered part of the name. If it is considered part of the name, the syntax is of the form

{{functionname: argument 1 | argument 2 | argument 3...}}

Arguments cannot directly contain "|" or "}}" except as part of the code of a template call, parser function call, variable, link or image, but they can contain them arbitrarily using a template, e.g. m:Template:! (talk, backlinks, edit), or a parser function.

The code can specify whether the function name is case-sensitive.

The separation of the arguments from each other is with "|", and from the function name is with the first ":" The expansion of each of these pieces is standard as in Special:ExpandTemplates (which is a good place to experiment by the way if you are learning this stuff) and is beyond the control of the parser function.

However, everything else can be different for each parser function, including:

  • whether an argument is just a value, or of the form parname = parvalue, or whatever
  • if applicable, whether parameter names are case-sensitive

[edit] Syntax prescribed by a parser function extension

In view of the above, it is advantageous to make an extension such that the syntax to be used in an argument does not contain the pipe character "|" or double braces (more specifically, double closing braces "}}" ). This in spite of the fact that a pipe character would otherwise seem a suitable symbol for e.g. a choice or union (see e.g. [1]). Allowing such codes is harmless, if also an alternative code is allowed, e.g. "\" for "|".

[edit] Table of functions

extension function
standard lc
standard uc
standard lcfirst
standard ucfirst
standard urlencode
standard localurl
standard fullurl
standard #language
ParserFunctions #expr
ParserFunctions #ifexpr
ParserFunctions #if
ParserFunctions #ifeq
ParserFunctions #ifexist
ParserFunctions #rel2abs
ParserFunctions #titleparts
ParserFunctions #switch
ParserFunctions #time
Extension:AddScriptCss #addscript
Extension:Coordinate #coordinate
Extension:ForeachFunction #foreachx
Extension:ForeachFunction #foreachy
Extension:ImageLink #imagelink
Extension:InterWikiLinkManager #iwl
Extension:PageAfterAndBefore #pagebefore
Extension:PageAfterAndBefore #pageafter
Extension:PageAfterAndBefore #firstpage
Extension:PageAfterAndBefore #lastpage
Extension:PageFunctions #pagetitle
Extension:PageFunctions #pagesubtitle
Extension:PageFunctions #pageexists
Extension:PageFunctions #varset
Extension:PageFunctions #varget
Extension:PageFunctions #varcapset
Extension:PageFunctions #cshow
Extension:PageFunctions #varaset
Extension:PageFunctions #varaget
ParserFunctions (extended) #expr (extended)
ParserFunctions (extended) #ifexpr (extended)
ParserFunctions (extended) #min
ParserFunctions (extended) #max
ParserFunctions (extended) #if
ParserFunctions (extended) #ifeq
ParserFunctions (extended) #ifexist
ParserFunctions (extended) #rel2abs
ParserFunctions (extended) #switch
ParserFunctions (extended) #time
Extension:RegexTools #regex
Extension:RegexTools #regex_vars
Semantic MediaWiki #ask
StringFunctions #len
StringFunctions #pos
StringFunctions #rpos
StringFunctions #sub
StringFunctions #pad
StringFunctions #replace
StringFunctions #explode
StringFunctions #urlencode
StringFunctions #urldecode
LoopFunctions #for
LoopFunctions #foreach
Loops #while
Loops #dowhile
Loops #foreachnamedarg
Infobox Data Capture #dataentry
Infobox Data Capture #listsplit
MediaFunctions #media..
Labeled Section Transclusion #lst
Labeled Section Transclusion #lstx
Labeled Section Transclusion #lsth
ExpandAfter #expandafter
VariablesExtension #vardefine
VariablesExtension #var
DynamicFunctions #arg
DynamicFunctions #ip
DynamicFunctions #rand
DynamicFunctions #skin
Data #data
Data #sort
DynamicPageList #dpl
Simple Security #security
Tree view #tree
Livelets [2] #live
Secure Properties #pg
Secure Properties #ps
Secure Properties #pf
Secure Properties #gg
Secure Properties #gs

[edit] See also

Personal tools