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管理で解消。