{% if page == 1 %}
«
1
{% else %}
«
1
{% endif %}
{% if links is divisibleby 2 %}
{% set link_pre = (links/2)|int %}
{% set link_post = (links/2)|int %}
{% else %}
{% set link_pre = (links/2)|round(0, 'floor')|int %}
{% set link_post = (links/2)|round(0, 'ceil')|int %}
{% endif %}
{% if page - link_pre > 1 and page + link_post <= last_page %}
{% set place = 1 %}
{% set range_start = page - link_pre %}
{% set range_end = page + link_post %}
{% elif page + link_pre >= last_page %}
{% set place = 2 %}
{% set range_start = last_page - links %}
{% set range_end = last_page %}
{% else %}
{% set place = 3 %}
{% set range_start = 2 %}
{% set range_end = links + 2 %}
{% endif %}
{% for n in range(range_start, range_end) %}
{% if n < last_page and n > 1 %}
{% if page == n %}
{{ n }}
{% else %}
{{ n }}
{% endif %}
{% endif %}
{% endfor %}
{% if page == last_page %}
{{ last_page }}
»
{% else %}
{{ last_page }}
{# » {{ range_start }} - {{ range_end }} - {{ place }} - {{ link_pre }} = {{ link_post }} #}
»
{% endif %}