メインコンテンツへスキップ

コマンドパレット

実行するコマンドを検索...

Next.js と MDX でブログを構築する方法

執筆者
Nelson Lai のアバター
Nelson Lai
公開日
--
閲覧数
--
コメント
--
Next.js と MDX でブログを構築する方法

はじめに

使用するパッケージ:

  • 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 プロセスの現在の作業ディレクトリを返します。

JavaScript
lib/mdx.js

記事ファイルが保存されるパスのための変数 POSTS_PATH も定義します。

JavaScript
lib/mdx.js

次に fs を使ってそのディレクトリの内容、つまり data/blog 下のすべてのファイル名を読み込みます。

JavaScript
lib/mdx.js

後で使用するためにファイル拡張子を取り除く関数を書きます。

JavaScript
lib/mdx.js

次はスラッグで記事のコンテンツを取得します。

JavaScript
lib/mdx.js

次に、ホームページに表示するすべての記事を取得できます。

JavaScript
lib/mdx.js

日付のフォーマット

JavaScript
lib/format-date.js

ホームページ

React
pages/index.jsx

記事ページ

React
pages/[slug].jsx

これでシンプルなブログが完成しました。

参考リンク

GitHub で編集
最終更新日:--