String 如何在coffeescript中输出块文本,所有内容前面都有空格

String 如何在coffeescript中输出块文本,所有内容前面都有空格,string,coffeescript,String,Coffeescript,汇编成 redditFunny = """ TEST TEST """ console.log redditFunny 我只想按原样从以下位置输出: 块字符串可用于保存格式化或缩进敏感文本(或者,如果您不想转义引号和撇号)块开始的缩进级别在整个过程中都保持着,因此您可以使其与代码主体保持一致 我的。他们举的例子是,这个咖啡脚本: var redditFunny; redditFunny = "TEST TEST";

汇编成

redditFunny = """
                                     TEST TEST
"""
console.log redditFunny
我只想按原样从以下位置输出:

块字符串可用于保存格式化或缩进敏感文本(或者,如果您不想转义引号和撇号)块开始的缩进级别在整个过程中都保持着,因此您可以使其与代码主体保持一致

我的。他们举的例子是,这个咖啡脚本:

var redditFunny;

redditFunny = "TEST TEST";

console.log(redditFunny);
将成为以下JavaScript:

html = """
       <strong>
         cup of coffeescript
       </strong>
       """
s = """
\ this
 is indented
"""
请注意,
'\'
是一种复杂的编写
'
的方式,因为转义的空格就是一个空格

您还可以使用
\u0020
是空格的Unicode转义,并说:

s = "\ this\n is indented"
//   ^^      ^
以实现相同的输出

对我来说,这似乎有点狡猾和脆弱,但在块正则表达式中处理前导的
#
也是类似的事情,所以这应该是非常安全的

我可能会避免所有这些聪明的做法,编写一个小的缩进函数,在
'\n'
上拆分一个字符串,并将其与前导缩进粘贴在一起,这样我就可以说:

s = """
\u0020this
 is indented
"""

将块缩进11个空格。

是的,没有缩进检查就无法写入字符串,这看起来真的很愚蠢。在写这篇文章的时候,我无法让自己去写一个函数。我想这是唯一的办法:(
s = """
\u0020this
 is indented
"""
indent(some_string_with_newlines, '           ')