Hugoの特徴を紹介します。
実際に使用すると、この記事に載っている以上のメリットがあると思います。

なぜHugoの特徴が分かるのか?
それは僕がVeilnui Hibikiの開発者だからです。

Webサイトを生成する上での特徴

HugoでWebサイトを生成する上で受容できる特徴です。

Webサイトの生成が高速

Webサイトの生成が高速な理由は開発言語の「Go」に起因します。
Goには、並列処理にてテキストファイルの生成を行う「テンプレート機能」というのがあります。
Hugoは、Webサイトの生成にGoのテンプレート機能(html/template)を使用するため高速なのです。

クロスプラットフォームに対応

Hugoは、7種類のプラットフォームに対応しています。

  • DragonFly BSD
  • FreeBSD (32bit / 64bit / ARM)
  • Linux (32bit / 64bit / ARM)
  • macOS
  • NetBSD (32bit / 64bit / ARM)
  • OpenBSD (32bit / 64bit / ARM)
  • Windows (32bit / 64bit)

LiveServerとLiveReloadを標準搭載

HugoはLiverServerを標準搭載しています。
hugo serverコマンドでローカルサーバー立ち上げてプレビューができます。
また、ローカルサーバー起動時はLiveReloadも同時起動します。
Webサイトのコンテンツが変更されたとき、自動でWebサイトのリビルドを行います。

350種類以上の豊富な無料テーマ

Hugoにはテーマ機能があり、Webサイトの外観を簡単に変えることができます。
無料のテーマはHugoの公式サイトに登録されているだけで350種類以上あります。

JCK対応

Hugoは、中国語、日本語、韓国語(通称、CJKまたは全角文字)に対応しています。

コンテンツ管理上の特徴

Hugoでコンテンツを管理する上で受容できる特徴です。

カスタマイズ可能なパーマリンク

パーマリンクは柔軟にカスタマイズできます。
日付、セクション、ファイル名を組み合わせて自分好みのパーマリンクを生成できます。

カスタムタクソノミーが使用可能

Hugoは、主な分類として「セクション」があります。
これはディレクトリ構成に基づく分類法です。

しかし、それ以外の分類法として「タクソノミー」があります。
Hugoはデフォルトで「カテゴリー」と「タグ」の2つのタクソノミーが定義されています。
必要であればカスタムタクソノミーを定義して、新たな分類法を作成することもできます。

自動目次生成

Hugoは、コンテンツ内容から自動で目次を生成します。
お世辞にも使いやすくはありませんが、目次の生成は大変なため自動で生成してくれるのはありがたいです。

ナビゲーション機能あり

Hugoには、ナビゲーション機能(別名、メニュー機能)があります。

Pretty URLとUgly URLをサポート

Hugoは「Pretty URL」と「Ugly URL」の2種類をサポートしています。

Pretty URL
https://veilnui.blog/hugo/index.html

Ugly URL
https://veilnui.blog/hugo.html

エイリアス機能

Hugoには「http-equiv属性」によるエイリアス機能があります。
ただし、転送先は同一Webサイト内でなくてはいけません。
外部URLへの転送はできません。

クロスフォーマットをサポート

Hugoはコンテンツフォーマットとして6種類をサポートしています。
デフォルトではMarkdown(Goldmark)が使用されます。
僕としてはAsciidocとHTMLが使用できるのが嬉しいです。 柔軟にコンテンツが作成できます。

  • Markdown (Goldmark / BlackFriday / MMark)
  • Asciidoc (要Asciidoctor)
  • Emacs Org-Mode
  • reStructuredText (要reStructuredText)
  • Pandoc (要Pandoc)
  • HTML

フロントマター使用可

Hugoのコンテンツはすべてフロントマターが使用できます。
対応フォーマットはTOML、YAMLそしてJSONです。

コンテンツタイプおよびレイアウトタイプの指定可

Hugoのコンテンツはすべてコンテンツタイプおよびレイアウトタイプが設定できます。
Hugo自体は関係ない機能ですが、一部のテーマではレンダリングに重要な設定でもあります。

コンテンツ要約機能あり

Hugoはコンテンツを自動要約してくれます。
もちろん、ユーザーが自分で要約を作成することもできます。

高度なショートコード機能

HugoはWordPressと同等かそれ以上の機能を持つ「ショートコード機能」があります。

ソースコードのシンタックスハイライト

HugoはChromaを使用したソースコードのシンタックスハイライトに対応しています。

同一ディレクトリ内でファイル管理

Hugoのコンテンツ管理方法の1つに「ページバンドル」があります。
そのコンテンツで使用するリソースファイルをコンテンツのディレクトリと同じ場所で管理できる機能です。

Hugoのテーマ開発の特徴

Hugoのテーマを開発する上で受容できる特徴です。

スライスとマップの操作が柔軟

Hugoの独自関数によりスライスとマップの操作が柔軟に行えます。
加算のほか、減算、乗算、単一化、ソート、シャッフルなども行えます。

JSONの生成

入れ子にしたスライスまたはマップから安全なJSONを生成することができます。
この機能により、構造化データのJSON-LDを生成することもできます。

URLの操作

「相対URLを絶対URLへ。または絶対URLから相対URLへ変換する」などの基本的な操作ができます。 更には「スライスからクエリ文字列を生成する」「URLに使用できない文字を排除する」などの機能もあります。

画像操作

幅と高さおよびExif情報の取得のほか、拡大縮小、回転、フィルター効果などの機能があります。

その他の特徴

上記に当てはまらないけど、Hugoの重要な特徴です。

Disqusサポート

Hugoは、使用するテーマによりますがDisqusをサポートしています。
Hugo自体にも簡単にDisqusを使える仕組みが用意されています。

Google Analyticsサポート

Hugoは、使用するテーマによりますがGoogle Analyticsをサポートしています。 Hugo自体にも簡単にGoogle Analyticsを使える仕組みが用意されています。

自動RSSの生成

Hugoは自動でRSSを生成します。設定で無効化することもできます。