4

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;
  };
}
4

0 に答える 0