Буквальные скобки в шаблоне Handlebars - PullRequest
0 голосов
/ 07 марта 2019

У меня проблемы с включением фигурных скобок { } в шаблон Handlebars, чтобы он не мешал синтаксису Handlebars.

В частности, я хочу иметь такой шаблон:

{{{sometag}}}

За исключением того, что я хочу, чтобы первая и последняя фигурные скобки отображались буквально, а не являлись частью синтаксиса Handlebar «не экранированное выражение».

На данный момент самый короткий переносимый синтаксисЯ мог бы придумать это {{#with "{"}}{{.}}{{/with}}, чтобы шаблон, который мне нужен, выглядел так:

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

Я мог бы использовать HTML-сущности (как предлагает https://stackoverflow.com/a/16278085/3088208) или вставить HTMLкомментируйте после начального { и до окончательного }, но эти решения, хотя и практичные, зависят от HTML, что делает их ограниченными.

PS Найден повторяющийся вопрос: Выходящие фигурные скобки стоят рядомк выражению в руле

1 Ответ

0 голосов
/ 15 марта 2019

Я тоже искал это решение и не смог ничего найти.Итак, я создал помощник

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}`;
});

Вы можете использовать его как

{{#bracket 2}}styles.{{name}}{{/bracket}}

, это даст

{{styles.Name}}

Если число скобок не было указано, оно будетбыть одним.

...