有没有办法修改 Gatsby 中的 MDX frontmatter?
Is there a way to modify MDX frontmatter in Gatsby?
我正在使用 gatsby-plugin-mdx
和 Gatsby。我已经在我的 frontmatter 中添加了一个 draft
字段,并且当 NODE_ENV
为 "production"
时,我想将其值覆盖为始终为 false。请注意 gatsby-plugin-draft
似乎没有修改 MDX AST 并且与 gatsby-plugin-mdx
.
不兼容
你可以在 onCreateNode
方法中做到这一点。
你可以这样做:
// onCreateNode.js
const { createFilePath } = require('gatsby-source-filesystem')
module.exports = ({ node, getNode, actions }) => {
const { createNodeField } = actions
if (node.internal.type === 'Mdx') {
const slug = createFilePath({ node, getNode, basePath: 'pages' })
const isProduction = ... // TODO: implement
createNodeField({
node,
name: 'draft',
value: isProduction? false : node.frontmatter['draft'],
})
}
}
我正在使用 gatsby-plugin-mdx
和 Gatsby。我已经在我的 frontmatter 中添加了一个 draft
字段,并且当 NODE_ENV
为 "production"
时,我想将其值覆盖为始终为 false。请注意 gatsby-plugin-draft
似乎没有修改 MDX AST 并且与 gatsby-plugin-mdx
.
你可以在 onCreateNode
方法中做到这一点。
你可以这样做:
// onCreateNode.js
const { createFilePath } = require('gatsby-source-filesystem')
module.exports = ({ node, getNode, actions }) => {
const { createNodeField } = actions
if (node.internal.type === 'Mdx') {
const slug = createFilePath({ node, getNode, basePath: 'pages' })
const isProduction = ... // TODO: implement
createNodeField({
node,
name: 'draft',
value: isProduction? false : node.frontmatter['draft'],
})
}
}