セクション
Hugo は、コンテンツにマッチした セクションツリー を生成します。
セクション は、content/
ディレクトリの下の組織構造に基づいて定義されるページのコレクションです。
デフォルトでは、ブランチバンドル
を構成する場合、content/
の下のすべての 第 1 レベル ディレクトリは独自のセクション (ルート セクション) を形成します。
リーフバンドル
だけのディレクトリは、第 1 レベルのディレクトリであるにもかかわらず、独自のセクションを形成することは ありません。
ユーザーがより深いレベルでセクション foo
を定義する必要がある場合には、 _index.md
ファイルを含む foo
という名前のディレクトリを作成する必要があります (より詳細な情報は、ブランチバンドル
を参照してください)。
ネストされたセクション
セクションは、必要なだけ深くネストできます。
content
└── blog <-- content/ の下の第 1 レベルのディレクトリのため、セクション
├── funny-cats
│ ├── mypost.md
│ └── kittens <-- _index.md を含むため、セクション
│ └── _index.md
└── tech <-- _index.md を含むため、セクション
└── _index.md
理解すべき重要な点は、セクションツリーを完全にナビゲートするためには、少なくとも最下段のセクションはコンテンツファイル (たとえば、 _index.md
) が必要であるということです。
テンプレート選択との関連で セクション について話すとき、現在のところ、それは常に ルートセクション のみです (/blog/funny-cats/mypost/ => blog
)。
サブセクションに特定のテンプレートが必要な場合は、フロントマターで type
か layout
のどちらかを調整する必要があります。
例: パンくずリスト
利用可能な セクション変数とメソッド を使用すると、強力なナビゲーションを構築できます。一般的な例の 1 つは、パンくずリストを表示するパーシャルです。
<nav aria-label="breadcrumb">
<ol>
{{ range .Ancestors.Reverse }}
<li>
<a href="{{ .Permalink }}">{{ .LinkTitle }}</a>
</li>
{{ end }}
<li class="active">
<a aria-current="page" href="{{ .Permalink }}">{{ .LinkTitle }}</a>
</li>
</ol>
</nav>
セクション ページの変数とメソッド
ページ変数 も参照してください。
- .CurrentSection
- ページの現在のセクションです。 セクションまたはホームページの場合、この値はページそのものになります。
- .FirstSection
- ルート以下のページの最初のセクションで、たとえば
/docs
、/blog
などです。 - .InSection $anotherPage
- 指定されたページが現在のセクションにあるかどうか。
- .IsAncestor $anotherPage
- 現在のページが指定されたページの祖先であるかどうか。
- .IsDescendant $anotherPage
- 現在のページが指定されたページの子孫であるかどうか。
- .Parent
- セクションの親セクション、またはページのセクションです。
- .Section
- このコンテンツが属する セクション
です。注意: ネストされたセクションの場合、これはディレクトリ内の最初のパス要素、たとえば、
/blog/funny/mypost/ => blog
のようになります。 - .Sections
- このコンテンツの下にある セクション です。
コンテンツセクションのリスト
Hugo は、各 ルートセクション に、そのセクションのすべてのコンテンツを一覧表示するページを自動的に作成します。これらのページのレンダリングする方法のカスタマイズの詳細については、「セクション テンプレート」 のドキュメントを参照してください。
コンテンツ セクション とコンテンツ タイプ の違い
デフォルトでは、セクション内で作成されたものはすべて、ルートセクション 名と一致する コンテンツ タイプ
を使用します。 たとえば、Hugo は posts/post-1.md
が posts
というコンテンツ type
を持っていると仮定します。 posts
セクションに アーキタイプ
を使用している場合、Hugo は archetypes/posts.md
で見つけたものに従ってフロントマターを生成します。