hamlを試す

sinatraのマニュアルを見ていると、いろんなテンプレートシステムがあるのに気づく。
この手のものはerbしか知らなかったけど、しばらく離れているうちにいっぱい出てきているんだな。
この中で、hamlを試してみた。
haml
 http://haml-lang.com/

ざっと見てみると、yamlのような感じで割と取っつきやすい。
rubyのコードを埋め込むときは、フィルタを使うのが手っ取り早いが、
インデントが崩れてしまうのがちょっと。実害がないからいいんだけど。

a.haml
-# coding: utf-8
%html
%body
%p= foo
%table{:border=>1}
=bar
テンプレートに日本語を含めるときは、エンコードの指定が必要。
:ruby
10.times do |n|
puts "#{n}"
end

haml_sample.rb:
require 'haml'
puts Haml::Engine.new(File.read('a.haml')).render(Object.new, {:foo=>'foo value', :bar=>'bar value'})

出力結果:
hiro@Mac-mini% ruby haml_sample.rb
<html>
<body>
<p>foo value</p>
<table border='1'>
bar value
テンプレートに日本語を含めるときは、エンコードの指定が必要。
<tr><td>0</td></tr>
<tr><td>1</td></tr>
<tr><td>2</td></tr>
<tr><td>3</td></tr>
<tr><td>4</td></tr>
<tr><td>5</td></tr>
<tr><td>6</td></tr>
<tr><td>7</td></tr>
<tr><td>8</td></tr>
<tr><td>9</td></tr>
</table>
</body>
</html>