使用Jekyll /液体模板订购数组

时间:2012-02-09 21:07:46

标签: jekyll liquid

我正在尝试执行以下操作。 我使用Jekyll创建帖子列表,并按类别排序(星期一...星期日) 我希望按时间顺序显示它们,但是Jekyll按字母顺序排列它们。

是否有可能用Jekyll对arry进行排序?

我已经将一个订单键添加到帖子yaml以镜像monday = 1 ... sunday = 7

我正在尝试使用此订单键对数组进行排序,但这不起作用。

  {% for post in posts_collate  %}
    {% capture class %} {{ post.tags | first }} {% endcapture%}
    {% capture club %} {{ post.tags | last }} {% endcapture%}

    {% if forloop.first %}
      <h2>our events</h2>
      <h3>{{ class }} & {{ club }}</h3>
      <dl>
    {% endif %}
    {% if post.rel == 'me' %}
      <dt>{{ post.category | sort: 'order' }}</dt> 
      <dd> <a href="{{ BASE_PATH }}{{ post.url }}">{{ post.title }}</a></dd>
    {% endif %}

    {% if forloop.last %}
      </dl>
    {% endif %}
  {% endfor %}

我在大型谷歌机器上找不到任何信息,所以我不确定这是否有可能。

3 个答案:

答案 0 :(得分:4)

没有插件或自定义功能就无法完成。尽管如此,我们仍在不断努力在下一版本中实现这一点:https://github.com/Shopify/liquid/pull/101然后它看起来像:

{% for tag in site.tags order:ascending %} 
   ...
{% endfor %}

答案 1 :(得分:4)

只需在reversed声明中添加for

即可
 {% for post in site.posts reversed %}
   ...
 {% endfor %}

答案 2 :(得分:0)

好的,不确定是否可以进行这种排序,但我有点作弊 (•__°)

我刚刚将我想要订购的帖子重命名为具体日期,如:

0000-00-01-firstpost 等...

现在是否适合我,但如果有更聪明的方法可以做到这一点,我就是为了它(^ ___ ^)