избегая повторения данных в hCard - PullRequest
0 голосов
/ 09 октября 2010

Я обновляю каталог сотрудников своей работы, добавляя данные hCard в список каждого сотрудника.

Проблема, которую я не смог выяснить, состоит в том, как избежать дублирования информации, такой как organization-name и organization-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-name из бизнеса hCard и organization-unit из <thead>.

Я довольно много разобрался microformats.org в поисках примера того, что я пытаюсь, но не повезло. Я даже заглянул в некоторые из их «микроформатов в диком» списке, но несколько сайтов, которые я нашел там с несколькими списками сотрудников, использовали тот же метод hidden с дублирующейся информацией, которую я использовал в моем примере.

Возможно ли то, что я пытаюсь сделать?

Ответы [ 3 ]

2 голосов
/ 09 октября 2010

С семантической точки зрения неверно пытаться избежать дублирования.Быть как можно более подробным (даже во имя дублирующего кода) - наиболее эффективный способ быть максимально явным.Ваш лучший вариант - скрыть это, как вы делаете.В соответствии со спецификацией hCard нет никакого способа ссылаться на информацию в другом месте документа.

Надеюсь, это прояснит ситуацию.

1 голос
/ 09 октября 2010

Я думаю, вы должны отделить вещи.Одна карточка для вашей компании и одна карточка для каждого сотрудника.

Повторение названия организации, организационной единицы на каждой карточке сотрудника не является проблемой.

0 голосов
/ 20 мая 2012

Вы можете использовать микроформат, включающий шаблон:

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

Все, что вам нужно сделать, это сослаться на родительский vcard с помощью привязки, например:

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

Я не нашел никакой информации о том, что Google поддерживает шаблон включения, но google анализирует мои страницы без каких-либо предупреждений на http://www.google.com/webmasters/tools/richsnippets, и моя страница в индексе выглядит нормально.

...