Transclusion

From mediawiki.org
This page is a translated version of the page Transclusion and the translation is 100% complete.

La transclusion consiste généralement en l'inclusion par référence, du contenu d'un document dans un autre document. Dans le contexte d'un wiki, il s'agit de l'utilisation de la fonction modèle de MediaWiki pour inclure le même contenu dans de multiples documents sans avoir à éditer chacun de ces documents séparément.

Comment fonctionne la transclusion

Transclusion(wtd-ck).png

Pour transclure n'importe quelle page source (au sein d'un même projet MediaWiki, tel que Wikipédia) à l'intérieur d'une autre page cible, incluez le code suivant : {{SOMEPAGE}}

Lorsque la page cible A est affichée, tout le contenu de la page source B (dans ce cas, SOMEPAGE), sera affiché à l'endroit où la transclusion a été demandée.

Par exemple, vous pouvez décidez de placer un message de bienvenue sur la page de discussion de chaque nouvel inscrit. La transclusion créera un lien « en direct » entre la page du modèle et les pages cible sur lesquelles le message doit apparaitre. Lorsque le modèle sera modifié, toutes les pages cibles seront modifiées également.

Vous pouvez aussi décider de créer une page (de modèle) avec votre adresse courriel et inclure ce modèle pas seulement sur votre page mais également sur toutes les pages de vos amis. Lorsque vous déplacez votre téléviseur et votre canapé dans un autre appartement, vous pouvez modifier le modèle de votre adresse et ces nouvelles informations seront automatiquement mises à jour sur les pages de tous vos amis.

Langage de transclusion et syntaxe

Si la source est dans l'espace de noms des modèles (par exemple "Template:Welcome"), utilisez simplement le nom du modèle tout seul : {{Welcome}}

Si la source est dans l'espace de noms principal (par exemple "VisualEditor"), vous devez placer le symbole « deux points » devant le nom : {{:VisualEditor}}

Si la source est dans tout autre espace de noms (par exemple "User:Example"), vous devez utiliser le nom complet incluant l'espace de noms : {{User:Example}}

Si la source est une sous-page de la page cible, (comme « Transclusion/ja »), vous pouvez spécifier simplement le nom de la sous-page sans l'espace de noms : {{/ja}}

Étymologie

Ted Nelson inventa le terme "transclusion", ainsi qu'"hypertexte" et "hypermedia" dans son livre de 1982 Literary Machines.

Transclusion partielle

En utilisant les balises « noinclude », « onlyinclude » et «  includeonly », il est possible de ne transclure qu'une partie d'une page au lieu de son ensemble. De telles transclusions partielles peuvent aussi être mises en œuvre à partir d'autres pages sources telles les sous-pages. Il est généralement préférable de ne pas transclure certaines informations, telles que la documentation du modèle et les catégories.

Exemples d'utilisation de transclusion partielle de version complète

Utilisez la transclusion complète lorsque vous voulez inclure le contenu entier d'une page source dans une page cible. Par exemple, vous pouvez inclure le contenu entier d'une page à propos des pommes dans une page qui parle des fruits poussant sur des arbres. Utilisez la transclusion partielle lorsque vous voulez inclure une partie d'une page source dans la page cible. Par exemple, vous pouvez inclure l'information à propos des pommes Granny Smith à partir d'une page qui parle des pommes, dans une page relative aux ingrédients utilisés communément en pâtisserie.

Balises partielles de transclusion

  • noinclude - Le marquage ‎<noinclude>...‎</noinclude> signifie que le texte entre les balises n'est visible exclusivement que sur la page source et ne peut pas être transclus dans une autre page. Ceci est utile pour la documentation des modèles et les catégories.
  • includeonly - Le marquage ‎<includeonly>...‎</includeonly> signifie que le texte entre les balises sera masqué sur la page source mais sera visible uniquement lorsqu'il sera transclus dans une autre page. Cela peut être utile, par exemple, pour ajouter des catégories aux pages en faisant la transclusion d'un modèle, sans que ce modèle ne soit ajouté à ces catégories.
  • onlyinclude - Le marquage ‎<onlyinclude>...‎</onlyinclude> signifie que le texte entouré par les balises sera visible sur la page source et également quand il sera transclus dans une autre page. Ceci est la plus subtile des balises de transclusion partielle car elle remplace souvent les autres. S'il existe au moins une paire de balises onlyinclude dans une page, alors quelque soit l'endroit où cette dernière est transcluse, c'est ce qui se trouve uniquement entre les balises onlyinclude qui sera transclus. Il peut y avoir plusieurs sections onlyinclude sur une même page. Ceci peut être utile par exemple pour répéter une petite partie de page dans une autre : il suffit d'entourer la petite partie avec des balises onlyinclude et de la transclure dans la seconde page.
