2017-05-21 1 views
0

사이트를 생성하는 동안 구문 오류가 발생합니다. 여기서 무엇이 잘못 될 수있는 아이디어가 있습니까?Liquid/Jekyll의 "if"조건 안에 중첩 된 "for"루프

오류 : 액체 구문 오류 : 알 수없는 태그

{% 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 %} 

답변

0

'ELSIF는'당신은 그런 조건부 루프를 시작할 수 없습니다, 제어 블록이 제대로 중첩해야합니다. 수행하려는 작업을 수행하려면 다음을 수행하십시오.

{% 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 %} 
0

모두 잘못되었습니다. 중첩 루프는이 방법으로 작동하지 않습니다. 동일한 조건부 내에서 시작되고 끝나야합니다.

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

응답으로 더 나은 방법이있다
관련 문제