3

在 Jekyll 中,我有一个小型博客系统,分为两类:blogportfolio. 我有两个页面将呈现这些类别的帖子,for循环看起来像这样:

{% for post in site.categories['blog'] %}
…
{% endfor %}

在我的主页上,我想显示该blog类别中的最新帖子。但是,我希望我的博客也包含我的一些摄影作品——这些照片将作为帖子存在,但大多数时候它们没有标题或正文内容——它们只是一张图片。我不希望这些帖子出现在主页上。

实际上,我只想在主页上显示最新的博客文章,不包括所有摄影文章。我正在考虑我的选择:

  1. 使用两个类别:blogphotos。但是,我如何让我的博客页面显示这两个类别的帖子?我实际上需要合并数组site.categories['blog']and site.categories['photos'],并将它们放入一个for循环中-但这可能吗?
  2. 保留一个类别:blog,但以其他方式排除没有标题的帖子出现在主页上。但是,你是怎么做的?

这可能吗?

4

2 回答 2

7

在博客页面上,您可以使用:

{% for post in site.posts %}
…
{% endfor %}

检索所有帖子并全部显示。如果您想过滤更多(例如,您不想在此页面上显示第三个类别:

{% for post in site.posts %}
    {% if post.categories contains 'post' or post.categories contains 'photos' %}
       ...
    {% endif %}
{% endfor %}
于 2012-08-10T11:27:57.040 回答
0

这里一个直接的方法是使用Jekyll 类别

将您的帖子放入 _posts 文件夹的子目录中:

_posts/
    blog/
        post.md
    photos/
        photo.md

然后在您的 index.html 或其他任何地方,您可以参考以下单独的类别:

<h1>Blog</h1>

{% for post in site.categories.blog %}
    {{ post.title }}
{% endfor %}

<h2>Photos</h2>

{% for photo in site.categories.photos %}
    {{ photo.title }}
{% endfor %}

您可以使用 访问所有帖子site.posts

有关相关的 github 问题“多个 _posts 目录”,请参阅 https://github.com/jekyll/jekyll/issues/1819#issuecomment-30441840

于 2018-04-01T08:30:22.973 回答