在使用多个集合类型时,如何嵌套Jekyll循环

时间:2018-03-22 15:36:30

标签: jekyll

所以我设置了3个集合:

推荐

服务

案例研究

我有一个主页,还有2个服务和案例研究模板,用于处理推荐书的输出。

我想做三件事:

  • 在案例研究模板上,使用光滑的滑块,在推荐集合中显示1 '与服务相关的'推荐。如果可能的话,我想通过案例研究的一些前提来实现这一点,类似于类别。因此,用户只需要选择适合案例研究的服务推荐书,例如

    testimonial: Matthew Pope

  • 在服务模板上,使用光滑的滑块,显示用户可以选择的该服务的多个相关推荐,可能作为数组:

    testimonials: [ Matthew Pope, Jon Vining ]

  • 在网站的主页上再次使用光滑的滑块,迭代一些案例研究,但只显示案例研究的推荐位。仅仅迭代推荐集合的原因是我想保留案例研究链接,因此点击阅读更多将使用户进入证明书所具有的案例研究。

以下是我对推荐循环的代码,每个模板上都有相同的代码

{% assign testimonials = site.testimonials | where: 'title', page.testimonials | first %}
{% for testimonial in testimonials %}
<div class="testimonial-entry">
    <p class="lead font-italic padding-1">{{ testimonial.content }}</p>
    <div class="grid-x grid-margin-x align-middle testimonial-entry__meta">
        <img class="cell medium-shrink avatar--medium margin-top-1" src="{{ testimonial.avatar }}"/>
        <p class="cell medium-auto margin-bottom-0 margin-top-1"><strong>{{ testimonial.title }}</strong><br/><small>{{ testimonial.job }}</small></p>
    </div>
</div>
{% endfor %}

以下是推荐集中每个项目的前端问题:

---
title: Name
job: Job Title
avatar: "/assets/images/uploads/client-avatars/firstname-secondname-150x150.jpg"
solution: Service Name
---

Content here

我很难输出案例研究和服务前面所定义的证词,我不确定如何最好地定义前面的事情。

1 个答案:

答案 0 :(得分:0)

{% assign testimonials = site.testimonials 
   | where: 'title', page.testimonials %}

不返回任何内容,因为page.testimonials是一个数组,您无法比较testimonial.title (string)page.testimonials (array)

但您可以测试数组contains是否为字符串:

{% for testimonial in site.testimonials %}
    {% if page.testimonials contains testimonial.title %}
    <div class="testimonial-entry">
...
    </div>
    {% endif %}
{% endfor %}