我有以下代码
<div>
{% for note in site.regnotes %}
{% if note.regulationno == page.regulationno %}
<p>
{{ note.regulationno }} - {{ note.url }}
</p>
{% endif %}
{% endfor %}
</div>
此代码循环遍历jekyll网站中的regnotes集合,检查当前注释规则是否与页面规则相同,如果是,则显示规则名称和网址 - 即当前页面的网址。如何更改此代码以包含上一页的网址,当前页面和下一页。我正在寻找三个网址 - 之前,当前和下一个? - &#34; page.previous.url&#34; jekyll中的变量似乎不适用于集合。
这可能是其他代码中的样子
for i=1 to number of items in the regnotes collection
if current note == page note
print page[i].url //current page url
print page[i-1].url //previous page url
print page[i+1].url //next page url
end if
end for
我想我尝试todo的是通过数组索引引用集合中的项目。似乎无法使语法正确。
答案 0 :(得分:0)
由于您是程序员,您只需要知道您需要使用forloop.index0来了解您在for循环中的位置(https://docs.shopify.com/themes/liquid-documentation/objects/for-loops#index0)。
代码如下:
<div>
{% for note in site.regnotes %}
{% assign current_index = forloop.index0 }}
{% assign next_index = current_index | plus: 1 %}
{% assign prev_index = current_index | minus: 1 %}
{% if note.regulationno == page.regulationno %}
<p>
{{ note.regulationno }} - {{ note.url }}
</p>
{% if site.regnotes[prev_index] %}<a href="{{ site.regnotes[prev_index].url }}">prev</a>{% endif %}
{% if site.regnotes[next_index] %}<a href="{{ site.regnotes[next_index].url }}">next</a>{% endif %}
{% endif %}
{% endfor %}
</div>