将现有的html.erb转换为Haml

时间:2010-02-11 06:33:15

标签: ruby-on-rails haml erb

我有一个rails项目,视图只包含HTML.ERB文件,我的客户端想要将ERB转换为HAML。我的文件太多了。这需要花费大量时间来逐个文件转换。那么我可以将HTML转换成haml的简单方法吗?我在我的项目下安装了haml插件。

9 个答案:

答案 0 :(得分:98)

您可以在命令行中使用 html2haml

html2haml your_erb_file new_haml_file

如果您想一次转换所有文件,请查看以下文章:http://shifteleven.com/articles/2008/06/08/converting-erb-to-haml-snippet

答案 1 :(得分:26)

答案 2 :(得分:16)

http://www.htmltohaml.com

对所选答案的一种更加用户友好的替代方案。

答案 3 :(得分:13)

David Leung在github上提供this gem,安装两个rake任务。

使用erb2haml,您可以使用rake haml:convert_erbsrake haml:replace_erbs轻松地将整个项目从erb转换为haml。

答案 4 :(得分:10)

haml-rails git page上,它提供了cli命令,可以在项目中将所有erb转换为haml。

gem "haml-rails"添加到您的Gemfile

运行:rake haml:erb2haml

答案 5 :(得分:9)

非常简单

Gemfile添加

gem "erb2haml", :group => :development

然后运行bundle install

用于保存原始文件的*.erb转换为*.haml

rake haml:convert_erbs

用于将*.erb转换为*.haml替换原始文件:

rake haml:replace_erbs

它会搜索项目中的所有erb个文件并转换为haml

简写:使用在线转换器

http://www.htmltohaml.com

答案 6 :(得分:4)

编辑:html2haml确实像宣传的那样工作,但你必须使用从haml github repoistory.的当前主分支获得的版本

目前可从rubygems获得的haml gem附带的html2haml版本并不好。如果您现在要gem install haml,那么这是您将获得的版本。使用gem提供的版本将导致haml无效,因为它无法正确处理ruby。

答案 7 :(得分:1)

html2haml现在位于html2haml gem中,因此您可以使用:

$ gem install html2haml
$ html2haml path/to/yourfile.html path/to/yourfile.haml

答案 8 :(得分:1)

这里的游戏很晚,但是在搜索类似的解决方案时,这篇文章在Google中仍然很高。

安装html2haml gem,弹出到你的app / views目录中,试试看:

find ./ -name '*.erb' -exec html2haml -e {} {}.haml \;
find ./ -name "*.erb.haml" -exec sh -c 'mv "$1" "${1%.erb.haml}.haml"' _ {} \;
find ./ -name '*.erb' -exec rm {} \;

此解决方案的缺陷是它不会将旧的.erb文件的修订历史记录保留到新的.haml文件中。但有时那些视图文件的修订历史并不重要,这个解决方案对我很有帮助。

另外,在删除旧的.erb文件之前,请务必留意html2haml行中的任何错误。