Hamlでインライン要素を一行で生成するには
昨日、Ruby on Rails Tutorial: Learn Rails by Exampleのサンプルアプリ「sample_app」をHaml化してみた時、『インライン要素を一行で生成させるには、どうやって書けばよいのか』が分かりませんでした。
FAQにもなかったので、Haml Google Groupで「inline」キーワードに検索してみたら、『Inline Tags?』にヒットしました。
これによると、Haml::Helpersを使えばいいとのこと。
= precede ':' do %strong foo = succeed '!' do %em bar = surround '(', ')' do %a{ :href => 'http://haml-lang.com/' } Haml
precedeは前方, suceededは後方、surroundは前後に文字を挿入します。
:<strong>foo</strong> <em>bar</em>! (<a href='http://haml-lang.com/'>Haml</a>)
したがって、昨日の疑問点は、以下のように書けば解決。
= succeed " #{ @user.name }" do %strong Name
でも、id:ursmさんにご指摘いただいたのですが、
<strong>Name</strong> #{ @user.name }
と書くのが、一番なのかな。なんか私はHamlのインデントや「%strong」に拘りすぎた感じがします。