Короткой версии:Получить следующие и предыдущие элементы из массива в жидкой
Я хочу добавить 1 к номеру в жидкой матрице и использовать результат в качестве индекса массива.
{% capture plus_one %}{{ 0 | plus: 1 }}{% endcapture %}
<div>-Value of plus_one: {{plus_one}}</div>
<div>-This works: {{site.posts[1].title}}</div>
<div>-This doesn't: {{site.posts[plus_one].title}}</div>
Результат:
-Value of plus_one: 1
-This works: The Zone
-This doesn't:
Длинная версия:
Я использую Джекил, без плагинов. Я хочу дать текущему сообщению ссылку на следующую запись, которая находится в той же категории. (Эта категория жестко закодирована для «журнала» в этом коде.)
Мой код перебирает все сообщения в массиве категорий, ища текущую запись. Когда он будет найден, я попытаюсь захватить следующую запись в массиве категорий.
{% for num in (0..site.categories.journal.size) %}
{% assign page2 = site.categories.journal[num] %}
{% if page2.title == page.title and page2.date == page.date %}
{% capture plus_one %}{{ num | plus: 1 }}{% endcapture %}
{% endif %}
{% endfor %}
<div>value of plus_one: {{plus_one}}</div>
<div>This doesn't work: {{site.categories.journal[plus_one].title}}</div>
<div>This does: {{site.categories.journal[1].title}}</div>
Результат:
<div>value of plus_one: 1</div>
<div>This doesn't work: </div>
<div>This does: A Blog Post Title</div>
Я предполагаю, что значение моей переменной «plus_one» обрабатывается как строка вместо номера.
Есть ли способ конвертировать его в число?
Или есть другой способ достичь того, что я пытаюсь сделать?
Это звучит лучше, чем решение, которое я разместил ниже, но вы можете показать пример того, как «итерации этого шага», так что мы можем продолжать называть page.next, пока мы не нашли страницу с категорией соответствия ? –
Итерация - фундаментальная концепция программирования, вы даже делаете это в своем собственном ответе, поэтому я действительно не знаю, как ответить на это. – Polygnome
Извините, мой вопрос был не очень ясен. Я пытался спросить о состоянии цикла. В идеале мы хотим, чтобы только loop _until_ находилась соответствующая страница. Однако было бы приемлемым цикл, пока мы не достигли последней страницы (когда page.next равно null). До сих пор я не нашел способа заставить Liquid создать цикл, который завершится в любом из этих условий. –