Mustache.js: 取消所有值

创建于 2012-08-14  ·  14评论  ·  资料来源: janl/mustache.js

是否可以添加一个选项来根本不进行任何 html 转义?

最有用的评论

我还没有测试过,但根据手册页:
All variables are HTML escaped by default. If you want to return unescaped HTML, use the triple mustache: {{{name}}}.
如果这不起作用,您可以使用一个函数,该函数仅返回未转义的输入。

所有14条评论

我还没有测试过,但根据手册页:
All variables are HTML escaped by default. If you want to return unescaped HTML, use the triple mustache: {{{name}}}.
如果这不起作用,您可以使用一个函数,该函数仅返回未转义的输入。

是的,这是当前的行为,但我对此的用例具有非常可靠的输入和许多特殊字符。

我指的是这部分:
If you want to return unescaped HTML, use the triple mustache: {{{name}}}.
所以如果你不想你的变量被转义,你应该使用三重胡须而不是双。
编辑:我已经对其进行了测试,并且在此实现中正确实现了这一点。

是的,想知道是否有更改默认行为的有用快捷方式。

过去一些实现支持反向转义编译指示(mustache.php v1.x,ruby v0.8ish)。 这基本上交换了{{ foo }}{{{ foo }}}的含义。 它对于非 html 使用很方便,比如 ini 文件,因为在这种情况下转义 html 实体没有意义,它为您节省了一堆额外的胡须。

但是,Mustache.php v2.x 不支持此编译指示。 我们选择了自定义的“转义”选项,允许用户传递备用转义回调。 传递function($text) { return $text; }将转义变为无操作。

嗯,这完全适合我的用例。 是否可以在 mustache.js 中执行此操作,如果可以,您将在哪里传递该函数?

是的,坚持 OWASP 指南是可以的,但在某些情况下一直逃避是没有用的。 此问题是否有任何预计完成时间?

在安装的解析器中交换{{{{{不是更容易吗?

目前我只是运行:

template.replace(/\{\{([^\}]*)\}\}/g, '{{{$1}}}');

在执行它之前在我的所有模板上,它确实有效。 有一个更内置的系统会很好。 我非常喜欢@bobthecow的建议,因为它可以让您在需要时逃避其他事情。 例如,如果你有一个类似 JSON 的格式而不是像你可能想要转义引号/逗号/冒号等的 XML。

@janl如果我想在两种情况下呈现相同的模板怎么办:第一个转义,第二个未转义?

@bobthecow我们可以轻松地在 mustache.js 中采用相同的方法,只需使用 Mustache.escapeHtml 的导出版本进行所有转义。 这将允许用户执行以下操作:

Mustache.escapeHtml = function (text) { return text; }

那会有用吗? 当然,如果您希望转义在后续调用中正常工作,您需要小心地重置函数的值,并且您将无法决定使用三重 stache 进行转义。

:+1:我挖了它。 据我所知,主要用例是完全禁用转义,因为它是一个非 HTML 文档。 我认为交换转义/noescape 没有多大用处(这就是为什么我什至没有在 Mustache.php v2 中实现它)。

是的,这肯定会满足我的用例,我可以设想其他一些人使用它说:

Mustache.escapeHtml = function (text) { return text.replace(/\"/g, '\\"'; }

转义字符串。 或者他们可能会实施白名单功能。 简而言之,它将解决我能想到的所有用例。

我还没有测试过,但根据手册页:
All variables are HTML escaped by default. If you want to return unescaped HTML, use the triple mustache: {{{name}}}.
如果这不起作用,您可以使用一个函数,该函数仅返回未转义的输入。

万分感谢!! 这有效。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

SmasherHell picture SmasherHell  ·  18评论

kuldeepdhaka picture kuldeepdhaka  ·  9评论

funston picture funston  ·  7评论

Immortalin picture Immortalin  ·  12评论

chlab picture chlab  ·  11评论