Jekyll 液限含

Jekyll Liquid limit contains

我想限制显示包含布局项目的帖子的数量,但这样做只会限制我的帖子。如果我把 limit:4 放在包含之后,我会遇到;

Liquid Warning: Liquid syntax error (line 50): Expected end_of_string but found pipe in "post.layout contains "project" | limit:1" in /_layouts/home.html

Liquid Warning: Liquid syntax error (line 56): Expected end_of_string but found id in "post.layout contains "project" limit:4 offset:1" in /_layouts/home.html

希望这里的人能很容易地看出我哪里出错了。一个解释也很可爱。

{% for post in site.posts %} 
  {% if post.layout contains "project" | limit:1 %}
  <h1>{{post.title}}</h1>
  {% endif %}
{% endfor %}

{% for post in site.posts %}
  {% if post.layout contains "project" limit:4 offset:1 %}
  <h2>{{post.title}}</h2>
  {% endif %}
{% endfor %}

您只能在 for 循环中使用 limitoffset。 此处您在 if 语句中使用它,这就是您收到警告的原因。

更好的方法是使用 where_exp 过滤器。

  {% assign project-posts = site.posts | where_exp: "post", "post.layout contains 'project'"  %}

  {% for post in project-posts limit: 1 %}
    <h1>{{post.title}}</h1>
  {% endfor %}
  {% for post in project-posts limit:4 offset:1 %}
    <h2>{{post.title}}</h2>
  {% endfor %}