前回の続きです。静的サイトジェネレータの種類について書いていきます。

なお、私がメインで使用しているのはHexoであり、それ以外の静的サイトジェネレータについては知識不十分ですので、以下の記事には誤りがある可能性があります。

静的サイトジェネレータのざっとした情報を得るにはNetlifyが提供しているStaticGenを見るのが手っ取り早いです。以下の画像はGitHubのStar上位7[1]静的サイトジェネレータの画像です。

StaticGenより

これら上位のうち、筆者がわからないので フレームワークと思われるNuxtとNextを除いて8位のVuePressを含めた6つのジェネレータについてざっと解説します。なお、全て2018/10現在のものです。

プロダクト言語登場独断と偏見の特徴
jekyllRuby2008最近のSSGの先駆け的な感じ。ユーザも情報も多いと思われる。
HugoGo2013「The world’s fastest framework for building websites」と謳っているだけあってマジで速い
GatsbyJavaScript2015React製。SPAできる。たぶん今[1]一番勢いがあると思われる
HexoJavaScript2012プラグインでのカスタマイズが容易。エコシステムが大きいと思う
GitBookJavaScript2014技術ドキュメントで多く使われている印象
VuePressJavaScript2018Vue.js製のドキュメント専用(?)ジェネレータ

では、これらを順番にもう少し掘り下げて記述してみます。なお、記述内容は筆者の独断と偏見です。

jekyll


おそらく、昨今の静的サイトジェネレータの先駆け的な感じと思われます。Ruby製。歴史も長いのでStarも多いし、現在もちゃんとメンテナンスされている。Rubyに詳しいと楽だと思われます。

Hugo


「The world’s fastest framework for building websites」と謳っているだけあってマジで速いです。別のサイトで使用してますが、記事数の差があるとは言えHexoより速いでしょう。デフォルトでブラウザのオートリロードが入っているのもよいです。少し触った感じだとカスタマイズができない(プラグインシステムがない?)ようなので、独自で何かを組み込むというのは難しそうな感じです。その反面、本体に機能がたくさん盛られている感じがします。

Gatsby


おそらく、今最も勢いがあります。SPAのサイトが構築できるらしいです。公式以外の情報が少ない感じがします。コントリビューターの数などから見ても当面は安泰の気がします。

Hexo


このサイトでも使用しています。エコシステムが大きめでだいたいなんでもプラグインがあります。なくてもnode_modules配下のコードを適当にいじるかForkして自分用にいじればなんとかなります。プラグインを作るのも難しくありません。カスタマイズ製の高さ故に問題発生時にプラグインの問題か本体・テーマの問題か切り分けにくいです。パフォーマンスに関するIssueがあがることもありますが、本サイトは400記事以上でそこまで問題になるパフォーマンスではありません。(流石にHugoに比べると厳しいですが、これはどこか別記事で書きたい)

GitBook


「Modern documentation format and toolchain using Git and Markdown」と歌っている通り、OSSのドキュメント生成によく利用されています。最近コミットされてない疑惑があり、ちょっと先行きが怪しいのでは…。

VuePress


Vue.jsのファウンダーの方が作成中のVue.jsを用いたドキュメント専用(公式はドキュメント専用になってる)ジェネレータです。2018年にFirstCommitでかなり新しめかつ勢いのある静的サイトジェネレータです。実はvuejs.orgは前述のHexo製なのですが、これを作成しているということはそのうちVuePressに置き換わるのではないかと思います。

まとめ


私が実際に使用しているのはHexoとHugoなのでそこの解説だけ少し厚くなってしまいましたが、許して…

ブログなどの用途で使われているのはjekyll・Hugo・Hexo・Gatsby辺りだと思います。世代的には…

1
jekyll -> Hugo & Hexo -> Gatsby

というような漢字だと思います。ただ、jekyllもHugoもHexoもまだまだ現役です。GitBookとVuePressは一応、ドキュメントに特化しているという感じでしょうか。

続き


公開方法について書きます。

つづき


  1. 2018-10-18現在