2017-01-29 33 views
1
排序YAML

我有我试图在杰基尔排序alphabetically以下YML代码:如何使用杰基尔液体

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

使用assignsort标签更安全:

<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