迭代标记

迭代标记用于重复运行/呈现一段代码。

重复执行一段代码。 最常用于迭代数组或词典中的项目。

在 for 标记块内,forloop 对象可用。

代码

{% for child_page in page.children %}

<a href={{ child_page.url }}>{{ child_page.title }}</a>

{% endfor %}

输出

<a href=/parent/child1/>Child 1</a>

<a href=/parent/child2/>Child 2</a>

<a href=/parent/child3/>Child 3</a>

参数

for 的这些参数可以单独使用或组合使用。

限制

在指定项目数量后退出循环。

代码

{% for child_page in page.children limit:2 %}

<a href={{ child_page.url }}>{{ child_page.title }}</a>

{% endfor %}

输出

<a href=/parent/child1/>Child 1</a>

<a href=/parent/child2/>Child 2</a>

offset

在指定索引开始循环。

代码

{% for child_page in page.children offset:1 %}

<a href={{ child_page.url }}>{{ child_page.title }}</a>

{% endfor %}

输出

<a href=/parent/child2/>Child 2</a>

<a href=/parent/child3/>Child 3</a>

range

定义循环通过的数字范围。

代码

{% assign n = 4 %}

{% for i in (2..n) %}

{{ i }}

{% endfor %}

{% for i in (10..14) %}

{{ i }}

{% endfor }}

输出

2 3 4

10 11 12 14

reversed

以颠倒的顺序循环,从最后一个项目开始。

代码

{% for child_page in page.children reversed %}

<a href={{ child_page.url }}>{{ child_page.title }}</a>

{% endfor %}

输出

<a href=/parent/child3/>Child 3</a>

<a href=/parent/child2/>Child 2</a>

<a href=/parent/child1/>Child 1</a>

周期

在一组字符串中循环,并以它们作为参数传递的顺序输出。 每次调用周期时,作为参数传递的下一个字符串将输出。

代码

{% for item in items %}

<div class={% cycle 'red', 'green', 'blue' %}> {{ item }} </div>

{% end %}

输出

<div class=red> Item one </div>

<div class=green> Item two </div>

<div class=blue> Item three </div>

<div class=red> Item four </div>

<div class=green> Item five</div>

tablerow

生成 HTML 表。 必须在打开 <table> 和关闭 </table> HTML 标记时换行。

在 tablerow 标记块内,tablerowloop 可用。

代码

<table>

{% tablerow child_page in page.children %}

{{ child_page.title }}

{% endtablerow %}

</table>

输出

<table>

<tr class=row1>

<td class=col1>

Child Page 1

</td>

<td class=col2>

Child Page 2

</td>

<td class=col3>

Child Page 3

</td>

<td class=col4>

Child Page 4

</td>

</tr>

</table>

参数

tablerowcan 的这些参数可以单独使用或组合使用。

输出

<table>

<tr class=row1>

<td class=col1>

Child Page 1

</td>

<td class=col2>

Child Page 2

</td>

</tr>

<tr class=row2>

<td class=col3>

Child Page 3

</td>

<td class=col4>

Child Page 4

</td>

</tr>

</table>

代码

<table>

{% tablerow child_page in page.children cols:2 %}

{{ child_page.title }}

{% endtablerow %}

</table>

指明生成的表应有多少行。

cols

限制

在指定项目数量后退出循环。

代码

<table>

{% tablerow child_page in page.children limit:2 %}

{{ child_page.title }}

{% endtablerow %}

</table>

输出

<table>

<tr class=row1>

<td class=col1>

Child Page 1

</td>

<td class=col2>

Child Page 2

</td>

</tr>

</table>

offset

在指定索引开始循环。

代码

<table>

{% tablerow child_page in page.children offset:2 %}

{{ child_page.title }}

{% endtablerow %}

</table>

输出

<table>

<tr class=row1>

<td class=col1>

Child Page 3

</td>

<td class=col2>

Child Page 4

</td>

</tr>

</table>

range

定义循环通过的数字范围。

代码

<table>

{% tablerow i in (1..3) %}

{{ i }}

{% endtablerow %}

</table>

另请参见