Nuxt3 + Contentfulでブログを作る (1. コンテンツモデル作成 & SSG編)
2023年9月15日

ヘッドレスCMSのContentfulを使い,NuxtのSSG(静的サイトジェネレータ)で簡単なブログを作成したので,そのメモを残す.

環境情報

Ubuntu: 20.04.6 LTS
Node: 18.15.0
Nuxt: 3.6.0
Contentful JavaScript SDK: 10.3.1

構成図

最終的な構成は以下のようになる.GitHub Actionsを用いて,SSGによるビルドからS3へのデプロイまでを自動化することを目指すが,今回はローカル環境でSSGができるところまでを範囲とする. blog architecture

Contentfulの準備

コンテンツモデルを作成

contentful content model

画像のようなコンテンツモデルMarkdown Blog Postを作成した.各フィールドは以下のようになっている.

Name Field Type (Appearance) 説明
Title Short Text (Single line) ブログ記事のタイトル
Body Long Text (Markdown) ブログ記事の本文
Publish Date Date & time ブログ記事の投稿日
Slug Short Text (Slug) ブログ記事を一意に特定するための文字列.Unique制約あり,各記事のURLにパスパラメータとして使われる.

コンテンツの作成

Content Delivery APIによるコンテンツの取得

コンテンツモデルの型定義を作成

pluginの準備

記事一覧の取得

記事詳細の取得