我正在制作一个Flask应用程序,用于HTML模板的本地开发(在Mac上),最终将通过ASP.NET提供。
出于本地开发的目的,我想要一种方法用一些数据替换.NET风格的标记的内容,这意味着除了标准的标记之外,Jinja2还需要能够识别%% ... %%
标记。 :{{ ... }}
,<% ... %>
等
我在网上找到的所有内容都与现有标记中包含一些新功能有关(例如{{ my_custom_function | arg1 arg2 }}
)
但是如何完全定义标签的新模式呢?有人做过这个吗?它是否需要修改Jinja2核心?
答案 0 :(得分:6)
据我所知,您可以为block_start_string
和block_end_string
使用一套,为variable_start_string
和variable_end_string
使用一套。
来自jinja2 / environment.py
`block_start_string`
The string marking the begin of a block. Defaults to ``'{%'``.
`block_end_string`
The string marking the end of a block. Defaults to ``'%}'``.
`variable_start_string`
The string marking the begin of a print statement.
Defaults to ``'{{'``.
`variable_end_string`
The string marking the end of a print statement. Defaults to
``'}}'``.
您可以使用环境变量覆盖这些。虽然,我认为没有办法让多种类型得到认可。例如,你不能让{{
和<%
都可以工作,但是当然你可以做一些小问题。