mirror of
https://github.com/less/less.js.git
synced 2026-04-09 03:00:20 -04:00
Basic rhino support
This commit is contained in:
13
Makefile
13
Makefile
@@ -18,6 +18,7 @@ HEADER = build/header.js
|
||||
VERSION = `cat package.json | grep version \
|
||||
| grep -o '[0-9]\.[0-9]\.[0-9]\+'`
|
||||
DIST = dist/less-${VERSION}.js
|
||||
RHINO = dist/less-rhino-${VERSION}.js
|
||||
DIST_MIN = dist/less-${VERSION}.min.js
|
||||
|
||||
less:
|
||||
@@ -35,6 +36,18 @@ less:
|
||||
@@echo "})(window);" >> ${DIST}
|
||||
@@echo ${DIST} built.
|
||||
|
||||
rhino:
|
||||
@@mkdir -p dist
|
||||
@@touch ${RHINO}
|
||||
@@cat build/require-rhino.js\
|
||||
build/ecma-5.js\
|
||||
${SRC}/parser.js\
|
||||
${SRC}/functions.js\
|
||||
${SRC}/tree/*.js\
|
||||
${SRC}/tree.js\
|
||||
${SRC}/rhino.js > ${RHINO}
|
||||
@@echo ${RHINO} built.
|
||||
|
||||
min: less
|
||||
@@echo minifying...
|
||||
@@cat ${HEADER} | sed s/@VERSION/${VERSION}/ > ${DIST_MIN}
|
||||
|
||||
7
build/require-rhino.js
Normal file
7
build/require-rhino.js
Normal file
@@ -0,0 +1,7 @@
|
||||
//
|
||||
// Stub out `require` in rhino
|
||||
//
|
||||
function require(arg) {
|
||||
return less[arg.split('/')[1]];
|
||||
};
|
||||
|
||||
@@ -1,9 +1,17 @@
|
||||
var less, tree;
|
||||
|
||||
if (typeof(window) === 'undefined') {
|
||||
less = exports,
|
||||
tree = require('less/tree');
|
||||
if (typeof(exports) === 'undefined') {
|
||||
// Rhino
|
||||
less = {};
|
||||
tree = less.tree = {};
|
||||
} else {
|
||||
// Node.js
|
||||
less = exports,
|
||||
tree = require('less/tree');
|
||||
}
|
||||
} else {
|
||||
// Browser
|
||||
if (typeof(window.less) === 'undefined') { window.less = {} }
|
||||
less = window.less,
|
||||
tree = window.less.tree = {};
|
||||
@@ -1088,7 +1096,7 @@ less.Parser = function Parser(env) {
|
||||
};
|
||||
};
|
||||
|
||||
if (typeof(window) !== 'undefined') {
|
||||
if (typeof(window) !== 'undefined' /* browser */ || typeof(exports) === 'undefined' /* rhino */) {
|
||||
//
|
||||
// Used by `@import` directives
|
||||
//
|
||||
|
||||
50
lib/less/rhino.js
Normal file
50
lib/less/rhino.js
Normal file
@@ -0,0 +1,50 @@
|
||||
var name;
|
||||
|
||||
function loadStyleSheet(sheet, callback, reload, remaining) {
|
||||
var sheetName = name.slice(0, name.lastIndexOf('/') + 1) + sheet.href;
|
||||
var input = readFile(sheetName);
|
||||
var parser = new less.Parser();
|
||||
parser.parse(input, function (e, root) {
|
||||
if (e) {
|
||||
print("Error: " + e);
|
||||
quit(1);
|
||||
}
|
||||
callback(root, sheet, { local: false, lastModified: 0, remaining: remaining });
|
||||
});
|
||||
|
||||
// callback({}, sheet, { local: true, remaining: remaining });
|
||||
}
|
||||
|
||||
// Command line integration via Rhino
|
||||
(function (args) {
|
||||
name = args[0];
|
||||
var optstr = args[1]; // arg1=val1,arg2=val2,...
|
||||
|
||||
if (!name) {
|
||||
print('No files present in the fileset; Check your pattern match in build.xml');
|
||||
quit(1);
|
||||
}
|
||||
path = name.split("/");path.pop();path=path.join("/")
|
||||
|
||||
var input = readFile(name);
|
||||
|
||||
if (!input) {
|
||||
print('lesscss: couldn\'t open file ' + name);
|
||||
quit(1);
|
||||
}
|
||||
|
||||
var result;
|
||||
var parser = new less.Parser();
|
||||
parser.parse(input, function (e, root) {
|
||||
if (e) {
|
||||
print("Error: " + err);
|
||||
quit(1);
|
||||
} else {
|
||||
print("Success");
|
||||
result = root.toCSS();
|
||||
print("res: "+ result);
|
||||
quit(0);
|
||||
}
|
||||
});
|
||||
print("done");
|
||||
}(arguments));
|
||||
Reference in New Issue
Block a user