jekyll: ошибка при попытке вывести массив продуктов из _data / products.yml - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь создать список продуктов из products.yml, расположенного в каталоге _data, с for loop in jekyll , чтобы конечный результат выглядел так: пример построено с помощью handlebars.js

Сначала я написал файл YAML в _data/products.yml со списком продуктов, разделенных на категории

---
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 cateory перебирать все свои продукты и отображать некоторую информацию о них:

{% 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 Исключение: ошибка синтаксиса Liquid (строка 13): переменная '{{category.name}' не была правильно завершена с помощью регулярного выражения: /}} / в order.html

jekyll 3.8.5 |Ошибка: Ошибка жидкого синтаксиса (строка 13): переменная '{{category.name}' не была правильно завершена с помощью регулярного выражения: /}} /

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Хорошо, вот фиксированный код.

Спасибо @ 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 %}
0 голосов
/ 06 декабря 2018

Переменная Liquid должна быть заключена в двойные скобки:

{{ category.name }}

, а метки Liquid должны представлять собой пару процентов-скобок :

{% seo %}
...