2010-11-02 47 views
9

Tôi gặp sự cố khi tải Haml để đóng thẻ br. Tôi đã thử những điều sau đây không có may mắn:thẻ br không đóng trong Haml trên Rails 3

%br 
%br/ 

Tôi hy vọng điều này dẫn đến <br />, nhưng nó luôn luôn kết quả đầu ra như <br>, ngay cả với các nhân vật dấu gạch chéo ở cuối dòng. Tôi cũng đã thử thêm các tùy chọn sau vào application.rb (và tôi đã thử environment.rb)

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

Tôi có thiếu gì đó không? Tôi mặc dù Haml được cho là tự động đóng các thẻ này theo mặc định?

Trả lời

10

Ok, tôi đã phát hiện ra sự cố. Haml xuất ra HTML5 theo mặc định khi sử dụng Rails 3. Tôi không nhận ra rằng <br> là cú pháp hợp lệ trong HTML5. Tôi đã cố gắng để có được điều này để vượt qua các W3C ngữ nghĩa vắt, vì vậy tôi cần <br /> thay thế. Để có được điều này để làm việc, bạn sẽ cần phải cập nhật các tùy chọn Haml cho autoclose và thiết lập nó thành xhtml. Thả mã này vào ứng dụng của bạn.rb bên trong lớp.

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

Thông tin thêm ở đây:

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

+2

Bạn không thực sự cần điều chỉnh danh sách ': autoclose'. Haml biết rằng '
' sẽ được tự động định vị theo mặc định. –

+0

@ nex3 - câu trả lời được cập nhật để phản ánh điều đó. cảm ơn cho tip, và cảm ơn cho công việc khó khăn của bạn trên haml và sass. Sản phẩm tuyệt vời! – johnmcaliley

2

Nhưng, nếu tôi muốn xhtml5 (ví dụ: html5 với Tự động đóng) không có cách nào để làm điều đó! Tôi, giống như nhiều người dùng khác, đã cố gắng ghi đè danh sách: autoclose và nó không hoạt động.

+0

Tôi đang sử dụng '% br  ' - Xấu xí, lặp đi lặp lại, nhưng thực hiện công việc. –

1

Theo các tài liệu Haml:

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

nên được đặt trong config/environment.rb.

Đặt trong môi trường.rb hoạt động cho tôi.

Các vấn đề liên quan