提问者:小点点

车把模板中的文字大括号


我遇到了困难,包括大括号{}在Handlebar模板中,这样它就不会干扰Handlebar语法。

具体来说,我想有一个这样的模板:

{{{sometag}}}

除了我希望第一个和最后一个大括号按字面意思呈现,而不是Handlebar的“非转义表达式”语法的一部分。

目前,我能想到的最短的可移植语法是{{#with "{"}}{{.}}{{/with}},因此我想要的模板如下所示:

{{#with "{"}}{{.}}{{/with}}{{sometag}}{{#with "}"}}{{.}}{{/with}}

我可以使用超文本标记语言实体(就像https://stackoverflow.com/a/16278085/3088208建议的那样),或者在初始{之后和最终}之前插入超文本标记语言注释,但是这些解决方案虽然实用,但依赖于超文本标记语言,这使得它们受到限制。

P. S.发现一个重复的问题:逃离站在车把表情旁边的卷曲括号


共2个答案

匿名用户

对于未来在这里着陆的任何人来说,这个解决方案对我有用渲染车把内的双卷括号部分

太长别读添加一个\到你的值例如\{{{无论什么}}}将呈现{{{无论什么}}

匿名用户

我也在寻找这个解决方案,但什么也找不到。所以我创建了助手

Handlebars.registerHelper('bracket', function(num, options = num) {
	const i = Number.isInteger(num) ? num : 1;
	const open = '{'.repeat(i);
	const close = '}'.repeat(i);
	return `${open}${options.fn(this)}${close}`;
});