mirror of
https://github.com/less/less.js.git
synced 2026-02-03 11:35:08 -05:00
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]];
|
||||
};
|
||||
|
||||
2460
dist/less-rhino-1.1.3.js
vendored
Normal file
2460
dist/less-rhino-1.1.3.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,25 @@
|
||||
var less, tree;
|
||||
|
||||
if (typeof(window) === 'undefined') {
|
||||
var BROWSER = 0; var NODE = 1; var RHINO = 2;
|
||||
var engine;
|
||||
|
||||
if (typeof environment === "object" && ({}).toString.call(environment) === "[object Environment]") {
|
||||
// Rhino
|
||||
// Details on how to detect Rhino: https://github.com/ringo/ringojs/issues/88
|
||||
less = {};
|
||||
tree = less.tree = {};
|
||||
engine = RHINO;
|
||||
} else if (typeof(window) === 'undefined') {
|
||||
// Node.js
|
||||
less = exports,
|
||||
tree = require('less/tree');
|
||||
engine = NODE;
|
||||
} else {
|
||||
// Browser
|
||||
if (typeof(window.less) === 'undefined') { window.less = {} }
|
||||
less = window.less,
|
||||
tree = window.less.tree = {};
|
||||
engine = BROWSER;
|
||||
}
|
||||
//
|
||||
// less.js - parser
|
||||
@@ -1088,7 +1101,7 @@ less.Parser = function Parser(env) {
|
||||
};
|
||||
};
|
||||
|
||||
if (typeof(window) !== 'undefined') {
|
||||
if (engine === BROWSER || engine === RHINO) {
|
||||
//
|
||||
// Used by `@import` directives
|
||||
//
|
||||
|
||||
60
lib/less/rhino.js
Normal file
60
lib/less/rhino.js
Normal file
@@ -0,0 +1,60 @@
|
||||
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 });
|
||||
}
|
||||
|
||||
function writeFile(filename, content) {
|
||||
var fstream = new java.io.FileWriter(filename);
|
||||
var out = new java.io.BufferedWriter(fstream);
|
||||
out.write(content);
|
||||
out.close();
|
||||
}
|
||||
|
||||
// Command line integration via Rhino
|
||||
(function (args) {
|
||||
name = args[0];
|
||||
var output = args[1];
|
||||
|
||||
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) {
|
||||
quit(1);
|
||||
} else {
|
||||
result = root.toCSS();
|
||||
if (output) {
|
||||
writeFile(output, result);
|
||||
print("Written to " + output);
|
||||
} else {
|
||||
print(result);
|
||||
}
|
||||
quit(0);
|
||||
}
|
||||
});
|
||||
print("done");
|
||||
}(arguments));
|
||||
Reference in New Issue
Block a user