【问题标题】:Order an array with Jekyll / liquid template使用 Jekyll / 液体模板订购阵列
【发布时间】:2012-03-02 09:22:10
【问题描述】:

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

可以用 Jekyll 对数组进行排序吗?

我在帖子 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 %}

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

【问题讨论】:

    标签: jekyll liquid


    【解决方案1】:

    没有插件或自定义功能就无法完成。虽然,在下一个版本中正在努力实现这一点:https://github.com/Shopify/liquid/pull/101,然后它看起来像:

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

    【讨论】:

    • 嗨,这个功能现在已经在当前版本中了吗?如果不是,我如何在 Shopify 中安装插件?谢谢
    • Jekyll 1.4.3 依赖于liquid 2.5.5,显然它还没有实现。 github.com/Shopify/liquid/pull/304
    【解决方案2】:

    只需在for 语句中添加reversed

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

    【讨论】:

      【解决方案3】:

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

      我刚刚将要订购的帖子重命名为特定日期,例如:

      0000-00-01-firstpost 等等……

      暂时适合我,但如果有更聪明的方法可以做到这一点,我愿意(^___^)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-16
        • 2016-06-05
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-07
        • 2018-02-01
        相关资源
        最近更新 更多