2010-07-30 122 views
1

我在房子周围试图找到一种方法来实现一个简单的过滤器。如何创建jinja2过滤器并在挂架中使用它?

我想创造一些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的位置以及如何加载使用。

TIA

回答

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%}

相关问题