Transclusion

Un article de Wikipédia, l'encyclopédie libre.
B est transclus dans le document A.

En informatique, la transclusion est l'inclusion par référence d'un document ou une partie d'un document dans un autre document.

La transclusion est exécutée sur demande quand est ouvert un document faisant référence à un autre et est normalement automatique et transparente à l'utilisateur. Le résultat semble être un seul document intégré bien que ses parties aient été assemblées en utilisant plusieurs documents séparés provenant d'ordinateurs différents situés en des lieux différents.

Le terme a été inventé en 1963 par Ted Nelson, un pionnier de l'Hypertexte.

Considérations techniques[modifier | modifier le code]

Neutralité de contexte[modifier | modifier le code]

La transclusion est plus efficace lorsque les sections de texte sont indépendantes, pour que la signification et la validité du texte soient indépendants du contexte dans lequel il apparaît. Par exemple, des formulations telles que « comme expliqué dans la section précédente » sont problématiques, parce que la section de texte d'une transclusion peut apparaître dans un contexte différent, causant la confusion. Ce qui constitue du texte « contextuellement neutre » peut varier, mais inclut souvent des boilerplate (en).

Paramétrisation[modifier | modifier le code]

Dans certaines circonstances et dans quelques contextes techniques, les sections de texte d'une transclusion peuvent ne pas exiger l'adhésion stricte au principe de « neutralité de contexte », dans ce cas il est possible de paramétrer la transclusion. Le paramétrage implique la possibilité de modifier certaines parties ou les subdivisions du texte d'une transclusion selon des variables qui peuvent être changées indépendamment du contexte. Ceci est habituellement fait en utilisant un texte contenant une ou plusieurs marques substitutives. Ces marques substitutives sont alors remplacées par la valeurs des variables correspondantes avant le rendu final.

Histoire et mise en œuvre par le Projet Xanadu[modifier | modifier le code]

Ted Nelson a inventé le terme transclusion dans son livre de 1982, Literary Machines (en). Le concept de transclusion faisait déjà partie de sa description de l'Hypertexte[1].

Le système hypertexte Projet Xanadu développé par Ted Nelson utilise le concept de transclusion.

Mise en œuvre sur le Web[modifier | modifier le code]

Le protocole de transmission HTTP a des fonctionnalités rudimentaires pour la transclusion via le service d'octet (spécifiant un byte range (en) dans la requête HTTP).

La transclusion peut arriver avant (côté serveur) ou après (côté client) la transmission. Par exemple :

  • Un document HTML peut être pré-composé par le serveur avant la livraison au client, en utilisant les inclusions (ou une application) du côté serveur.
  • L'analyse syntaxique des Entités XML ou des Objets HTML peut être faite par le client, en demandant les ressources correspondantes séparément du document principal.
  • Un navigateur Web peut mettre en cache les éléments en utilisant ses propres algorithmes, qui peuvent opérer sans directives explicites dans le balisage du document.
  • AngularJS emploie la transclusion pour l'opération directives emboîtées[2].

Côté client[modifier | modifier le code]

HTML définit les éléments du côté client (Client side) pour la transclusion des images, du code HTML, des feuilles de style, du Framing (en) et des autres types de médias.

Avec des techniques comme Ajax, le code associé à un document HTML peut charger un navigateur Web de modifier le document.

Les serveurs proxy peuvent employer la transclusion pour réduire les transmissions superflues de ressources couramment demandées.

Côté serveur[modifier | modifier le code]

La transclusion peut être accomplie côté serveur, avec les Server Side Includes et les références d'Entité de caractère. C'est une caractéristique de la substitution de modèle Web (en).

Dans le code source[modifier | modifier le code]

La transclusion du code source dans la conception de logiciel et la référence, permettent au code source d'être présenté dans un document, sans être interprété dans le cadre du document, préservant la cohérence sémantique du code inséré par rapport à sa source.

Voir aussi[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. Theodor H. Nelson, A File Structure for the Complex, the Changing and the Indeterminate. Proceedings of the ACM 20th National Conference (1965), p. 84-100
  2. « A Practical Guide to AngularJS Directives » (consulté le )

Autres sources[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Sur les autres projets Wikimedia :

Source de la traduction[modifier | modifier le code]