1

我在房子周围走来走去,试图找到一种方法来实现一个简单的过滤器。

我想创建一些 Smarty“标签”的等价物以使移植更容易,特别是 {mail_to} http://www.smarty.net/manual/en/language.function.mailto.php

我似乎在 jinga2 文档 http://jinja.pocoo.org/2/documentation/extensions#module-jinja2.ext之间转圈

和 webhelpers http://pylonshq.com/docs/en/0.9.7/modules/templating/

我期望写的是类似

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

无法弄清楚如何将它们拼凑在一起,即 lib 的位置以及如何加载以供使用。

蒂亚

4

1 回答 1

1

编写你的扩展并将其放入 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 %}

于 2010-07-30T15:50:53.937 回答