AIとの会話をAIが整形しているので、上から目線な腹の立つ文章になっております

結論

ブログの「自動生成」と「人間による磨き込み」を両立させるため、記事一覧生成(build_index.py)と記事生成(build.py)を完全に切り分けた。

管理用のディレクトリは日本語のまま、URLは英語のslugで出力。運用負荷を下げつつ、見た目の美しさも確保した。

何をしたかったか

  • 目録の自動更新:記事が増えるたびに index.html を手動でいじるのをやめたい。
  • 手動修正の保護:せっかく直したHTMLが再ビルドで消される事故を絶対に防ぎたい。
  • 直感的な管理:日本語の会話ログを扱う以上、ディレクトリ名は日本語がいい。でもURLは英語にしたい。

分かったこと

  • 一括ビルドは限界:全部自動にすると、手動で直した「聖域」まで上書きされる。
  • slugの重要性:フロントマターで slug を決めれば、物理的なフォルダ名に縛られず自由になれる。
  • 除外リストが最強:修正済みの記事を EXCLUDE_SLUGS に放り込めば、ビルドの魔の手から永続的に守れる。

試したこと

  • build_index.pyの実装:フロントマターをスキャンして、特定のマーカー間だけを書き換える。サイト名の修正などは維持したまま、記事リストだけを最新にできる。
  • フロントマター優先のルーティング:build.py を改修。ディレクトリ名ではなく source.md 内の slug を最優先してファイル名を決める仕組みを導入。
  • メタ情報での管理:記事の属性をフロントマターで定義。構築スクリプトが機械的に処理できる「身分証」として機能させる。

起きた問題

  • 日本語ディレクトリによる不具合:WordPressと違い、Cloudflare PagesはURLをよしなに直してはくれない。日本語URLの不細工な状態を slug 管理で解消。