Pagination
Pagination support is built-in to Bridgetown, but it is not enabled by default. To enable it on your site, simply add:
pagination:
enabled: true
to your config file.
Page Configuration
To facilitate pagination on a page (like index.html
, blog.md
, etc.) then simply include configuration in the pageโs front matter:
---
layout: page
pagination:
enabled: true
---
Then you can use the paginator.documents
logic to iterate through the documents.
{% for post in paginator.documents %}
<h1>{{ post.title }}</h1>
{% endfor %}
Normally the paginated documents are of a Post type, but to load a specific Collection type, just add a collection key like so:
pagination:
enabled: true
collection: tigers
By default, paginated documents will have 10 items per page. You can change this in your config by modifying the per_page
key like so:
pagination:
enabled: true
per_page: 4
Excluding a Page from the Paginator
You can exclude a page from being included in the paginated items list.
exclude_from_pagination: true
Pagination Links
To display pagination links, simply use the paginator
Liquid object as follows:
{% if paginator.total_pages > 1 %}
<ul class="pagination">
{% if paginator.previous_page %}
<li>
<a href="{{ paginator.previous_page_path }}">Previous Page</a>
</li>
{% endif %}
{% if paginator.next_page %}
<li>
<a href="{{ paginator.next_page_path }}">Next Page</a>
</li>
{% endif %}
</ul>
{% endif %}
Liquid Attributes Available
The paginator
Liquid object provides the following attributes:
Variable | Description |
---|---|
|
The number of the current page |
|
Number of posts per page |
|
Documents (aka posts, etc.) available for the current page |
|
Total number of documents |
|
Total number of paginated pages |
|
The number of the previous page, or |
|
The path to the previous page, or |
|
The number of the next page, or |
|
The path to the next page, or |