web-dev-qa-db-ja.com

hamlのインラインタグ

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でタグを完全にインライン化する方法はありますか?

37
Matt Briggs

Hamlは構造的マークアップに優れていますが、インラインマークアップを意図したものではありません。読む: Haml Sucks for Content 。インラインタグをHTMLとして配置するだけです。

.content
  %p
    Lorem ipsum <em>dolor</em> sit amet.

または、 filter を使用します。

.content
  :markdown
    Lorem ipsum *dolor* sit amet.
65
Andrew Vit

私はこれが古いことを知っています。しかし、誰かがここに上陸した場合に備えて、これを投稿すると考えました。また、このようなことを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の例のように、とコンマの間にスペースがあります。

ちょうど私が例でしたように夢中にならないでください:)

21

あなたはHAMLにHTMLをインライン化することができます

%p!= "Lorem ipsum <em>dolor</em> sit amet"

!=演算子は、右側が返すものはすべて出力されることを意味します。

9
Rafa de Castro

他の人によるこれらの素敵な答えのハイブリッドとして、頻繁に使用するいくつかのインラインマークアップに対して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。 
4
Quv

それはすべてインデントについてです:

%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. 
0
drjorgepolanco