HAML模板助手中的多行字符串

时间:2012-05-31 09:05:16

标签: ruby haml

我希望能够将多行字符串传递给haml助手。

我有一个函数format_code,它接受一个字符串和一组要突出显示的行号。

此功能的目的是将原始源转换为格式化的HTML,突出显示的行,行号,转换为brs的换行符等。

如果我这样称呼它:

%p Some HAMl

=format_code("def something
  a = b
  b = c
end", :highlight_line => 2)

%p Some more HAML

这样做的原因是将代码示例嵌入到HAML文档中。

HAML抱怨用纯文本嵌套。嵌套发生在一个字符串中,所以我假设这没关系。同样的呼叫在irb中工作正常。

我会使用帮助器,但我希望能够传递参数哈希。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我想你想把代码示例硬编码到HAML模板中,所以你真的想要我的直接反应是:“你不想要这个”。在那种情况下,我可能会选择:

:ruby
  code = <<-CODE
    def something
      a = b
      b = c
    end
  CODE

%p Some HAMl

=format_code(code, :highlight_line => 2)

%p Some more HAML

答案 1 :(得分:0)

我尝试了不同的变体,我认为最简单的变体如下(代码直接来自你的):

%p Some HAMl

=format_code("def something\t  a = b\t  b = c\tend", :highlight_line => 2)

%p Some more HAML

这至少应该是多行的问题......