このサイトに docs/notes/ 以下の Markdown ファイルを書くだけで記事が公開される仕組みを作った。
経緯
今まで記事は管理画面のフォームから投稿していたが、長文を書くには IDE のエディタの方が断然使いやすい。ということで、IDE で Markdown を書いて git push したら自動で D1(Cloudflare の SQLite)に同期される仕組みを整えた。
仕組み
docs/notes/以下に.mdファイルを置く- ファイルの先頭に frontmatter(タイトル・カテゴリ・日付)を書く
git pushすると Husky の pre-push フックがdocs/notes/の変更を検知するbun run notes:syncが走り、wrangler d1 executeで本番 D1 に UPSERT される
ファイル構成の自由度
ファイルはフラットに置いても、シリーズごとにディレクトリを切ってもどちらでも良い。slug は frontmatter で明示するか、省略するとファイルパスから自動生成される。
docs/notes/
single-article.md # → /notes/single-article
cloudflare-series/
part1.md # → /notes/cloudflare-series/part1
よかった点
- 書く摩擦がゼロになった。新しいファイルを作って書き始めればいい
- git で記事の履歴が管理できる
- excerpt は本文から自動生成されるので書かなくていい