Я только что начал использовать метатеги schema.org, чтобы выделить структурированные данные на моем сайте.Можно ли использовать `itemscope =" false "itemtype =" false "` для обозначения страницы без структурированных данных?
Я использую node.js, express и jade для создания моего контента. Я настраиваю эти теги на некоторых, но не на всех страницах. Я не хочу искажать немаркированные страницы для поисковых систем.
Я не нашел изящный способ вставить атрибут 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>
элемента здесь?
Моя проблема в том, что условные предложения в Jade требуют от меня дублировать дочерние элементы. Поэтому мне пришлось бы дублировать ~ 1000 строк кода под HTML, один в 'if' и один в блоке нефрита' else' – Plato
Спасибо за подсказку о позиции элемента tagging. На моих страницах представлены блюда и рестораны. Я поместил теги в тег '' по предложению другого пользователя SO, поэтому общие сценарии Google/Facebook могут обращаться к метаданным. Я предполагаю, что это сработает, если я помечаю свой '# content' div на каждой странице соответствующим образом, а не' ' – Plato
другое решение вместо условных предложений должно помещать строку' "itemscope itemtype = http: //schema.org/MyType "" в переменную и включить механизм шаблона. Если вы не хотите разметки, пропустите пустую строку. Я не знаком с синтаксисом Jade, но он будет выглядеть как '', например. Jinja2. Затем присвойте '" itemscope itemtype = http: //schema.org/MyType "или' "" 'to'% markup% '. Это должно делать свое дело. –