hugo new site コマンドを実行したばかりの時、一気にたくさんのフォルダが作成されて「どれをどのように使えばいいのだろう?」と戸惑ってしまう方は多いはずです。

この記事では、Hugoプロジェクトにおける各フォルダ(content / layouts / static など)がどのようなデータを格納する役割を持っているのか、そしてテーマファイルを安全に扱うための仕組みについて整理して解説します。


1. 📂 content/

記事のMarkdownファイル を置く場所です。

2. 📂 layouts/

テンプレート(HTML) を置く場所です。

「あれ? themes/ の中にも layouts/ があるけど、何が違うの?」と思いましたか?
ここがHugoの 超重要ポイント です!

  • themes/my-tutorial-theme/layouts/: テーマの「本来の」デザインが入っています。
  • (ルートの) layouts/: テーマのデザインを 「上書き(カスタマイズ)」 するための場所です。

🎨 カスタマイズの基本:上書き(Override)

Hugoは、ページを作るときに 「ルートの layouts/ にファイルがあるか?」 を真っ先に確認します。

  1. もしルートの layouts/ にファイルがあれば、それを使います(上書き)。
  2. なければ、themes/.../layouts/ にあるファイルを使います(デフォルト)。

つまり、 「テーマのファイルは直接いじらず、変えたいファイルだけをルートの layouts/ にコピーして編集する」 のが、Hugo流の賢いカスタマイズ方法なんです。
こうすれば、テーマ自体はきれいな状態のまま、自分好みの変更だけを管理できます。

3. 📂 static/

画像やCSSなどの「静的ファイル」 を置く場所です。

  • ここに置いたファイルは、Hugoは何もしません。そのまま公開サイトのトップにコピーされます。
  • 例えば static/images/logo.png に置くと、公開時は http://.../images/logo.png としてアクセスできます。
  • イメージ: 配布資料置き場📦

4. 📂 themes/

テーマ を入れる場所です。

  • Step 2 でダウンロード(または作成)したテーマファイルがここに入ります。
  • サイトのデザイン(着せ替え)データ一式です。
  • イメージ: 衣装部屋👗

5. 📂 data/

記事以外の「データ」 を置く場所です。

  • TOML, YAML, JSON などの形式でデータを保存できます。
  • 例えば「メンバー紹介」や「商品リスト」など、記事にするほどではないけど管理したいデータに使います。
  • ここに members.toml を置くと、テンプレートから {{ .Site.Data.members }} で簡単に呼び出せます。
  • イメージ: データベース、書類棚🗄️
  • もっと詳しく: 記事からデータを分離しよう! (dataフォルダの活用)

6. 📂 i18n/

翻訳ファイル を置く場所です(i18n = internationalization の略)。

  • サイトを多言語化(英語・日本語対応など)する時に使います。
  • また、「Read More」を「続きを読む」に変えるような、 テーマ内の定型文の翻訳 もここで管理します。
  • en.toml, ja.toml のようなファイルを作り、{{ T "key" }} という関数で呼び出します。
  • イメージ: 翻訳辞書📖
  • もっと詳しく: 世界へ発信!サイトの多言語化 (i18n)

7. 📂 hugo.toml

サイト全体の設定ファイル です。


その他のフォルダ

📂 archetypes/

「新しい記事の雛形」 です。

  • hugo new content コマンドを使った時、ここにあるファイル(default.md)がコピーされて記事が作られます。
  • 最初にタイトルや日付が自動で入るのは、これのおかげです。

📂 public/

「完成したWebサイト」 が出力される場所です。

  • hugo コマンドを実行(ビルド)すると、このフォルダが生成されます。
  • 本番サーバーにアップロードするのは、このフォルダの中身だけです!
  • 注意: この中身は手動で編集しません(ビルドするたびに作り直されるので消えちゃいます)。

フォルダごとの役割を把握してスムーズに開発を進めよう

非常に多く見えるHugoのフォルダ群ですが、基本的には「記事は content/」「デザインのカスタマイズはルートの layouts/」「画像は static/」という3つの大原則さえ押さえれば、どこにファイルを置くべきかで迷うことはなくなります。
各ディレクトリの目的を理解して、安全で効率的にサイト作りの作業を進めていきましょう!🧭