stylus-source 0.15.4 → 0.17.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/Rakefile +39 -0
- data/VERSION +1 -0
- data/lib/stylus/source.rb +1 -1
- data/stylus-source.gemspec +2 -2
- data/vendor/History.md +525 -0
- data/vendor/LICENSE +22 -0
- data/vendor/Makefile +20 -0
- data/vendor/Readme.md +127 -0
- data/vendor/bin/stylus +606 -0
- data/vendor/bm.js +22 -0
- data/vendor/docs/bifs.md +582 -0
- data/vendor/docs/comments.md +35 -0
- data/vendor/docs/compare.md +81 -0
- data/vendor/docs/conditionals.md +107 -0
- data/vendor/docs/css-style.md +77 -0
- data/vendor/docs/error-reporting.md +50 -0
- data/vendor/docs/escape.md +27 -0
- data/vendor/docs/executable.md +159 -0
- data/vendor/docs/firebug.md +60 -0
- data/vendor/docs/font-face.md +26 -0
- data/vendor/docs/functions.md +192 -0
- data/vendor/docs/functions.url.md +30 -0
- data/vendor/docs/gedit.md +24 -0
- data/vendor/docs/import.md +73 -0
- data/vendor/docs/interpolation.md +55 -0
- data/vendor/docs/introspection.md +39 -0
- data/vendor/docs/iteration.md +100 -0
- data/vendor/docs/js.md +136 -0
- data/vendor/docs/keyframes.md +120 -0
- data/vendor/docs/kwargs.md +35 -0
- data/vendor/docs/literal.md +16 -0
- data/vendor/docs/media.md +18 -0
- data/vendor/docs/middleware.md +73 -0
- data/vendor/docs/mixins.md +130 -0
- data/vendor/docs/operators.md +451 -0
- data/vendor/docs/selectors.md +131 -0
- data/vendor/docs/textmate.md +4 -0
- data/vendor/docs/vargs.md +84 -0
- data/vendor/docs/variables.md +78 -0
- data/vendor/editors/Stylus.tmbundle/Commands/Compile and Display CSS.tmCommand +33 -0
- data/vendor/editors/Stylus.tmbundle/Preferences/Comments.tmPreferences +36 -0
- data/vendor/editors/Stylus.tmbundle/Syntaxes/Stylus.tmLanguage +166 -0
- data/vendor/editors/Stylus.tmbundle/info.plist +10 -0
- data/vendor/editors/gedit/styl.lang +475 -0
- data/vendor/examples/arithmetic.js +12 -0
- data/vendor/examples/arithmetic.styl +29 -0
- data/vendor/examples/basic.js +12 -0
- data/vendor/examples/basic.styl +8 -0
- data/vendor/examples/builtins.js +12 -0
- data/vendor/examples/builtins.styl +56 -0
- data/vendor/examples/comments.js +11 -0
- data/vendor/examples/comments.styl +15 -0
- data/vendor/examples/compress.js +12 -0
- data/vendor/examples/conversions.js +12 -0
- data/vendor/examples/conversions.styl +34 -0
- data/vendor/examples/functions.js +12 -0
- data/vendor/examples/functions.styl +30 -0
- data/vendor/examples/gradients.js +13 -0
- data/vendor/examples/gradients.styl +8 -0
- data/vendor/examples/images/gopher.jpg +0 -0
- data/vendor/examples/images/gradient.svg +9 -0
- data/vendor/examples/images/jesus.gif +0 -0
- data/vendor/examples/images/sprite.gif +0 -0
- data/vendor/examples/images.js +20 -0
- data/vendor/examples/images.styl +15 -0
- data/vendor/examples/implicit-functions.js +12 -0
- data/vendor/examples/implicit-functions.styl +23 -0
- data/vendor/examples/import.js +12 -0
- data/vendor/examples/import.styl +11 -0
- data/vendor/examples/js-functions.js +55 -0
- data/vendor/examples/js-functions.styl +23 -0
- data/vendor/examples/literal.js +12 -0
- data/vendor/examples/literal.styl +8 -0
- data/vendor/examples/middleware.js +23 -0
- data/vendor/examples/mixins/box.styl +14 -0
- data/vendor/examples/mixins/gradients.styl +92 -0
- data/vendor/examples/nesting.js +12 -0
- data/vendor/examples/nesting.styl +14 -0
- data/vendor/examples/variables.js +12 -0
- data/vendor/examples/variables.styl +24 -0
- data/vendor/index.js +2 -0
- data/{lib/stylus → vendor/lib}/colors.js +0 -0
- data/{lib/stylus → vendor/lib}/convert/css.js +0 -0
- data/{lib/stylus → vendor/lib}/errors.js +0 -0
- data/{lib/stylus → vendor/lib}/functions/image.js +0 -0
- data/{lib/stylus → vendor/lib}/functions/index.js +0 -0
- data/{lib/stylus → vendor/lib}/functions/index.styl +11 -2
- data/{lib/stylus → vendor/lib}/functions/url.js +0 -0
- data/{lib/stylus → vendor/lib}/lexer.js +14 -1
- data/{lib/stylus → vendor/lib}/middleware.js +5 -1
- data/{lib/stylus → vendor/lib}/nodes/arguments.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/binop.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/block.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/boolean.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/call.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/charset.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/comment.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/each.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/expression.js +32 -0
- data/{lib/stylus → vendor/lib}/nodes/fontface.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/function.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/group.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/hsla.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/ident.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/if.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/import.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/index.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/jsliteral.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/keyframes.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/literal.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/media.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/node.js +14 -0
- data/{lib/stylus → vendor/lib}/nodes/null.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/page.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/params.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/property.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/return.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/rgba.js +4 -2
- data/{lib/stylus → vendor/lib}/nodes/root.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/selector.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/string.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/ternary.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/unaryop.js +0 -0
- data/{lib/stylus → vendor/lib}/nodes/unit.js +0 -0
- data/{lib/stylus → vendor/lib}/parser.js +17 -2
- data/{lib/stylus → vendor/lib}/renderer.js +0 -0
- data/{lib/stylus → vendor/lib}/stack/frame.js +0 -0
- data/{lib/stylus → vendor/lib}/stack/index.js +0 -0
- data/{lib/stylus → vendor/lib}/stack/scope.js +0 -0
- data/{lib/stylus → vendor/lib}/stylus.js +1 -1
- data/{lib/stylus → vendor/lib}/token.js +0 -0
- data/{lib/stylus → vendor/lib}/utils.js +0 -0
- data/{lib/stylus → vendor/lib}/visitor/compiler.js +1 -0
- data/{lib/stylus → vendor/lib}/visitor/evaluator.js +9 -3
- data/{lib/stylus → vendor/lib}/visitor/index.js +0 -0
- data/{lib → vendor}/node_modules/cssom/Jakefile +0 -0
- data/{lib → vendor}/node_modules/cssom/README.mdown +0 -0
- data/{lib → vendor}/node_modules/cssom/Rakefile +0 -0
- data/{lib → vendor}/node_modules/cssom/docs/bar.css +0 -0
- data/{lib → vendor}/node_modules/cssom/docs/demo.css +0 -0
- data/{lib → vendor}/node_modules/cssom/docs/foo.css +0 -0
- data/{lib → vendor}/node_modules/cssom/docs/parse.html +0 -0
- data/{lib → vendor}/node_modules/cssom/docs/parse2.html +0 -0
- data/{lib → vendor}/node_modules/cssom/index.html +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/CSSImportRule.js +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/CSSMediaRule.js +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/CSSOM.js +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/CSSRule.js +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/CSSStyleDeclaration.js +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/CSSStyleRule.js +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/CSSStyleSheet.js +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/MediaList.js +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/StyleSheet.js +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/clone.js +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/index.js +0 -0
- data/{lib → vendor}/node_modules/cssom/lib/parse.js +0 -0
- data/{lib → vendor}/node_modules/cssom/media.html +0 -0
- data/{lib → vendor}/node_modules/cssom/package.json +0 -0
- data/{lib → vendor}/node_modules/cssom/plugins/toHTML.js +0 -0
- data/{lib → vendor}/node_modules/cssom/server/index.html +0 -0
- data/{lib → vendor}/node_modules/cssom/server/index.js +0 -0
- data/{lib → vendor}/node_modules/cssom/shorthands.html +0 -0
- data/{lib → vendor}/node_modules/cssom/test/CSSStyleDeclaration.test.js +0 -0
- data/{lib → vendor}/node_modules/cssom/test/CSSStyleRule.test.js +0 -0
- data/{lib → vendor}/node_modules/cssom/test/CSSStyleSheet.test.js +0 -0
- data/{lib → vendor}/node_modules/cssom/test/MediaList.test.js +0 -0
- data/{lib → vendor}/node_modules/cssom/test/clone.test.js +0 -0
- data/{lib → vendor}/node_modules/cssom/test/fixtures/dummy.css +0 -0
- data/{lib → vendor}/node_modules/cssom/test/helper.js +0 -0
- data/{lib → vendor}/node_modules/cssom/test/index.html +0 -0
- data/{lib → vendor}/node_modules/cssom/test/parse.test.js +0 -0
- data/{lib → vendor}/node_modules/cssom/test/vendor/qunit.css +0 -0
- data/{lib → vendor}/node_modules/cssom/test/vendor/qunit.js +0 -0
- data/{lib → vendor}/node_modules/growl/History.md +0 -0
- data/{lib → vendor}/node_modules/growl/Readme.md +0 -0
- data/{lib → vendor}/node_modules/growl/lib/growl.js +0 -0
- data/{lib → vendor}/node_modules/growl/package.json +0 -0
- data/{lib → vendor}/node_modules/growl/test.js +0 -0
- data/vendor/node_modules/mkdirp/LICENSE +21 -0
- data/vendor/node_modules/mkdirp/README.markdown +21 -0
- data/vendor/node_modules/mkdirp/examples/pow.js +6 -0
- data/vendor/node_modules/mkdirp/examples/pow.js.orig +6 -0
- data/vendor/node_modules/mkdirp/examples/pow.js.rej +19 -0
- data/vendor/node_modules/mkdirp/index.js +20 -0
- data/vendor/node_modules/mkdirp/package.json +23 -0
- data/vendor/node_modules/mkdirp/test/mkdirp.js +28 -0
- data/vendor/node_modules/mkdirp/test/race.js +41 -0
- data/vendor/node_modules/mkdirp/test/rel.js +32 -0
- data/vendor/package.json +16 -0
- data/vendor/test/cases/arithmetic.color.css +44 -0
- data/vendor/test/cases/arithmetic.color.styl +48 -0
- data/vendor/test/cases/arithmetic.css +23 -0
- data/vendor/test/cases/arithmetic.styl +30 -0
- data/vendor/test/cases/arithmetic.unary.css +16 -0
- data/vendor/test/cases/arithmetic.unary.styl +16 -0
- data/vendor/test/cases/atscope.css +21 -0
- data/vendor/test/cases/atscope.styl +23 -0
- data/vendor/test/cases/bifs.add-property.css +21 -0
- data/vendor/test/cases/bifs.add-property.styl +48 -0
- data/vendor/test/cases/bifs.components.css +9 -0
- data/vendor/test/cases/bifs.components.styl +9 -0
- data/vendor/test/cases/bifs.dark.css +5 -0
- data/vendor/test/cases/bifs.dark.styl +4 -0
- data/vendor/test/cases/bifs.darken.css +8 -0
- data/vendor/test/cases/bifs.darken.styl +9 -0
- data/vendor/test/cases/bifs.fade.css +6 -0
- data/vendor/test/cases/bifs.fade.styl +6 -0
- data/vendor/test/cases/bifs.image-size.css +9 -0
- data/vendor/test/cases/bifs.image-size.styl +16 -0
- data/vendor/test/cases/bifs.join.css +18 -0
- data/vendor/test/cases/bifs.join.styl +21 -0
- data/vendor/test/cases/bifs.last.css +5 -0
- data/vendor/test/cases/bifs.last.styl +6 -0
- data/vendor/test/cases/bifs.length.css +10 -0
- data/vendor/test/cases/bifs.length.styl +18 -0
- data/vendor/test/cases/bifs.light.css +5 -0
- data/vendor/test/cases/bifs.light.styl +4 -0
- data/vendor/test/cases/bifs.lighten.css +14 -0
- data/vendor/test/cases/bifs.lighten.styl +14 -0
- data/vendor/test/cases/bifs.lookup.css +3 -0
- data/vendor/test/cases/bifs.lookup.styl +8 -0
- data/vendor/test/cases/bifs.match.css +4 -0
- data/vendor/test/cases/bifs.match.styl +9 -0
- data/vendor/test/cases/bifs.opposite-position.css +8 -0
- data/vendor/test/cases/bifs.opposite-position.styl +9 -0
- data/vendor/test/cases/bifs.push.css +25 -0
- data/vendor/test/cases/bifs.push.styl +48 -0
- data/vendor/test/cases/bifs.rgba.css +5 -0
- data/vendor/test/cases/bifs.rgba.styl +4 -0
- data/vendor/test/cases/bifs.s.css +11 -0
- data/vendor/test/cases/bifs.s.styl +12 -0
- data/vendor/test/cases/bifs.type.css +11 -0
- data/vendor/test/cases/bifs.type.styl +12 -0
- data/vendor/test/cases/bifs.unit.css +6 -0
- data/vendor/test/cases/bifs.unit.styl +5 -0
- data/vendor/test/cases/bifs.unquote.css +5 -0
- data/vendor/test/cases/bifs.unquote.styl +8 -0
- data/vendor/test/cases/bifs.url.css +11 -0
- data/vendor/test/cases/bifs.url.styl +15 -0
- data/vendor/test/cases/coercion.css +6 -0
- data/vendor/test/cases/coercion.styl +5 -0
- data/vendor/test/cases/comments.css +18 -0
- data/vendor/test/cases/comments.styl +28 -0
- data/vendor/test/cases/compress.comments.css +2 -0
- data/vendor/test/cases/compress.comments.styl +5 -0
- data/vendor/test/cases/compress.units.css +2 -0
- data/vendor/test/cases/compress.units.styl +18 -0
- data/vendor/test/cases/conditional-assignment.css +4 -0
- data/vendor/test/cases/conditional-assignment.styl +9 -0
- data/vendor/test/cases/control.blueprint.ie.css +126 -0
- data/vendor/test/cases/control.blueprint.ie.styl +36 -0
- data/vendor/test/cases/control.blueprint.screen.css +1103 -0
- data/vendor/test/cases/control.blueprint.screen.styl +265 -0
- data/vendor/test/cases/control.boilerplate.css +473 -0
- data/vendor/test/cases/control.boilerplate.styl +265 -0
- data/vendor/test/cases/css.functions.single-line.css +9 -0
- data/vendor/test/cases/css.functions.single-line.styl +13 -0
- data/vendor/test/cases/css.if.css +8 -0
- data/vendor/test/cases/css.if.styl +21 -0
- data/vendor/test/cases/css.keyframes.css +57 -0
- data/vendor/test/cases/css.keyframes.styl +48 -0
- data/vendor/test/cases/css.large.css +172 -0
- data/vendor/test/cases/css.large.styl +172 -0
- data/vendor/test/cases/css.media.css +15 -0
- data/vendor/test/cases/css.media.styl +17 -0
- data/vendor/test/cases/css.mixins.braces.css +38 -0
- data/vendor/test/cases/css.mixins.braces.styl +53 -0
- data/vendor/test/cases/css.mixins.css +38 -0
- data/vendor/test/cases/css.mixins.root.css +26 -0
- data/vendor/test/cases/css.mixins.root.styl +25 -0
- data/vendor/test/cases/css.mixins.root.wonky.css +26 -0
- data/vendor/test/cases/css.mixins.root.wonky.styl +17 -0
- data/vendor/test/cases/css.mixins.styl +47 -0
- data/vendor/test/cases/css.selector.interpolation.css +91 -0
- data/vendor/test/cases/css.selector.interpolation.styl +90 -0
- data/vendor/test/cases/css.selectors.css +38 -0
- data/vendor/test/cases/css.selectors.styl +53 -0
- data/vendor/test/cases/css.whitespace.css +37 -0
- data/vendor/test/cases/css.whitespace.styl +38 -0
- data/vendor/test/cases/escape.css +4 -0
- data/vendor/test/cases/escape.styl +4 -0
- data/vendor/test/cases/fontface.css +4 -0
- data/vendor/test/cases/fontface.styl +5 -0
- data/vendor/test/cases/for.complex.css +44 -0
- data/vendor/test/cases/for.complex.styl +28 -0
- data/vendor/test/cases/for.css +52 -0
- data/vendor/test/cases/for.function.css +20 -0
- data/vendor/test/cases/for.function.styl +51 -0
- data/vendor/test/cases/for.styl +44 -0
- data/vendor/test/cases/function.arguments.css +4 -0
- data/vendor/test/cases/function.arguments.styl +14 -0
- data/vendor/test/cases/function.literals.css +6 -0
- data/vendor/test/cases/function.literals.styl +12 -0
- data/vendor/test/cases/functions.arg-calls.css +3 -0
- data/vendor/test/cases/functions.arg-calls.styl +9 -0
- data/vendor/test/cases/functions.call.css +4 -0
- data/vendor/test/cases/functions.call.styl +7 -0
- data/vendor/test/cases/functions.css +11 -0
- data/vendor/test/cases/functions.defaults.css +15 -0
- data/vendor/test/cases/functions.defaults.styl +30 -0
- data/vendor/test/cases/functions.multi-line.css +9 -0
- data/vendor/test/cases/functions.multi-line.styl +25 -0
- data/vendor/test/cases/functions.multiple-calls.css +13 -0
- data/vendor/test/cases/functions.multiple-calls.styl +26 -0
- data/vendor/test/cases/functions.nested-calls.css +3 -0
- data/vendor/test/cases/functions.nested-calls.styl +9 -0
- data/vendor/test/cases/functions.nested.css +10 -0
- data/vendor/test/cases/functions.nested.styl +37 -0
- data/vendor/test/cases/functions.property.css +10 -0
- data/vendor/test/cases/functions.property.styl +11 -0
- data/vendor/test/cases/functions.return.css +15 -0
- data/vendor/test/cases/functions.return.each.css +10 -0
- data/vendor/test/cases/functions.return.each.styl +23 -0
- data/vendor/test/cases/functions.return.styl +86 -0
- data/vendor/test/cases/functions.styl +34 -0
- data/vendor/test/cases/functions.variable.css +9 -0
- data/vendor/test/cases/functions.variable.ident.css +3 -0
- data/vendor/test/cases/functions.variable.ident.styl +11 -0
- data/vendor/test/cases/functions.variable.styl +27 -0
- data/vendor/test/cases/hack.star.css +27 -0
- data/vendor/test/cases/hack.star.styl +37 -0
- data/vendor/test/cases/if.css +43 -0
- data/vendor/test/cases/if.else.css +6 -0
- data/vendor/test/cases/if.else.styl +16 -0
- data/vendor/test/cases/if.mixin.css +7 -0
- data/vendor/test/cases/if.mixin.styl +24 -0
- data/vendor/test/cases/if.postfix.css +61 -0
- data/vendor/test/cases/if.postfix.styl +110 -0
- data/vendor/test/cases/if.selectors.css +16 -0
- data/vendor/test/cases/if.selectors.styl +22 -0
- data/vendor/test/cases/if.styl +99 -0
- data/vendor/test/cases/import.basic/a.styl +5 -0
- data/vendor/test/cases/import.basic/b.styl +5 -0
- data/vendor/test/cases/import.basic/c.styl +3 -0
- data/vendor/test/cases/import.basic.css +11 -0
- data/vendor/test/cases/import.basic.styl +4 -0
- data/vendor/test/cases/import.complex/a.styl +4 -0
- data/vendor/test/cases/import.complex/c.styl +2 -0
- data/vendor/test/cases/import.complex/nested/b.styl +4 -0
- data/vendor/test/cases/import.complex.css +9 -0
- data/vendor/test/cases/import.complex.styl +1 -0
- data/vendor/test/cases/import.index/vendor/a.styl +2 -0
- data/vendor/test/cases/import.index/vendor/b.styl +2 -0
- data/vendor/test/cases/import.index/vendor/c.styl +2 -0
- data/vendor/test/cases/import.index/vendor/index.styl +4 -0
- data/vendor/test/cases/import.index.css +9 -0
- data/vendor/test/cases/import.index.styl +2 -0
- data/vendor/test/cases/import.literal.css +2 -0
- data/vendor/test/cases/import.literal.styl +3 -0
- data/vendor/test/cases/import.mixins.css +7 -0
- data/vendor/test/cases/import.mixins.styl +9 -0
- data/vendor/test/cases/import.ordering/five.styl +2 -0
- data/vendor/test/cases/import.ordering/four.styl +4 -0
- data/vendor/test/cases/import.ordering/two.styl +2 -0
- data/vendor/test/cases/import.ordering.css +15 -0
- data/vendor/test/cases/import.ordering.styl +12 -0
- data/vendor/test/cases/important.css +6 -0
- data/vendor/test/cases/important.styl +6 -0
- data/vendor/test/cases/interpolation.properties.css +40 -0
- data/vendor/test/cases/interpolation.properties.styl +56 -0
- data/vendor/test/cases/introspection.css +7 -0
- data/vendor/test/cases/introspection.styl +14 -0
- data/vendor/test/cases/jquery.css +3 -0
- data/vendor/test/cases/jquery.styl +5 -0
- data/vendor/test/cases/keyframes.css +9 -0
- data/vendor/test/cases/keyframes.fabrication.css +18 -0
- data/vendor/test/cases/keyframes.fabrication.defaults.css +45 -0
- data/vendor/test/cases/keyframes.fabrication.defaults.styl +9 -0
- data/vendor/test/cases/keyframes.fabrication.styl +11 -0
- data/vendor/test/cases/keyframes.styl +6 -0
- data/vendor/test/cases/kwargs.css +63 -0
- data/vendor/test/cases/kwargs.styl +74 -0
- data/vendor/test/cases/list.css +3 -0
- data/vendor/test/cases/list.styl +3 -0
- data/vendor/test/cases/literal.color.css +6 -0
- data/vendor/test/cases/literal.color.styl +5 -0
- data/vendor/test/cases/literal.css +10 -0
- data/vendor/test/cases/literal.styl +18 -0
- data/vendor/test/cases/media.css +14 -0
- data/vendor/test/cases/media.styl +11 -0
- data/vendor/test/cases/mixin.conditional.css +19 -0
- data/vendor/test/cases/mixin.conditional.styl +36 -0
- data/vendor/test/cases/mixin.order.conditional.css +11 -0
- data/vendor/test/cases/mixin.order.conditional.styl +20 -0
- data/vendor/test/cases/mixin.order.css +9 -0
- data/vendor/test/cases/mixin.order.nested.css +9 -0
- data/vendor/test/cases/mixin.order.nested.styl +21 -0
- data/vendor/test/cases/mixin.order.styl +20 -0
- data/vendor/test/cases/mixins/box.styl +11 -0
- data/vendor/test/cases/mixins.complex.css +30 -0
- data/vendor/test/cases/mixins.complex.fix-to.css +15 -0
- data/vendor/test/cases/mixins.complex.fix-to.styl +28 -0
- data/vendor/test/cases/mixins.complex.styl +41 -0
- data/vendor/test/cases/mixins.conditional.css +3 -0
- data/vendor/test/cases/mixins.conditional.styl +8 -0
- data/vendor/test/cases/mixins.nested.css +7 -0
- data/vendor/test/cases/mixins.nested.selectors.css +21 -0
- data/vendor/test/cases/mixins.nested.selectors.styl +31 -0
- data/vendor/test/cases/mixins.nested.styl +14 -0
- data/vendor/test/cases/mixins.order.2.css +11 -0
- data/vendor/test/cases/mixins.order.2.styl +16 -0
- data/vendor/test/cases/mixins.reset.css +75 -0
- data/vendor/test/cases/mixins.reset.styl +27 -0
- data/vendor/test/cases/mixins.return.css +4 -0
- data/vendor/test/cases/mixins.return.styl +8 -0
- data/vendor/test/cases/mixins.root.css +3 -0
- data/vendor/test/cases/mixins.root.styl +5 -0
- data/vendor/test/cases/operator.range.css +15 -0
- data/vendor/test/cases/operator.range.styl +23 -0
- data/vendor/test/cases/operators.assignment.function.css +15 -0
- data/vendor/test/cases/operators.assignment.function.styl +34 -0
- data/vendor/test/cases/operators.assignment.mixin.css +15 -0
- data/vendor/test/cases/operators.assignment.mixin.styl +39 -0
- data/vendor/test/cases/operators.assignment.root.css +25 -0
- data/vendor/test/cases/operators.assignment.root.styl +55 -0
- data/vendor/test/cases/operators.complex.css +9 -0
- data/vendor/test/cases/operators.complex.styl +32 -0
- data/vendor/test/cases/operators.css +40 -0
- data/vendor/test/cases/operators.equality.css +55 -0
- data/vendor/test/cases/operators.equality.styl +55 -0
- data/vendor/test/cases/operators.in.css +37 -0
- data/vendor/test/cases/operators.in.styl +51 -0
- data/vendor/test/cases/operators.mixins.css +10 -0
- data/vendor/test/cases/operators.mixins.styl +25 -0
- data/vendor/test/cases/operators.precedence.css +51 -0
- data/vendor/test/cases/operators.precedence.styl +82 -0
- data/vendor/test/cases/operators.styl +96 -0
- data/vendor/test/cases/operators.subscript.assign.css +21 -0
- data/vendor/test/cases/operators.subscript.assign.styl +45 -0
- data/vendor/test/cases/operators.subscript.css +59 -0
- data/vendor/test/cases/operators.subscript.range.css +14 -0
- data/vendor/test/cases/operators.subscript.range.styl +15 -0
- data/vendor/test/cases/operators.subscript.styl +81 -0
- data/vendor/test/cases/page.css +13 -0
- data/vendor/test/cases/page.styl +13 -0
- data/vendor/test/cases/parent.css +32 -0
- data/vendor/test/cases/parent.styl +33 -0
- data/vendor/test/cases/properties.colons.css +8 -0
- data/vendor/test/cases/properties.colons.styl +10 -0
- data/vendor/test/cases/properties.css +4 -0
- data/vendor/test/cases/properties.one-line.css +10 -0
- data/vendor/test/cases/properties.one-line.styl +11 -0
- data/vendor/test/cases/properties.styl +4 -0
- data/vendor/test/cases/property-access.css +48 -0
- data/vendor/test/cases/property-access.styl +62 -0
- data/vendor/test/cases/regression.107.lookup-failure.css +12 -0
- data/vendor/test/cases/regression.107.lookup-failure.styl +13 -0
- data/vendor/test/cases/regression.127.css +3 -0
- data/vendor/test/cases/regression.127.styl +2 -0
- data/vendor/test/cases/regression.130.css +16 -0
- data/vendor/test/cases/regression.130.styl +6 -0
- data/vendor/test/cases/regression.131.css +7 -0
- data/vendor/test/cases/regression.131.styl +2 -0
- data/vendor/test/cases/regression.137.css +7 -0
- data/vendor/test/cases/regression.137.styl +7 -0
- data/vendor/test/cases/regression.139.css +5 -0
- data/vendor/test/cases/regression.139.styl +21 -0
- data/vendor/test/cases/regression.142.css +39 -0
- data/vendor/test/cases/regression.142.styl +54 -0
- data/vendor/test/cases/regression.146.css +30 -0
- data/vendor/test/cases/regression.146.styl +31 -0
- data/vendor/test/cases/regression.153.css +8 -0
- data/vendor/test/cases/regression.153.styl +9 -0
- data/vendor/test/cases/regression.154.css +8 -0
- data/vendor/test/cases/regression.154.styl +14 -0
- data/vendor/test/cases/regression.156.css +4 -0
- data/vendor/test/cases/regression.156.styl +6 -0
- data/vendor/test/cases/regression.212.css +15 -0
- data/vendor/test/cases/regression.212.styl +14 -0
- data/vendor/test/cases/regression.216.css +10 -0
- data/vendor/test/cases/regression.216.styl +8 -0
- data/vendor/test/cases/regression.220.css +5 -0
- data/vendor/test/cases/regression.220.styl +5 -0
- data/vendor/test/cases/regression.229.css +12 -0
- data/vendor/test/cases/regression.229.styl +9 -0
- data/vendor/test/cases/regression.233.css +6 -0
- data/vendor/test/cases/regression.233.styl +7 -0
- data/vendor/test/cases/regression.235.css +11 -0
- data/vendor/test/cases/regression.235.styl +13 -0
- data/vendor/test/cases/regression.243.css +3 -0
- data/vendor/test/cases/regression.243.styl +4 -0
- data/vendor/test/cases/regression.244.css +3 -0
- data/vendor/test/cases/regression.244.styl +3 -0
- data/vendor/test/cases/regression.247.css +6 -0
- data/vendor/test/cases/regression.247.styl +6 -0
- data/vendor/test/cases/regression.248.compressed.css +4 -0
- data/vendor/test/cases/regression.248.compressed.styl +10 -0
- data/vendor/test/cases/regression.252.css +13 -0
- data/vendor/test/cases/regression.252.styl +13 -0
- data/vendor/test/cases/regression.260.css +6 -0
- data/vendor/test/cases/regression.260.styl +6 -0
- data/vendor/test/cases/regression.267.css +3 -0
- data/vendor/test/cases/regression.267.styl +3 -0
- data/vendor/test/cases/regression.270.css +5 -0
- data/vendor/test/cases/regression.270.styl +7 -0
- data/vendor/test/cases/regression.272.css +11 -0
- data/vendor/test/cases/regression.272.styl +17 -0
- data/vendor/test/cases/regression.274.css +14 -0
- data/vendor/test/cases/regression.274.styl +16 -0
- data/vendor/test/cases/regression.360.css +19 -0
- data/vendor/test/cases/regression.360.styl +1 -0
- data/vendor/test/cases/regression.368.css +4 -0
- data/vendor/test/cases/regression.368.styl +3 -0
- data/vendor/test/cases/regression.379.css +6 -0
- data/vendor/test/cases/regression.379.styl +10 -0
- data/vendor/test/cases/regression.380.css +8 -0
- data/vendor/test/cases/regression.380.styl +14 -0
- data/vendor/test/cases/regression.388.css +2 -0
- data/vendor/test/cases/regression.388.styl +6 -0
- data/vendor/test/cases/regression.415.css +5 -0
- data/vendor/test/cases/regression.415.styl +3 -0
- data/vendor/test/cases/regression.420.css +21 -0
- data/vendor/test/cases/regression.420.styl +29 -0
- data/vendor/test/cases/reset.css +70 -0
- data/vendor/test/cases/reset.styl +16 -0
- data/vendor/test/cases/rule.charset.css +1 -0
- data/vendor/test/cases/rule.charset.styl +2 -0
- data/vendor/test/cases/rulset.css +4 -0
- data/vendor/test/cases/rulset.newline.css +5 -0
- data/vendor/test/cases/rulset.newline.styl +5 -0
- data/vendor/test/cases/rulset.styl +3 -0
- data/vendor/test/cases/scope.complex.css +10 -0
- data/vendor/test/cases/scope.complex.styl +16 -0
- data/vendor/test/cases/scope.css +5 -0
- data/vendor/test/cases/scope.nested.css +9 -0
- data/vendor/test/cases/scope.nested.styl +10 -0
- data/vendor/test/cases/scope.styl +12 -0
- data/vendor/test/cases/selector.interpolation.css +57 -0
- data/vendor/test/cases/selector.interpolation.styl +45 -0
- data/vendor/test/cases/selectors.complex.css +28 -0
- data/vendor/test/cases/selectors.complex.styl +27 -0
- data/vendor/test/cases/selectors.css +50 -0
- data/vendor/test/cases/selectors.nested.comma.css +9 -0
- data/vendor/test/cases/selectors.nested.comma.styl +8 -0
- data/vendor/test/cases/selectors.nested.css +34 -0
- data/vendor/test/cases/selectors.nested.styl +33 -0
- data/vendor/test/cases/selectors.pseudo.css +27 -0
- data/vendor/test/cases/selectors.pseudo.elements.css +26 -0
- data/vendor/test/cases/selectors.pseudo.elements.styl +29 -0
- data/vendor/test/cases/selectors.pseudo.styl +24 -0
- data/vendor/test/cases/selectors.styl +46 -0
- data/vendor/test/cases/self-assignment.css +3 -0
- data/vendor/test/cases/self-assignment.styl +4 -0
- data/vendor/test/cases/vargs.call.css +24 -0
- data/vendor/test/cases/vargs.call.styl +40 -0
- data/vendor/test/cases/vargs.css +30 -0
- data/vendor/test/cases/vargs.styl +49 -0
- data/vendor/test/cases/variable.css +3 -0
- data/vendor/test/cases/variable.styl +4 -0
- data/vendor/test/cases/variables.css +12 -0
- data/vendor/test/cases/variables.styl +17 -0
- data/vendor/test/images/gif +0 -0
- data/vendor/test/images/squirrel.jpeg +0 -0
- data/vendor/test/images/tux.png +0 -0
- data/vendor/test/run.js +151 -0
- data/vendor/testing/index.html +56 -0
- data/vendor/testing/stylus.js +146 -0
- data/vendor/testing/test-js.js +23 -0
- data/vendor/testing/test.css +8 -0
- data/vendor/testing/test.js +23 -0
- data/vendor/testing/test.styl +75 -0
- data/vendor/testing/utils.styl +6 -0
- data/vendor/testing/vendor.styl +3 -0
- metadata +565 -112
- data/.DS_Store +0 -0
- data/lib/.DS_Store +0 -0
- data/lib/node_modules/cssom/.idea/CSSOM.iml +0 -9
- data/lib/node_modules/cssom/.idea/dictionaries/nv.xml +0 -3
- data/lib/node_modules/cssom/.idea/encodings.xml +0 -5
- data/lib/node_modules/cssom/.idea/misc.xml +0 -17
- data/lib/node_modules/cssom/.idea/modules.xml +0 -9
- data/lib/node_modules/cssom/.idea/projectCodeStyle.xml +0 -82
- data/lib/node_modules/cssom/.idea/vcs.xml +0 -8
- data/lib/node_modules/cssom/.idea/workspace.xml +0 -467
- data/lib/node_modules/cssom/.livereload +0 -19
- data/lib/node_modules/cssom/docs/.livereload +0 -19
data/vendor/bin/stylus
ADDED
@@ -0,0 +1,606 @@
|
|
1
|
+
#!/usr/bin/env node
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Module dependencies.
|
5
|
+
*/
|
6
|
+
|
7
|
+
var fs = require('fs')
|
8
|
+
, stylus = require('../lib/stylus')
|
9
|
+
, basename = require('path').basename
|
10
|
+
, dirname = require('path').dirname
|
11
|
+
, join = require('path').join;
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Arguments.
|
15
|
+
*/
|
16
|
+
|
17
|
+
var args = process.argv.slice(2);
|
18
|
+
|
19
|
+
/**
|
20
|
+
* Compare flag.
|
21
|
+
*/
|
22
|
+
|
23
|
+
var compare = false;
|
24
|
+
|
25
|
+
/**
|
26
|
+
* Compress flag.
|
27
|
+
*/
|
28
|
+
|
29
|
+
var compress = false;
|
30
|
+
|
31
|
+
/**
|
32
|
+
* CSS conversion flag.
|
33
|
+
*/
|
34
|
+
|
35
|
+
var convertCSS = false;
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Line numbers flag.
|
39
|
+
*/
|
40
|
+
|
41
|
+
var linenos = false;
|
42
|
+
|
43
|
+
/**
|
44
|
+
* Firebug flag
|
45
|
+
*/
|
46
|
+
|
47
|
+
var firebug = false;
|
48
|
+
|
49
|
+
/**
|
50
|
+
* Files to processes.
|
51
|
+
*/
|
52
|
+
|
53
|
+
var files = [];
|
54
|
+
|
55
|
+
/**
|
56
|
+
* Import paths.
|
57
|
+
*/
|
58
|
+
|
59
|
+
var paths = [];
|
60
|
+
|
61
|
+
/**
|
62
|
+
* Destination directory.
|
63
|
+
*/
|
64
|
+
|
65
|
+
var dest;
|
66
|
+
|
67
|
+
/**
|
68
|
+
* Watcher hash.
|
69
|
+
*/
|
70
|
+
|
71
|
+
var watchers;
|
72
|
+
|
73
|
+
/**
|
74
|
+
* Enable REPL.
|
75
|
+
*/
|
76
|
+
|
77
|
+
var interactive;
|
78
|
+
|
79
|
+
/**
|
80
|
+
* Plugins.
|
81
|
+
*/
|
82
|
+
|
83
|
+
var plugins = [];
|
84
|
+
|
85
|
+
/**
|
86
|
+
* Optional url() function.
|
87
|
+
*/
|
88
|
+
|
89
|
+
var urlFunction = false;
|
90
|
+
|
91
|
+
/**
|
92
|
+
* Usage docs.
|
93
|
+
*/
|
94
|
+
|
95
|
+
var usage = [
|
96
|
+
''
|
97
|
+
, ' Usage: stylus [options] [command] [< in [> out]]'
|
98
|
+
, ' [file|dir ...]'
|
99
|
+
, ''
|
100
|
+
, ' Commands:'
|
101
|
+
, ''
|
102
|
+
, ' help [<type>:]<prop> Opens help info at MDC for <prop> in'
|
103
|
+
, ' your default browser. Optionally'
|
104
|
+
, ' searches other resources of <type>:'
|
105
|
+
, ' safari opera w3c ms caniuse quirksmode'
|
106
|
+
, ''
|
107
|
+
, ' Options:'
|
108
|
+
, ''
|
109
|
+
, ' -i, --interactive Start interactive REPL'
|
110
|
+
, ' -u, --use <path> Utilize the stylus plugin at <path>'
|
111
|
+
, ' -U, --inline Utilize image inlining via data uri support'
|
112
|
+
, ' -w, --watch Watch file(s) for changes and re-compile'
|
113
|
+
, ' -o, --out <dir> Output to <dir> when passing files'
|
114
|
+
, ' -C, --css <src> [dest] Convert css input to stylus'
|
115
|
+
, ' -I, --include <path> Add <path> to lookup paths'
|
116
|
+
, ' -c, --compress Compress css output'
|
117
|
+
, ' -d, --compare Display input along with output'
|
118
|
+
, ' -f, --firebug Emits debug infos in the generated css that'
|
119
|
+
, ' can be used by the FireStylus Firebug plugin'
|
120
|
+
, ' -l, --line-numbers Emits comments in the generated css'
|
121
|
+
, ' indicating the corresponding stylus line'
|
122
|
+
, ' -V, --version Display the version of stylus'
|
123
|
+
, ' -h, --help Display help information'
|
124
|
+
, ''
|
125
|
+
].join('\n');
|
126
|
+
|
127
|
+
/**
|
128
|
+
* Handle arguments.
|
129
|
+
*/
|
130
|
+
|
131
|
+
var arg;
|
132
|
+
while (args.length) {
|
133
|
+
arg = args.shift();
|
134
|
+
switch (arg) {
|
135
|
+
case '-h':
|
136
|
+
case '--help':
|
137
|
+
console.error(usage);
|
138
|
+
process.exit(1);
|
139
|
+
case '-d':
|
140
|
+
case '--compare':
|
141
|
+
compare = true;
|
142
|
+
break;
|
143
|
+
case '-c':
|
144
|
+
case '--compress':
|
145
|
+
compress = true;
|
146
|
+
break;
|
147
|
+
case '-C':
|
148
|
+
case '--css':
|
149
|
+
convertCSS = true;
|
150
|
+
break;
|
151
|
+
case '-f':
|
152
|
+
case '--firebug':
|
153
|
+
firebug = true;
|
154
|
+
break;
|
155
|
+
case '-l':
|
156
|
+
case '--line-numbers':
|
157
|
+
linenos = true;
|
158
|
+
break;
|
159
|
+
case '-V':
|
160
|
+
case '--version':
|
161
|
+
console.log(stylus.version);
|
162
|
+
process.exit(0);
|
163
|
+
break;
|
164
|
+
case '-o':
|
165
|
+
case '--out':
|
166
|
+
dest = args.shift();
|
167
|
+
if (!dest) throw new Error('--out <dir> required');
|
168
|
+
break;
|
169
|
+
case 'help':
|
170
|
+
var name = args.shift()
|
171
|
+
, browser = name.split(':');
|
172
|
+
if (browser.length > 1) {
|
173
|
+
name = [].slice.call(browser, 1).join(':');
|
174
|
+
browser = browser[0];
|
175
|
+
} else {
|
176
|
+
name = browser[0];
|
177
|
+
browser = '';
|
178
|
+
}
|
179
|
+
if (!name) throw new Error('help <property> required');
|
180
|
+
help(name);
|
181
|
+
break;
|
182
|
+
case '-i':
|
183
|
+
case '--repl':
|
184
|
+
case '--interactive':
|
185
|
+
interactive = true;
|
186
|
+
break;
|
187
|
+
case '-I':
|
188
|
+
case '--include':
|
189
|
+
var path = args.shift();
|
190
|
+
if (!path) throw new Error('--include <path> required');
|
191
|
+
paths.push(path);
|
192
|
+
break;
|
193
|
+
case '-w':
|
194
|
+
case '--watch':
|
195
|
+
watchers = {};
|
196
|
+
break;
|
197
|
+
case '-U':
|
198
|
+
case '--inline':
|
199
|
+
args.unshift('--use', 'url');
|
200
|
+
break;
|
201
|
+
case '-u':
|
202
|
+
case '--use':
|
203
|
+
var options;
|
204
|
+
var path = args.shift();
|
205
|
+
if (!path) throw new Error('--use <path> required');
|
206
|
+
|
207
|
+
// options
|
208
|
+
if ('--with' == args[0]) {
|
209
|
+
args.shift();
|
210
|
+
options = args.shift();
|
211
|
+
if (!options) throw new Error('--with <options> required');
|
212
|
+
options = eval('(' + options + ')');
|
213
|
+
}
|
214
|
+
|
215
|
+
// url support
|
216
|
+
if ('url' == path) {
|
217
|
+
urlFunction = options || {};
|
218
|
+
} else {
|
219
|
+
paths.push(dirname(path));
|
220
|
+
plugins.push({ path: path, options: options });
|
221
|
+
}
|
222
|
+
break;
|
223
|
+
default:
|
224
|
+
files.push(arg);
|
225
|
+
}
|
226
|
+
}
|
227
|
+
|
228
|
+
// optional growl support
|
229
|
+
|
230
|
+
try {
|
231
|
+
var growl = require('growl');
|
232
|
+
} catch (err) {
|
233
|
+
// ignore
|
234
|
+
}
|
235
|
+
|
236
|
+
// if --watch is used, assume we are
|
237
|
+
// not working with stdio
|
238
|
+
|
239
|
+
if (watchers && !files.length) {
|
240
|
+
files = fs.readdirSync(process.cwd())
|
241
|
+
.filter(function(file){
|
242
|
+
return file.match(/\.styl$/);
|
243
|
+
});
|
244
|
+
}
|
245
|
+
|
246
|
+
/**
|
247
|
+
* Open the default browser to the CSS property `name`.
|
248
|
+
*
|
249
|
+
* @param {String} name
|
250
|
+
*/
|
251
|
+
|
252
|
+
function help(name) {
|
253
|
+
var url
|
254
|
+
, exec = require('child_process').exec
|
255
|
+
, command;
|
256
|
+
|
257
|
+
name = encodeURIComponent(name);
|
258
|
+
|
259
|
+
switch (browser) {
|
260
|
+
case 'safari':
|
261
|
+
case 'webkit':
|
262
|
+
url = 'https://developer.apple.com/library/safari/search/?q=' + name;
|
263
|
+
break;
|
264
|
+
case 'opera':
|
265
|
+
url = 'http://dev.opera.com/search/?term=' + name;
|
266
|
+
break;
|
267
|
+
case 'w3c':
|
268
|
+
url = 'http://www.google.com/search?q=site%3Awww.w3.org%2FTR+' + name;
|
269
|
+
break;
|
270
|
+
case 'ms':
|
271
|
+
url = 'http://social.msdn.microsoft.com/search/en-US/ie?query=' + name + '&refinement=59%2c61';
|
272
|
+
break;
|
273
|
+
case 'caniuse':
|
274
|
+
url = 'http://caniuse.com/#search=' + name;
|
275
|
+
break;
|
276
|
+
case 'quirksmode':
|
277
|
+
url = 'http://www.google.com/search?q=site%3Awww.quirksmode.org+' + name;
|
278
|
+
break;
|
279
|
+
default:
|
280
|
+
url = 'https://developer.mozilla.org/en/CSS/' + name;
|
281
|
+
}
|
282
|
+
|
283
|
+
switch (process.platform) {
|
284
|
+
case 'linux': command = 'x-www-browser'; break;
|
285
|
+
default: command = 'open';
|
286
|
+
}
|
287
|
+
|
288
|
+
exec(command + ' "' + url + '"', function(){
|
289
|
+
process.exit(0);
|
290
|
+
});
|
291
|
+
}
|
292
|
+
|
293
|
+
// Compilation options
|
294
|
+
|
295
|
+
var options = {
|
296
|
+
filename: 'stdin'
|
297
|
+
, compress: compress
|
298
|
+
, firebug: firebug
|
299
|
+
, linenos: linenos
|
300
|
+
, paths: [process.cwd()].concat(paths)
|
301
|
+
};
|
302
|
+
|
303
|
+
// Buffer stdin
|
304
|
+
|
305
|
+
var str = '';
|
306
|
+
|
307
|
+
// Convert css to stylus
|
308
|
+
|
309
|
+
if (convertCSS) {
|
310
|
+
switch (files.length) {
|
311
|
+
case 2:
|
312
|
+
compileCSSFile(files[0], files[1]);
|
313
|
+
break;
|
314
|
+
case 1:
|
315
|
+
compileCSSFile(files[0], files[0].replace('.css', '.styl'));
|
316
|
+
break;
|
317
|
+
default:
|
318
|
+
var stdin = process.openStdin();
|
319
|
+
stdin.setEncoding('utf8');
|
320
|
+
stdin.on('data', function(chunk){ str += chunk; });
|
321
|
+
stdin.on('end', function(){
|
322
|
+
var out = stylus.convertCSS(str);
|
323
|
+
console.log(out);
|
324
|
+
});
|
325
|
+
}
|
326
|
+
} else if (interactive) {
|
327
|
+
repl();
|
328
|
+
} else {
|
329
|
+
if (files.length) {
|
330
|
+
compileFiles(files);
|
331
|
+
} else {
|
332
|
+
compileStdio();
|
333
|
+
}
|
334
|
+
}
|
335
|
+
|
336
|
+
/**
|
337
|
+
* Start stylus REPL.
|
338
|
+
*/
|
339
|
+
|
340
|
+
function repl() {
|
341
|
+
var options = { filename: 'stdin', imports: [join(__dirname, '..', 'lib', 'functions')] }
|
342
|
+
, parser = new stylus.Parser('', options)
|
343
|
+
, evaluator = new stylus.Evaluator(parser.parse(), options)
|
344
|
+
, rl = require('readline')
|
345
|
+
, repl = rl.createInterface(process.stdin, process.stdout, true)
|
346
|
+
, global = evaluator.global.scope;
|
347
|
+
|
348
|
+
// expose BIFs
|
349
|
+
evaluator.evaluate();
|
350
|
+
|
351
|
+
// readline
|
352
|
+
repl.setPrompt('> ');
|
353
|
+
repl.prompt();
|
354
|
+
|
355
|
+
// HACK: flat-list auto-complete
|
356
|
+
repl._tabComplete = function(){
|
357
|
+
var out = this.output
|
358
|
+
, line = this.line
|
359
|
+
, keys = Object.keys(global.locals)
|
360
|
+
, len = keys.length
|
361
|
+
, words = line.split(/\s+/)
|
362
|
+
, word = words.pop()
|
363
|
+
, names = []
|
364
|
+
, name
|
365
|
+
, obj
|
366
|
+
, key;
|
367
|
+
|
368
|
+
// find words that match
|
369
|
+
for (var i = 0; i < len; ++i) {
|
370
|
+
key = keys[i];
|
371
|
+
if (0 == key.indexOf(word)) {
|
372
|
+
names.push(key);
|
373
|
+
}
|
374
|
+
}
|
375
|
+
|
376
|
+
// several candidates
|
377
|
+
if (names.length > 1) {
|
378
|
+
out.write('\r\n\r\n\033[90m');
|
379
|
+
names.forEach(function(name){
|
380
|
+
var node = global.lookup(name);
|
381
|
+
switch (node.nodeName) {
|
382
|
+
case 'function':
|
383
|
+
out.write(' - ' + node + '\r\n');
|
384
|
+
break;
|
385
|
+
default:
|
386
|
+
out.write(' - ' + name + '\r\n');
|
387
|
+
}
|
388
|
+
});
|
389
|
+
out.write('\r\n\033[0m');
|
390
|
+
this._refreshLine();
|
391
|
+
// single candidate
|
392
|
+
} else if (names.length) {
|
393
|
+
name = names.pop();
|
394
|
+
obj = global.lookup(name);
|
395
|
+
name = name.replace(word, '');
|
396
|
+
switch (obj.nodeName) {
|
397
|
+
case 'function':
|
398
|
+
this._insertString(name + '()');
|
399
|
+
this.cursor--;
|
400
|
+
break;
|
401
|
+
default:
|
402
|
+
this._insertString(name);
|
403
|
+
}
|
404
|
+
this._refreshLine();
|
405
|
+
}
|
406
|
+
};
|
407
|
+
|
408
|
+
repl.on('line', function(line){
|
409
|
+
if (!line.trim().length) return repl.prompt();
|
410
|
+
parser = new stylus.Parser(line, options);
|
411
|
+
parser.state.push('expression');
|
412
|
+
evaluator.return = true;
|
413
|
+
try {
|
414
|
+
var expr = parser.parse();
|
415
|
+
var ret = evaluator.visit(expr);
|
416
|
+
ret = ret.nodes[ret.nodes.length - 1];
|
417
|
+
ret = ret.toString();
|
418
|
+
if ('(' == ret[0]) ret = ret.replace(/^\(|\)$/g, '');
|
419
|
+
console.log('\033[90m=> \033[0m' + highlight(ret));
|
420
|
+
repl.prompt();
|
421
|
+
} catch (err) {
|
422
|
+
console.error('\033[31merror: %s\033[0m', err.message || err.stack);
|
423
|
+
repl.prompt();
|
424
|
+
}
|
425
|
+
});
|
426
|
+
|
427
|
+
repl.on('SIGINT', function(){
|
428
|
+
console.log();
|
429
|
+
process.exit(0);
|
430
|
+
});
|
431
|
+
}
|
432
|
+
|
433
|
+
/**
|
434
|
+
* Highlight the given string of stylus.
|
435
|
+
*/
|
436
|
+
|
437
|
+
function highlight(str) {
|
438
|
+
return str
|
439
|
+
.replace(/(#)?(\d+(\.\d+)?)/g, function($0, $1, $2){
|
440
|
+
return $1 ? $0 : '\033[36m' + $2 + '\033[0m';
|
441
|
+
})
|
442
|
+
.replace(/(#[\da-fA-F]+)/g, '\033[33m$1\033[0m')
|
443
|
+
.replace(/('.*?'|".*?")/g, '\033[32m$1\033[0m');
|
444
|
+
}
|
445
|
+
|
446
|
+
/**
|
447
|
+
* Convert a CSS file to a Styl file
|
448
|
+
*/
|
449
|
+
|
450
|
+
function compileCSSFile(file, fileOut) {
|
451
|
+
fs.lstat(file, function(err, stat){
|
452
|
+
if (err) throw err;
|
453
|
+
if (stat.isFile()) {
|
454
|
+
fs.readFile(file, 'utf8', function(err, str){
|
455
|
+
if (err) throw err;
|
456
|
+
var styl = stylus.convertCSS(str);
|
457
|
+
fs.writeFile(fileOut, styl, function(err){
|
458
|
+
if (err) throw err;
|
459
|
+
});
|
460
|
+
});
|
461
|
+
}
|
462
|
+
});
|
463
|
+
}
|
464
|
+
|
465
|
+
/**
|
466
|
+
* Compile with stdio.
|
467
|
+
*/
|
468
|
+
|
469
|
+
function compileStdio() {
|
470
|
+
process.stdin.setEncoding('utf8');
|
471
|
+
process.stdin.on('data', function(chunk){ str += chunk; });
|
472
|
+
process.stdin.on('end', function(){
|
473
|
+
// Compile to css
|
474
|
+
var style = stylus(str, options);
|
475
|
+
usePlugins(style);
|
476
|
+
style.render(function(err, css){
|
477
|
+
if (err) throw err;
|
478
|
+
if (compare) {
|
479
|
+
console.log('\n\x1b[1mInput:\x1b[0m');
|
480
|
+
console.log(str);
|
481
|
+
console.log('\n\x1b[1mOutput:\x1b[0m');
|
482
|
+
}
|
483
|
+
console.log(css);
|
484
|
+
if (compare) console.log();
|
485
|
+
});
|
486
|
+
}).resume();
|
487
|
+
}
|
488
|
+
|
489
|
+
/**
|
490
|
+
* Compile the given files.
|
491
|
+
*/
|
492
|
+
|
493
|
+
function compileFiles(files) {
|
494
|
+
files.forEach(compileFile);
|
495
|
+
}
|
496
|
+
|
497
|
+
/**
|
498
|
+
* Compile the given file.
|
499
|
+
*/
|
500
|
+
|
501
|
+
function compileFile(file) {
|
502
|
+
// ensure file exists
|
503
|
+
fs.lstat(file, function(err, stat){
|
504
|
+
if (err) throw err;
|
505
|
+
// file
|
506
|
+
if (stat.isFile()) {
|
507
|
+
fs.readFile(file, 'utf8', function(err, str){
|
508
|
+
if (err) throw err;
|
509
|
+
options.filename = file;
|
510
|
+
options._imports = [];
|
511
|
+
var style = stylus(str, options);
|
512
|
+
usePlugins(style);
|
513
|
+
style.render(function(err, css){
|
514
|
+
watchImports(file, options._imports);
|
515
|
+
if (err) {
|
516
|
+
if (watchers) {
|
517
|
+
console.error(err.stack || err.message);
|
518
|
+
growl && growl.notify(err.message, { title: 'Stylus error' });
|
519
|
+
} else {
|
520
|
+
throw err;
|
521
|
+
}
|
522
|
+
} else {
|
523
|
+
writeFile(file, css);
|
524
|
+
}
|
525
|
+
});
|
526
|
+
});
|
527
|
+
// directory
|
528
|
+
} else if (stat.isDirectory()) {
|
529
|
+
fs.readdir(file, function(err, files){
|
530
|
+
if (err) throw err;
|
531
|
+
files.filter(function(path){
|
532
|
+
return path.match(/\.styl$/);
|
533
|
+
}).map(function(path){
|
534
|
+
return join(file, path);
|
535
|
+
}).forEach(compileFile);
|
536
|
+
});
|
537
|
+
}
|
538
|
+
});
|
539
|
+
}
|
540
|
+
|
541
|
+
/**
|
542
|
+
* Write the given css output.
|
543
|
+
*/
|
544
|
+
|
545
|
+
function writeFile(file, css) {
|
546
|
+
// --out support
|
547
|
+
var path = dest
|
548
|
+
? join(dest, basename(file, '.styl') + '.css')
|
549
|
+
: file.replace('.styl', '.css');
|
550
|
+
fs.writeFile(path, css, function(err){
|
551
|
+
if (err) throw err;
|
552
|
+
console.log(' \033[90mcompiled\033[0m %s', path);
|
553
|
+
// --watch support
|
554
|
+
watch(file, compileFile);
|
555
|
+
});
|
556
|
+
}
|
557
|
+
|
558
|
+
/**
|
559
|
+
* Watch the given `file` and invoke `fn` when modified.
|
560
|
+
*/
|
561
|
+
|
562
|
+
function watch(file, fn) {
|
563
|
+
// not watching
|
564
|
+
if (!watchers) return;
|
565
|
+
|
566
|
+
// already watched
|
567
|
+
if (watchers[file]) return;
|
568
|
+
|
569
|
+
// watch the file itself
|
570
|
+
watchers[file] = true;
|
571
|
+
console.log(' \033[90mwatching\033[0m %s', file);
|
572
|
+
fs.watchFile(file, { interval: 50 }, function(curr, prev){
|
573
|
+
if (curr.mtime > prev.mtime) fn(file);
|
574
|
+
});
|
575
|
+
}
|
576
|
+
|
577
|
+
/**
|
578
|
+
* Watch `imports`, re-compiling `file` when they change.
|
579
|
+
*/
|
580
|
+
|
581
|
+
function watchImports(file, imports) {
|
582
|
+
imports.forEach(function(imported){
|
583
|
+
if (!imported.path) return;
|
584
|
+
watch(imported.path, function(){
|
585
|
+
compileFile(file);
|
586
|
+
});
|
587
|
+
});
|
588
|
+
}
|
589
|
+
|
590
|
+
/**
|
591
|
+
* Utilize plugins.
|
592
|
+
*/
|
593
|
+
|
594
|
+
function usePlugins(style) {
|
595
|
+
plugins.forEach(function(plugin){
|
596
|
+
var path = plugin.path;
|
597
|
+
var options = plugin.options;
|
598
|
+
fn = require(path);
|
599
|
+
if ('function' != typeof fn) {
|
600
|
+
throw new Error('plugin ' + path + ' does not export a function');
|
601
|
+
}
|
602
|
+
style.use(fn(options));
|
603
|
+
});
|
604
|
+
|
605
|
+
if (urlFunction) style.define('url', stylus.url(urlFunction));
|
606
|
+
}
|
data/vendor/bm.js
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
/**
|
3
|
+
* Module dependencies.
|
4
|
+
*/
|
5
|
+
|
6
|
+
var stylus = require('./');
|
7
|
+
|
8
|
+
var times = 200
|
9
|
+
, n = times
|
10
|
+
, start = new Date;
|
11
|
+
|
12
|
+
console.log('compiling %d times', times);
|
13
|
+
|
14
|
+
while (n--) {
|
15
|
+
stylus('body\n color: white;\n background: url(/images/foo.png)\n a\n &:hover\n text-decoration: underline;')
|
16
|
+
.render(function(err, css){});
|
17
|
+
}
|
18
|
+
|
19
|
+
var duration = new Date - start;
|
20
|
+
console.log(' duration: %dms', duration);
|
21
|
+
console.log(' average: %dms', duration / times);
|
22
|
+
console.log(' per second: %d', (times / (duration / 1000)).toFixed(1));
|