Сопоставить вывод списка из GraphQL из файла уценки - PullRequest
1 голос
/ 04 апреля 2019

Я использую Gatsby.js и использую GraphQL для извлечения данных из файла уценки. Файл уценки имеет структуру содержимого:

---
title: abc
---

- heading A
 - sub-heading A
 - sub-heading B
- heading B
 - sub-heading A
 - sub-heading B
 - sub-heading C
...

Используя плагин gatsby-transformer-remark, вывод graphql, который я получаю, выглядит примерно так:

{
  "data": {
    "allMarkdownRemark": {
      "edges": [
        {
          "node": {
            "internal": {
              "content": "\n- heading A\n  - sub-heading An  - sub-heading B\n- heading B ....

Можно ли получить массив или даже объект из списка уценки, чтобы я мог отобразить (зациклить) значения в моем коде JavaScript?

Спасибо

1 Ответ

1 голос
/ 05 апреля 2019

Вы создаете оглавление? Плагин замечаний Гэтсби автоматически сгенерирует для вас таблицу содержания , есть также несколько вариантов, которые вы можете передать, чтобы изменить его.

Скопировано из документа:

{
  allMarkdownRemark {
    edges {
      node {
        html
        tableOfContents(
          pathToSlugField: "frontmatter.path"
          heading: "only show toc from this heading onwards"
          maxDepth: 2
        )
        frontmatter {
          # Assumes you're using path in your frontmatter.
          path
        }
      }
    }
  }
}

Если вы создаете пользовательскую таблицу содержимого, было бы проще сделать это в frontmatter. Если это невозможно, последний вариант, о котором я знаю, - это написать плагин для замечаний, который будет анализировать ваши данные, а затем присоединить его к узлу graphql

...