{% for %}文で始まり{% endfor %}文で終わります。{% for %}文では、シーケンス項目の名前に続き、inを使ってシーケンス名を指定します。for文の始まりから終わりまでの間のコードが、反復の度に出力されます。このコードには通常、各シーケンス項目の出力変数が含まれます。forループの基本構文は以下のとおりです。
ループプロパティー
ループの反復中に、条件文を使用してループの動作を定義できます。変数プロパティーloop.indexによって、ループの現在の反復数(イテレーション)がカウントされます。他にも反復数をさまざまな方法でカウントするloop変数プロパティーがあります。これらのプロパティーについては以下に示します。
さまざまなループ変数の使用例を以下にいくつか示します。以下の基本的な例では、
loop.indexを使用して、反復の度に出力されるカウントを行います。
divisibleby(割り切れる)かどうかをチェックします。次に、記事項目divの幅をレンダリングします。この例では標準のブログ記事ループを使用し、ループに6件の記事があると仮定しています。
ネストしたループ
ループを他のループでネストすることもできます。子forループは、親forループが反復される度に実行されます。以下の例では、親項目の<ul>の中でネストしている<ul>に子項目のリストが出力されます。
cycle
反復の度に一連の文字列値を循環して出力するには、forループでcycleタグを使用します。この手法の実用例として、リスト内のブログ記事に適用するクラスを交互に切り替える処理が挙げられます。このタグは3つ以上の値に使用でき、ループの反復数がcycleの値よりも多い場合にcycleが繰り返されます。以下の例では、oddとevenというクラスがリスト内の記事に適用されます(この例ではループに5件の記事が含まれていると仮定しています)。
カンマ区切りのcycle文字列値の間にスペースがない点に注意してください。
ループ内の変数
ループ外で定義した変数をループ内から呼び出すことはできますが、その逆はできません。ループでのキーと値のペア
ループの対象にするディクショナリー(辞書型)にキーと値が含まれている場合、単純なforループで参照できるのは値に限られます。forループ内でキーと値の両方を参照するには、次のような形式のHubLを使用します。設定した回数の反復
設定した回数だけを反復する処理は、HTMLやCSSを生成するときに便利です。この処理はrange関数を使用すると実現できます。ループでHubLタグを使用する
ページにタグを追加すると、HubSpotにより、ラッパー側のHTMLに自動的にidが割り当てられます。このタグはタグの「name」ごとに固有です。特定のタグをforループ内で使用する場合に、固有のnameを設定することは現実的ではありません。タグにunique_in_loopパラメーターを追加して、固有idを生成してください。このパラメーターによってモジュール名に現在のループの反復数が追加されることで、項目が重複しなくなります。固有idは、HTMLの有効性に必要なだけでなく、アクセシビリティーにおいても重要です。