我一直试图弄清楚这一点,但一直未能得出满意的结论。
基本上,我想要做的是检测我的Jekyll站点上的帖子数量,并根据该数量列出帖子。例如,如果只有一个帖子,我想列出该帖子的全部长度和所有格式。如果有两篇文章,我想把这两篇文章都列为片段,并且不使用HTML格式。如果有三个,与两个职位相同。如果有三篇以上的文章,我想和两篇和三篇一样,但用“查看所有帖子”的链接,因为我想在主页上列出最多三个,但如果不超过三个帖子,我不想要“查看所有帖子”的链接。
在列出当前代码之前,我想指出的是,我尝试过使用paginator.total_posts (我在我的站点上使用了jekyll页面),但是没有列出任何内容。
下面是我目前的代码:
{% if site.posts | size == 1 %}
{% for post in site.posts %}
{{ first post coding, full-length }}
{% endfor %}
{% endif %}
{% if site.posts | size == 2 %}
{% for post in site.posts limit:1 %}
{{ first post coding, snippet }}
{% endfor %}
{% for post in site.posts limit:1 offset:1 %}
{{ second post coding, snippet }}
{% endfor %}
{% endif %}
{% if site.posts | size == 3 %}
{% for post in site.posts limit:1 %}
{{ first post coding, snippet }}
{% endfor %}
{% for post in site.posts limit:1 offset:1 %}
{{ second post coding, snippet }}
{% endfor %}
{% for post in site.posts limit:1 offset:2 %}
{{ third post coding, snippet }}
{% endfor %}
{% endif %}
{% if site.posts | size > 3 %}
{% for post in site.posts limit:1 %}
{{ first post coding, snippet }}
{% endfor %}
{% for post in site.posts limit:1 offset:1 %}
{{ second post coding, snippet }}
{% endfor %}
{% for post in site.posts limit:1 offset:2 %}
{{ third post coding, snippet }}
{% endfor %}
{{ "view all posts" link coding }}
{% endif %}问题是,我的页面输出的是所有的{% if %}语句;它不是只选择一个,而是为{{ site.posts | size }}输出的数字选择一个。这让我感到困惑,因为当我将{{ site.posts | size }}放在代码中时,它列出了每种情况下正确的数字。
我尝试过将==更改为contains,甚至是:,但仍然得到了相同的结果。
我不知道从这里去哪里,所以任何帮助都是非常感谢的。提前谢谢。
发布于 2016-08-16 08:39:54
您不应该混合测试和过滤器。尝试以下几点:
{% assign post_count=site.posts | size %}
{% if post_count == 1 %}
...请注意,对于数组,您可以使用size属性而不是过滤器:
{% if site.posts.size == 1 %}
...https://stackoverflow.com/questions/38969941
复制相似问题