Aide:Modèle

Une page de Wikiversité, la communauté pédagogique libre.
Un contributeur a remis en cause la pertinence des enseignements ou exercices présentés sur cette page. Soit le niveau pédagogique n’est pas adapté au niveau défini dans le sommaire de la leçon, soit la page utilise des connaissances (prérequis) que l'élève ou l'étudiant n’est pas censé avoir, soit la page donne des enseignements non conformes aux objectifs fixés par le créateur de la leçon. Une réécriture ou recyclage de la page par un connaisseur du domaine est demandé. Tant que ce bandeau sera présent, veuillez nous excuser si le contenu de cette page n’est pas conforme à vos attentes. Vous pouvez contester cette opinion sur la page de discussion.

Un modèle peut servir à :

  • insérer un message standard, exemple : le message indiquant qu'une page est proposée à la suppression Modèle:ébauche
  • insérer un tableau commun à plusieurs pages d’un même domaine. Exemple : la liste des contenus d’un cours : Modèle:Chapitre. Ce modèle est paramétrable, c'est-à-dire qu’il y a un fond de tableau commun et des variables dont le contenu change dans chaque page.
  • etc.

Dans tous les cas le modèle est inséré dans une page en y ajoutant, à l'emplacement adéquat, le libellé {{Nom du modèle}}

Note : la notion de modèle de Wikiversité est différente de celle utilisée dans les logiciels de traitement de texte.

Les modèles sont gérés dans un espace de noms. Une page spéciale en donne ainsi une liste alphabétique. Voyez la liste des modèles principaux utilisés dans Wikiversité.

Les modèles sont des pages comme les autres et donc accessibles à l'édition par tous les contributeurs. Il faut toutefois les modifier avec prudence car le résultat apparaît sur de nombreuses pages. Lorsque la page correspondant au modèle est affichée, on peut cliquer sur l'hyperlien Pages liées du menu de gauche pour consulter les pages utilisant le modèle et vérifier, avant modification, que ces pages ne seront pas perturbées.

Pour inclure un modèle il faut utiliser la syntaxe suivante (la première lettre du nom du modèle n’est pas sensible à la casse) :

  • {{Nom du modèle}} pour que le modèle soit inclus à chaque chargement d’une page l'utilisant. Ainsi, dès que le modèle est modifié, la modification devient visible dans toutes les pages utilisant le modèle.
  • {{subst:Nom du modèle}} pour que le modèle soit copié une fois pour toute dans la page l'utilisant. Dans ce cas-ci, une modification du modèle n'a aucune incidence sur la page.

