如何像Jade一样创建自定义HAML“Mixins”

时间:2014-12-07 07:57:49

标签: controller haml pug helper

我是HAML和Ruby的新手。我之前使用过Jade来编译HTML文件,而我正试图找到一种模仿Jade在HAML中的mixin功能的方法。我认为帮手或控制器是要走的路,但我不知道如何让他们工作。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:1)

有部分,

_my_partial.html.haml

#my_mixin.myclass(style="background:#{background}" )
  %hr
  %h2= text
  %p= text1

然后在视图中

= render _my_partial, :background =>'img.png', :text => 'Lorem', :text1 => 'Ipsum...'
= render _my_partial, :background =>'img1.png', :text => 'Lorem2', :text1 => 'Ipsum3...'

答案 1 :(得分:0)

没有内置方法。不幸的是,Haml目前尚未包括实现该目标的方法。

您能获得的最接近的结果是使用主机编程语言定义一个函数或重用部分函数(请参见DFOXpro的答案)。

您可能会发现Haml帮助器capture_haml(*args){ |args| ... }很有帮助:

捕获一个Haml代码块的结果,摆脱多余的缩进,然后将其作为字符串返回。例如,在执行以下操作之后,

.foo
  - foo = capture_haml(13) do |a|
    %p= a

将本地变量foo分配给"<p>13</p>\n"