Est-il un idiomatiques l'extension de fichier pour Jinja modèles?
J'ai besoin d'en programmant la distinction entre Jinja fichiers de modèle, d'autres fichiers de modèle (comme ERB), et le modèle-moins de fichiers en texte brut.
Selon Jinja documentation:
Un Jinja modèle n'a pas besoin d'avoir une extension spécifique: .html, .xml, ou toute autre extension est tout simplement parfait.
Mais que dois-je utiliser lorsque explicite de rallonge est nécessaire? .py
est trompeuse, et toute recherche, y compris les mots "jinja" et "extension" sont mal searchwashed par la discussion autour de Jinja Extensions.
Je pourrais facilement dicter un projet à l'échelle de la convention (.jnj
ou .ja
viennent à l'esprit), mais c'est pour l'open source donc je ne veux pas à inverser la tendance si il y a déjà une pratique établie quelque part.
EDIT 1: Encore une fois, je comprends que le Jinja projet — à dessein — ne pas définir une extension de fichier par défaut. Je me demande s'il y a des non officiel des conventions qui ont émergé dans les circonstances où l'on est souhaitée pour un projet spécifique à la raison.
EDIT 2: Clarification: Ce n'est pas pour un contenu HTML.
- Note de côté pour d'autres qui ont été trouvé ceci en cherchant dans le contexte de HTML: une chose d'être prudent, c'est que des extensions de fichier ont des conséquences aussi loin que HTML autoescapes sont concernés. Si vous chargez des macros pour une utilisation dans un modèle HTML,
{% import "whatever.html" as foo %}
agirons sans surprise alors que{% import "whatever.jinja" as foo %}
conduira autoescapes comme>
devenir>
. Je soupçonne que c'est en partie pourquoi beaucoup de Django et Flacon, les utilisateurs finissent à l'aide de.html
.
Vous devez vous connecter pour publier un commentaire.
Jinja Auteurs ne définissent pas l'extension par défaut. La plupart de Jinja modèle éditeurs comme Vim extension, TextMate extension, Emacs extension, et PyCharm mentionner aucune extension par défaut à appliquer à Jinja en évidence.
Django avait déjà un débat similaire sur les paramètres par défaut de l'extension, et a terminé comme un wontfix question. Je cite le message de fermeture:
Je suggère que vous devriez utiliser votre propre puisqu'il n'est pas une commune.
html
.html
ne serait pas approprié que de nouveau, il ne fait pas de distinction entre un fichier HTML avec Jinja, et un sans (qui est ce que je dois faire)..jinja2
, haha.Ansible utilise le
.j2
extension.Je ne pouvais pas trouver la documentation définitive sur ce point précis, mais nous voyons d'occurences de la
.j2
extension dans de nombreux endroits de leur documentation :Si vous recherchez
.j2
dans les pages suivantes, vous verrez beaucoup d'occurences :http://docs.ansible.com/ansible/template_module.html
http://docs.ansible.com/ansible/playbooks_intro.html
C'est la convention que j'utilise pour d'autres projets, à l'exception de modèles django.
Juste FYI - Johnride mentionnés ci-dessus sur Ansible à l'aide de
.j2
que leur convention pour le fichier de modèle de ce qui est correct, il suffit de pointer les "meilleures pratiques" documentés ils ont désormais mis, qui mentionne:- Je utiliser
.html.jinja2
,.js.jinja2
,.css.jinja2
etc pour indiquer que (un) c'est un Jinja2 modèle, et (b) de compiler dans un HTML, JS et CSS de fichiers. J'aime la.j2
choix dans Ansible, mais l'OMI à l'aide de.jinja2
rend plus facile pour un nouveau contributeur de deviner ce template est le langage utilisé.Pour Flacon utilisateurs, depuis l'auto-échappement est agréable d'avoir:
Que j'utilise .jnj extension - et pour la coloration syntaxique et de bribes dans vim je viens de copier, renommé et modifié les paramètres pour twig.
Quand j'ai besoin de quelques réglages pour le html (comme les commentaires, l'étiquette de l'équilibrage, l'indentation, etc) à jinja modèle, j'ai aussi un jeu de fonctions il y a un temps pour travailler avec PHP et WordPress - il permet de basculer en html et de retour à la précédente filetype:
Et il est lié à la touche F12 avec
nmap <silent> <F12> :call ToggleFileType()<CR>
IntelliJ est PyCharm utilise
.jinja2
comme leur modèle pour la reconnaissance de Jinja2 modèles. Pour cette raison je utiliser le même (et de recommander d'autres le font aussi)