液体和算术

Jos*_*ord 5 pagination liquid jekyll

我正在进行一些分页,我想知道是否有办法告诉液体只显示5页.我正在寻找的输出是

<<前5 6 7 8 9最后>>

我目前使用的逻辑有效,但它显示了所有30个页面.

{% for count in (2..paginator.total_pages) %}
    {% if count == paginator.page %}
        <span class="current">{{ count }}</span>
    {% else %}
        <a href="/page/{{ count }}/" class="pagenavi-page" title="{{ count }}">{{ count }}</a>
    {% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我希望能够使2和paginator.total_pages成为动态的,我试过了

{% for count in ((paginator.page - 2)..(paginator.page + 2)) %} 
Run Code Online (Sandbox Code Playgroud)

但是,如果paginator.page = 5,则此代码实际上不会进行数学运算,那么循环为5..5并且不提供预期结果.我可以找出逻辑,这样它就不会出现负数而且按预期工作但是我怎么能在这里做数学方程?

sel*_*pou 4

您需要使用过滤器来paginator.total_pages进行算术,然后使用capture标签将结果捕获到变量中。一旦有了开始页和结束页,您就可以for像平常一样编写循环:

{% capture page_start %}{{ paginator.page | minus: 2 }}{% endcapture %}
{% capture page_end %}{{ paginator.page | plus: 2 }}{% endcapture %}

{% for count in (page_start..page_end) %}
     {% comment %} ... do your thing ... {% endcomment %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)