{% macro pagination(paginationID, total, current, url, nearbyPagesLimit = 4) %}
{# Create "main_url" variable with link for the first page #}
{% set main_url = url|split('?')|first %}
{% apply spaceless %}
<noindex class="w-100">
{% if total > 1 %}
<ul id="{{ paginationID }}" class="slivki-pagination">
{% if current > 1 %}
<li><a data-page="{{ current-1 }}" class="prev page-numbers" href="{{ current == 2 ? main_url : (url ~ (current-1))|e }}"><i class="slivki-icon-angle-left"></i></a></li>
{% endif %}
{% for i in 1..total %}
{% if 0 == (current - nearbyPagesLimit) - loop.index %}
<li><a data-page="1" class="page-numbers" href="{{ main_url|e }}">1</a></li>
{% if 1 != loop.index %}
<li><span class="page-numbers">...</span></li>
{% endif %}
{% elseif 0 == (current + nearbyPagesLimit) - loop.index and (current + nearbyPagesLimit) < total %}
<li><span class="page-numbers">...</span></li>
{% elseif 0 < (current - nearbyPagesLimit) - loop.index %}
{% elseif 0 > (current + nearbyPagesLimit) - loop.index %}
{% else %}
{% if current == loop.index %}
<li class="active"><span class="page-numbers" aria-current="page">{{ loop.index }}</span></li>
{% else %}
<li><a data-page="{{ loop.index }}" class="page-numbers" href="{{ loop.index == 1 ? main_url : url ~ loop.index }}">{{ loop.index }}</a></li>
{% endif %}
{% endif %}
{% endfor %}
{% if current != total and (current + nearbyPagesLimit) < total %}
<li><a data-page="{{ total }}" class="page-numbers" href="{{ (url ~ total)|e }}">{{ total }}</a></li>
{% endif %}
{% if current < total %}
<li><a data-page="{{ current+1 }}" class="next page-numbers" href="{{ (url ~ (current+1))|e }}"><i class="slivki-icon-angle-right"></i></a></li>
{% endif %}
</ul>
{% endif %}
</noindex>
{% endapply %}
{% endmacro %}
{{ _self.pagination(paginationID, total, current, url) }}