diff --git a/pelican/themes/simple/templates/pagination.html b/pelican/themes/simple/templates/pagination.html index 4219a5c3..c21355b0 100644 --- a/pelican/themes/simple/templates/pagination.html +++ b/pelican/themes/simple/templates/pagination.html @@ -1,11 +1,36 @@ {% if DEFAULT_PAGINATION %}

- {% if articles_page.has_previous() %} - « - {% endif %} - Page {{ articles_page.number }} / {{ articles_paginator.num_pages }} - {% if articles_page.has_next() %} - » - {% endif %} + {% if articles_page.has_previous() %} + « + {% endif %} + {% for page in range(articles_paginator.num_pages) -%} + {% if articles_page.number > 9999 %} + {% set url_for_this_page = articles_page.url[:-10] %} + {% elif articles_page.number > 999 %} + {% set url_for_this_page = articles_page.url[::-9] %} + {% elif articles_page.number >99 %} + {% set url_for_this_page = articles_page.url[:-8] %} + {% elif articles_page.number > 9 %} + {% set url_for_this_page = articles_page.url[:-7] %} + {% elif articles_page.number >1 %} + {% set url_for_this_page = articles_page.url[:-6] %} + {% else %} + {% set url_for_this_page = articles_page.url[:-5] %} + {% endif %} + {% if page+1 == articles_page.number %} + {{ page+1 }} + {% else %} + {% if page+1 == 1 %} + {{ page+1 }} + {% else %} + {{ page+1 }} + {% endif %} + {% endif %} + {%- endfor %} + {% if articles_page.has_next() %} + » + {% else %} + » + {% endif %}

{% endif %}