Jekyll 中的流动嵌套 For-Loop 语法问题
Liquid nesting For-Loop Syntax issue in Jekyll
第一次发帖,非常感谢您的宝贵时间c:
我正在使用 Jekyll 来提供作品集。我正在使用一个投资组合插件以及一个名为 Lightbox 的 JS 库。我有投资组合插件工作。理想的操作是每次用户单击投资组合项目时,它都会执行灯箱(这是有效的)。为了让更多图片存储在灯箱中,我必须给它们起相同的 data-title 名称。
我的理解是我需要在当前循环中嵌套一个 for-loop,以检查数组中的所有项目以 return 任何其他灯箱项目。
我的 .yml
文件内容如下:
title: Portfolio Title
description: A crazy portfolio item
bg-image: Test-01.png
lb-images:
- Test-01.png
- Test-02.png
- Test-03.png`
我的 .md
文件内容如下:
<div class="flex-container">
<!-- portfolio-item -->
{% assign projects = site.data.projects | get_projects_from_files | sort:'date' %}
{% for project in projects reversed %}
<div class="flex-item" style="background-image: url(/img/projects/{{ project.bg-image }}); background-repeat: no-repeat">
<a href="../images/projects/{{ project.lb-images[0] }}" data-lightbox="{{ project.title }}" data-title="{{ project.bg-image }}">
<div id="overlay">
<span id="reveal-text">
<h3>{{ project.title }}</h3>
<p>{{ project.description }}</p>
<p>{{ project.category }}</p>
</span>
</div>
</a>
</div>
{% for project in projects %}
<a href="../images/projects/{{ project.lb-images[{{forloop.index}}] }}" data-lightbox="{{ project.title }}" data-title="{{ project.bg-image }}"></a>
{% endfor %}
{% endfor %}
</div>
我假设 forloop.index
将从 [1]
开始,然后继续遍历该数组,直到不再有 lb-images
。但是出事了。我的猜测是语法或我如何从 .yml
文件中调用数据,或两者兼而有之。
再次感谢您的宝贵时间。
丹尼尔
(edit: 在嵌套的 endfor
循环中取出 space,现在运行但是 returns: href="../images/projects/] }}"
and data-title
and data-lightbox
returns 用于每个 data.project
文件而不是 data.project.lb-images
)
中的每个项目
公开项目图像的正确循环是:
{% assign projects = site.data.projects | get_projects_from_files | sort:'date' %}
<div class="flex-container">
{% for project in projects reversed %}
<!-- portfolio-item -->
<div class="flex-item" style="background-image: url(/img/projects/{{ project.bg-image }}); background-repeat: no-repeat">
<a href="../images/projects/{{ project.lb-images[0] }}" data-lightbox="{{ project.title }}" data-title="{{ project.bg-image }}">
<div id="overlay">
<span id="reveal-text">
<h3>{{ project.title }}</h3>
<p>{{ project.description }}</p>
<p>{{ project.category }}</p>
</span>
</div>
</a>
</div>
{% for img in project.lb-images %}
{% if forloop.first != true %}
<a href="../images/projects/{{ img }}" data-lightbox="{{ project.title }}" data-title="{{ project.bg-image }}"></a>
{% endif %}
{% endfor %}
{% endfor %}
</div>
第一次发帖,非常感谢您的宝贵时间c:
我正在使用 Jekyll 来提供作品集。我正在使用一个投资组合插件以及一个名为 Lightbox 的 JS 库。我有投资组合插件工作。理想的操作是每次用户单击投资组合项目时,它都会执行灯箱(这是有效的)。为了让更多图片存储在灯箱中,我必须给它们起相同的 data-title 名称。
我的理解是我需要在当前循环中嵌套一个 for-loop,以检查数组中的所有项目以 return 任何其他灯箱项目。
我的 .yml
文件内容如下:
title: Portfolio Title
description: A crazy portfolio item
bg-image: Test-01.png
lb-images:
- Test-01.png
- Test-02.png
- Test-03.png`
我的 .md
文件内容如下:
<div class="flex-container">
<!-- portfolio-item -->
{% assign projects = site.data.projects | get_projects_from_files | sort:'date' %}
{% for project in projects reversed %}
<div class="flex-item" style="background-image: url(/img/projects/{{ project.bg-image }}); background-repeat: no-repeat">
<a href="../images/projects/{{ project.lb-images[0] }}" data-lightbox="{{ project.title }}" data-title="{{ project.bg-image }}">
<div id="overlay">
<span id="reveal-text">
<h3>{{ project.title }}</h3>
<p>{{ project.description }}</p>
<p>{{ project.category }}</p>
</span>
</div>
</a>
</div>
{% for project in projects %}
<a href="../images/projects/{{ project.lb-images[{{forloop.index}}] }}" data-lightbox="{{ project.title }}" data-title="{{ project.bg-image }}"></a>
{% endfor %}
{% endfor %}
</div>
我假设 forloop.index
将从 [1]
开始,然后继续遍历该数组,直到不再有 lb-images
。但是出事了。我的猜测是语法或我如何从 .yml
文件中调用数据,或两者兼而有之。
再次感谢您的宝贵时间。
丹尼尔
(edit: 在嵌套的 endfor
循环中取出 space,现在运行但是 returns: href="../images/projects/] }}"
and data-title
and data-lightbox
returns 用于每个 data.project
文件而不是 data.project.lb-images
)
公开项目图像的正确循环是:
{% assign projects = site.data.projects | get_projects_from_files | sort:'date' %}
<div class="flex-container">
{% for project in projects reversed %}
<!-- portfolio-item -->
<div class="flex-item" style="background-image: url(/img/projects/{{ project.bg-image }}); background-repeat: no-repeat">
<a href="../images/projects/{{ project.lb-images[0] }}" data-lightbox="{{ project.title }}" data-title="{{ project.bg-image }}">
<div id="overlay">
<span id="reveal-text">
<h3>{{ project.title }}</h3>
<p>{{ project.description }}</p>
<p>{{ project.category }}</p>
</span>
</div>
</a>
</div>
{% for img in project.lb-images %}
{% if forloop.first != true %}
<a href="../images/projects/{{ img }}" data-lightbox="{{ project.title }}" data-title="{{ project.bg-image }}"></a>
{% endif %}
{% endfor %}
{% endfor %}
</div>