我正在尝试从_data目录中的products.yml
构建产品列表,并在 jekyll 中使用for loop
,以便最终结果如下所示:{ {3}}使用handlebars.js构建
首先,我在_data/products.yml
中编写了一个YAML文件,其中列出了按类别划分的产品列表
---
categories:
- Baking Products:
- name: Vegetable oil
- name: Vinegar
- ...
- Dairy Products:
- name: Cream Cheese
- name: Cottage Cheese
- ...
- Other Products:
- name: Peanut butter
- name: Chocolate spread
- ...
现在,我想遍历所有类别,并且让evry类别遍历其所有产品并显示一些有关它们的信息:
{% for category in site.data.products %}
<div class="plist">
<div class="category">
<h3>{{ category.name }</h3>
<span>Qty</span>
</div>
{% for product category.products %}
<div class="product checkbox">
<input type="checkbox" id="{{ product.name | capitalize }}" value="{{ product.name }}">
<label for="{{ product.name | capitalize }}">{{name}}</label>
<select name="{{ product.name }}" id="{{ product.name | capitalize }}Q" autocomplete="off" class="dropdown">
<option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option>
</select>
</div>
{% endfor %}
</div>
{% if loop.index0 % 2 == 0 %}
<break></break>
{% endif %}
{% endfor %}
遇到此错误:
液体异常:液体语法错误(第13行):变量'{{category.name}'未使用order.html中的regexp:/}} /正确终止
jekyll 3.8.5 |错误:液体语法错误(第13行):变量'{{category.name}'未使用regexp正确终止:/}} /
答案 0 :(得分:0)
液体变量需要用大括号括起来:
{{ category.name }}
和Liquid标签必须是一对括号百分率:
{% seo %}
答案 1 :(得分:0)
好的,这是固定代码。
感谢@ashmaroli
{% for category in site.data.products %}
<div class="plist">
<div class="category">
<h3>{{ category.name }}</h3> <!-- missing "}" -->
<span>Qty</span>
</div>
{% for product in category.products %} <!-- missing "in" -->
<div class="product checkbox">
<input type="checkbox" id="{{ product.name | capitalize }}" value="{{ product.name }}">
<label for="{{ product.name | capitalize }}">{{name}}</label>
<select name="{{ product.name }}" id="{{ product.name | capitalize }}Q" autocomplete="off" class="dropdown">
<option value="0">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option>
</select>
</div>
{% endfor %}
</div>
{% cycle '','<break></break>' %} <!-- fixed -->
{% endfor %}