集成

Jinja 提供可以集成到其它工具中的一些代码,例如框架、Babel库或你喜欢的用于突出显示代码的编辑器。 下面是对这些内容的简要说明。

集成的帮助文件位于 这里。

Babel 集成

Jinja 支持通过称为jinja2.ext.babel_extractBabel提取器入口点从模板提取 gettext 消息。 对 Babel 的支持是作为i18n 扩展的一部分实现的。

trans标记和代码表达式中提取 gettext 消息。

要从模板中提取 gettext 消息,该项目的 Babel 提取方法映射文件中需要一个Jinja 部分:

[jinja2: **/templates/**.html]
encoding = utf-8

Environment的语法相关选项也可作为映射文件中的配置值提供。 例如,告诉提取模板模板将用作line_statement_prefix,你可以使用以下代码:

[jinja2: **/templates/**.html]
encoding = utf-8
line_statement_prefix = %

Extensions也可以通过将逗号分隔的导入路径列表作为extensions 值来定义。 将自动添加 i18n 扩展名。

更改日志

在版本 2.7 中更改: 直到 2.7 模板语法错误始终被忽略。 这样做,因为许多人将非模板 html 文件放入模板文件夹,它会随机失败。 假设测试套件无论如何都会捕获模板中的语法错误。 如果不希望该行为,则可以向设置添加silent=false并传播异常。

Pylons

Pylons 0.9.7开始,将 Jinja 集成到 Pylons 驱动的应用程序中非常容易。

模板引擎在config/environment.py中配置。 Jinja 的配置如下所示:

from jinja2 import Environment, PackageLoader
config['pylons.app_globals'].jinja_env = Environment(
    loader=PackageLoader('yourapplication', 'templates')
)

之后,你可以使用pylons.temping 模块中的render_jinja 函数来渲染Jinja 模板。

此外,最好将 Pylons 的c 对象设置为严格模式。 默认情况下,c对象上所有不存在的属性都将返回空字符串,而不是未定义的对象。 要更改此设置,只需使用以下代码段并将其添加到你的config/environment.py 中:

config['pylons.strict_c'] = True

TextMate

有一个TextMate捆绑包,它支持针对基于文本和 HTML 模板的Jinja 1和Jinja 2的语法突出显示。 它还包含一些经常使用的代码段。

Vim

Vim的语法插件可从jinja存储库获得。 该脚本支持Jinja 1 和Jinja 2。 安装后,可以使用两种文件类型(jinjahtmljinja)。 第一个用于基于文本的模板,第二个用于 HTML 模板。 对于 HTML 文档,该插件会尝试自动检测现有 HTML 文档内部的 Jinja 语法。

如果你正在使用Pathogen之类的插件管理器,请参见vim-jinja存储库以在bundle/目录中进行安装。