Gatsbyには公式ページにチュートリアルがある
Gatsby公式ページにはチュートリアルがある。
開発環境の準備から具体的なページの作成まで丁寧に書かれてはいるが、 英語であるため多少慣れていないと読みづらいという難点が。 (割と読みやすい英語ではありますが)
日本語で分かりやすいページを探す
どれもQiitaではあるが、以下のページは順を追ってWebページを作成している過程が説明されており分かりやすかった。
各投稿に「最近の投稿」のパートを追加してみる
「GatsbyjsでWordPress風の簡易ブログを作って勉強してみた」 を参考に、各投稿のページに「最近の投稿」欄を設けてみた。
src/componets/
に直近3回の投稿のリストを表示させるためのrecent-post.js
を作成。
src/componets/recent-posts.js
import * as React from "react"
import { useStaticQuery, graphql, Link } from "gatsby"
const RecentPosts = () => {
const {
recentlyAllMarkdownRemark: { edges: recentlyBlogs }
} = useStaticQuery(
graphql`
query {
recentlyAllMarkdownRemark: allMarkdownRemark(
sort: { fields: [frontmatter___date], order: DESC }
limit: 3
) {
edges {
node {
id
frontmatter {
title
}
fields {
slug
}
}
}
}
}
`
)
return (
<div>
<h3>Recent Posts</h3>
<ul>
{recentlyBlogs.map(
({
node: {
id,
frontmatter: { title },
fields: { slug },
},
}) => (
<li key={id}>
<Link to={slug}>{title}</Link>
</li>
)
)}
</ul>
</div>
)
}
export default RecentPosts
あとはこのコンポーネントをsrc/templates/blog-post.js
の中で表示させたい箇所に
src/templates/blog-post.js
import RecentPosts from "../components/recent-posts"
<RecentPosts />
のコードを加える。