hcard-fr: Difference between revisions
m (→Buttons) |
m (sync'd) |
||
Line 1: | Line 1: | ||
<h1>hCard</h1> | <h1>hCard</h1> | ||
hCard est un format simple, ouvert | hCard est un format simple, ouvert et distribué pour représenter les personnes, sociétés, organisations et lieux, en utilisant une représentation 1:1 des propriétés de la vCard ([http://www.ietf.org/rfc/rfc2426.txt RFC2426]) et des valeurs en [[semantic-xhtml-fr|XHTML sémantique]]. hCard est l'un des nombreux [[microformats-fr|microformats]] standards ouverts adaptés pour l'embarquement dans (X)HTML, Atom, RSS et le XML arbitraire. | ||
Vous voulez démarrer dès à présent par écrire une [[hcard-fr|hCard]] ? | Vous voulez démarrer dès à présent par écrire une [[hcard-fr|hCard]] ? | ||
Line 7: | Line 7: | ||
__TOC__ | __TOC__ | ||
== Spécification == | == Spécification == | ||
; Editeur: [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc.] | |||
; Auteurs: [http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc], [http://suda.co.uk/ Brian Suda] | |||
[http://tantek.com/ Tantek Çelik], [http://technorati.com Technorati, Inc.] | |||
Remerciements : Voir [[hcard-gt#Inspiration et Remerciements|Remerciements]]. | |||
Les déclarations de [[hcard-fr#Copyright|copyright]] et de [[hcard#brevets|brevets]] s'appliquent. | |||
(traduction en cours [[Christophe Ducamp]]) | |||
== Introduction == | == Introduction == | ||
Line 36: | Line 23: | ||
En outre, beaucoup de blogueurs s'identifient eux-mêmes par un nom et discutent avec leurs amis et familles. Avec juste un peu de structure, les blogueurs peuvent discuter avec des personnes dans leurs blogs d'une telle façon que les spiders et autres agrégateurs peuvent retrouver cette information, la convertir automatiquement en vCards et l'utiliser dans n'importe quelle application ou service vCard. | En outre, beaucoup de blogueurs s'identifient eux-mêmes par un nom et discutent avec leurs amis et familles. Avec juste un peu de structure, les blogueurs peuvent discuter avec des personnes dans leurs blogs d'une telle façon que les spiders et autres agrégateurs peuvent retrouver cette information, la convertir automatiquement en vCards et l'utiliser dans n'importe quelle application ou service vCard. | ||
Cette spécification présente le format '''hCard''', qui utilise une représentation 1:1 des propriétés et valeurs du standard vCard mentionné ci-dessus, en XHTML sémantique. Les blogueurs peuvent tout à la fois embarquer directement les hCards dans leurs pages web et les | Cette spécification présente le format '''hCard''', qui utilise une représentation 1:1 des propriétés et valeurs du standard vCard mentionné ci-dessus, en XHTML sémantique. Les blogueurs peuvent tout à la fois embarquer directement les hCards dans leurs pages web et les styliser avec CSS pour les faire apparaître comme ils le désirent. En outre, hCard permet aux applications de retrouver directement l'information à partir des pages web sans avoir à référencer un fichier séparé. | ||
Utilisez le [http://microformats.org/code/hcard/creator hCard creator] et copiez le code HTML qu'il génère sur votre blog ou site web pour publier votre information de contact. | Utilisez le [http://microformats.org/code/hcard/creator hCard creator] et copiez le code HTML qu'il génère sur votre blog ou site web pour publier votre information de contact. | ||
== Format == | == Format == | ||
Line 49: | Line 35: | ||
Le format basique de hCard est d'utiliser les noms d'objet/propriété vCard en bas de casse pour les noms de classes, et de mapper l'imbrication des objects vCard directement dans les éléments imbriqués XHTML. | Le format basique de hCard est d'utiliser les noms d'objet/propriété vCard en bas de casse pour les noms de classes, et de mapper l'imbrication des objects vCard directement dans les éléments imbriqués XHTML. | ||
=== | === Nom de Classe Racine=== | ||
Le nom de classe racine pour une hcard est "vcard". Un élément avec un nom de classe "vcard" est lui même appelé une ''hCard''. | |||
=== Propriétés et Sous-propriétés === | |||
Les propriétés d'une hCard sont représentées par les éléments à l'intérieur de la hCard. Les éléments avec des noms de classes des propriétés listées représentent les valeurs de ces propriétés. Quelques propriéts ont des sous-propriétés, et celles-ci sont représentées par les éléments à l'intérieur des éléments pour les propriétés. | |||
=== | === Liste des propriétés === | ||
Propriétés hCard (sous-propriétés entre parenthèses comme ceci) | |||
'''Requis :''' | |||
* '''fn''' | |||
* '''n'''* (family-name, given-name, additional-name, honorific-prefix, honorific-suffix) | |||
Optionnel : | |||
* nickname, sort-string | |||
* url, email (type, value), tel** (type, value) | |||
* adr (post-office-box, extended-address, street-address, locality, region, postal-code, country-name, type, value), label | |||
* geo (latitude, longitude), tz | |||
* photo, logo, sound, bday | |||
* title, role, org (organization-name, organization-unit) | |||
* category, note | |||
* class, key, mailer, uid, rev | |||
=== Notes sur les Propriétés=== | |||
<nowiki>*</nowiki> La propriété 'n' est optionnelle si n'importe quelle [[hcard#Optimisation_implicite_"n"|règle d'optimisation implicite 'n'] fait effet.<br /> | |||
<nowiki>**</nowiki> tel - Les auteurs PEUVENT vouloir suivre le standard E.123 pour écrire les valeurs de numéros de téléphone. | |||
=== Propriétés Singulières vs. Plurielles === | |||
Les propriétés singulières : 'fn', 'n', 'bday', 'tz', 'geo', 'sort-string', 'uid', 'class'. Pour les propriétés qui sont singulières, le premier élément descendant avec cette classe devrait prendre effet, tous les autres étant ignorés. | |||
Toutes les autres propriétés peuvent être plurielles. Chaque instance de classe de telles propriétés crée une instance de cette propriété. | |||
=== Lisible par Humain vs. Machine === | |||
Les contenus de textes visibles par les humains d'un élément pour une propriété représente la valeur de cette propriété, avec quelques exceptions : | |||
Si un élément <code><a></code> est utilisé pour une ou plusieurs propriétés, alors l'attribut '<code>title</code>' (si présent) de l'élément <code><abbr></code> est la valeur de la propriété, au lieu des contenus de l'élément, qui fournit à la place une version plus humainement présentable de la valeur. | |||
Si un élément <code><a></code> est utilisé pour une ou plusieurs propriétés, il doit être traité comme suit : | |||
# Pour la propriété 'photo' et toute autre propriété qui prend un URL comme sa valeur, l'attribut <code>href="..."</code> fournit la valeur de la propriété. | |||
# Pour les autres propriétés, le contenu de l'élément est la valeur de la propriété. | |||
Si un élément <code>< | Si un élément <code><img></code> est utilisé pour une ou plusieurs propriétés, il doit êttre traité comme suit : | ||
# Pour la propriété 'photo' et toute autre propriété qui prend une URL comme sa valeur, l'attribut fournit la valeur de propriété. | |||
# Pour les autres propriétés, l'attribut '<code>alt</code>' de l'élément <code><img></code> est la valeur de la propriété. | |||
Si un élément <code>< | Si un élément <code><object></code> est utilisé pour une ou plusieurs propriétés, il doit être traité comme suit : | ||
# Pour la propriété | # Pour la propriété 'photo' et toute autre propriété qui prend une URL comme sa valeur, l'attribut <code>data="..."</code> fournit la valeur de la propriété. | ||
# Pour les autres propriétés, le contenu de l'élément est la valeur de la propriété. | # Pour les autres propriétés, le contenu de l'élément est la valeur de la propriété. | ||
=== Extraction de Valeur === | === Extraction de Valeur === | ||
Parfois, seule une partie d'un élément qui est l'équivalent | Parfois, seule une partie d'un élément qui est l'équivalent d'une propriété | ||
devrait être utilisée pour la valeur de la propriété. Ceci | devrait être utilisée pour la valeur de la propriété. Ceci arrive typiquement quand une propriété a un sous-type, comme 'tel'. A cette intention, le nom de classe spécial "<code>value</code>" est introduit pour extraire le sous-ensemble de l'élément qui est la valeur de la propriété. Par exemple, voici un fragment hCard pour marquer un numéro de téléphone de domicile :<br /> | ||
Line 107: | Line 104: | ||
</nowiki></pre> | </nowiki></pre> | ||
Ce fragment de hCard pourrait s'afficher comme | Ce fragment de hCard pourrait s'afficher comme : | ||
<div style="border: thin dashed black; width: 95%; padding: .5em 1em;"> | <div style="border: thin dashed black; width: 95%; padding: .5em 1em;"> | ||
<span class="tel"> | <span class="tel"> | ||
Line 115: | Line 111: | ||
</span> | </span> | ||
</div> | </div> | ||
<!-- note pour Tantek : réviser/éditer la casse propriété à partir d'ici --> | |||
=== Exceptions de Propriétés === | === Exceptions de Propriétés === | ||
vCard a plusieurs propriétés qui soit ne font pas de sens, | vCard a plusieurs propriétés qui soit ne font pas de sens, | ||
ou sont déjà imbriquées dans le contexte d'une page web. | ou sont déjà imbriquées dans le contexte d'une page web. | ||
Cette section explique ce qu'il faut (ou ne pas) faire avec elles : | Cette section explique ce qu'il faut (ou ne pas) faire avec elles : | ||
# Les propriétés '''NAME''', '''PROFILE''', '''SOURCE''', '''PRODID''', '''VERSION''' | # Les propriétés des vcards '''NAME''', '''PROFILE''', '''SOURCE''', '''PRODID''', '''VERSION''' sont définies dans les Sections 2.1.2, 2.1.3, 2.1.4, 3.6.3, 3.6.9 de la RFC 2426. | ||
Les éditeurs de contenus | Les éditeurs de contenus NE DOIVENT PAS utiliser ces propriétés dans leurs hCards, et par conséquent les consommateurs/parseurs de hCard DOIVENT IGNORER ces propriétés si elles sont trouvées dans une hCard. Au lieu de cela, les convertisseurs hCard vers vCard DEVRAIENT utiliser le titre de la page où la hCard est trouvée (c'est à dire l'élément <code><title></code> dans les documents (X)HTML) pour construire la propriété NOM, et ils PEUVENT produire une valeur PROFILE de "<code>VCARD</code>" selon la RFC 2426, ils DEVRAIENT utiliser l'URL de la page où est trouvée la hCard pour construire la propriété SOURCE (c'est à dire peut-être comme un paramètre vers un URL/service qui convertir les hCards en vCards), pour un flux de sortie vCard (par ex. un fichier vcf). | ||
Au lieu de cela, les convertisseurs hCard vers vCard DEVRAIENT utiliser le titre de la page où la hCard est trouvée (c'est à dire l'élément <code><title></code> dans les documents (X)HTML) pour construire la propriété NOM, PEUVENT produire une valeur PROFILE de "<code>VCARD</code>" | |||
Seuls les services/applications qui produisent de véritables vCards devraient écrire la propriété PRODID, avec l'identifiant produit pour l'application/service. De la même façon, seuls de tels services/applications devraient écrire la propriété VERSION, avec la valeur "3.0" (sans guillemets) selon la RFC2426 Section 3.6.9. | Seuls les services/applications qui produisent de véritables vCards devraient écrire la propriété PRODID, avec l'identifiant produit pour l'application/service. De la même façon, seuls de tels services/applications devraient écrire la propriété VERSION, avec la valeur "3.0" (sans guillemets) selon la RFC2426 Section 3.6.9. | ||
=== Info Contact Organisation === | === Info Contact Organisation === | ||
Si les propriétés "FN" et "ORG" ont exactement la même valeur (généralement parce qu'elles sont | |||
Si les propriétés "FN" et "ORG" ont exactement la même valeur (généralement parce qu'elles sont | |||
réglées sur le même élément, par ex. class="fn org"), alors la hCard représente l'information de contact pour une société ou une organisation et devrait être traitée comme telle. Dans ce cas l'auteur DOIT aussi NE PAS régler la propriété "N", ou la régler (et n'importe quelles sous-propriétés) explicitement vers la chaîne vide "". | réglées sur le même élément, par ex. class="fn org"), alors la hCard représente l'information de contact pour une société ou une organisation et devrait être traitée comme telle. Dans ce cas l'auteur DOIT aussi NE PAS régler la propriété "N", ou la régler (et n'importe quelles sous-propriétés) explicitement vers la chaîne vide "". | ||
Par conséquent les parseurs devraient gérer dans ce cas la propriété manquante "N" en | Par conséquent les parseurs devraient gérer dans ce cas la propriété manquante "N" en | ||
Line 135: | Line 130: | ||
=== Optimisation implicite "n" === | === Optimisation implicite "n" === | ||
Bien que vCard requiert que la propriété "N" soit présente, les auteurs de la spécification vCard (RFC 2426) eux-mêmes n'incluent pas les propriétés "N" dans leurs vCards près de la fin de la spec (p.38). Cette contradiction apparente peut être résolue en permettant simplement à la propriété "FN" de sous-entendre les valeurs de la propriété "N" dans les cas typiques fournies dans la spec. Nous faisons cela explicitement dans hCard. | Bien que vCard requiert que la propriété "N" soit présente, les auteurs de la spécification vCard (RFC 2426) eux-mêmes n'incluent pas les propriétés "N" dans leurs vCards près de la fin de la spec (p.38). Cette contradiction apparente peut être résolue en permettant simplement à la propriété "FN" de sous-entendre les valeurs de la propriété "N" dans les cas typiques fournies dans la spec. Nous faisons cela explicitement dans hCard. | ||
Line 153: | Line 147: | ||
=== Optimisation implicite du "nickname" === | === Optimisation implicite du "nickname" === | ||
Du fait de la prévalence de l'utilisation sur le web de pseudos/handles/nomsutilisateurs dans les contenus publiés sur le Web (par ex. les auteurs des [[hreview-fr|critiques]]), hCard a aussi une | Du fait de la prévalence de l'utilisation sur le web de pseudos/handles/nomsutilisateurs dans les contenus publiés sur le Web (par ex. les auteurs des [[hreview-fr|critiques]]), hCard a aussi une | ||
optimisation implicite de "nickname" pour gérer cela. | optimisation implicite de "nickname" pour gérer cela. | ||
Line 166: | Line 159: | ||
=== Optimisation implicite "organization-name" === | === Optimisation implicite "organization-name" === | ||
La propriété "ORG" a deux sous-propriétés, organization-name et organization-unit. Très souvent les auteurs ne publient que organization-name. De ce fait si une propriété "ORG" n'a pas d'"organization-name" dedans, alors la totalité des contenus DOIT être traitée comme le "organization-name". | La propriété "ORG" a deux sous-propriétés, organization-name et organization-unit. Très souvent les auteurs ne publient que organization-name. De ce fait si une propriété "ORG" n'a pas d'"organization-name" dedans, alors la totalité des contenus DOIT être traitée comme le "organization-name". | ||
=== Tags en tant que Catégories === | === Tags en tant que Catégories === | ||
Les catégories dans hCard peuvent en option être représentées par des tags avec rel-tag. | Les catégories dans hCard peuvent en option être représentées par des tags avec rel-tag. | ||
Quand une propriété category est un rel-tag, le tag (comme défini par rel-tag) est | Quand une propriété category est un rel-tag, le tag (comme défini par rel-tag) est utilisé pour cette catégorie. | ||
==== valeurs sous-propriété type ==== | ==== valeurs sous-propriété type ==== | ||
Line 224: | Line 196: | ||
=== Profil XMDP === | === Profil XMDP === | ||
Voir [[hcard-profile-fr|hcard-profile]] pour le profil [http://gmpg.org/xmdp XMDP] de hCard qui contient la liste complète ci-dessus de propriétés, avec des références à leurs définitions RFC 2426. | Voir [[hcard-profile-fr|hcard-profile]] pour le profil [http://gmpg.org/xmdp XMDP] de hCard qui contient la liste complète ci-dessus de propriétés, avec des références à leurs définitions RFC 2426. | ||
=== Détails Parsage === | === Détails Parsage === | ||
Voir [[hcard-parsing-fr|hCard parsing]]. | Voir [[hcard-parsing-fr|hCard parsing]]. | ||
== Exemples == | == Exemples == | ||
Cette section est informative. | Cette section est informative. | ||
=== Echantillon vCard === | === Echantillon vCard === | ||
Voilà une vCard échantillon. | Voilà une vCard échantillon. | ||
Line 266: | Line 234: | ||
Note : L'information de version n'est pas directement nécessaire dans le balisage hCard parce que la version sera définie par le profil de hCard qui est utilisé/référencé dans l'attribut 'profile' de l'élément <head>. | Note : L'information de version n'est pas directement nécessaire dans le balisage hCard parce que la version sera définie par le profil de hCard qui est utilisé/référencé dans l'attribut 'profile' de l'élément <head>. | ||
===Exemple Live=== | |||
Voici les détails de contact de la Fondation WikiMedia, comme une hCard live qui sera détectée sur cette page par les outils d'analyse de microformats : | |||
<div class="vcard"> | |||
<div class="fn org">'''Wikimedia Foundation Inc.'''</div> | |||
<div class="adr"> | |||
<div class="street-address">'''200 2nd Ave. South #358'''</div> | |||
<div> <span class="locality">'''St. Petersburg'''</span>, <span class="region">'''FL'''</span> <span class="postal-code">'''33701-4313'''</span></div> | |||
<div class="country-name">'''USA'''</div> | |||
</div> | |||
<div>'''Phone:''' <span class="tel">'''+1-727-231-0101'''</span></div> | |||
<div>'''Email:''' <span class="email">'''info@wikimedia.org'''</span></div> | |||
<div><span class="tel"><span class="type">'''Fax'''</span>''':''' <span class="value">'''+1-727-258-0207'''</span></span></div> | |||
</div> | |||
Le balisage (avec la graisse omise pour la clarté) utilisé est : | |||
<pre><nowiki> | |||
<div class="vcard"> | |||
<div class="fn org">Wikimedia Foundation Inc.</div> | |||
<div class="adr"> | |||
<div class="street-address">200 2nd Ave. South #358</div> | |||
<div> | |||
<span class="locality">St. Petersburg</span>, | |||
<abbr class="region" title="Florida">FL</abbr> <span class="postal-code">33701-4313</span> | |||
</div> | |||
<div class="country-name">USA</div> | |||
</div> | |||
<div>Phone: <span class="tel">+1-727-231-0101</span></div> | |||
<div>Email: <span class="email">info@wikimedia.org</span></div> | |||
<div> | |||
<span class="tel"><span class="type">Fax</span>: | |||
<span class="value">+1-727-258-0207</span></span> | |||
</div> | |||
</div> | |||
</nowiki></pre> | |||
=== Plus d'Exemples === | === Plus d'Exemples === | ||
Voir [[hcard-examples-fr|exemples hCard]] pour plus d'exemples, y compris tous les exemples extraits de la RFC 2426 vCard convertie en hCard. | Voir [[hcard-examples-fr|exemples hCard]] pour plus d'exemples, y compris tous les exemples extraits de la RFC 2426 vCard convertie en hCard. | ||
Line 279: | Line 285: | ||
== exemples dans la jungle == | == exemples dans la jungle == | ||
Cette section est '''informative'''. Le nombre d'exemples de hCard dans la jungle a grandi bien au delà de la capacité | Cette section est '''informative'''. Le nombre d'exemples de hCard dans la jungle a grandi bien au delà de la capacité de pouvoir être maintenu en ligne et associé à cette spécification. Ils ont migré sur une [[hcard-examples-in-wild-fr|page séparée]]. | ||
Voir [[hcard-examples-in-wild-fr|Exemples hCard dans la jungle]]. | Voir [[hcard-examples-in-wild-fr|Exemples hCard dans la jungle]]. | ||
Line 287: | Line 293: | ||
Voir [[hcard-implementations-fr|Implémentations hCard]]. | Voir [[hcard-implementations-fr|Implémentations hCard]]. | ||
=== Copyright === | |||
{{MicroFormatCopyrightStatement2004-fr}} | |||
=== Brevets=== | |||
{{MicroFormatPatentStatement-fr}} | |||
== Références == | == Références == | ||
Line 311: | Line 323: | ||
* [http://www.intertwingly.net/wiki/pie/PaceBetterPersonElement Atom PaceBetterPersonElement] | * [http://www.intertwingly.net/wiki/pie/PaceBetterPersonElement Atom PaceBetterPersonElement] | ||
* [http://www.jabber.org/jeps/jep-0054.html JEP-0054: vcard-temp] | * [http://www.jabber.org/jeps/jep-0054.html JEP-0054: vcard-temp] | ||
== Inspiration et Remerciements == | |||
Remerciements à : | |||
mon bon ami [http://vadim.com/ Vadim] qui m'a présenté vCard il y a de ''nombreuses'' années, | |||
et si j'avais prêté alors un peu plus d'attention, j'aurais pu peut-être aider beaucoup de personnes à éviter de perdre du temps à réinventer beaucoup de roues des standards. | |||
== Notes sur la dérivation provenant de la vCard == | |||
Cette section est ''informative''. | |||
=== Principes de Design XHTML Sémantique === | |||
{{semantic-xhtml-design-principles-fr}} | |||
=== Plus d'Equivalents Sémantiques === | |||
Pour quelques propriétés, il existe quelques éléments HTML qui correspondent mieux et portent leurs sémantiques. Les propriétés suivantes DEVRAIENT être encodées avec le (X)HTML suivant : | |||
* <code>URL</code> dans vCard devient <code><a class="url" href="...">...</a></code> dans l'élément avec <code>class="vcard"</code> dans hCard. | |||
* De la même manière, <code>EMAIL</code> dans la vCard devient <code><nowiki><a class="email" href="mailto:...">...</a></nowiki></code> | |||
* <code>PHOTO</code> dans la vCard devient <code><img class="photo" src="..." alt="Photo de ..." /></code> ou <code><object class="photo" data="..." type="...">Photo de ...</object></code> | |||
* <code>UID</code> dans vCard devient simplement une autre sémantique appliquée à un URL spécifique (ou EMAIL) pour une hCard. | |||
==== Propriétés Singulières ==== | |||
Les propriétés Singulières : "FN", "N", "BDAY", "TZ", "GEO", "SORT-STRING", "UID", "CLASS". | |||
Toutes les autres propriétés sont plurielles. Cette liste a été dérivée en analysant la sémantique des propriétés individuelles dans la RFC2426 vCard et en déterminant logiquement qu'elles DOIVENT être singulières selon leurs sémantiques. Voir [[hcard-singular-properties-fr|propriétés hcard singulier]] pour des explications. | |||
==== Propriétés Plurielles Singularisées ==== | |||
Parce que les noms de propriétés plurielles deviennent leurs équivalents singuliers, même si la propriété plurielle originale ne permettait qu'une valeur unique avec plusieurs composants, ces composants multiples sont représentés chacun avec leur propre singularité appelée propriété | |||
et la propriété est en fait multivalorisée et sujette au traitement ci-dessus des propriétés multivalorisées. | |||
== Lectures Supplémentaires == | == Lectures Supplémentaires == |
Revision as of 16:31, 24 May 2007
hCard
hCard est un format simple, ouvert et distribué pour représenter les personnes, sociétés, organisations et lieux, en utilisant une représentation 1:1 des propriétés de la vCard (RFC2426) et des valeurs en XHTML sémantique. hCard est l'un des nombreux microformats standards ouverts adaptés pour l'embarquement dans (X)HTML, Atom, RSS et le XML arbitraire.
Vous voulez démarrer dès à présent par écrire une hCard ? Utilisez le hCard creator pour écrire quelque information de contact et la publier, ou suivez les trucs pour la publication de hCard afin d'ajouter votre syntaxe hCard à votre page contact actuelle.
Spécification
- Editeur
- Tantek Çelik, Technorati, Inc.
- Auteurs
- Tantek Çelik, Technorati, Inc, Brian Suda
Remerciements : Voir Remerciements.
Les déclarations de copyright et de brevets s'appliquent.
(traduction en cours Christophe Ducamp)
Introduction
Le standard vCard (RFC2426), a été largement implémenté de façon interopérable. (par ex. dans l'application "Carnet d'Adresses" d'Apple intégrée dans MacOSX).
En outre, beaucoup de blogueurs s'identifient eux-mêmes par un nom et discutent avec leurs amis et familles. Avec juste un peu de structure, les blogueurs peuvent discuter avec des personnes dans leurs blogs d'une telle façon que les spiders et autres agrégateurs peuvent retrouver cette information, la convertir automatiquement en vCards et l'utiliser dans n'importe quelle application ou service vCard.
Cette spécification présente le format hCard, qui utilise une représentation 1:1 des propriétés et valeurs du standard vCard mentionné ci-dessus, en XHTML sémantique. Les blogueurs peuvent tout à la fois embarquer directement les hCards dans leurs pages web et les styliser avec CSS pour les faire apparaître comme ils le désirent. En outre, hCard permet aux applications de retrouver directement l'information à partir des pages web sans avoir à référencer un fichier séparé.
Utilisez le hCard creator et copiez le code HTML qu'il génère sur votre blog ou site web pour publier votre information de contact.
Format
En Général
Le standard vCard (RFC2426) forme la base du hCard.
Le format basique de hCard est d'utiliser les noms d'objet/propriété vCard en bas de casse pour les noms de classes, et de mapper l'imbrication des objects vCard directement dans les éléments imbriqués XHTML.
Nom de Classe Racine
Le nom de classe racine pour une hcard est "vcard". Un élément avec un nom de classe "vcard" est lui même appelé une hCard.
Propriétés et Sous-propriétés
Les propriétés d'une hCard sont représentées par les éléments à l'intérieur de la hCard. Les éléments avec des noms de classes des propriétés listées représentent les valeurs de ces propriétés. Quelques propriéts ont des sous-propriétés, et celles-ci sont représentées par les éléments à l'intérieur des éléments pour les propriétés.
Liste des propriétés
Propriétés hCard (sous-propriétés entre parenthèses comme ceci)
Requis :
- fn
- n* (family-name, given-name, additional-name, honorific-prefix, honorific-suffix)
Optionnel :
- nickname, sort-string
- url, email (type, value), tel** (type, value)
- adr (post-office-box, extended-address, street-address, locality, region, postal-code, country-name, type, value), label
- geo (latitude, longitude), tz
- photo, logo, sound, bday
- title, role, org (organization-name, organization-unit)
- category, note
- class, key, mailer, uid, rev
Notes sur les Propriétés
* La propriété 'n' est optionnelle si n'importe quelle [[hcard#Optimisation_implicite_"n"|règle d'optimisation implicite 'n'] fait effet.
** tel - Les auteurs PEUVENT vouloir suivre le standard E.123 pour écrire les valeurs de numéros de téléphone.
Propriétés Singulières vs. Plurielles
Les propriétés singulières : 'fn', 'n', 'bday', 'tz', 'geo', 'sort-string', 'uid', 'class'. Pour les propriétés qui sont singulières, le premier élément descendant avec cette classe devrait prendre effet, tous les autres étant ignorés.
Toutes les autres propriétés peuvent être plurielles. Chaque instance de classe de telles propriétés crée une instance de cette propriété.
Lisible par Humain vs. Machine
Les contenus de textes visibles par les humains d'un élément pour une propriété représente la valeur de cette propriété, avec quelques exceptions :
Si un élément <a>
est utilisé pour une ou plusieurs propriétés, alors l'attribut 'title
' (si présent) de l'élément <abbr>
est la valeur de la propriété, au lieu des contenus de l'élément, qui fournit à la place une version plus humainement présentable de la valeur.
Si un élément <a>
est utilisé pour une ou plusieurs propriétés, il doit être traité comme suit :
- Pour la propriété 'photo' et toute autre propriété qui prend un URL comme sa valeur, l'attribut
href="..."
fournit la valeur de la propriété. - Pour les autres propriétés, le contenu de l'élément est la valeur de la propriété.
Si un élément <img>
est utilisé pour une ou plusieurs propriétés, il doit êttre traité comme suit :
- Pour la propriété 'photo' et toute autre propriété qui prend une URL comme sa valeur, l'attribut fournit la valeur de propriété.
- Pour les autres propriétés, l'attribut '
alt
' de l'élément<img>
est la valeur de la propriété.
Si un élément <object>
est utilisé pour une ou plusieurs propriétés, il doit être traité comme suit :
- Pour la propriété 'photo' et toute autre propriété qui prend une URL comme sa valeur, l'attribut
data="..."
fournit la valeur de la propriété. - Pour les autres propriétés, le contenu de l'élément est la valeur de la propriété.
Extraction de Valeur
Parfois, seule une partie d'un élément qui est l'équivalent d'une propriété
devrait être utilisée pour la valeur de la propriété. Ceci arrive typiquement quand une propriété a un sous-type, comme 'tel'. A cette intention, le nom de classe spécial "value
" est introduit pour extraire le sous-ensemble de l'élément qui est la valeur de la propriété. Par exemple, voici un fragment hCard pour marquer un numéro de téléphone de domicile :
vCard:
TEL;TYPE=HOME:+1.415.555.1212
hCard:
<span class="tel"> <span class="type">home</span>: <span class="value">+1.415.555.1212</span> </span>
Ce fragment de hCard pourrait s'afficher comme :
home: +1.415.555.1212
Exceptions de Propriétés
vCard a plusieurs propriétés qui soit ne font pas de sens, ou sont déjà imbriquées dans le contexte d'une page web. Cette section explique ce qu'il faut (ou ne pas) faire avec elles :
- Les propriétés des vcards NAME, PROFILE, SOURCE, PRODID, VERSION sont définies dans les Sections 2.1.2, 2.1.3, 2.1.4, 3.6.3, 3.6.9 de la RFC 2426.
Les éditeurs de contenus NE DOIVENT PAS utiliser ces propriétés dans leurs hCards, et par conséquent les consommateurs/parseurs de hCard DOIVENT IGNORER ces propriétés si elles sont trouvées dans une hCard. Au lieu de cela, les convertisseurs hCard vers vCard DEVRAIENT utiliser le titre de la page où la hCard est trouvée (c'est à dire l'élément <title>
dans les documents (X)HTML) pour construire la propriété NOM, et ils PEUVENT produire une valeur PROFILE de "VCARD
" selon la RFC 2426, ils DEVRAIENT utiliser l'URL de la page où est trouvée la hCard pour construire la propriété SOURCE (c'est à dire peut-être comme un paramètre vers un URL/service qui convertir les hCards en vCards), pour un flux de sortie vCard (par ex. un fichier vcf).
Seuls les services/applications qui produisent de véritables vCards devraient écrire la propriété PRODID, avec l'identifiant produit pour l'application/service. De la même façon, seuls de tels services/applications devraient écrire la propriété VERSION, avec la valeur "3.0" (sans guillemets) selon la RFC2426 Section 3.6.9.
Info Contact Organisation
Si les propriétés "FN" et "ORG" ont exactement la même valeur (généralement parce qu'elles sont
réglées sur le même élément, par ex. class="fn org"), alors la hCard représente l'information de contact pour une société ou une organisation et devrait être traitée comme telle. Dans ce cas l'auteur DOIT aussi NE PAS régler la propriété "N", ou la régler (et n'importe quelles sous-propriétés) explicitement vers la chaîne vide "". Par conséquent les parseurs devraient gérer dans ce cas la propriété manquante "N" en sous-entendant des valeurs vides pour toutes les sous-propriétés "N".
Optimisation implicite "n"
Bien que vCard requiert que la propriété "N" soit présente, les auteurs de la spécification vCard (RFC 2426) eux-mêmes n'incluent pas les propriétés "N" dans leurs vCards près de la fin de la spec (p.38). Cette contradiction apparente peut être résolue en permettant simplement à la propriété "FN" de sous-entendre les valeurs de la propriété "N" dans les cas typiques fournies dans la spec. Nous faisons cela explicitement dans hCard.
Si "FN" et "ORG" ne sont pas les mêmes (voir section précédente) et si la valeur de la propriété "FN" est exactement de deux mots (séparés par un espace blanc) et s'il n'y a pas de propriété explicite "N", alors la propriété "N" est inférée à partir de la propriété "FN". Pour les "FN"s avec soit un mot voir au-dessous, et pour trois mots ou plus, l'auteur DOIT explicitement baliser le "N", exception faite pour le cas de l'information de contact organisation, voir au-dessus pour cela.
- Le contenu de "FN" est brisé en deux "mots" séparés par un espace blanc.
- Le premier mot de FN est interprété comme le "given-name" (prénom) pour la propriété "N".
- Le second/dernier mot de "FN" est interprété comme le "family-name" pour la propriété "N".
- Exception : Si le premier mot se finit par une "," virgule OU si le second mot est un caractère unique (optionnellement suivi par un point "."), alors le premier mot (moins la virgule à la fin s'il y en a) est interprété comme le "family-name" et le second mot est interprété comme le "given-name" (prénom).
Ceci permet une simplification dans le cas typique des gens déclarant :
- given-name (espace) family-name
- family-name (virgule) given-name
- family-name (virgule) given-name-first-initial
- family-name (espace) given-name-first-initial (optional period)
Optimisation implicite du "nickname"
Du fait de la prévalence de l'utilisation sur le web de pseudos/handles/nomsutilisateurs dans les contenus publiés sur le Web (par ex. les auteurs des critiques), hCard a aussi une optimisation implicite de "nickname" pour gérer cela.
De la même manière que l'optimisation sous-entendue "n", si "FN" et "ORG" ne sont pas les mêmes, et si la valeur de la propriété "FN" est exactement d'un mot, et s'il n'y a pas de propriété "N" explicite, alors :
- Le contenu du "FN" est traité comme une valeur de propriété "nickname".
- Les parseurs devraient gérer la propriété manquante "N" par des valeurs vides implicites pour toutes les sous-propriétés "N".
Note : la hCard peut avoir des valeurs de propriétés explicites supplémentaires "nickname" en plus du nickname sous-entendu.
Optimisation implicite "organization-name"
La propriété "ORG" a deux sous-propriétés, organization-name et organization-unit. Très souvent les auteurs ne publient que organization-name. De ce fait si une propriété "ORG" n'a pas d'"organization-name" dedans, alors la totalité des contenus DOIT être traitée comme le "organization-name".
Tags en tant que Catégories
Les catégories dans hCard peuvent en option être représentées par des tags avec rel-tag. Quand une propriété category est un rel-tag, le tag (comme défini par rel-tag) est utilisé pour cette catégorie.
valeurs sous-propriété type
La sous-propriété 'type' en particulier prend différentes valeurs selon quelle propriété est une sous-propriété de. Ces valeurs de sous-propriétés 'type' sont INSENSIBLES à la casse, ceci voulant dire que "Home" est équivalent à "home", tout comme elle est multivalorisée, par ex. un téléphone peut être home et pref (éré) :
vCard :
TEL;TYPE=HOME,PREF:+1.415.555.1212
hCard :
<span class="tel"><span class="type">Home</span> (<span class="type">pref</span>erred): <span class="value">+1.415.555.1212</span> </span>
Ceci pourrait être affiché sous :
Home (preferred): +1.415.555.1212
Les listes suivantes sont informatives. Voir sections RFC2426 3.2.1 ADR, 3.3.1 TEL, et 3.3.2 EMAIL respectivement pour les valeurs type normatives. Elles sont répétées ici pour la facilité. La(es) valeur(s) de sous-propriétés type est (sont) d'abord dans chaque liste et toutes indiquées en LETTRES CAPITALES. Les types peuvent être multivalorisées.
- adr type: INTL, POSTAL, PARCEL, WORK, dom, home, pref
- tel type: VOICE, home, msg, work, pref, fax, cell, video, pager, bbs, modem, car, isdn, pcs
- email type: INTERNET, x400, pref, "other IANA registered address types"
Profil XMDP
Voir hcard-profile pour le profil XMDP de hCard qui contient la liste complète ci-dessus de propriétés, avec des références à leurs définitions RFC 2426.
Détails Parsage
Voir hCard parsing.
Exemples
Cette section est informative.
Echantillon vCard
Voilà une vCard échantillon.
BEGIN:VCARD VERSION:3.0 N:Çelik;Tantek FN:Tantek Çelik URL:http://tantek.com/ ORG:Technorati END:VCARD
et un équivalent en hCard avec différents éléments optimisés proprement. Voir hCard Exemple 1 pour la dérivation.
<div class="vcard"> <a class="url fn" href="http://tantek.com/">Tantek Çelik</a> <div class="org">Technorati</div> </div>
Cette carte pourrait être affichée comme :
Tantek Çelik
Technorati
Note : L'information de version n'est pas directement nécessaire dans le balisage hCard parce que la version sera définie par le profil de hCard qui est utilisé/référencé dans l'attribut 'profile' de l'élément <head>.
Exemple Live
Voici les détails de contact de la Fondation WikiMedia, comme une hCard live qui sera détectée sur cette page par les outils d'analyse de microformats :
Le balisage (avec la graisse omise pour la clarté) utilisé est :
<div class="vcard"> <div class="fn org">Wikimedia Foundation Inc.</div> <div class="adr"> <div class="street-address">200 2nd Ave. South #358</div> <div> <span class="locality">St. Petersburg</span>, <abbr class="region" title="Florida">FL</abbr> <span class="postal-code">33701-4313</span> </div> <div class="country-name">USA</div> </div> <div>Phone: <span class="tel">+1-727-231-0101</span></div> <div>Email: <span class="email">info@wikimedia.org</span></div> <div> <span class="tel"><span class="type">Fax</span>: <span class="value">+1-727-258-0207</span></span> </div> </div>
Plus d'Exemples
Voir exemples hCard pour plus d'exemples, y compris tous les exemples extraits de la RFC 2426 vCard convertie en hCard.
Boutons
Vous pouvez utiliser ces boutons sur les pages avec des hCards. Voir buttons-fr#hCard pour toutes les additions récentes.
- (miroir : )
- bouton CSS, sur microformat badges @ re-run
exemples dans la jungle
Cette section est informative. Le nombre d'exemples de hCard dans la jungle a grandi bien au delà de la capacité de pouvoir être maintenu en ligne et associé à cette spécification. Ils ont migré sur une page séparée.
Voir Exemples hCard dans la jungle.
Implémentations
Cette section est informative. Le nombre d'implémentations de hCard a aussi grandi au delà de la capacité de pouvoir les maintenir sur cette même page. Elles ont été migrées sur une page séparée.
Voir Implémentations hCard.
Copyright
Cette spécification est (C) 2004-2024 par les auteurs. Néanmoins, les auteurs ont pour but de soumettre cette spécification à un corps de standards avec une politique libérale de copyright/licence telle que GMPG, IETF, et/ou W3C. Quiconque souhaite contribuer devrait lire avant de contribuer leurs principes de copyright, politiques et licences (par ex. les Principes GMPG) et être d'accord avec eux, y compris le fait de licencier toutes les contributions sous les licences nécessaires (par ex. CC-by 1.0 et suivantes).
Brevets
Cette spécification est sujette à une politique de brevets libres de droits, par ex. pour la Politique de Brevet du W3C, IETF RFC3667 et RFC3668.
Références
Références Normatives
Références Informatives
- Contributions provenant de http://developers.technorati.com/wiki/hCard.
- X.520 dans Postscript (HTMLization courtesy of Google Cache) - vCard fait référence au ROLE comme étant "based on the X.520 Business Category explanatory attribute".
- version remise en forme HTML de la RFC2426
- CSS1
- terme hCard présenté et défini sur le Web, 20040930
- FOO Camp 2004 Simple Semantic Formats presentation, 20040910
- XHTML 1.1
Spécifications Qui Utilisent hCard
Travaux Equivalents
Inspiration et Remerciements
Remerciements à : mon bon ami Vadim qui m'a présenté vCard il y a de nombreuses années, et si j'avais prêté alors un peu plus d'attention, j'aurais pu peut-être aider beaucoup de personnes à éviter de perdre du temps à réinventer beaucoup de roues des standards.
Notes sur la dérivation provenant de la vCard
Cette section est informative.
Principes de Design XHTML Sémantique
Note : les Principes de Design XHTML Sémantique ont été écrits initialement dans le contexte de développement de hCard et hCalendar, par conséquent il peut être plus facile de comprendre ces principes dans le contexte de la méthodologie de design hCard (ce qui veut dire, lisez ça d'abord). Tantek
XHTML est construit sur du XML, et par conséquent les formats fondés sur XHTML peuvent être utilisés non seulement pour une présentation d'affichage pratique, mais aussi à des fins d'échanges de données. A bien des façons, les formats fondés sur XHTML illustrent le meilleur des mondes tant du HTML que du XML. Néanmoins au moment de construire des formats basés sur XHTML, cela aide d'avoir un ensemble de principes directeurs.
- Réutilisez autant que possible le schéma (noms, objets, propriétés, valeurs, types, hiérarchies, contraintes) à partir des standards de référence établis et bien supportés. Evitez de redéclarer les contraintes exprimées dans le standard source. Des mentions à titre d'information peuvent passer.
- Pour les types avec plusieurs composants, utilisez des éléments imbriqués avec des noms de classe équivalents aux noms des composants.
- Les composants pluriels sont produits au singulier, et par conséquent plusieurs éléments imbriqués sont utilisés pour représenter plusieurs valeurs de texte qui sont délimitées par des virgules.
- Utilisez la sémantique XHTML la plus précise pour construire des blocs pour chaque objet, etc.
- Autrement utilisez un élément générique structurel (par ex.
<span>
ou<div>
), ou l'élément contextuel approprié (par ex. un<li>
dans un<ul>
ou<ol>
). - Utilisez des noms de classes basés sur des noms extraits du schéma original, à moins que le XHTML sémantique de construction de bloc ne représente précisément cette partie du schéma original. Si les noms dans le schéma original ne sont pas sensibles la casse, alors mettez tout dans un équivalent en bas de casse. Les noms de composants implicites en prose (plutôt qu'explicites dans le schéma défini) devraient aussi utiliser les équivalents bas de casse pour une facilité d'utilisation. Les espaces dans les noms des composants deviennent des caractères tiret '-'.
- Pour finir, si le format de la donnée selon le schéma original est trop long et/ou non amical sur le plan humain, utilisez
<abbr>
au lieu d'un élément générique structurel, et placez les données littérales dans l'attribut 'title' (là où vont les expansions abbr), et l'équivalent le plus bref et le plus lisible humainement dans l'élément lui-même. De plus amples explications de cet usage de<abbr>
: Human vs. ISO8601 dates problem solved
Plus d'Equivalents Sémantiques
Pour quelques propriétés, il existe quelques éléments HTML qui correspondent mieux et portent leurs sémantiques. Les propriétés suivantes DEVRAIENT être encodées avec le (X)HTML suivant :
URL
dans vCard devient<a class="url" href="...">...</a>
dans l'élément avecclass="vcard"
dans hCard.- De la même manière,
EMAIL
dans la vCard devient<a class="email" href="mailto:...">...</a>
PHOTO
dans la vCard devient<img class="photo" src="..." alt="Photo de ..." />
ou<object class="photo" data="..." type="...">Photo de ...</object>
UID
dans vCard devient simplement une autre sémantique appliquée à un URL spécifique (ou EMAIL) pour une hCard.
Propriétés Singulières
Les propriétés Singulières : "FN", "N", "BDAY", "TZ", "GEO", "SORT-STRING", "UID", "CLASS".
Toutes les autres propriétés sont plurielles. Cette liste a été dérivée en analysant la sémantique des propriétés individuelles dans la RFC2426 vCard et en déterminant logiquement qu'elles DOIVENT être singulières selon leurs sémantiques. Voir propriétés hcard singulier pour des explications.
Propriétés Plurielles Singularisées
Parce que les noms de propriétés plurielles deviennent leurs équivalents singuliers, même si la propriété plurielle originale ne permettait qu'une valeur unique avec plusieurs composants, ces composants multiples sont représentés chacun avec leur propre singularité appelée propriété et la propriété est en fait multivalorisée et sujette au traitement ci-dessus des propriétés multivalorisées.
Lectures Supplémentaires
- Digital Web Magazine: Microformats Primer de Garrett Dimon a une bonne introduction à hCard
- Practical Microformats with hCard de Drew McLellan
- Local Search Engine Optimization using Microformats par Chris Silver Smith
- Andrew D. Hume a écrit un billet de blog sur usable microformats qui discute de hCard
- L'introduction à hCard de Jesse Skinner
- Superbe billet de blog de Shaun Shull sur How Microformats Affect SEO, incluant sa hCard comme un exemple.
- 24 Ways: Styler les hCards avec CSS Un article de 24 Ways - John Allsopp sur la mise en style de hCard utilisant CSS
- Voir aussi les blogs discutant de cette page et le tag hCard
Pages Apparentées
- hCard
- hCard anti-sèche - propriétés hCard
- hCard creator (réactions) - créez votre propre hCard.
- hCard publication - apprenez comment ajouter du balisage hCard à votre information de contact existante.
- hCard exemples - exemple d'usage de différentes classes dans la hCard.
- hCard exemples dans la jungle - une liste mise à jour de sites web qui utilisent les hCards.
- Profils utilisateurs supportant hCard - sites avec des profils utilisateurs marqués avec hCard - un exemple très commun.
- hCard FAQ - si vous avez quelque question à propos de hCard, regardez ici.
- implémentations hCard - les sites web ou outils qui génèrent ou parsent les hCards.
- hcard-implied-fr - une proposition pour créer une méthode alternative de baliser une hCard simple
- hCard parsage - détails des normes sur la manière de parser les hCards.
- hCards et pages - distinctions sémantiques entre différentes hCards sur une page, et comment identifier chacune
- hcard-interface-utilisateur - techniques et problématiques autour des interfaces-utilisateurs pour éditer, publier et afficher des hCards.
- hCard profile - le profil XMDP pour hCard
- hCard propriétés singulières - une explication de la liste des propriétés singulières dans hCard.
- hCard tests - une page wiki avec des véritables hCards embarquées pour essayer le parsage.
- hCard soutien - encourager d'autres à utiliser hCard
- hCard "to do" - travaux à faire
La spécification hCard est un chantier en cours. Au fur et à mesure que des aspects supplémentaires sont discutés, compris et écrits, ils seront rajoutés. Ces idées, problématiques et questions sont maintenues sur des pages distinctes.
- hCard brainstorming - brainstorms et autres explorations en rapport avec hCard. Voir aussi geo brainstorming.
- hcard-parsing-brainstorming - brainstorming spécifique au parsage de hCard
- geo brainstorming
- hCard réactions - feedback général (contrairement aux problématiques spécifiques).
- hCard problématiques - problématiques spécifiques à la spécification.
- vCard errata - corrections à la spécification vCard, sous jacentes à hCard.
- vCard suggestions - améliorations suggérées à la spécification vCard.