これまでこのブログはConoHaというVPS上に立てたWordPressで書いていた。
これをRust製静的サイトジェネレータのZolaに移行した。ホスティングはNetlifyを使う。

WordPress/VPSから移行した理由

  • WordPressが扱いにくかった
    始めるのは簡単だったが、だんだんしんどくなってきた。

    • バージョンアップは頻繁にあるが、やはりセキュリティ面が不安。不正ログインされるのではという懸念があった。
    • 関連するファイルも大量にあり、時間が経つとどこに何があるか忘れてしまう。
    • データベースを使いたくない
      Markdownファイルだけあればいい。コメント欄もほぼスパムしか来ないから不要。
    • テーマが大量に用意されているのは非常にありがたいが、ちょっとデザインを変えたいときに何もわからない
      これは数年前の話だが、CSSのwidthなどをいくら変えても何も変わらなかった。それ以来CSS恐怖症になった。
  • VPSを解約したい
    これまでVPSは2つ契約し、3つの用途で使っていた。

    • ブログ運用
    • radiko録音
    • TinyTinyRSS運用

    このうちradiko録音はFargateに完全移行した
    TinyTinyRSSはこれを使って運用している。すぐには移行できなそう。(RaspberryPiとかに立てる?)
    ブログをVPSに移行できたらVPSを1個解約してちょっと金が浮く(月900円)。

  • 静的サイトジェネレータに興味があった
    Hugoがけっこう流行ってた(る)印象。

Zola/Netlifyを選んだ理由

StaticGenというサイトを見るといろいろな静的サイトジェネレータがある。

Golang製のHugoは前から名前を知っていたのでこれにするつもりだったが、Rust製のZolaというものがある。Rustは気になる存在だったので、Zolaを選ぶことにした。機能的には、比較表を見るとHugoとそれほど変わりないようだ。(ZolaもHugo(ユゴー)を意識した名前?)

Netlifyは…特に何も考えてない。他の方の記事でよく見かけるのと、タダで運用できるから選んだ。ただ最近Netlifyが日本からだと遅いという記事を見たので、速度的なことを考えると良くないのかもしれない(CDNノードが日本国内にないらしい)。実際、このブログを立ててみるとそんなに速くなかった。

あとNetlifyで独自ドメイン設定するときはNetlifyのDNSサーバを使う設定にした。

感想

CSSめんどいけどやってやれないことはない(かもしれない)

HugoのテーマはたくさんあるがZolaのテーマはごくわずか。気に入ったのがなかったし、CSS恐怖症を克服したかったので自分で書くことにした。

思ったよりはできた(気がする)。
ブログを移行するにあたって1冊ですべて身につくHTML & CSSとWebデザイン入門講座という本を読んだ。これは自分のデザインスキルのレベルに合っていてよかった。flexbox便利。

ただ、基本の基本しか載っていないので、実際にデザインするときはけっこう詰まった。
preが思いっきりはみ出たとき、ネットで調べると overflow: scroll をやれば直るという記事がいくつも見つかったが、それをやっても直らなかった。結局これはflexbox絡みの問題だった。(ここ参照。)
またTeXを表示するときにKaTeXというのを使っているが、微分の意味のドットが文字の横に出たりして表示がうまくできなかった。これはKaTeXの表示部だけfont-familyを変えれば直った。

まだいろいろおかしいところがあちこちにあるので、今後直していく。
たとえば記事のサイドバーには目次を表示しているが、サイドバーは本文とは別にスクロールさせたい。やり方がわからず、不完全な状態になっている。

あとサイトの構成は自分でやったが、Markdown関連のデザインは全部やると大変すぎるのでgithub-markdown-cssを使った。これもそのうち自分でやりたい。

あまりRustは関係しない

Zolaでブログを書く上では、Rustを意識することはほとんどない。テンプレートエンジンのTeraの使い方の勉強にはなった。
pageやsectionなど、Zolaの基本的な概念を理解するのに手こずった。(いまもよくわかってない。) {{ __tera_context }} を表示してデバッグすると少しわかる。

安心感がある

Zolaではテンプレートやデザイン関連のファイルはごく少数なので、全部自分で把握しているという安心感がある。データベースもなくシンプルだ。これまでWordPressで運用していたときはローカル開発環境を用意しにくかったが、Zolaならすべてファイルなので本番環境も開発環境も同じだ。そしてZolaの実行ファイル自体、バイナリファイル1個にまとまっているので簡単。

Zola自体について言えば、おかしなときはすぐエラーが起きてくれるので、エラーが起きなければとりあえず大きな問題はないと信頼できる。

その他参考にしたサイト