静的サイトジェネレータを使ってサイトを作ってみたかったけど、StaticGenを見ても違いがイマイチわからなかったので、自分の気になる点で比較してみました。
比較したプロダクト
- Middleman
- Hugo
- Metalsmith
- Pelican
上記の4プロダクトを比較しました。
StaticGenで人気がありそうなものを中心に選定しましたが、自分が作りたいサイトはブログではない普通のサイトなので、ブログ作成に特化1していると書いているものは外しました(Jeykll, Octopress, Hexo等)。
なお、比較はすべてドキュメントやサンプルプログラムから読み取れる内容で行ったので、実際の挙動が違っていたらごめんなさい。
基本項目
プロダクト名 | 開発言語 | コンテンツ |
---|---|---|
Middleman | Ruby (Sinatra) | ERb or HAML |
Hugo | Golang | Markdown |
Metalsmith | Node.js | Markdown |
Pelican | Python | Markdown |
コンテンツは、実際にコンテンツを書くために使う言語です。
Middlemanはブログプラグイン2をインストールすると、ブログ記事だけはMarkdownで書ける機能があるようです。ひょっとしたら、これを工夫すれば普通のページもMarkdownで書けるのかもしれません。
デザイン
プロダクト名 | テンプレート | カタログ |
---|---|---|
Middleman | ERb or HAML |
公式サイト内 (画像なし) |
Hugo | Go言語標準 | 公式サイト内 |
Metalsmith | Handlebars 他 | なし |
Pelican | Jinja |
github (画像なし) |
テンプレートは、レイアウト等を作るためのテンプレートエンジンです。
Metalsmithは、テンプレートエンジンもプラグインとなっているため、様々なテンプレートエンジンを使うことが可能です。公式サイトのサンプルコードではHandlebarsが利用されています。
カタログとは、すぐに使えるテンプレートの一覧が提供されているかどうかを表しています。
「画像なし」と書いたものは、カタログはあるもののスクリーンショットがないため、自分で実際に入れてみないと雰囲気がわからない残念なものです。
プラグイン
プロダクト名 | プラグイン管理 | カタログ |
---|---|---|
Middleman | gem | 公式サイト内 |
Hugo | なし | なし |
Metalsmith | 設定ファイル (json) |
公式サイト内 |
Pelican | 設定ファイル (python) |
github |
プラグイン管理は、プラグインのインストール方法を表しています。
Hugoにはそもそもプラグインの仕組みがないように見えました。ただ、標準で多機能なので、機能的に貧弱な印象は受けていません。
カタログとは、すぐに使えるプラグインの一覧が提供されているかどうかを表しています。
とは言え、いずれも詳しい説明を書いてくれているわけではないので、結局はひとつずつREADMEを読む必要がありそうです。
ドキュメント
プロダクト名 | 充実度 | 日本語対応 |
---|---|---|
Middleman | △ | ◯ |
Hugo | ◯ | × |
Metalsmith | × | × |
Pelican | △ | × |
充実度は、公式サイトのドキュメントの量と質を主観で3段階評価しました。
Metalsmithはほとんどの機能をプラグインで提供している事もあり、本体にドキュメントらしいドキュメントはありませんでした。READMEと、代わりに提供されているサンプルプログラムから読み解く必要がありそうです。
他はいずれもひと通り読めば分かるドキュメントがあり、読みやすさも同程度ですが、Hugoはサンプルコードや動画が充実していたため、他より1段階良いとしました。
その他所感
- Middleman
- あくまでSinatraでサイトを簡単に作る仕組み、というイメージです。
- 他のプロダクトに比べると、静的サイトジェネレータとしての完成度はあまり高くないような。
- SinatraやRailsを書ける人は、要素技術的にすんなり入りやすいと思います。
- あくまでSinatraでサイトを簡単に作る仕組み、というイメージです。
- Hugo
- プラグインがない分、本体機能の充実度は一番。
- その分、他より覚えなくてはいけない事が多い気がしました。
- 作成するソースコードのディレクトリ構造も他プロダクトより複雑。
- プラグインがない分、本体機能の充実度は一番。
- Metalsmith
- Pelican
- デプロイにFabricを使う等、Pythonに慣れてる人には入りやすいはず。
- 実はブログ的な使い方がメインらしく、ちょっと趣旨と合わないかもしれません。3