Мне не удалось найти хороший крюк прекоммита, который я могу использовать для проверки того, что форматированный файл Jinja2 хорошо сформирован, не пытаясь заменить переменные. Цель - это то, что вернет нулевой код оболочки, если файл правильно сформирован, независимо от того, доступна ли переменная 1, иначе.Как проверить синтаксис Jinja без переменной интерполяции
2
A
ответ
7
Вы можете сделать это в самой 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
Смежные вопросы
- 1. Синтаксис интерполяции строк VBA
- 2. Jinja шаблон переменной синтаксиса
- 3. Javascript переменной интерполяции с переменной
- 4. Строка интерполяции по переменной
- 5. Каков правильный синтаксис для интерполяции переменных без изменений?
- 6. Как проверить синтаксис SQLite3?
- 7. ImageMagick resize без интерполяции
- 8. Qt анимация без интерполяции
- 9. deinterlacing без ядра интерполяции
- 10. Печать переменной из командного файла в другой файл без интерполяции
- 11. Ruby: синтаксис для строковой интерполяции и комментирования
- 12. TFS не будет компилировать синтаксис строки интерполяции
- 13. Как проверить синтаксис RelaxNG?
- 14. Ошибка при печати переменной интерполяции в питоне
- 15. Угловые JS изменение переменной синтаксис
- 16. Построение 3D-поверхности без интерполяции?
- 17. Как получить неискаженное изображение без интерполяции
- 18. Python - Карта интенсивности без интерполяции
- 19. Синтаксис объявления переменной Javascript
- 20. Как проверить синтаксис скрипта Python без его выполнения?
- 21. Как проверить синтаксис скрипта Jython без его выполнения?
- 22. конкатенация линии bash при переменной интерполяции
- 23. строка интерполяции в PowerShell для переменной среды
- 24. Scala строка интерполяции с переменной длиной
- 25. Как проверить синтаксис sql-запроса?
- 26. Как проверить синтаксис скрипта Python?
- 27. jinja: Escape variable + concatenate
- 28. Использование переменной интерполяции в строке в Докер
- 29. как иметь диаграмму без сплайна и без интерполяции в Highcharts?
- 30. Render JSON без замены символов в Jinja