include-pattern-fr
include pattern
Initialement développée en tant que section du resume-brainstorming, il est devenu clair à partir de l'expérience véritable de la syntaxe des microformats avec des sites du vrai monde, que plusieurs microformats (par ex. hResume, hReview, hAtom etc.) avait besoin d'un mécanimse pour inclure une portion de données d'une page dans une autre aire d'une page. Cette page documente ce modèle pour réutilisation dans ces microformats et n'importe quel autre qui aura besoin d'utiliser cette fonctionnalité.
- Auteur
- Tantek Çelik
- Traduction en cours
- Christophe Ducamp
Contexte
Dans le hResume, nous avons eu besoin de la capacité d'inclure le nom extrait de la hCard en haut du CV pour une personne à l'intérieur de ses hCards dans le milieu du CV qui représentait chacun de ses hCards de job (titre du job, nom de l'organisation, adresse, etc.) et de ce fait avons développé la référence hCard via technique objet.
nom de classe "include"
Afin de rendre ça plus explicite (aider vers une compatibilité à venir pour les parseurs), nous ajoutons le nom de classe "include" sur l'élément objet pour indiquer que cet objet fait référence à un sous-arbre qui devrait être inclus dans sa place par les parseurs de microformats.
Proposition 1 : autouriser l'usage de <a href class="include"> comme un mécanimse secondaire include-pattern, du fait que quelques navigateurs gèrent mal l'objet include-pattern. Voir include-pattern-feedback pour les détails.
exemple object include
Voici un exemple d'une hCard que vous pourriez avoir en haut d'une page, montrée ici comme une hCard verbeuse pour les besoins de l'illustration que la référence peut être vers un sous-arbre, pas simplement un noeud texte :
<span class="vcard"> <span class="fn n" id="j"> <span class="given-name">Jean</span> <span class="family-name">Levine</span> </span> </span>
Quelque part ailleurs sur la page, vous pourriez avoir une autre hCard qui réutiliserait ce contenu "fn n" à partir de la première hCard :
<span class="vcard"> <object data="#j" class="include"></object> <span class="org">SimplyHired</span> <span class="title">Microformat Brainstormer</span> </span>
De ce fait un parseur microformat traiterait le code ci-dessus comme suit, avec l'inclusion d'objet remplacée complètement par le sous-arbre qu'il référence :
<span class="vcard"> <span class="fn n" id="j"> <span class="given-name">Jean</span> <span class="family-name">Levine</span> </span> <span class="org">SimplyHired</span> <span class="title">Microformat Brainstormer</span> </span>
Cette méthode de redireton de propriété hCard via un élément objet peut s'appliquer à n'importe quelle/toutes les propriétés dans les microformats basés sur les classes.
Note 1 : l'attribut de donnée objet DOIT être un ID local de référence. Les références externes (qui devraient exiger une application consommatrice à charger une ressource externe) ne sont actuellement pas supportées par cette méthode.
Note 2 : type="text/html"
est utilisé parce que c'est le Content-Type le plus commun des pages web. Sur les pages servies sous "application/xhtml+xml
", utilisez ce Content-Type pour l'attribut type
sur "object includes" sur ces pages.
Note 3 : Pour éviter des bazars disgracieux dans Safari, vous devriez inclure la règle de style suivante dans une feuille de style pour la page :
object.include { width:0; height:0 }
Note 4 : Pour éviter que les boucles infinies class="include" ne puissent pas être enfant-ou-self de l'ID auquelle elles font aussi référence
Reconnaissance
Grâce aux discussions et brainstorms avec paquet de gens : Ryan King, James Levine, l'ensemble de la foule présente à la session de travail sur les specifications Microformats lors du MashupCamp.
Utilisation des Spécifications
Considération
Implémentations
- X2V implémente le include-pattern au moment de parser les hCards et hCalendars.
Références
Normative
- HTML 4.01
- XHTML 1.0
Informative
En rapport
- Introducing HInclude par Mark Nottingham.
- HInclude est une extension de balisage + une librairie javascript pour inclure des fichiers *externes* à l'intérieur d'un document XHTML.