我刚开始使用 schema.org 元标记来突出显示我网站上的结构化数据。
我正在使用 node.js、express 和 jam 来生成我的内容。我正在一些但不是所有页面上设置这些标签。我不想向搜索引擎歪曲未标记的页面。
我还没有找到一种优雅的方法来仅在情境中将itemscope
属性插入到我的 html 文档中。
编辑- @martinhepp 建议将属性字符串传递给 Jade 并将其插入标签内。我想这样做,但我不知道怎么做。这是我的尝试和输出。
//node.js
locals.testSchemaTag = 'itemscope itemtype="http://schema.org/Product"';
//jade
p(locals.testSchemaTag) Foo Bar
//rendered HTML
<p locals.testschematag="">Foo Bar</p>
所以这将是可取的。但是,如果这不起作用或没有人知道该怎么做,对于我不想指定特定模式的页面,设置itemscope
为 false 就足够了吗?
这就是我现在正在做的事情。
// node.js
res.locals.schema = res.locals.schema || {
itemtype: "false",
itemscope: "false",
properties: [],
};
if(res.locals.schema.itemtype !== "false"){
res.locals.schema.itemscope = "itemscope";
res.locals.schema.properties = res.locals.schema.properties || [];
};
// jade
!!!
html(itemscope=locals.schema.itemscope, itemtype=locals.schema.itemtype)
head
// rendered output A
<html itemscope="itemscope" itemtype="http://schema.org/Restaurant">
// rendered output B
<html itemscope="false" itemtype="false">
这会混淆搜索引擎还是他们会认识到我在这里禁用了元素的itemscope
和itemtype
属性?<html>