Loops If-then Jekyll的_数据文件中的YAML循环结构

Loops If-then Jekyll的_数据文件中的YAML循环结构,loops,jekyll,liquid,Loops,Jekyll,Liquid,在使用YAML的Jekyll中循环所需的精确缩进和断字方面,我遇到了困难 上下文:我使用的是Fancybox,它可以包含隐藏的图像,一旦你打开缩略图,你就可以滚动浏览这些图像。并非我正在构建的图库中的所有图像都有隐藏的图像,但有些图像有隐藏的图像,这需要在每个图像中插入一块HTML 因此,基本上我正在尝试在/_数据中构建一个名为gallery.yml的页面,该页面中包含所有必要的项目缩略图URL、标题等,以便循环插入位于/_包含的页面中的Fancybox HTML 在我的案例中,我找不到确切的答

在使用YAML的Jekyll中循环所需的精确缩进和断字方面,我遇到了困难

上下文:我使用的是Fancybox,它可以包含隐藏的图像,一旦你打开缩略图,你就可以滚动浏览这些图像。并非我正在构建的图库中的所有图像都有隐藏的图像,但有些图像有隐藏的图像,这需要在每个图像中插入一块HTML

因此,基本上我正在尝试在/_数据中构建一个名为gallery.yml的页面,该页面中包含所有必要的项目缩略图URL、标题等,以便循环插入位于/_包含的页面中的Fancybox HTML

在我的案例中,我找不到确切的答案来解释如何构造YAML。我不断得到映射值和解析错误。我将尽量简化结构:

{% for gallery in site.data.gallery %}

// Main Fancybox
<p>{{ gallery.name }} - {{ gallery.category }}</p>
<img src="{{ gallery.thumb_url }}" /><img src="{{ gallery.main_url }}" />

    {% for ??? in ??? %} // This is where the hidden Fancybox data would be, if it exists
        <p>{{ gallery.main_url }} - {{ gallery.category }}</p>
    {% endfor %}

{% endfor %}
gallery.yml:

页面内部/_包含让我们假设这有适当的Fancybox HTML,我只想使其尽可能简化:

{% for gallery in site.data.gallery %}

// Main Fancybox
<p>{{ gallery.name }} - {{ gallery.category }}</p>
<img src="{{ gallery.thumb_url }}" /><img src="{{ gallery.main_url }}" />

    {% for ??? in ??? %} // This is where the hidden Fancybox data would be, if it exists
        <p>{{ gallery.main_url }} - {{ gallery.category }}</p>
    {% endfor %}

{% endfor %}
在YAML中创建这些分组的缩进规则是什么?如果它们在循环中存在,我该如何称呼它们

这就是它现在所做的:

<HTML for Fancybox structure for Saturn>
   <img main image />
   <img thumbnail />
</HTML for Fancybox structure>

<HTML for Fancybox structure for Neptune>
   <img main image />
   <img thumbnail />
</HTML for Fancybox structure>
重复此操作,直到完成多媒体资料

但理想的输出是:如果/当一个特定的库项目中嵌套了多个Fancybox图像时,Jekyll代码将插入它们,就像我在YAML文件中列出它们一样

所以


我希望这是有道理的。我只是想找出嵌套循环的Jekyll语法,而不是每个循环实例都有嵌套数据。

比如,这是我为fancybox提供的数据:

画廊 -名称:土星 类别:行星 thumb_url:saturn-thumb.jpg 主url:saturn.jpg -姓名:海王星 类别:行星 拇指url:neptune-thumb.jpg 主url:neptune.jpg 其他: - 类别:行星 主url:neptune-2.jpg - 类别:行星 主url:neptune-3.jpg -名称:火星 类别:行星 拇指url:mars-thumb.jpg 主url:mars.jpg 那么模板将是:

{site.data.gallery%中的库的%s} {{gallery.name}-{{gallery.category}

{%if gallery.additionals%} {gallery.additionals%中项目的%s} {{item.main_url}}-{{item.category}

{%endfor%} {%endif%} {%endfor%}
所需的输出是什么?YAML中没有嵌套循环,因此可能需要很长时间才能确定它们的YAML语法。您需要的是Jekyll语法,它恰好受到YAML使用的限制。它还受到UTF-8使用的限制,但希望您不要试图找出UTF-8中的嵌套循环-谢谢你的帮助。出于某种原因,这对我不起作用。我没有收到任何错误,但我认为问题可能在这里:{%for site.data.gallery.additionals%}-项目是一个关键字,还是我必须在YAML文件中有一个项目标记为项目?啊!正在删除site.data。已工作-{%用于gallery.additionals%}-非常感谢您的帮助!谢谢你指出错误。我将为未来的读者更新答案。
<HTML for Fancybox structure for Saturn>
   <img main image />
   <img thumbnail />
</HTML for Fancybox structure>

<HTML for Fancybox structure for Neptune - which has additional elements>
   <img main image />
   <img thumbnail />
       <img main image 2 />
       <img main image 3 />
</HTML for Fancybox structure>