我正在尝试输出某个作者的博客帖子列表.我试过这个Jekyll过滤器:
{% for post in (site.posts | where:"author", "mike") %}
{{ post.title }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
但它会输出每个帖子.我不清楚我做错了什么.
Dav*_*uel 10
假设你的帖子作者在你面前,就像这样:
---
author: toto
...
---
Run Code Online (Sandbox Code Playgroud)
如果你想要作者== toto的最后一篇文章,那就做:
{% assign counter = 0 %}
{% assign maxPostCount = 2 %}
<ul>
{% for post in site.posts %}
{% if post.author == 'toto' and counter < maxPostCount %}
{% assign counter=counter | plus:1 %}
<li>{{ counter }} - {{ post.title }}</li>
{% endif %}
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
Et hop!
编辑: 另一个使用where过滤器而不是if子句的解决方案:
{% assign posts = site.posts | where: "author", "toto" %}
{% assign counter2 = 0 %}
{% assign maxPostCount2 = 3 %}
<ul>
{% for post in posts %}
{% if counter2 < maxPostCount2 %}
{% assign counter2=counter2 | plus:1 %}
<li>{{ counter2 }} - {{ post.title }}</li>
{% endif %}
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
重新编辑:贾斯汀是对的我不需要我的两个变量(counter2和maxPostCount2),我可以使用Liquid for loop limit:n选项.
{% assign posts = site.posts | where: "author", "toto" %}
<ul>
{% for post in posts limit:3 %}
<Ol>{{ post.title }}</ol>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
更好!
| 归档时间: |
|
| 查看次数: |
6251 次 |
| 最近记录: |