关于Ruby on Rails:将现有的html.erb转换为Haml

Convert existing html.erb to Haml

我有一个rails项目,视图仅包含HTML.ERB文件,我的客户希望将ERB转换为HAML。 我的视图文件太多。 逐个文件转换要花费大量时间。 这样我可以将HTML转换为haml的任何简单方法吗? 我在项目下安装了haml插件。


您可以从命令行使用html2haml

1
html2haml your_erb_file new_haml_file

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


你去了:http://html2haml.heroku.com/

编辑:移至https://html2haml.herokuapp.com/


http://www.htmltohaml.com

所选答案的更用户友好的替代方法。


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

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


在haml-rails git页面上,它提供了cli命令,可将项目中的所有erb都直接转换为haml。

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

运行:rake haml:erb2haml


很简单的

在您的Gemfile添加

1
gem"erb2haml", :group => :development

然后运行bundle install

*.erb转换为*.haml并保留原始文件的操作:

1
rake haml:convert_erbs

*.erb转换为*.haml替换原始文件的操作:

1
rake haml:replace_erbs

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

简而言之:使用在线转换器

http://www.htmltohaml.com


编辑:html2haml确实如广告所示工作,但是您必须使用从haml github仓库的当前主分支获得的版本。

rubygems当前提供的haml gem中包含的html2haml版本不好。如果您现在要执行gem install haml,则这是您将获得的版本。使用gem随附的版本会导致无效的haml,因为它无法正确处理红宝石。


在这里,游戏还很晚,但是当寻找类似的解决方案时,这篇文章在Google中仍然占据很高的位置。

安装html2haml gem,进入您的app / views目录并尝试一下:

1
2
3
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行中的所有错误。

  • 归功于此Ask Ubuntu帖子的重命名行

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

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