Haml:ループ(for文)を扱う

Hamlの文中でforを使った条件ループを行えます。

!!!
%html
    %head
        %title Haml test
    %body
        %ul.list
            - for i in 1..5
                %li list #{i}

コンパイルすると下記HTMLに出力されます。

<!DOCTYPE html>
<html>
  <head>
    <title>Haml test</title>
  </head>
  <body>
    <ul class='list'>
      <li>list 1</li>
      <li>list 2</li>
      <li>list 3</li>
      <li>list 4</li>
      <li>list 5</li>
    </ul>
  </body>
</html>

ul.list内よりfor文を開始し、1~5のリストを出力させています。
ループなどの処理は基本的にはRubyなので下記のようにtimesメソッドで書くこともできます。

%ul.list
    - 5.times do |i|
        %li list #{i}

これでも同じHTMLが出力されます…と言いかけるところでしたが、前者のfor文では1~5を指定しているのに対し、timesでは0開始からの5回なので0~4で番号が出力されます。