Merge branch 'parse-add-variables' of https://github.com/joscha/less.js

Conflicts:
	lib/less/parser.js
	test/less-test.js
This commit is contained in:
Luke Page
2013-12-20 16:41:27 +00:00
9 changed files with 72 additions and 16 deletions

View File

@@ -595,16 +595,6 @@ function initRunningMode(){
}
}
function serializeVars(vars) {
var s = "";
for (var name in vars) {
s += ((name.slice(0,1) === '@')? '' : '@') + name +': '+
((vars[name].slice(-1) === ';')? vars[name] : vars[name] +';');
}
return s;
}
//
@@ -650,7 +640,7 @@ for (var i = 0; i < links.length; i++) {
// CSS without reloading less-files
//
less.modifyVars = function(record) {
less.refresh(false, serializeVars(record));
less.refresh(false, less.Parser.serializeVars(record));
};
less.refresh = function (reload, newVars) {
@@ -678,7 +668,7 @@ less.refresh = function (reload, newVars) {
};
if (less.globalVars) {
varsPre = serializeVars(less.globalVars) + "\n";
varsPre = less.Parser.serializeVars(less.globalVars) + "\n";
}
less.refreshStyles = loadStyles;

View File

@@ -345,12 +345,16 @@ less.Parser = function Parser(env) {
imports: imports,
//
// Parse an input string into an abstract syntax tree,
// call `callback` when done.
// @param str A string containing 'less' markup
// @param callback call `callback` when done.
// @param [vars] An optional map (key, value) of variables to apply
//
parse: function (str, callback) {
parse: function (str, callback, vars) {
var root, line, lines, error = null;
i = j = currentPos = furthest = 0;
vars = vars ? less.Parser.serializeVars(vars) + '\n' : '';
str = str.replace(/\r\n/g, '\n');
// Remove potential UTF Byte Order Mark
@@ -1927,4 +1931,16 @@ less.Parser = function Parser(env) {
};
return parser;
};
less.Parser.serializeVars = function(vars) {
var s = '';
for (var name in vars) {
if (Object.hasOwnProperty.call(vars, name)) {
var value = vars[name];
s += ((name[0] === '@') ? '' : '@') + name +': '+ value +
((('' + value).slice(-1) === ';') ? '' : ';');
}
}
return s;
};