作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我没有成功找到一个好的预提交钩子(Hook),我可以用它来验证 Jinja2 格式的文件是否格式正确,而无需尝试替换变量。目标是,如果文件格式正确,不考虑变量是否可用,则返回 shell 代码为零,否则返回 1。
最佳答案
您可以在 Jinja 本身中执行此操作,您只需要编写一个脚本来读取和解析模板。
既然你仅限 关心格式正确的模板,而不是变量是否可用,这应该很容易做到:
#!/usr/bin/env python
# filename: check_my_jinja.py
import sys
from jinja2 import Environment
env = Environment()
with open(sys.argv[1]) as template:
env.parse(template.read())
#!/usr/bin/env python
# filename: check_my_jinja_recursive.py
import sys
import os
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('./mytemplates'))
templates = [x for x in env.list_templates() if x.endswith('.jinja2')]
for template in templates:
t = env.get_template(template)
env.parse(t)
TemplateSyntaxError
python check_my_jinja.py template.jinja2
python check_my_jinja_recursive.py /dir/templates_folder
关于validation - 如何在没有变量插值的情况下验证 Jinja 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37939131/
我是一名优秀的程序员,十分优秀!