Rust製SSGの zola が早すぎて感動した
zola という Rust製の Static Site Generator (SSG) が気になったので、使ってみた。
この記事を書くに当たり、zolaはどのくらい認知度があるのか知りたかったので、Googleで検索(Keyword = “zola 静的サイト”)してみた。
すると、いくつも良記事を見つけることができた1ので、ここでは使用方法については触れず、
- 辛い
- 素晴らしい
部分のみを列挙します。
※ 『辛い部分』に書いている内容については執筆時のもので、ほぼ全てGitHub上にISSUEが立っているので、既に解決している可能性があります。
zola の辛い点・素敵な点
辛い部分
- ビルドプロセスに介入して、カスタマイズができない
- CSS と HTML が別ファイルなのがきつい(Reactに慣れすぎている?)
- Tera (Template engine) のEditorとの相性(入力補完やチェックなど)が良くない
- zolaでは、Teraの拡張子に『.html』を使用するため
formatOnSave
を使用しているとコードが壊れる - frontmatter は TOML のみで YAML は使えない
- HTMLの出力を minify する機能がない。
ビルドプロセスに介入して、カスタマイズができない
Markdownの parse や render プロセスをカスタマイズできないため、例えば以下のようなカスタマイズができません。
- 『末尾に半角スペース2つ』ではなく、改行は改行と扱わせたい
- 外部リンクに noopener nofollow (& noreferrer) をつけられない
- relative path(相対パス)で、他の markdown へのリンクが書けない。特別なフォーマットがあり、そちらで対応する必要がある。
素晴らしい部分
- ビルドが超高速
- HTML と CSS だけなので、サイズが小さい
- node_modules のインストールが不要
- パソコンへの負荷が小さい
- shortcode が便利そう
- GoogleのPageSpeed Insightのスコアが良い
ビルドが超高速
Gatsby.js や、素のReactや、Next.js でいくつかサイトを開発した事がありますが、 node_modules のインストールに凄まじい時間がかかる(特にGatsby.js)だけではなく、ビルドにも時間がかかります。
node_modules のインストールが不要
私はReact Nativeを普段書いていますが、React Native をやめたいと思うくらい node_modulesの仕組みが辛いです。
インストールの時間は長いし、容量を食いすぎる。
TypeScript や babel 関連だけでどれくらいになるのだろう。
GoogleのPageSpeed Insightのスコアが良い
今回 zola で作ってみようと決めたきっかけはこれ。
それぞれのツールで作られたいくつかのページに対し、 GoogleのPageSpeed Insightを使用したところ、 HUGOやzolaで作られたサイトの方が数値が上回っていました2。
shortcode が便利そう
こちらは、まだ使う機会が無かったので使っていない機能
ホームページを作るときに使えそう。
他にも、今後結構使いそう。
ただ、zola にしかない機能なので、使い出すとやめられなくなるという辛みもある。
Teraのマクロがかなり便利
zola は『あり』それとも『なし』
目的 | ❓ | |
---|---|---|
ブログの制作 | ⭕️ | あり |
簡単なホームページ | ⭕️ | あり |
作り込んだホームページ | ❌ | フロントエンドフレームワークを使うべし |
ウェブサービス | ❌ | もちろん無理 |
やっぱりフロントエンドのフレームワークがほしい
ブログなので、『まあ良いか。』感はあります。 でも、やっぱり CSSは辛いです。
React Native と比べて、HTML + CSSは色々難しい。
zola をまた使いたいか?
もし今後、簡単なブログを作る必要があれば使いたい。
簡単なホームページは作る機会はありそうなので使うことはありそう。
Notes
ページのチョイスの問題があります。それと、Next.jsで頑張ると同じくらいのスコア(全てほぼ100)を出せるらしいです(試していません) ↩