diff --git a/lib/less/functions.js b/lib/less/functions.js index b302641a..00d00e30 100644 --- a/lib/less/functions.js +++ b/lib/less/functions.js @@ -67,6 +67,16 @@ tree.functions = { }, e: function (str) { return new(tree.Anonymous)(str); + }, + '%': function (quoted /* arg, arg, ...*/) { + var args = Array.prototype.slice.call(arguments, 1), + str = quoted.content; + + for (var i = 0; i < args.length; i++) { + str = str.replace(/%[sd]/, args[i].toCSS()); + } + str = str.replace(/%%/g, '%'); + return new(tree.Quoted)('"' + str + '"', str); } }; diff --git a/lib/less/parser.js b/lib/less/parser.js index 3dc199c2..31e02a38 100644 --- a/lib/less/parser.js +++ b/lib/less/parser.js @@ -364,7 +364,7 @@ less.Parser = function Parser(env) { call: function () { var name, args; - if (! (name = $(/([a-zA-Z0-9_-]+)\(/g))) return; + if (! (name = $(/([a-zA-Z0-9_-]+|%)\(/g))) return; if (name[1].toLowerCase() === 'alpha') { return $(this.alpha) }