我正在使用dust.js模板引擎。主模板包含一个部分,问题是dust.js修剪了包含的模板文件的每一行。
例如,主模板是:
<h1>{header}</h1>
{>dust_cnt /}
dust_cnt.dust是:
<div>
This is
the content
</div>
我通过以下方式呈现回复: res.render('dust_template.dust',{header:'TEST OK'});
输出中This is
和the content
之间没有空格的问题。所以输出看起来像:
TEST OK
This isthe content
我无法通过放置{~n} 或其他分隔符来更改所有内容,我认为没有任何理由这样做。
在http://linkedin.github.com/dustjs/上,我发现了以下评论GH- 166 - Added trimming of white spaces in dust templates configuration in the dust.compile ( default option is still true)
。但是找不到设置方法来设置选项以避免修剪?
如何使dust.js以我期望的方式呈现(使用空格)?
提前谢谢!
答案 0 :(得分:3)
好的,我找到了解决方案:)。在挖掘源代码+检查尘埃GitHub上的问题后,我决定使用以下内容来防止模板节点的格式化:
dust.optimizers.format = function(ctx, node) { return node };
(也在https://github.com/linkedin/dustjs/wiki/Dust-Tutorial#controlling-whitespace-suppression)
默认行为非常危险 - 正如它在GitHub上提到的那样,它可能会导致严重的问题,例如:
<script>
//this will alert "test"
alert("this is test");
</script>
将呈现为:
<script>//this will alert "test" alert("this is test");</script>
答案 1 :(得分:0)
这很奇怪,我知道您不想编辑模板文件。但是,您可以通过在行尾添加空格以较不丑的方式解决此问题:
<div>
This is < add space here
the content
</div>
就这种情况而言,你无法找到真正的解决方案。