一覧ページしたい(/layouts/_default/list.html)

{{ define "main" }}
  <h1>{{ .Title }}</h1>
  {{ .Content }}
  {{ range .Pages }}
    <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
    {{ .Summary }}
  {{ end }}
{{ end }}

セクションやタクソノミーなど、複数ページの一覧を表示するテンプレートです。 ベーステンプレートで定義したmainブロック({{ define "main" }})の中身を書いたサンプルです。 .Pagesで配下のページを取得し、rangeで反復してタイトルとサマリーを並べます。

ページ送りしたい(.Paginate)

{{ define "main" }}
<section class="list">
    <!-- リストのタイトル -->
    <div>
        {{ range (.Paginate .RegularPages).Pages.ByLastmod.Reverse }}
            {{ partial "article-card" . }}
        {{ end }}
    </div>
</section>
{{ end }}

.Paginateで一覧を指定件数ごとに分割できます。 分割件数はpaginationの設定でサイト全体に対して指定します。

.RegularPagesで子ページ(一覧ページ自身は除く)だけを取得し、 .ByLastmod.Reverseで更新日時の新しい順に並び替えています。 {{ partial "article-card" . }}は/layouts/partials/article-card.htmlを呼び出す部分テンプレートです。 記事1件分の表示を部分テンプレート側に切り出しておくと、一覧ページと関連記事など複数箇所で使い回せます。

リファレンス