1

Gatsby Transformer Remark プラグインを使用して、作成時に MarkdownRemark GraphQL ノードにさらに情報を追加したいと思います。

現在、私はプラグイン内でそれをやろうとしています:

gatsby-config.js

/* ... */
{
  resolve: "gatsby-transformer-remark",
  options: {
    pedantic: false,
    plugins: [
      'my-remark-plugin',
    ]
  }
}
/* ... */

plugins/my-remark-plugin/index.js

module.exports = async ({markdownNode, actions}, pluginOptions) => {

  /* Somehow add more data to the markdownNode which can be queried */

}

ただ明確にします; AST ノードを変更するつもりはありません。プラグイン内から、MarkdownRemark GraphQL ノードが作成されるときに、さらに任意のデータを追加したいと考えています。

使用してみcreateNodeFieldましたが、クエリ時にフィールドを見つけることができません。

gatsby-transformer-remark プラグインがこれを行う場所ではない可能性はありますか? で標準の Gatsby プラグインを使用するとフィールドが作成されcreateNodeFieldますが、Gatsby Transformer Remark プラグイン内から作成しようとしています。

4

1 に答える 1

0

createNodeFieldの下にフィールドが作成されfieldsます。GraphiQL で、allMdx->nodes->fields を展開します。Markdown の代わりに MDX を使用します。Gatsby ドキュメントの例に似た例を次に示します。

exports.onCreateNode = ({node, actions, getNode, createNodeId, createContentDigest}) => {
  const {createNodeField} = actions
  if (node.internal.type === `Mdx`) {
    const value = createFilePath({node, getNode})
    createNodeField({name: `slug`, node, value})
  }
}
于 2021-02-27T17:25:06.323 に答える