Parser function (MediaWiki)

De Wicri Manuel

Les parser functions constituent une extension de MediaWiki (ParserFunctions). Elles permettent principalement la génération conditionnelles de pages.

Exemple introductif

Les parser functions se présentent comme des modèles avec des noms réservés comme « #expr: » ou « #if: ».

Plus précisément la fonction « #if: » obéit à la syntaxe suivante :

{{#if: chaîne test | valeur retournée si la chaîne test n'est pas vide | valeur retournée sinon }}

Dans un modèle, la chaîne à tester peut être matérialisée par la présence d'une option d'appel. Par exemple, le texte « {{{lien|}}} » est vide si l'option lien est absente dans la séquence d'appel. Pour rendre actif le lien sur une image en fonction de l'option lien, on pourra écrire :

[[File:monImage {{#if: {{{lien|}}} |{{!}}link={{{lien}}} |}} ]]

Si l'option lien est présente avec comme valeur monLien, ce qui sera généré sera équivalent à :

[[File:monImage|link=monLien]]

Sinon ce qui est généré sera réduit à :

[[File:monImage]]

Dans le commande, l'écriture {{!}} est un appel de modèle qui génère une barre verticale (ici celle qui introduit l'option link).

Quelques fonctions utiles

#ifeq

Cette fonction compare deux chaînes :

{{#ifeq: chaîne 1 | chaîne 2 | valeur générée si égalité | valeur générée sinon }}
Exemple d'emploi 

Sur le wiki Wicri/Lorraine, dans le modèle Header Histoire Univ. Lorraine, on teste l'appartenance d'une page qu groupe « rééditions » pour mettre en valeur le lien.

      <span style="{{#ifeq: {{{groupe|}}}| rééditions |background-color:yellow;}}">
      [[Prototype:Histoire de l'Université de Lorraine (rééditions numériques)|rééditions]]
   </span>

Les parser functions dans le réseau Wicri

Elles sont donc naturellement fortement utilisées dans les modèles. Pour le réseau Wicri elles s'avèrent également très utiles pour une génération conditionnelles de pages exportées sur tous les wikis, comme par exemple les catégories, voir : Interopérabilité des catégories.

Voir aussi