帕格多行缓冲文本

时间:2017-05-16 18:28:28

标签: html pug

有没有更好的方法将多行缓冲文本输出到代码块中?

pre: code.language-html
    = '<div>\n'
    = '    <p>Hello</p>\n'
    = '</div>'

格式化这个并不好,如果我不必在每一行的末尾放置/n并用引号括起每一行,我希望如此。

这样做的更好方法是什么?

1 个答案:

答案 0 :(得分:0)

目前无法在Pug (formerly Jade)中使用此功能,但有一些解决方法。

首先,你的代码可以工作,但你不能跨行破坏表达式:

pre: code.language-html
  = new MyClass().render('<div>\n'    // SYNTAX ERROR!!
  = '    <p>Hello</p>\n'
  = '</div>')

因此,您可以将方法用于简单的单行表达式,但对于多行函数,对象,数组等,这将失败。

或者,您可以在 unbuffered 代码中完成所有工作,然后在缓冲代码中引用它。

-
  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 `&lt;`)
  != output // escaped

您正在寻找的功能显然是Pug语法的一个很好的补充。实际上已经创建了一个问题:https://github.com/pugjs/pug/issues/2371