分页

有两件事可以分页:一个部分和一个分类术语。

在概述页面中提到的常见变量之上, 这两种类型都得到一个类型paginator的变量Pager

// How many items per pager
paginate_by: Number;
// The base URL for the pagination: section permalink + pagination path
// You can concatenate an integer with that to get a link to a given pagination pager.
base_url: String;
// How many pagers in total
number_pagers: Number;
// Permalink to the first pager
first: String;
// Permalink to the last pager
last: String;
// Permalink to the previous pager, if there is one
previous: String?;
// Permalink to the next pager, if there is one
next: String?;
// All pages for the current pager
pages: Array<Page>;
// Which pager are we on, 1-indexed
current_index: Number;
// Total number of pages across all the pagers
total_pages: Number;

paginate_by如果未设置为正数,则不会定义该变量。

寻呼机是分页的一页;如果你有 100 页并且 paginate_by 设置为 10,你将有 10 个寻呼机,每个寻呼机包含 10 页。

🔗部分

分页部分获得section与普通 部分页面相同的变量 减去其页面。这些页面改为在paginator.pages.

🔗分类术语

分页分类除paginator变量外还有两个变量:

  • taxonomy类型变量TaxonomyConfig
  • term类型的变量TaxonomyTerm

有关类型的详细版本,请参阅分类法页面。

🔗例子

以下是关于如何在页面上使用分页的主题示例(index.html在本例中):

<div class="posts">
    {% for page in paginator.pages %}
        <article class="post">
            {{ post_macros::title(page=page) }}
            <div class="post__summary">
                {{ page.summary | safe }}
            </div>
            <div class="read-more">
                <a href="{{ page.permalink }}">Read more...</a>
            </div>
        </article>
    {% endfor %}
</div>
<nav class="pagination">
    {% if paginator.previous %}
        <a class="previous" href="{{ paginator.previous }}">‹ Previous</a>
    {% endif %}
    {% if paginator.next %}
        <a class="next" href="{{ paginator.next }}">Next ›</a>
    {% endif %}
</nav>