Jump to content

Extensions des fonctions d'analyse syntaxique

From mediawiki.org
This page is a translated version of the page Parser function extensions and the translation is 100% complete.
Mots magiques

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 également y avoir d'autres paramètres ; comme ceux des modèles ordinaires, ces paramètres supplémentaires sont chacun précédés d'un « pipe » [|]. Dans le cas d'un caractère dièse [#] au début du nom de la fonction (qui empêche les collisions avec les espaces de noms et les préfixes interwiki), celui-ci peut être considéré ou non comme faisant partie du nom. S'il est considéré comme faisant partie du nom, la syntaxe est de 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+
Attachements #attach 1.31+
Attachements #exturl 1.31+
Babel/fr #babel 1.30+
CSS #css 1.25+
Coordinate #coordinate Archived
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 Archived
DynamicPageList3 #dpl 1.39+
ExpandAfter #expandafter (deprecated , see: #tag) Archived
ForeachFunction #foreachx Archived
ForeachFunction #foreachy Archived
HasCategory #ifhascat Archived
HideNamespace #hidens Archived
HideNamespace #unhidens Archived
ImageLink #img (old: #imagelink, deprecated ) Archived
Infobox Data Capture #dataentry Archived
Infobox Data Capture #listsplit Archived
InterWikiLinkManager #iwl Archived
KeyValue #keyvalue Archived
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) Archived
ParserFunctions (extended) #ifexpr (extended) Archived
ParserFunctions (extended) #min Archived
ParserFunctions (extended) #max Archived
ParserFunctions (extended) #if Archived
ParserFunctions (extended) #ifeq Archived
ParserFunctions (extended) #ifexist Archived
ParserFunctions (extended) #rel2abs Archived
ParserFunctions (extended) #switch Archived
ParserFunctions (extended) #time Archived
Pipe Escape #! 1.23+
QPoll #qpuserchoice Archived
RegexTools #regex Archived
RegexTools #regex_vars Archived
Scribunto #invoke
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