【问题标题】:Jekyll for loop - multiple arraysJekyll for 循环 - 多个数组
【发布时间】:2012-07-22 11:25:20
【问题描述】:

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

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

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

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

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

这可能吗?

【问题讨论】:

    标签: jekyll


    【解决方案1】:

    在博客页面上你可以使用:

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

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

    {% for post in site.posts %}
        {% if post.categories contains 'post' or post.categories contains 'photos' %}
           ...
        {% endif %}
    {% endfor %}
    

    【讨论】:

      【解决方案2】:

      这里一个简单的方法是使用Jekyll categories

      将您的帖子放入 _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.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多