【问题标题】:Convert existing html.erb to Haml [closed]将现有的 html.erb 转换为 Haml [关闭]
【发布时间】:2011-01-15 14:36:13
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails haml erb


    【解决方案1】:

    您可以从命令行使用 html2haml

    html2haml your_erb_file new_haml_file
    

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

    【讨论】:

    • 根据latest html2haml source code,html2haml“正在从haml gem中提取。”
    • 现在是separate gem。看起来当前的构建也没有通过。
    • 我不太确定上述两个 cmets 的含义应该是什么。我决定试一试命令行html2haml,它似乎工作正常。
    【解决方案2】:

    【讨论】:

    • 如果我有 html 图片标签 html2haml 将其转换为 %img{:src => "abc.gif"} 有没有办法将其转换为 = image_tag "abc.gif" 来使用 Rails 助手?
    • 这不是一个“坏”的答案,但不应被接受为最佳答案。命令行工具(下)更好。
    • 请阅读帖子,他说他不想转换每个单独的文件。
    【解决方案3】:

    http://www.htmltohaml.com

    比所选答案更易于使用的替代方案。

    【讨论】:

    • 用户友好的小转换,但做一个完整的应用程序的巨大痛苦......
    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

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

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

      运行:rake haml:erb2haml

      【讨论】:

      • 如此简单,而且比拉另一个宝石 IMO 更好。
      【解决方案6】:

      非常简单

      在你的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

      【讨论】:

        【解决方案7】:

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

        rubygems 目前提供的 haml gem 中包含的 html2haml 版本不好。如果您现在要执行gem install haml,这就是您将获得的版本。使用 gem 提供的版本将导致无效的 haml,因为它无法正确处理 ruby​​。

        【讨论】:

        • 只是想补充一点,截至目前 (2011/7/21),haml gem 的 html2haml 有效。但是,您必须在haml 之上使用gem install hpricotgem install ruby_parser。如果您尝试进行 erb->haml 转换,它会提示您安装这些 gem。
        【解决方案8】:

        html2haml 现在在 html2haml gem 中,所以你可以使用:

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

        【讨论】:

        • 应用程序范围的答案是所需要的,而不是单个文件。没有人想输入单个文件。这仅比手动操作高出一步。应用程序范围的任务将处理单个文件。
        【解决方案9】:

        在这里玩游戏已经很晚了,但是当搜索类似的解决方案时,这篇文章在 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 行中的任何错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-12
          • 1970-01-01
          • 1970-01-01
          • 2014-06-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多