在 Liquid/Jekyll 的 "if" 条件内嵌套 "for" 循环
Nested "for" loop inside "if" condition in Liquid/Jekyll
我在尝试生成网站时遇到语法错误。您知道这里可能出什么问题吗?
错误:Liquid 语法错误:未知标记 'elsif'
{% if page.title == "Tags" %}
{% for tag in site.tags %}
{% elsif page.title == "Categories" %}
{% for tag in site.categories %}
{% endif %}
<a href="#{{ tag[0] | slugify }}">{{ tag[0] }}</a>
{% endfor %}
你不能像那样有条件地开始循环,控制块必须正确嵌套。要完成您想要做的事情,您可以这样做:
{% if page.title == "Tags" %}
{% assign data = site.tags %}
{% elsif page.title == "Categories" %}
{% assign data = site.categories %}
{% endif %}
{% for tag in data %}
<a href="#{{ tag[0] | slugify }}">{{ tag[0] }}</a>
{% endfor %}
你完全错了。嵌套循环不会以这种方式工作。
它应该在同一个条件内开始和结束。
if conditional
for loop
endfor
endif
像这样。
所以,正确的做法应该是这样
{% if page.title == "Tags" %}
{% for tag in site.tags %}
<a href="#{{ tag[0] | slugify }}">{{ tag[0] }}</a>
{% endfor %}
{% elsif page.title == "Categories" %}
{% for tag in site.categories %}
<a href="#{{ tag[0] | slugify }}">{{ tag[0] }}</a>
{% endfor %}
{% endif %}
此代码应该可以正确地执行您想要的操作,但是 JJJ
回答了更好的方法
我在尝试生成网站时遇到语法错误。您知道这里可能出什么问题吗?
错误:Liquid 语法错误:未知标记 'elsif'
{% if page.title == "Tags" %}
{% for tag in site.tags %}
{% elsif page.title == "Categories" %}
{% for tag in site.categories %}
{% endif %}
<a href="#{{ tag[0] | slugify }}">{{ tag[0] }}</a>
{% endfor %}
你不能像那样有条件地开始循环,控制块必须正确嵌套。要完成您想要做的事情,您可以这样做:
{% if page.title == "Tags" %}
{% assign data = site.tags %}
{% elsif page.title == "Categories" %}
{% assign data = site.categories %}
{% endif %}
{% for tag in data %}
<a href="#{{ tag[0] | slugify }}">{{ tag[0] }}</a>
{% endfor %}
你完全错了。嵌套循环不会以这种方式工作。 它应该在同一个条件内开始和结束。
if conditional
for loop
endfor
endif
像这样。
所以,正确的做法应该是这样
{% if page.title == "Tags" %}
{% for tag in site.tags %}
<a href="#{{ tag[0] | slugify }}">{{ tag[0] }}</a>
{% endfor %}
{% elsif page.title == "Categories" %}
{% for tag in site.categories %}
<a href="#{{ tag[0] | slugify }}">{{ tag[0] }}</a>
{% endfor %}
{% endif %}
此代码应该可以正确地执行您想要的操作,但是 JJJ
回答了更好的方法