如何增加Liquid for循环中的计数器?

时间:2018-01-01 00:10:21

标签: jekyll liquid

我正在努力弄清楚如何在Liquid / Jekyll的for循环中增加索引变量。目前,我有一些基本的内容

{% for i in (0..num_posts) %}
    {% if i < some_value %}
        do_thing
    {% else %}
    {% endif %}
    {% assign i = i|plus:1 %}
    {% if i<some_value %}
        do_another_thing
    {% else %}
    {% endif %}
{% endfor %}

问题是,它不是递增i,而是将i保留为相同的值。

我尝试过的事情:

  1. 使用{% assign i = i|plus:1 %}
  2. 使用{% increment i %}
  3. 使用

    {% assign j = i|plus:1 %}
    {% assign i = j %}
    
  4. 我无法使用offset命令,因为代码并不总是只检查循环中的2个if语句。

    有什么想法吗?

2 个答案:

答案 0 :(得分:6)

这里我不是索引。 要获取当前索引,请使用{{forloop.index}}。

{% if forloop.index < 5 %}
    Do something
{% endif %}

要在循环中分配您自己的自定义索引,您可以使用以下内容:

{% assign i = 0 %}
{% for thing in things %}
    {% assign i = i | plus:1 %}
{% endfor %}

答案 1 :(得分:0)

只需使用

{% increment my_counter %}

创建一个新的数字变量,并在每次调用时将其值增加一。初始值为0。也可以递减。但是,即使您只有一个简单的计数器,也无法重置并且始终从“ 0”开始