如何在Gatsby中处理内容丰富的内容数据

时间:2016-06-14 16:00:40

标签: contentful gatsby netlify

我有兴趣使用Gatsby使用Netlify

中的内容构建Contentful静态网站

Netlify有一个很好的开始Gatsby指南: https://www.netlify.com/blog/2016/02/24/a-step-by-step-guide-gatsby-on-netlify

但是我有点不确定如何将Contentful带入混合体中。我是否需要编写脚本来将我的Contentful内容转换为Gatsby' markdown'?

任何想法,想法,链接都赞赏!

3 个答案:

答案 0 :(得分:3)

这是我用来从Contentful中提取数据的脚本: https://gist.github.com/ivanoats/e79ebbd711831be2536d1650890055c4

我在gatsby build之前通过npm运行脚本运行它。

我很乐意在插件上工作或者为这个过程获得更好的架构想法。

我在Aerobatic blog

上更详细地撰写了关于此架构的帖子

答案 1 :(得分:3)

自从发布此问题以来,官方的Contentful插件已被添加到Gatsby的收藏中(由盖茨比团队创建的官方内容,而非Contentful):https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-source-contentful

示例网站的src代码位于:https://github.com/gatsbyjs/gatsby/tree/master/examples/using-contentful

插件通过gatsby-tranfsormer-remark处理降价并生成结果HTML,您可以通过Gatsby的GraphQL服务器访问该问题,并使用来自the example proj的查询:

 contentfulProduct(id: { eq: $id }) {
      productName {
        productName
      }
      productDescription {
        childMarkdownRemark {
          html
        }
      }
      price
    }

您可以使用该插件将两者连接到Content API(针对已发布的资源/内容)和/或预览API(针对已发布的草案内容/资产)。

我们使用NODE_ENV从dev中的Preview API和生产中的Content API中提取。

答案 2 :(得分:0)

现在最好的选择是编写一个脚本,将Contentful中的内容同步到您的Gatsby网站页面目录。

然而,计划在Gatsby中添加支持以实现半自动化。早期的日子还在这里!有关更多https://github.com/gatsbyjs/gatsby/issues/324

的信息,请参阅此问题