CMSを自作して得た教訓

Agentic codingの普及で、CMS自作がこれから普通になってくると思う。その一助になればと思って書いた。CC0ですので、ご自由にプロンプトにお使いください
garden.oooをつくるなかで、学んだこと:
- ページ本文やメタデータは全て単一のスキームに統一する
- カスタム投稿タイプだとかを作らない。日記、作品、CVといった固定ページなどをなるたけ包摂できる、汎用的なスキームを用意する
- タグやカテゴリをただのページとして扱う。分類する専用の概念として別立てしない
- 「ページAからBにリンクが貼られていること」を、「ページAはBというカテゴリに属する」と解釈する
- カテゴリやタグは特殊なリンクの仕方として扱ってみる。本文リンクの代わりに
categoriesやtagsといったメタデータにページURLを入力できるようにする、とか
- プレーンテキストで表せる軽量マークアップ言語を単一のソース源とする
- フォルダ整理をしない
- c.f. 階層性と線形性を信じない
- Trailing slash(ページ末尾のスラッシュ)の有無を区別できるようにする
xxx.md→example.com/xxxxxx/index.md→example.com/xxx/- のようにURLをマッピングする。ディレクトリごとに git submodule を分けたいときなどに便利