20

我正在使用 Jekyll 构建一个简单的博客,我正在努力解决这个问题。

该网站的索引页面旨在展示一篇最新的文章,其结构如下所示(请原谅混乱):

{% for post in site.posts reversed limit:1 %}
    <div class="post">
        <div class="post-inner">
            <h3 class="posttitle"><a href="{{ post.url }}">{{ post.title }}</a></h3>
            <p class="postdate">{{ post.date | date: "%d %B %Y" }}</p>
            {{ post.content }}
            <a href="{{ post.url }}#disqus_thread" class="commentLink"></a>
        </div>
    </div>
{% endfor %}

当限制不受限制(即不存在或设置为数组的长度)时,上述模板可以正常工作。似乎只有当限制实际上限制了循环忽略的结果时才会反转。

我试过清除浏览器缓存,这就是它不受限制地工作的原因:1,但进度到此为止。

感谢您的帮助,如果这还不够,我很乐意提供更多详细信息。

4

2 回答 2

29

Jekyll 实际上为你输出了什么?

据我了解,最后应用了反向过滤器。因此,假设您发布了 8 月的前 15 天,还假设您执行了以下操作:

{% for post in site.posts limit:5 %}
    {{ post.content }}
{% endfor %}

您发布的数组将按以下模式排序

[8月15日、8月14日、8月13日、8月12日、8月11日]

然后如果你把它倒过来

{% for post in site.posts reversed limit:5 %}
    {{ post.content }}
{% endfor %}

您发布的数组将按以下模式排序

[8月11日、8月12日、8月13日、8月14日、8月15日]

说了这么多,我对你为什么不使用有点困惑

{% for post in site.posts limit:1 %}
于 2012-09-24T23:20:51.573 回答
13

黑客通过自定义字段进行自定义反向排序并限制:

{% assign items = site.items | sort: 'some_field' | reverse %}
{% for item in items limit:10 %}
    <li><a href="{{ item.url }}">{{ item.title }}</a></li>
{% endfor %}

分配给一些自定义变量很重要,在那里排序(和反向),然后才循环限制。

于 2015-04-06T11:20:46.453 回答