TL;DR(別に長くないけど)

このページを作成するのにいろいろ検討した結果

[hugo]()+[netlify]()

の組み合わせになりました。 hugoは静的サイトジェネレータと呼ばれるジャンルのツールで、 netlifyはビルドで生成した静的ファイルのホスティングを行ってくれるサービスです。

静的サイトジェネレータ

静的サイトジェネレータはjekyllから有名になったようです(要出典) WordpressのようなCMSと比べると、生成した静的なファイルをホスティングするだけで住むので、 リクエストの処理が早い等のメリットが挙げられます。 その他のメリットは上のリンク先に記述されています。

jekyllが出てきた当初はあまり多くなかった静的サイトジェネレータですが、 現在ではパフォーマンス上の改善を目的として他にも様々な種類の静的サイトジェネレータが公開されています。 (参考:WordPressの代わりになる!2018年注目の静的サイトジェネレーター6選 https://ferret-plus.com/9413)

netlify

netlifyはこれらの静的サイトジェネレータで生成したファイルをホスティングするために作成されたサービスで、 リポジトリを指定するだけで、コミット時に自動でビルド→成果物をwebサイトとして公開ということ行ってくれます。 今回のブログ作成はとりあえずこのサービスを使ってみたかったという側面もあるかもしれません。

静的サイトジェネレータ+ホスティングの選定

こんかいブログを新しく使うに当たって以下のツールを調査して試してみました。

  • CMS
    • Journey
    • golang製CMS nodejs製のCMSの[ghost]とテーマの互換性がありビジュアル面の選択肢が広い
    • 内部でsqliteを使用するアプリケーションのためnetlifyでホストできないので見送り
  • ジェネレータ

    • Orchid
    • Java製のドキュメントジェネレータ プラグインに応じてJavadoc、ブログ、wiki様々な用途で出力できる
    • gradleプラグインが提供されているのでJVM系の言語のドキュメントを作成するのに向いていそう
    • 一方で設定ファイルとプラグインの仕組みが複雑すぎるので今回は見送り
    • Hugo
    • golang性の静的サイトジェネレータ jekyllと比べると環境構築が容易なメリットがある
    • テンプレートはtext/templateのエンジンを使用しているので他のテンプレートを流用しづらい
      • ghostはhandlebarを使用しているのでテンプレートは他のツールで使用しやすい
  • ホスティング

    • github pages
    • 静的サイトジェネレータで作成したファイルはgithub pagesでホストできる
    • そんなに悪い選択肢ではないが、netlifyに比べると別にCIツールを準備する必要がある
      • 前に一度[wercker]を使用してドキュメントのCIを行ったことがあるので今回は違う方法を使う
    • netlify
    • hugo,jekyll等の静的サイトジェネレータを標準でサポートしており、自動でCI設定を組み上げてくれる機能がある
    • リポジトリを指定するだけでサイトを公開できる

というわけで最終的にHugoとnetlifyを使用しました。

その他

Hugoのテーマとしてはhugo-cardsを使用しています。 Hugoのテーマは公式のテーマページで割と数多く公開されているので、 細かいことに気にならない人はそこまでテーマに困ることもなさそうです。 またテーマ自体に手を入れるのも表示ンのテンプレートの構文を理解さえしていればかなりかんたんに行えるので Hugoは結構いい選択肢かもしれません。 (実際静的サイトジェネレータの中でも結構メジャーなツールになっている気がします。)

ではでは