{% assign custom_pagination_delimiter = '%%%' %}
{% assign custom_pagination_elements_values = '' %}
{% assign custom_pagination_range_min = current_page | minus: 2 %}
{% if custom_pagination_range_min < 1 %}
{% assign custom_pagination_range_min = 1 %}
{% endif %}
{% assign custom_pagination_range_max = current_page | plus: 2 %}
{% if custom_pagination_range_max > pages_count %}
{% assign custom_pagination_range_max = pages_count %}
{% endif %}
{% for custom_pagination_page_index in (1..pages_count) %}
{% assign custom_pagination_element_value = '' %}
{% if custom_pagination_page_index == 1 or custom_pagination_page_index == pages_count %}
{% assign custom_pagination_element_value = custom_pagination_page_index %}
{% if custom_pagination_elements_values != '' %}
{% assign custom_pagination_elements_values = custom_pagination_elements_values | append: custom_pagination_delimiter %}
{% endif %}
{% assign custom_pagination_elements_values = custom_pagination_elements_values | append: custom_pagination_element_value %}
{% endif %}
{% if custom_pagination_page_index < custom_pagination_range_min or custom_pagination_page_index > custom_pagination_range_max %}
{% continue %}
{% endif %}
{% assign custom_pagination_element_value = custom_pagination_page_index %}
{% if custom_pagination_elements_values != '' %}
{% assign custom_pagination_elements_values = custom_pagination_elements_values | append: custom_pagination_delimiter %}
{% endif %}
{% assign custom_pagination_elements_values = custom_pagination_elements_values | append: custom_pagination_element_value %}
{% endfor %}
{% assign custom_pagination_elements = custom_pagination_elements_values | split: custom_pagination_delimiter | uniq %}
{% assign custom_pagination_parts = '' %}
{% for custom_pagination_element in custom_pagination_elements %}
{% assign custom_pagination_index = forloop.index %}
{% if custom_pagination_index > 0 %}
{% assign custom_pagination_previous_index = custom_pagination_index | minus: 1 %}
{% assign custom_pagination_previous_element = custom_pagination_elements[custom_pagination_previous_index] | plus: 0 %}
{% assign custom_pagination_current_element = custom_pagination_elements[custom_pagination_index] | plus: 0 %}
{% assign elemets_differens = custom_pagination_current_element | minus: custom_pagination_previous_element %}
{% if custom_pagination_parts != '' %}
{% assign custom_pagination_parts = custom_pagination_parts | append: custom_pagination_delimiter %}
{% endif %}
{% assign custom_pagination_parts = custom_pagination_parts | append: custom_pagination_previous_element %}
{% if elemets_differens > 1 %}
{% assign custom_pagination_parts = custom_pagination_parts | append: custom_pagination_delimiter | append: '...' | append: custom_pagination_delimiter %}
{% endif %}
{% endif %}
{% endfor %}
{% assign custom_pagination_parts_string = '' %}
{% assign custom_pagination_parts = custom_pagination_parts | split: custom_pagination_delimiter %}
{% for custom_pagination_part in custom_pagination_parts %}
{% assign custom_pagination_part = custom_pagination_part | strip %}
{% if custom_pagination_part == blank %}
{% continue %}
{% endif %}
{% if custom_pagination_parts_string != '' %}
{% assign custom_pagination_parts_string = custom_pagination_parts_string | append: custom_pagination_delimiter %}
{% endif %}
{% assign custom_pagination_parts_string = custom_pagination_parts_string | append: custom_pagination_part %}
{% endfor %}
{% assign custom_pagination_parts = custom_pagination_parts_string | split: custom_pagination_delimiter %}
{% if pages_count > 1 %}
<ul>
{% for custom_pagination_part in custom_pagination_parts %}
{% if custom_pagination_part == '...' %}
<li>{{ custom_pagination_part }}</li>
{% else %}
<li>
<a href="{{ base_url }}?page={{ custom_pagination_part }}{% if template.suffix %}&view={{ template.suffix }}{% endif %}">
{{ custom_pagination_part }}
</a>
</li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
{% comment %}
pages_count - total pages number
current_page - current page in ?page={current_page}
base_url - base url for pagination links
{% endcomment %}
{% include 'custom-pagination', pages_count: pages_count, current_page: current_page, base_url: blog.url %}