Можно ли сгруппировать предметы по передней переменной в Jekyll? - PullRequest
0 голосов
/ 05 мая 2019

У меня есть список городов, каждый из которых содержит несколько магазинов. Я хочу пройтись по каждому городу, перечисляя магазины, содержащиеся в них, и после того, как список петель появится, все магазины перейдут к другому городу.

Пример HTML:

<div class="card-group">
  <h5 class="heading heading-5">City 1</h5>
   <div class="card card-store">
     <h6 class="heading heading-6"><a href="">Store 1</a></h5>
   </div>
   <div class="card card-store">
     <h6 class="heading heading-6"><a href="">Store 2</a></h5>
   </div>
 </div>
<div class="card-group">
 <h5 class="heading heading-5">City 2</h5>
 <div class="card card-store">
  <h6 class="heading heading-6"><a href="#">Store 3</a></h5>
 </div>
</div>

В настоящее время я настраиваю коллекцию с файлом для каждого магазина с заданными параметрами:

---
title: Store 1
city: City 1
---

Я пытаюсь выяснить это с помощью условия if, сравнивающего переменную "City". Количество городов ограничено, но магазины будут расти. Я не уверен, что этот подход правильный, или я должен создать папку для каждого города и использовать что-то вроде переменной "page.collection". Окончательный проект будет развернут в безголовой CMS.

1 Ответ

0 голосов
/ 05 мая 2019

Хорошо, это не самое элегантное решение, но оно работает!Я сделал следующее:

  1. Создание коллекций _cities и _stores.
  2. Создание в магазине переменной фронтового материала "city".
  3. Цикл:

    {% for city in site.cities %}
     <h5 class="heading heading-5"> {{ city.title }} </h5>
     {% for store in site.stores %}
      {% if city.title == store.city %}
         ##DO STUFF
      {% endif %}
     {% endfor %}
    {% endfor %}
    
...