Full rename to mess
This commit is contained in:
parent
e33f61bcd1
commit
e5ba37d71e
14
bin/messc
14
bin/messc
@ -6,7 +6,7 @@ var path = require('path'),
|
||||
|
||||
require.paths.unshift(path.join(__dirname, '..', 'lib'));
|
||||
|
||||
var less = require('less');
|
||||
var mess = require('mess');
|
||||
var args = process.argv.slice(1);
|
||||
var options = {
|
||||
compress: false,
|
||||
@ -23,7 +23,7 @@ args = args.filter(function (arg) {
|
||||
switch (arg) {
|
||||
case 'v':
|
||||
case 'version':
|
||||
sys.puts("lessc " + less.version.join('.') + " (LESS Compiler) [JavaScript]");
|
||||
sys.puts("messc " + mess.version.join('.') + " (MESS Compiler) [JavaScript]");
|
||||
process.exit(0);
|
||||
case 'verbose':
|
||||
options.verbose = true;
|
||||
@ -34,7 +34,7 @@ args = args.filter(function (arg) {
|
||||
break;
|
||||
case 'h':
|
||||
case 'help':
|
||||
sys.puts("usage: lessc source [destination]");
|
||||
sys.puts("usage: messc source [destination]");
|
||||
process.exit(0);
|
||||
case 'x':
|
||||
case 'compress':
|
||||
@ -58,23 +58,23 @@ if (output && output[0] != '/') {
|
||||
var css, fd, tree;
|
||||
|
||||
if (! input) {
|
||||
sys.puts("lessc: no input files");
|
||||
sys.puts("messc: no input files");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
fs.readFile(input, 'utf-8', function (e, data) {
|
||||
if (e) {
|
||||
sys.puts("lessc: " + e.message);
|
||||
sys.puts("messc: " + e.message);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
new(less.Renderer)({
|
||||
new(mess.Renderer)({
|
||||
paths: [path.dirname(input)],
|
||||
optimization: options.optimization,
|
||||
filename: input
|
||||
}).render(data, function (err, output) {
|
||||
if (err) {
|
||||
less.writeError(err, options);
|
||||
mess.writeError(err, options);
|
||||
process.exit(1);
|
||||
} else {
|
||||
sys.puts(output);
|
||||
|
154
lib/less/step.js
154
lib/less/step.js
@ -1,154 +0,0 @@
|
||||
/*
|
||||
Copyright (c) 2010 Tim Caswell <tim@creationix.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
|
||||
// Inspired by http://github.com/willconant/flow-js, but reimplemented and
|
||||
// modified to fit my taste and the node.JS error handling system.
|
||||
function Step() {
|
||||
var steps = Array.prototype.slice.call(arguments),
|
||||
counter, results, lock;
|
||||
|
||||
// Define the main callback that's given as `this` to the steps.
|
||||
function next() {
|
||||
|
||||
// Check if there are no steps left
|
||||
if (steps.length === 0) {
|
||||
// Throw uncaught errors
|
||||
if (arguments[0]) {
|
||||
throw arguments[0];
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the next step to execute
|
||||
var fn = steps.shift();
|
||||
counter = 0;
|
||||
results = [];
|
||||
|
||||
// Run the step in a try..catch block so exceptions don't get out of hand.
|
||||
try {
|
||||
lock = true;
|
||||
var result = fn.apply(next, arguments);
|
||||
} catch (e) {
|
||||
// Pass any exceptions on through the next callback
|
||||
next(e);
|
||||
}
|
||||
|
||||
|
||||
// If a syncronous return is used, pass it to the callback
|
||||
if (result !== undefined) {
|
||||
next(undefined, result);
|
||||
}
|
||||
lock = false;
|
||||
}
|
||||
|
||||
// Add a special callback generator `this.parallel()` that groups stuff.
|
||||
next.parallel = function () {
|
||||
var i = counter;
|
||||
counter++;
|
||||
function check() {
|
||||
counter--;
|
||||
if (counter === 0) {
|
||||
// When they're all done, call the callback
|
||||
next.apply(null, results);
|
||||
}
|
||||
}
|
||||
return function () {
|
||||
// Compress the error from any result to the first argument
|
||||
if (arguments[0]) {
|
||||
results[0] = arguments[0];
|
||||
}
|
||||
// Send the other results as arguments
|
||||
results[i + 1] = arguments[1];
|
||||
if (lock) {
|
||||
process.nextTick(check);
|
||||
return
|
||||
}
|
||||
check();
|
||||
};
|
||||
};
|
||||
|
||||
// Generates a callback generator for grouped results
|
||||
next.group = function () {
|
||||
var localCallback = next.parallel();
|
||||
var counter = 0;
|
||||
var result = [];
|
||||
var error = undefined;
|
||||
// Generates a callback for the group
|
||||
return function () {
|
||||
var i = counter;
|
||||
counter++;
|
||||
function check() {
|
||||
counter--;
|
||||
if (counter === 0) {
|
||||
// When they're all done, call the callback
|
||||
localCallback(error, result);
|
||||
}
|
||||
}
|
||||
return function () {
|
||||
// Compress the error from any result to the first argument
|
||||
if (arguments[0]) {
|
||||
error = arguments[0];
|
||||
}
|
||||
// Send the other results as arguments
|
||||
result[i] = arguments[1];
|
||||
if (lock) {
|
||||
process.nextTick(check);
|
||||
return
|
||||
}
|
||||
check();
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
// Start the engine an pass nothing to the first step.
|
||||
next([]);
|
||||
}
|
||||
|
||||
// Tack on leading and tailing steps for input and output and return
|
||||
// the whole thing as a function. Basically turns step calls into function
|
||||
// factories.
|
||||
Step.fn = function StepFn() {
|
||||
var steps = Array.prototype.slice.call(arguments);
|
||||
return function () {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
|
||||
// Insert a first step that primes the data stream
|
||||
var toRun = [function () {
|
||||
this.apply(null, args);
|
||||
}].concat(steps);
|
||||
|
||||
// If the last arg is a function add it as a last step
|
||||
if (typeof args[args.length-1] === 'function') {
|
||||
toRun.push(args.pop());
|
||||
}
|
||||
|
||||
|
||||
Step.apply(null, toRun);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Hook into commonJS module systems
|
||||
if (typeof module !== 'undefined' && "exports" in module) {
|
||||
module.exports = Step;
|
||||
}
|
BIN
lib/mess/.index.js.swp
Normal file
BIN
lib/mess/.index.js.swp
Normal file
Binary file not shown.
BIN
lib/mess/.renderer.js.swp
Normal file
BIN
lib/mess/.renderer.js.swp
Normal file
Binary file not shown.
BIN
lib/mess/.step.js.swp
Normal file
BIN
lib/mess/.step.js.swp
Normal file
Binary file not shown.
@ -154,4 +154,4 @@ function clamp(val) {
|
||||
return Math.min(1, Math.max(0, val));
|
||||
}
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -4,12 +4,12 @@ var path = require('path'),
|
||||
|
||||
require.paths.unshift(path.join(__dirname, '..'));
|
||||
|
||||
var less = {
|
||||
var mess = {
|
||||
version: [1, 0, 40],
|
||||
Parser: require('less/parser').Parser,
|
||||
Renderer: require('less/renderer').Renderer,
|
||||
importer: require('less/parser').importer,
|
||||
tree: require('less/tree'),
|
||||
Parser: require('mess/parser').Parser,
|
||||
Renderer: require('mess/renderer').Renderer,
|
||||
importer: require('mess/parser').importer,
|
||||
tree: require('mess/tree'),
|
||||
reference: JSON.parse(fs.readFileSync(
|
||||
path.join(__dirname, 'jsonreference.json'))),
|
||||
render: function (input, options, callback) {
|
||||
@ -84,10 +84,10 @@ var less = {
|
||||
'mixin', 'comment', 'anonymous', 'value', 'javascript',
|
||||
'comparison', 'reference', 'filter'
|
||||
].forEach(function (n) {
|
||||
require(path.join('less', 'tree', n));
|
||||
require(path.join('mess', 'tree', n));
|
||||
});
|
||||
|
||||
less.Parser.importer = function (file, paths, callback) {
|
||||
mess.Parser.importer = function (file, paths, callback) {
|
||||
var pathname;
|
||||
|
||||
paths.unshift('.');
|
||||
@ -106,11 +106,11 @@ less.Parser.importer = function (file, paths, callback) {
|
||||
fs.readFile(pathname, 'utf-8', function(e, data) {
|
||||
if (e) sys.error(e);
|
||||
|
||||
new(less.Parser)({
|
||||
new(mess.Parser)({
|
||||
paths: [path.dirname(pathname)],
|
||||
filename: pathname
|
||||
}).parse(data, function (e, root) {
|
||||
if (e) less.writeError(e);
|
||||
if (e) mess.writeError(e);
|
||||
callback(root);
|
||||
});
|
||||
});
|
||||
@ -120,9 +120,9 @@ less.Parser.importer = function (file, paths, callback) {
|
||||
}
|
||||
}
|
||||
|
||||
require('less/functions');
|
||||
require('mess/functions');
|
||||
|
||||
for (var k in less) { exports[k] = less[k] }
|
||||
for (var k in mess) { exports[k] = mess[k] }
|
||||
|
||||
// Stylize a string
|
||||
function stylize(str, style) {
|
577
lib/mess/jsonreference.json
Normal file
577
lib/mess/jsonreference.json
Normal file
@ -0,0 +1,577 @@
|
||||
{
|
||||
"symbolizers" : {
|
||||
"map": {
|
||||
"map-bgcolor": {
|
||||
"type": "color_transparent",
|
||||
"description": "Map Background color"
|
||||
}
|
||||
},
|
||||
"polygon": {
|
||||
"fill": {
|
||||
"css": "polygon-fill",
|
||||
"api": "fill",
|
||||
"type": "color",
|
||||
"availability": "0.5.1",
|
||||
"default-value": "rgb(128,128,128)",
|
||||
"default-meaning": "grey",
|
||||
"doc": "Fill color to assign to a polygon"
|
||||
},
|
||||
"gamma": {
|
||||
"css": "polygon-gamma",
|
||||
"api": "gamma",
|
||||
"type": "float",
|
||||
"availability": "0.7.0",
|
||||
"default-value": 1,
|
||||
"default-meaning": "fully antialiased",
|
||||
"range": "0-1",
|
||||
"doc": "Level of antialiasing of polygon edges"
|
||||
},
|
||||
"opacity": {
|
||||
"css": "polygon-opacity",
|
||||
"type": "float",
|
||||
"default-value": 1,
|
||||
"default-meaning": "opaque"
|
||||
},
|
||||
"meta-output": {
|
||||
"css": "polygon-meta-output",
|
||||
"type": "string",
|
||||
"default-value": "",
|
||||
"default-meaning": "No MetaWriter Output"
|
||||
},
|
||||
"meta-writer": {
|
||||
"css": "polygon-meta-writer",
|
||||
"type": "string",
|
||||
"default-value": "",
|
||||
"default-meaning": "No MetaWriter specified"
|
||||
}
|
||||
},
|
||||
"line": {
|
||||
"color": {
|
||||
"css": "line-color",
|
||||
"default-value": "black",
|
||||
"type": "color",
|
||||
"doc": "The color of a drawn line"
|
||||
},
|
||||
"width": {
|
||||
"css": "line-width",
|
||||
"default-value": 1,
|
||||
"type": "float",
|
||||
"doc": "The width of a line"
|
||||
},
|
||||
"opacity": {
|
||||
"css": "line-opacity",
|
||||
"default-value": 1,
|
||||
"type": "float",
|
||||
"doc": "The opacity of a line"
|
||||
},
|
||||
"join": {
|
||||
"css": "line-join",
|
||||
"default-value": "miter",
|
||||
"type": [
|
||||
"miter",
|
||||
"round",
|
||||
"bevel"
|
||||
],
|
||||
"doc": "The behavior of lines when joining"
|
||||
},
|
||||
"cap": {
|
||||
"css": "line-cap",
|
||||
"default-value": "butt",
|
||||
"type": [
|
||||
"butt",
|
||||
"round",
|
||||
"square"
|
||||
],
|
||||
"doc": "The display of line endings."
|
||||
},
|
||||
"dasharray": {
|
||||
"css": "line-dasharray",
|
||||
"type": "numbers",
|
||||
"doc": "A pair of length values [a,b], where (a) is the dash length and (b) is the gap length respectively. More than two values are supported as well (e.g. to start the line not with a stroke, but with a gap).",
|
||||
"default-value": "none"
|
||||
},
|
||||
"meta-output": {
|
||||
"css": "line-meta-output",
|
||||
"type": "string",
|
||||
"default-value": "",
|
||||
"default-meaning": "No MetaWriter Output"
|
||||
},
|
||||
"meta-writer": {
|
||||
"css": "line-meta-writer",
|
||||
"type": "string",
|
||||
"default-value": ""
|
||||
}
|
||||
},
|
||||
"marker": {
|
||||
"line-color": {
|
||||
"css": "marker-line-color",
|
||||
"type": "color"
|
||||
},
|
||||
"line-width": {
|
||||
"css": "marker-line-width",
|
||||
"type": "float"
|
||||
},
|
||||
"line-opacity": {
|
||||
"css": "marker-line-opacity",
|
||||
"default-value": 1,
|
||||
"type": "float"
|
||||
},
|
||||
"placement": {
|
||||
"css": "marker-placement",
|
||||
"type": [
|
||||
"point",
|
||||
"line"
|
||||
]
|
||||
},
|
||||
"type": {
|
||||
"css": "marker-type",
|
||||
"type": [
|
||||
"arrow",
|
||||
"ellipse"
|
||||
]
|
||||
},
|
||||
"width": {
|
||||
"css": "marker-width",
|
||||
"type": "float"
|
||||
},
|
||||
"height": {
|
||||
"css": "marker-height",
|
||||
"type": "float"
|
||||
},
|
||||
"fill": {
|
||||
"css": "marker-fill",
|
||||
"type": "color"
|
||||
},
|
||||
"fill-opacity": {
|
||||
"css": "marker-opacity",
|
||||
"default-value": 1,
|
||||
"type": "float"
|
||||
},
|
||||
"file": {
|
||||
"css": "marker-file",
|
||||
"type": "uri"
|
||||
},
|
||||
"allow-overlap": {
|
||||
"css": "marker-allow-overlap",
|
||||
"type": "boolean"
|
||||
},
|
||||
"spacing": {
|
||||
"css": "marker-spacing",
|
||||
"docs": "Space between repeated labels",
|
||||
"type": "float"
|
||||
},
|
||||
"max-error": {
|
||||
"css": "marker-max-error",
|
||||
"type": "float"
|
||||
},
|
||||
"transform": {
|
||||
"css": "marker-transform",
|
||||
"type": "string"
|
||||
},
|
||||
"meta-output": {
|
||||
"css": "marker-meta-output",
|
||||
"type": "string",
|
||||
"default-value": "",
|
||||
"default-meaning": "No MetaWriter Output"
|
||||
},
|
||||
"meta-writer": {
|
||||
"css": "marker-meta-writer",
|
||||
"type": "string",
|
||||
"default-value": "none"
|
||||
}
|
||||
},
|
||||
"shield": {
|
||||
"name": {
|
||||
"css": "shield-name",
|
||||
"type": "none"
|
||||
},
|
||||
"face-name": {
|
||||
"css": "shield-name",
|
||||
"type": "string"
|
||||
},
|
||||
"size": {
|
||||
"css": "shield-size",
|
||||
"type": "int"
|
||||
},
|
||||
"fill": {
|
||||
"css": "shield-fill",
|
||||
"type": "color"
|
||||
},
|
||||
"min-distance": {
|
||||
"css": "shield-min-distance",
|
||||
"type": "int",
|
||||
"default-value": 0,
|
||||
"doc": "Minimum distance to the next shield symbol, not necessarily the same shield."
|
||||
},
|
||||
"spacing": {
|
||||
"css": "shield-spacing",
|
||||
"type": "int",
|
||||
"default-value": 0,
|
||||
"doc": "The spacing between repeated occurrences of the same shield"
|
||||
},
|
||||
"character-spacing": {
|
||||
"css": "shield-spacing",
|
||||
"type": "int",
|
||||
"default-value": 0,
|
||||
"doc": "Horizontal spacing between characters (in pixels). Currently works for point placement only, not line placement."
|
||||
},
|
||||
"line-spacing": {
|
||||
"css": "shield-line-spacing",
|
||||
"doc": "Vertical spacing between lines of multiline labels (in pixels)",
|
||||
"type": "int"
|
||||
},
|
||||
"file": {
|
||||
"css": "shield-file",
|
||||
"type": "uri"
|
||||
},
|
||||
"width": {
|
||||
"css": "shield-width",
|
||||
"type": "int",
|
||||
"default-value": "The image's width"
|
||||
},
|
||||
"height": {
|
||||
"css": "shield-height",
|
||||
"type": "int",
|
||||
"default-value": "The image's height"
|
||||
},
|
||||
"type": {
|
||||
"css": "shield-type",
|
||||
"type": "None",
|
||||
"default-value": "The type of the image file: e.g. png"
|
||||
},
|
||||
"meta-output": {
|
||||
"css": "shield-meta-output",
|
||||
"type": "string",
|
||||
"default-value": "",
|
||||
"default-meaning": "No MetaWriter Output"
|
||||
},
|
||||
"meta-writer": {
|
||||
"css": "shield-meta-writer",
|
||||
"type": "string",
|
||||
"default-value": ""
|
||||
}
|
||||
},
|
||||
"line-pattern": {
|
||||
"file": {
|
||||
"css": "line-pattern-file",
|
||||
"type": "uri"
|
||||
},
|
||||
"width": {
|
||||
"css": "line-pattern-width",
|
||||
"type": "int"
|
||||
},
|
||||
"height": {
|
||||
"css": "line-pattern-height",
|
||||
"type": "int"
|
||||
},
|
||||
"type": {
|
||||
"css": "line-pattern-type",
|
||||
"type": "none"
|
||||
},
|
||||
"meta-output": {
|
||||
"css": "line-pattern-meta-output",
|
||||
"type": "string",
|
||||
"default-value": "",
|
||||
"default-meaning": "No MetaWriter Output"
|
||||
},
|
||||
"meta-writer": {
|
||||
"css": "line-pattern-meta-writer",
|
||||
"type": "string",
|
||||
"default-value": ""
|
||||
}
|
||||
},
|
||||
"polygon-pattern": {
|
||||
"file": {
|
||||
"css": "polygon-pattern-file",
|
||||
"type": "uri"
|
||||
},
|
||||
"width": {
|
||||
"css": "polygon-pattern-width",
|
||||
"type": "int"
|
||||
},
|
||||
"height": {
|
||||
"css": "polygon-pattern-height",
|
||||
"type": "int"
|
||||
},
|
||||
"type": {
|
||||
"css": "polygon-pattern-type",
|
||||
"type": "none"
|
||||
},
|
||||
"meta-output": {
|
||||
"css": "polygon-pattern-meta-output",
|
||||
"type": "string",
|
||||
"default-value": "",
|
||||
"default-meaning": "No MetaWriter Output"
|
||||
},
|
||||
"meta-writer": {
|
||||
"css": "polygon-pattern-meta-writer",
|
||||
"type": "string",
|
||||
"default-value": ""
|
||||
}
|
||||
},
|
||||
"raster": {
|
||||
"opacity": {
|
||||
"css": "raster-opacity",
|
||||
"default-value": 1,
|
||||
"type": "float"
|
||||
},
|
||||
"mode": {
|
||||
"css": "raster-mode",
|
||||
"default-value": "normal",
|
||||
"type": [
|
||||
"normal",
|
||||
"grain_merge",
|
||||
"grain_merge2",
|
||||
"multiply",
|
||||
"multiply2",
|
||||
"divide",
|
||||
"divide2",
|
||||
"screen",
|
||||
"hard_light"
|
||||
]
|
||||
},
|
||||
"scaling": {
|
||||
"css": "raster-scaling",
|
||||
"type": [
|
||||
"fast",
|
||||
"bilinear",
|
||||
"bilinear8"
|
||||
]
|
||||
}
|
||||
},
|
||||
"point": {
|
||||
"file": {
|
||||
"css": "point-file",
|
||||
"type": "uri"
|
||||
},
|
||||
"width": {
|
||||
"css": "point-width",
|
||||
"type": "int"
|
||||
},
|
||||
"height": {
|
||||
"css": "point-height",
|
||||
"type": "int"
|
||||
},
|
||||
"type": {
|
||||
"css": "point-type",
|
||||
"type": "none"
|
||||
},
|
||||
"allow-overlap": {
|
||||
"css": "point-allow-overlap",
|
||||
"type": "boolean"
|
||||
},
|
||||
"meta-output": {
|
||||
"css": "point-meta-output",
|
||||
"type": "string",
|
||||
"default-value": "",
|
||||
"default-meaning": "No MetaWriter Output"
|
||||
},
|
||||
"meta-writer": {
|
||||
"css": "point-meta-writer",
|
||||
"type": "string",
|
||||
"default-value": ""
|
||||
}
|
||||
},
|
||||
"text": {
|
||||
"face-name": {
|
||||
"css": "text-face-name",
|
||||
"type": "string"
|
||||
},
|
||||
"size": {
|
||||
"css": "text-size",
|
||||
"type": "integer"
|
||||
},
|
||||
"ratio": {
|
||||
"css": "text-ratio",
|
||||
"type": "integer",
|
||||
"type": "none"
|
||||
},
|
||||
"wrap-width": {
|
||||
"css": "text-wrap-width",
|
||||
"doc": "Length of a chunk of text in characters before wrapping text",
|
||||
"type": "integer"
|
||||
},
|
||||
"spacing": {
|
||||
"css": "text-spacing",
|
||||
"type": "integer"
|
||||
},
|
||||
"character-spacing": {
|
||||
"css": "text-character-spacing",
|
||||
"type": "integer",
|
||||
"default-value": 0
|
||||
},
|
||||
"line-spacing": {
|
||||
"css": "text-line-spacing",
|
||||
"type": "integer"
|
||||
},
|
||||
"label-position-tolerance": {
|
||||
"css": "text-label-position-tolerance",
|
||||
"type": "integer"
|
||||
},
|
||||
"max-char-angle-delta": {
|
||||
"css": "text-max-char-angle-delta",
|
||||
"type": "integer"
|
||||
},
|
||||
"fill": {
|
||||
"css": "text-fill",
|
||||
"type": "color"
|
||||
},
|
||||
"halo-fill": {
|
||||
"css": "text-halo-fill",
|
||||
"docs": "Color of the text halo",
|
||||
"type": "color"
|
||||
},
|
||||
"halo-radius": {
|
||||
"css": "text-halo-radius",
|
||||
"type": "integer"
|
||||
},
|
||||
"dx": {
|
||||
"css": "text-dx",
|
||||
"type": "integer"
|
||||
},
|
||||
"dy": {
|
||||
"css": "text-dy",
|
||||
"type": "integer"
|
||||
},
|
||||
"avoid-edges": {
|
||||
"css": "text-avoid-edges",
|
||||
"doc": "Tell positioning algorithm to avoid labeling near intersection edges.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"min-distance": {
|
||||
"css": "text-min-distance",
|
||||
"type": "integer"
|
||||
},
|
||||
"allow-overlap": {
|
||||
"css": "text-allow-overlap",
|
||||
"type": "boolean"
|
||||
},
|
||||
"placement": {
|
||||
"css": "text-placement",
|
||||
"type": [
|
||||
"point",
|
||||
"line"
|
||||
]
|
||||
},
|
||||
"transform": {
|
||||
"css": "text-transform",
|
||||
"type": [
|
||||
"point",
|
||||
"line",
|
||||
"uppercase",
|
||||
"lowercase"
|
||||
]
|
||||
},
|
||||
"meta-output": {
|
||||
"css": "text-meta-output",
|
||||
"type": "string",
|
||||
"default-value": "",
|
||||
"default-meaning": "No MetaWriter Output"
|
||||
},
|
||||
"meta-writer": {
|
||||
"css": "text-meta-writer",
|
||||
"type": "string",
|
||||
"default-value": ""
|
||||
}
|
||||
},
|
||||
"inline": {
|
||||
"color": {
|
||||
"css": "inline-color",
|
||||
"default-value": "black",
|
||||
"type": "color"
|
||||
},
|
||||
"width": {
|
||||
"css": "inline-width",
|
||||
"type": "float"
|
||||
},
|
||||
"opacity": {
|
||||
"css": "inline-opacity",
|
||||
"default-value": 1,
|
||||
"type": "float"
|
||||
},
|
||||
"join": {
|
||||
"css": "inline-join",
|
||||
"default-value": "miter",
|
||||
"type": [
|
||||
"miter",
|
||||
"round",
|
||||
"bevel"
|
||||
]
|
||||
},
|
||||
"cap": {
|
||||
"css": "inline-cap",
|
||||
"default-value": "butt",
|
||||
"type": [
|
||||
"butt",
|
||||
"round",
|
||||
"square"
|
||||
]
|
||||
},
|
||||
"dasharray": {
|
||||
"css": "inline-dasharray",
|
||||
"type": "numbers"
|
||||
},
|
||||
"meta-output": {
|
||||
"css": "inline-meta-output",
|
||||
"type": "string",
|
||||
"default-value": "none",
|
||||
"default-meaning": "No MetaWriter Output"
|
||||
},
|
||||
"meta-writer": {
|
||||
"css": "inline-meta-writer",
|
||||
"type": "string",
|
||||
"default-value": "none"
|
||||
}
|
||||
},
|
||||
"outline": {
|
||||
"color": {
|
||||
"css": "outline-color",
|
||||
"default-value": "black",
|
||||
"type": "color"
|
||||
},
|
||||
"width": {
|
||||
"css": "outline-width",
|
||||
"default-value": 1,
|
||||
"type": "float"
|
||||
},
|
||||
"opacity": {
|
||||
"css": "outline-opacity",
|
||||
"default-value": 1,
|
||||
"type": "float"
|
||||
},
|
||||
"join": {
|
||||
"css": "outline-join",
|
||||
"default-value": "miter",
|
||||
"type": [
|
||||
"miter",
|
||||
"round",
|
||||
"bevel"
|
||||
]
|
||||
},
|
||||
"cap": {
|
||||
"css": "outline-cap",
|
||||
"default-value": "butt",
|
||||
"type": [
|
||||
"butt",
|
||||
"round",
|
||||
"square"
|
||||
]
|
||||
},
|
||||
"dasharray": {
|
||||
"css": "outline-dasharray",
|
||||
"type": "numbers"
|
||||
},
|
||||
"meta-output": {
|
||||
"css": "outline-meta-output",
|
||||
"type": "string",
|
||||
"default-value": "none",
|
||||
"default-meaning": "No MetaWriter Output"
|
||||
},
|
||||
"meta-writer": {
|
||||
"css": "outline-meta-writer",
|
||||
"type": "string",
|
||||
"default-value": "none"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,15 +1,15 @@
|
||||
var less, tree;
|
||||
var mess, tree;
|
||||
|
||||
if (typeof(window) === 'undefined') {
|
||||
less = exports,
|
||||
tree = require('less/tree');
|
||||
mess = exports,
|
||||
tree = require('mess/tree');
|
||||
} else {
|
||||
if (typeof(window.less) === 'undefined') { window.less = {} }
|
||||
less = window.less,
|
||||
tree = window.less.tree = {};
|
||||
if (typeof(window.mess) === 'undefined') { window.mess = {} }
|
||||
mess = window.mess,
|
||||
tree = window.mess.tree = {};
|
||||
}
|
||||
//
|
||||
// less.js - parser
|
||||
// mess.js - parser
|
||||
//
|
||||
// A relatively straight-forward predictive parser.
|
||||
// There is no tokenization/lexing stage, the input is parsed
|
||||
@ -41,7 +41,7 @@ if (typeof(window) === 'undefined') {
|
||||
// It also takes care of moving all the indices forwards.
|
||||
//
|
||||
//
|
||||
less.Parser = function Parser(env) {
|
||||
mess.Parser = function Parser(env) {
|
||||
var input, // LeSS input string
|
||||
i, // current index in `input`
|
||||
j, // current chunk
|
||||
@ -62,7 +62,7 @@ less.Parser = function Parser(env) {
|
||||
paths: env && env.paths || [], // Search paths, when importing
|
||||
queue: [], // Files which haven't been imported yet
|
||||
files: {}, // Holds the imported parse trees
|
||||
mime: env && env.mime, // MIME type of .less files
|
||||
mime: env && env.mime, // MIME type of .mess files
|
||||
push: function (path, callback) {
|
||||
var that = this;
|
||||
this.queue.push(path);
|
||||
@ -70,7 +70,7 @@ less.Parser = function Parser(env) {
|
||||
//
|
||||
// Import a file asynchronously
|
||||
//
|
||||
less.Parser.importer(path, this.paths, function (root) {
|
||||
mess.Parser.importer(path, this.paths, function (root) {
|
||||
that.queue.splice(that.queue.indexOf(path), 1); // Remove the path from the queue
|
||||
that.files[path] = root; // Store the root
|
||||
|
||||
@ -165,7 +165,7 @@ less.Parser = function Parser(env) {
|
||||
this.env = env = env || {};
|
||||
|
||||
// The optimization level dictates the thoroughness of the parser,
|
||||
// the lower the number, the less nodes it will create in the tree.
|
||||
// the lower the number, the mess nodes it will create in the tree.
|
||||
// This could matter for debugging, or if you want to access
|
||||
// the individual nodes in the tree.
|
||||
this.optimization = ('optimization' in this.env) ? this.env.optimization : 1;
|
||||
@ -991,7 +991,7 @@ if (typeof(window) !== 'undefined') {
|
||||
//
|
||||
// Used by `@import` directives
|
||||
//
|
||||
less.Parser.importer = function (path, paths, callback, env) {
|
||||
mess.Parser.importer = function (path, paths, callback, env) {
|
||||
if (path.charAt(0) !== '/' && paths.length > 0) {
|
||||
path = paths[0] + path;
|
||||
}
|
@ -1,14 +1,14 @@
|
||||
var path = require('path'),
|
||||
fs = require('fs'),
|
||||
External = require('./external'),
|
||||
Step = require('./step'),
|
||||
Step = require('step'),
|
||||
_ = require('underscore')._,
|
||||
sys = require('sys');
|
||||
|
||||
require.paths.unshift(path.join(__dirname, '..', 'lib'));
|
||||
|
||||
var mess = {},
|
||||
less = require('less');
|
||||
mess = require('mess');
|
||||
|
||||
/**
|
||||
* Convert a two-element-per-item Array
|
||||
@ -129,11 +129,11 @@ mess.Renderer = function Renderer(env) {
|
||||
var options = {},
|
||||
group = this.group();
|
||||
for (var i = 0, l = results.length; i < l; i++) {
|
||||
new(less.Parser)({
|
||||
new(mess.Parser)({
|
||||
filename: s
|
||||
}).parse(results[i][1], function(err, tree) {
|
||||
if (err) {
|
||||
less.writeError(err, options);
|
||||
mess.writeError(err, options);
|
||||
process.exit(1);
|
||||
} else {
|
||||
try {
|
||||
@ -142,7 +142,7 @@ mess.Renderer = function Renderer(env) {
|
||||
tree.toCSS({ compress: false }),
|
||||
tree]);
|
||||
} catch (e) {
|
||||
less.writeError(e, options);
|
||||
mess.writeError(e, options);
|
||||
process.exit(2);
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
require('less/tree').find = function (obj, fun) {
|
||||
require('mess/tree').find = function (obj, fun) {
|
||||
for (var i = 0, r; i < obj.length; i++) {
|
||||
if (r = fun.call(obj, obj[i])) { return r }
|
||||
}
|
BIN
lib/mess/tree/.reference.js.swp
Normal file
BIN
lib/mess/tree/.reference.js.swp
Normal file
Binary file not shown.
@ -11,4 +11,4 @@ tree.Alpha.prototype = {
|
||||
eval: function () { return this }
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -10,4 +10,4 @@ tree.Anonymous.prototype = {
|
||||
eval: function () { return this }
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -22,4 +22,4 @@ tree.Attribute.prototype.toCSS = function (env) {
|
||||
'</Filter>';
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -36,4 +36,4 @@ tree.Call.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -91,4 +91,4 @@ tree.Color.prototype = {
|
||||
};
|
||||
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -11,4 +11,4 @@ tree.Comment.prototype = {
|
||||
eval: function () { return this }
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -17,4 +17,4 @@ tree.Comparison.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -36,4 +36,4 @@ tree.Dimension.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -30,4 +30,4 @@ tree.Directive.prototype = {
|
||||
rulesets: function () { return tree.Ruleset.prototype.rulesets.apply(this.ruleset) }
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -32,4 +32,4 @@ tree.Combinator.prototype.toCSS = function (env) {
|
||||
}[this.value];
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -18,4 +18,4 @@ tree.Expression.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -49,4 +49,4 @@ tree.Filter.prototype.toCSS = function (env) {
|
||||
'</Filter>';
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -16,16 +16,16 @@ tree.Import = function (path, imports) {
|
||||
|
||||
this._path = path;
|
||||
|
||||
// The '.less' extension is optional
|
||||
// The '.mess' extension is optional
|
||||
if (path instanceof tree.Quoted) {
|
||||
this.path = /\.(le?|c)ss$/.test(path.value) ? path.value : path.value + '.less';
|
||||
this.path = /\.(le?|c)ss$/.test(path.value) ? path.value : path.value + '.mess';
|
||||
} else {
|
||||
this.path = path.value.value || path.value;
|
||||
}
|
||||
|
||||
this.css = /css$/.test(this.path);
|
||||
|
||||
// Only pre-compile .less files
|
||||
// Only pre-compile .mess files
|
||||
if (! this.css) {
|
||||
imports.push(this.path, function (root) {
|
||||
if (! root) {
|
||||
@ -74,4 +74,4 @@ tree.Import.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -34,5 +34,5 @@ tree.JavaScript.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
||||
|
@ -14,4 +14,4 @@ tree.Keyword.prototype = {
|
||||
toCSS: function () { return this.value }
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -96,4 +96,4 @@ tree.mixin.Definition.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -29,4 +29,4 @@ tree.operate = function (op, a, b) {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -14,4 +14,4 @@ tree.Quoted.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -675,4 +675,4 @@ tree.Reference.validValue = function(selector, value) {
|
||||
}
|
||||
}
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -58,4 +58,4 @@ tree.Shorthand.prototype = {
|
||||
eval: function () { return this }
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -197,4 +197,4 @@ tree.Ruleset.prototype = {
|
||||
return css.join('') + (env.compress ? '\n' : '');
|
||||
}
|
||||
};
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -22,4 +22,4 @@ tree.Selector.prototype.toCSS = function (env) {
|
||||
}).join('--');
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -23,4 +23,4 @@ tree.URL.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -24,4 +24,4 @@ tree.Value.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -17,4 +17,4 @@ tree.Variable.prototype = {
|
||||
}
|
||||
};
|
||||
|
||||
})(require('less/tree'));
|
||||
})(require('mess/tree'));
|
@ -1,46 +0,0 @@
|
||||
#yelow {
|
||||
#short {
|
||||
color: #fea;
|
||||
}
|
||||
#long {
|
||||
color: #ffeeaa;
|
||||
}
|
||||
#rgba {
|
||||
color: rgba(255, 238, 170, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
#blue {
|
||||
#short {
|
||||
color: #00f;
|
||||
}
|
||||
#long {
|
||||
color: #0000ff;
|
||||
}
|
||||
#rgba {
|
||||
color: rgba(0, 0, 255, 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
#alpha #hsla {
|
||||
color: hsla(11, 20%, 20%, 0.6);
|
||||
}
|
||||
|
||||
#overflow {
|
||||
.a { color: #111111 - #444444; } // #000000
|
||||
.b { color: #eee + #fff; } // #ffffff
|
||||
.c { color: #aaa * 3; } // #ffffff
|
||||
.d { color: #00ee00 + #009900; } // #00ff00
|
||||
}
|
||||
|
||||
#grey {
|
||||
color: rgb(200, 200, 200);
|
||||
}
|
||||
|
||||
#808080 {
|
||||
color: hsl(50, 0%, 50%);
|
||||
}
|
||||
|
||||
#00ff00 {
|
||||
color: hsl(120, 100%, 50%);
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
/******************\
|
||||
* *
|
||||
* Comment Header *
|
||||
* *
|
||||
\******************/
|
||||
|
||||
/*
|
||||
|
||||
Comment
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
* Comment Test
|
||||
*
|
||||
* - cloudhead (http://cloudhead.net)
|
||||
*
|
||||
*/
|
||||
|
||||
////////////////
|
||||
@var: "content";
|
||||
////////////////
|
||||
|
||||
/* Colors
|
||||
* ------
|
||||
* #EDF8FC (background blue)
|
||||
* #166C89 (darkest blue)
|
||||
*
|
||||
* Text:
|
||||
* #333 (standard text) // A comment within a comment!
|
||||
* #1F9EC9 (standard link)
|
||||
*
|
||||
*/
|
||||
|
||||
/* @group Variables
|
||||
------------------- */
|
||||
#comments /* boo */ {
|
||||
/**/ // An empty comment
|
||||
color: red; /* A C-style comment */
|
||||
background-color: orange; // A little comment
|
||||
font-size: 12px;
|
||||
|
||||
/* lost comment */ content: @var;
|
||||
|
||||
border: 1px solid black;
|
||||
|
||||
// padding & margin //
|
||||
padding: 0; // }{ '"
|
||||
margin: 2em;
|
||||
} //
|
||||
|
||||
/* commented out
|
||||
#more-comments {
|
||||
color: grey;
|
||||
}
|
||||
*/
|
||||
|
||||
#last { color: blue }
|
||||
//
|
@ -1,55 +0,0 @@
|
||||
.comma-delimited {
|
||||
background: url(bg.jpg) no-repeat, url(bg.png) repeat-x top left, url(bg);
|
||||
text-shadow: -1px -1px 1px red, 6px 5px 5px yellow;
|
||||
-moz-box-shadow: 0pt 0pt 2px rgba(255, 255, 255, 0.4) inset,
|
||||
0pt 4px 6px rgba(255, 255, 255, 0.4) inset;
|
||||
}
|
||||
@font-face {
|
||||
font-family: Headline;
|
||||
src: local(Futura-Medium),
|
||||
url(fonts.svg#MyGeometricModern) format("svg");
|
||||
}
|
||||
.other {
|
||||
-moz-transform: translate(0, 11em) rotate(-90deg);
|
||||
}
|
||||
p:not([class*="lead"]) {
|
||||
color: black;
|
||||
}
|
||||
|
||||
input[type="text"].class#id[attr=32]:not(1) {
|
||||
color: white;
|
||||
}
|
||||
|
||||
div#id.class[a=1][b=2].class:not(1) {
|
||||
color: white;
|
||||
}
|
||||
|
||||
ul.comma > li:not(:only-child)::after {
|
||||
color: white;
|
||||
}
|
||||
|
||||
ol.comma > li:nth-last-child(2)::after {
|
||||
color: white;
|
||||
}
|
||||
|
||||
li:nth-child(4n+1),
|
||||
li:nth-child(-5n),
|
||||
li:nth-child(-n+2) {
|
||||
color: white;
|
||||
}
|
||||
|
||||
a[href^="http://"] {
|
||||
color: black;
|
||||
}
|
||||
|
||||
a[href$="http://"] {
|
||||
color: black;
|
||||
}
|
||||
|
||||
form[data-disabled] {
|
||||
color: black;
|
||||
}
|
||||
|
||||
p::before {
|
||||
color: black;
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
@ugly: fuchsia;
|
||||
|
||||
.escape\|random\|char {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.mixin\!tUp {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
// class="404"
|
||||
.\34 04 {
|
||||
background: red;
|
||||
|
||||
strong {
|
||||
color: @ugly;
|
||||
.mixin\!tUp;
|
||||
}
|
||||
}
|
||||
|
||||
.trailingTest\+ {
|
||||
color: red;
|
||||
}
|
||||
|
||||
/* This hideous test of hideousness checks for the selector "blockquote" with various permutations of hex escapes */
|
||||
\62\6c\6f \63 \6B \0071 \000075o\74 e {
|
||||
color: silver;
|
||||
}
|
@ -1,95 +0,0 @@
|
||||
@charset "utf-8";
|
||||
div { color: black; }
|
||||
div { width: 99%; }
|
||||
|
||||
* {
|
||||
min-width: 45em;
|
||||
}
|
||||
|
||||
h1, h2 > a > p, h3 {
|
||||
color: none;
|
||||
}
|
||||
|
||||
div.class {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
div#id {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.class#id {
|
||||
color: purple;
|
||||
}
|
||||
|
||||
.one.two.three {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
@media print {
|
||||
font-size: 3em;
|
||||
}
|
||||
|
||||
@media screen {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Garamond Pro';
|
||||
src: url("/fonts/garamond-pro.ttf");
|
||||
}
|
||||
|
||||
a:hover, a:link {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
p, p:first-child {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
q:lang(no) {
|
||||
quotes: none;
|
||||
}
|
||||
|
||||
p + h1 {
|
||||
font-size: 2.2em;
|
||||
}
|
||||
|
||||
#shorthands {
|
||||
border: 1px solid #000;
|
||||
font: 12px/16px Arial;
|
||||
font: 100%/16px Arial;
|
||||
margin: 1px 0;
|
||||
padding: 0 auto;
|
||||
background: url("http://www.lesscss.org/spec.html") no-repeat 0 4px;
|
||||
}
|
||||
|
||||
#more-shorthands {
|
||||
margin: 0;
|
||||
padding: 1px 0 2px 0;
|
||||
font: normal small/20px 'Trebuchet MS', Verdana, sans-serif;
|
||||
}
|
||||
|
||||
.misc {
|
||||
-moz-border-radius: 2px;
|
||||
display: -moz-inline-stack;
|
||||
width: .1em;
|
||||
background-color: #009998;
|
||||
background-image: url(images/image.jpg);
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(red), to(blue));
|
||||
margin: ;
|
||||
}
|
||||
|
||||
#important {
|
||||
color: red !important;
|
||||
width: 100%!important;
|
||||
height: 20px ! important;
|
||||
}
|
||||
|
||||
#data-uri {
|
||||
background: url(data:image/png;charset=utf-8;base64,
|
||||
kiVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD/
|
||||
k//+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4U
|
||||
kg9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC);
|
||||
background-image: url(data:image/x-png,f9difSSFIIGFIFJD1f982FSDKAA9==);
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
#functions {
|
||||
@var: 10;
|
||||
color: color("evil red"); // #660000
|
||||
width: increment(15);
|
||||
height: undefined("self");
|
||||
border-width: add(2, 3);
|
||||
variable: increment(@var);
|
||||
}
|
||||
|
||||
#built-in {
|
||||
@r: 32;
|
||||
escaped: e("-Some::weird(#thing, y)");
|
||||
lighten: lighten(#ff0000, 40%);
|
||||
darken: darken(#ff0000, 40%);
|
||||
saturate: saturate(#29332f, 20%);
|
||||
desaturate: desaturate(#203c31, 20%);
|
||||
greyscale: greyscale(#203c31);
|
||||
spin-p: spin(hsl(340, 50%, 50%), 40);
|
||||
spin-n: spin(hsl(30, 50%, 50%), -40);
|
||||
format: %("rgb(%d, %d, %d)", @r, 128, 64);
|
||||
format-string: %("hello %s", "world");
|
||||
eformat: e(%("rgb(%d, %d, %d)", @r, 128, 64));
|
||||
|
||||
hue: hue(hsl(98, 12%, 95%));
|
||||
saturation: saturation(hsl(98, 12%, 95%));
|
||||
lightness: lightness(hsl(98, 12%, 95%));
|
||||
}
|
||||
|
||||
#alpha {
|
||||
alpha: darken(hsla(25, 50%, 50%, 0.6), 10%);
|
||||
}
|
8
test/less/import.less
vendored
8
test/less/import.less
vendored
@ -1,8 +0,0 @@
|
||||
@import url("import/import-test-a.less");
|
||||
//@import url("import/import-test-a.less");
|
||||
|
||||
#import-test {
|
||||
.mixin;
|
||||
width: 10px;
|
||||
height: @a + 10%;
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
@import "import-test-b.less";
|
||||
@a: 20%;
|
@ -1,8 +0,0 @@
|
||||
@import "import-test-c";
|
||||
|
||||
@b: 100%;
|
||||
|
||||
.mixin {
|
||||
height: 10px;
|
||||
color: @c;
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
|
||||
@import "import-test-d.css";
|
||||
@c: red;
|
||||
|
||||
#import {
|
||||
color: @c;
|
||||
}
|
@ -1 +0,0 @@
|
||||
#css { color: yellow; }
|
@ -1,16 +0,0 @@
|
||||
.eval {
|
||||
js: `42`;
|
||||
js: `1 + 1`;
|
||||
js: `"hello world"`;
|
||||
sigkill: `process.SIGKILL`;
|
||||
ternary: `(1 + 1 == 2 ? true : false)`;
|
||||
}
|
||||
.scope {
|
||||
@foo: 42;
|
||||
var: `this.foo.toJS()`;
|
||||
escaped: e(`2 + 5 + 'px'`);
|
||||
}
|
||||
.vars {
|
||||
@var: `4 + 4`;
|
||||
width: @var;
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
@var: @a;
|
||||
@a: 100%;
|
||||
|
||||
.lazy-eval {
|
||||
width: @var;
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
|
||||
// For now, variables can't be declared inside @media blocks.
|
||||
|
||||
@var: 42;
|
||||
|
||||
@media print {
|
||||
.class {
|
||||
color: blue;
|
||||
.sub {
|
||||
width: @var;
|
||||
}
|
||||
}
|
||||
.top, header > h1 {
|
||||
color: #222 * 2;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen {
|
||||
@base: 8;
|
||||
body { max-width: @base * 60; }
|
||||
}
|
||||
|
||||
@media all and (orientation:portrait) {
|
||||
aside { float: none; }
|
||||
}
|
@ -1,107 +0,0 @@
|
||||
.mixin (@a: 1px, @b: 50%) {
|
||||
width: @a * 5;
|
||||
height: @b - 1%;
|
||||
}
|
||||
|
||||
.mixina (@style, @width, @color: black) {
|
||||
border: @width @style @color;
|
||||
}
|
||||
|
||||
.mixiny
|
||||
(@a: 0, @b: 0) {
|
||||
margin: @a;
|
||||
padding: @b;
|
||||
}
|
||||
|
||||
.hidden() {
|
||||
color: transparent; // asd
|
||||
}
|
||||
|
||||
#hidden {
|
||||
.hidden;
|
||||
.hidden();
|
||||
}
|
||||
|
||||
.two-args {
|
||||
color: blue;
|
||||
.mixin(2px, 100%);
|
||||
.mixina(dotted, 2px);
|
||||
}
|
||||
|
||||
.one-arg {
|
||||
.mixin(3px);
|
||||
}
|
||||
|
||||
.no-parens {
|
||||
.mixin;
|
||||
}
|
||||
|
||||
.no-args {
|
||||
.mixin();
|
||||
}
|
||||
|
||||
.var-args {
|
||||
@var: 9;
|
||||
.mixin(@var, @var * 2);
|
||||
}
|
||||
|
||||
.multi-mix {
|
||||
.mixin(2px, 30%);
|
||||
.mixiny(4, 5);
|
||||
}
|
||||
|
||||
.maxa(@arg1: 10, @arg2: #f00) {
|
||||
padding: @arg1 * 2px;
|
||||
color: @arg2;
|
||||
}
|
||||
|
||||
body {
|
||||
.maxa(15);
|
||||
}
|
||||
|
||||
@glob: 5;
|
||||
.global-mixin(@a:2) {
|
||||
width: @glob + @a;
|
||||
}
|
||||
|
||||
.scope-mix {
|
||||
.global-mixin(3);
|
||||
}
|
||||
|
||||
.nested-ruleset (@width: 200px) {
|
||||
width: @width;
|
||||
.column { margin: @width; }
|
||||
}
|
||||
.content {
|
||||
.nested-ruleset(600px);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
.same-var-name2(@radius) {
|
||||
radius: @radius;
|
||||
}
|
||||
.same-var-name(@radius) {
|
||||
.same-var-name2(@radius);
|
||||
}
|
||||
#same-var-name {
|
||||
.same-var-name(5px);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
.var-inside () {
|
||||
@var: 10px;
|
||||
width: @var;
|
||||
}
|
||||
#var-inside { .var-inside; }
|
||||
|
||||
// # mixins
|
||||
|
||||
#id-mixin () {
|
||||
color: red;
|
||||
}
|
||||
.id-class {
|
||||
#id-mixin();
|
||||
#id-mixin;
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
.scope {
|
||||
@var: 99px;
|
||||
.mixin () {
|
||||
width: @var;
|
||||
}
|
||||
}
|
||||
|
||||
.class {
|
||||
.scope > .mixin;
|
||||
}
|
||||
|
||||
.overwrite {
|
||||
@var: 0px;
|
||||
.scope > .mixin;
|
||||
}
|
||||
|
||||
.nested {
|
||||
@var: 5px;
|
||||
.mixin () {
|
||||
width: @var;
|
||||
}
|
||||
.class {
|
||||
@var: 10px;
|
||||
.mixin;
|
||||
}
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
.mix-inner (@var) {
|
||||
border-width: @var;
|
||||
}
|
||||
|
||||
.mix (@a: 10) {
|
||||
.inner {
|
||||
height: @a * 10;
|
||||
|
||||
.innest {
|
||||
width: @a;
|
||||
.mix-inner(@a * 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.class {
|
||||
.mix(30);
|
||||
}
|
||||
|
||||
.class2 {
|
||||
.mix(60);
|
||||
}
|
@ -1,96 +0,0 @@
|
||||
.mixin () {
|
||||
zero: 0;
|
||||
}
|
||||
.mixin (@a: 1px) {
|
||||
one: 1;
|
||||
}
|
||||
.mixin (@a) {
|
||||
one-req: 1;
|
||||
}
|
||||
.mixin (@a: 1px, @b: 2px) {
|
||||
two: 2;
|
||||
}
|
||||
|
||||
.mixin (@a, @b, @c) {
|
||||
three-req: 3;
|
||||
}
|
||||
|
||||
.mixin (@a: 1px, @b: 2px, @c: 3px) {
|
||||
three: 3;
|
||||
}
|
||||
|
||||
.zero {
|
||||
.mixin();
|
||||
}
|
||||
|
||||
.one {
|
||||
.mixin(1);
|
||||
}
|
||||
|
||||
.two {
|
||||
.mixin(1, 2);
|
||||
}
|
||||
|
||||
.three {
|
||||
.mixin(1, 2, 3);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
.mixout ('left') {
|
||||
left: 1;
|
||||
}
|
||||
|
||||
.mixout ('right') {
|
||||
right: 1;
|
||||
}
|
||||
|
||||
.left {
|
||||
.mixout('left');
|
||||
}
|
||||
.right {
|
||||
.mixout('right');
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
.border (@side, @width) {
|
||||
color: black;
|
||||
.border-side(@side, @width);
|
||||
}
|
||||
.border-side (left, @w) {
|
||||
border-left: @w;
|
||||
}
|
||||
.border-side (right, @w) {
|
||||
border-right: @w;
|
||||
}
|
||||
|
||||
.border-right {
|
||||
.border(right, 4px);
|
||||
}
|
||||
.border-left {
|
||||
.border(left, 4px);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
|
||||
.border-radius (@r) {
|
||||
both: @r * 10;
|
||||
}
|
||||
.border-radius (@r, left) {
|
||||
left: @r;
|
||||
}
|
||||
.border-radius (@r, right) {
|
||||
right: @r;
|
||||
}
|
||||
|
||||
.only-right {
|
||||
.border-radius(33, right);
|
||||
}
|
||||
.only-left {
|
||||
.border-radius(33, left);
|
||||
}
|
||||
.left-right {
|
||||
.border-radius(33);
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
.mixin { border: 1px solid black; }
|
||||
.mixout { border-color: orange; }
|
||||
.borders { border-style: dashed; }
|
||||
|
||||
#namespace {
|
||||
.borders {
|
||||
border-style: dotted;
|
||||
}
|
||||
.biohazard {
|
||||
content: "death";
|
||||
.man {
|
||||
color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
#theme {
|
||||
> .mixin {
|
||||
background-color: grey;
|
||||
}
|
||||
}
|
||||
#container {
|
||||
color: black;
|
||||
.mixin;
|
||||
.mixout;
|
||||
#theme > .mixin;
|
||||
}
|
||||
|
||||
#header {
|
||||
.milk {
|
||||
color: white;
|
||||
.mixin;
|
||||
#theme > .mixin;
|
||||
}
|
||||
#cookie {
|
||||
.chips {
|
||||
#namespace .borders;
|
||||
.calories {
|
||||
#container;
|
||||
}
|
||||
}
|
||||
.borders;
|
||||
}
|
||||
}
|
||||
.secure-zone { #namespace .biohazard .man; }
|
||||
.direct {
|
||||
#namespace > .borders;
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
#operations {
|
||||
color: #110000 + #000011 + #001100; // #111111
|
||||
height: 10px / 2px + 6px - 1px * 2; // 9px
|
||||
width: 2 * 4 - 5em; // 3em
|
||||
.spacing {
|
||||
height: 10px / 2px+6px-1px*2;
|
||||
width: 2 * 4-5em;
|
||||
}
|
||||
substraction: 20 - 10 - 5 - 5; // 0
|
||||
division: 20 / 5 / 4; // 1
|
||||
}
|
||||
|
||||
@x: 4;
|
||||
@y: 12em;
|
||||
|
||||
.with-variables {
|
||||
height: @x + @y; // 16em
|
||||
width: 12 + @y; // 24em
|
||||
size: 5cm - @x; // 1cm
|
||||
}
|
||||
|
||||
.with-functions {
|
||||
color: rgb(200, 200, 200) / 2;
|
||||
color: 2 * hsl(0, 50%, 50%);
|
||||
color: rgb(10, 10, 10) + hsl(0, 50%, 50%);
|
||||
}
|
||||
|
||||
@z: -2;
|
||||
|
||||
.negative {
|
||||
height: 2px + @z; // 0px
|
||||
width: 2px - @z; // 4px
|
||||
}
|
||||
|
||||
.shorthands {
|
||||
padding: -1px 2px 0 -4px; //
|
||||
}
|
||||
|
||||
.colors {
|
||||
color: #123; // #112233
|
||||
border-color: #234 + #111111; // #334455
|
||||
background-color: #222222 - #fff; // #000000
|
||||
.other {
|
||||
color: 2 * #111; // #222222
|
||||
border-color: #333333 / 3 + #111; // #222222
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
.parens {
|
||||
@var: 1px;
|
||||
border: (@var * 2) solid black;
|
||||
margin: (@var * 1) (@var + 2) (4 * 4) 3;
|
||||
width: (6 * 6);
|
||||
padding: 2px (6px * 6px);
|
||||
}
|
||||
|
||||
.more-parens {
|
||||
@var: (2 * 2);
|
||||
padding: (2 * @var) 4 4 (@var * 1px);
|
||||
width: (@var * @var) * 6;
|
||||
height: (7 * 7) + (8 * 8);
|
||||
margin: 4 * (5 + 5) / 2 - (@var * 2);
|
||||
//margin: (6 * 6)px;
|
||||
}
|
||||
|
||||
.nested-parens {
|
||||
width: 2 * (4 * (2 + (1 + 6))) - 1;
|
||||
height: ((2+3)*(2+3) / (9-4)) + 1;
|
||||
}
|
||||
|
||||
.mixed-units {
|
||||
margin: 2px 4em 1 5pc;
|
||||
padding: (2px + 4px) 1em 2px 2;
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
#first > .one {
|
||||
> #second .two > #deux {
|
||||
width: 50%;
|
||||
#third {
|
||||
&:focus {
|
||||
color: black;
|
||||
#fifth {
|
||||
> #sixth {
|
||||
.seventh #eighth {
|
||||
+ #ninth {
|
||||
color: purple;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
height: 100%;
|
||||
}
|
||||
#fourth, #five, #six {
|
||||
color: #110000;
|
||||
.seven, .eight > #nine {
|
||||
border: 1px solid black;
|
||||
}
|
||||
#ten {
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
}
|
||||
font-size: 2em;
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
@x: blue;
|
||||
@z: transparent;
|
||||
@mix: none;
|
||||
|
||||
.mixin {
|
||||
@mix: #989;
|
||||
}
|
||||
|
||||
.tiny-scope {
|
||||
color: @mix; // #989
|
||||
.mixin;
|
||||
}
|
||||
|
||||
.scope1 {
|
||||
@y: orange;
|
||||
@z: black;
|
||||
color: @x; // blue
|
||||
border-color: @z; // black
|
||||
.hidden {
|
||||
@x: #131313;
|
||||
}
|
||||
.scope2 {
|
||||
@y: red;
|
||||
color: @x; // blue
|
||||
.scope3 {
|
||||
@local: white;
|
||||
color: @y; // red
|
||||
border-color: @z; // black
|
||||
background-color: @local; // white
|
||||
}
|
||||
}
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
h1, h2, h3 {
|
||||
a, p {
|
||||
&:hover {
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#all { color: blue; }
|
||||
#the { color: blue; }
|
||||
#same { color: blue; }
|
||||
|
||||
ul, li, div, q, blockquote, textarea {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
td {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
td, input {
|
||||
line-height: 1em;
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
#strings {
|
||||
background-image: url("http://son-of-a-banana.com");
|
||||
quotes: "~" "~";
|
||||
content: "#*%:&^,)!.(~*})";
|
||||
empty: "";
|
||||
brackets: "{" "}";
|
||||
}
|
||||
#comments {
|
||||
content: "/* hello */ // not-so-secret";
|
||||
}
|
||||
#single-quote {
|
||||
quotes: "'" "'";
|
||||
content: '""#!&""';
|
||||
empty: '';
|
||||
semi-colon: ';';
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
@a: 2;
|
||||
@x: @a * @a;
|
||||
@y: @x + 1;
|
||||
@z: @x * 2 + @y;
|
||||
|
||||
.variables {
|
||||
width: @z + 1cm; // 14cm
|
||||
}
|
||||
|
||||
@b: @a * 10;
|
||||
@c: #888;
|
||||
|
||||
@fonts: "Trebuchet MS", Verdana, sans-serif;
|
||||
@f: @fonts;
|
||||
|
||||
@quotes: "~" "~";
|
||||
@q: @quotes;
|
||||
|
||||
.variables {
|
||||
height: @b + @x + 0px; // 24px
|
||||
color: @c;
|
||||
font-family: @f;
|
||||
quotes: @q;
|
||||
}
|
||||
|
||||
.redefinition {
|
||||
@var: 4;
|
||||
@var: 2;
|
||||
@var: 3;
|
||||
three: @var;
|
||||
}
|
||||
|
||||
.values {
|
||||
@a: 'Trebuchet';
|
||||
@multi: 'A', B, C;
|
||||
font-family: @a, @a, @a;
|
||||
color: @c !important;
|
||||
url: url(@a);
|
||||
multi: something @multi, @a;
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
|
||||
|
||||
.whitespace
|
||||
{ color: white; }
|
||||
|
||||
.whitespace
|
||||
{
|
||||
color: white;
|
||||
}
|
||||
.whitespace
|
||||
{ color: white; }
|
||||
|
||||
.whitespace{color:white;}
|
||||
.whitespace { color : white ; }
|
||||
|
||||
.white,
|
||||
.space,
|
||||
.mania
|
||||
{ color: white; }
|
||||
|
||||
.no-semi-column { color: white }
|
||||
.no-semi-column {
|
||||
color: white;
|
||||
white-space: pre
|
||||
}
|
||||
.no-semi-column {border: 2px solid white}
|
||||
.newlines {
|
||||
background: the,
|
||||
great,
|
||||
wall;
|
||||
border: 2px
|
||||
solid
|
||||
black;
|
||||
}
|
||||
.empty {
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user