Hugoとは

Hugoは静的サイトジェネレーターで、高速で簡単にサイトを作成できます。
公式サイト にはこう書かれています。

“ウェブサイトを構築するための世界最速のフレームワーク”

実際、ブログをビルドしてみたのですが、0.1秒もかかりませんでした。(ページが少ないのもあるけど)
HugoはGoで作成されているらしいです。( GitHub 組織ページ )
多くののプラットフォームに対応しており、 リリースページ を見ると

  • macOS
  • DragonFly BSD
  • FreeBSD
  • NetBSD
  • OpenBSD
  • Windows (amd64, arm64)
  • 各種Linuxディストロ (パッケージマネージャ)

に対応していました。 しかもシングルバイナリらしいです。バイナリサイズは60MB程度でした。
僕はpacmanを使用してインストールしましたが、Windowsを使ってる人にはありがたいと思います。
さらにGitHub Actionsも用意されていてプッシュするたびにビルド & デプロイができます。
このブログでもGitHub Actionsを使用してビルドを自動化しています!
Hugoの高速なビルドのおかげか、2000分の上限に届く気配がしません笑

実際に作成してみる

とりあえず クイックスタート を読んで進めました。
テーマは PaperMod を使用しました。
選んだ理由は

  • 更新されている
  • Starが多い
  • レスポンシブ
  • ダークテーマ対応
  • 軽い

が大きな理由です。個人的に更新が続いていることはマストです。
もう1つ別のテーマの Stack とも迷ったんですが、公式のデモページ同士で速度測定をしたところ、Stackが大幅に負けていたのでやめました。
PaperModはオススメのテーマですが、いくつか気に入らないところがありました。

  • ページネーションが 前/次 しかない
  • 関連記事を表示できない
  • 目次が固定されない

全部Hugoの機能であるテーマのオーバーライドで解決しました。
これについても別の記事で書きたいと思います。

関連記事の表示方法を解説しました!
PaperModで関連コンテンツを表示する方法!
PaperModでページネーションをカスタムする方法!
もぜひ確認してください!

詳しい作り方は他のサイトが解説してくれているのでここでは書きません。
…が、いくつかコケた & 更新されていた 点があるのでそれも書きます。

注意点

設定ファイルは config.* から hugo.* になった

ココ です。ほぼ最新の更新です。ほとんどのサイトが古い情報なので注意が必要です。
古いファイル名でも読みにいくらしいですが変更しておいた方が良さそうです。

サブディレクトリで運用する場合

canonifyUrlstrue にする必要があるそうです。
baseUrl とかそのへんでコケまくったのでこれもまた別記事で書きたいと思います。

その他

注意点ではないですが、YAMLをはじめて読んだのでちょっと困りました。
もうちょっと明示的に書きたいです。
その点ではJSON大好きなんですが、コメントとケツカンマができないので…
それさえ解消されればJSONは最強だと思います。

おわりに

今回はHugoを使用してブログを作ってみました。
この記事を書いていて思ったのですが、ブログを書くのって思った以上に大変でした。
Hugoを設定するのは苦でなかったのですが、実際に記事を書くのが予想以上に面倒です。
文章を書く練習にもなるのでなるべく続けていきたいのですが…
頑張って更新を続けられたらと思います。
最後まで読んでいただきありがとうございました。