Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

nunjucks [2024/12/13 15:00] – создано mirocownunjucks [2024/12/18 09:42] (текущий) mirocow
Строка 4: Строка 4:
  
 https://mozilla.github.io/nunjucks/ https://mozilla.github.io/nunjucks/
 +
 +===== Пример =====
 +
 +<code javascript>
 +var nunjucks = require('nunjucks');
 +
 +var MyLoader = nunjucks.Loader.extend({
 +    async: true,
 +    getSource: function(name, callback) {
 +        var res = '...';
 +        callback(err, res);
 +    }
 +});
 +
 +var env = new nunjucks.Environment(new MyLoader(), {autoescape: true}); // !
 +
 +function CustomExtension(cb) {
 +    this.tags = ['docs'];
 +
 +    this.parse = function(parser, nodes, lexer) {
 +        var tok = parser.nextToken();
 +        var args = parser.parseSignature(null, true);
 +        parser.nextToken();
 +        var body = parser.parseUntilBlocks('enddocs');
 +        parser.advanceAfterBlockEnd();
 +        return new nodes.CallExtensionAsync(this, 'run', args, [body], cb);
 +    };
 +
 +    this.run = function(context, args, body, cb) {
 +        var res = env.filters.safe(args + ':' + body()); // prevent escape
 +        cb(null, res);
 +    };
 +}    
 +env.addExtension('CustomExtension', new CustomExtension());
 +
 +env.renderString('{% docs "<TEST>" %}"OK"{% enddocs %}', console.log);
 +</code>