I want to be able to have two Haml elements on the same line. For example:
%h1 %a{:href => \'/\'} Professio.
That doesn\'t work. How would I
Haml cannot do this. Slim can:
h1: a( href='/' ) Professio.
is the same as:
h1
a( href="/ ) Professio
You can write as deeper tree as you need:
ul.nav
li.active: a( href="/home" ): strong Home
li: a( href="/contact" ): span Contact
Jade also has similar syntax and support this feature, but it's been designed for Node.js environment.
Late answer, but I was just tackling the same problem myself and knew HAML had a way to do this as part of the language. See the White Space Removal section of the HAML reference.
You could do it this way:
%h1<
%a{ :href => '/' } Professio.
Or this way:
%h1
%a{ :href => '/' }> Professio.
If you're looking to preserve the HTML on the same line you could try something like this:
irb> print Haml::Engine.new("%h1<\n %a{:href => '/'} Profession.").render()
<h1><b href='/'>Profession.</a></h1>
Found here: HAML whitespace removal
[Edit: I know that's says b href above...]
Unfortunately, you cannot put two haml elements on the same line.
You can achieve something similar by using inline html elements:
%h1 <a href='/'>Lorem ipsum</a>
Why don't you like this format?
%h1
%a{:href => '/'} Professio.
Another option is to write special 'helper' method (that generate an html link). For example, the link_to in Rails:
%h1= link_to 'Professio', root_url