Есть ли способ изменить фронтматер MDX в Гэтсби? - PullRequest
1 голос
/ 04 мая 2020

Я использую gatsby-plugin-mdx с Гэтсби. Я добавил поле draft в мой frontmatter и хотел бы переопределить его значение, чтобы оно всегда было ложным, когда NODE_ENV равно "production". Обратите внимание, что gatsby-plugin-draft, похоже, не изменяет AST MDX и несовместимо с gatsby-plugin-mdx.

1 Ответ

2 голосов
/ 04 мая 2020

Вы можете сделать это методом 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'],
    })
  }
}
...