Jekyll中的iterogration JSON数据文件产生双重输出
我试图用Jekyll构建一个文档站点,并认为将主链接存储在JSON数据文件中可能是一个好主意 以下是JSON文件:Jekyll中的iterogration JSON数据文件产生双重输出,jekyll,liquid,jekyll-theme,Jekyll,Liquid,Jekyll Theme,我试图用Jekyll构建一个文档站点,并认为将主链接存储在JSON数据文件中可能是一个好主意 以下是JSON文件: { "home": { "name": "Home", "path": "/", "icon": "fas fa-home" }, "faq": { "name": "FAQ", "path": "/faq", "icon": "fas fa-question"
{
"home": {
"name": "Home",
"path": "/",
"icon": "fas fa-home"
},
"faq": {
"name": "FAQ",
"path": "/faq",
"icon": "fas fa-question"
},
"manuals": {
"name": "Anleitungen",
"path": "/manuals",
"icon": "fas fa-book-open"
}
}
这是我的模板(它的一部分):
{site.data.navigation%中rubrik的%s}
{rubrik%中的部分为%1}
{%endfor%}
{%endfor%}
这实际上产生了以下输出:
您可以看到输出是双倍的,一次是外部循环的空变量,第二次是内部循环的正确值
有什么提示吗?这是一个bug还是我用错了?还没有看到任何关于for循环只适用于一个级别的建议。例如,Jinja2可以做到这一点。我使用的Jekyll版本是4.0(最新)
非常感谢
注意,Thomas当您在
site.data.navigation
中循环时,循环返回一个数组,如[“home”、{“name”=>“home”、“path”=>“/”、“icon”=>“fas fa home”}]
如果您尝试这段代码,您肯定会理解发生了什么
{% for rubrik in site.data.navigation %}
<p>rubrik = {{ rubrik | inspect }}</p>
<ul>
{% for part in rubrik %}
<li>part = rubrik[{{ forloop.index0 }}] = {{ part | inspect }}</li>
{% endfor %}
</ul>
{% endfor %}
<div class="navbar-menu">
<div class="navbar-start">
{% for rubrik in site.data.navigation %}
{% assign p = rubrik[1] %}
<a class="navbar-item{% if page.url == p.path %} is-active{% endif %}" href="{{ p.path }}">
<span class="icon"><i class="{{ p.icon }}"></i></span><span>{{ p.name }}</span>
</a>
{% endfor %}
</div>
</div>