年末の休暇を使ってこのサイトを作り直した。今までは手書きの薄いHTMLをFirebase Hostingに設置しており、ブログはサブドメインを切って Gatsby Cloud でホスティングしていた。現在そのブログは Gatsby Cloud のサービス終了に伴いアクセスできない状態となっている。
このサイトの構成
astro-notion-blog をベースに構築している。Notionのデータベースに書いた記事がそのままブログに反映される。そのまま反映されると言っても都度ビルドし直す必要があるため、Cloudflare Pages の Deploy Hook を叩く Raycast の Extension を作った。ビルドし直しのトリガーにはいろいろな方法が考えられるが、Macでしか記事を書かないし、Macでは何をするにも Raycast に頼り切っているのでこれが扱いやすい。本当は Notion の /button
を使ってデプロイしたかったのだけど、こいつにはスクリプトを動かすような機能はないため見送った。
その他の選択肢について
- Drupal
- 日本国認定CMSであるところのDrupalを試してみた。ヘッドレスCMSとしても使えるため、意外と悪くはないが、PHPサーバーを用意する事に対してあまりいい気分がしなかったため見送った。これはPHPが悪いという話しではなく、サーバーを動かしたくないということです。個人ブログとかいうものはWriteの処理が1ヶ月に何回あるかわからないものなので、ブログを書くとかいう滅多にない機能のために何かを動かし続ける(あるいはスタンバイさせる)システムは無駄に感じてしまった。
- SonicJS
- サーバーは動かしたくないが、Cloudflare Workers は良い。Workers で動く Headless CMS を探したらこれがあった。一応デプロイしてみたものの、こいつは画像の投稿に対応していないことが分かり終了してしまった。テキストだけでいいCMSなら15分あれば自作できるし…という気持ちと、PostsのBodyがtextareaですらないinput type=”text”で構築されており、一体誰が何目的で使うために生まれたのか分からなかった。
- Obsidian-to-Astro
- https://github.com/GoyoStach/Obsidian-to-Astro
- 実は個人メモは Notion より Obsidian を使っているため、Obsidian でそのままブログを書く方法も検討した。Obsidian は Markdown ファイルで記事を管理する仕組みで、埋め込んだ画像を相対パスの Markdown 記法で保存することもできるため、静的ビルドブログとの相性が良い。
- Gatsby を使っていたときもそうだったが、Markdown だけで記事を書くためには YAML Front Matter という記法でタイトルや投稿日時といったメタデータを書かないといけない。それに今は大OGP時代、メタデータに画像も必須なのだが、メタデータに書く場合はファイルを置いて、ファイルパスを記載して、といった手順が必要。この手間はブログを書く敷居を非常に上げてしまう。そうやって旧ブログも書かなくなっていった。
- microCMS
- エディタが Markdown に対応してない
旧ブログについて
10分作業すれば元通りアクセスできるようになるが、復旧させる気持ちになっていない。過去記事を漁りやすくするメリットがあまりない気もしていて、このサイトのブログ記事一覧も最新の25件以降は表示しないように設定している。