在Jekyll中过滤site.related_posts

Nik*_*nis 6 ruby jekyll

我对Jekyll和Ruby很新(但非常兴奋).

没有使用插件,我试图找到一种方法来过滤site.related_posts.

例如,我正在阅读标题Foo和类别的帖子A, B.

该网站共包含3个帖子:

  1. Foo (分类:A,B)
  2. Bar (分类:A,C,D)
  3. Zoo (分类:B,F)

默认情况下,在Jekyll中我们这样做:

{%for site in site.related_posts限制:5%}
{%endfor%}

但是,上面的代码返回所有(3)个帖子.

帖子包含许多类别,因此类别应该是数组.

如何修改代码并仅返回其类别与当前帖子的类别相交的代码?

(在这个例子中,我希望代码只返回FooZoo.)

kal*_*ale 6

我现在没有能力测试这个,但是这样的东西在Liquid的有限语法下会起作用:

{% for post in site.related_posts limit:5 %}
  {% assign match = false %}
  {% for category in post.categories %}
    {% if page.categories contains category %}
      {% assign match = true %}
    {% endif %}
  {% endfor %}
  {% if match %}
    <li><a href="{{ post.url }}">{{ post.title }}</a></li>
  {% endif %}                       
{% endfor %}
Run Code Online (Sandbox Code Playgroud)