Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jekyll中的iterogration JSON数据文件产生双重输出_Jekyll_Liquid_Jekyll Theme - Fatal编程技术网

Jekyll中的iterogration 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"

我试图用Jekyll构建一个文档站点,并认为将主链接存储在JSON数据文件中可能是一个好主意

以下是JSON文件:

{
    "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>