{% if paginator.total_pages > 1 %} {% assign next_pages = paginator.total_pages | minus: paginator.page %} {% assign page_offset = 2 %} {% assign shown_pages = page_offset | times: 2 | plus: 1 %} {% assign start_page = 1 %} {% assign end_page = paginator.total_pages %} {% if paginator.page > page_offset %} {% if next_pages > page_offset %} {% assign start_page = paginator.page | minus: page_offset %} {% assign end_page = paginator.page | plus: page_offset %} {% else %} {% if paginator.page >= shown_pages %} {% assign start_page = paginator.total_pages | minus: shown_pages | plus: 1 %} {% endif %} {% endif %} {% else %} {% if next_pages >= shown_pages %} {% assign end_page = shown_pages %} {% endif %} {% endif %}