
私はテンプレートエンジンを作成していて、ユーザーが現在ディレクトリにあるファイルを参照できるようにしたいのですが、ファイルが存在しない場合は親ディレクトリを検索するなど、そのディレクトリsource/
まで検索します。私の場合はテンプレートです。ソースツリー。
これにより、ファイルの埋め込みを簡単にオーバーライドし、場所に応じてさまざまなファイルを解析できます(国際化などに役立ちます)。
そのようなことを処理するための一般的な構文はありますか?
答え1
数日待ってからは、そのための汎用構文を知っている人が誰もいないようです。
パスを解析するための独自のシステムを作成するときに意味のあるものだけを選択してください。つまり、現在のディレクトリまたは親ディレクトリにあるすべてのファイルは、私の「ルート」ディレクトリ.../file
まで参照されます。source/
私のテンプレートは次のとおりです。
<div>{{ include path }}</div>
path
これには、現在のファイルと同じディレクトリから呼び出されたファイルが含まれます。
パスがのような絶対パスの場合/path
にチェックされますsource/path
。
source/abc/def/ghi/other-file
次のファイルが与えられたら、この新しい構文を使用します。
<div>{{ include .../path }}</div>
含まれるファイルは、次のいずれかの場所に存在できます。
source/path
source/abc/path
source/abc/def/path
source/abc/def/ghi/path
これにより、次のようなディレクトリを構築して国際化などの機能を得ることができます。
source/en/_messages
source/sv/_messages
これで、インクルードの場所に応じて、次のものを宣言して、インクルードを含む領域のメッセージでファイルを埋める共有ファイルを持つことができます。
{{ include .../_messages }}