Как преобразовать YAML, содержащий Markdown, для отображения в Gatsby - PullRequest
0 голосов
/ 15 января 2020

Я работаю над созданием бизнес-сайта для друга, используя Gasby JS и NetlifyCMS для контента. Я сталкиваюсь с небольшой проблемой, определяющей, как использовать CMS для поддержки информации в формате Markdown, которая не структурирована, как запись в блоге, поскольку именно здесь работают многие учебные руководства.

Моя конфигурация Netlify CMS выглядит следующим образом:

backend:
    name: github
    repo: my/repo

media_folder: static/assets
public_folder: assets

collections:
    - label: 'Pages'
      name: 'pages'
      files:
          - label: 'Home Page'
            name: 'home'
            file: 'content/home.yml'
            fields:
                - {
                      label: 'Home Banner Text',
                      name: home-banner-text,
                      widget: markdown,
                  }
                - {
                      label: 'Home Acting Text',
                      name: home-acting-text,
                      widget: markdown,
                  }
                - {
                      label: 'Home Costume Design Text',
                      name: home-costume-design-text,
                      widget: markdown,
                  }
                - {
                      label: 'Home Modeling Text',
                      name: home-modeling-text,
                      widget: markdown,
                  }

, который создает файл YML на C:/path/to/my/site/content/home.yml, таким образом:

home-banner-text: 'Welcome to my site!'
home-acting-text: I **am an actor.** Click here to learn about my acting work.
home-costume-design-text: I am a costume designer. Click here to learn about my costume design work.
home-modeling-text: I am a model. Click here to learn about my modeling work.

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

Что я не могу понять, так это как преобразовать это в Гэтсби, как только он получен через gatsby-source-filesystem. Существует пакет gatsby-transform-yaml, но он не преобразует значения Markdown в полях YML в HTML, и хотя я нашел несколько пакетов, которые расширяют его, добавив поддержку Markdown, все они требуют какого-то префикса для любые значения Markdown (например, home-acting-text: md//I **am an actor.**), чтобы определить, какие из них должны быть проанализированы, и я не могу придумать, как заставить Netlify CMS внедрить это.

Похоже, у меня, вероятно, будет чтобы сделать некоторые пользовательские логики c в gatsby-node.js, но я немного растерялся, с чего начать - и это похоже на достаточно распространенный вариант использования, который мне интересно, если я что-то упустил.

Любое руководство будет оценено! :)

1 Ответ

0 голосов
/ 16 января 2020

Вы проверили документы Гэтсби? Я предполагаю, что у вас есть, но если у вас нет, то я предлагаю начать там. Быстрый поиск показывает это: Sourcing от Netlify CMS

...