我希望能够在同一行上有两个Haml元素。例如:
%h1 %a{:href => '/'} Professio.
这不起作用。如果没有borking,我怎么能得到这样的东西呢?
答案 0 :(得分:17)
迟到的回答,但我自己只是解决了同样的问题,并且知道HAML有办法将这个作为语言的一部分。请参阅White Space Removal section of the HAML reference。
你可以这样做:
%h1<
%a{ :href => '/' } Professio.
或者这样:
%h1
%a{ :href => '/' }> Professio.
答案 1 :(得分:5)
不幸的是,你不能在同一行上放两个haml元素。
您可以通过使用内联html元素来实现类似的功能:
%h1 <a href='/'>Lorem ipsum</a>
你为什么不喜欢这种格式?
%h1
%a{:href => '/'} Professio.
另一个选择是编写特殊的'helper'方法(生成一个html链接)。例如,Rails中的link_to:
%h1= link_to 'Professio', root_url
答案 2 :(得分:5)
哈姆不能这样做。 Slim可以:
h1: a( href='/' ) Professio.
与:
相同h1
a( href="/ ) Professio
您可以根据需要编写更深层的树:
ul.nav
li.active: a( href="/home" ): strong Home
li: a( href="/contact" ): span Contact
Jade也有类似的语法并支持此功能,但它是专为Node.js环境设计的。
答案 3 :(得分:3)
如果您想在同一行保留HTML,可以尝试这样的事情:
irb> print Haml::Engine.new("%h1<\n %a{:href => '/'} Profession.").render()
<h1><b href='/'>Profession.</a></h1>
在此处找到:HAML whitespace removal
[编辑:我知道上面说的是b href ...]