是否可以根据Jekyll中的前项变量对项目进行分组?

时间:2019-05-05 01:16:25

标签: yaml jekyll liquid

我有一个城市清单,每个城市都有一些商店。我想遍历每个城市,列出其中包含的商店,一旦循环列表,所有商店都将继续到另一个城市。

示例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 :(得分:0)

好吧,这不是最优雅的解决方案,但可以!我所做的是:

  1. 创建_cities和_stores集合。
  2. 在商店中创建一个“城市”优先事项变量。
  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 %}