Parserfunctie extensies
Deze pagina is verouderd. |
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...}}
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 | Archived |
DynamicPageList3 | #dpl | 1.39+ |
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
- Help:Magische woorden
- Category:Parser function extensions
- Writing parser functions (software development)
- Extending wiki markup#Parser_functions
- Sample parser function, from SVN
- Parser function extensions with documentation on Meta:
- Extension:Data - requires extra table data_extension in database
- Extension:DynamicFunctions
- Help extension ParserFunctions
- Extension:StringFunctions
- Extension:VariablesExtension
- Extension:Winter - "Wiki Interpreter" - Complete programming language which is very similar to native parser functions.
- Parser functions for Wikibase (the extensions that enables Wikidata): d:Wikidata:How to use data on Wikimedia projects