如何在苗条变量中使用换行符?

时间:2015-10-27 15:33:32

标签: ruby slim-lang

我在苗条

中有这个变量
- foo = 'my \n desired multiline <br/> string'
#{foo}

当我使用 slimrb命令行命令解析输出时,变量的内容被编码:

my \n desired multiline &lt;br/&gt; string

如何让slimrb输出原始内容以生成多行字符串?

请注意,.html_safe.raw都不可用。

2 个答案:

答案 0 :(得分:4)

这里有两个问题。首先使用单引号的Ruby字符串 - ' - 不要将\n转换为换行符,它们仍然是文字\n。你需要使用双引号。这也适用于Slim。

第二,Slim HTML escapes the result of interpolation by default。为避免这种情况,请在代码周围使用双括号。默认情况下为Slim also HTML escapes Ruby output(使用=)。在这种情况下避免逃避use double equals (==)

将这两者结合起来,您的代码将类似于:

- foo = "my \n desired multiline <br/> string"
td #{{foo}}

这会产生:

<td>my
 desired multiline <br/> string</td>

答案 1 :(得分:0)

一种更简单的方法是将行号用作逐字记录文本|。文档here。例如;

p
 | This line is on the left margin.
   This line will have one space in front of it.