これは Craft CMS Advent Calendar 2020 3日目の記事です。
Craft CMS の GraphQL と Gatsby をつかってページを静的にビルドしてみる。
先日かいたエントリを参考にCraft CMS には Gatsby Helper プラグインをインストールしておく。
Gatsby Helper, gatsby-source-craft プラグインともに、1.0.0-beta2(2020-12-02時点)だった。(アップデートしてなくて色々こけた)
先日のエントリの内容で gatsby develop
で立ち上がるところまでは動いている前提。
立ち上げた GraphiQL で Craft CMS側のデータがみえているのも確認する。
GraphiQLでレスポンスを確認する。
{ allCraftTestTestEntry(limit: 10) { nodes { id title url } } }
これでひとまず10件のエントリが返ってくるのを確認。
index.js を編集する
import React from "react" import { useStaticQuery, graphql } from "gatsby" const RecentEntriesQuery = graphql` { allCraftTestTestEntry(limit: 10) { nodes { id title url } } } `; export default function Home() { const {allCraftTestTestEntry: {nodes}} = useStaticQuery(RecentEntriesQuery); return ( <div> <h1>Hello world!</h1> <div className="flex flex-wrap -mx-4"> {nodes.map(({id, title,url}) => ( <p><a href={url}>{title}</a></p> ))} </div> </div> ) }
ひとまずこのように変更することで、GraphQLで取得した一覧がリストアップされる。
Twig を書く方が楽だなぁと思うところはあるが引き続き続けていく。