2010-11-02 7 views
9

Sto riscontrando un problema nel far sì che Haml chiuda i tag br. Ho provato quanto segue senza fortuna:tag br che non si chiude in Haml on Rails 3

%br 
%br/ 

Mi aspetto che questo risultato in <br />, ma emette sempre come <br>, anche con il carattere barra sull'estremità. Ho anche provato ad aggiungere le seguenti opzioni per application.rb (e ho provato environment.rb)

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

Mi sto perdendo qualcosa? Pensavo che Haml avrebbe dovuto autocludere questi tag di default ??

risposta

10

Ok, ho scoperto il problema. Haml emette HTML5 per impostazione predefinita quando si utilizza Rails 3. Non mi sono reso conto che <br> era sintassi valida in HTML5. Stavo cercando di fare in modo che questo passasse all'estrattore semantico del W3C, quindi ho bisogno invece di <br />. Per farlo funzionare, dovrai aggiornare le opzioni di Haml per autoclose e impostarlo su xhtml. Inserisci questo codice nel tuo file application.rb all'interno della classe.

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

Maggiori informazioni qui:

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

+2

In realtà non è necessario regolare l'elenco ': autoclose'. Haml sa che '
' dovrebbe essere automaticamente autocluso. –

+0

@ nex3 - risposta aggiornata per riflettere questo. grazie per il suggerimento, e grazie per il vostro duro lavoro su haml e sass. Prodotti fantastici! – johnmcaliley

2

Ma, se voglio xhtml5 (cioè HTML5 con autoclose) non c'è modo per farlo! Io, come molti altri utenti, ho provato a sovrascrivere l'elenco: autoclose e semplicemente non funziona.

+0

Sto usando '% br  ' - Brutto, ripetitivo, ma fa il lavoro. –

1

Secondo la documentazione Haml:

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

deve essere posto in config/environment.rb.

Inserirlo in environment.rb funziona per me.