Eureka Wiki (易易维基)

本页面的其他翻译:

您的足迹: h-card

H-card

h-card

h-card 是用来在WEB上发布人或组织的简单,开放格式。h-card是几个 microformat 标准草案中的一个,适合于在HTML中内嵌数据。

h-card 是对 hCard 格式的microformats2更新。

按照CC0创作共用协议,为在法律上扩展允许范围,编辑放弃了该工作的所有的版权和相关邻权。此外,在2018年5月20日,编辑将该规范置于开放网络基础协议版本1.0之下。

例子

这是一个简单的最小的关于一个人的例子:

<a class="h-card" href="http://eeblog.net">Eureka's Blog</a>

解析为JSON:

{
  "items": [
    {
      "type": [
        "h-card"
      ],
      "properties": {
        "name": [
          "Joe Bloggs"
        ],
        "url": [
          "http://example.com"
        ]
      }
    }
  ]
}

和一个稍微完整点的例子:

<p class="h-card">
  <img class="u-photo" src="http://example.org/photo.png" alt="" />
  <a class="p-name u-url" href="http://example.org">Joe Bloggs</a>
  <a class="u-email" href="mailto:joebloggs@example.com">joebloggs@example.com</a>, 
  <span class="p-street-address">17 Austerstræti</span>
  <span class="p-locality">Reykjavík</span>
  <span class="p-country-name">Iceland</span>
</p>

解析为 JSON:

{
  "items": [
    {
      "type": [
        "h-card"
      ],
      "properties": {
        "photo": [
          "http://example.org/photo.png"
        ],
        "name": [
          "Joe Bloggs"
        ],
        "url": [
          "http://example.org"
        ],
        "email": [
          "mailto:joebloggs@example.com"
        ],
        "street-address": [
          "17 Austerstræti"
        ],
        "locality": [
          "Reykjavík"
        ],
        "country-name": [
          "Iceland"
        ]
      }
    }
  ]
}

嵌套的 h-card 例子

<div class="h-card">
  <a class="p-name u-url"
     href="https://eureka.name">Eureka Chen</a> 
  (<a class="p-org h-card" 
      href="http://mozilla.org/">Mozilla Foundation</a>)
</div>

解析为 JSON:

{
  "items": [{ 
    "type": ["h-card"],
    "properties": {
      "name": ["Eureka Chen"],
      "url": ["https://eureka.name"],
      "org": [{
        "value": "Mozilla Foundation",
        "type": ["h-card"],
        "properties": {
          "name": ["Mozilla Foundation"],
          "url": ["http://mozilla.org/"]
        }
      }]
    }
  }]
}

注: 嵌套 h-card 有隐含的 'name' 和 'url' 属性,就象其它在<a href>上的仅根类名(root-class-name-only)h-card那样。

开始

h-card 是表示存在一个h-card的 根类名

对于最小的例子,最多需要p-name, u-urlu-photo (就象上面的第一个),只需要root类名参见 隐含属性

对于更复杂的例子,根类名必须放在一个能够包括所有所需属性的元素上,而属性自身使用以下的类名进行标记。

了解更多的属性类名请参见 microformats2-parsing 。.

属性

在类h-card中的h-card属性:

  • p-name - 一个人或组织的全/格式化名字
  • p-honorific-prefix - 例如 Mrs., Mr. or Dr.
  • p-given-name - 给定 (经常为第一) 名,中文的名字
  • p-additional-name - 其它/中间名
  • p-family-name - 家庭名 (经常为最后) 名,中文的姓
  • p-sort-string - 排序字串
  • p-honorific-suffix</code>' - e.g. Ph.D, Esq.
  • p-nickname - 昵称/别名/操控名
  • u-email - 电子邮件地址
  • u-logo - 一个代表一个人或组织的图标。
  • u-photo
  • u-url - 主页
  • u-uid - 通用唯一识别码,典型的权威URL
  • p-category - 类别/标签
  • p-adr - 邮政地址,可选 嵌入一个 h-adr
  • p-post-office-box
  • p-extended-address - 部门/随员/房间名/号如果有
  • p-street-address - 街道号 + 名称
  • p-locality - 城市/城镇/乡村
  • p-region - 州/县郡/省
  • p-postal-code - 邮政编码, 例如 US ZIP
  • p-country-name - 国家名
  • p-label
  • p-geo'u-geo, 可选的嵌入一个 h-geo
  • p-latitude - 十进制纬度
  • p-longitude - 十进制经度
  • p-altitude - 十进制海拨高度
  • p-tel - 电话号码
  • p-note - 附加注释
  • dt-bday - 生日
  • u-key - 密码公钥,例如 SSH 或 GPG
  • p-org - 隶属组织,可选嵌入一个 h-card
  • p-job-title - 工作头衔, 以前在hCard中的title,消除歧义。
  • p-role - 角色描述
  • u-impp 按照 RFC4770, 新的在 vCard4 (RFC 6350)
  • p-sex - 生物学性,新的在vCard4 (RFC 6350)
  • p-gender-identity - 性别身份,新的在 vCard4 (RFC 6350)
  • dt-anniversary

