graphql - 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 文件?
解决方案
推荐阅读
- python - 如何拆分具有不同格式和不同分隔符的名称的列
- c++ - 如何检查 std::cin 是否失败
- python - 当自定义命名空间为对象时,未设置默认 argparse 参数值
- google-bigquery - 具有不同列的 BigQuery 联合表,用空值填充
- yii2 - Yii2通过excel文件更新数据加载时间长
- excel - 列出有条件引用的项目的索引数组
- javascript - eval 在 JavaScript 中是如何工作的?为什么 eval('011+011') 不等于 eval('11+11')
- android - Android多个启动器活动?
- javascript - 使用 Ajax GET 和 access_token 的 Mailchimp API 调用抛出 ERR_ABORTED 401
- python - pycharm 使用 pyside2 TypeError:'NoneType' 对象不可调用