haml中的内联标记

Mat*_*ggs 37 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>
Run Code Online (Sandbox Code Playgroud)

这很好,因为文本段落看起来仍然像标记中的段落.在haml中,它看起来像这样

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

有没有办法在haml中完全内联一个标签?

And*_*Vit 65

Haml擅长结构化标记,但它并不是真正用于内联标记.阅读:Haml Sucks for Content.只需将您的内联标记设置为HTML:

.content
  %p
    Lorem ipsum <em>dolor</em> sit amet.
Run Code Online (Sandbox Code Playgroud)

或者使用过滤器:

.content
  :markdown
    Lorem ipsum *dolor* sit amet.
Run Code Online (Sandbox Code Playgroud)


Skä*_*nen 21

我知道这是旧的.但想到我发布这个以防万一有人降落在这里.你也可以用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.
Run Code Online (Sandbox Code Playgroud)

对于那些在多行上添加空格而你不想要IE的情况很有用当你在一个句子的末尾有一个链接时,并且不希望链接和句点之间有那么愚蠢的空格.(或者在OP的例子中,在逗号和逗号之间会有一个空格.

只是不要像我在示例中那样被带走:)


Raf*_*tro 9

您可以在任何HAML中内联HTML

%p!= "Lorem ipsum <em>dolor</em> sit amet"
Run Code Online (Sandbox Code Playgroud)

!=运算符意味着无论右侧返回它都将被输出.


Quv*_*Quv 6

作为其他人的这些不错答案的混合体,我认为您可以application_helper.rb为您经常使用的一些内联标记定义一个 Helper 方法。您不需要将 HTML 与 HAML 混合使用,也不需要输入太多内容。

在你的帮手里;

def em(text)
  content_tag(:em, text)
end

#def em(text)
#  "<em>#{text}</em>".html_safe
#end
Run Code Online (Sandbox Code Playgroud)

在你的哈姆里;

%p
    Lorem ipsum dolor 坐 amet,consectetur adipiscing 精英。存在感
    奥利奥奥。Fusce id quam eu augue sollicitudin imperdiet eu ac eros。
    #{em 'Etiam nec nisi lorem'},ac venenatis ipsum。在应征中,
    lectus eget varius tincidunt,felis sapien porta eros,非 
    pellentesque dui quam vitaetellus。