11

我的许多视图都是 SLIM 模板,我希望将vote_form部分视图添加到我的应用程序中。如何将此部分视图从 ERB 转换为 SLIM?

<strong class="result">Votes: <%= voteable.votes_for - voteable.votes_against %></strong>
<%= form_tag user_votes_path(current_user) do |f| %>
  <%= radio_button_tag :thumb_direction, :up %>
  <%= radio_button_tag :thumb_direction, :down %>
  <%= hidden_field_tag :voteable, @voteable %>
  <%= submit_tag :vote %>
<% end %>

谢谢 :)

4

7 回答 7

28

如何将您的 .erb 转换为 .slim :

更新 (18-08-2015)

您可以简单地使用html2slim gem

gem install html2slim

这个软件包包括一个名为的工具erb2slim,它可以递归地将 erb 文件转换为 slim。转换完成后删除 erb 文件的选项-d

erb2slim -d <dir of your views>

在设计 wiki 上查看

原始答案

你必须通过HAML

在您的环境或 gemset 上安装HAML依赖项

gem install html2haml # This was moved out of haml gem
gem install ruby_parser

切换到HAML模板

find . -name '*erb' | \
xargs ruby -e 'ARGV.each { |i| puts "html2haml -r #{i} #{i.sub(/erb$/,"haml")}"}' | \
bash

安装SLIM工具依赖

gem install haml2slim # https://github.com/fredwu/haml2slim

切换到SLIM模板

find . -name '*haml' | \
xargs ruby -e 'ARGV.each { |i| puts "haml2slim #{i} #{i.sub(/haml$/,"slim")}"}' | \
bash

清理ERBHAML模板

find . -name '*erb' -exec rm -f {} \;
find . -name '*haml' -exec rm -f {} \;

删除依赖项

gem uninstall html2haml
gem uninstall ruby_parser
gem uninstall haml2slim

就这些,玩得开心

于 2013-01-24T16:26:35.683 回答
6

在这里,只需粘贴 erb 代码并点击“开始”:
http ://html2slim.herokuapp.com/

于 2013-11-24T02:49:53.113 回答
6

这是基于@Joel 的精彩回答。我不得不对其进行一些修改,因为一些宝石似乎已经移动,并且我进行了一些其他改进:

  • 这是一个脚本,所以只需复制粘贴
  • 最后不要删除 gem,因为我可能会在下一个项目中需要它(例如,当我创建设计的视图时)
  • gem install ...然后可以发出该部分以进行更快的处理。

转换文件

更新:不再需要通过 haml 进行转换。这是更新的脚本:

#### gem install html2slim # this will install `erb2slim` command line tool.
find . -name '*erb' | \
xargs ruby -e 'ARGV.each { |i| puts "erb2slim #{i} #{i.sub(/erb$/,"slim")}"}' | \
bash

# Clean ERB templates
find . -name '*erb' -exec rm -f {} \;
git add app/views/*
git commit -m "Replace erb with slim"

结果

在我的示例中(运行后rails g devise:views),所有.erb文件都被替换为.slim文件,然后被删除:

截屏

单个文件的替代方案

有时我只是想转换一个剪断。就像之前提到的那样。在这种情况下,我使用

https://html2slim.herokuapp.com

html2slim-in-action

旧方法

所以我们开始:

# You must pass through HAML !
# Install HAML dependencies on your environment or your gemset
gem install haml html2haml hpricot ruby_parser haml2slim

# Switch to HAML templating
find . -name '*erb' | \
xargs ruby -e 'ARGV.each { |i| puts "html2haml -r #{i} #{i.sub(/erb$/,"haml")}"}' | \
bash

#Switch to SLIM templating
find . -name '*haml' | \
xargs ruby -e 'ARGV.each { |i| puts "haml2slim #{i} #{i.sub(/haml$/,"slim")}"}' | \
bash

# Clean ERB and HAML templates
find . -name '*erb' -exec rm -f {} \;
find . -name '*haml' -exec rm -f {} \;
于 2014-09-27T09:25:41.530 回答
5

我喜欢事实上的答案,但我认为人们很想知道一种新的宝石,它可以更快、更轻松地做到这一点。但目前它相当有缺陷。:(

查看html2slim。假设我想将所有视图从 更改.erb.slim,然后我(从头开始,从您的 rails 根目录)运行以下命令:

gem install html2slim
erb2slim app/views --delete

如果您运行erb2slim -h,您可以看到-d/--delete是之后删除 erb 的选项,并--trace显示任何错误的完整回溯。作者的说明,它仍然是实验性的。

于 2014-07-06T23:28:47.533 回答
1

只需将文件重命名为以.html.slim代替结尾.html.erb,并将内容替换为以下内容:

strong.result= "Votes: #{voteable.votes_for - voteable.votes_against}"

= form_tag user_votes_path(current_user) do
  = radio_button_tag :thumb_direction, :up
  = radio_button_tag :thumb_direction, :down
  = hidden_field_tag :voteable, @voteable
  = submit_tag :vote
于 2012-05-16T18:53:21.477 回答
0

这个在线工具正是你想要的http://erb2slim.herokuapp.com就是将 erb 片段转换为 slim。

于 2015-04-22T23:31:03.310 回答
0

与之前的答案一样,我使用两个宝石:

 gem install html2haml haml2slim

然后:

 find app/views -name \*.erb -print | sed 'p;s/.erb$/.haml/' | xargs -n2 sh -c 'html2haml "$0" "$1" && rm "$0"'

替换*.erb为转换后的*.haml版本。

现在转换*.haml*.slim删除*.haml文件:

 haml2slim -d app/views

毕竟可选:

 gem uninstall html2haml haml2slim
于 2015-05-23T21:22:43.630 回答