在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 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中完全内联一个标签?
答案 0 :(得分:62)
Haml擅长结构化标记,但它并不是真正用于内联标记。阅读:Haml Sucks for Content。只需将您的内联标记设为HTML:
.content
%p
Lorem ipsum <em>dolor</em> sit amet.
或者使用filter:
.content
:markdown
Lorem ipsum *dolor* sit amet.
答案 1 :(得分:20)
我知道这是旧的。但想到我发布这个以防万一有人降落在这里。你也可以用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.
对于在多行上执行此操作会添加您不想要的空格的情况非常有用 I.E.当你在一个句子的末尾有一个链接,并且不希望链接和句点之间的那个愚蠢的空格。 (或者在OP的例子中,在逗号和逗号之间会有一个空格。
请不要像我在示例中那样被带走:)
答案 2 :(得分:9)
您可以在任何HAML中内联HTML
%p!= "Lorem ipsum <em>dolor</em> sit amet"
!=运算符意味着无论右侧返回它都将被输出。
答案 3 :(得分:3)
作为其他人的好回答的混合体,我认为您可以在application_helper.rb
中为您经常使用的某些内联标记定义一个Helper方法。您不需要将HTML与HAML混合,也不需要输入太多。
在你的助手中;
def em(text)
content_tag(:em, text)
end
#def em(text)
# "<em>#{text}</em>".html_safe
#end
在你的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.
答案 4 :(得分:1)
这都是关于缩进的:
%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.