Я работаю над сайтом 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 и т.д. сообщения. Когда общее количество сообщений не кратно трем, <div class="row">
никогда не закрывается - цикл for заканчивается до того, как закрывающий тег может быть выведен как часть цикла close rows
.
В Ruby, PHP или любом другом языке я мог бы легко исправить это с помощью модуля модуля, поэтому в дополнение к циклу close rows
я бы выводил </div>
, когда if site.categories.size % 3 == 0
. Однако Liquid, потому что это безопасный язык шаблонов, не поддерживает модуль.
Что еще я могу сделать, чтобы правильно закрыть <div class="row">
, когда общее количество сообщений не кратно трем?
Спасибо!