Jekyll Liquid限量包含

时间:2018-05-22 20:45:17

标签: if-statement jekyll liquid

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

  

液体警告:液体语法错误(第50行):预期的end_of_string但在/ postouts/home.html中的“post.layout contains”项目“| limit:1”中找到了管道

     

液体警告:液体语法错误(第56行):预期的end_of_string但是在/ postouts/home.html

中的“post.layout contains”项目“limit:4 offset:1”中找到了id

希望有人能够轻松地看到我出错的地方。解释也很可爱。

{% 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 %}

1 个答案:

答案 0 :(得分:0)

您只能在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 %}