layouts/section.html
HUGO のlayouts/section.html テンプレートの解説
% cat themes/my-theme/layouts/section.html
{{ define "main" }}
<h1>{{ .Title }}</h1>
{{ .Content }}
{{ range .Pages }}
<section>
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
{{ .Summary }}
</section>
{{ end }}
{{ end }}
このテンプレートは Hugo のセクションページ(カテゴリーページ)を表示するためのもので、themes/my-theme/layouts/section.html に配置されています。
主な要素
{{ define "main" }}…{{ end }}- このテンプレートが「main」という名前のブロックを定義していることを示します
- 通常、baseof.html などの基本テンプレートに
{{ block "main" . }}{{ end }}があり、そこに挿入されます
<h1>{{ .Title }}</h1>- セクションのタイトルを表示します
.Titleはセクションページのメタデータや front matter から取得されます
{{ .Content }}- セクションのコンテンツを表示します
- 通常、セクションフォルダ内の _index.md ファイルの内容がここに表示されます
{{ range .Pages }} ... {{ end }}- このセクションに属するすべてのページを順番に処理します
.Pagesはこのセクションに含まれるページの配列です
各ページごとの表示部分:
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>- ページへのリンクを作成します
.RelPermalinkはそのページの相対パーマリンク(URL).LinkTitleはリンク用のタイトル(front matter の linktitle があればそれを使用、なければ通常の title)
{{ .Summary }}- ページの要約を表示します
- コンテンツの最初の部分か、`
` タグまでの部分がここに表示されます
このテンプレートは、セクションのタイトルと説明を表示し、その後にそのセクションに属するすべての記事のリストを表示する形式になっています。