静的サイトジェネレーター Hugo は Go 言語製で、数千ページ規模のサイトでも数秒でビルドが完了します。一方で CLI のサブコマンドやフラグは多岐にわたり、必要なコマンドを探すだけで時間がかかることも少なくありません。
このページでは Hugo CLI の全コマンドを 目的別に分類 し、フラグや実行例とともにまとめています。ブックマークしておけば、作業中にすぐ参照できるリファレンスとして活用できます。
Hugo の概要とインストール
Hugo は GitHub で 86,000 以上のスターを獲得しているオープンソースの静的サイトジェネレーターです。Markdown で書いたコンテンツを HTML に変換し、高速な Web サイトを生成できます。2026 年 2 月時点の最新バージョンは v0.155.3 です。
各 OS へのインストール方法
| OS | コマンド |
|---|---|
| macOS(Homebrew) | brew install hugo |
| Windows(Chocolatey) | choco install hugo-extended |
| Windows(Scoop) | scoop install hugo-extended |
| Ubuntu / Debian(apt) | sudo apt install hugo |
| Arch Linux | sudo pacman -S hugo |
extended 版を入れると Sass/SCSS のトランスパイルや WebP 画像処理が利用できます。特別な理由がなければ extended 版を選択してください。
なお、apt で配布されるパッケージはディストリビューション側のリポジトリに依存するため、最新版ではない場合があります。最新版を確実に導入したい場合は Homebrew(Linux 版)か GitHub Releases から直接ダウンロードしてください。
インストール後は次のコマンドで確認できます。
hugo version
# 出力例: hugo v0.155.3-... extended ...
コマンド早見表
まずは全体像を把握するために、主要コマンドを一覧表にまとめます。
| カテゴリ | コマンド | 機能 |
|---|---|---|
| サイト管理 | hugo new site | 新規サイトのスキャフォールド |
| サイト管理 | hugo new theme | テーマの雛形を生成 |
| コンテンツ | hugo new content | 記事ファイルを作成 |
| 開発 | hugo server | ローカル開発サーバーを起動 |
| ビルド | hugo / hugo build | 本番用 HTML を生成 |
| コンテンツ管理 | hugo list | 記事の一覧を表示 |
| 設定 | hugo config | 設定値の確認 |
| モジュール | hugo mod | Go Modules ベースの依存管理 |
| デプロイ | hugo deploy | クラウドへの配信 |
| 変換 | hugo convert | Front Matter の形式変換 |
| 補完 | hugo completion | シェル補完スクリプト生成 |
| ドキュメント生成 | hugo gen | マニュアルや CSS 生成 |
| インポート | hugo import | 他 SSG からの移行 |
| 情報 | hugo version | バージョン表示 |
| 情報 | hugo env | バージョンと環境情報 |
サイト管理コマンド
hugo new site ― プロジェクトの作成
新しい Hugo プロジェクトの雛形を生成します。実行するとディレクトリ構造と最低限の設定ファイルが自動作成されます。
hugo new site my-blog
実行後のディレクトリ構成は以下のとおりです。
my-blog/
├── archetypes/ # 記事テンプレート
│ └── default.md
├── assets/ # Sass・画像などの加工対象
├── content/ # Markdown 記事
├── data/ # データファイル(JSON/YAML/TOML)
├── i18n/ # 多言語リソース
├── layouts/ # テンプレート
├── static/ # そのまま公開するファイル
├── themes/ # テーマ
└── hugo.toml # 設定ファイル
主なフラグ
| フラグ | 説明 |
|---|---|
--format | 設定ファイルの形式を指定(toml / yaml / json) |
--force | 空でないディレクトリにも生成を強制 |
# YAML 形式の設定ファイルで作成する例
hugo new site my-blog --format yaml
hugo new theme ― テーマの雛形を作成
独自テーマを開発する場合に使用します。themes/ ディレクトリにテーマのスキャフォールドが生成されます。
hugo new theme my-custom-theme
テーマには layouts/、static/、archetypes/ などが含まれ、すぐにカスタマイズを始められます。
コンテンツ管理コマンド
hugo new content ― 記事の作成
Markdown ファイルを生成し、Front Matter に日付やタイトルを自動設定します。archetypes/ にテンプレートがあればそれが適用されます。
hugo new content posts/my-first-post.md
生成されるファイルの例です。
---
title: "My First Post"
date: 2026-02-09T22:38:18+09:00
draft: false
---
draft: true が初期値のため、公開時は false に変更するか、ビルド時に -D フラグを付けます。
主なフラグ
| フラグ | 説明 |
|---|---|
-k, --kind | コンテンツの種類を指定(例: post, page) |
-b, --baseURL | ルート URL を指定 |
-s, --source | ソースディレクトリの指定 |
# kind を指定して記事を作成
hugo new content -k tutorial tutorials/getting-started.md
hugo list ― 記事一覧の取得
サイト内のコンテンツを条件別に一覧表示できます。記事管理やメンテナンスの際に活用します。
| サブコマンド | 説明 |
|---|---|
hugo list all | すべての記事を一覧表示 |
hugo list drafts | 下書き状態の記事のみ表示 |
hugo list future | 公開日が未来の記事のみ表示 |
hugo list expired | 有効期限切れの記事のみ表示 |
hugo list published | 公開済みの記事のみ表示 |
# 下書き記事を確認
hugo list drafts
# 出力例:
# content/posts/wip-article.md
# content/posts/draft-review.md
公開前に hugo list drafts で下書きの残りを確認し、hugo list future で予約投稿の日時を点検するのが効率的です。
開発サーバーコマンド
hugo server ― ローカルプレビュー
組み込みの Web サーバーを起動し、ファイル変更を検知して自動的にブラウザをリロードします。開発中は常時起動しておくのが基本です。
hugo server
# → http://localhost:1313/ でプレビュー
主なフラグ
| フラグ | 初期値 | 説明 |
|---|---|---|
-p, --port | 1313 | 待ち受けポート番号 |
--bind | 127.0.0.1 | バインドする IP アドレス |
-D, --buildDrafts | false | 下書き記事も表示 |
-F, --buildFuture | false | 未来日付の記事も表示 |
-E, --buildExpired | false | 期限切れ記事も表示 |
-O, --openBrowser | false | 起動時にブラウザを自動で開く |
-N, --navigateToChanged | false | 変更したページへ自動遷移 |
--disableLiveReload | false | ライブリロードを無効化 |
--disableFastRender | false | フルレンダリングに切り替え |
--renderToMemory | false | ディスクではなくメモリ上で処理 |
--minify | false | HTML/CSS/JS を圧縮 |
--tlsAuto | false | ローカル TLS 証明書を自動生成 |
# 下書きを含めてポート 8080 で起動し、ブラウザを自動で開く
hugo server -D -p 8080 -O
# 同一ネットワーク上の他端末からもアクセスできるようにする
hugo server --bind 0.0.0.0 -p 1313
# HTTPS でプレビューする(ローカル証明書を自動生成)
hugo server --tlsAuto
ビルドコマンド
hugo(hugo build) ― 本番用ファイルの生成
public/ ディレクトリに静的 HTML を出力します。hugo と hugo build は同じ動作です。
hugo
主なフラグ
| フラグ | 説明 |
|---|---|
-d, --destination | 出力先ディレクトリを変更(初期値: public) |
--minify | HTML / XML / CSS / JS / JSON を圧縮 |
--gc | ビルド後に未使用のキャッシュファイルを削除 |
--enableGitInfo | Git のコミット情報を各ページに付与 |
-e, --environment | ビルド環境を指定(production / development など) |
-b, --baseURL | ルート URL を上書き |
-t, --theme | 使用テーマを切り替え |
--cleanDestinationDir | 出力先の不要ファイルを削除してからビルド |
# 圧縮してビルドし、不要キャッシュも掃除
hugo --minify --gc
# ステージング環境向けにベース URL を変えてビルド
hugo -b https://staging.example.com/ -e staging
ビルド時に含めるコンテンツの制御
| フラグ | 効果 |
|---|---|
-D, --buildDrafts | draft: true の記事もビルド |
-F, --buildFuture | 公開日が未来の記事もビルド |
-E, --buildExpired | 有効期限切れの記事もビルド |
# すべてのコンテンツを含めてビルド
hugo -D -F -E
設定確認コマンド
hugo config ― 設定値の表示
現在有効な設定をすべて出力します。設定ファイルの記述ミスを探すときに役立ちます。
hugo config
サブコマンド
| サブコマンド | 説明 |
|---|---|
hugo config mounts | ファイルマウントの設定を表示 |
# マウント情報だけ確認
hugo config mounts
hugo env ― 環境情報の出力
Hugo のバージョンに加え、Go のバージョンや OS 情報、有効な機能フラグを表示します。問題報告時に添付すると原因特定がスムーズです。
hugo env
# 出力例:
# hugo v0.155.3+extended linux/amd64 BuildDate=...
# GOARCH="amd64"
# GOOS="linux"
# ...
モジュール管理コマンド
Hugo Modules は Go Modules の仕組みを利用して、テーマやコンポーネントをバージョン管理できる機能です。
hugo mod のサブコマンド一覧
| サブコマンド | 説明 |
|---|---|
hugo mod init | モジュールを初期化(go.mod を生成) |
hugo mod get | 依存モジュールをダウンロード・更新 |
hugo mod tidy | 未使用モジュールを go.sum から除去 |
hugo mod vendor | 依存を _vendor/ にコピー |
hugo mod verify | モジュールの整合性を検証 |
hugo mod graph | 依存関係をツリー表示 |
hugo mod clean | モジュールキャッシュを削除 |
hugo mod npm pack | package.json を統合して出力 |
# モジュール初期化
hugo mod init github.com/your-name/your-site
# テーマをモジュールとして追加
hugo mod get github.com/theNewDynamic/gohugo-theme-ananke
# 不要な依存を整理
hugo mod tidy
テーマを Git submodule で管理する従来の方式と比べ、Hugo Modules はバージョン固定や差分更新が容易です。チーム開発やテーマの組み合わせ利用時に特に効果を発揮します。
デプロイコマンド
hugo deploy ― クラウドへの配信
hugo.toml の [deployment] セクションに対象と認証情報を記述しておくと、ビルド成果物をクラウドストレージへ直接アップロードできます。
# hugo.toml の設定例
[deployment]
[[deployment.targets]]
name = "production"
URL = "s3://my-bucket?region=ap-northeast-1"
hugo deploy
対応するクラウドプロバイダは Amazon S3、Google Cloud Storage、Azure Blob Storage です。
変換・インポートコマンド
hugo convert ― Front Matter の形式変換
既存コンテンツの Front Matter を別の形式に一括変換します。
| サブコマンド | 変換先 |
|---|---|
hugo convert toTOML | TOML 形式 |
hugo convert toYAML | YAML 形式 |
hugo convert toJSON | JSON 形式 |
# 全記事の Front Matter を YAML に変換
hugo convert toYAML
hugo import jekyll ― Jekyll サイトの移行
Jekyll プロジェクトのディレクトリを指定すると、Hugo 形式に変換してインポートします。
hugo import jekyll /path/to/jekyll-site /path/to/hugo-site
記事の Front Matter やディレクトリ構造が自動的に Hugo の規約に合わせて変換されます。
補助コマンド
hugo completion ― シェル補完の設定
hugo コマンドの Tab 補完を有効にします。対応シェルごとにサブコマンドが用意されています。
| サブコマンド | 対象シェル |
|---|---|
hugo completion bash | Bash |
hugo completion zsh | Zsh |
hugo completion fish | Fish |
hugo completion powershell | PowerShell |
# Bash の場合
source <(hugo completion bash)
# .bashrc に追記して永続化
echo 'source <(hugo completion bash)' >> ~/.bashrc
# Zsh の場合
echo 'source <(hugo completion zsh)' >> ~/.zshrc
補完を有効にするとサブコマンドやフラグが Tab キーで候補表示されるため、入力効率が大幅に向上します。
hugo gen ― ドキュメントやスタイル生成
Hugo 自体のマニュアルページやシンタックスハイライト用 CSS を生成するユーティリティです。
| サブコマンド | 説明 |
|---|---|
hugo gen chromastyles | Chroma ハイライト用 CSS を出力 |
hugo gen doc | Hugo コマンドの Markdown ドキュメントを生成 |
hugo gen man | man ページを生成 |
# monokai スタイルのシンタックスハイライト CSS を生成
hugo gen chromastyles --style=monokai > syntax.css
ブログでコードブロックを多用する場合、この CSS をサイトに組み込むとハイライト表示を細かく制御できます。
グローバルフラグ(全コマンド共通)
すべてのコマンド・サブコマンドで利用できるフラグです。
| フラグ | 説明 |
|---|---|
--config | 設定ファイルのパスを指定 |
--configDir | 設定ファイルのディレクトリを指定(初期値: config) |
-s, --source | ソースディレクトリを指定 |
-e, --environment | ビルド環境を指定 |
--logLevel | ログレベルを指定(debug / info / warn / error) |
--quiet | 出力を抑制 |
--clock | Hugo 内部の時計を固定(テスト向け) |
--noBuildLock | .hugo_build.lock を生成しない |
--ignoreVendorPaths | 指定 Glob パターンにマッチするベンダーパスを無視 |
# 設定ファイルを明示して本番環境用にビルド
hugo --config config/production.toml -e production
用途別クイックリファレンス
作業の目的に合わせて使うコマンドを速引きできるよう整理しました。
サイトを新しく立ち上げるとき
hugo new site my-site --format yaml
cd my-site
hugo mod init github.com/your-name/my-site
hugo mod get github.com/theNewDynamic/gohugo-theme-ananke
hugo server -O
日常の記事執筆フロー
# 記事を作成
hugo new content posts/2026-02-09-new-article.md
# 下書きを含めてプレビュー
hugo server -D
# 下書きを確認
hugo list drafts
# draft: false に変更後、本番ビルド
hugo --minify --gc
CI/CD でのビルド(GitHub Actions の例)
# .github/workflows/deploy.yml
name: Deploy Hugo
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- uses: peaceiris/actions-hugo@v3
with:
hugo-version: "0.155.3"
extended: true
- run: hugo --minify
- uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
トラブルシューティング向け情報収集
# 環境情報を取得(問題報告に添付)
hugo env
# 設定の確認
hugo config
# 詳細ログでビルド
hugo --logLevel debug
# キャッシュを全削除して再ビルド
hugo mod clean
hugo --gc --cleanDestinationDir
よくある質問(FAQ)
Hugo のバージョンを確認する方法は?
hugo version を実行すると、インストール済みのバージョンとビルド情報が表示されます。より詳しい環境情報が必要な場合は hugo env を使用してください。
hugo server と hugo の違いは?
hugo server はローカル開発サーバーを起動し、ファイル変更時に自動リビルドとライブリロードを行います。対して hugo(hugo build)は public/ ディレクトリに静的ファイルを出力するだけで、サーバー機能は含まれません。
開発中は hugo server、本番デプロイ前は hugo --minify という使い分けが標準的です。
Front Matter の形式を変えたいときは?
hugo convert コマンドで TOML・YAML・JSON を相互変換できます。たとえば TOML から YAML に移行する場合は hugo convert toYAML を実行します。コンテンツの中身はそのままで、Front Matter 部分だけが変換されます。
テーマの管理に Git submodule と Hugo Modules のどちらを使うべき?
Hugo Modules をおすすめします。バージョンの固定・更新・複数モジュールの組み合わせが hugo mod get と hugo mod tidy だけで完結し、チームメンバー間で環境差が生じにくくなります。Git submodule は Hugo Modules 登場以前の方式であり、新規プロジェクトであえて選ぶ理由はほとんどありません。
まとめ
Hugo CLI はサイト作成からデプロイまで、静的サイト運営のほぼすべてをカバーしています。日常的に使用頻度が高いのは次の 5 つです。
hugo new content― 記事ファイルの作成hugo server -D― 下書き込みのローカルプレビューhugo --minify --gc― 本番ビルドhugo list drafts― 下書きの確認hugo mod tidy― 依存の整理
コマンドのフラグを忘れたときは hugo <command> --help で即座に確認できます。シェル補完(hugo completion)を設定しておくと、Tab キーで候補が表示されるため作業がさらに速くなります。
公式ドキュメント: https://gohugo.io/commands/