整合

jinja2提供了一些代码,用于集成到其他工具中,如框架、 Babel 库或您最喜欢的编辑器,用于特殊的代码突出显示。这是对所包含内容的简要描述。

有助于集成的文件可用 here.

Babel集成

Jinja支持通过 Babel 调用了提取程序入口点 jinja2.ext.babel_extract . Babel支持作为 i18n扩展 延伸。

从两者中提取的GetText消息 trans 标记和代码表达式。

为了从模板中提取getText消息,该项目在babel提取方法中需要一个jinja2部分。 mapping file

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

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

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

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

在 2.7 版更改: 在2.7之前,模板语法错误始终被忽略。这样做是因为许多人将非模板HTML文件放到模板文件夹中,它会随机失败。假设testsuites无论如何都会捕获模板中的语法错误。如果你不想这样做,你可以添加 silent=false 对设置和异常进行传播。

Pylons

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

模板引擎配置在 config/environment.py . jinja2的配置如下:

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

之后,您可以使用 render_jinja 函数来自 pylons.templating 模块。

另外,安装Pylons是个好主意。 c 对象进入严格模式。默认情况下,在 c 对象返回空字符串,而不是未定义的对象。要更改此代码,只需使用此代码段并将其添加到 config/environment.py ::

config['pylons.strict_c'] = True

TextMate

有一个 bundle for TextMate 它支持基于文本的模板以及HTML的jinja1和jinja2的语法突出显示。它还包含一些常用的代码片段。

vim

的语法插件 Vim 是可用的 from the jinja repository . 脚本支持jinja1和jinja2。安装后,有两种文件类型可用 (jinjahtmljinja )第一个用于基于文本的模板,第二个用于HTML模板。对于HTML文档,插件尝试自动检测现有HTML文档中的jinja语法。

如果您使用的插件管理器类似 Pathogenvim-jinja 用于在中安装的存储库 bundle/ 目录。