我目前正在开发我的第一个Jekyll网站。我有一个页面,其中2个单独的部分显示某些帖子的预览(一个样式的缩略图)。
我想要的是这些部分显示_site / _posts中不同子文件夹的帖子。我组织_posts包含两个子文件夹,/ lesplannen和/ verslagen(课程计划和报告),每个子文件夹包含一堆文章。
其中一个部分的代码如下(玉格式化):
{% 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,但这导致拇指根本不显示。我还在文章本身中将这些类别添加到了前面的内容中,但这也没有被提及。
为清楚起见,我要做的是从_site / _posts / subfolder 1获得第1部分显示帖子,从第2部分显示来自_site / _posts /子文件夹2的帖子。
什么是正确的方法呢?
奖励积分问题:该页面按预期显示4个帖子,但选择显示12个帖子中的6个帖子。为什么这样,我可以指定例如总是显示最后的x个帖子?
供参考:
GitHub页面:https://zaena.github.io/portfolio-nadine/
GitHub回购:https://github.com/Zaena/portfolio-nadine
答案 0 :(得分:1)
该网站有几个问题:
帖子始终位于_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.verslagen
和site.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 %}
答案 1 :(得分:0)
以下是我如何让它们单独显示:
<强> index.html
强>
---
---
<p>Posts in dir-a:</p>
<ul>
{% for post in site.posts %}
{% assign first_dir = post.path | remove_first: "_posts/" | split: "/" | first %}
{% if first_dir == 'dir-a' %}
<li>
<a href="{{ post.url }}">{{ post.title }}: {{ post.date | date: "%b %d, %Y" }}</a>
</li>
{% endif %}
{% endfor %}
</ul>
<p>Posts in dir-b:</p>
<ul>
{% for post in site.posts %}
{% assign first_dir = post.path | remove_first: "_posts/" | split: "/" | first %}
{% if first_dir == 'dir-b' %}
<li>
<a href="{{ post.url }}">{{ post.title }}: {{ post.date | date: "%b %d, %Y" }}</a>
</li>
{% endif %}
{% endfor %}
</ul>
这假设以下目录结构:
/_posts
/_posts/dir-a
/_posts/dir-b
应该很好,很容易适应您的需求。