最近、 rust を再開したので、
Static Site Generator
を go 製の hugo から rust 製の zola に変更してみた。
hugo のからの引っ越し
zola インストール
初期化
config.toml を hugo 版から zola 版に書き換える。
最低限 base_url。
プレビューしてみる
一部の記事でエラーが出る。
どの記事がまずいかはわかるが、何行目とか場所はわからないのかしら。 適当になおす。
の方がデバッグ向け。 いくつかなおしたら、エラーは出なくなった。
テンプレートを用意する
に従って基本的なテンプレートを作成。
index.html, section.html, page.html の3種類のテンプレートがサーチされる。
section.html と page.html は、section のフロントマター、 template
, page_template
で変更できる。
zola の content 構成
section(フォルダ) に page が所属するという構成みたい。 section とうのは単なるフォルダではなくて、folder/index.md もしくは folder/_index.md をさす。
- root => index.html
- section
- _index.md (セクションになる) => section.html
- page1.md => page.html
- page2.md => page.html
- subsection (_index.md が無いのでセクションでは無い) => レンダリングされない
- page3.md (orphan page) => page.html
- page4.md (orphan page) => page.html
- section
セクションに所属しない page は orphan page となり、 section.pages
のように列挙することができなくなる。
すべてのフォルダに _index.md
を配置してセクション化するという設計思想のようだ。
セクションが木構造になっていて、page が leaf になる。
- section
- subsections
- pages
が再帰的に続く。
zola を改造してみた。
orphan page が section.pages に入るようになる。 https://github.com/ousttrue/zola/commit/7842d0b2d05eb15400dbe20b20791b57af077de1
zola 設定 config.toml
Tera テンプレート
extends
別ファイルを部分的に override する https://tera.netlify.app/docs/#inheritance
include
別ファイルの部品を読み込む https://tera.netlify.app/docs/#include
date format
とりあえずメンテナンス中・・・
hugo に比べて template の構成がシンプルでわかりやすいような気がする (hugo に慣れているせいかもしれない)。 そもそも hugo の時点でちゃんと管理してなかったので、 ぼちぼち続きをやる。