2010-07-30 59 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%}

相關問題