我有一些 Ruby 可以正确输出为 .rb 文件。但是,我想在 HAML 文件中包含等效代码,但无法正确输出。我试图以各种方式重新格式化它,但无法弄清楚,也无法在另一个问题中找到我正在寻找的东西。
我正在生成重复的 div 块,使用存储在数组数组中的元素。我想在 .row 下分组 3 个 .class 对象组。我必须做一堆这些,所以如果可能的话我想自动化这个。现在我可以在崇高的文本中运行 ruby 代码,然后将格式化的 HAML 复制并粘贴到我的 HAML 页面中......但似乎我应该能够在线完成!
这是Ruby代码:
gfys = [
[ #ROW 1
{"Title"=>"MOVE", "ID"=>"#gfy0a", "Desc"=>"Use either analog stick or directional buttons."},
{"Title"=>"SHOOT", "ID"=>"#gfy0b", "Desc"=>"Press any button; pull any trigger."},
{"Title"=>"PUSH", "ID"=>"#gfy0c", "Desc"=>"Projectiles displace the ball on impact."}
],
[ #ROW 2
{"Title"=>"AIM", "ID"=>"#gfy1a", "Desc"=>"Projectiles are triangular. Balls are circular."},
{"Title"=>"LAUNCH", "ID"=>"#gfy1b", "Desc"=>"Shoot while moving for faster projectiles."},
{"Title"=>"SCORE", "ID"=>"#gfy1c", "Desc"=>"Push a ball into the opposing goal to earn a point."}
]
]
gfys.each do |group|
puts "// ROW #{gfys.index(group)}"
puts ".row"
group.each do |gfy|
puts "\t.class
.class2
%h2
#{gfy["Title"]}
#{gfy["ID"]}.class
%p
#{gfy["Desc"]}"
end
end
这会正确输出到 HAML 代码:
// ROW 0
.row
.class
.class2
%h2
MOVE
#gfy0a.class
%p
Use either analog stick or directional buttons.
.class
.class2
%h2
SHOOT
#gfy0b.class
%p
Press any button; pull any trigger.
.class
.class2
%h2
PUSH
#gfy0c.class
%p
Projectiles displace the ball on impact.
// ROW 1
.row
.class
.class2
%h2
AIM
#gfy1a.class
%p
Projectiles are triangular. Balls are circular.
.class
.class2
%h2
LAUNCH
#gfy1b.class
%p
Shoot while moving for faster projectiles.
.class
.class2
%h2
SCORE
#gfy1c.class
%p
Push a ball into the opposing goal to earn a point.
现在,仅在 HAML 文件中的 :ruby 过滤器下运行代码对我不起作用。似乎将整个数组打印到页面中,然后其他所有内容都变得愚蠢。去掉 END 标签,并考虑到 HAML 试图“简化”代码的尝试是行不通的。在代码对我不起作用之前适当地放置 - 或 = 字符。
我知道我在数组中的格式使情况变得复杂,但是将数组折叠成一行也无济于事。
最后,如果这很重要,我会在将其上传到页面之前使用 Hammer.app 进行预编译。
我正在尝试疯狂吗?或者我错过了什么?我真的很感谢你的帮助!