1

我有一些 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 进行预编译。

我正在尝试疯狂吗?或者我错过了什么?我真的很感谢你的帮助!

4

0 回答 0