Заказать массив с шаблоном Jekyll / liquid - PullRequest
9 голосов
/ 10 февраля 2012

Я пытаюсь сделать следующее. Я использую Jekyll, чтобы создать список постов и упорядочить их по категориям (понедельник ... воскресенье) Я бы хотел, чтобы они отображались в хронологическом порядке, но Джекилл расположил их в алфавитном порядке.

Можно ли отсортировать арри с Джекилом?

Я добавил ключ заказа к записи yaml to mirror 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 %}

И я не могу найти какую-либо информацию в большой машине Google, поэтому я не уверен, что это возможно.

Ответы [ 3 ]

4 голосов
/ 25 июля 2012

Это не может быть сделано без плагина или пользовательской функции. Несмотря на то, что в следующих выпусках предпринимаются постоянные усилия: https://github.com/Shopify/liquid/pull/101, и тогда это будет выглядеть так:

{% for tag in site.tags order:ascending %} 
   ...
{% endfor %}
4 голосов
/ 09 ноября 2014

просто добавьте reversed в оператор for

 {% for post in site.posts reversed %}
   ...
 {% endfor %}
0 голосов
/ 10 февраля 2012

Хорошо, не уверен, что такая сортировка вообще возможна, но я немного обманул (• __ °)

Я только что переименовал пост, в котором я хочу заказать сконкретная дата, например:

0000-00-01-firstpost и т. д. *

Делает это для меня сейчас, но если есть более умный способ сделать это, я встаюза это (^ ___ ^)

...