javascript - dust.js 包含部分内容而不进行 trim

标签 javascript node.js dust.js

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

例如,主模板是:

<h1>{header}</h1>
{>dust_cnt /}

dust_cnt.dust 是:

<div>
  This is
  the content
</div>

我通过以下方式呈现响应: res.render('dust_template.dust', {header: '测试正常'});

输出中This isthe content之间没有空格的问题。所以输出看起来像:

TEST OK

This isthe content

我无法通过放置 {~n} 或其他分隔符来更改所有内容,并且我认为没有任何理由这样做。

关于http://linkedin.github.com/dustjs/我发现以下注释GH-166 -在dust.compile中添加了灰尘模板配置中的空白 trim (默认选项仍然为true)。但找不到设置选项以避免 trim 的方法?

我怎样才能让dust.js按照我期望的方式渲染它(带有空格)?

提前谢谢您!

最佳答案

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

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>

关于javascript - dust.js 包含部分内容而不进行 trim ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15769861/

相关文章:

node.js - Linux Node 模块版本不匹配

node.js - 将 Dust.js 与 Visual Studio 的 Node.js 工具结合使用

javascript - 将所有信息和标签从 div 传输到 CKEditor

javascript - 无法使用post请求nodejs重定向

Javascript - 单击时阻止 JS 链接滚动回顶部?

dust.js - DustJs 中的函数调用和检查结果

javascript - DustJS无限嵌套

javascript - HighCharts Linechart MySQL/PHP 多行数据

javascript - Mongoose 从集合中获取所有键值并将其放入数组中

javascript - 如何设置 React Native 中固定的菜单大小?