stylus-source 0.32.1 → 0.33.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 207a64add1d5ae7c9c221091a58b0ccceb060873
4
- data.tar.gz: 0b555d50adf55d4b39c81d355148a52f2ef2b9b2
3
+ metadata.gz: e43f1d0afc6bc5ef7a1e8b10f4db14c85882f229
4
+ data.tar.gz: f5aab3d545f9f2d8f3c818e18a67860518e3ea2d
5
5
  SHA512:
6
- metadata.gz: b89b6030f371acd7de7aaae3a362850496edde44a8ad9b4b99f8a0e58a84d50b8eee6059edc2f6637bbfbcc4676669aa0ce877df9f459435de01be378ab460a9
7
- data.tar.gz: b10b863520f2bc76135367a9c2d24cbe0863c8355b7ffb7c7fad7d0741e4d2dd7ead4881d0e6750e5c66f7cc155121312a0d1a33a943fd3315d4c069649abdda
6
+ metadata.gz: b4d427303372c6b71b85f0858cf370f93179b325c3b9a816696abfbe3cbab7a5054102f54bfe11cf775a12a4497216c99a423e39580cd090d56aa1646de567cc
7
+ data.tar.gz: 9303eaf8bd3b90779ad350a31f507cef1997e07b38856e686ad0139fae05fda4bc4c21519d38438b725bfeb61e53eb589abf6b9323caae49673ece09add56b4a
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.32.1
1
+ 0.33.0
data/vendor/bin/stylus CHANGED
@@ -91,7 +91,7 @@ var plugins = [];
91
91
  var urlFunction = false;
92
92
 
93
93
  /**
94
- * Include css on import.
94
+ * Include CSS on import.
95
95
  */
96
96
 
97
97
  var includeCSS = false;
@@ -121,21 +121,21 @@ var usage = [
121
121
  , ' Options:'
122
122
  , ''
123
123
  , ' -i, --interactive Start interactive REPL'
124
- , ' -u, --use <path> Utilize the stylus plugin at <path>'
125
- , ' -U, --inline Utilize image inlining via data uri support'
124
+ , ' -u, --use <path> Utilize the Stylus plugin at <path>'
125
+ , ' -U, --inline Utilize image inlining via data URI support'
126
126
  , ' -w, --watch Watch file(s) for changes and re-compile'
127
127
  , ' -o, --out <dir> Output to <dir> when passing files'
128
- , ' -C, --css <src> [dest] Convert css input to stylus'
128
+ , ' -C, --css <src> [dest] Convert CSS input to Stylus'
129
129
  , ' -I, --include <path> Add <path> to lookup paths'
130
- , ' -c, --compress Compress css output'
130
+ , ' -c, --compress Compress CSS output'
131
131
  , ' -d, --compare Display input along with output'
132
- , ' -f, --firebug Emits debug infos in the generated css that'
132
+ , ' -f, --firebug Emits debug infos in the generated CSS that'
133
133
  , ' can be used by the FireStylus Firebug plugin'
134
- , ' -l, --line-numbers Emits comments in the generated css'
135
- , ' indicating the corresponding stylus line'
134
+ , ' -l, --line-numbers Emits comments in the generated CSS'
135
+ , ' indicating the corresponding Stylus line'
136
136
  , ' --import <file> Import stylus <file>'
137
- , ' --include-css Include regular css on @import'
138
- , ' -V, --version Display the version of stylus'
137
+ , ' --include-css Include regular CSS on @import'
138
+ , ' -V, --version Display the version of Stylus'
139
139
  , ' -h, --help Display help information'
140
140
  , ''
141
141
  ].join('\n');
