はじめに
使用するパッケージ:
- next Next.js フレームワーク
- next-mdx-remote MDX コンテンツの処理と読み込み
- gray-matter マークダウンのフロントマターの解析
このチュートリアルのリポジトリ:
https://github.com/nelsonlaidev/nextjs-mdx-blog
デモ
ブログの作り方
まず、以下のコマンドで Next.js プロジェクトを作成します:
次に、以下のファイルを作成します:
components/layout.jsx- すべてのコンポーネントをコンテナにラップする(任意、スタイルのみ)date/blog/*.mdx- ブログ記事lib/format-date.js- 日付をMM DD, YYYY形式にフォーマットpages/blog/[slug].jsx- 記事ページ、動的ルーティングを使用
ツリービュー
components
layout.jsx
data
blog
markdown.mdx
nextjs.mdx
react.mdx
lib
format-date.js
mdx.js
pages
blog
[slug].jsx
Markdown ファイルの処理方法
まず const root はルートディレクトリで、process.cwd() メソッドは Node.js プロセスの現在の作業ディレクトリを返します。
記事ファイルが保存されるパスのための変数 POSTS_PATH も定義します。
次に fs を使ってそのディレクトリの内容、つまり data/blog 下のすべてのファイル名を読み込みます。
後で使用するためにファイル拡張子を取り除く関数を書きます。
次はスラッグで記事のコンテンツを取得します。
次に、ホームページに表示するすべての記事を取得できます。
日付のフォーマット
ホームページ
記事ページ
これでシンプルなブログが完成しました。
