Ich hatte keinen Erfolg bei der Suche nach einem guten Precommit-Hook, den ich verwenden kann, um zu überprüfen, ob eine Jinja2-formatierte Datei wohlgeformt ist, ohne Variablen zu ersetzen. Das Ziel ist etwas, das einen Shell-Code von Null zurückgibt, wenn die Datei wohlgeformt ist, ohne Rücksicht darauf, ob eine Variable verfügbar ist, andernfalls 1.Wie man Jinja-Syntax ohne variable Interpolation validiert
2
A
Antwort
7
Sie können dies innerhalb von Jinja selbst tun, Sie müssten nur ein Skript schreiben, um die Vorlage zu lesen und zu parsen.
Da Sie nur Sorge um wohlgeformte Vorlagen, und nicht, ob die Variablen zur Verfügung stehen, sollte es ziemlich einfach zu tun:
# filename: check_my_jinja.py
import sys
from jinja2 import Environment
env = Environment()
with open(sys.argv[1]) as template:
env.parse(template.read())
oder etwas, das alle Vorlagen iteriert
# 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())
Wenn Sie eine falsche Syntax haben, werden Sie eine so Ihr precommi
TemplateSyntaxError
erhalten t Haken könnte aussehen wie
python check_my_jinja.py template.jinja2
python check_my_jinja_recursive.py /dir/templates_folder
Verwandte Themen
- 1. Variable Interpolation in Python
- 2. Wie man Markdown validiert?
- 3. Variable Interpolation in VB.NET
- 4. Wie validiert man bitweise Werte?
- 5. Wie man dynamische Kartenelemente validiert
- 6. PHP Variable Interpolation vs Verkettung
- 7. Podspec validiert nicht ohne Fehler
- 8. Wie validiert man Dezimalzahlen in PHP
- 9. Wie validiert man Formularfelder mit JavaScript-Objekten?
- 10. ImageMagick Größe ändern ohne Interpolation
- 11. Wie validiert man einen binären Suchbaum?
- 12. Wie validiert man Tastenkombinationen (AltGr + Key)?
- 13. Wie man ein Webformular automatisch validiert?
- 14. Wie validiert man alle Felder gleichzeitig?
- 15. Wie validiert man eine singapurische FIN?
- 16. Wie validiert man die zugehörige Modell-ID?
- 17. Ansible: Variable Interpolation in Task Name
- 18. Eingangstyp E-Mail validiert ohne Attribut "require"
- 19. Java: Wie Benutzereingaben validiert werden?
- 20. Wie wird die C# -String-Interpolation ohne einen Ausdruck kompiliert?
- 21. Interpolation im I18n-Array
- 22. Ansible Variable Interpolation in der Liste der Wörterbücher
- 23. Jade Variable Interpolation - Standardwert, wenn eine Eigenschaft nicht definiert ist?
- 24. Ist PHP in PHP effizienter als variable Interpolation?
- 25. PHPMailer wie man Variable
- 26. Lua heredoc mit variabler Interpolation?
- 27. Wie validiert man den Cron-Ausdruck in GWT?
- 28. Hibernate Validator für Formulare: Wie man sehr ähnliche DTOs validiert
- 29. Wie validiert man die Dateneingabe in einem Sharepoint-Formular?
- 30. jQuery Validate: Wie validiert man ein Nicht-Formular-Element?