我想创建第二个Jinja环境来生成LaTeX文档。 This snippet使用Flask.create_jinja_environment
,但我想使用自定义加载器:FileSystemLoader('/path/to/latex/templates')
。如何创建类似代码段的env,但使用我的自定义加载程序?
LATEX_SUBS = ( (re.compile(r'\\'), r'\\textbackslash'), (re.compile(r'([{}_#%&$])'), r'\\\1'), (re.compile(r'~'), r'\~{}'), (re.compile(r'\^'), r'\^{}'), (re.compile(r'"'), r"''"), (re.compile(r'\.\.\.+'), r'\\ldots'), ) def escape_tex(value): newval = value for pattern, replacement in LATEX_SUBS: newval = pattern.sub(replacement, newval) return newval texenv = app.create_jinja_environment() texenv.block_start_string = '((*' texenv.block_end_string = '*))' texenv.variable_start_string = '(((' texenv.variable_end_string = ')))' texenv.comment_start_string = '((=' texenv.comment_end_string = '=))' texenv.filters['escape_tex'] = escape_tex
答案 0 :(得分:0)
该代码段使用create_jinja_environment
,以便从应用模板所在的位置加载模板。这很可能是您想要的,只需使用LaTeX模板在应用程序的模板文件夹中创建一个目录。
你仍然可以使用create_jinja_environment
,只需更换加载器,就像代码片段替换env上的其他属性一样。
texenv = app.create_jinja_environment()
texenv.loader = FileSystemLoader('/path/to/latex/templates')