在Jekyll中发布包含多个条件(类别,语言,标签)的帖子的索引

时间:2014-04-18 12:00:21

标签: jekyll liquid

我希望在我的Jekyll支持的网站上有多个语言的后期索引(索引?),这意味着不止一个条件。

我的帖子有YAML前线,包括:

categories:
   - research
   - blog
lang: en

现在我想要一个帖子索引,比如所有英文研究帖子。

我能做到:

{% for post in site.posts %}
    {% if post.lang == 'en' and post.categories contains 'research' %}
        {{ post.title }}
    {% endif %}
{% endfor %}

然而,这会限制这些细节,如限制和按年份排序等。为了限制帖子的数量(等),Jekyll似乎仍在查看整个帖子列表,不仅仅是条件适用的对象。

像这样的伪代码是理想的:     {%代表site.posts中的帖子,其中post.lang =='en'和post.categories包含'research'%}

有什么想法吗?

Ps。:我不能使用任何插件;希望它与GH Pages兼容。 Pps:我知道我可以使用语言作为一个类别,但这感觉不对 - 这些是不同的信息。

1 个答案:

答案 0 :(得分:2)

我相信你可以这样做:

 {% assign resindex = site.posts | where: "category", "research", | where: "lang", "en" | sort: "title" %}
 {% for post in resindex limit:4 %} 
 <div>
 <p><a href="{{ post.url }}">{{ post.title | truncate: 52 }}</a></p>
  </div> 
 {% endfor %}

虽然我对使用类别和类别以及何时可以/应该使用它们感到相当困惑。对于我的示例类别工作,但在我的前面我有:category:mycategory,我只使用一个。但其余的代码应该可以工作,你可以限制和排序。