HTMLでは、あなたはこのようなことをすることができます
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget
aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros.
<em>Etiam nec nisi lorem</em>, ac venenatis ipsum. In sollicitudin,
lectus eget varius tincidunt, felis sapien porta eros, non
pellentesque dui quam vitae tellus.
</p>
テキストの段落がまだマークアップの段落のように見えるので、それは素晴らしいです。 hamlでは、次のようになります。
%p Lorem ipsum dolor sit amet、consectetur adipiscing ellit。 Praesent eget アリケットオディオ。 Fusce id quam eu augue sollicitudin imperdiet eu ac eros。 %em Etiam nec nisi lorem 、ac venenatis ipsum。 sollicitudinでは、 lectus eget varius tincidunt、felis sapien porta eros、非 pellentesque dui quam vitae tellus。
Hamlでタグを完全にインライン化する方法はありますか?
Hamlは構造的マークアップに優れていますが、インラインマークアップを意図したものではありません。読む: Haml Sucks for Content 。インラインタグをHTMLとして配置するだけです。
.content
%p
Lorem ipsum <em>dolor</em> sit amet.
または、 filter を使用します。
.content
:markdown
Lorem ipsum *dolor* sit amet.
私はこれが古いことを知っています。しかし、誰かがここに上陸した場合に備えて、これを投稿すると考えました。また、このようなことをhamlで行うこともできます(OPが求めていたものはそれ以上でしょうか?)。
%p Here is some text I want to #{content_tag(:em, "emphasize!")}, and here the Word #{content_tag(:strong, "BOLD")} is in bold. and #{link_to("click here", "url")} for a link.
複数行で行うと、必要のないスペースが追加されるような状況で役立ちます。文の終わりにリンクがあり、リンクとピリオドの間にそのようなばかげたスペースを入れたくない場合。 (またはOPの例のように、とコンマの間にスペースがあります。
ちょうど私が例でしたように夢中にならないでください:)
あなたはHAMLにHTMLをインライン化することができます
%p!= "Lorem ipsum <em>dolor</em> sit amet"
!=演算子は、右側が返すものはすべて出力されることを意味します。
他の人によるこれらの素敵な答えのハイブリッドとして、頻繁に使用するいくつかのインラインマークアップに対してapplication_helper.rb
でヘルパーメソッドを定義できると思います。 HTMLとHAMLを混在させる必要はなく、多くを入力する必要もありません。
あなたのヘルパーで;
def em(text)
content_tag(:em, text)
end
#def em(text)
# "<em>#{text}</em>".html_safe
#end
あなたのハムルで;
%p Lorem ipsum dolor sit amet、consectetur adipiscing ellit。 Praesent eget アリケットオディオ。 Fusce id quam eu augue sollicitudin imperdiet eu ac eros。 #{em 'Etiam nec nisi lorem'}、ac venenatis ipsum。 sollicitudinでは、 lectus eget varius tincidunt、felis sapien porta eros、非 pellentesque dui quam vitae tellus。
それはすべてインデントについてです:
%p
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros.
%em
Etiam nec nisi lorem, ac venenatis ipsum. In sollicitudin, lectus eget varius tincidunt, felis sapien porta eros, non pellentesque dui quam vitae tellus.