OctopressからHugoに乗り換えた

このサイトは元々静的サイト作成ツールのOctopressを使い、Github Pages上に構築していましたが、
サイト作成ツールの部分をGolangで作られたHugoに置き換えました。

まとめ

  • Octopress
    • Ruby制の静的サイト作成ツール
    • 大量の記事を扱うと遅くなっていく
      • 100記事で新しい記事のHTML出力まで10秒ぐらいかかる
      • 見た目を確認したいときなどにとても不便
  • Hugo
    • Golang制の静的サイト作成ツール
    • 利点
    • 早い
      • 100記事で200msぐらい
    • 環境構築いらず
      • 公式がバイナリ配布
      • 手を加えないならそのまま使える
      • Win-Mac両方使う人にはとても楽
    • 欠点
      • テーマが少ない
      • 手を加えにくい
        • 手を加えると環境構築いらずの利点が失われる
        • クロスコンパイルは楽なのでそれほどでもない?
          • 手を加える必要が無いのでそのとき考える

Octopressの問題点

HTMLのレンダリングが遅いです。

Octopressにはローカルにサーバを立てて、実際に表示される画面をブラウザで表示する機能があります。
この機能はファイルを監視しており、変更があるたびに再読込をしてくれるので、
表示されるHTMLをみながらmarkdownを編集でき、とても役に立っていました。

現在このブログは100記事ぐらいありますが、その状態だと1記事のHTMLを作るのに10秒ぐらいかかってしまいます。
ちょっとした修正ごとに10秒待つのはなかなかにつらく、
かつ記事が増えて行くにしたがって速度がより遅くなっていくことが予想できました。
そのときちょうどGolangで作られたHugoのことを知り、速度もとても速いとのことなので乗り換えを検討しました

乗り換え方はこちらのサイトを参考にさせていただきました。
OctopressからHugoへ移行した

Hugoの利点

HTMLのレンダリングが早い

Octopressだと10秒ぐらいかかっていた状態をそのまま移行しましたが、
ファイルを更新してからHTMLに変換されるまでの時間が400msにまで短縮され、
ほとんど待ち時間が感じられないレベルになりました。
特にチューニングとかを考えずにこの速度なので、とても助かります。

環境構築いらず

Hugo本体に手を入れないのであれば、様々な環境用の実行ファイルが配布されているため、
環境構築でがんばる必要がありません。
私はWindowsとMacの両方を使っていますが、WindowsでのRubyはつらいものがあるので、
Windows向けのバイナリをダウンロードするだけですむのは大変便利です。

Hugoの問題点

テーマがない

テーマの数が圧倒的に少なく、思った通りのサイトを作るためには自分で作らないと行けません。
実際このサイトも自分でテーマを作りました。
https://github.com/ota42y/orange42

手を入れにくい

公式サイトのバイナリだけで運用を考える場合、新しい機能を追加することがとても難しいです。
Octopressの場合は比較的簡単に機能追加ができたため、拡張したくなった場合に手がかかりそうです。
これは環境構築の手間とのトレードオフなので仕方ないことなのですが…

最も、Hugoには十分な機能が備わっているため、今のところ問題にはなっていません。
一応Golangならクロスコンパイルは簡単なため、一カ所で開発してそれを使い回せるようになるはずです。