Как мне вставить новый язык шаблонов в repoze.bfg? - PullRequest
0 голосов
/ 18 декабря 2009

Что мне нужно реализовать, чтобы добавить новый язык шаблонов в repoze.bfg? Будет ли фреймворк отправлять моим плагином абсолютные пути или относительные пути пакетов, или оба в зависимости?

1 Ответ

2 голосов
/ 18 декабря 2009

Пакет на http://svn.repoze.org/repoze.bfg.jinja2/trunk/repoze/bfg/jinja2/ предоставляет дополнительные привязки Jinja2 для BFG. По сути, вы создаете такой пакет, а затем разрешаете людям подключать его к своим системам.

Существует два уровня интеграции. Первая - это просто интеграция на уровне импорта, которая позволит людям делать что-то вроде:

из my.template.system import render_template_to_response

def aview (запрос): return render_template_to_response ('some /lative / path.myt')

Подстановка методов render_template * в repoze.bfg.jina2, замена их аналогами для вашей любимой системы шаблонов даст вам это.

Другой уровень интеграции - позволить вашей системе шаблонов использоваться в качестве «рендерера». Это разрешает, например:

@ bfg_view (визуализатор = "некоторые / родственник / path.myt") def aview (запрос): return {'a': 1}

Для этого выполните функцию «renderer_factory» в repoze.bfg.jinja2, а затем попросите людей добавить этот рендерер в свою конфигурацию через «config.add_renderer (renderer_factory, '.myt')» (обязательно) или с помощью включая файл ZCML, который вы отправляете вместе с пакетом, в свой ZCML.

...