‎<noinclude>, ‎<includeonly>, et ‎<onlyinclude> se comportent différemment à l'intérieur des balises ‎<nowiki>. Les balises nowiki permettent l'échappement du balisage spécial, et sont actives pour les balises ‎<noinclude> et ‎<includeonly>. Mais les balises ‎<onlyinclude> à l'intérieur des balises ‎<nowiki> ne reproduisent que le contenu à l'intérieur de la balise ‎<onlyinclude>.
Balisage Sortie quand transclus
<nowiki><noinclude> My content </noinclude></nowiki> <noinclude> My content </noinclude>
<nowiki><includeonly> My content </includeonly></nowiki> <includeonly> My content </includeonly>
<nowiki><onlyinclude>My content</onlyinclude></nowiki> My content

Vous pouvez imbriquer entre-eux les trois types de transclusions, ce qui vous permet d'affiner extactement le contenu à afficher sur la page courante et visible sur les pages transcluses.

Sous-pages

Vous pouvez copier et coller le texte à transclure dans une sous-page, et utiliser le nom de la sous-page dans le modèle de transclusion. Cette approche peut être utilisée seulement si les sous-pages sont activées; par exemple, sur la Wikipedia en anglais, les sous-pages peuvent être utilisées seulement à partir des pages utilisateur, discussion ou des pages Wikipedia; actuellement, les sous-pages ne peuvent pas être créées à partir des pages principales d'articles.

Exemple: vous voulez discuter de la supression et de la redirection de Pussycat vers Cat. D'abord, créez la sous-page Talk:Pussycat/Let's delete Pussycat!, et mettez-y vos commentaires, ensuite faites la transclusion de cette page dans Talk:Pussycat et Talk:Cat en utilisant le modèle {{Talk:Pussycat/Let's delete Pussycat!}}. Les commentaires postés sur l'une ou l'autre des pages de discussion apparaîtront dans les deux.

Pages spéciales

Voir aussi : w:Wikipedia:Transclusion#Special pages et Manual:$wgAllowSpecialInclusion

Certaines pages sur Special:Specialpages peuvent être transcluses, comme Special:AllPages, Special:PrefixIndex, Special:NewFiles, Special:NewPages, Special:RecentChanges et Special:RecentChangesLinked.

Exemple: {{Special:Newpages/3}} donne 3 nouvelles pages.

Les paramètres d'URL peuvent être passés comme des paramètres de modèle, par exemple : {{Special:RecentChanges|namespace=10|limit=5}}.

Alternatives à la transclusion de modèles

Occasionnellement, vous pourriez vouloir utiliser un modèle, mais pour une raison ou pour une autre, sans passer par une transclusion. La copie automatique en une passe du code/texte d'un modèle vers la destination d'une balise de modèle est appelée substitution de modèle ou subclusion (substitution + transclusion). Pour subclure le code/texte d'un modèle, la balise du modèle est modifiée à partir de la balise standard de transclusion en une balise de substitution, simplement en ajoutant subst:, ce qui crée une balise de la forme: {{subst:nom du modèle}}.

Sections de transclusion nommées

Une extension appelée Transclusion de sections avec étiquettes permet la transclusion de sections de texte marquées. Une extension avec une fonction quelque peu similaire est l'extension Extension:PageVariable (non maintenue).

Scribunto

You can transclude page content, or even parts of it, using Lua with the Scribunto extension. See Module:Transcluder for an example on this wiki.

Semantic MediaWiki

L'extension Semantic MediaWiki utilise les requêtes en ligne pour demander et afficher les données sémantiques. Il existe actuellement deux manières de réaliser la transclusion ou quelque chose qui s'y rapporte :

  1. La transclusion proprement dite. Le format d'affichage « en ligne » assure que les pages sélectionnées (les articles de l'espace principal, les modèles, etc.) sont transcluses. Comme pour les modèles, les sections placées entre les balises noinclude sont omises.
  2. Une propriété de type 'Text' peut être assignée aux passages sélectionnés d'une page. Ces sélections peuvent être demandées en exécutant une requête en ligne pour ce type de propriété.

Voir les requêtes en ligne pour d'autres informations.

Pages relatives à la transclusion de MediaWiki

Modèles

Voir aussi