Parserfunctie extensies

This page is a translated version of the page Parser function extensions and the translation is 100% complete.

Een "parserfunctie" is een sjabloon-achtige constructie die een waarde retourneert op basis van ten minste één naamloze parameter, gescheiden van de functienaam door een dubbele punt [:]. Er kunnen ook meer parameters zijn; Net als die van gewone sjablonen worden deze aanvullende parameters elk voorafgegaan door een "pipe" [|]. In het geval van een hash teken [#] aan het begin van de functienaam (wat conflicten met namespaces en interwiki-voorvoegsels voorkomt), kan dit al dan niet als onderdeel van de naam worden beschouwd. Als het als onderdeel van de naam wordt beschouwd, is de syntaxis van de vorm

{{functionname: argument 1 | argument 2 | argument 3...}}
Als de aanroeper geen argumenten heeft om de parserfunctie op te geven, dan is het formulier gewoon {{functionname:}} of, wanneer een hash-teken van toepassing is (zoals normaal het geval is), dan is het formulier {{#functionname:}}. Als de dubbele punt niet wordt opgegeven, wordt functiename niet herkend door de parser.

Argumenten kunnen niet rechtstreeks "|" of "}}" bevatten, behalve als onderdeel van de code van een sjabloonaanroep, parserfunctieaanroep, variabele, link of afbeelding, maar ze kunnen ze willekeurig bevatten met behulp van een sjabloon, bijvoorbeeld m:Template:! of een parserfunctie.

De code kan opgeven of de functienaam hoofdlettergevoelig is.

De scheiding van de argumenten van elkaar is met "|", en van de functienaam is met de eerste ":" De uitbreiding van elk van deze stukken is standaard, zoals in ExpandTemplates (wat trouwens een goede plek is om te experimenteren als met dit soort dingen begint) en valt buiten de controle van de parserfunctie zelf.

Al het andere kan echter voor elke parserfunctie anders zijn, waaronder:

  • of een argument slechts een waarde is, of van de vorm parname = parvalue, of wat dan ook
  • indien van toepassing, of parameternamen hoofdlettergevoelig zijn

Syntax voorgeschreven door een parserfunctie-uitbreiding

Gelet op het bovenstaande is het voordelig om een extensie zodanig te maken dat de in een argument te gebruiken syntaxis niet het pipe-teken "|" of dubbele accolades bevat (meer specifiek, dubbele sluitingsaccolades "}}"). Dit ondanks het feit dat een pipe-teken anders een geschikt symbool zou lijken voor bijvoorbeeld een keuze of vereniging (zie voorbeeld ). Het toestaan van dergelijke codes is onschadelijk als een alternatieve code ook is toegestaan, bijvoorbeeld "\" voor "|".

De functies in een tabel

extensie functie MediaWiki versie
built-in lc 1.7+
built-in uc 1.7+
built-in lcfirst 1.7+
built-in ucfirst 1.7+
built-in urlencode 1.7+
built-in anchorencode 1.8+
built-in localurl 1.7+
built-in fullurl 1.7+
built-in #language 1.7+
built-in #special 1.9+
built-in #tag 1.12+
ParserFunctions (usage ) #expr 1.19+
ParserFunctions (usage ) #ifexpr 1.19+
ParserFunctions (usage ) #if 1.19+
ParserFunctions (usage ) #ifeq 1.19+
ParserFunctions (usage ) #ifexist 1.19+
ParserFunctions (usage ) #rel2abs 1.19+
ParserFunctions (usage ) #titleparts 1.19+
ParserFunctions (usage ) #switch 1.19+
ParserFunctions (usage ) #time 1.19+
AddScriptCss #addscript Archived
Arrays #arraydefine 1.23+
Arrays #arraydiff 1.23+
Arrays #arrayindex 1.23+
Arrays #arrayintersect 1.23+
Arrays #arraymerge 1.23+
Arrays #arrayprint 1.23+
Arrays #arrayreset 1.23+
Arrays #arraysearch 1.23+
Arrays #arraysearcharray 1.23+
Arrays #arraysize 1.23+
Arrays #arrayslice 1.23+
Arrays #arraysort 1.23+
Arrays #arraytohash 1.23+
Arrays #arrayunion 1.23+
Arrays #arrayunique 1.23+
Arrays #hashtoarray 1.23+
Attachments #attach 1.31+
Attachments #exturl 1.31+
Babel #babel 1.30+
CSS #css 1.25+
Coordinate #coordinate 1.10+
Counter #+ 1.15+
Data #data Archived
Data #sort Archived
DynamicFunctions #arg Archived
DynamicFunctions #ip Archived
DynamicFunctions #rand Archived
DynamicFunctions #skin Archived
DynamicPageList (third-party) #dpl
ExpandAfter #expandafter (deprecated , see: #tag) Archived
ForeachFunction #foreachx Archived
ForeachFunction #foreachy Archived
HasCategory #ifhascat Archived
HideNamespace #hidens 1.15+
HideNamespace #unhidens 1.15+
ImageLink #img (old: #imagelink, deprecated ) Archived
Infobox Data Capture #dataentry Archived
Infobox Data Capture #listsplit Archived
InterWikiLinkManager #iwl Archived
KeyValue #keyvalue 1.16+
Labeled Section Transclusion #lst 1.25+
Labeled Section Transclusion #lstx 1.25+
Labeled Section Transclusion #lsth 1.25+
LoopFunctions #for 1.23+
LoopFunctions #foreach 1.25+
Loops #while 1.25+
Loops #dowhile 1.25+
Loops #forargs 1.25+
Loops #fornumargs 1.25+
Loops #loop 1.25+
Maps/nl #geocode 1.27+
Maps/nl #display_map 1.27+
Maps/nl #display_point 1.27+
Maps/nl #coordinates 1.27+
Maps/nl #distance 1.27+
MediaFunctions #media.. 1.23+
PageAfterAndBefore #pagebefore Archived
PageAfterAndBefore #pageafter Archived
PageAfterAndBefore #firstpage Archived
PageAfterAndBefore #lastpage Archived
PageFunctions #pagetitle Archived
PageFunctions #pagesubtitle Archived
PageFunctions #pageexists Archived
PageFunctions #varset Archived
PageFunctions #varget Archived
PageFunctions #varcapset Archived
PageFunctions #cshow Archived
PageFunctions #varaset Archived
PageFunctions #varaget Archived
ParserFunctions (extended) #expr (extended) 1.19+
ParserFunctions (extended) #ifexpr (extended) 1.19+
ParserFunctions (extended) #min 1.19+
ParserFunctions (extended) #max 1.19+
ParserFunctions (extended) #if 1.19+
ParserFunctions (extended) #ifeq 1.19+
ParserFunctions (extended) #ifexist 1.19+
ParserFunctions (extended) #rel2abs 1.19+
ParserFunctions (extended) #switch 1.19+
ParserFunctions (extended) #time 1.19+
Pipe Escape #! 1.23+
QPoll #qpuserchoice Archived
RegexTools #regex Archived
RegexTools #regex_vars Archived
SecureProperties #pg Archived
SecureProperties #ps Archived
SecureProperties #pf Archived
SecureProperties #gg Archived
SecureProperties #gs Archived
Semantic MediaWiki #ask 1.27+
Semantic MediaWiki #concept 1.27+
Semantic MediaWiki #info 1.27+
Semantic MediaWiki #show 1.27+
Semantic MediaWiki #set 1.27+
StringFunctions #len 1.7+
StringFunctions #pos 1.7+
StringFunctions #rpos 1.7+
StringFunctions #sub 1.7+
StringFunctions #pad 1.7+
StringFunctions #replace 1.7+
StringFunctions #explode 1.7+
StringFunctions #urlencode 1.7+
StringFunctions #urldecode 1.7+
TreeAndMenu #tree 1.23+
TreeAndMenu #menu 1.23+
Variables #vardefine 1.29+
Variables #vardefineecho 1.29+
Variables #var 1.29+
Variables #varexists 1.29+
Variables #var_final 1.29+
Wikibase Client #property
Wikibase Client #statements


Zie ook