我有一个 rails 项目,视图只包含 HTML.ERB 文件,我的客户想要将 ERB 转换为 HAML。我的视图文件太多。逐个文件转换需要大量时间。那么我可以将HTML转换为haml的任何简单方法吗?我在我的项目下安装了haml插件。
9 回答
您可以从命令行使用html2haml
html2haml your_erb_file new_haml_file
如果您想一次性转换所有文件,请查看这篇文章:http ://shifteleven.com/articles/2008/06/08/converting-erb-to-haml-snippet
所选答案的更用户友好的替代方案。
David Leung在 github 上提供了这个 gem ,它安装了两个 rake 任务。
使用 erb2haml,您可以使用rake haml:convert_erbs
或轻松将整个项目从 erb 转换为 haml rake haml:replace_erbs
。
在haml-rails git 页面上,它提供了 cli 命令来在您的项目中将所有 erb 转换为 haml。
添加gem "haml-rails"
到您的 Gemfile
跑:rake haml:erb2haml
非常简单
在你的Gemfile
添加
gem "erb2haml", :group => :development
然后运行bundle install
转换*.erb
为*.haml
保留原始文件:
rake haml:convert_erbs
对于转换*.erb
为*.haml
替换原始文件,请执行以下操作:
rake haml:replace_erbs
它将搜索erb
项目中的所有文件并转换为haml
.
速记:使用在线转换器
编辑: html2haml 确实像宣传的那样工作,但是您必须使用从 haml github 存储库的当前主分支获得的版本。
rubygems 目前提供的 haml gem 中包含的 html2haml 版本不好。如果您现在就这样做,这是您将获得的版本gem install haml
。使用 gem 提供的版本将导致无效的 haml,因为它无法正确处理 ruby。
html2haml 现在位于 html2haml gem 中,因此您可以使用:
$ gem install html2haml
$ html2haml path/to/yourfile.html path/to/yourfile.haml
这里的游戏已经很晚了,但是在搜索类似的解决方案时,这篇文章在谷歌中仍然很高。
安装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 行中的任何错误。