この記事では、このブログのテーマである A W E S O M E . の導入方法を解説します。
A W E S O M E . は Notion + Next.js で作られたブログテーマです。 Notion で記事を書くと、ブログに反映される仕組みになっています。リポジトリは以下です。
Notion でデータベースを準備する
まずは Notion でデータベースを準備します。上記のリポジトリの README にも書いていますが、データベースのプロパティは以下のように設定します。
![](https://prod-files-secure.s3.us-west-2.amazonaws.com/a0f002b4-eec2-4df2-8737-c6ae60d92dd2/5cc94ae3-2495-42e2-9968-3ae420b17194/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240727%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240727T073441Z&X-Amz-Expires=3600&X-Amz-Signature=4473e342121d2d2f18027534c8a27ac61a7120a4d2b0b487b1068bd04a151b5f&X-Amz-SignedHeaders=host&x-id=GetObject)
データベースはテンプレートが準備されているので、このテンプレートを複製して自分用に書き換えるのが楽です。
![](https://prod-files-secure.s3.us-west-2.amazonaws.com/a0f002b4-eec2-4df2-8737-c6ae60d92dd2/a6c2cc3a-cf27-42cc-8933-c5e1857d965e/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240727%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240727T073441Z&X-Amz-Expires=3600&X-Amz-Signature=ca91ab1f265b9cdddbdda72caee0852aa20bacfc582e0ff3f9b31d807ffd4b84&X-Amz-SignedHeaders=host&x-id=GetObject)
このデータベースの ID をコピーしておきます。
データベースの ID はページのURLに含まれています。
https://www.notion.so/*****************?v=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
上記の URL の ***************** の部分が ID です。
インテグレーションを準備する
Notion のページ内の情報を読み取るためにインテグレーションを取得します。
インテグレーションの取得方法は下記のYouTubeがわかりやすいです。
git clone する
以下のリポジトリを git clone します。
$ git clone https://github.com/steelydylan/Awesome.git
Git を入れていない場合は、以下の記事が参考になります。
Awsome のフォルダに移動しておきます。パスはそれぞれ自分の PC のパスに置き換えてください。
$ cd Awesome/
依存パッケージをインストール
yarn で依存パッケージをインストールします。
Node.js と yarn を入れていない場合は、入れておく必要があります。
Node.js のインストールは以下のページが参考になります。ただし注意点がありますので、次の見出しの内容も確認しておいてください。
yarn のインストールは、Node.js を入れた後に以下を実行すればオッケーです。
npm install -g yarn
Node.js のバージョン管理でハマった
ここで自分はハマりポイントがありました。
yarn install をすると、Node.js のバージョンが違うと怒られました。
本家のリポジトリは Node.js のバージョン管理ソフトの nodeenv を使っており、package.jsonで指定されているのは、14系でした。
![](https://prod-files-secure.s3.us-west-2.amazonaws.com/a0f002b4-eec2-4df2-8737-c6ae60d92dd2/c9e88dd7-416a-40f5-bfb7-0d8b3f8c0ada/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240727%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240727T073441Z&X-Amz-Expires=3600&X-Amz-Signature=e4b791c5b4522e0fc55c41299336c8b092ae9227154f412e86d9fea7413f7362&X-Amz-SignedHeaders=host&x-id=GetObject)
"engines": {
"node": "14.x"
},
自分が入れている Node.js は公式サイト経由で入れており、バージョンは以下でした。
$ node -v
v16.15.1
ということで、自分も Node.js のバージョン管理ソフトを入れようと思いましたが、自分は Windows なので、nodeenv は使えないそうです。
Windowsだと、nvm-windows というのがよさそうでしたが、一度自分の PC の Node.js を削除する必要があるということで、ビビッてやめました(他の Node.js を使っているアプリが動かなくなるかもとビビった。)
ということで、 package.json の以下の部分を削除して、無理やりやってみることにしました(本当はこんなやり方が良くないのはなんとなくわかる。)
"engines": {
"node": "14.x"
},
ついでに、nodeenv を使うと生成される .node-version も削除しておきました。
![](https://prod-files-secure.s3.us-west-2.amazonaws.com/a0f002b4-eec2-4df2-8737-c6ae60d92dd2/4cc35443-b8c1-453e-9e95-5f37de88e63b/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240727%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240727T073441Z&X-Amz-Expires=3600&X-Amz-Signature=af28487695563e5936be88085ea4ce922d363a6c5abac7372a1093cab41a75b6&X-Amz-SignedHeaders=host&x-id=GetObject)
yarn install をすると、、、動きました。結果オーライで進めることにしました。
Notion をブログに使う準備をする
blog.config.ts に以下のような部分があるので、notion にしておきます。
use: "notion", // mdx or notion
このブログは元々 mdx という JSX を マークダウンに埋め込めるファイルを記事として使用するブログテーマでしたが、それを Notion に対応しています。上記の部分で mdx と Notion を切り替えることができます。
続いて、.env.local に Notion のデータベースのIDとトークン(インテグレーション)を入力します。
NOTION_DATABASE_ID=
NOTION_TOKEN=
これでローカルでブログを起動する準備ができました。
yarn dev を実行すると、ローカルでブログが立ち上がるはずです。
Notion DB のカテゴリ名と blog.config.ts のカテゴリ名は合わせておく
上記まででブログのトップページは表示されたと思いますが、記事をクリックすると 404 ページが表示されるかもしれません。
404 ページが表示された場合は、Notion DB のカテゴリ名と blog.config.ts のカテゴリ名があっていない場合があります。
README にも書いてあるように、 blog.config.ts はブログの設定を行うファイルで、カテゴリの設定を行う所もあります。このカテゴリ設定と、Notion のデータベースのカテゴリ設定があっていないと記事は表示されません。このブログの場合は以下のようになっています。
Notion のデータベースのカテゴリ名👇
![](https://prod-files-secure.s3.us-west-2.amazonaws.com/a0f002b4-eec2-4df2-8737-c6ae60d92dd2/c1777729-ac7a-454c-a605-c6c64e4de528/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240727%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240727T073441Z&X-Amz-Expires=3600&X-Amz-Signature=cbb2741be513007a55b1c2e76020945ee4c4d036850c6278192f3705000c55c2&X-Amz-SignedHeaders=host&x-id=GetObject)
blog.config.ts のカテゴリ設定👇
categories: [
{
id: "about",
title: "About",
imagePath: "/images/me.png",
description: "About Me",
},
{
id: "tech",
title: "Tech",
imagePath: "/images/sinwave.gif",
description: "Articles about Tech",
},
{
id: "study",
title: "Study",
imagePath: "/images/english.jpg",
description: "Articles about study",
},
{
id: "journal",
title: "Journal",
imagePath: "/images/journal.jpg",
description: "My Journal",
},
],
タグの設定は別途必要
タグは別途、Notion のデータベースにタグ用のプロパティを追加して、いくつかコードを変更しなければ表示されません。タグを Notion のデータベースに設定してブログに反映する方法は別の記事で書こうと思います。
GitHub に push する
ローカルで動いたコードを GitHubにプッシュします。以下の記事が参考になります。
Vercel にデプロイする
Vercel にデプロイすれば、ブログ開設完了です。以下の YouTube が参考になります。動画内でもありますが、Vercel の環境変数に Notion のデータベースの ID と、トークン(インテグレーション)を設定しておいて下さい。
終わりに
無事 A W S O M E . を使ったブログが開設できました。このブログでは、引き続き A W S O M E . の改造方法を記事にしようと思います。