{% if include.maxPages %}
{% assign maxPages = include.maxPages %}
{% else %}
{% assign maxPages = 5 %}
{% endif %}
{% assign halfPages = maxPages | divided_by: 2 %}
{% assign right-margin = paginator.total_pages | minus: paginator.page %}
{% if paginator.page <= halfPages %}
{% assign start = 1 %}
{% if paginator.total_pages > maxPages %}
{% assign end = maxPages %}
{% else %}
{% assign end = paginator.total_pages %}
{% endif %}
{% elsif right-margin <= halfPages %}
{% assign start = paginator.total_pages | minus: maxPages | plus: 1 | append: ',' | append: 1 | split: ',' | sort | last | plus: 0 %}
{% assign end = paginator.total_pages %}
{% else %}
{% assign position-less-half = paginator.page | minus: halfPages %}
{% if position-less-half < 1 %}
{% assign start = 1 %}
{% else %}
{% assign start = position-less-half %}
{% endif %}
{% assign position-plus-half = paginator.page | plus: halfPages %}
{% if position-plus-half > paginator.total_pages %}
{% assign end = paginator.total_pages %}
{% else %}
{% assign end = position-plus-half %}
{% endif %}
{% endif %}
{% if paginator.previous_page %}
{% else %}
{% endif %}
{% if paginator.previous_page %}
{% else %}
{% endif %}
{% if start > 1 %}
{% endif %}
{% for num in (start..end)%}
{% if num == paginator.page %}
{{ num }}
{% elsif num == 1 %}
{{ num }}
{% else %}
{{ num }}
{% endif %}
{% unless forloop.last %}
{% endunless %}
{% endfor %}
{% if end < paginator.total_pages %}
{% endif %}
{% if paginator.next_page %}
{% else %}
{% endif %}
{% if paginator.next_page %}
{% else %}
{% endif %}