【发布时间】:2011-01-15 14:36:13
【问题描述】:
我有一个 rails 项目,视图只包含 HTML.ERB 文件,我的客户想要将 ERB 转换为 HAML。我的视图文件太多。逐个文件转换需要大量时间。那么我可以将HTML转换为haml的任何简单方法吗?我在我的项目下安装了haml插件。
【问题讨论】:
标签: ruby-on-rails haml erb
我有一个 rails 项目,视图只包含 HTML.ERB 文件,我的客户想要将 ERB 转换为 HAML。我的视图文件太多。逐个文件转换需要大量时间。那么我可以将HTML转换为haml的任何简单方法吗?我在我的项目下安装了haml插件。
【问题讨论】:
标签: ruby-on-rails haml erb
您可以从命令行使用 html2haml
html2haml your_erb_file new_haml_file
如果您想一次性转换所有文件,请查看这篇文章:http://shifteleven.com/articles/2008/06/08/converting-erb-to-haml-snippet
【讨论】:
html2haml,它似乎工作正常。
【讨论】:
比所选答案更易于使用的替代方案。
【讨论】:
David Leung 在 github 上提供了this gem,用于安装两个 rake 任务。
使用 erb2haml,您可以使用 rake haml:convert_erbs 或 rake haml:replace_erbs 轻松地将整个项目从 erb 转换为 haml。
【讨论】:
在haml-rails git page 上,它提供了 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 repoistory. 的当前主分支获得的版本
rubygems 目前提供的 haml gem 中包含的 html2haml 版本不好。如果您现在要执行gem install haml,这就是您将获得的版本。使用 gem 提供的版本将导致无效的 haml,因为它无法正确处理 ruby。
【讨论】:
gem install hpricot 和gem install ruby_parser。如果您尝试进行 erb->haml 转换,它会提示您安装这些 gem。
html2haml 现在在 html2haml gem 中,所以你可以使用:
$ gem install html2haml
$ html2haml path/to/yourfile.html path/to/yourfile.haml
【讨论】:
在这里玩游戏已经很晚了,但是当搜索类似的解决方案时,这篇文章在 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 行中的任何错误。
【讨论】: