从 Handlebars 模板中删除 <br>

Removing <br> from Handlebars Template

我有一个模板,它是从 CMS 驱动的数据库中填充的。在 CMS 中,输入数据的人并不真正知道 HTML,他们只是说他们知道。因此,他们将输入一系列中断标记(请注意,这是不正确的),而不是仅仅将他们的内容包装在一个段落中。

然后我将所有这些导入到一个简洁的小模板中,并使用该数据填充数据标签以显示在按钮和其他内容上。

我看到一些 Handlebars Helpers 说他们做查找和替换,但我不知道如何在我的模板中编写语法以使用 grunt 编译它而不标记错误。这是我想使用的助手:

Handlebars.registerHelper('replace', function( find, replace, options) {
    var string = options.fn(this);
    return string.replace( find, replace );
});

现在这看起来很简单,但是除了 {{#replace}}

之外,没有关于如何在模板中实际扔掉隐藏的文档

我要查看的参数是 {{caption}},我正在寻找“
”的所有实例并将其替换为“”。

当我这样写存储时:{{#replace '<br>', ' ', caption}},但随后出现解析错误。

我不确定您是否愿意在这种情况下使用块助手。我认为以下常规助手会做:

Handlebars.registerHelper('replace', function (find, replace, context) {
    return context.replace(new RegExp(find, 'g'), replace);
});

请注意,我正在使用正则表达式,以便我们可以替换 find 文本的 所有 个实例。

然后您可以按以下方式在模板中使用此助手:

{{replace '<br>' ' ' caption}}