1. ホーム
  2. python

[解決済み] Jinjaテンプレートの拡張子は?

2023-04-18 22:14:57

質問

Jinjaテンプレートファイル、他のテンプレートファイル(ERBなど)、テンプレートなしのプレーンテキストファイルをプログラムで区別する必要があります。

によると Jinjaドキュメント :

Jinjaのテンプレートは特定の拡張子を持つ必要はありません。.html, .xml, その他の拡張子でもかまいません。

しかし、明示的な拡張子が必要な場合はどうすればいいのでしょうか? .py は誤解を招きますし、"jinja" や "extension" という単語を含む検索は、以下のような議論によってひどく検索に引っかかります。 Jinja エクステンション .

私は簡単にプロジェクト全体の規約を指示することができました ( .jnj または .ja が思い浮かびますが、これはオープンソースのためのものなので、どこかですでに確立された慣習があるのなら、その流れに逆らうことはしたくありません。


EDIT 1: 繰り返しますが、私はJinjaプロジェクトが - 意図的に - デフォルトのファイル拡張子を定義していないことを理解しています。私は、プロジェクト固有の理由で 1 つが望まれる状況のために出現した、非公式の慣習があるかどうかを尋ねているのです。


EDIT 2: 明確化しました。HTMLコンテンツ用ではありません。

どのように解決するのですか?

2021年版に更新しました。 : Jinjaは現在、公式に拡張機能 .jinja .チェック docs


更新しました。 この回答を書いてから状況が変わりました。 .jinja2.j2 がトレンドです。


Jinja Authorsはデフォルトの拡張子を定義していません。ほとんどのJinjaテンプレートエディタでは Vim 拡張 , TextMate エクステンション , Emacs 拡張 そして PyCharm は、Jinja のハイライトを強制するためのデフォルトの拡張子について何も言及していません。

Django はすでに に似たような議論がありました。 として終了しました。 wontfix の問題として終了しました。終了メッセージから引用します。

拡張子に基づくファイルタイプ検出は、これらのコメントに記載されているまさにその理由で欠陥があるため、MIME タイプ検出が機能するのと同様に、いくつかの内部検査を行う必要があります。

共通のものがないので、独自のものを使用することをお勧めします。