0

を必要とされるinclude` `のための代替、Nunjucks /神社 - スコープへのアクセスがNunjucks <a href="https://mozilla.github.io/nunjucks/templating.html#include" rel="nofollow noreferrer">documentation</a>によれば

AN含むが、レンダリングの前に含むテンプレートに含まれるテンプレートコードを引っ張るプリプロセッサはありません。代わりに、インクルードされたテンプレートの別のレンダリングが実行され、そのレンダリングの結果が含まれます。

あなたが実際にそれがNunjucks /神社にどうなるか、「レンダリングの前に含むテンプレートに含まれるテンプレートコードを引っ張るプリプロセッサ」をしたい場合は?


実用的な例は次のようになります。2つのパーシャルはsetいる同じ変数を持っています。我々はそれを乾燥させ、setステートメントを部分的に入れて、includeで要求します。 includeを使用する場合、これらの変数は有効範囲外です。

部分config.nunjucks:

{% set var = 'x' %} 

partial1.nunjucks:

{% include "partial-config.nunjucks" %} 
var={{ var }} 

partial2.nunjucks:

{% include "partial-config.nunjucks" %} 
var={{ var }} 

チャレンジ:上記部分の変数varは空白です。レンダリングの前に、文字列だけであるかのように、余分なスコープを持たないように、各パーシャルのスコープ内に設定したいと思っています。

答えて

1

最初にレンダリングするプライマリテンプレートとその後にincludeがあるので、多分私は間違っています。

いずれにしても、custom loaderを使用して自分のタグを「定義」することができます。 {% config "filename.njk" %}のように使用するとconfigです。ローダーはconfigのタグを見つけ、この行をfilename.njkで置き換え、次にレンダリングするテンプレートを渡す必要があります。

+0

カスタムローダーでいいアイデア! – revelt

関連する問題