Есть ли способ изменить внешний вид MDX в Gatsby?
Я использую gatsby-plugin-mdx
с Гэтсби. Я добавилdraft
на мой фронтментер, и я хотел бы переопределить его значение, чтобы оно всегда было ложным, когда NODE_ENV
является "production"
. Обратите внимание, чтоgatsby-plugin-draft
похоже, не изменяет MDX AST и несовместим с gatsby-plugin-mdx
.
1 ответ
Решение
Вы можете сделать это в 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'],
})
}
}