集成¶
Jinja 提供可以集成到其它工具中的一些代码,例如框架、Babel库或你喜欢的用于突出显示代码的编辑器。 下面是对这些内容的简要说明。
集成的帮助文件位于 这里。
Babel 集成¶
Jinja 支持通过称为jinja2.ext.babel_extract的Babel提取器入口点从模板提取 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。 安装后,可以使用两种文件类型(jinja
和htmljinja
)。 第一个用于基于文本的模板,第二个用于 HTML 模板。 对于 HTML 文档,该插件会尝试自动检测现有 HTML 文档内部的 Jinja 语法。