Extensions des fonctions d'analyse syntaxique

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

Une "fonction d'analyseur syntaxique" est un simili-modèle qui retourne une valeur selon au moins un paramètre anonyme séparé de la fonction par un caractère [:]. Il peut aussi y avoir d'autres paramètres. Comme pour les modèles ordinaires, ces paramètres additionnels sont précédés chacun d'un "pipe" [|]. Dans le cas d'un caractère hash au début du nom de la fonction (ce qui permet d'éviter les collisions avec les espaces de nommage et les préfixes interwikis), celui-ci peut, ou non, être considéré comme faisant partie du nom. S'il est considéré comme partie du nom, la syntaxe est selon la forme

{{functionname: argument 1 | argument 2 | argument 3...}}
Si l'appel de fonction n'a pas d'argument à passer à la fonction d'analyseur, la forme est simplement {{functionname:}} ou, lorsque le caractère hash est requis (ce qui est l'usage), la forme est {{#functionname:}}. Si les deux points ne sont pas présents, alors functionname ne sera pas reconnue par l'analyseur syntaxique.

Les arguments ne peuvent contenir ni "|" ni "}}", sauf comme partie de code d'un appel de modèle, d'une fonction d'analyseur, d'une variable, d'un lien, d'une image, mais ils peuvent les contenir de façon arbitraire en usant d'un modèle, p. ex. : m:Template:!, ou d'une fonction d'analyseur.

Le code peut préciser si le nom de la fonction est sensible à la casse.

Le séparateur entre les arguments est le caractère "|"; et entre le nom de la fonction et le premier argument : ":" . L'expansion de ceux-ci est standard, comme dans Special:ExpandTemplates (qui est, de fait, un bon endroit pour expérimenter ce sujet en phase d'apprentissage) et est hors du contrôle de la fonction d'analyse elle-même.

Tout le reste, par ailleurs, est propre à chaque fonction d'analyseur, à savoir :

  • si un argument est seulement une valeur, ou de la forme nomarg = valarg, ou autre,
  • le cas échéant, si les noms de paramètres sont sensibles à la casse.

Syntaxe requise pour une extension de fonction d'analyseur

Comme exposé ci-dessus, il est préférable de faire en sorte que la syntaxe utilisée dans un argument ne contienne pas le caractère pipe "|" ni deux parenthèses (plus précisément : deux parenthèses fermantes "}}"). Ceci, malgré le fait que le caractère pipe semblerait un symbole pratique notamment pour un choix ou une union (voir p. ex. [1]) Autoriser de tels codes est sans risque si un code alternatif est aussi autorisé, p. ex. "\" pour "|".

Table des fonctions

Extension Fonction Version de MediaWiki
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/fr #attach 1.31+
Attachments/fr #exturl 1.31+
Babel/fr #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 (module tiers) #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/fr #lst 1.25+
Labeled Section Transclusion/fr #lstx 1.25+
Labeled Section Transclusion/fr #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 #geocode 1.27+
Maps #display_map 1.27+
Maps #display_point 1.27+
Maps #coordinates 1.27+
Maps #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+
Client Wikibase #property
Client Wikibase #statements


Voir aussi