Hugo テーマ 5. layouts/section.html をいじる
2026-06-15 00:11:30 Hugo内容が古くなっている可能性があるのでご注意ください。
content 内のディレクトリーに対応するレイアウト定義を編集します。
このレイアウトの方針
layouts/section.html は、セクション内のコンテンツページを列挙するページのレイアウトを定義します。
このサイトでは以下の要素を組み込みます。
- セクション自身のコンテンツがある場合はそのタイトルと記載内容
- 個々のコンテンツについて出力する情報
- タイトル
- 最終更新日時 (別途、js で何か月前、という表記に変える)
- コンテンツのタイトル
- コンテンツの冒頭に記載した概要
- 利用者が読みたい場合に押すことでコンテンツにジャンプするためのリンク
- ページネーション
section.html
| |
ページネーション
各セクション内のコンテンツページ数が多い場合、すべてのコンテンツページを1ページ内に列挙するのではなく、適度な件数で区切るようにします。
Hugo に組み込まれているページネーションの仕組みを使います。
Paginator ☐↗ と Paginate ☐↗ があります。
並び替えやフィルタリングをしたい場合は Pagenate を使います。
どちらの場合もコード例が記載されています。
プロジェクトの設定でコンテンツ数を指定する
Configure pagination ☐↗ にある通り、プロジェクトの設定でページネーションの設定ができます。
[pagination]
pagerSize = 10
Pagination では上記の設定で制御するしかないため、ほかの場所・ほかの用途で Pagination を使った場合も同じ設定が使われます。
場所によって数を変更したい場合は Pagenate の方を使います。
Hugo のドキュメントでも Pagenate の方が推奨されています。
シリーズものを扱うセクションの並び順指定
シリーズもののコンテンツの並びをタイトル昇順にするような仕組みを実装しました。
コンテンツごとにフロントマターで weight を指定するというやり方もあります。
ですがその場合、セクション以外にもタグによる一覧でも、その weight が影響して並び順が変わってしまいます。
このテーマでは、セクションによる一覧限定で並び替えの機能を付けました。
セクションの _index.md
content/
section1/
_index.md ←これ
content1-1.md
記述例
---
title: "..."
params:
series: true
---
_partials/page_as_listitem.html
列挙されたコンテンツページ (タイトル等) を表示する際のレイアウトを定義します。
| |
_partials/pagination.html
ページネーションがされた際の前へ次へのリンクを表示します。
実はこれ、テーマ作成者が用意しなくても動作します。
事実、derty でもこのファイルは作っていません。
(section.html の記述は、そのままで良いです)
Pagination #Navigation ☐↗ にありますが、Hugo 組み込みの partial テンプレートが使われます。
興味のある方は Hugo のソースコードにある _partials ☐↗ を見てみることをお勧めします。pagination.html の中身が掲載されていますので、独自の pagination.html を作る際の参考になるでしょう。
pagination.html だけではなく、ほかにも同様に組み込みのものが掲載されています。
ついでに taxonomy.html も term.html
derty ではセクションと同じ扱いにしています。 (ただし、こちら2つにはシリーズの扱いはありません)
ですので、解説は省略します。
出力結果の比較 (画像)
| もともと | 変更後 |
|---|---|
![]() | ![]() |
![]() | ![]() |
- 📄 Hugo テーマ 9. Pagefind でサイト内検索機能を付ける2026-06-15 00:11:30静的なインデックスを使った検索 UI を提供する Pagefind を組み込みます。
- 📄 Hugo テーマ 8. Shortcodes と Render hooks2026-06-15 00:11:30Markdown で記述したコンテンツ (テーマの利用側) に対して Hugo が用意した HTML 変換の仕組みを解説します。
- 📄 Hugo テーマ 7. layouts/baseof.html をいじる2026-06-15 00:11:30サイト全体に共通する、ページのレイアウト定義を編集します。
- 📄 Hugo テーマ 6. layouts/home.html をいじる2026-06-15 00:11:30トップページのレイアウト定義を編集します。
- 📄 Hugo テーマ 5. layouts/section.html をいじる2026-06-15 00:11:30content 内のディレクトリーに対応するレイアウト定義を編集します。
- 📄 Hugo テーマ 4. layouts/page.html をいじる2026-06-15 00:11:30コンテンツに対応するページのレイアウトを編集します。
- 📄 Hugo テーマ 3. 作られたファイル2026-06-15 00:11:30前回作ったテーマを構成するファイルを解説します。
- 📄 Hugo テーマ 2. まずは作ってみる2026-06-15 00:11:30テーマを作りプロジェクトに適用するところまでを解説します。
- 📄 Hugo テーマ 1. はじめに2026-06-15 00:11:30連載「Hugo テーマ」を行う背景とその方針を説明します。
- 📄 vvin2026-05-30 16:58:07Windows のウィンドウサイズを操作する CLI アプリ



