带有MarkdownRemark的多个帖子类型

Ali*_*Ali 4 gatsby

我想知道在gatsby静态网站中是否可以有多个帖子类型。

在gatsby-config.js上,我有以下代码。

{
resolve: `gatsby-source-filesystem`,
options: {
  path: `${__dirname}/content/books`,
  name: `books`,
}

{
resolve: `gatsby-source-filesystem`,
options: {
  path: `${__dirname}/content/posts`,
  name: `posts`,
}
Run Code Online (Sandbox Code Playgroud)

这两个文件夹都具有相关的markdown文件,我找不到graphql的任何示例来检索这两个文件。

提前致谢。

小智 5

另请参阅 本(1) 和 本(2)问题/评论,它们使事情变得清晰:

1。

回顾过去,将该字段添加到gatsby-transformer-remark中是错误的,将来会被删除

2。

使用正则表达式也是一个很好的解决方案,例如,我们在gatsbyjs.org上使用了很多。

示例:因此,这是仅获取帖子的方法:

{
   allMarkdownRemark(
    sort: { order: DESC, fields: [frontmatter___date]},
    filter: {fileAbsolutePath: {regex: "/(\/content\/posts)/.*\\.md$/"}}
  ) {
      edges {
        node {
          excerpt(pruneLength: 250)
          id
          frontmatter {
            title
            date(formatString: "MMMM DD, YYYY")
            path
          }
        }
      }
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 1

一旦它们进入 grapqhl(通过 gatsby-source-filesystem),就像您现在设置的那样,gatsby-transformer-remark 会将它们全部拉入 AllMarkdownRemark 查询,无论它们来自哪里。gatsbyjs.org 文档也做了同样的事情,请在此处查看源代码。

尝试为 Markdown 内容创建查询,如官方教程的第 4 部分所示,您应该可以访问这两个文件夹中的所有页面。现在,如果您想以某种方式拆分它们,则必须进行检查。请参阅gatsby-node.js上面链接中的文件,了解其外观的示例。