Pythonで最小の静的サイトジェネレータを自作する構成
既製SSGが過剰な場合、Jinja2とMarkdownライブラリだけで実用的なジェネレータを自作できる。最小構成のモジュール分割と拡張の道筋を示す。
最小構成の3要素
コンテンツ読み込み(front matter+Markdown)、テンプレート適用(Jinja2)、出力書き出しの3関数で骨格が完成する。100行未満で動くものが作れる。
メタデータ駆動の設計
各ページのfront matterにtitleや日付を持たせ、一覧ページやsitemap.xmlも同じメタデータから生成する。データの一元化が破綻を防ぐ。
大量ページへの拡張
数十万ページ規模ではテンプレート適用をmultiprocessingで並列化し、変更検知で差分ビルドする。出力のディレクトリ分割も同時に設計する。