Haml化してみた
「WEB+DB PRESS vol.58」(技術評論社著、2010年)のp.41にある『haml - 俳句のような美しいマークアップ言語』という記事を読んで、Hamlに興味を持ち、Ruby on Rails Tutorial: Learn Rails by Exampleのサンプルアプリ「sample_app」*1をHaml化してみました。
サンプルアプリ
http://github.com/nkmrshn/sample_app *2
- Gemfileに「gem 'haml'」と書き、「bundle install」を実行。
- config/environment.rbに「Haml::Template.options[:format] = :html5」を追加。
- Hamlのレファレンスは、そんなに分量はなく、必要なところだけ読んで、ERBをHamlに。
感想
終了タグを書かなくていいですし、こっちの方が楽でした。ただ、まだ慣れていない為、生成されるHTMLソースがイメージしずらかったです。
疑問点
レファレンスを読んでも分からなかった点が1つ。インライン要素を一行で生成させるには、どうやって書けばよいのか。
次のようにHTMLソースを生成したかったとします。「Foo Bar」は、Userモデルのnameプロパティです。
<strong>Name</strong> Foo Bar
これは、ERBの場合だと単純にこうなる。
<strong>Name</strong> <%= @user.name %>
Hamlだと、strongタグとそれに続く部分を改行でわける。
%strong Name = @user.name
すると、strongタグの後に改行が入る。この改行を抑制したいんですが、やり方がわかりませんでした。
<strong>Name</strong> Foo Bar
スペース除去の「<」を使い「%strong> Name」とすると、今度はstrongタグの前にあるタグとも1行になってしまいます。また、strongタグの後に改行ではなく、半角空白1つ入れるにはどうしたらよいのやら。