hcard-ru
!
Вы прошли по ссылке на статью, перевод которой ещё не завершён. См. оригинал статьи
Вы можете помочь перевести её до конца, соблюдая стиль и общие правила перевода.
Напоминаем, что ваш перевод может быть изменён другими участниками сообщества, поэтому старайтесь переводить статьи точнее и более читабельнее.
hCard
hCard — это простой, открытый микроформат для описания людей, компаний, организаций и мест, используя всю мощь vCard (RFC 2426 (англ.)). Имена классов hCard полностью отображают имена соответствующих полей vCard на семантический (X)HTML. hCard — это один из открытых микроформатов, который можно внедрить в HTML, XHTML, ATOM, RSS и XML.
Хотите разметить собственный hCard? Попробуйте начать с генератора hCard или создайте разметку данного микроформата самостоятельно, следуя подсказкам по внедрению на существующие страницы.
Введение
Стандарт vCard (RFC 2426 (англ.)) был широко внедрен для обеспечения взаимодействия между различными приложениями (например, приложение «Address Book» компании Apple, встроенное в Mac OS X).Помимо этого, многие блоггеры идентифицируют себя по имени и обсуждают своих друзей и семью на страницах блогов. С помощью небольшой структуризации, блоггеры могут обсуждать (описывать) людей в своих блогах таким образом, что поисковые роботы и другие программы-обработчики смогут запросить эту информацию, автоматически конвертируя её в vCard и используя её впоследствии в любом сервисе или приложении, работающем с vCard.
Эта спецификация представляет формат hCard, который проецирует вышеупомянутый стандарт vCard в семантический HTML. Блоггеры могут внедрять hCard напрямую в Web-документы и оформлять их спомощью CSS для придания им желаемого внешнего вида. Также hCard позволяет приложениям запрашивать информацию прямиком из Web-документов, без обращений к отдельным файлам.
Вы можете использовать генератор hCard и скопировать HTML-код, который он сгенерирует, в ваш блог или Web-сайт для публикации контактной информации.
Формат
Особенности
Основополагающим стандартом для hCard является vCard.
В hCard используются имена объектов/свойств vCard, преобразованные в нижний регистр для использования в качетсве имён классов и для создания иерархии HTML-элементов.
Корневой класс
Корневым классом для hCard является "vcard". Элемент с именем класса "vcard" называется hCard.
Свойства
Свойства hCard — это элементы внутри hCard. Элементы с именами классов указанных свойств представляют собой значения таких свойств. Некоторые свойства могут иметь более сложную вложенную структуру других свойств, но в целом их структура идентична.
Список свойств
Свойства hCard
Обязательные:
- fn
- n1 (family-name, given-name, additional-name, honorific-prefix, honorific-suffix)
Необязательные:
- nickname, sort-string
- url, email (тип, значение), tel2 (тип, значение)
- 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
Дополнительные указания
1. ^: n не является обязательным атрибутом (см. hcard#Оптимизация раздел об оптимизации
2. ^: Используя tel, авторы могут следовать стандарту E.123 для записи телефонных номеров. Символьные значения (например, +1-555-FORMATS) должны быть сконвертированы в числа. Используйте abbr
, чтобы отображать символьное представление и предоставлять числовое значение. Например:
<abbr title="+15553676287">+1-555-FORMATS</abbr>
.
Единичные и множественные свойства
Список свойств, которые должны однозначно использоваться в формате (только один раз):
- 'fn'
- 'n'
- 'bday'
- 'tz'
- 'geo'
- 'sort-string'
- 'uid'
- 'class'
Для таких свойств только первый дочерний элемент с таким классом должен иметь значение, остальные должны игнорироваться.
Все другие свойства могут встречаться несколько раз. Каждый новый подобный класс создаёт новый параметр со значением данного свойства.
Читабельность для человека и машины
Человеку доступно всё, что является содержимым элементов (это, собственно, и является содержимым определённого свойства микроформата), с некоторыми нюансами:
- Если элемент
abbr
используется для описания свойства, то атрибутtitle
(если обозначен) данного элемента является значением данного свойства, вместо содержимого данного элемента, которое, в данном случае, предоставляет более приемлемую для осознавания человеком информацию. - Если для одного или нескольких свойств используется элемент
a
, он должен трактоваться следующим образом:- Для свойства photo и любого другого свойства, состоящего из URI, значением является значение атрибута href.
- Для любых других свойств значением является содержимое элемента.
- Если для одного или нескольких свойств используется элемент img, он должен трактоваться следующим образом:
- Для свойства photo и любого другого свойства, которое получает URI в качестве своего значения, значением является значение атрибута src.
- Для других свойств, атрибут alt содержит в себе их значение.
- Если используется элемент object для указания одного или нескольких свойств, он должен распознаваться следующим образом:
- Для свойства photo и подобных этому свойству свойств, атрибут data является значением таких свойств.
- Для других свойств, содержимое элемента является их значением.
Частичные значения
Иногда только часть элемента используется как значение определённого свойства. Такое часто происходит в тот момент, когда у свойства есть подтип (например, tel). В данном случае используется специальное имя класса value, чтобы выделить ту часть элемента, которая и будет являться значением свойства.
Вот фрагмент hCard для разметки домашнего номера телефона:
vCard:
TEL;TYPE=HOME:+1.415.555.1212
hCard:
<span class="tel"> <span class="type">Домашний телефон</span>: <span class="value">+1.415.555.1212</span> </span>
Данный фрагмент hCard будет отображён следующим образом:
Домашний телефон: +1.415.555.1212
Исключения из свойств
У стандарта vCard есть несколько свойств, которые не играют особой роли или их роль берут на себя другие элементы на Web-странице. Этот раздел описывает, что с ними нужно делать.
- Свойства NAME, PROFILE, SOURCE, PRODID, VERSION в vCard (как определено в разделах .1.2, 2.1.3, 2.1.4, 3.6.3, 3.6.9 RFC 2426. Авторы не должны использовать эти свойства в своих hCard, так же как и парсеры должны игнорировать данные свойства, если они будут обнаружены при обработке hCard. Напротив, конвертерам hCard-в-vCard следует использовать заголовок страницы, где hCard был обнаружен (элемент title в (X)HTML-документах), чтобы создать свойство NAME, могут вывести свойство PROFILE в соответствии с RFC 2426, могут использовать URI страницы, где был обнаружен hCard, чтобы заполнить свойство SOURCE. Только приложения, которые создают vCard, должны записывать свойства PRODIF и VERSION (3.0) в соответствии с RFC 2426.
Информация об организации
Если свойства FN и ORG имеют одинаковые значения (например, данные классы могут относится к одному элементу, подобно class="fn org"), hCard представляет собой информацию о связи с компанией, организацией и их следует считать такими. В этом случае авторы не должны использовать свойство N, но они могут устанавливать их в пустую строку. Из этого следует, что парсеры должны поступать таким же образом.
Рекомендации по оптимизации n
Несмотря на то, что vCard обязует использовать свойство N, сами авторы спецификации vCard не включают это свойство почти до конца спецификации (бывает и такое, да). Данное противоречие может быть разрешено следующим путём: необходимо позволить свойству FN заменять своим присутствием свойство N. Это и было сделано в hCard.
Если свойства FN и ORG не совпадают (см. предыдущий раздел) и значение свойства FN равно двум словам, разделённых пробелом и не указано свойство N, то свойство N «получается» из свойства FN. Если же FN не состоит ровно из двух слов, то авторы обязаны разметить свойство N, если они не создают hCard для организации, конечно.
- Содержимое FN разбито на два слова, разделённых пробелом.
- Первое слово в свойстве FN — это given-name для свойства N.
- Второе (последнее) слово в этом свойстве интерпретируется как family-name для свойства N.
- Исключение: если первое слово заканчивается запятой «,» или второе слово состоит только из одного символа (после которого может следовать точка «.»), то первое слово (не считая запятой) интерпретируется как family-name, а второе слово — как given-name.
Вот примеры типичных ситуаций:
- given-name (пробел) family-name
- family-name (запятая) given-name
- family-name (запятая) given-name-first-initial
- family-name (пробел) given-name-first-initial (необязательная точка)
Рекомендации по оптимизации nickname
Исходя из того, что в сети Интернет, в основном, используются никнеймы/псевдонимы для указания человека (автора), hCard также включает в себя свойство nickname.
По аналогии с оптимизацией n, если свойства FN и ORG не совпадают и значением свойства FN является ровно одно слово, при этом отдельного свойства N не указано, то:
- Содержимое FN должно считаться значением свойства nickname.
- Обработчикам (парсерам) следует заполнить пустыми значениями пропущенное свойство N.
Авторы hCard должны непосредственно указывать свойство nickname, например:
<span class="vcard"> <span class="fn nickname">daveman692</span> </span>
hCard может иметь отдельный элемент с классом nickname, значение которого и будет являться значением одноимённого свойства.
Оптимизации organization-name
Свойство ORG включает в себя два подсвойства: organization-name и organization-unit. Очень часто авторы публикуют только organization-name. Из этого следует, что если organization-name не указано внутри ORG, содержимое ORG должно трактоваться как organization-name.
Теги как категории
Категории в hCard могут быть представлены как теги c использованием микроформата rel-tag. Когда категория размечена с помощью rel-tag, сам тег (как определено спецификацией rel-tag) и является этой категорией.
Пары значений type и value
Подсвойство type может принимать различные значения, зависящие от того, к какому свойству оно принадлежит. Значения данного подсвойства являются нечувствительными к регистру (это значит, что «Рабочий» — то же самое, что и «рабочий»). Пример:
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>
Будет показано следующим образом:
Home (preferred): +1.415.555.1212
type без указанного value
Когда указан type свойства и не указан value свойства, всё, что не является type, считается value данного свойства, например:
<span class="tel"><span class="type">Home</span> +1.415.555.1212</span>
Равносильно следующему:
<span class="tel"><span class="type">Home</span><span class="value"> +1.415.555.1212</span></span>
Следовательно, type — это «home», а значение — это «+1.415.555.1212»
Возможные значения type для adr, tel и email
См. также разделы 3.2.1 ADR, 3.3.1 TEL и 3.3.2 EMAIL в RFC 2426 для нормативных сведений. Значение по умолчанию (даже если это несколько значений) — это первое значение в данном списке.
- adr: INTL, POSTAL, PARCEL, WORK, dom, home, pref
- tel: VOICE, home, msg, work, pref, fax, cell, video, pager, bbs, modem, car, isdn, pcs
- email: INTERNET, x400, pref, "other IANA registered address types"
Профиль XMDP
См. XMDP профиль hCard, который содержит все указанные выше свойства.
Информация об обработке
См. обработка hCard.
Примеры
Данный раздел является информативным
Пример vCard
Это пример vCard:
BEGIN:VCARD VERSION:3.0 N:Çelik;Tantek FN:Tantek Çelik URL:http://tantek.com/ END:VCARD
и эквивалент вышеприведённого vCard в разметке hCard:
<div class="vcard"> <a class="url fn" href="http://tantek.com/">Tantek Çelik</a> </div>
Этот hCard будет отображён следующим образом:
Замечание: информацию о версии не обязательно указывать в разметке hCard, так как эта информация будет включена в профиль hCard, который будет использован путём утилизации атрибута profile в HTML-элементе head.
Пример
Информация о связи с компанией Commercenet. Данный мимкроформат уже сейчас можно определить на этой странице с помощью различных утилит.
Palo Alto, CA 94301
Ниже представлена разметка с некоторыми семантическими улучшениями:
abbr
используется для аббревиатур- Имя организации представлено в виде ссылки
<div class="vcard"> <a class="fn org url" href="http://www.commerce.net/">CommerceNet</a> <div class="adr"> <span class="type">Work</span>: <div class="street-address">169 University Avenue</div> <span class="locality">Palo Alto</span>, <abbr class="region" title="California">CA</abbr> <span class="postal-code">94301</span> <div class="country-name">USA</div> </div> <div class="tel"> <span class="type">Work</span> +1-650-289-4040 </div> <div class="tel"> <span class="type">Fax</span> +1-650-289-4041 </div> <div>Email: <span class="email">info@commerce.net</span> </div> </div>
Дополнительные примеры
Дополнительные примеры вы найдёте на странице примеров hCard. Там также представлены примеры конвертированных из vCard hCard.
Кнопки
Вы можете использовать следующие кнопки на вашей странице вместе с микроформатом hCard:
Примеры в сети
Данный раздел является информативным. Количество примеров в сети очень большое, поэтому было решено переместить их на отдельную страницу
Реализации
Данный раздел является информативным.
См. реализации.
Ссылки
Нормативные
- XHTML 1.0 SE
- vCard RFC 2426
- Рекомендации ITU E.123 по записи телефонных номеров
- RFC 2119
Информативные
- История hCard
- X.520 в Postscript (Google Cached материал) - информация об свойстве ROLE.
- HTML-версия RFC 2426
- CSS1
- XHTML 1.1
- Статья в Wikipedia о рекоменациях ITU-T по E.123 - для значений "TEL".
- vCard и vCalendar (Internet Mail Consortium)
- ISO 8601
Спецификации, связанные с hCard
Подобные работы
Идея
Спасибо моему хорошему другу Вадиму, который познакомил меня с vCard много лет назад. Если бы я был более внимательным, то многим людям не пришлось бы тратить своё время, изобретая колесо.
Создание форматов на основе hCard
Данный раздел является информативным.