{% if pageCount > 1 %}
<nav>
<ul class="pagination justify-content-end my-4">
{% if current > 1 %}
{% set previousPage = current - 1 %}
<li class="page-item">
<a class="page-link"
href="{{ path(route, query | merge({(pageParameter): previousPage})) }}">
<span>«</span>
</a>
</li>
{% else %}
<li class="page-item disabled">
<span class="page-link">
<span>«</span>
</span>
</li>
{% endif %}
{% if startPage > 1 %}
<li class="page-item">
<a class="page-link" href="{{ path(route, query | merge({(pageParameter): 1})) }}">1</a>
</li>
{% if startPage == 3 %}
<li class="page-item">
<a class="page-link" href="{{ path(route, query | merge({(pageParameter): 2})) }}">2</a>
</li>
{% elseif startPage != 2 %}
<li class="page-item disabled">
<span class="page-link">…</span>
</li>
{% endif %}
{% endif %}
{% for page in pagesInRange %}
{% if page is not null %}
{% if page != current %}
<li class="page-item">
<a class="page-link"
href="{{ path(route, query|merge({(pageParameter): page})) }}">{{ page }}</a>
</li>
{% else %}
<li class="page-item active">
<span class="page-link">{{ page }}</span>
</li>
{% endif %}
{% endif %}
{% endfor %}
{% if pageCount > endPage %}
{% if pageCount > (endPage + 1) %}
{% if pageCount > (endPage + 2) %}
<li class="page-item disabled">
<span class="page-link">…</span>
</li>
{% else %}
<li class="page-item">
<a class="page-link"
href="{{ path(route, query|merge({(pageParameter): (pageCount - 1)})) }}">{{ pageCount -1 }}</a>
</li>
{% endif %}
{% endif %}
<li class="page-item">
<a class="page-link"
href="{{ path(route, query|merge({(pageParameter): pageCount})) }}">{{ pageCount }}</a>
</li>
{% endif %}
{% if current < pageCount %}
{% set nextPage = current + 1 %}
<li class="page-item">
<a class="page-link" href="{{ path(route, query | merge({(pageParameter): nextPage})) }}">
<span>»</span>
</a>
</li>
{% else %}
<li class="page-item">
<span class="page-link">
<span>»</span>
</span>
</li>
{% endif %}
</ul>
</nav>
{% endif %}