Haml化してみた

WEB+DB PRESS vol.58」(技術評論社著、2010年)のp.41にある『haml - 俳句のような美しいマークアップ言語』という記事を読んで、Hamlに興味を持ち、Ruby on Rails Tutorial: Learn Rails by Exampleのサンプルアプリ「sample_app」*1Haml化してみました。

サンプルアプリ

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つ入れるにはどうしたらよいのやら。

*1:Twitterライクなアプリ。

*2:Haml化する前のソースは、「before_hamlized」というタグを付けました。