Javascript dust.js包括不带修剪的部分

Javascript dust.js包括不带修剪的部分,javascript,node.js,dust.js,Javascript,Node.js,Dust.js,我正在使用dust.js模板引擎。主模板包含一个部分,问题是dust.js会修剪包含的模板文件的每一行 例如,主模板是: <h1>{header}</h1> {>dust_cnt /} 我不能通过放置{~n}或其他分隔符来更改所有内容,我认为没有任何理由这样做 在上,我发现了以下注释GH-166-在dust.compile中添加了dust模板配置中的空白修剪(默认选项仍然为true)。但是找不到设置选项以避免修剪的方法 如何使dust.js以我期望的方式呈现它(使

我正在使用dust.js模板引擎。主模板包含一个部分,问题是dust.js会修剪包含的模板文件的每一行

例如,主模板是:

<h1>{header}</h1>
{>dust_cnt /}
我不能通过放置{~n}或其他分隔符来更改所有内容,我认为没有任何理由这样做

在上,我发现了以下注释
GH-166-在dust.compile中添加了dust模板配置中的空白修剪(默认选项仍然为true)
。但是找不到设置选项以避免修剪的方法

如何使dust.js以我期望的方式呈现它(使用空格)


提前谢谢你

这很奇怪,我知道您不想编辑模板文件。但是,您可以通过在行尾添加一个空格,以一种不那么难看的方式解决此问题:

<div>
  This is < add space here
  the content
</div>

这是
如果你找不到解决这个问题的真正办法。

好的,我找到了解决办法:)。在深入研究源代码并检查dust的GitHub上的问题后,我决定使用以下方法来防止模板节点的格式化:

dust.optimizers.format = function(ctx, node) { return node };
(另请参阅)

默认行为非常危险-正如GitHub上提到的,它可能会导致严重问题,例如:

<script>
//this will alert "test"
alert("this is test");
</script>

//这将提醒“测试”
警报(“这是测试”);
将呈现为:

<script>//this will alert "test" alert("this is test");</script>
//这将发出“测试”警报(“这是测试”);

这里是第166期:您可以看到,
编译
的第三个新参数是
strip
,您可以传递
false
,正如我之前说过的,我无法更改每个内容模板的每一行,但感谢您的努力。添加额外空间作为解决方案需要注意的一点是,某些编辑器可能会在保存时打开一个选项来修剪所有尾随空格,这将对依赖尾随空格的任何文件造成破坏。哇,难以置信的默认行为。谢谢你的侦探工作。如果这没有影响到很多人,我会很惊讶。
<script>
//this will alert "test"
alert("this is test");
</script>
<script>//this will alert "test" alert("this is test");</script>