如何在HAML中渲染变量并保留空格?

时间:2017-03-30 20:48:15

标签: html ruby haml

这就是我正在做的事情:

%pre
  =var

var的值为"foo\nbar"。我收到这个HTML:

<body>
  <pre>foo
  bar</pre>
</body>

显然,我期待:

<body>
  <pre>foo
bar</pre>
</body>

怎么办?

2 个答案:

答案 0 :(得分:1)

您必须将var放在%pre所在的同一行。所以它看起来像%pre= var

答案 1 :(得分:1)

如果您使用ugly mode,则不应该出现此问题。请注意,在(希望即将推出)Haml 5 there only is ugly mode中,这可能是未来的最佳选择。

这会产生:

<body>
<pre>foo
bar</pre>
</body>

对于当前版本,在非丑陋模式下,如果你想保留这样的空格,那么通常你会使用~,它会在结果上调用find_and_preserve。但是在这里你已经处于pre区块,因此不起作用(可以说这是一个错误,但是在Haml 5中删除了非丑陋的模式,我看不到任何修复它的好处)。

您可以直接使用preserve

%body
  %pre
    =preserve(var)

这会产生:

<body>
  <pre>foo&#x000A;bar</pre>
</body>

与渲染时所需的结果具有相同的效果。