jekyll:尝试从_data / products.yml输出产品数组时遇到错误

时间:2018-12-06 14:28:44

标签: html yaml jekyll liquid

我正在尝试从_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正确终止:/}} /

2 个答案:

答案 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 %}