如何在Liquid循环中递增计数器?

14

我正在努力想出如何在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 %}
    

我也不能使用 offset 命令,因为代码在循环中不总是仅检查 2 个 if 语句。

有什么想法吗?

2个回答

28

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

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

在循环中分配自定义索引,您可以使用类似以下的代码:

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

4

只需使用

{% increment my_counter %}

创建一个新的数字变量,并在每次调用时将其值增加一。初始值为0。也可递减。但仅适用于一个简单计数器,不能重置并始终从“0”开始。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接