シンプルなブログアーキテクチャの作成
この例では、ブログ投稿はアプリケーションのディレクトリ内のローカルマークダウンファイルとして保存されます(外部データソースから取得されません)。そのため、ファイルシステムからデータを読み取る必要があります。
このセクションでは、ファイルシステムからマークダウンデータを読み取るブログを作成する手順を説明します。
マークダウンファイルの作成
まず、ルートフォルダに posts
という新しいトップレベルディレクトリを作成します(これは pages/posts
とは異なります)。posts
ディレクトリ内に、pre-rendering.md
と ssg-ssr.md
という2つのファイルを作成します。
次に、以下のコードを posts/pre-rendering.md
にコピーします:
次に、以下のコードを posts/ssg-ssr.md
にコピーします:
各マークダウンファイルの上部には、
title
とdate
を含むメタデータセクションがあることに気づいたかもしれません。これはYAML Front Matterと呼ばれ、gray-matterというライブラリを使用して解析できます。
gray-matterのインストール
まず、各マークダウンファイルのメタデータを解析するためにgray-matterをインストールします。
ファイルシステムを読み取るユーティリティ関数の作成
次に、ファイルシステムからデータを解析するためのユーティリティ関数を作成します。このユーティリティ関数で実現したいことは:
- 各マークダウンファイルを解析し、
title
、date
、およびファイル名(投稿URLのid
として使用)を取得する。 - 日付でソートされたデータをインデックスページに一覧表示する。
ルートディレクトリにlib
というトップレベルディレクトリを作成します。次に、lib
内にposts.js
というファイルを作成し、以下のコードをコピーして貼り付けます:
注:
Next.jsを学ぶ上で、上記のコードが何をしているかを理解する必要はありません。この関数はブログの例を機能させるためのものです。ただし、さらに詳しく知りたい場合:
ブログデータの取得
ブログデータが解析されたので、これをインデックスページ(pages/index.js
)に追加する必要があります。これは、Next.jsのデータ取得メソッドであるgetStaticProps()
を使用して行うことができます。次のセクションでは、getStaticProps()
の実装方法を学びます。
次のページで実装しましょう!