[英]What is the shortest way to write multiline escaped HTML in Pug?
我正在尝试在 Pug 中 output 一些 HTML 代码列表,但标签符号转换为 HTML 实体(< 到 & lt; | > 到 & gt; 等) 到目前为止,我已经通过使用这样的字符串插值来实现这一点
pre
code.
#{'<li><a href="#">Anchor tag text</a></li>'}
#{'<li><a href="#">Anchor tag text</a></li>'}
另一个例子:
pre
code.
#{'<body>'}
#{'<div class="divclass">'}
#{'<h1 class="class1 class2 class3" id="id1">Heading</h1>'}
#{'<p class="class2 class3 class1" id="id2">Para1</p>'}
#{'</div>'}
#{'</body>'}
有没有更快或更简单的方法来实现相同的结果? 提前谢谢。
一种更简单的方法是将标记存储在变量中,就像使用模板文字一样,然后插入变量:
-
const markup =
`<body>
<div class="divclass">
<h1 class="class1 class2 class3" id="id1">Heading</h1>
<p class="class2 class3 class1" id="id2">Para1</p>
</div>
</body>`
pre
code #{markup}
@Sean 首先感谢您的回答。 我发现你的方法有点令人厌烦(更不用说我必须跟踪变量名称,不断进行更改,并且在以前的变量之间添加代码列表)所以我最终将代码合并到模板文字中但是在 mixin 参数中,如下所示:
mixin htmlCode(codeBlock)
pre.html-icon: code= codeBlock
+htmlCode(
`<body>
<div class="divclass">
<h1 class="class1 class2 class3" id="id1">Heading</h1>
<p class="class2 class3 class1" id="id2">Para1</p>
</div>
</body>`)
我还尝试让 mixin 不带参数,并将 mixin 块用于内容,但它需要插值。 我找不到该版本的解决方案。
//doesn't work as is. It again needs string interpolation on every line
mixin htmlCode
pre.html-icon: code: block
+htmlCode.
<body>
<div class="divclass">
<h1 class="class1 class2 class3" id="id1">Heading</h1>
<p class="class2 class3 class1" id="id2">Para1</p>
</div>
</body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.