2010-11-02 40 views
9

我遇到了讓Haml關閉b​​r標記的問題。我已經試過,沒有運氣以下:br標記不在Haml on Rails中關閉3

%br 
%br/ 

我預計這將導致<br />,但它總是作爲輸出<br>,即使在結束斜槓字符。我也嘗試在application.rb中添加以下選項(並且我嘗試了environment.rb)

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

我錯過了什麼嗎?我雖然Haml應該默認自動關閉這些標籤?

回答

10

好的,我發現了這個問題。 Haml在使用Rails 3時默認輸出HTML5。我沒有意識到<br>在HTML5中是有效的語法。我試圖讓這個通過W3C語義提取器,所以我需要<br />。爲了使它起作用,您需要更新Haml選項以進行autoclose並將其設置爲xhtml。將此代碼放入類中的application.rb中。

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

此處瞭解詳情:

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

+2

您實際上不需要調整':autoclose'列表。 Haml知道'
'應該默認被自動關閉。 – 2010-11-02 20:17:58

+0

@ nex3 - 答案更新,以反映這一點。感謝您的提示,並感謝您在haml和sass上的辛勤工作。令人敬畏的產品! – johnmcaliley 2010-11-02 20:36:13

2

但是,如果我想XHTML5(即HTML5與自動關閉),有沒有辦法做到這一點!我像其他許多用戶一樣,試圖覆蓋:autoclose列表,但它不起作用。

+0

我正在使用'%br  ' - 醜陋,重複,但是做這項工作。 – 2013-09-25 19:47:18

1

按照HAML文檔:

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

應該被放置在配置/ environment.rb中。

將它放在environment.rb中對我有用。