使用HTML5和Microdata标记博客文章“关键字”的正确方法?

时间:2013-04-26 05:23:27

标签: html5 schema.org semantic-markup microdata

来自Schema.org的keywords属性,因为它以复数形式表示,似乎暗示它的值应该是一行以逗号分隔的文本。如下例所示:

<p itemprop="keywords">lorem, ipsum, dolor, sit, amet</p>

这让我想起了<meta name="keywords" content="lorem, ipsum, dolor, sit, amet">标记,我们过去常常将<head></head>用于搜索引擎优化的原因。

但是,从语义学的角度来看,我认为上面的例子是不正确的,因为关键字应该是一个单词列表。因此,应使用<ul>元素进行标记。

对于如何使用HTML5和Microdata标记博客文章的关键字,是否存在共识?

1 个答案:

答案 0 :(得分:8)

更新: Schema.org的keywords属性的定义已更改。现在它清楚地表明它需要多个标签,并且它们通常应该以逗号分隔。

tl; dr :如果您想为代码使用ul元素,那么使用Schema.org的keywords属性在Microdata中可能如下所示:

<article itemscope itemtype="http://schema.org/BlogPosting">

  <footer>
    <ul itemprop="keywords">
      <li><a href="/tags/foo" rel="tag">foo</a>,</li>
      <li><a href="/tags/bar" rel="tag">bar</a></li>
    </ul>
  </footer>

</article>

如果像这样使用它,您必须确保ul不包含其他非标记文字。


HTML

metakeywordsname元素提供了一种指定适用于整个页面的关键字的方法。这些关键字仅包含文本,因此您无法使用URI。

因此,对于典型的博客标记,您可以采用以下方式(可能除meta - keywords之外)。

链接类型

HTML5定义了link type tag

  

tag关键字表示引用的文档所代表的标记适用于当前文档。

请注意,此链接类型只能用于单个帖子页面,因为标记始终适用于整个页面。

(注意:tag也是Microformat,但它的定义不同:您只能为Microformat tag使用特制网址。)

如果您的代码更像是类别(受控词汇而非免费标记),则可以使用link type category(可能与tag结合使用)。

标签的标记

您可以使用uldl

<ul>
  <li><a href="/tags/foo" rel="tag">foo</a></li>
  <li><a href="/tags/bar" rel="tag">bar</a></li>
</ul>
<dl>
  <dt>Tags</dt>
  <dd><a href="/tags/foo" rel="tag">foo</a></dd>
  <dd><a href="/tags/bar" rel="tag">bar</a></dd>
</dl>

当您还要列出其他元数据时,我会使用dl,例如作者,出版日期等。

当然,带有逗号分隔的div元素的a也可以使用:

<div>Tags: <a href="/tags/foo" rel="tag">foo</a>, <a href="/tags/bar" rel="tag">bar</a></div>

列表的容器

should befooter element部分列表(如果您在博文中使用了article,请keywords内):

  

页脚通常包含有关其部分的信息,例如谁编写,相关文档的链接,版权数据等。

词汇

Schema.org

CreativeWork定义了属性keywordsBlogPosting继承了它):

  

用于描述此内容的关键字或标签。关键字列表中的多个条目通常用逗号分隔。

它需要纯文本,因此无法在Schema.org中提供标记URL。

由于dl需要逗号分隔的代码列表,因此无法使用dl(除非ul不包含任何标记)。

使用<ul itemprop="keywords"> <li><a href="/tags/foo" rel="tag">foo</a>,</li> <li><a href="/tags/bar" rel="tag">bar</a></li> </ul> ,在Microdata中看起来像这样:

div

如果使用div,您需要添加另一个child / <div>Tags: <span itemprop="keywords"><a href="/tags/foo" rel="tag">foo</a>, <a href="/tags/bar" rel="tag">bar</a></span></div> ,以便标签&#34;标记:&#34;不被解释为标签本身:

keywords

通用标签

Common Tag是用于标记的(RDF)词汇表。与Schema.org的<div xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged"> NASA's <a typeof="ctag:Tag" rel="ctag:means" href="http://rdf.freebase.com/ns/en.phoenix_mars_mission" property="ctag:label">Phoenix Mars Lander</a> has deployed its robotic arm. </div> 属性相比,它使用URI作为标记,而不是仅使用文本。

他们在RDFa中的Quick Start Guide示例:

ctag:tagged

说明:内容已使用标记(ctag:Tag)进行标记(ctag:means)。此标记由URI&#34; http://rdf.freebase.com/ns/en.phoenix_mars_mission&#34;定义(ctag:label)。它被称为(ctag:Tag)&#34; Phoenix Mars Lander&#34;

而不是ctag:AuthorTag您可以使用类{{1}}(这意味着它由内容作者标记)。

MOAT

还有MOAT词汇表,代表&#34;标签的含义&#34;。不幸的是,their website似乎已经消失了(?)。

  

允许用户定义Tag对象与语义Web资源的URI之间关系的本体