4

我正在使用 Gatsby JS,并且正在尝试制作一个使用 Markdown 文件生成博客文章的博客。我的博文模板中有不同的部分,我想将它们放入我的博文模板中的不同部分。但我不确定如何在我的 Markdown 文件中单独访问它们。

我知道如何获取整个文本以及如何获取我的frontmatter 的单独部分,但我不知道如何从我的文本中获取例如“成分”信息。

现在我正在通过将博客文章的不同部分直接包含在 frontmatter 中来解决这个问题,所以我可以使用 graphQL 访问这些部分,但我知道这不是 frontmatter 应该用于的。

有没有办法将我的 Markdown 文本的一部分拆分为多个部分,以便我可以在 GraphQL 查询中使用这些单独的部分?

这就是我所拥有的:

---
title: "Cake"
date: "09-12-2017"
post: "2"

Name: "Chocolate Cake"
Author: "DJ"
Source: "Book"

Ingredients: "milk, dark chocolate, coca cola, skittles, tea, liquorice"

Subtitle1: "First Heading |"
Subtitle2: "Second Heading |"
Subtitle3: "Third Heading |"

Text1: "first text"
Text2: "second text"
Text3: "third text"
---

My excerpt goes here

我想做这样的事情:

---
title: "Cake"
date: "09-12-2017"
post: "2"
---

Name: " Chocolate Cake"
Author: "DJ"
Source: "Book"

Ingredients: "milk, dark chocolate, coca cola, skittles, tea, liquorice"

Subtitle1: "First Heading |"
Subtitle2: "Second Heading |"
Subtitle3: "Third Heading |"

Text1: "first text"
Text2: "second text"
Text3: "third text"

Excerpt: my excerpt goes here

然后以某种方式能够获取这些单独的信​​息片段以在博客文章模板中使用。

4

1 回答 1

1

Gatsby 的数据层有钩子,允许您对数据进行自定义转换,例如将降价文件拆分为结构化字段。

为此,请onCreateNode在您的gatsby-node.js文件中实现并解析您的降价文件并将字段添加到 MarkdownRemark 节点上createNodeField

于 2017-11-10T20:17:06.620 回答