{% if post_count > max_posts %}
{% set post_count = max_posts %}
{% endif %}
{% set pages = ((post_count / limit) + (post_count % limit > 0))|int %}
{% set selected = "selected" %}
{% set lower_bound = 3 %}
{% set upper_bound = pages - 2 %}
{% if not page %}
{% set page = 1 %}
{% endif %}
{% set parameters = request.url | parameter_str %}
{# show all pages if it's 10 or less #}
{% if pages <= 10 %}
{% for i in range(pages) %}
{% set current_page = (i + 1) %}
{{ current_page }}
{% endfor %}
{# More complex formatting if there are more than 10 pages #}
{% else %}
{# Always display the lower three pages #}
{% for i in range(lower_bound) %}
{% set current_page = (i + 1) %}
{{ current_page }}
{% endfor %}
{# Show lower 'edge' pages #}
{% if lower_bound <= page <= lower_bound + 2 %}
{% for i in range(lower_bound, page + 1) %}
{{ i + 1 }}
{% endfor %}
{% endif %}
...
{# Show middle pages #}
{% if (lower_bound + 2) < page < (upper_bound - 2) %}
{% set current_page = page %}
{% for i in range((page - 1), (page + 2)) %}
{{ i }}
{% endfor %}
...
{# Show upper 'edge' pages #}
{% elif upper_bound - 2 <= page <= upper_bound %}
{% for i in range(page - 1, upper_bound) %}
{{ i - 1 }}
{% endfor %}
{% endif %}
{# Always display the upper three pages #}
{% for i in range(lower_bound) %}
{% set current_page = upper_bound + i %}
{{ current_page }}
{% endfor %}
{% endif %}