如何在Gatsby中获取Markdown文件的目录名称?

梅比特

我有一个职位目录,如:

src
  -posts
    -post-a
      index.md
      demo.jpg
    -post-b
      index.md
      logo.jpg
  -pages
    index.js
    // ...

我想让目录名称post-a / post-b作为index.md的ID,我该怎么办?

这是我的gatsby-config.js

module.exports = {
  plugins: [
    {
      resolve: 'gatsby-source-filesystem',
      options: {
        name: 'posts',
        path: `${__dirname}/src/posts`,
      },
    },
    {
      resolve: 'gatsby-transformer-remark',
      options: {
        commonmark: true,
        footnotes: true,
        pedantic: true,
        gfm: true,
        plugins: [],
      },
    },
    'gatsby-transformer-sharp',
    'gatsby-plugin-sharp',
    'gatsby-plugin-react-helmet',
  ],
};

allMarkdownRemark.edges.node没有目录信息。

LekoArts

您可以使用createFilePath从功能gatsby-source-filesystem来构建你塞并将其添加到markdownRemark.fields使用onCreateNodeAPI。官方博客启动器也这样做:https : //github.com/gatsbyjs/gatsby-starter-blog/blob/04ace724603b46198665e052006031ba7e644f9d/gatsby-node.js#L53-L64

exports.onCreateNode = ({ node, actions, getNode }) => {
  const { createNodeField } = actions

  if (node.internal.type === `MarkdownRemark`) {
    const value = createFilePath({ node, getNode })
    createNodeField({
      name: `slug`,
      node,
      value,
    })
  }
}

现在,该条包含博客文章的目录名称。


您最初的问题:

您可以使用联合类型来访问父级,例如:

{
  allMarkdownRemark {
    nodes {
      parent {
        ... on File {
          dir
        }
      }
    }
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在grails中获取基础项目目录名称?

如何在perforce文件路径中获取第二个目录名称?

如何获取每个文件的目录名称?

如何使用Gradle获取文件和目录名称?

如何仅获取特定文件的父目录名称

命令以获取压缩文件中的最高目录名称

如何从Windows批处理脚本中的文件路径获取父目录名称?

如何在FOR循环内的Windows命令提示符中获取当前目录名称?

如何在目录名称中使用通配符在Perl中打开文件?

在BASH中,如何在递归“查找”的文件的复制语句中引用目录名称

如何获取目录树中具有特定文件扩展名的每个文件的目录名称?

如何在Elixir中创建相同的目录名称?

如何仅从HDFS获取目录名称

在Java中获取目录名称

从批次中的数组获取目录名称

在目录中以目录名称格式YYYY-MM-DD获取扩展名为.JPG的文件

从子文件夹调用批处理文件时,如何获取当前目录名称?

如何在 Asp.Net 核心 API 中获取具有给定目录名称的字符串变量中的目录路径

如何在每个子目录中创建一个文本文件,以便该文本文件包含目录名称

如何在保持文件扩展名的同时将目录中的文件重命名为其各自的目录名称?

获取Golang中给定文件路径的目录名称(不是路径)

如何在 Excel 中的不同目录中将每一行另存为单独的文件(在其中一列中引用目录名称)?

Powershell - 获取上次修改文件的父目录名称

如何在Gatsby中查询特定语言的markdown文件?

如何使用ansible和从文件中获取的目录名创建目录

如何通过在shell脚本中调用的窗口对话框获取目录名称?

如何获取子目录名称列表

如何获取我运行命令的目录名称

如何获取给定目录名称的树形哈希?