css - 使用 {% for post in site.posts %} 从特定子文件夹中提取

标签 css pug yaml jekyll liquid

我目前正在开发我的第一个 Jekyll 站点。我有一个页面,其中 2 个单独的部分显示某些帖子的预览(样式缩略图)。

我想要的是让这些部分显示来自 _site/_posts 中不同子文件夹的帖子。我组织了 _posts 以包含两个子文件夹,/lesplannen 和/verslagen(类(class)计划和报告),每个子文件夹包含一堆文章。

我对这些部分之一的代码如下(Jade 格式):

{% for post in site.posts limit: 4 %}
    a(href="{{post.url}}" target="_blank" style="background-image: url(assets/img/posts/lesplannen/thumbnails/{{post.thumbnail}})").lesplan-thumb
      .article-meta
        .name {{post.title}}
        .date {{ post.date | date: "%b %d, %Y" }}
    {% endfor %}

其他部分也类似。我的第一直觉是分别将 site.posts 更改为 site.posts.lesplannen 和 site.posts.verslagen,但这导致拇指根本不显示。我还在文章本身的首页添加了类别,但这也没有被选中。

为清楚起见,我要做的是让第 1 部分显示来自 _site/_posts/subfolder 1 的帖子,让第 2 部分显示来自 _site/_posts/subfolder 2 的帖子。

解决这个问题的正确方法是什么?

加分问题:页面显示了 4 个帖子,正如预期的那样,但选择显示 12 个可用帖子中的第 6 到 9 个帖子。这是为什么,我可以指定例如总是显示最后 x 个帖子?

供引用:
GitHub 页面:https://zaena.github.io/portfolio-nadine/
GitHub repo :https://github.com/Zaena/portfolio-nadine

最佳答案

该网站有几个问题:

帖子文件夹结构错误

帖子应该总是_posts文件夹中,它们不能在另一个文件夹中(Jekyll 可以显示它们但是一些功能丢失了,它们不是为了在那里)

如果类别是文件夹,它们不能以下划线(_)开头

实际结构中的类别定义为 /_verslagen,它们应该是 /verslagen 并且它的帖子在 /verslagen/_posts

在两个不同的文件夹中有相同的帖子会出现意外行为

帖子位于不同的文件夹中,应该只存在一个版本。

解决方案

您要查找的结构是:

├── index.html
├── lesplannen
│   └── _posts
│       ├── 2016-12-10-dit-is-een-lesplan2.md
│       ├── 2016-12-10-dit-is-een-lesplan3.md
│       ├── 2016-12-10-dit-is-een-lesplan4.md
│       └── 2016-12-10-dit-is-een-lesplan.md
└── verslagen
    └── _posts
        ├── 2016-12-10-dit-is-een-verslag10.md
        ├── 2016-12-10-dit-is-een-verslag11.md
        ├── 2016-12-10-dit-is-een-verslag12.md
        ├── 2016-12-10-dit-is-een-verslag2.md
        ├── 2016-12-10-dit-is-een-verslag3.md
        ├── 2016-12-10-dit-is-een-verslag4.md
        ├── 2016-12-10-dit-is-een-verslag5.md
        ├── 2016-12-10-dit-is-een-verslag6.md
        ├── 2016-12-10-dit-is-een-verslag7.md
        ├── 2016-12-10-dit-is-een-verslag8.md
        ├── 2016-12-10-dit-is-een-verslag9.md
        └── 2016-12-10-dit-is-een-verslag.md

这将使帖子在 site.categories.verslagensite.categories.lesplannen 中的每个类别下可用。

然后显示每个类别帖子的代码如下所示:

{% for post in site.categories.verslagen %}
<p>{{post.title}}</p>
<p>{{ post.date | date: "%b %d, %Y" }}</p>
<p>{{post.thumbnail}}</p>
{% endfor %}

{% for post in site.categories.lesplannen %}
<p>{{post.title}}</p>
<p>{{ post.date | date: "%b %d, %Y" }}</p>
<p>{{post.thumbnail}}</p>
{% endfor %}

关于css - 使用 {% for post in site.posts %} 从特定子文件夹中提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41660514/

相关文章:

javascript - 如何根据屏幕上的 View 外观为自动页面滚动制作动画? ( Angular )

javascript - 试图在两个图标之间切换

python - 捕获静态 'file not found' 错误

yaml - hyperledger configtxgen错误

css - Hero flex 元素在 IE11 中重叠

css - 如何使一个div的宽度在两个div之间拉伸(stretch)

javascript - 如何在 Angular Controller 中使用 Browserified npm 包?

node.js - 使用 Pug 模板时出现意外标记 "indent"

node.js - Jade 中 if else 的使用

postgresql - 无法使用 docker-compose 为 Postgres 设置密码