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で番号が出力されます。