UNPKG

swig

Version:

A simple, powerful, and extendable templating engine for node.js and browsers, similar to Django, Jinja2, and Twig.

43 lines (36 loc) 1.03 kB
var utils = require('../utils'); /** * Attempts to remove whitespace between HTML tags. Use at your own risk. * * @alias spaceless * * @example * {% spaceless %} * {% for num in foo %} * <li>{{ loop.index }}</li> * {% endfor %} * {% endspaceless %} * // => <li>1</li><li>2</li><li>3</li> * */ exports.compile = function (compiler, args, content, parents, options, blockName) { function stripWhitespace(tokens) { return utils.map(tokens, function (token) { if (token.content || typeof token !== 'string') { token.content = stripWhitespace(token.content); return token; } return token.replace(/^\s+/, '') .replace(/>\s+</g, '><') .replace(/\s+$/, ''); }); } return compiler(stripWhitespace(content), parents, options, blockName); }; exports.parse = function (str, line, parser) { parser.on('*', function (token) { throw new Error('Unexpected token "' + token.match + '" on line ' + line + '.'); }); return true; }; exports.ends = true;