是否有更好的方法将多行缓冲文本输出到代码块?
pre: code.language-html
= '<div>\n'
= ' <p>Hello</p>\n'
= '</div>'这种格式不是很好,如果我不需要将/n放在每一行的末尾并将每一行用引号包装起来的话,我很乐意这样做。
有什么更好的方法来做到这一点呢?
发布于 2017-09-06 19:32:23
这在帕格(前玉器)中目前是不可能的,但是有一些解决办法。
首先,您的代码可以工作,但不能跨行拆分表达式:
pre: code.language-html
= new MyClass().render('<div>\n' // SYNTAX ERROR!!
= ' <p>Hello</p>\n'
= '</div>')因此,您可以将您的方法用于简单的单行表达式,但是对于多行函数、对象、数组等,这将失败。
或者,您可以使用非缓冲代码完成所有工作,然后在缓冲代码中引用它。
-
var output = new MyClass().render('<div>\n'
+ ' <p>Hello</p>\n'
+ '</div>')
-
let es6output = new MyClass().render(`
<div>
<p>Hello</p>
</div>
`) // if you want template literals
pre: code.language-html
= output // unescaped (converts `<` to `<`)
!= output // escaped您要寻找的特性显然是对Pug语法的一个很好的补充。事实上,已经产生了一个问题:https://github.com/pugjs/pug/issues/2371
https://stackoverflow.com/questions/44009003
复制相似问题