我想将一些haml(* .html.haml文件)转换为xhtml。 haml命令显示“Usage:haml [options] [INPUT] [OUTPUT]”。所以我尝试了以下回复:
Exception on line 1: undefined method `content_for' for #<Object:0xb730af2c>
我注意到有不同的格式都被称为haml。我注意到了一个使用尖括号的人。我需要某种预处理吗?
以下是我要转换的示例html.haml文件:
- content_for :head do
= stylesheet_link_tag 'jquery.autocomplete'
= javascript_include_tag 'jquery.autocomplete'
- javascript_behaviour '$("input#user_full_name").autocomplete("project_roles/auto_complete_for_user_full_name")'
注意:我知道如何谷歌,所以我正在寻找具体的建议。
答案 0 :(得分:1)
你正在使用rails helper,content_for,所以当你使用命令行程序调用haml时,它不知道它代表什么。 因此,要么将haml gem添加到gemfile中,并将模板保存在.html.haml模板中,请尝试渲染它,或者将rails_for替换为rails生成的html结果。
答案 1 :(得分:0)
你想要的是将Haml转换为Erb--一种看起来像HTML的Ruby模板语言。 Haml不这样做,所以它试图将你的haml模板渲染到xhtml而不是将其转换为另一个模板。
您可以使用haml2erb gem进行转换。它会是这样的:
Dir["**/*.haml"].each do |filename|
File.open(filename.gsub(/haml$/, 'erb'),'w') do |f|
f.puts Haml2Erb.convert( File.read(filename) )
end
end