Фильтрация тегов с помощью шаблонизатора Rythm

Можно ли фильтровать теги в Rythm?

Я хочу разрешить определенные теги, такие как if и for, и запретить все остальные теги (особенно @{ }).


person Kamil    schedule 21.06.2015    source источник
comment
Исправлена ​​орфография, добавлены кодовые теги и ссылка на Ритм.   -  person MarsAtomic    schedule 22.06.2015


Ответы (1)


На данный момент нет механизма фильтрации. Однако Rythm предоставляет утилиту под названием Dialect, позволяющую автору шаблона использовать ограниченный набор директив Rythm. Например, SimpleRythm НЕ позволяет вам использовать следующие директивы:

"@extends",
"@section",
"@render",
"@inherited",
"@doLayout",
"@doBody",
"@include",
"@set",
"@get",
"@init",
"@finally",
"@nosim"

В то время как BasicRythm более ограничен, и вы не можете использовать ни одну из следующих директив:

"@args",
"@assign",
"@debug",
"@doLayout",
"@doBody",
"@extends",
"@section",
"@render",
"@inherited",
"@i18n",
"@import",
"@include",
"@invoke",
"@locale",
"@set",
"@get",
"@init",
"@finally",
"@expand",
"@exec",
"@macro",
"@compact",
"@nocompact",
"@def ",
"@tag ",
"@return",
"@nosim",
"@verbatim"

Чтобы использовать определенный диалект, вместо использования

String result = engine.render(...);

Используйте следующий код:

ITemplate template = engine.getTemplate(SimpleRythm.INSTANCE, ...);
String result = template.render();

На данный момент невозможно предотвратить @{...}. Чтобы запросить конфигурация для отключения сценариев в шаблоне Rythm

person Gelin Luo    schedule 21.06.2015