我正在制作一个Jekyll网站,想要输出嵌套在行div中的三列div。使用Liquid的cycle
过滤器可以很容易地实现:
{% for p in site.categories.post %}
{% cycle 'add rows': '<div class="row">', nil, nil %}
<div class="column">
<a href="{{ p.url }}">{{ p.title }}</a>
</div>
{% cycle 'close rows': nil, nil, '</div>' %}
{% endfor %}
然而,这种方法仅适用于有3、6、9等帖子的情况。当帖子总数不是3的倍数时,<div class="row">
标签无法在 close rows
循环中得到闭合 - 在关闭标签之前,for循环就已经结束了。在Ruby、PHP或其他语言中,我可以很容易地通过模运算符改正这个问题,因此除了
close rows
循环之外,当 if site.categories.size % 3 == 0
时,我还会输出 </div>
。然而,由于Liquid是一种安全的模板语言,它不支持模运算符。如果帖子总数不是3的倍数,还有什么其他方法可以正确地关闭
<div class="row">
标签呢?