我发现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>
答案 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>
也许在发布之前应该清除文本。该工具似乎可以使用它,对我来说似乎还可以。