Ainsi, un modèle bref et temporaire destiné à être rapidement supprimé devrait être copié avec subst:, dont l'avantage est qu'il apparaît directement dans la source de la page. Une notice normale destinée à rester sur une page pour une longue durée ou bien à jamais devrait être incluse au moyen de {{Nom du modèle}}, de manière à ce que les mises à jour éventuelles soient plus aisées. Un modèle contenant un lien temporaire ou susceptible de changer ne devrait cependant pas être ajouté par {{Nom du modèle}}. Cette méthode, en effet, ne met pas à jour le lien Pages liées à moins que chaque page contenant le {{Nom du modèle}} soit effectivement modifiée après la modification du lien dans le modèle en question.

  • Il est possible d'inclure du texte provenant d’autres espaces de nom ; comme par exemple {{Wikiversité:Modifications récentes}}.
  • Tous les caractères sont acceptés, y compris les espaces.
  • Tout changement d’un modèle efface automatiquement le cache de toutes les pages utilisant ce modèle.
  • Les modèles peuvent prendre des arguments, référencés par position ou par nom (voir l'exemple plus élaboré ci-dessous). La syntaxe est la suivante: {{chose|paramètre=valeur}} avec des balises {{{paramètre}}} dans le modèle, ou bien {{brol|valeur1|valeur2}} avec {{{1}}}, {{{2}}}, etc. Notez que les balises de paramètres dans le modèle demandent trois accolades et non deux.
  • Un modèle peut inclure un ou plusieurs autres modèles,
  • Un modèle ne peut pas être lui-même paramètre d’un autre modèle.
  • Les redirections entre modèles fonctionnent.

Dans un modèle, pour faire un lien vers une page qui dépend d’un paramètre d’un modèle, les liens de type externe sont souvent utilisés même pour des liens internes afin d’éviter qu'on aboutisse sur la page en mode d'édition même si cette page existe.

Création d'un modèle[modifier | modifier le wikicode]

La méthode est identique à celle de la création d’une page quelconque. Le plus simple est d'insérer un appel au modèle dans une page, puis de cliquer sur le lien (qui apparaîtra en rouge).

Trucs et astuces[modifier | modifier le wikicode]

Si le modèle contient un lien inter-langue, alors ce lien est inclus dans toutes les pages utilisant le modèle, ce qui n'est généralement pas le résultat voulu. Si deux liens inter-langue vers une même autre langue se trouvent dans une page, le résultat est imprévisible. On évitera ces conflits en utilisant les balises d’inclusion sélective.

Les noms de modèles utilisant des mots abrégés ou collés sont difficiles à retenir car aucune convention ne s'est imposée. Il n'y a pas de raison technique pour ne pas s’inspirer des conventions sur les titres aussi pour les noms de modèle.

Si le modèle appartient à une catégorie, c'est-à-dire que la page du modèle contient un libellé de la forme [[Catégorie:Nom d’une catégorie]], et si l’on ne fait pas simultanément usage de la balise d'inclusion sélective <noinclude>, toutes les pages contenant le modèle appartiendront à cette catégorie. On peut utiliser cette astuce, par exemple, pour obtenir la liste de toutes les pages ébauche d’un domaine donné.

Demander la fabrication d’un nouveau modèle[modifier | modifier le wikicode]

  • Si vous avez besoin de l'aide d’utilisateurs expérimentés pour fabriquer un nouveau modèle, vous pouvez le demander sur la salle café.

Documentation d’un modèle[modifier | modifier le wikicode]

Où documenter un modèle ?[modifier | modifier le wikicode]

La documentation d’un modèle de fait dans sa sous-page /Documentation.

Documenter un modèle dans la sous-page /Documentation[modifier | modifier le wikicode]

Cette procédure devra aussi être suivie par les administrateurs avant de bloquer un modèle très utilisé contre les modifications. Cela permet de pouvoir encore changer les catégories, ou d'améliorer sa documentation, et d'insérer les interwikis dans la sous-page.
Comment documenter dans la sous-page du modèle ?
Copiez, collez et adaptez le code ci-dessous, directement sous la source du modèle
<noinclude>{{Documentation}}</noinclude>
Puis cliquez sur « Créer » pour éditer la page. La documentation demeure globalement semblable (mais attention à l'usage différent des balises « noinclude » et il faut reporter le nom du modèle). Pour un modèle simple :
== Utilisation ==
Indiquez quand utiliser ce modèle.

== Syntaxe ==
<code><nowiki>{{<!-- nom du modèle -->|1|2|etc.}}</nowiki></code>
* <code>'''1'''=''valeur1''</code> ''(obligatoire)'' : description1.
* <code>'''2'''=''valeur2''</code> ''(facultatif)'' : description2 (''défaut2'' par défaut).
* etc.

== Exemple ==
« <code><nowiki><{{<!-- nom du modèle -->|<!-- à compléter -->}}</nowiki></code> » donne
« {{<!-- nom du modèle -->|<!-- à compléter à l'identique -->}} »<!--pour un modèle simple (sur un ligne) -->

== Variantes ==
* <nowiki>{{M|<!--nom de modèle connexe-->}}</nowiki>

== Voir aussi  ==
* [[Pages à voir]]

<includeonly>
[[Catégorie:Nom de la catégorie du modèle|]]

[[de:Template:Nom du modèle germanophone équivalent]]
[[en:Template:Nom du modèle anglophone équivalent]]
[[es:Template:Nom du modèle hispanophone équivalent]]
[[it:Template:Nom du modèle italophone équivalent]]
</includeonly>


Dans notre exemple, rendez vous sur la page Modèle:En cours pour le modifier, autrement, remplacer le « En cours » par le nom de la palette souhaitée.

Modèles à paramètres[modifier | modifier le wikicode]

Un modèle peut être écrit afin d'accepter des paramètres. Cela permet de créer, par exemple, des tableaux pré-formatés dont seules certaines valeurs changent selon la page invoquant le modèle.

(pour plus de détail voir Infobox

Par exemple, le modèle Modèle:Planète mineure se lit en partie :

{| align="right" rules="all" cellpadding="4" cellspacing="0" style="margin: 0 0 1em 1em; border: 1px solid #999; border-right-width: 2px; border-bottom-width: 2px; background-color: #CEDAF2"
| style="background: #003399" align="center" width="100%" |<span style="color:white size=4">'''{{{nom}}}'''
| padding=15px|
|}
|-
! bgcolor="#6295DA" colspan="2" align="center" | Découverte
|-
| Qui || {{{découvreur}}}
|-
| Quand || {{{date_découverte}}}
|-
| [[Désignation des astéroïdes|Désignation(s) provisoire(s)]] || {{{désignations}}}
|-
| [[Température]] de surface || {{{température}}}
|}

Le contenu de ce modèle est un tableau formaté, spécifiant couleurs, alignement, etc. Les parties apparaissant entre triple accolades sont les paramètres qui seront utilisés par la page invoquant le modèle. On voit ci-dessus (en gras) les paramètres nom, découvreur, date_découverte, désignations et température.

Sur la page 14 Irène, on trouve, en partie :

{{Planète mineure | nom=14 Irène (14 Irene)
| découvreur=[[John Russell Hind]]
| date_découverte=[[19 mai]] [[1851]]
| désignations=A906 QC; A913 EA;<br />1952 TM
| catégorisation=[[ceinture d'astéroïdes]]
| orbite=386,730 [[gigamètre|Gm]] (2,585 [[unité astronomique|ua]])
| dimensions=181,8 km <sup>[http://spiff.rit.edu/richmond/parallax/phot/LCSUMPUB.TXT 1]</sup>
| température=~234 [[kelvin|K]]}}

Afin d'améliorer la lisibilité lors de l'édition, des retours à la ligne peuvent apparaître dans le modèle, à la façon des tableaux. Idéalement, comme on le constate ci-haut, il peut y avoir un retour à la ligne avant chaque "|" sauf le premier. Les valeurs des paramètres sont spécifiées en écrivant paramètre=valeur. Il ne doit pas y avoir de retour à la ligne dans la valeur, mais <br /> est permis. La valeur peut inclure un lien extérieur (par exemple, le paramètre dimensions) ou intérieur (par exemple, orbite). On remarquera que la syntaxe habituelle des liens wiki est possible (c'est-à-dire [[page visée|texte qui apparaîtra]]).

Valeur par défaut d’un paramètre[modifier | modifier le wikicode]

Lors de l'appel du modèle, les paramètres qui ne sont pas définis sont remplacés par leur nom "tel quel". Exemple: {{{3}}}.

Chaque remplacement peut aussi prendre une valeur prédéfinie par l'utilisateur, comme ceci: {{{3|123}}} (s'il n'y a pas de 3e paramètre, on utilise 123 à la place). Ou comme cela: {{{paramètre|123}}} (la même chose avec un paramètre nommé).

Il est possible de ne rien écrire par défaut: {{{3|}}} (en n'écrivant rien après la barre verticale, pas même un espace).

Voir aussi: les fonctions conditionnelles.

Modèles spéciaux[modifier | modifier le wikicode]

Consulter cette page.

Les balises d’inclusion sélective[modifier | modifier le wikicode]

Balisage <noinclude>…</noinclude>[modifier | modifier le wikicode]

  • Note : cette balise est recommandée dans les modèles

Il est parfois utile de placer certains éléments dans le code source du modèle (par exemple les liens interlangues) sans que ces éléments n'apparaissent sur la page où le modèle est inséré. Pour ce faire, on place les éléments à exclure de l'insertion entre les balises <noinclude> et </noinclude>.

Il est recommandé de laisser au moins un saut de ligne ou espace entre le dernier signe "=" d'une ligne de titre et une balise <includeonly>…</includeonly>.

Il est également recommandé, lorsqu'on place une séquence <noinclude>…</noinclude>, de ne faire précéder ou suivre la séquence entière d'aucun saut de ligne ou espace supplémentaire car ils seraient conservés à l'inclusion du modèle (au contraire du contenu de la séquence qui sera ignoré) et pourraient nuire à la présentation de son contenu. Par contre on peut mettre des blancs et sauts de lignes à volonté à l'intérieur (et c'est recommandé pour y placer des catégories ou des liens interwikis, chacun sur une ligne séparée). Par exemple, un Modèle:Exemple contenant normalement

''(contenu ''{{{1|}}}'' à compléter…)''

et qui affiche ceci dans la page qui l'inclut :

(contenu à compléter…)

peut être complété d'une catégorie et d'un lien interwiki destinés à sa propre classification, mais non destinés aux pages qui incluent ce modèle :

''(contenu ''{{{1|}}}'' à compléter…)''<noinclude>

[[Catégorie:Modèle:Racine]]
[[Catégorie:Exemple]]

[[en:Template:Sample]]
</noinclude>

Notez ci-dessus l'absence de tout saut de ligne entre le contenu et le début de la section noinclude. Pour catégoriser les modèles ou leur ajouter des liens interwikis, il est vivement recommandé de le faire au sein d'une section noinclude placée à la fin du modèle comme ci-dessus.

  • Lorsque le modèle est affiché sur sa propre page, les catégories et liens interwikis apparaîtront, exactement comme si les deux balises <noinclude> et </noinclude> étaient absentes du code ci-dessus, mais leur contenu conservé (y compris les sauts de lignes et espaces à l'intérieur)
  • Lorsque le modèle est inclus dans une page par le code {{Exemple}}, cette dernière séquence d'appel sera remplacée exactement comme le premier exemple de code montré ci-dessus (mais sans le dernier saut de ligne présent naturellement en fin de tout modèle et qui est toujours ignoré lors de l'inclusion de n'importe quel modèle).

Ce modèle peut aussi être mis en forme et commenté sur sa propre page de description, sans que cela apparaisse dans les pages qui l'incluent ; par exemple :

''(contenu ''{{{1|}}}'' à compléter…)''<noinclude>
{{Documentation}}
;Utilisation : Ce modèle n'est qu'un exemple à compléter. Aucun paramètre obligatoire n'est ici nécessaire pour utiliser ce modèle dans une page.

; Syntaxe : <code>{{Exemple|1}}</code>
:* <code>1</code> : permet d’ajouter du texte au milieu du contenu affiché par ce modèle (facultatif, vierge par défaut).

; Exemple : « <code>{{Exemple|de cette section}}</code> » donne <!--
-->« ''(contenu ''de cette section'' à compléter…)'' »

; Voir aussi :
:* [[Aide:Modèle]]

[[Catégorie:Modèle:Racine]]
[[Catégorie:Exemple]]

[[en:Template:Sample]]
</noinclude>

Notez ci-dessus comment le code de documentation du modèle intercale le contenu réel du modèle. Ainsi complété, le modèle affichera la page suivante :

Modèle:Exemple

(contenu à compléter…)

Documentation
Utilisation
Ce modèle n'est qu'un exemple à compléter. Aucun paramètre obligatoire n'est ici nécessaire pour utiliser ce modèle dans une page.
Syntaxe
{{Exemple|1}}
  • 1 : permet d'ajouter du texte au milieu du contenu affiché par ce modèle (facultatif, vierge par défaut).
Exemple
« {{Exemple|de cette section}} » donne « (contenu de cette section à compléter…) »
Voir aussi
Autres langues
English

Balisage <includeonly>…</includeonly>[modifier | modifier le wikicode]

  • Cette balise est non recommandée dans les modèles

Inversement, les éléments qu'on veut voir apparaître en insertion, mais qu'on veut voir disparaître lors de la visualisation du modèle seul sont placés entre les balises <includeonly> et </includeonly>.

Notez que le placement d'un titre dans une section "includeonly" peut désorganiser la numérotation du sommaire et des liens "modifier" qui apparaissent à droite des titres.

Par exemple, il peut être parfois nécessaire de montrer plusieurs exemples du modèle lui-même, en fournissant des paramètres. Dans ce cas, le code du modèle sera préférablement placé en tête mais caché dans la page de description. Par exemple :

<includeonly>''(contenu ''{{{1|}}'' à compléter…)''</includeonly><noinclude>
{{Documentation modèle}}
;Utilisation : Ce modèle n'est qu'un exemple à compléter. Aucun paramètre obligatoire n'est ici nécessaire pour utiliser ce modèle dans une page.

; Syntaxe : <code>{{Exemple|1}}</code>
:* <code>1</code> : permet d'ajouter du texte au milieu du contenu affiché par ce modèle (facultatif, vierge par défaut).

; Exemple : « <code>{{Exemple|de cette section}}</code> » donne <!--
-->« ''(contenu ''de cette section'' à compléter…)'' »

; Voir aussi :
:* [[Aide:Modèle]]

[[Catégorie:Modèle:Racine]]
[[Catégorie:Exemple]]

[[en:Template:Sample]]
</noinclude>

Notez ci-dessus la récursion du modèle : il est possible que lors de la modification d'un modèle déjà existant, il faille le sauvegarder deux fois pour que l'auto-inclusion dans sa page de description prenne en compte le nouveau contenu du modèle. Notez également comment sont disposés les balises </includeonly><noinclude>, sans aucun saut de ligne intermédiaire qui tomberait en surplus et qui risquerait d'interrompre par exemple la liste à numérotation automatique montrée dans l'exemple ci-dessus et dans laquelle le modèle est inséré, ou qui pourrait créer une rupture de paragraphe indésirable dans les pages qui incluent le modèle, ou des sauts blancs verticaux en excédent.

L'utilisation du balisage <includeonly></includeonly> doit donc rester exceptionnel et doit être utilisé avec précaution.

Balise d'inclusion sélective et substitution[modifier | modifier le wikicode]

Lors d'une insertion par substitution (avec la syntaxe spéciale {{subst:modèle}} utilisée uniquement lors de l'édition du code wiki d'une page ou d'un autre modèle) les balises <noinclude>…</noinclude> ainsi que le texte qu'elles encadrent ne sont pas reproduites.

Modèles utilisateur[modifier | modifier le wikicode]

Afin de créer un modèle non encyclopédique (par ex. destiné à être appelé par une page utilisateur) ou pour faire des tests, nul n'est besoin de « polluer » l'espace des modèles. Cela peut se faire sur une sous-page utilisateur.

Par exemple, si Utilisateur:Quidam veut tester un modèle appelé « Chapitre fastidieux », il procède comme suit :

  • il crée une sous-page utilisateur Utilisateur:Quidam/Chapitre fastidieux dans laquelle il écrit le modèle :
<div style="border:1px solid black;background:rgb(80%,100%,80%);text-align:center;padding=0.4ex;">
''Ceci est un chapitre fastidieux. Le taux d'ennui est estimé à {{{ennui}}} %.''
</div>
  • il l'utilise ensuite dans ses pages et sous-pages personnelles en tapant :
{{Utilisateur:Quidam/Chapitre fastidieux|ennui=55}}

ce qui donne :

Ceci est un chapitre fastidieux. Le taux d'ennui est estimé à 55 %.

D'une façon générale, la syntaxe (entre doubles accolades) d'appel d'un modèle :

{{espace de nommage:nom du chapitre|paramètre1=valeur1}}

reconnaît la présence de l'espace de nommage:, qui ne prend la valeur par défaut Modèle: que quand l'espace de nommage n'est pas indiqué explicitement. De même, les paramètres peuvent être nommés explicitement, ou implicitement par leur rang d'apparition dans l'appel du modèle.

Problèmes fréquents sur les pages contenant des modèles[modifier | modifier le wikicode]

Rafraîchissement : Pour rafraîchir une page qui est restée inchangée, alors que les modèles qu'elle contient ont été modifiés, créer un lien du type :

[http://fr.wikiversity.org/w/index.php?title=nom de la page&action=purge rafraîchir la page] et cliquer dessus, ou utiliser {{purger le cache}}.

Mise à jour des tables : Quand une page contient une autre page, et que cette dernière est modifiée, la page principale est mise à jour mais pas la table des liens, ni les catégories. Même un &action=purge n'y change rien. Il y a deux moyens pour forcer la mise à jour des liens et des catégories :

  1. Si c’est un problème ponctuel, faire une modification vide sur la page (cliquer sur modifier puis sur sauvegarder sans rien changer : rien n'apparaît dans l’historique mais la table des liens est mise à jour)
  2. Si c’est un problème récurrent, ou si de nombreuses pages sont concernées : demander à un robot de passer régulièrement sur la page concernée en utilisant le script
    touch.py​
    
    . Déposez votre requête sur Wikiversité:Requêtes aux bots.

Les développeurs ont été mis au courant de tous ces problèmes sur la page Bugzilla no 939.