hcard-example1-steps-fr

From Microformats Wiki
Jump to navigation Jump to search

hCard Exemple 1 : les Etapes

Ceci est une explication étape par étape du premier exemple de la spécification hCard.

Exemple

Exemple vCard

Voilà un échantillon de vCard :

BEGIN:VCARD
VERSION:3.0
N:Çelik;Tantek
FN:Tantek Çelik
URL:http://tantek.com
ORG:Technorati
END:VCARD

exemple hCard itération 0 : littéral

et un équivalent en hCard littéral :

<div class="vcard">
 <a class="url" href="http://tantek.com/">
  <span class="n" style="display:none"> <!-- cacher ça dans l'affichage avec CSS -->
   <span class="family-name">Çelik</span>
   <span class="given-name">Tantek</span> 
  </span>
  <span class="fn">Tantek Çelik</span>
 </a>
 <div class="org"><span class="organization-name">Technorati</span></div>
</div>

Notez que le type "N", comme défini dans RFC2426, Section 3.1.2, a plusieurs composants, et par conséquent ces composants sont définis en utilisant des éléments imbriqués avec un nom de classe qui est un équivalent direct du composant extrait de la RFC, c'est à dire "given-name" et "family-name".

Tant la vCard et le hCard littéral violent priincipe DRY en dupliquant l'information nom. La version hCard compense cela en cachant une occurence avec CSS.

exemple hCard itération 1 : DRY

Néanmoins, structurellement le même élément XHTML pourrait être réutilisé pour les types "N" et "FN" (parce que plusieurs noms de classes peuvent être placés dans un attribut de classe par un espace les séparant), et de ce fait la duplication de l'information nom elle-même peut être éliminée :

<div class="vcard">
 <a class="url" href="http://tantek.com/">
  <span class="fn n">
   <span class="given-name">Tantek</span> 
   <span class="family-name">Çelik</span>
  </span>
 </a>
 <div class="org"><span class="organization-name">Technorati</span></div>
</div>

De ce fait, même avec cette première itération, nous avons produit une amélioration significative sur la vCard, en évitant la répétition de l'information nom et en se conformant au principe DRY.

Exemple hCard itération 2 : conservation élément

Ceci peut même être encore plus optimisé en plaçant les noms de classe "fn" et "n" sur le <a href>, et en éliminant le span intermédiaire.

<div class="vcard">
 <a class="url fn n" href="http://tantek.com/">
  <span class="given-name">Tantek</span> 
  <span class="family-name">Çelik</span>
 </a>
 <div class="org"><span class="organization-name">Technorati</span></div>
</div>

exemple hCard itération 3 : optimisation tacites

Pour finir, utiliser l'Optimisation implicite "N" et l'Optimisation implicite "organization-name", nous pouvons omettre les prénom et nom de famille explicites tout comme le "n" explicite et "organization-name".

<div class="vcard">
 <a class="url fn" href="http://tantek.com/">
  Tantek Çelik
 </a>
 <div class="org">Technorati</div>
</div>

affichage hCard

L'affichage pour toutes les versions de cettte hCard est le même

Tantek Çelik
Technorati


Retour à la spécification hCard.