構成

はじめに

Hugoのコンテンツのディレクトリ・ファイル構成をまとめます。

ディレクトリ・ファイル構成

Hugoのコンテンツは、contentディレクトリ配下に配置します。また、staticディレクトリにもファイルを配置することもできます。contentディレクトリには日々増えていくコンテンツを、staticディレクトリにはスタイルシートやJavaScript、画像など、内容を変更しないファイルを配置することを想定しているようです。とはいえ、contentディレクトリに、画像ファイルを置くこともできます。ページバンドルも参照してください。

以下に、ディレクトリ・ファイルとURLの関連を示します。/で終わるのはディレクトリです。

  • content/
    • _index.md ⇒ /index.html
    • contact.md ⇒ /contact/index.html
    • blog/
      • _index.md ⇒ /blog/index.html
      • 2020-01-01.md ⇒ /blog/2020-01-01/index.html
      • 2020-01-02.md ⇒ /blog/2020-01-02/index.html
    • hugo/
      • _index.md ⇒ /hugo/index.html
      • template/
        • index.md ⇒ /hugo/template/index.html
        • images/
          • template.png ⇒ /hugo/template/image/template.png
  • static/
    • images/
      • favicon.ico ⇒ /images/favicon.ico
    • js/
      • script.js ⇒ /js/script.js

ファイルに対応するURLは、フロントマターで変更することができます。

関連情報

Hugoのcontent配下のファイルは、その位置やファイル名により、さまざまな情報が付与されます。下記のうち、.Sectionはセクション変数、それ以外はページ変数に分類されています。

変数名 説明
.Kind Hugo内で持つ、各ページの種別を表します。
.Type contentディレクトリ直下のディレクトリ名は、自動的に、タイプ名となります。2階層目以下は、1階層目のタイプを引き継ぎます。ホームページや、contentディレクトリ直下のコンテンツのタイプは、“page"という値が設定されます。 フロントマターで変更可能。
.Section (複数の)ページをまとめたものを、セクションといいます。contentディレクトリ直下のディレクトリは、セクション名となります。入れ子になったディレクトリも、contentディレクトリ直下のディレクトリ名のセクションに属します。
.IsHome ホームページの場合 true
.IsSection .Kind が section の場合 true
.IsNode 通常ページの場合 false
.IsPage 通常ページの場合 true

これらを用いることで、テンプレート内で、条件分岐をすることもできます。

ページごとの値

前述の変数が、ページごとに、どのような値をとるかをまとめました。

ページ .Kind .Type .Section .IsHome .IsSection .IsNode .IsPage
/_index.md home page true false true false
/contact.md page page false false false true
/blog/_index.md section blog blog false true true false
/blog/2020-01-01.md page blog blog false false false true
/blog/2020-01-02.md page blog blog false false false true
/hugo/_index.md section hugo hugo false true true false
/hugo/template/index.md page hugo hugo false false false true

最終更新日

January 23, 2021

inserted by FC2 system