Jinja2 提供了一些代碼來繼承到其它工具,諸如框架、 Babel 庫或你偏好的編輯器 的奇特的代碼高亮。這里是包含的這些的簡要介紹。
幫助繼承的文件在 這里 可 用。
Jinja 提供了用 Babel 抽取器從模板中抽取 gettext 消息的支持,抽取器的接入點 名為 jinja2.ext.babel_extract 。 Babel 支持的被作為 i18n 擴(kuò)展 的 一部分實現(xiàn)。
Gettext 消息從 trans 標(biāo)簽和代碼表達(dá)式中抽取。
要從模板中抽取 gettext 消息,項目需要在它的 Babel 抽取方法 [mapping file][3] 中 有一個 Jinja2 節(jié):
[jinja2: **/templates/**.html]
encoding = utf-8
Environment 的語法相關(guān)選項也可作為 mapping file 的配置值。例如告知 抽取器模板使用 % 作為 line_statement_prefix 你可以這樣寫:
[jinja2: **/templates/**.html]
encoding = utf-8
line_statement_prefix = %
擴(kuò)展可能也被定義為傳遞一個逗號分割的導(dǎo)入路徑列表作為 extensions 值。 i18n 擴(kuò)展會被自動添加。
Changed in version 2.7: 直到 2.7 模板語法錯誤始終被忽略。因為許多人在模板文件夾中放置非模板的 html 文件,而這會隨機(jī)報錯,所以如此設(shè)定。假定是無論如何測試套件會捕獲 模板中的語法錯誤。如果你不想要這個行為,你可以在設(shè)置中添加 slient=flase ,異常會被傳播。
從 Pylons 0.9.7 開始,集成 Jinja 到 Pylons 驅(qū)動的應(yīng)用令人難以置信的簡單。
模板引擎在 config/environment.py 中配置。為 Jinja2 的配置看起來是這樣:
from jinja2 import Environment, PackageLoader
config['pylons.app_globals'].jinja_env = Environment(
loader=PackageLoader('yourapplication', 'templates')
)
之后,你可以用 pylons.templating 模塊中的 render_jinja 函數(shù)渲染 Jinja 模板。
此外,設(shè)置 Pylons 的 c 對象為嚴(yán)格模式是個好主意。按照默認(rèn),訪問任何 c 對象 上不存在的屬性會返回一個空字符串而不是一個未定義對象。更改這個,只需要使用這個 片段并添加到你的 config/environment.py 中:
config['pylons.strict_c'] = True
在 Jinja2 項目根目錄的 ext 文件夾中,有一個 TextMate 的 bundle 來提供 Jinja1 和 Jinja2 的基于文本的模板的語法高亮,同樣也支持 HTML 。它也包含了一些常用的片 段。
同樣,在 Jinja2 項目的根目錄下的 ext 文件夾中的 Vim-scripts 目錄有一個 Vim的語法插件。 這個腳本 支持 Jinja1 和 Jinja2 。安裝后, jinja 和 htmljinja 兩種文件類型可用。前者 給基于文本的模板,后者給 HTML 模板。
把這些文件復(fù)制到你的 syntax 文件夾。