Quiero poder tener dos elementos Haml en la misma línea. Por ejemplo:Elementos múltiples Haml en la misma línea
%h1 %a{:href => '/'} Professio.
que no funciona. ¿Cómo conseguiría algo como esto para trabajar sin borking?
Quiero poder tener dos elementos Haml en la misma línea. Por ejemplo:Elementos múltiples Haml en la misma línea
%h1 %a{:href => '/'} Professio.
que no funciona. ¿Cómo conseguiría algo como esto para trabajar sin borking?
Lamentablemente, no puede poner dos elementos haml en la misma línea.
Se puede lograr algo similar mediante el uso de elementos HTML en línea:
%h1 <a href='/'>Lorem ipsum</a>
¿Por qué no te gusta este formato?
%h1
%a{:href => '/'} Professio.
Otra opción es escribir el método especial 'helper' (que genera un enlace html). Por ejemplo, el link_to en Rails:
%h1= link_to 'Professio', root_url
Si usted está buscando para preservar el código HTML en la misma línea que podría intentar algo como esto:
irb> print Haml::Engine.new("%h1<\n %a{:href => '/'} Profession.").render()
<h1><b href='/'>Profession.</a></h1>
encontrar aquí: HAML whitespace removal
[Editar: Sé que eso dice b href arriba ...]
Publiqué mi respuesta después de darme cuenta de que su respuesta era esencialmente la misma. No me di cuenta de que era lo mismo al principio porque la muestra del código está algo ofuscada. –
Última respuesta, pero yo mismo estaba abordando el mismo problema y sabía que HAML tenía una manera de hacer esto como parte del lenguaje. Vea el White Space Removal section of the HAML reference.
Usted puede hacerlo de esta manera:
%h1<
%a{ :href => '/' } Professio.
O esta manera:
%h1
%a{ :href => '/' }> Professio.
Haml no puede hacer esto. Slim puede:
h1: a(href='/') Professio.
es lo mismo que:
h1
a(href="/) Professio
Se puede escribir como árbol más profundo como sea necesario:
ul.nav
li.active: a(href="/home"): strong Home
li: a(href="/contact"): span Contact
Jade también tiene una sintaxis similar y compatible con esta función, pero ha sido diseñado para el entorno Node.js.
Gracias por señalar Slim, ¡parece una buena alternativa a HAML! –
Me gustaría en la misma línea porque quiero que el HTML de salida esté en la misma línea. Haré muchas líneas, gracias. –
Comprueba la respuesta de Garvin a continuación, llegó tarde pero parece ser el correcto para esta pregunta. – fotanus