2010-03-13 5 views

Répondre

5

Malheureusement, vous ne pouvez pas mettre deux éléments haml sur la même ligne.

Vous pouvez obtenir quelque chose de similaire en utilisant des éléments HTML en ligne:

%h1 <a href='/'>Lorem ipsum</a> 

Pourquoi aimez-vous pas ce format?

%h1 
    %a{:href => '/'} Professio. 

Une autre option est d'écrire méthode 'helper' spécifique (qui génèrent un lien html). Par exemple, le link_to dans Rails:

%h1= link_to 'Professio', root_url 
+0

Je voudrais sur la même ligne parce que je veux la sortie HTML pour être sur la même ligne. Je vais faire plusieurs lignes, merci. –

+1

Vérifiez Garvin réponse ci-dessous, il est arrivé en retard, mais semble être le bon pour cette question. – fotanus

2

Si vous cherchez à conserver le code HTML sur la même ligne vous pouvez essayer quelque chose comme ceci:

irb> print Haml::Engine.new("%h1<\n %a{:href => '/'} Profession.").render() 
<h1><b href='/'>Profession.</a></h1> 

trouvés ici: HAML whitespace removal

[Edit: Je sais que ce dit b ci-dessus href ...]

+0

J'ai posté ma réponse après avoir réalisé que votre réponse était essentiellement la même. Je ne me suis pas rendu compte que c'était la même chose au début parce que l'échantillon de code est un peu obscurci. –

16

réponse tardive, mais je ne faisais que le même problème aborde moi-même et savait HAML avait une façon de le faire dans le cadre de la langue. Voir le White Space Removal section of the HAML reference.

Vous pouvez le faire de cette façon:

%h1< 
    %a{ :href => '/' } Professio. 

Ou cette façon:

%h1 
    %a{ :href => '/' }> Professio. 
4

Haml ne peut pas le faire. Slim peut:

h1: a(href='/') Professio. 

est le même que:

h1 
    a(href="/) Professio 

Vous pouvez écrire autant plus profond arbre que vous avez besoin:

ul.nav 
    li.active: a(href="/home"): strong Home 
    li:  a(href="/contact"): span Contact 

Jade a également une syntaxe similaire et de soutenir cette fonctionnalité, mais il a été conçu pour l'environnement Node.js.

+0

Merci de souligner Slim, il semble être une bonne alternative à HAML! –

Questions connexes