首页 > 解决方案 > Gatsby & markdown - 获取和写入任务列表

问题描述

我有一个 gatsby 项目,它的根目录中有一个README.md文件。它的内容看起来像这样

# This is a title

Some random description here...

# My Solar System

- [ ] Mercury
- [x] Venus
- [x] Earth (Orbit/Moon)
- [ ] Jupiter

我安装gatsby-transformer-remark并配置gatsby-source-filesystem如下:

        {
            resolve: "gatsby-source-filesystem",
            options: {
                name: "images",
                path: `${__dirname}/src/images`
            }
        },
        {
            resolve: "gatsby-source-filesystem",
            options: {
                name: "root",
                path: `${__dirname}`,
                ignore: [`**/\.*`] // ignore files starting with a dot
            }
        }

我现在要做的是获取特定标题(例如My Solar System)下的数据并将其存储到复选框输入表单中。因此,我想{name, isChecked}为 md 任务列表中的每个条目获取类似的东西。

我尝试像这样构建一个graphql查询

query MyQuery {
  markdownRemark(fileAbsolutePath: {regex: "/README.md/"}) {
    htmlAst
  }
}

这会返回一个巨大的对象,其中包含我需要的信息。但是,找到这些数据并将其过滤掉是一件很痛苦的事情。直接在查询中过滤也是不可能的,因为Field "htmlAst" must not have a selection since type JSON has no subfields

在这种情况下,有什么办法可以得到我需要的东西吗?如果是这样,如果任何值发生变化,是否甚至可以写回 .md 文件?

标签: graphqlmarkdowngatsby

解决方案


推荐阅读