Различия
Показаны различия между двумя версиями страницы.
| nunjucks [2024/12/13 15:00] – создано mirocow | nunjucks [2024/12/18 09:42] (текущий) – mirocow | ||
|---|---|---|---|
| Строка 4: | Строка 4: | ||
| https:// | https:// | ||
| + | |||
| + | ===== Пример ===== | ||
| + | |||
| + | <code javascript> | ||
| + | var nunjucks = require(' | ||
| + | |||
| + | var MyLoader = nunjucks.Loader.extend({ | ||
| + | async: true, | ||
| + | getSource: function(name, | ||
| + | var res = ' | ||
| + | callback(err, | ||
| + | } | ||
| + | }); | ||
| + | |||
| + | var env = new nunjucks.Environment(new MyLoader(), {autoescape: | ||
| + | |||
| + | function CustomExtension(cb) { | ||
| + | this.tags = [' | ||
| + | |||
| + | this.parse = function(parser, | ||
| + | var tok = parser.nextToken(); | ||
| + | var args = parser.parseSignature(null, | ||
| + | parser.nextToken(); | ||
| + | var body = parser.parseUntilBlocks(' | ||
| + | parser.advanceAfterBlockEnd(); | ||
| + | return new nodes.CallExtensionAsync(this, | ||
| + | }; | ||
| + | |||
| + | this.run = function(context, | ||
| + | var res = env.filters.safe(args + ':' | ||
| + | cb(null, res); | ||
| + | }; | ||
| + | } | ||
| + | env.addExtension(' | ||
| + | |||
| + | env.renderString(' | ||
| + | </ | ||