@@ -320,7 +320,7 @@ var options = {
320
320
 
321
321
  var str = '';
322
322
 
323
- // Convert css to stylus
323
+ // Convert CSS to Stylus
324
324
 
325
325
  if (convertCSS) {
326
326
  switch (files.length) {
@@ -350,7 +350,7 @@ if (convertCSS) {
350
350
  }
351
351
 
352
352
  /**
353
- * Start stylus REPL.
353
+ * Start Stylus REPL.
354
354
  */
355
355
 
356
356
  function repl() {
@@ -424,7 +424,7 @@ function repl() {
424
424
  }
425
425
 
426
426
  /**
427
- * Highlight the given string of stylus.
427
+ * Highlight the given string of Stylus.
428
428
  */
429
429
 
430
430
  function highlight(str) {
@@ -535,7 +535,7 @@ function compileFile(file) {
535
535
  }
536
536
 
537
537
  /**
538
- * Write the given css output.
538
+ * Write the given CSS output.
539
539
  */
540
540
 
541
541
  function writeFile(file, css) {
@@ -0,0 +1,2 @@
1
+
2
+ module.exports = require('./stylus');
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * Stylus - css to stylus conversion
2
+ * Stylus - CSS to Stylus conversion
3
3
  * Copyright(c) 2010 LearnBoost <dev@learnboost.com>
4
4
  * MIT Licensed
5
5
  */
6
6
 
7
7
  /**
8
- * Convert the given `css` to stylus source.
8
+ * Convert the given `css` to Stylus source.
9
9
  *
10
10
  * @param {String} css
11
11
  * @return {String}
@@ -32,7 +32,7 @@ function Converter(css) {
32
32
  }
33
33
 
34
34
  /**
35
- * Convert to stylus.
35
+ * Convert to Stylus.
36
36
  *
37
37
  * @return {String}
38
38
  * @api private
@@ -742,14 +742,33 @@ exports.trace = function trace(){
742
742
  * image-size('foo.png')[1]
743
743
  * // => 100px
744
744
  *
745
+ * Can be used to test if the image exists,
746
+ * using an optional argument set to `true`
747
+ * (without this argument this function throws error
748
+ * if there is no such image).
749
+ *
750
+ * Example:
751
+ *
752
+ * image-size('nosuchimage.png', true)[0]
753
+ * // => 0
754
+ *
745
755
  * @param {String} img
756
+ * @param {Boolean} ignoreErr
746
757
  * @return {Expression}
747
758
  * @api public
748
759
  */
749
760
 
750
- exports['image-size'] = function imageSize(img) {
761
+ exports['image-size'] = function imageSize(img, ignoreErr) {
751
762
  utils.assertType(img, 'string', 'img');
752
- var img = new Image(this, img.string);
763
+ try {
764
+ var img = new Image(this, img.string);
765
+ } catch (err) {
766
+ if (ignoreErr) {
767
+ return [new nodes.Unit(0), new nodes.Unit(0)];
768
+ } else {
769
+ throw err;
770
+ }
771
+ }
753
772
 
754
773
  // Read size
755
774
  img.open();
@@ -880,4 +899,4 @@ function parseUnit(str){
880
899
  var n = parseInt(m[1], 10);
881
900
  var type = m[2];
882
901
  return new nodes.Unit(n, type);
883
- }
902
+ }
@@ -224,7 +224,7 @@ join(delim, vals...)
224
224
  for val, i in vals
225
225
  buf += i ? delim + val : val
226
226
 
227
- // add a css rule to the containing block
227
+ // add a CSS rule to the containing block
228
228
 
229
229
  // - This definition allows add-property to be used as a mixin
230
230
  // - It has the same effect as interpolation but allows users
data/vendor/lib/lexer.js CHANGED
@@ -797,7 +797,7 @@ Lexer.prototype = {
797
797
 
798
798
  selector: function() {
799
799
  var captures;
800
- if (captures = /^[^{\n,]+/.exec(this.str)) {
800
+ if (captures = /^.*?(?=\/\/(?![^\[]*\])|[,\n{])/.exec(this.str)) {
801
801
  var selector = captures[0];
802
802
  this.skip(captures);
803
803
  return new Token('selector', selector);
@@ -35,10 +35,10 @@ var imports = {};
35
35
  * `compile` Custom compile function, accepting the arguments
36
36
  * `(str, path)`.
37
37
  * `compress` Whether the output .css files should be compressed
38
- * `firebug` Emits debug infos in the generated css that can
38
+ * `firebug` Emits debug infos in the generated CSS that can
39
39
  * be used by the FireStylus Firebug plugin
40
- * `linenos` Emits comments in the generated css indicating
41
- * the corresponding stylus line
40
+ * `linenos` Emits comments in the generated CSS indicating
41
+ * the corresponding Stylus line
42
42
  *
43
43
  * Examples:
44
44
  *
data/vendor/lib/parser.js CHANGED
@@ -299,14 +299,19 @@ Parser.prototype = {
299
299
  // unclosed, must be a block
300
300
  if (!this.lineContains('}')) return;
301
301
  // check if ':' is within the braces.
302
- // though not required by stylus, chances
302
+ // though not required by Stylus, chances
303
303
  // are if someone is using {} they will
304
- // use css-style props, helping us with
304
+ // use CSS-style props, helping us with
305
305
  // the ambiguity in this case
306
306
  var i = 0
307
307
  , la;
308
308
  while (la = this.lookahead(++i)) {
309
- if ('}' == la.type) break;
309
+ if ('}' == la.type) {
310
+ // Check empty block.
311
+ if (i == 2 || (i == 3 && this.lookahead(i - 1).type == 'space'))
312
+ return;
313
+ break;
314
+ }
310
315
  if (':' == la.type) return;
311
316
  }
312
317
  }
@@ -19,7 +19,7 @@ var Visitor = require('./')
19
19
  *
20
20
  * Options:
21
21
  *
22
- * - `compress` Compress the css output, defaults to false
22
+ * - `compress` Compress the CSS output (default: false)
23
23
  *
24
24
  * @param {Node} root
25
25
  * @api public
@@ -89,7 +89,7 @@ Compiler.prototype.visitRoot = function(block){
89
89
  Compiler.prototype.visitBlock = function(block){
90
90
  var node;
91
91
 
92
- if (block.hasProperties) {
92
+ if (block.hasProperties && !block.lacksRenderedSelectors) {
93
93
  var arr = [this.compress ? '{' : ' {'];
94
94
  ++this.indents;
95
95
  for (var i = 0, len = block.nodes.length; i < len; ++i) {
@@ -343,7 +343,10 @@ Compiler.prototype.visitGroup = function(group){
343
343
  // selectors
344
344
  if (group.block.hasProperties) {
345
345
  var selectors = this.compileSelectors(stack);
346
- this.buf += (this.selector = selectors.join(this.compress ? ',' : ',\n'));
346
+ if(selectors.length)
347
+ this.buf += (this.selector = selectors.join(this.compress ? ',' : ',\n'));
348
+ else
349
+ group.block.lacksRenderedSelectors = true;
347
350
  }
348
351
 
349
352
  // output block
@@ -458,7 +461,8 @@ Compiler.prototype.compileSelectors = function(arr){
458
461
  var stack = this.stack
459
462
  , self = this
460
463
  , selectors = []
461
- , buf = [];
464
+ , buf = []
465
+ , hiddenSelectorRegexp = /^\s*\$/;
462
466
 
463
467
  function interpolateParent(selector, buf) {
464
468
  var str = selector.val.trim();
@@ -477,6 +481,7 @@ Compiler.prototype.compileSelectors = function(arr){
477
481
  function compile(arr, i) {
478
482
  if (i) {
479
483
  arr[i].forEach(function(selector){
484
+ if(selector.val.match(hiddenSelectorRegexp)) return;
480
485
  if (selector.inherits) {
481
486
  buf.unshift(selector.val);
482
487
  compile(arr, i - 1);
@@ -487,6 +492,7 @@ Compiler.prototype.compileSelectors = function(arr){
487
492
  });
488
493
  } else {
489
494
  arr[0].forEach(function(selector){
495
+ if(selector.val.match(hiddenSelectorRegexp)) return;
490
496
  var str = interpolateParent(selector, buf);
491
497
  selectors.push(self.indent + str.trimRight());
492
498
  });
@@ -336,7 +336,7 @@ Evaluator.prototype.visitCall = function(call){
336
336
  fn = this.lookupFunction(call.name);
337
337
  }
338
338
 
339
- // Undefined function, render literal css
339
+ // Undefined function? render literal CSS
340
340
  if (!fn || fn.nodeName != 'function') {
341
341
  debug('%s is undefined', call);
342
342
  var ret = this.literalCall(call);
@@ -150,12 +150,14 @@ Normalizer.prototype.visitMedia = function(media){
150
150
  , other = [];
151
151
 
152
152
  media.block.nodes.forEach(function(node, i) {
153
+ node = this.visit(node);
154
+
153
155
  if ('property' == node.nodeName) {
154
156
  props.push(node);
155
157
  } else {
156
158
  other.push(node);
157
159
  }
158
- });
160
+ }, this);
159
161
 
160
162
  // Fake self-referencing group to contain
161
163
  // any props that are floating
data/vendor/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  { "name": "stylus"
2
2
  , "description": "Robust, expressive, and feature-rich CSS superset"
3
- , "version": "0.32.1"
3
+ , "version": "0.33.0"
4
4
  , "author": "TJ Holowaychuk <tj@vision-media.ca>"
5
5
  , "keywords": ["css", "parser", "style", "stylesheets", "jade", "language"]
6
- , "repository": "git://github.com/learnboost/stylus"
6
+ , "repository": "git://github.com/LearnBoost/stylus"
7
7
  , "main": "./index.js"
8
+ , "browserify": "./lib/browserify.js"
8
9
  , "engines": { "node": "*" }
9
10
  , "bin": { "stylus": "./bin/stylus" }
10
11
  , "scripts" : { "prepublish" : "npm prune", "test": "make test" }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stylus-source
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.32.1
4
+ version: 0.33.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - TJ Holowaychuk
@@ -27,6 +27,7 @@ files:
27
27
  - vendor/bin/stylus
28
28
  - vendor/bm.js
29
29
  - vendor/index.js
30
+ - vendor/lib/browserify.js
30
31
  - vendor/lib/colors.js
31
32
  - vendor/lib/convert/css.js
32
33
  - vendor/lib/errors.js