Pagination support is built-in to Bridgetown, but it is not enabled by default. To enable it on your site, simply add:

  enabled: true

to your config file.

Page Configuration

To facilitate pagination on a page (like index.html,, etc.) then simply include configuration in the pageโ€™s front matter:

layout: page
  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:

  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:

  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

To display pagination links, simply use the paginator Liquid object as follows:

{% if paginator.total_pages > 1 %}
  <ul class="pagination">
    {% if paginator.previous_page %}
      <a href="{{ paginator.previous_page_path }}">Previous Page</a>
    {% endif %}
    {% if paginator.next_page %}
      <a href="{{ paginator.next_page_path }}">Next Page</a>
    {% endif %}
{% 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 nil if no previous page exists


The path to the previous page, or nil if no previous page exists


The number of the next page, or nil if no subsequent page exists


The path to the next page, or nil if no subsequent page exists

Back to Posts