Как мне создать фильтр jinja2 и использовать его в пилонах? - PullRequest
1 голос
/ 30 июля 2010

Я хожу по домам, пытаясь найти способ реализовать простой фильтр.

Я хочу создать эквивалент некоторых «тегов» Smarty, чтобы упростить перенос, в частности {mail_to} http://www.smarty.net/manual/en/language.function.mailto.php

Кажется, я иду по кругу между документами jinga2 http://jinja.pocoo.org/2/documentation/extensions#module-jinja2.ext

и веб-помощниками http://pylonshq.com/docs/en/0.9.7/modules/templating/

То, что я ожидаю написать, похоже на

{% mail_to user=c.user.email encode='hex' %}

Не могу понять, как собрать все это вместе, то есть местоположение lib и как загрузить для использования.

tia

1 Ответ

1 голос
/ 30 июля 2010

Напишите ваше расширение и поместите его в lib / extensions.py

Чтобы загрузить ваше расширение в среду, выполните в config / environment.py:

from MYAPP.lib import extensions

config['pylons.app_globals'].jinja2_env = Environment(loader=ChoiceLoader(
            [FileSystemLoader(path) for path in paths['templates']]),
             extensions=[extensions.YOU_EXTENSION_MAIL_TO_CLASS]))

# If you extension use some options, you can init it 
config['pylons.app_globals'].jinja2_env.mail_to_smtp_host = 'some_host'

После того, как в ваших шаблонах просто позвоните {% mail_to arg1, arg2%}

...