2010-11-02 6 views
9

Ich habe ein Problem, Haml Br-Tags zu schließen. Ich habe folgend ohne Glück versucht:br Tag nicht in Haml on Rails schließen 3

%br 
%br/ 

ich dies in <br /> führen erwarten, aber es gibt immer als <br>, auch mit dem Schrägstrich am Ende. Ich habe auch versucht, die folgenden Optionen zu application.rb hinzufügen (und ich habe versucht, environment.rb)

Haml::Template.options[:autoclose] = ['meta', 'img', 'link', 'br', 'hr', 'input', 'area', 'param', 'col', 'base'] 

Bin ich etwas fehlt? Ich dachte, Haml sollte diese Tags automatisch autoclosieren.

Antwort

10

Ok, ich habe das Problem herausgefunden. Haml gibt standardmäßig HTML5 aus, wenn Sie Rails 3 verwenden. Ich wusste nicht, dass <br> eine gültige Syntax in HTML5 ist. Ich habe versucht, dies zu bekommen, um den W3C semantischen Extraktor zu übergeben, also brauche ich stattdessen <br />. Damit dies funktioniert, müssen Sie die Haml-Optionen für autoclose aktualisieren und auf xhtml einstellen. Legen Sie diesen Code in Ihre application.rb innerhalb der Klasse ab.

Haml::Template.options[:format] = :xhtml 

Mehr Infos hier:

http://github.com/nex3/haml/issuesearch?state=closed&q=close#issue/155

+2

Sie müssen die ': autoclose'-Liste nicht wirklich anpassen. Haml weiß, dass '
' standardmäßig autoclosiert werden sollte. –

+0

@ nex3 - Antwort aktualisiert, um das zu reflektieren. Danke für den Tipp und danke für deine harte Arbeit an haml und sass. Tolle Produkte! – johnmcaliley

2

Aber wenn ich XHTML5 wollen (das heißt html5 mit Autoclose) gibt es keine Möglichkeit, es zu tun! Ich habe wie viele andere Benutzer versucht, die: autoclose-Liste zu überschreiben und es funktioniert einfach nicht.

+0

Ich benutze '% br  ' - Hässlich, sich wiederholend, aber macht den Job. –

1

Nach der haml docs:

Haml::Template.options[:format] = :xhtml 

sollte in config/environment.rb platziert werden.

Platzieren Sie es in environment.rb funktioniert für mich.