所有的属性都是可选的。

当前在外面使用的实验性的属性,但还(没有)成为官方h-card规范的一部分。

  • u-sound - 名字(name)属性的恰当发音的声音文件。按照 vCard (RFC 6350).

状态

h-card 是microformats.org的草案规范。在 h-card-feedback 和irc.freenode.net上的#microformats irc 频道上可以公开讨论。

h-card 已经准备好在自然环境下使用和实施,但为了向后兼容,你应该将顶级h-cards 作为经典 hCard标记。

属性细节

(留位,等待扩展)

p-adr

p-adr 是可选的内嵌一个 h-adr 到簇关联结构化地址属性。 例如添加 “p-adr” 到前面的例子:

<div class="h-card">
  <p class="p-name">Joe Bloggs</p>
  <p class="p-adr h-adr">
    <span class="p-street-address">17 Austerstræti</span>
    <span class="p-locality">Reykjavík</span>
    <span class="p-country-name">Iceland</span>
  </p>
</div>

问:为什么要使用“p-adr”来聚集相关的结构化地址属性?

答:因为如果你有多个结构化地址,聚簇哪些属性与哪个地址一起可以确定它们能保持在一起,而不是依赖于数组索引或其他启发式。

p-tel

注意:'p-tel'中'value'的使用应该由值类模式的支持自动处理。 目前,以前hCard的'tel'子属性'type'丢弃/忽略。 如果有证据显示需要额外的电话类型(例如传真),我们可以根据需要引入新的直接属性(例如p-tel-fax)。

dt-bday

使用截短的出生日期表示法通常是很好的做法,如the vcard规范中所述

  • 1985-04 代表1985年4月
  • 1985 代表年份1985
  • –04-12 代表没有批定年份的的4月12日

保留属性

保留属性(如果有的话,在实践中用处不大):

  • p-organization-name
  • p-organization-unit
  • p-tz - 时区偏离例如 <data class=“p-tz” value=“-0800”>PST</data>
  • dt-rev

在自然中的例子

现实世界中发布或使用h-card的网站和服务的范例:

离线

  • spreadly marks up share permalink pages with minimal h-cards inside h-entry

验证

测试和验证microformats2标记一般有:

实现

发布或使用h-card的软件实现,包括主题,插件或扩展:

(这部分预留,需要扩展!实际上,默认情况下,每个独立网站上的几乎每个CMS都支持发布h-card。)

在添加实现时,请提供并链接到其主页和开放源代码库(如果有的话)。 * GNUsocial 源代码 * Hubzilla [https://github.org/redmatrix/hubzilla|源代码]] * Friendica [https://github.org/friendica/friendica|源代码]] * InkBlot * … * …

向后兼容性

发布商兼容性

为了向后兼容,除了更具前瞻性的h-card属性之外,您还可能希望使用经典的hCard 类名,例如:

<p class="h-card vcard">
  <span class="p-name fn">Joe Bloggs</span>,
  <span class="p-org org">Awesome Nonprofit</span>
  ...
</p>

vcard是一个向后兼容的根类名称,表示存在一个 hCard.

fnorg,以及其它向后兼容的hCard属性类名称列在下面。

解析器兼容性

只有找到经典的根类名称并将它们解析为microformats2属性时,微格式解析器才检测经典属性

如果发现 “h-card” ,不用在同一元素中寻找 “vcard” 。

Compat. 根类名: vcard
属性: (除非令外指定,解析 p- 纯文本)

  • fn - 解析作 p-name
  • honorific-prefix
  • given-name
  • additional-name
  • family-name
  • honorific-suffix
  • nickname
  • email - 解析作 u-
  • logo - 解析作 u-
  • photo - 解析作 u-
  • url - 解析作 u-
  • uid - 解析作 u-
  • category
  • adr - 解析作 p-adr h-adr 包括compat要类adr
  • extended-address
  • street-address
  • locality
  • region
  • postal-code
  • country-name
  • label
  • geo - 解析作 p-geo h-geo 包括compat根类 geo
  • latitude
  • longitude
  • tel
  • note
  • bday - 解析作 'dt-'
  • key - 解析作 'u-'
  • org
  • organization-name
  • organization-unit
  • title - 解析作 'p-job-title'
  • role

保留:(解析器可能实现向后兼容属性,如果它们这样做,它们必须以这种方式实现:

  • tz
  • rev - 解析为 'dt-'

背景

This work is based on the existing hCard and vcard specifications.

设计原则

(留白,扩展)

补充

我们已经非常努力地使h-card同vCard4词汇表保持兼容,因此需要补充的话可以在vCard4邮件列表中提出。

不过,您仍然可以使用这个wiki来抓取h-card的附加内容: * h-card-brainstorming * h-card-brainstorming

参见