更新: Schema.org 的 keywords 属性的定义发生了变化。现在它清楚地表明它需要多个标签,并且它们通常应该用逗号分隔。
tl;dr:如果您想为标签使用ul 元素,在 Microdata 中使用 Schema.org 的 keywords 属性可能如下所示:
<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
具有name 值keywords 的meta 元素提供了一种指定适用于整个页面的关键字的方法。这些关键字仅包含文本,因此您不能使用 URI。
所以对于典型的博客标签,你应该采用以下方式(可能除了meta-keywords)。
链接类型
HTML5 定义了link type tag:
tag关键字表示被引用文档所代表的标签适用于当前文档。
请注意,此链接类型只能用于单个帖子页面,因为该标签始终适用于整个页面。
(注意:tag 也是 Microformat,但它有不同的定义:您只能为微格式 tag 使用特制的 URL。)
如果您的标签更像类别(受控词汇而不是免费标签),您可以使用link type category(可能与tag 结合使用)。
标记的标记
您可以使用ul 或dl:
<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,例如作者、发表日期等。
带有逗号分隔的a 元素的div 当然也可以:
<div>Tags: <a href="/tags/foo" rel="tag">foo</a>, <a href="/tags/bar" rel="tag">bar</a></div>
列表的容器
footer element 的列表should be 的一部分(如果您在博客文章中使用article,则在article 内):
页脚通常包含有关其部分的信息,例如作者、相关文档的链接、版权数据等。
词汇
Schema.org
CreativeWork 定义属性keywords(BlogPosting 继承它):
用于描述此内容的关键字或标签。关键字列表中的多个条目通常由逗号分隔。
它需要纯文本,因此无法在 Schema.org 中提供标签 URL。
由于keywords 需要一个逗号分隔的标签列表,所以不能使用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>
如果使用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>
常用标签
Common Tag 是用于标记的 (RDF) 词汇表。与 Schema.org 的 keywords 属性相比,它使用 URI 作为标签,而不仅仅是文本。
来自他们在 RDFa 中的 Quick Start Guide 的示例:
<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>
说明:内容被标记为 (ctag:tagged),带有标签 (ctag:Tag)。该标签由 URI“http://rdf.freebase.com/ns/en.phoenix_mars_mission”定义(ctag:means),它被称为(ctag:label)“Phoenix Mars Lander”
您可以使用 ctag:AuthorTag 类代替 ctag:Tag(这意味着它由内容作者标记)。
护城河
还有 MOAT 词汇表,代表“Meaning Of A Tag”。不幸的是,their website 似乎消失了(?)。
允许用户定义标记对象和语义 Web 资源的 URI 之间关系的本体