HugoのPagination

Posted by ちょいハック on Thursday, July 8, 2021

目次

Hugoのページネーションについてまとめます。

変数

Hugoはページネーションに関する機能を用意してくれています。
また、その機能の設定も可能です。

config.tomlで定義できます。
paginate: デフォルト10。何件を1つのまとまりとするか。
paginatePath: デフォルトpage

ページのリストを作成するときの関数

.Paginatorもしくは.Paginateを使用できます。

最も簡単に使用する方法は、.Paginator.Pagesとすることでページ一覧を作成できます。

ナビゲーションを作成する

.Paginaterはページネーションを作成するのに十分な情報を持っています。

最も簡単に実装する方法はbuilt-inテンプレートを使用する方法です。
{{ template "_internal/pagination.html" . }}

もし、フィルターや順番を変更したい場合は、.Paginatorが利用できます。
具体例は以下です。

{{ $paginator := .Paginate (where .Pages "Type" "posts") }}
{{ template "_internal/pagination.html" . }}
{{ range $paginator.Pages }}
   {{ .Title }}
{{ end }}

参考

Pagination