2017-02-09 1 views
0

未定義nunjucks変数を残すこれはうまく動作します。以下に示すように、私はusernameを省略した場合:はunrepalced

nunjucks.renderString('Hello {{ username }}', { noUsername: 'James' }); 

nunjucksは私に'Hello 'を与えます。私は定義しようとしている行動は

nunjucks.renderString('Hello {{ username }}', { noUsername: 'James' }); 

は私に'Hello {{ username }}'を与えるように、私はunreplaced未定義の変数を残すことができるようにする方法です。カスタムフィルタ、マクロ、テンプレート、もっとスマートなものを使ってこれを実現する方法はありますか?私は独自の構文(カスタムエスケープ文字)を避け、可能であればもっと慣用的にしておきたいと思います。私は単純な例としてrenderStringを使用しましたが、実際にはテンプレート全体(render経由)でこれを使用したいと思っています。

答えて

0

{% raw %}が既にa fantastic tagであることが判明しました。あなたの変数が事前に未定義であることが分かっているケースを処理するために使用できるnunjucksが既に組み込まれています。そのようなものとして使用する場合、例えば、:

nunjucks.renderString('Hello {{ username }} {% raw %}{{ iDoNotExist }}{% endraw %}', 
    { username: 'James' }); 

それは以下の出力を与える:

'Hello James {{ iDoNotExist }}'