我正在为使用 GasbyJS 和 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
包,但它不会将 YML 字段值中的任何 Markdown 转换为 HTML,虽然我找到了一些通过添加 Markdown 支持来扩展它的包,但它们都需要任何 Markdown 值的某种前缀(即home-acting-text: md//I **am an actor.**
) 为了确定应该解析哪些,我想不出任何方法让 Netlify CMS 注入它。
似乎我可能不得不做一些自定义逻辑,gatsby-node.js
但我有点迷失从哪里开始——这似乎是一个足够常见的用例,我想知道我是否遗漏了一些东西。
任何指导将不胜感激!:)