Могу ли я использовать переменные в JSON-LD?

Я пытаюсь внедрить Schema.org на странице часто задаваемых вопросов, но кажется повторяющимся, чтобы переписать все вопросы и ответы в схеме.

Поэтому мне было интересно, могу ли я вызвать переменную или класс в моем JSON-LD, чтобы получить вопросы и ответы из тела.

Что-то вроде кода ниже:

<head>
<script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "FAQPage",
      "url": "https://www.example.com",
      "mainEntity": [{
        "@type": "Question",
        "name": {{question}},
        "acceptedAnswer": {
          "@type": "Answer",
          "text": {{answer}}
        }
      }]
      }
    </script>
</head>
<body>
    <h3 class="question">This is question number one?</h3>
    <p id="answer"> This is the answer to Q1.</p>

    <h3 class="question">This is question number 2?</h3>
    <p class="answer">This is the answer to Q2.</p>
</body>

person Reemwal    schedule 30.07.2019    source источник
comment
Вы можете переключиться на использование микроданных, которые обертывают HTML. Или напишите JavaScript, который заменит эти переменные. или динамически генерирует весь json-ld.   -  person Tony McCreath    schedule 30.07.2019


Ответы (1)


Нет, JSON-LD этого не позволяет.

Если вы не хотите повторять свой контент, вы можете использовать микроданные или RDFa. С помощью этих синтаксисов вы добавляете атрибуты к существующим элементам HTML (подробности).

С RDFa это может выглядеть так:

<body typeof="schema:FAQPage">

  <link property="schema:url" href="https://www.example.com/" />

  <article property="schema:mainEntity" typeof="schema:Question">

    <h3 property="schema:name">This is question number one?</h3>

    <div property="schema:acceptedAnswer" typeof="schema:Answer">
      <p property="schema:text">This is the answer to Q1.</p>
    </div>

  </article>

</body>

(используя атрибут vocab RDFa, например, для элемента html, вы можете опустить префикс schema:; используя атрибут prefix RDFa, вы можете определить другой, например, более короткий префикс)

person unor    schedule 31.07.2019