mirror of
https://github.com/less/less.js.git
synced 2026-05-01 03:00:22 -04:00
This adds an additional vars parameter to the parse method. It allows a user to inject variables into a less string before compiling.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
@@ -649,7 +639,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) {
|
||||
@@ -677,7 +667,7 @@ less.refresh = function (reload, newVars) {
|
||||
};
|
||||
|
||||
if (less.globalVars) {
|
||||
varsPre = serializeVars(less.globalVars) + "\n";
|
||||
varsPre = less.Parser.serializeVars(less.globalVars) + "\n";
|
||||
}
|
||||
|
||||
less.refreshStyles = loadStyles;
|
||||
|
||||
@@ -295,13 +295,17 @@ 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 = current = furthest = 0;
|
||||
input = str.replace(/\r\n/g, '\n');
|
||||
|
||||
vars = vars ? less.Parser.serializeVars(vars) + '\n' : '';
|
||||
input = (vars + str).replace(/\r\n/g, '\n');
|
||||
|
||||
// Remove potential UTF Byte Order Mark
|
||||
input = input.replace(/^\uFEFF/, '');
|
||||
@@ -1726,4 +1730,17 @@ less.Parser = function Parser(env) {
|
||||
}
|
||||
};
|
||||
};
|
||||
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;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user