Разметка GraphQL в схему - PullRequest
       12

Разметка GraphQL в схему

0 голосов
/ 07 октября 2019

Я создаю сайт с помощью Gatsby и пытаюсь настроить некоторые структурированные данные, чтобы облегчить видимость поиска. Мне нужна помощь, когда в массиве image есть несколько изображений. Вот пример того, что я хочу:

const schemaOrgJSONLD = [
  {
    "@context": "https://schema.org",
    "@type": "EventVenue",
    image: [
      "https://example.com/photos/1x1/photo.jpg",
      "https://example.com/photos/4x3/photo.jpg",
      "https://example.com/photos/16x9/photo.jpg",
    ]
  }
]

У меня есть 10 изображений, которые я могу получить с помощью Graphql, возвращая их publicURL:

{data.allFile.edges.map(({ node }, i) => node.publicURL)}

Это дает мне такой вывод:

/static/venue-001.jpg
/static/venue-002.jpg
/static/venue-003.jpg
...

Что мне нужно сделать, это перевести эти возвращенные URL-адреса в формат разметки схемы, который Google примет. Таким образом, как и выше, правильным выводом будет:

const schemaOrgJSONLD = [
  {
    "@context": "https://schema.org",
    "@type": "EventVenue",
    image: [
      "https://example.com/static/venue-001.jpg",
      "https://example.com/static/venue-002.jpg",
      "https://example.com/static/venue-002.jpg",
    ]
  }
]

Я в принципе не знаю, как преобразовать то, что мне дает graphql, в допустимую разметку схемы, когда дело касается нескольких изображений.

1 Ответ

0 голосов
/ 07 октября 2019

Со своей стороны, я создал массив перед объявлением schemaOrg, например:

let schemaOrgImages = [];
data.allFile.edges.forEach(node => schemaOrgImages.push(node.publicURL));

const schemaOrgJSONLD = [
  {
    "@context": "https://schema.org",
    "@type": "EventVenue",
    image: schemaOrgImages
  }
]

Возможно, есть другой способ сделать это, но этот метод работает с проверкой schemaOrg.

...