Ist es eine idiomatische Datei-Erweiterung für Jinja-templates?
Muss ich programmatisch unterscheiden zwischen Jinja template-Dateien, die anderen template-Dateien (z.B. ERB), und template-weniger-nur-text-Dateien.
Laut Jinja-Dokumentation:
Einer Jinja template braucht nicht auf eine bestimmte extension: .html -, .xml, oder eine andere Erweiterung ist auch gut so.
Aber was sollte ich verwenden, wenn eine ausdrückliche Erweiterung ist erforderlich? .py
ist irreführend, und alle suchen, in denen die Wörter "jinja" und "Erweiterung" sind schlecht searchwashed durch die Diskussion um Jinja-Erweiterungen.
Konnte ich problemlos diktieren eine Projektweite Konvention (.jnj
oder .ja
in den Sinn kommen), aber dies ist für open source, so dass ich nicht wollen, gegen den trend, wenn es bereits etablierte Praxis, irgendwo.
EDIT 1: Wieder, ich verstehe, dass die Jinja Projekt — absichtlich — nicht definiert ein Standard-Datei-Erweiterung. Ich bin zu Fragen, ob es irgendwelche inoffizielle Konventionen herausgebildet haben, für die Umstände, in denen eine gewünscht ist einige Projekt-spezifischen Grund.
EDIT 2: Klarstellung: Das ist nicht für HTML-Inhalt.
- Seite Hinweis für andere, die gefunden wurden diese während der Suche im Kontext von HTML: eine Sache, vorsichtig zu sein über ist, dass Datei-Erweiterungen Folgen so weit als HTML-autoescapes betroffen sind. Wenn Sie be-Makros für die Verwendung in einer HTML-Vorlage,
{% import "whatever.html" as foo %}
fungieren, wenig überraschend, während{% import "whatever.jinja" as foo %}
führen autoescapes wie>
immer>
. Ich vermute, das ist ein Teil, warum eine Menge von Django und Flask Benutzer am Ende mit.html
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jinja Autoren nicht definiert eine Standard-Erweiterung. Die meisten von Jinja template-Editoren wie Vim-Erweiterung, TextMate-Erweiterung, Emacs-Erweiterung, und PyCharm schweigen keine Standard-Erweiterung zu erzwingen, Jinja hervorheben.
Django hatte schon eine ähnliche Debatte über die Einstellung des Standard-Erweiterung, und endete als wontfix Problem. Ich zitiere aus der Nachricht schließen:
Schlage ich vor, dass, sollten Sie Ihre eigenen da es ist kein gewöhnlicher.
html
.html
wäre nicht angemessen, so wieder, es unterscheidet nicht zwischen einer HTML-Datei mit Jinja, und einen ohne (das ist, was ich tun muss)..jinja2
, haha.Ansible nutzt die
.j2
Erweiterung.Konnte ich nicht finden eine definitive Dokumentation über diesem genauen Punkt, aber wir sehen Ereignisse des
.j2
Erweiterung in vielen Orten von Ihrer Dokumentation :Wenn Sie sich für
.j2
auf den folgenden Seiten sehen Sie viele Vorkommnisse :http://docs.ansible.com/ansible/template_module.html
http://docs.ansible.com/ansible/playbooks_intro.html
Dies ist die Konvention, die ich für andere Projekte auch, außer django Vorlagen.
Nur zur info - Johnride oben erwähnt, über Ansible Verwendung von
.j2
als die Konvention für die template-Datei, die korrekt ist, nur darauf aus die "best practices" dokumentiert Sie habe nun aus, die erwähnt:IntelliJ ist PyCharm verwendet
.jinja2
als Ihre Muster zu erkennen, Jinja2 Vorlagen. Aus diesem Grund verwende ich die gleichen (und zu empfehlen, andere tun dies auch)Benutze ich
.html.jinja2
,.js.jinja2
,.css.jinja2
etc zu zeigen, dass (a) es ist ein Jinja2 template, und (b) wird die Kompilierung in eine HTML -, JS-oder CSS-Datei. Ich mag die.j2
Wahl in Ansible, aber IMO mit.jinja2
macht es einfacher für einen neuen Beitrag zu erraten, was als Template-Sprache verwendet wird.Für Kolben-Nutzer, da auto-escaping ist schön zu haben:
Ich verwenden .jnj-Erweiterung - und für syntax-Hervorhebung und für snippets in vim, die ich nur kopiert, umbenannt und optimiert die Einstellungen für Zweig.
Wenn ich einige Einstellungen für html (wie kommentieren, tag-balancing, Einrückungen etc) in jinja template, ich habe auch eine Funktion legen Sie eine Zeit für die Arbeit mit PHP-und WordPress - es schaltet auf html und zurück zum vorherigen filetype:
Und es gebunden ist, die F12-Taste mit
nmap <silent> <F12> :call ToggleFileType()<CR>