python - Jinja 模板是否有惯用的文件扩展名?

标签 python templates file-extension jinja2

我需要以编程方式区分 Jinja 模板文件、其他模板文件(如 ERB)和无模板纯文本文件。

根据Jinja documentation :

A Jinja template doesn’t need to have a specific extension: .html, .xml, or any other extension is just fine.

但是当需要显式扩展时我应该使用什么? .py 具有误导性,包括“jinja”和“extension”在内的任何搜索都会被围绕 Jinja Extensions 的讨论严重洗掉。 .

我可以很容易地指定一个项目范围的约定(.jnj.ja 浮现在脑海中)但这是针对开源的,所以我不想反抗如果某处已经建立了实践,则趋势。


编辑 1: 同样,我知道 Jinja 项目 - 故意 - 没有定义默认文件扩展名。我想问是否有任何非官方的约定出现在出于某些特定项目的原因需要的情况下。


编辑 2: 澄清:这不适用于 HTML 内容。

最佳答案

2021 年更新::Jinja 现在正式推荐使用扩展名 .jinja。查看docs


更新: 自从我写了这个答案后,情况发生了变化,.jinja2.j2 正在流行。


Jinja Authors 没有定义默认扩展名。大多数 Jinja 模板编辑器喜欢 Vim extension , TextMate extension , Emacs extension , 和 PyCharm没有提及强制执行 Jinja 突出显示的默认扩展。

Django 已经 a similar debate关于设置默认扩展,并以 wontfix 问题结束。我引用结束语:

Filetype detection based on extension is flawed for the very reasons described in these comments, so you have to do some internal inspection, just like MIME type detection works.

我建议你应该使用自己的,因为没有通用的。

关于python - Jinja 模板是否有惯用的文件扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590931/

相关文章:

c++ - 将 Boost 属性映射与捆绑类型结合使用

html - .html 和 .xhtml 扩展名有什么区别? XHTML 是一种标记语言,或者它也是一种不同的扩展

python - 打开CV libgtk2.0-dev和pkg-config报错mac

javascript - 单击按钮时从 Grails 模板添加表格行

c++ - 静态成员初始化和可变参数模板

java - 将唯一的文件扩展名扫描到变量中

具有多个句点的扩展名的 Eclipse 文件关联

python - 关系 "name"的列 "contact_contact"中的 null 值违反非空约束

python - 如何跳过处理作为另一封电子邮件附件的电子邮件的附件

python - Ipython notebook 在 Ipython.Display 模块中对齐 Latex 方程