Есть ли способ изменить внешний вид 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'],
    })
  }
}
Другие вопросы по тегам