React ベースのフレームワーク Next.js でシンプルなブログを作るサンプルです。
次のページにこのリポジトリのコードを使ったチュートリアルがあります:
- Node v14
Next.js の各メジャーバージョンにあわせてブランチを作成しています。
main: そのときどきの最新版v12: Next.js v12v11: Next.js v11
以下の NPM パッケージを使用しています。
nextreactreact-domreact-markdownrehype-rawgray-matterprismjs
Next.js を利用するために必要な next react react-dom の 3 つと、 frontmatter 付きの Markdown の HTML への変換に有用な react-markdown rehype-raw gray-matter を使っています。
追加で、シンタックスハイライトに Prism.js を利用するための prismjs を使っています。
自動テストには以下のパッケージを使用しています。
@babel/core@babel/preset-env@babel/preset-reactbabel-jestidentity-obj-proxyjestreact-test-renderer
Codespaces でこのリポジトリを開きます。
Codespaces の Visual Studio Code が開いたら「 Terminal 」のところから NPM パッケージをインストールします( Codespaces が自動的にインストールすることもあります)。
npm install開発用プレビューを起動します。
npm run devポート 3000 が開いてポートフォワーディングが行われるのでその URL を開きます。
試し終わったら Codespaces のスペースを破棄します。
# リポジトリをチェックアウト
git checkout https://github.com/gh640/nextjs-blog-example-ja.git
# プロジェクトルートに移動
cd nextjs-blog-example-ja/
# npm の依存パッケージをインストール
npm install
# 開発サーバーを走らせる
# 開発サーバーを止めたい場合は ctrl + c 等で
npm run dev# ビルド
npm run build
# 静的サイトを生成して `out/` ディレクトリに出力する
npm run export環境変数 GA_TRACKING_ID でトラッキング ID をセットすれば、 Google Analytics のトラッキングコードをページに埋め込むことができます。
環境変数はターミナルでセットする方法と .env.local ファイルを使用する方法が用意されているので、どちらでもやりやすい方を選んでください。
ターミナル:
export GA_TRACKING_ID=UA-XXX-XX.env.local ファイル:
GA_TRACKING_ID=UA-XXX-XX
具体的にどのような形でトラッキングコードが埋め込まれているか知りたい場合は、プロジェクト内の GA_TRACKING_ID の使用箇所を探してみてください。
rg GA_TRACKING_ID参考:
components/Markdown.js で読み込むテーマ用 CSS ファイルを変更すれば、コードのシンタックスハイライトのテーマを変更できます。
import "prismjs/themes/prism-funky.css"なお、 Prism には以下のテーマが同梱されています。
prism-coy.cssprism-dark.cssprism-funky.cssprism-okaidia.cssprism-solarizedlight.cssprism-tomorrow.cssprism-twilight.css
npm test
# または
npm run test