我需要在编程上区分Jinja模板文件、其他模板文件(如ERB)和无模板纯文本文件。
根据Jinja documentation的说法
Jinja模板不需要特定的扩展名:.html、.xml或任何其他扩展名都可以。
但当需要显式扩展时,我应该使用什么呢?.py
是误导性的,任何包含“Jinja Extensions”和" extension“的搜索都会被围绕jinja的讨论冲洗得很糟糕。
我可以很容易地指定一个项目范围的约定(想到.jnj
或.ja
),但这是针对开源的,所以我不想在某些地方已经建立了惯例的情况下逆势而行。
Jinja 1:再说一遍,我知道项目没有定义默认的文件扩展名。我在问是否有任何非官方的约定出现在出于某些特定于项目的原因而需要的情况下。
HTML 2:澄清:这不适用于内容。
发布于 2015-04-13 18:59:56
Jinja 2021更新::现在正式推荐使用扩展.jinja
。检查docs
更新:自从我写了这个答案后,的事情发生了变化,.jinja2
和.j2
正在流行。
Jinja的作者没有定义一个默认的扩展。Vim extension、TextMate extension、Emacs extension和PyCharm等大多数Jinja模板编辑器都没有提到强制突出显示Jinja的默认扩展。
Django已经a similar debate关于设置一个默认的扩展,并以一个无法修复的问题而告终。我引用结束语中的话:
基于扩展名的
文件类型检测由于这些注释中描述的原因而存在缺陷,因此您必须进行一些内部检查,就像MIME类型检测一样。
我建议你应该使用你自己的,因为没有通用的。
发布于 2016-10-29 01:01:43
Ansible使用.j2
扩展。
我找不到关于这一点的权威文档,但我们在他们的文档中的许多地方看到了.j2
扩展的出现:
如果您在下面的页面中查找.j2
,您将看到许多实例:
http://docs.ansible.com/ansible/template_module.html http://docs.ansible.com/ansible/playbooks_intro.html
这也是我在其他项目中使用的约定,除了django模板。
发布于 2019-03-04 08:31:32
IntelliJ的PyCharm使用.jinja2
作为他们识别Jinja2模板的模式。出于这个原因,我使用相同的(并建议其他人也这样做)
https://stackoverflow.com/questions/29590931
复制相似问题