Balises d’itération
Les balises d’itération servent à exécuter/afficher un bloc de code à plusieurs reprises.
pour
Exécute un bloc de code à plusieurs reprises. Il est plus couramment utilisé pour itérer sur les éléments d’un tableau ou d’un dictionnaire.
Dans le bloc de balise for, l’objet forloop est disponible.
Code
{% for child_page in page.children %}
<a href={{ child_page.url }}>{{ child_page.title }}</a>
{% endfor %}
Sortie
<a href=/parent/child1/>Child 1</a>
<a href=/parent/child2/>Child 2</a>
<a href=/parent/child3/>Child 3</a>
Paramètres
Les paramètres suivants de for peuvent être utilisés seuls ou en combinaison.
limit
Quitte la boucle après un nombre donné d’éléments.
Code
{% for child_page in page.children limit:2 %}
<a href={{ child_page.url }}>{{ child_page.title }}</a>
{% endfor %}
Sortie
<a href=/parent/child1/>Child 1</a>
<a href=/parent/child2/>Child 2</a>
offset
Démarre la boucle à un index donné.
Code
{% for child_page in page.children offset:1 %}
<a href={{ child_page.url }}>{{ child_page.title }}</a>
{% endfor %}
Sortie
<a href=/parent/child2/>Child 2</a>
<a href=/parent/child3/>Child 3</a>
range
Définit une plage de nombres dans laquelle effectuer une boucle.
Code
{% assign n = 4 %}
{% for i in (2..n) %}
{{ i }}
{% endfor %}
{% for i in (10..14) %}
{{ i }}
{% endfor }}
Sortie
2 3 4
10 11 12 14
reversed
Itère dans la boucle dans l’ordre inverse, en commençant par le dernier élément.
Code
{% for child_page in page.children reversed %}
<a href={{ child_page.url }}>{{ child_page.title }}</a>
{% endfor %}
Sortie
<a href=/parent/child3/>Child 3</a>
<a href=/parent/child2/>Child 2</a>
<a href=/parent/child1/>Child 1</a>
cycle
Effectue une boucle dans un groupe de chaînes et les génère dans leur ordre de transmission comme paramètres. Chaque fois que la balise cycle est appelée, la chaîne suivante transmise comme paramètre est générée.
Code
{% for item in items %}
<div class={% cycle 'red', 'green', 'blue' %}> {{ item }} </div>
{% end %}
Sortie
<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
Génère un tableau HTML. Doit être enveloppé dans des balises HTML <table> d’ouverture et </table> de fermeture.
Dans le bloc de balise tablerow, tablerowloop est disponible.
Code
<table>
{% tablerow child_page in page.children %}
{{ child_page.title }}
{% endtablerow %}
</table>
Sortie
<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>
Paramètres
Les paramètres suivants de tablerowcan peuvent être utilisés seuls ou en combinaison.
Sortie
<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>
Code
<table>
{% tablerow child_page in page.children cols:2 %}
{{ child_page.title }}
{% endtablerow %}
</table>
Indique le nombre de lignes que doit contenir le tableau généré.
cols
limit
Quitte la boucle après un nombre donné d’éléments.
Code
<table>
{% tablerow child_page in page.children limit:2 %}
{{ child_page.title }}
{% endtablerow %}
</table>
Sortie
<table>
<tr class=row1>
<td class=col1>
Child Page 1
</td>
<td class=col2>
Child Page 2
</td>
</tr>
</table>
offset
Démarre la boucle à un index donné.
Code
<table>
{% tablerow child_page in page.children offset:2 %}
{{ child_page.title }}
{% endtablerow %}
</table>
Sortie
<table>
<tr class=row1>
<td class=col1>
Child Page 3
</td>
<td class=col2>
Child Page 4
</td>
</tr>
</table>
range
Définit une plage de nombres dans laquelle effectuer une boucle.
Code
<table>
{% tablerow i in (1..3) %}
{{ i }}
{% endtablerow %}
</table>