Nunjucks 拡張機能から変数を設定するにはどうすればよいですか? たとえば、ここにテンプレートと拡張機能があります。変数は、ブロックx
内からのみ見えるようにする必要があります。sample
テンプレート:
{% sample %}
{{ x }}
{% endsample %}
拡大:
function SampleExtension() {
this.tags = ['sample'];
this.parse = function(parser, nodes, lexer) {
var tok = parser.nextToken();
var args = parser.parseSignature(null, true);
parser.advanceAfterBlockEnd(tok.value);
var body = parser.parseUntilBlocks('endsample');
parser.advanceAfterBlockEnd();
return new nodes.CallExtension(this, 'run', args, [ body ]);
};
this.run = function(context, args, body) {
// I'm guessing I need to mess with the context variable here?
var ret = new nunjucks.runtime.SafeString(body());
return ret;
};
}