2
Jinja2形式のファイルが変数を代入しようとせずに整形式であることを検証するために使用できる良いプリコミットフックを見つけることに成功しませんでした。目標は、変数が利用可能かどうかにかかわらず、ファイルが整形式である場合は0のシェルコードを返します。そうでなければ1を返します。変数補間なしでJinja構文を検証する方法
Jinja2形式のファイルが変数を代入しようとせずに整形式であることを検証するために使用できる良いプリコミットフックを見つけることに成功しませんでした。目標は、変数が利用可能かどうかにかかわらず、ファイルが整形式である場合は0のシェルコードを返します。そうでなければ1を返します。変数補間なしでJinja構文を検証する方法
これはJinja自体で行うことができます。テンプレートを読み込んで解析するスクリプトを作成するだけで済みます。
あなただけケアについてよく形成されたテンプレートので、ない変数が使用可能かどうか、何をするかなり簡単なはず:
# filename: check_my_jinja.py
import sys
from jinja2 import Environment
env = Environment()
with open(sys.argv[1]) as template:
env.parse(template.read())
またはすべてのテンプレートを反復処理に何かを
# filename: check_my_jinja_recursive.py
import sys
import os
from jinja2 import Environment
env = Environment()
templates = [d + f for d, _, f in os.walk(mytemplates) if f.endswith('.jinja2')]
for template in templates:
with open(template) as t:
env.parse(t.read())
あなたは間違った構文を持っている場合は、あなたがTemplateSyntaxError
だからあなたprecommiを取得しますtフックのように見えるかもしれない
python check_my_jinja.py template.jinja2
python check_my_jinja_recursive.py /dir/templates_folder