どうも、uzimaruです。
今回はこのブログをリニューアルしてバックエンドとしてNotionを使うようにしたので、それについて書きます。
理由編 と 実装編 の 2部構成でやっていきます。
今回は、なんで Notion を使うことにしたのかの理由について
今までの構成
今までの構成はNext.jsを使ったものだったのですが、記事の保存には Fauna というサービスを利用していました。 このサービス自体はとてもいいもので手軽にDBを利用したいという用途にはピッタリでした。前のブログを作った時点(今でも)ではインフラ周りの知識が乏しかったのでとりあえずいい感じにDBを用意してくれるサービスというのがとてもありがたかったです。
しかし、問題としては CMS を自前で作らないと行けないというところ。前のブログでは、
ローカルな環境でブログを書く
Elm 製の CLI から DB に保存する
リクエストに応じて DB からデータを取ってくる
という流れでした。
MarkDown から SSG という方法もあったのですが、個人的に git のリポジトリに MarkDown を入れておくのが嫌だというのもありこの方法を選択していました。
前システムを離れた経緯
このシステムでも執筆体験はそこまで悪いものではなかったのですが、いくつかの要因から問題が発生しました。
ラップトップがなくなった
Notion が使いやすい
1. ラップトップがなくなった
まずは、1 について。デスク周りの記事でも書いている通り、去年の秋に MacMini を購入して私用のラップトップがなくなりました(無くは無く、今は部屋に落ちてた ThinkPad を使ってます)。
上記のシステムは CLI が入っていることが前提で、利用するためには
リポジトリをクローン
CLI をビルド
パスを通す
という手順を踏まないといけません。
MacMini でブログを投稿するために上記の手順をやろうと思ったのですが、M1 だといくつかのパッケージでエラーが起こってしまい CLI をビルドすることができませんでした。
また、長期休暇の際に家を離れるときにラップトップが無いため iPad を持っていっていたのですが、 CLI は Node で動くため iPad ではブログの更新ができません。
2. Notion が使いやすい
これは問題では無いのですが、Notion がめちゃくちゃ使いやすく使いなれて来たということです。
去年から仕事を初めて会社のドキュメンテーションツールとして Notion を利用しているのですが、とても使い勝手が良く、個人のワークスペースを作ってメモなどをまとめるようになりました。
そこで、Notion を使ってブログを管理したら楽なのでは?という発想になったのですが、Notion の記事公開は有料機能なので使うのが難しい、無料でも公開できるが検索エンジンにインデックスされないという難点がありました。正直、このブログはそこまで見られないと思うのでインデックスされなくても問題無いんですが、せっかく書くなら多くの人に見てもらえる可能性を増やしたいです。
そんなことを思っていたら Notion の API がオープンになったので、これを使ってブログを作るぞ!ということで今回作りました。(実は数ヶ月前からやるぞとなっていたが NotionAPI のパッケージが微妙過ぎて放置していた)
Notion を CMS にするにあたって叶えたいこと
Notionを使うにあたって以下のポイントは必須で実装しようと思いました。
Notion上で記事にまつわる操作を完結
これはCMSである以上必須だと思い実装しました。
前回のシステムにもあった
という要素は全部 Notion 上で設定できるようにしました。
これに加えて記事の投稿・削除も Notion 上で完結します。
記事の投稿は、 Property の Publish にチェックを入れると API から取得されるようになります。なので、一旦削除をしたくなったら記事を消すのではなくチェックを外すだけでできます。
これくらい手軽に投稿・削除ができるので、「とりあえずある程度まとまりのある文章を書いてまとめておくか」
「良さげに書けたしせっかくだから投稿しよう」ということが簡単にできます。僕みたいにやる気なしな人間にとってはこれくらいの温度感のほうが書きやすいです。 MarkDown に入っている構文のブロックは実装する
Notion には様々なブロックが存在していますが、最低限 MD にあるブロックは実装しようと思いました。
これは、自分が MD が好きというのもあるのですが、最低限この構文があったら過去の記事を移植することが可能になるからです。
Notion の文章は MD では無いですが、ある程度互換性があるので MD の構文が実装できていたらそれをそのまま移植できます。うれしい。
おわり
つらつらと書いてましたが、早い話、「Notion でよしなに記事を書いて投稿できるとうれしい」ということでした。
次回は、このブログを作るにあたってしんどかったことをまとめます。
では 