構成
はじめに
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
- images/
ファイルに対応する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