Schema.org标记中的“描述”是否必须没有HTML标记?

时间:2016-01-31 15:03:47

标签: html5 schema.org microdata

我发现Product Schema.org Microdata的所有电子商务网站都使用description属性中的纯文本。

是否有一些规范明确禁止使用某些文本格式标记标记,如:

<div itemscope itemtype="http://schema.org/Product">
<meta itemprop="name" content="Name" />
<meta itemprop="description" content="<p>First paragraph with <b>bold words<b/>.</p><p>Second paragraph.</p>" />
</div>

5 个答案:

答案 0 :(得分:4)

如果您正在使用较新的JSON-LD格式用于架构数据,那么(至少对于Google)似乎可以在某些字段中包含HTML标记 - 实际上,它们确实要求它。请参阅他们对JobPostings的建议,例如,他们在哪里说明:

  

HTML格式的作业的完整描述。

     

您必须使用HTML格式化说明。

他们的Structured Data Testing Tool肯定不会在字段中抱怨HTML,尽管您可能希望将其限制为基本标记。其他解析器是否可以使用它很难说。

答案 1 :(得分:2)

您正在使用meta element。它的content attribute只能包含一个字符串。如果您提供的值为<b>bold</b>,则<b></b>将成为值的一部分,这些将被解释为as text,而不是标记。

对于Schema.org的description属性,您当然可以使用其他元素(如p)。这可能包含标记,但description属性的值为the text value

所以

<p itemprop="description">foo <b>bar</b></p>

值将是&#34; foo bar&#34;。

答案 2 :(得分:0)

description的数据类型定义为Text。我认为很明显,目的是这应该是纯文本。

如果描述最终出现在网页上,例如在搜索引擎结果中,则无疑会对文本进行HTML编码以防止脚本注入等内容,因此实际上会使用尖括号向用户显示作为格式化。

答案 3 :(得分:0)

Matthew是对的,您应该只提供文本作为description元标记的值。但是Unor也是对的,在这种情况下推荐的方法是使用微数据来标记本身,例如:

<div itemscope itemtype="http://schema.org/Product">
 <p itemprop="name">Product's Name</p>
 <p itemprop="description">Products description.<strong>Some bold text</strong></p>

Here您可以完全按照Google推荐的那样查看。 here您可以逐页测试,甚至可以将代码粘贴到那里进行测试。

您可能需要阅读here为什么要避免使用<b>作为粗体。

答案 4 :(得分:0)

尽管这是一个古老的问题。我有不同的解决方案。 该说明中的标签不是标签,因此google不会将其阅读为文本。

您可以像这样在content属性中传递描述。

  <p itemprop="description" content="<%:Model.Description %>"><%:Html.Raw(Model.Description) %> </p>

也许在发布之前应该清除文本。该工具似乎可以使用它,对我来说似乎还可以。