jekyll:尝试从 _data/products.yml 输出产品数组时出错
jekyll: getting error when trying to output array of products from _data/products.yml
我正在尝试从位于 _data 目录中的 products.yml
构建一个产品列表,在 jekyll 中使用 for loop
以便最终结果看起来像这样:example 用 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
- ...
现在我想遍历所有类别,并让每个类别遍历其所有产品并显示有关它们的一些信息:
{% 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 %}
出现此错误:
Liquid Exception: Liquid syntax error (line 13): Variable '{{ category.name }' was not properly terminated with regexp: /}}/ in order.html
jekyll 3.8.5 | Error: Liquid syntax error (line 13): Variable '{{ category.name }' was not properly terminated with regexp: /}}/
Liquid 变量需要用双大括号括起来:
{{ category.name }}
并且 Liquid 标签需要是一对 brace-percents:
{% seo %}
好的,这是固定代码。
谢谢@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 %}
我正在尝试从位于 _data 目录中的 products.yml
构建一个产品列表,在 jekyll 中使用 for loop
以便最终结果看起来像这样:example 用 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
- ...
现在我想遍历所有类别,并让每个类别遍历其所有产品并显示有关它们的一些信息:
{% 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 %}
出现此错误:
Liquid Exception: Liquid syntax error (line 13): Variable '{{ category.name }' was not properly terminated with regexp: /}}/ in order.html
jekyll 3.8.5 | Error: Liquid syntax error (line 13): Variable '{{ category.name }' was not properly terminated with regexp: /}}/
Liquid 变量需要用双大括号括起来:
{{ category.name }}
并且 Liquid 标签需要是一对 brace-percents:
{% seo %}
好的,这是固定代码。
谢谢@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 %}