2017-01-29 10 views
1

У меня есть следующий YML код, который я пытаюсь разобраться alphabetically в Джекила:Как сортировать YAML, используя Джекил Liquid

layout: project 
title: Home renovation 
link: http://urlgoeshere.com  
builtWith: 
    - Concrete 
    - Glass 
    - Brick 
    - Dirt 

Вот мой код шаблона:

<h4>Built With</h4> 
    <ul class="list-unstyled list-inline list-responsibilities"> 
     {% for item in page.builtWith %} 
     <li>{{ item }}</li> 
     {% endfor %} 
    </ul> 

Что мне нужно добавить в цикл for, чтобы получить builtWith товаров для сортировки alphabetically?

Спасибо!

ответ

1

Попробуйте

{% assign sorted = (page.builtWith | sort) %} 
{% for item in sorted %} 
+0

Это работало отлично, спасибо! –

+0

Просто обратите внимание, что круглые скобки '(' ')' ничего не делают в Liquid, и вы можете удалить их из этого фрагмента. –

0

В последней версии Джекил, используя только sort тег не работает, потому что вам нужно присвоить его переменной первой: Liquid Warning: Liquid syntax error (line 24): Expected end_of_string but found pipe in "item in page.builtWith | sort".

Если вы не используете последнюю версию, тогда она может работать с добавлением sort в той же строке.

Использование assign и sort теги безопаснее:

<h4>Built With</h4> 
<ul class="list-unstyled list-inline list-responsibilities"> 
{% assign sorted = page.builtWith | sort %} 
{% for item in sorted %} 
<li>{{ item }}</li> 
{% endfor %} 
</ul> 

Выходы:

Built With 

    Brick 
    Concrete 
    Dirt 
    Glass