避免在hCard中重复数据

时间:2010-10-09 00:59:54

标签: html microformats

我正在修改我的工作的员工目录,将hCard数据添加到每个员工的列表中。

我无法弄清楚的问题是如何避免重复信息,例如organization-nameorganization-unit

以下是我的代码的精简示例:

<div id="hcard-business" class="vcard">
  <div class="adr">
    <div class="org fn"><a class="url" href="http://www.business.com/">Business</a></div>
    <div class="street-address">123 Business Street</div>
    <div>
      <span class="locality">City</span>, 
      <abbr class="region" title="State">ST</abbr>,
      <span class="postal-code">99999</span>,
      <span class="country-name">USA</span></div>
    </div>
  </div>
</div>

<table class="contact">
  <thead>
    <tr><th colspan="4">Marketing Department</th></tr>
    <tr class="head"><th>NAME</th><th>TITLE</th><th>PHONE</th><th>EMAIL</th></tr>
  </thead>
  <tbody>
    <tr id="hcard-employee1" class="vcard odd">
      <td class="fn">Employee Name</td>
      <td class="title">Director</td>
      <td class="tel">907-335-1243</td>
      <td>
        <a class="email" href="mailto:employee.name@business.com">employee.name@business.com</a> 
        <span class="org fn hidden">
          <span class="organization-name">Business Name</span>, 
          <span class="organization-unit">Marketing</span>
        </span>
      </td>
    </tr>
    <tr id="hcard-employee2" class="vcard even">
      <td class="fn">Employee Name</td>
      <td class="title">Assistant</td>
      <td class="tel">907-335-1243</td>
      <td>
        <a class="email" href="mailto:employee.name@business.com">employee.name@business.com</a> 
        <span class="org fn hidden">
          <span class="organization-name">Business Name</span>, 
          <span class="organization-unit">Marketing</span>
        </span>
      </td>
    </tr>
  </tbody>
</table>

我尝试做的是从上一个hidden删除<td>范围,从商家organization-namehCard抓取organization-unit来自<thead>

我几乎在搜寻microformats.org寻找我正在尝试的例子,但没有运气。我甚至偷看了他们的几个“野外微格式”列表,但我在那里发现的有多个员工名单的少数网站使用了相同的hidden方法,并且我在我的示例中使用了重复的信息。

我正在尝试做甚么可能吗?

3 个答案:

答案 0 :(得分:2)

从语义角度来看,尝试避免重复是不正确的。尽可能冗长(即使以复制代码的名义)是尽可能明确的最有效方式。你最好的选择是隐藏你正在做的事情。根据hCard规范,没有办法在文档的其他地方引用信息。

希望这可以解决问题。

答案 1 :(得分:1)

我认为你应该把事情分开。贵公司的一张卡,每位员工一张卡。

在每张员工卡上重复组织名称,组织单位根本不是问题。

答案 2 :(得分:0)

您可以使用微格式包含模式:

http://microformats.org/wiki/include-pattern

您所要做的就是使用锚引用父vcard,例如:

<span class="item"><a href="#vcard" class="include">Somename</a></span>

我没有找到任何关于谷歌支持包含模式的信息,但谷歌在http://www.google.com/webmasters/tools/richsnippets没有任何警告的情况下解析我的网页,我的网页在索引中似乎没问题。