Как использовать HTML-фильтр в аргументах макроса в Template Toolkit?

У меня есть что-то вроде этого: [% query | html %]

Теперь я хотел бы использовать его как

[% MACRO l(text, args) BLOCK; c.localize(text, args); END; %] 
[% l('text:<b>[_1]</b> no:[_2]', [query | html,2]) %]

Если вы попробуете этот пример, он не будет работать, потому что | не может быть использован там. Это не принимается Template Toolkit. Я хочу HTML-побег query, Как я могу это сделать?

Двигаться <b> выход из кавычек не является решением, потому что перевод не может иметь тот же порядок, что и выше.

1 ответ

Решение

Вы можете [% USE HTML %] и экранировать определенный параметр, например:

[% USE HTML %]
[%# your code above %]
[% l('text:<b>[_1]</b> no:[_2]',  HTML.escape(query), 2) %]
Другие вопросы по тегам