{% macro render_pagination(current_page, total_pages, window_size=2) %}
{% if current_page > 0 %} {% endif %} {% set start_page = max(0, current_page - window_size) %} {% set end_page = min(total_pages - 1, current_page + window_size) %} {% if start_page > 0 %} ... {% endif %} {# Render Page Numbers within the window #} {% for page in range(start_page, end_page + 1) %} {{ page + 1 }} {# Adjusting page number for starting from 0 #} {% endfor %} {% if end_page < total_pages - 1 %} ... {% endif %} {% if current_page < total_pages - 1 %} {% endif %}
{% endmacro %} {# Example usage #} {{ render_pagination(current_page=current_page, total_pages=total_pages) }}