JekyllからHugoへ

Hugo - A fast and modern static website engine

これまでJekyllを使ってブログを書いてたけどHugoに移行したという話。Frontend Weekly Vol.0で知ったんだけど、これ見ていいなーって思ったのでやってみた。

これまでのブログ遍歴

  • Blogger: Webサービスを使うのはよいことだ。最初にはてなを使ってたら僕の人生変わってたかもしれない。
  • WordPress + さくらサーバー: 僕は若かった。いったい誰が僕のことを責めれようか。いや誰もいない。
  • Jekyll + GitHub Pages: マークダウン最高w
  • Hugo + GitHub Pages: イマココ

Jekyllのイヤなところ

遅い!コレに尽きる。上記のように、7年ほどブログを続けていると記事数が450くらいになってた。jekyll serve --watchして、記事を変更しても体感的に10秒くらいで更新されるような状態だった。ほんの少しスタイル確認したいだけなのに何秒も待たされるのは本当にイライラする。限界だ。

あと、これは別にJekyllのせいじゃないけど、僕の使ってたテーマがRuby 1.9固定だったので、なんでブログ書く度にRubyのバージョンを変えなきゃいけないのか、本当にイライラする。限界だ。

Hugoのスキなところ

速い!コレに尽きる。ほぼリアルタイムで更新されるんじゃないかくらい速い。hugo server --watchしたら、デフォルトでLiveReloadで更新されるのも地味に便利である。移行にあたって必要のない記事を捨てた結果、240記事になった。0.2秒未満で生成される。

$ time hugo
0 draft content
0 future content
240 pages created
0 tags created
12 categories created
in 119 ms

real	0m0.172s
user	0m0.367s
sys	0m0.108s

対して、同記事数の生成でJekyllは2.5秒!!
Hugoとくらべて14倍時間がかかってる。

$ time jekyll build
Configuration file: _config.yml
            Source: .
       Destination: ./_site
      Generating...
                    done.
 Auto-regeneration: disabled. Use --watch to enable.

real	0m2.458s
user	0m1.826s
sys	0m0.323s

そんなわけで、やっぱりGolang製は速いなと。HugoはGoで書かれているけどHugoを使う分には別にGoを勉強する必要はない。brew install hugoでインストールして、Jekyllのようにマークダウンを書いていくだけだ。テンプレートの記法もJekyllに似てるので問題ない。

あと、Jekyllからの移行方法も丁寧に記載されてるし、masterにPushするだけであとはWreckerでgh-pagesにPushしてくれるビルドステップも用意されているので非常に楽である。

問題はJekyllのような生態系が育ってないこと、痒いところに手が届かいない感じだろうか。まぁしかし、それって本当に痒かったのかと開き直れば問題ない。男は黙って記事を書くのみ。トライ&エラーを繰り返せば良いものができる。そのためにスピードは重要なのだ。

みなさんもよかったらどうぞ。