GatsbyJS如何使用GraphQL获取markdown文件并在特定页面上显示数据

时间:2018-02-07 22:30:15

标签: javascript reactjs graphql gatsby

我正在使用gatsby构建一个markdown - 我希望在特定网页上显示某些graphql文件的网站。

我的结构是这样的:

src
  content
     about
       file1.md
       file2.md
     services
       somefile.md
       another.md
  pages
     about
       index.js

// etc.

markdown文件的一个例子是:

---
key: about
title: some title
---
## this is some section header

this is some dummy text

然后我有我的反应文件,例如例如about页面,我想显示所有markdown - 位于content/about - 文件夹中的文件..

import React from "react"

const AboutPage = ({data}) => {

   return(
       <div>
        // here the markdown data should be displayed
      </div>
   ) 
}

我可以执行graphql - 仅针对此页面的查询吗?我可以通过查询密钥来获取数据,还是应该设置路径值?

欢迎任何建议......

2 个答案:

答案 0 :(得分:0)

Gatsby-source-filesystem插件允许您获取目录中的文件

答案 1 :(得分:0)

我不确定您是否已解决此问题,但遇到类似问题。您可以将过滤器添加到最前面:

{
  allMarkdownRemark(
    filter: {
      frontmatter: {
        title: { eq:"Intro" }
      }
    }
  ) {
    edges {
      node {
        fileAbsolutePath
        id
        frontmatter {
          title
          path
          date(formatString: "DD MMMM, YYYY")
          imgSrc
        }
        html
      }
    }
  }
}

输出: Result from GraphiQL

希望有帮助。