Giter Site home page Giter Site logo

ruby-sass's Introduction

Sass

@SassCSS on Twitter    stackoverflow    Gitter

Sass makes CSS fun again. Sass is an extension of CSS, adding nested rules, variables, mixins, selector inheritance, and more. It's translated to well-formatted, standard CSS using the command line tool or a plugin for your build system.

$font-stack: Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

@mixin border-radius($radius) {
  -webkit-border-radius: $radius;
     -moz-border-radius: $radius;
      -ms-border-radius: $radius;
          border-radius: $radius;
}

nav {
  ul {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  li { @include border-radius(10px); }

  a {
    display: block;
    padding: 6px 12px;
    text-decoration: none;
  }
}

Install Sass

You can install Sass on Windows, Mac, or Linux by downloading the package for your operating system from GitHub and adding it to your PATH. That's all—there are no external dependencies and nothing else you need to install.

If you use Node.js, you can also install Sass using npm by running

npm install -g sass

However, please note that this will install the pure JavaScript implementation of Sass, which runs somewhat slower than the other options listed here. But it has the same interface, so it'll be easy to swap in another implementation later if you need a bit more speed!

See the Sass website for more ways to install Sass.

Once you have Sass installed, you can run the sass executable to compile .sass and .scss files to .css files. For example:

sass source/stylesheets/index.scss build/stylesheets/index.css

Learn Sass

Check out the Sass website for a guide on how to learn Sass!

This Repository

This repository isn't an implementation of Sass. Those live in sass/dart-sass and sass/libsass. Instead, it contains:

  • spec/, which contains specifications for language features.
  • proposal/, which contains in-progress proposals for changes to the language.
  • accepted/, which contains proposals that have been accepted and are either implemented or in the process of being implemented.

Note that this doesn't contain a full specification of Sass. Instead, feature specifications are written as needed when a new feature is being designed or when an implementor needs additional clarity about how something is supposed to work. This means many of the specs in spec/ only cover small portions of the features in question.

Versioning Policy

The proposals in this repository are versioned, to make it easy to track changes over time and to refer to older versions. Every version has a Git tag of the form proposal.<name>.draft-<version>. A new version should be created for each batch of changes.

Every version has a major version, and they may have a minor version as well (indicated <major>.<minor>). The minor version should be incremented for changes that don't affect the intended semantics of the proposal; otherwise, the major version should be incremented.

ruby-sass's People

Contributors

brijohn avatar carletex avatar chriseppstein avatar christianpeters avatar cristibalan avatar eitoball avatar indirect avatar jede avatar joerixaop avatar jonathantr avatar josh avatar junaruga avatar kaelig avatar kamal avatar mislav avatar nex3 avatar norman avatar olek avatar petebrowne avatar pioupioum avatar pointlessone avatar pushcx avatar rrrene avatar srawlins avatar technomancy avatar tenderlove avatar thedarkone avatar tmm1 avatar twalpole avatar xzyfer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ruby-sass's Issues

Always output Sass values in error messages in expanded style

From sass/sass#1916:

Related to sass/sass-spec#627

I would like to requested that Sass values in error messages to always be output in the expanded style, or alternatively as authored. This is not the case currently.

foo {
  bar: (rgba(16,16,16,0.5) + #AAA);
}
Error: Alpha channels must be equal: rgba(16,16,16,0.5) + #AAA // compressed
Error: Alpha channels must be equal: rgba(16, 16, 16, 0.5) + #AAA // all other

Include linebreaks for nested selectors

From sass/sass#800:

Typically Sass respects linebreaks between combined selectors. But when referencing parent selector, they will be ignored.

a {
  &:focus,
  &:hover,
  &:active {
    ...
  }
}

will be (even in expanded mode) compiled to:

a:focus, a:hover, a:active {
  ....
}

instead of:

a:focus,
a:hover,
a:active {
  ....
}

Please fix this problem. Sadly, these so output configuration to force this output style.

Unify .sass and .scss parsers

From sass/sass#1942:

The .sass syntax parser can be replaced by a pre-processing step and then passed to the .scss syntax parser. This way, new parsing rules only need to be implemented once.

This is not a blocking issue for 4.0.

Extra arguments passed to fixed arity function don't cause error

From sass/sass#1408:

This should be an error.

@mixin foo($a, $b) {
  .foo { #{$a}: $b; }
}
$args: (color, red, extra-arg, another-extra-arg);
@include foo($args...);

It should behave exactly like this:

@mixin foo($a, $b) {
  .foo { #{$a}: $b; }
}
@include foo(color, red, extra-arg, another-extra-arg);

Which raises:

Syntax error: Mixin foo takes 2 arguments but 4 were passed.
        on line 4 of standard input, in `foo'
        from line 4 of standard input
  Use --trace for backtrace.

Note that this is currently deprecated, and just needs to become an error on the master branch.

Reject invalid function names

From sass/sass#1598:

Sass has special parse rules for functions named calc, element, expression, and url that mean that user-defined functions with those names can never be run. We should emit an error when those functions are defined rather than allowing the user to define them and be unable to use them, as in sass/sass#1571.

calc and element may also have vendor prefixes.

Note that this is currently deprecated, and just needs to become an error on the master branch.

Sass session cache

From sass/sass#1264:

Sass extensions need a place to cache values for the duration of a single compile.

Suggestion environment.session which returns a hash that is stored in the top-level environment.

Command line output in JSON format

From sass/sass#593:

I would like Sass's command line utility to optionally return errors in a JSON format. I envision something like this:

errorMessage: "This is the reason Sass failed to compile."
file: "/path/to/some/file.sass"
line: 34
character: 19
code: "This is the line of Sass code containing the error"
stacktrace: "junk here"

The reason I ask is that having the output in a parseable format allows infinitely better integration of Sass in third-party applications that want to do custom formatting of the Sass compiler's return messages.

I strongly recommend that you adopt JSON over alternatives such as CSV and XML. JSON is cleaner, smaller, more easily read by humans (in case they need to do so), faster to parse in almost every instance and is quickly replacing XML as the default on the modern web.

static colors are not compressed

From sass/sass#387:

If a property value is completely guaranteed to be static, we do not parse it, so colors are not compressed. It's a minor thing, but if it can be done with decent performance, it would be good to get this compression.

Nested `&` will result strange line break

From sass/sass#1373:

If I write nested & like this:

.foo,
.bar,
.baz {
  .qux &:before {
    content: "test";
  }
}

I get:

.qux .foo:before, .qux
.bar:before, .qux
.baz:before {
  content: "test"; }

It should be:

.qux .foo:before,
.qux .bar:before,
.qux .baz:before {
  content: "test"; }

Tested on Sass 3.4.0.rc.3, ruby 2.0.0p353 (2013-11-22) [x64-mingw32].

lots of errors generating the documentation

From sass/sass#1872:

I'm getting incompletely generated documentation.

I did the usual:

git clone ....
cd ...
gem install bundler
bundle install
yard doc

And I see a lot of errors, and the documentation seems in complete (e.g. the sidebar TOC on the main page only has about 3 top level items in it).

I've attached all the errors. Beyond my skills or time to fix them, but hope someone has a workaround or a simple fix.

Hmmm. Don't have permission to attach, so I guess I'll just paste the whole thing here:


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Malformed HTML starting at "<SASS_CHECKOUT_DIRECTORY>\n$ bundle\n$ bundle exec sass ...\n$ bundle exec scss ...\n$ bundle exec sass-convert ..."
| ---------------------------------------------------------------------------
| ```N$ cd <SASS_CHECKOUT_DIRECTORY>N$ bundleN$ bundle exec sass ...N$ bundle
| ---------|------------------------------------------------------------------
|          +--- Byte 9
| Shown bytes [0 to 75] of 120:
| >```
| >$ cd <SASS_CHECKOUT_DIRECTORY>
| >$ bundle
| >$ bundle exec sass ...
| >$ bundle exec scss ...
| >$ bundle exec sass-convert ...
| 
| At line 192
|       text     |$ bundle exec sass ...|
|       text     |$ bundle exec scss ...|
|       text     |$ bundle exec sass-convert ...|
|       text --> |```|
|      empty     ||
|    header3     |## Authors|
|      empty     ||
| 
| 
| Elements read in span: 
|  -md_entity("ldquo")
| Current string: 
|   " cd "
|
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_span.rb:504:in `read_inline_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_span.rb:115:in `read_span'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_span.rb:14:in `parse_span'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_block.rb:287:in `read_paragraph'
\___________________________________________________________________________


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Maruku cannot parse this block of HTML/XML:
| |<SASS_CHECKOUT_DIRECTORY>
| |$ bundle
| |$ bundle exec sass ...
| |$ bundle exec scss ...
| |$ bundle exec sass-convert ...
| Missing end tag for 'SASS_CHECKOUT_DIRECTORY' (got "html")
| Line: 8
| Position: 270
| Last 80 unconsumed characters:
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/helpers.rb:72:in `rescue in md_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/helpers.rb:67:in `md_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_span.rb:513:in `read_inline_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_span.rb:115:in `read_span'
\___________________________________________________________________________

Wrapping bad html in a PRE with class 'markdown-html-error'
|<SASS_CHECKOUT_DIRECTORY>
|$ bundle
|$ bundle exec sass ...
|$ bundle exec scss ...
|$ bundle exec sass-convert ...

 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Malformed HTML starting at "<SASS_CHECKOUT_DIRECTORY>\n$ bundle\n$ bundle exec sass ...\n$ bundle exec scss ...\n$ bundle exec sass-convert ..."
| ---------------------------------------------------------------------------
| ```N$ cd <SASS_CHECKOUT_DIRECTORY>N$ bundleN$ bundle exec sass ...N$ bundle
| ---------|------------------------------------------------------------------
|          +--- Byte 9
| Shown bytes [0 to 75] of 120:
| >```
| >$ cd <SASS_CHECKOUT_DIRECTORY>
| >$ bundle
| >$ bundle exec sass ...
| >$ bundle exec scss ...
| >$ bundle exec sass-convert ...
| 
| At line 192
|       text     |$ bundle exec sass ...|
|       text     |$ bundle exec scss ...|
|       text     |$ bundle exec sass-convert ...|
|       text --> |```|
|      empty     ||
|    header3     |## Authors|
|      empty     ||
| 
| 
| Elements read in span: 
|  -md_entity("ldquo")
| Current string: 
|   " cd "
|
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_span.rb:504:in `read_inline_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_span.rb:115:in `read_span'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_span.rb:14:in `parse_span'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_block.rb:287:in `read_paragraph'
\___________________________________________________________________________


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Maruku cannot parse this block of HTML/XML:
| |<SASS_CHECKOUT_DIRECTORY>
| |$ bundle
| |$ bundle exec sass ...
| |$ bundle exec scss ...
| |$ bundle exec sass-convert ...
| Missing end tag for 'SASS_CHECKOUT_DIRECTORY' (got "html")
| Line: 8
| Position: 270
| Last 80 unconsumed characters:
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/helpers.rb:72:in `rescue in md_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/helpers.rb:67:in `md_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_span.rb:513:in `read_inline_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/input/parse_span.rb:115:in `read_span'
\___________________________________________________________________________

Wrapping bad html in a PRE with class 'markdown-html-error'
|<SASS_CHECKOUT_DIRECTORY>
|$ bundle
|$ bundle exec sass ...
|$ bundle exec scss ...
|$ bundle exec sass-convert ...

 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "Fixnum.round" for md_link("Fixnum.round", nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "Fixnum.round".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "path" for md_link("path", nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "path".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "" for md_link([], nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "Fixnum.round" for md_link("Fixnum.round", nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "Fixnum.round".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "$end-at" for md_link("$end-at", nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "$end-at".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "$limit" for md_link("$limit", nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "$limit".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "" for md_link([], nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "" for md_link([], nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "" for md_link([], nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "sass_file, css_file, sourcemap_file" for md_link("sass_file, css_file, sourcemap_file", nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "sass_file, css_file, sourcemap_file".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| It's unclear which element the attribute list {:#resolved_rule}
| is referring to. The element before is a String,
| the element after is a String.
|   before: " and "
|   after: " will automatically be set to "
| 
| ---------------------------------------------------------------------------
| oN`:without` and {#resolved\_rule} will automatically be set to `["rule"]`.EOF
| ---------------------------------------------------------------------------|
|                                                                            +--- Byte 189
| Shown bytes [114 to 75] of 189:
| >This will be nil if the directive didn't have a query. In this
| >case, {#resolved\_type} will automatically be set to
| >`:without` and {#resolved\_rule} will automatically be set to `["rule"]`.
| 
| At line 9
|       text     |This will be nil if the directive didn't have a query. In this|
|       text     |case, {#resolved\_type} will automatically be set to|
|       text     |`:without` and {#resolved\_rule} will automatically be set to `["rule"]`.|
| 
| 
| Elements read in span: 
|  -"This will be nil if the directive didn"
|  -md_entity("rsquo")
|  -"t have a query. In this case, "
|  -md_el(:ald, [], {:ald_id=>"`", :ald=>[[:ref, "esolved_type"]]})
|  -" will automatically be set to "
|  -md_code(":without")
|  -" and "
|  -md_ial([[:id, "resolved_rule"]])
|  -" will automatically be set to "
|  -md_code("[\"rule\"]")
|  -"."
|
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:101:in `block in merge_ial'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `each_cons'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `merge_ial'
\___________________________________________________________________________


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "Map" for md_link("Map", nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "Map".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "List" for md_link("List", nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "List".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "" for md_link([], nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "" for md_link([], nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "".


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| It's unclear which element the attribute list {:#visit_children}
| is referring to. The element before is a String,
| the element after is a String.
|   before: "Like "
|   after: ", but doesn"
| 
| ---------------------------------------------------------------------------
| Like {#visit\_children}, but doesn't set {#parent}.EOF
| ---------------------------------------------------|------------------------
|                                                    +--- Byte 51
| Shown bytes [0 to 51] of 51:
| >Like {#visit\_children}, but doesn't set {#parent}.
| 
| At line 2
|       text     |Like {#visit\_children}, but doesn't set {#parent}.|
| 
| 
| Elements read in span: 
|  -"Like "
|  -md_ial([[:id, "visit_children"]])
|  -", but doesn"
|  -md_entity("rsquo")
|  -"t set "
|  -md_ial([[:id, "parent"]])
|  -"."
|
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:101:in `block in merge_ial'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `each_cons'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `merge_ial'
\___________________________________________________________________________


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| It's unclear which element the attribute list {:#parent}
| is referring to. The element before is a String,
| the element after is a String.
|   before: "t set "
|   after: "."
| 
| ---------------------------------------------------------------------------
| Like {#visit\_children}, but doesn't set {#parent}.EOF
| ---------------------------------------------------|------------------------
|                                                    +--- Byte 51
| Shown bytes [0 to 51] of 51:
| >Like {#visit\_children}, but doesn't set {#parent}.
| 
| At line 2
|       text     |Like {#visit\_children}, but doesn't set {#parent}.|
| 
| 
| Elements read in span: 
|  -"Like "
|  -md_ial([[:id, "visit_children"]])
|  -", but doesn"
|  -md_entity("rsquo")
|  -"t set "
|  -md_ial([[:id, "parent"]])
|  -"."
|
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:101:in `block in merge_ial'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `each_cons'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `merge_ial'
\___________________________________________________________________________


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| It's unclear which element the attribute list {:#visit_children}
| is referring to. The element before is a String,
| the element after is a String.
|   before: "Like "
|   after: ", but doesn"
| 
| ---------------------------------------------------------------------------
| Like {#visit\_children}, but doesn't set {#parent}.EOF
| ---------------------------------------------------|------------------------
|                                                    +--- Byte 51
| Shown bytes [0 to 51] of 51:
| >Like {#visit\_children}, but doesn't set {#parent}.
| 
| At line 2
|       text     |Like {#visit\_children}, but doesn't set {#parent}.|
| 
| 
| Elements read in span: 
|  -"Like "
|  -md_ial([[:id, "visit_children"]])
|  -", but doesn"
|  -md_entity("rsquo")
|  -"t set "
|  -md_ial([[:id, "parent"]])
|  -"."
|
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:101:in `block in merge_ial'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `each_cons'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `merge_ial'
\___________________________________________________________________________


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| It's unclear which element the attribute list {:#parent}
| is referring to. The element before is a String,
| the element after is a String.
|   before: "t set "
|   after: "."
| 
| ---------------------------------------------------------------------------
| Like {#visit\_children}, but doesn't set {#parent}.EOF
| ---------------------------------------------------|------------------------
|                                                    +--- Byte 51
| Shown bytes [0 to 51] of 51:
| >Like {#visit\_children}, but doesn't set {#parent}.
| 
| At line 2
|       text     |Like {#visit\_children}, but doesn't set {#parent}.|
| 
| 
| Elements read in span: 
|  -"Like "
|  -md_ial([[:id, "visit_children"]])
|  -", but doesn"
|  -md_entity("rsquo")
|  -"t set "
|  -md_ial([[:id, "parent"]])
|  -"."
|
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:101:in `block in merge_ial'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `each_cons'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/attributes.rb:93:in `merge_ial'
\___________________________________________________________________________


 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could not find ref_id = "Sass::Tree::Node" for md_link("Sass::Tree::Node", nil)
| Available refs are []
+---------------------------------------------------------------------------
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:656:in `to_html_link'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:891:in `block in array_to_html'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `each'
!/Users/datihein/Documents/prj/3rd/sass/.gems/gems/maruku-0.7.2/lib/maruku/output/to_html.rb:879:in `array_to_html'
\___________________________________________________________________________

Not creating a link for ref_id = "Sass::Tree::Node".

[warn]: Unknown tag @comment in file `lib/sass/engine.rb` near line 493
[warn]: Unknown tag @comment in file `lib/sass/engine.rb` near line 714
[warn]: Unknown tag @comment in file `lib/sass/engine.rb` near line 791
[warn]: Unknown tag @comment in file `lib/sass/engine.rb` near line 854
[warn]: Unknown tag @comment in file `lib/sass/engine.rb` near line 1005
[warn]: Unknown tag @comment in file `lib/sass/engine.rb` near line 1073
[warn]: Unknown tag @comment in file `lib/sass/version.rb` near line 47
[warn]: @param tag has unknown parameter name: name 
    in file `lib/sass/selector.rb' near line 37
[warn]: Unknown tag @comment in file `lib/sass/selector.rb` near line 301
[warn]: Unknown tag @comment in file `lib/sass/source/map.rb` near line 89
[warn]: Unknown tag @comment in file `lib/sass/scss/parser.rb` near line 26
[warn]: Unknown tag @comment in file `lib/sass/exec/sass_scss.rb` near line 261
[warn]: Unknown tag @comment in file `lib/sass/exec/sass_scss.rb` near line 386
[warn]: @param tag has unknown parameter name: template 
    in file `lib/sass/tree/root_node.rb' near line 8
[warn]: Unknown tag @comment in file `lib/sass/script/functions.rb` near line 359
[warn]: Unknown tag @comment in file `lib/sass/script/functions.rb` near line 359
[warn]: @param tag has unknown parameter name: function_name 
    in file `lib/sass/script/functions.rb' near line 603
[warn]: Unknown tag @comment in file `lib/sass/script/functions.rb` near line 1125
[warn]: Unknown tag @comment
[warn]: Unknown tag @comment in file `lib/sass/script/functions.rb` near line 1198
[warn]: Unknown tag @comment
[warn]: Unknown tag @comment in file `lib/sass/script/functions.rb` near line 1267
[warn]: Unknown tag @comment
[warn]: Unknown tag @comment in file `lib/sass/script/functions.rb` near line 2671
[warn]: Unknown tag @options in file `lib/sass/script/tree/node.rb` near line 70
[warn]: @param tag has unknown parameter name: cseq 
    in file `lib/sass/selector/sequence.rb' near line 155
[warn]: Unknown tag @retur in file `lib/sass/selector/sequence.rb` near line 185
[warn]: Unknown tag @comment in file `lib/sass/selector/sequence.rb` near line 342
[warn]: Unknown tag @comment
[warn]: @param tag has unknown parameter name: options 
    in file `lib/sass/script/value/base.rb' near line 32
[warn]: @param tag has unknown parameter name: other 
    in file `lib/sass/script/value/base.rb' near line 79
[warn]: @param tag has unknown parameter name: other 
    in file `lib/sass/script/value/base.rb' near line 126
[warn]: @param tag has unknown parameter name: other 
    in file `lib/sass/script/value/base.rb' near line 135
[warn]: @param tag has unknown parameter name: other 
    in file `lib/sass/script/value/base.rb' near line 144
[warn]: Unknown tag @options in file `lib/sass/script/value/base.rb` near line 218
[warn]: Unknown tag @options in file `lib/sass/script/value/base.rb` near line 218
[warn]: @param tag has unknown parameter name: filename 
    in file `lib/sass/scss/static_parser.rb' near line 18
[warn]: Unknown tag @comment in file `lib/sass/scss/static_parser.rb` near line 56
[warn]: Unknown tag @options in file `lib/sass/script/value/string.rb` near line 38
[warn]: Unknown tag @options in file `lib/sass/script/value/string.rb` near line 38
[warn]: Unknown tag @comment in file `lib/sass/tree/visitors/to_css.rb` near line 175
[warn]: Unknown tag @comment in file `lib/sass/tree/visitors/to_css.rb` near line 249
[warn]: Unknown tag @comment in file `lib/sass/tree/visitors/to_css.rb` near line 279
[warn]: Unknown tag @comment in file `lib/sass/tree/visitors/to_css.rb` near line 377
[warn]: Unknown tag @throw in file `lib/sass/script/value/helpers.rb` near line 136
[warn]: Unknown tag @throw in file `lib/sass/script/value/helpers.rb` near line 161
[warn]: Unknown tag @throw in file `lib/sass/script/value/helpers.rb` near line 182
[warn]: Unknown tag @comment in file `lib/sass/tree/visitors/perform.rb` near line 14
[warn]: @param tag has unknown parameter name: original 
    in file `lib/sass/selector/simple_sequence.rb' near line 157
[warn]: Unknown tag @comment in file `lib/sass/script/tree/interpolation.rb` near line 41
[warn]: In file `lib/sass/util.rb':16: Cannot resolve link to #check_encoding from text:
[warn]: ...{#check_encoding}...
[warn]: In file `lib/sass/util.rb':847: Cannot resolve link to #check_encoding from text:
[warn]: ...{#check_encoding}...
[warn]: In file `lib/sass/util.rb':354: Cannot resolve link to Array.max from text:
[warn]: ...{Array.max}...
[warn]: In file `lib/sass/util.rb':360: Cannot resolve link to Array.min from text:
[warn]: ...{Array.min}...
[warn]: In file `lib/sass/script/functions.rb':226: Cannot resolve link to #set-nth from text:
[warn]: ...{#set-nth set-nth($list, $n, $value)}...
[warn]: In file `lib/sass/util.rb':1192: Cannot resolve link to #def_static_method from text:
[warn]: ...{#def_static_method}...
[warn]: In file `lib/sass/tree/node.rb':30: Cannot resolve link to #to_s from text:
[warn]: ...{#to_s}...
[warn]: In file `lib/sass/tree/node.rb':146: Cannot resolve link to #to_s from text:
[warn]: ...{#to_s}...
[warn]: In file `lib/sass/environment.rb':84: Cannot resolve link to #parent from text:
[warn]: ...{#parent}...
[warn]: In file `lib/sass/selector/simple.rb':45: Cannot resolve link to #to_a from text:
[warn]: ...{#to_a}...
[warn]: In file `lib/sass/selector/simple.rb':34: Cannot resolve link to #to_a from text:
[warn]: ...{#to_a}...
[warn]: In file `lib/sass/selector/simple.rb':56: Cannot resolve link to Interpolation from text:
[warn]: ...{Interpolation}...
[warn]: In file `lib/sass/selector/pseudo.rb':4: Cannot resolve link to #new_selector from text:
[warn]: ...{#new_selector}...
[warn]: In file `lib/sass/selector/pseudo.rb':52: Cannot resolve link to #new_selector from text:
[warn]: ...{#new_selector}...
[warn]: In file `lib/sass/script/functions.rb':495: Cannot resolve link to Environment#caller from text:
[warn]: ...{Environment#caller}...
[warn]: In file `lib/sass/selector/sequence.rb':127: Cannot resolve link to Interpolation from text:
[warn]: ...{Interpolation}...
[warn]: In file `lib/sass/tree/visitors/cssize.rb':350: Cannot resolve link to #pop from text:
[warn]: ...{#pop}...
[warn]: In file `lib/sass/selector/comma_sequence.rb':126: Cannot resolve link to Interpolation from text:
[warn]: ...{Interpolation}...
[warn]: In file `lib/sass/selector/simple_sequence.rb':225: Cannot resolve link to Interpolation from text:
[warn]: ...{Interpolation}...
Files:         127
Modules:        32 (    8 undocumented)
Classes:       128 (    9 undocumented)
Constants:       4 (    0 undocumented)
Methods:      1399 (  216 undocumented)
 85.09% documented

Error: @charset may only be used at the root of a document.

From sass/sass#2023:

Take this document one.sass:

@charset "UTF-8"
/*  © Yajo
.other
    @import "other"

Then this another _other.sass:

@charset "UTF-8"
/*  © Yajo
.someclass
    display: none

Then:

sass \
        --cache-location /var/cache/sass\
        --compass\
        --require bootstrap-sass\
        --update /app:/app\

Says:

      error /app/...../static/src/css/_other.sass (Line 1: @charset may only be used at the root of a document.)

... but I need UTF8 for ©! And docs say that @charset only goes into CSS when there's any non-ASCII character, so it should even be automatic.

Get backtraces without unwinding the stack

From sass/sass#605:

Sass needs a way to get a Sass backtrace without unwinding the Ruby stack as well. This is useful for getting the full backtrace for warnings (especially for sass/sass#593), as well as raising an error for a node outside of a visitor, since the Ruby stack no longer matches the Sass stack.

Importer Test Harness

From sass/sass#1867:

Issue sass/sass#1865 demonstrated that it would help developers of new importers if there was a test harness that they could easily use to ensure that their importer is correctly implementing the importer contract.

Probably the same goes for Cache Stores though that interface is less tricky.

Bug with handling / in interpolation

From sass/sass#2160:

@nex3 confirmed this is a bug. There is currently a sass spec asserting this broken behaviour which is causing LibSass to fail CI.

h1 {
  delayd: #{5% / 2};
  delayd: #{+5% / 2};
  evaled: #{-5% / 2};
}

Sass 3.4.21

h1 {
  delayd: 5%/2;
  delayd: 5%/2;
  evaled: -2.5%;
}

Expected

h1 {
  delayd: 5%/2;
  delayd: 5%/2;
  evaled: -5%/2;
}

Out of date doc for Sass::Plugin::Rack

From sass/sass#824:

Sass 3.2.9 (Media Mark)

options= was deprecated, meaning options.merge will fail as given in this example:

http://sass-lang.com/docs/yardoc/Sass/Plugin/Rack.html

Also, though you have to require sass/plugin/rack, use Sass::Plugin::Rack is not strictly necessary to use Sass::Plugin if you are using it just to compile multiple files or folders on a filesystem from sass to css, as one would do for a precompile rake task, and as is suggested in the engine docs:

http://sass-lang.com/docs/yardoc/Sass/Engine.html

The phrasing of the two doc pages seems somewhat contradictory as to what exactly Sass:Plugin can be used for.

The sass executable shouldn't implicitly switch to --update

From sass/sass#1602:

Currently, the sass and scss executables silently switch to --update mode if multiple colon-separated paths are passed on the command line. This leads to confusing differences between sass foo:bar and sass foo:bar baz:bang, especially if foo and bar are directories.

We should change the behavior to never enable --update mode without the flag itself being explicitly passed. This means we'll need to deprecate handling directories without --update.

Inconsistencies in messages

From sass/sass#1880:

These were discovered by LibSass and Sass Spec. As the LibSass team closes in on parity Sass' small inconsistencies make Sass Spec angry at us. Below are some of the one currently hurting us. I'd PR a fix myself but there it's not clear which is right way to go.


Too many arguments.

This was mistake on my behalf.


Deprecations warnings

WARNING: Function bar takes 4 arguments but 5 were passed.
        on line 23 of test.scss
This will be an error in future versions of Sass.
DEPRECATION WARNING on line 15 of test.scss:
Naming a function "url" is disallowed and will be an error in future versions of Sass.
This name conflicts with an existing CSS function with special parse rules.
DEPRECATION WARNING: Passing null, a non-string value, to unquote()
will be an error in future versions of Sass.
        on line 15 of test.scss

Inconsistencies with file path. Sometimes the file path displayed in console messages is relative, other times it's absolute. I've been update to reverse engineer a reliable algorithm for when to use which. I suspect it's non-standard.

$ sass /sass/sass-spec/spec/libsass-closed-issues/issue_1681/url/input.scss
DEPRECATION WARNING on line 1 of /sass/sass-spec/spec/libsass-closed-issues/issue_1681/url/input.scss:
Naming a function "url" is disallowed and will be an error in future versions of Sass.
This name conflicts with an existing CSS function with special parse rules.
$ sass sass-spec/spec/libsass-closed-issues/issue_1681/url/input.scss
DEPRECATION WARNING on line 1 of sass-spec/spec/libsass-closed-issues/issue_1681/url/input.scss:
Naming a function "url" is disallowed and will be an error in future versions of Sass.
This name conflicts with an existing CSS function with special parse rules.
$ sass ../sass-spec/spec/libsass-closed-issues/issue_1681/url/input.scss
DEPRECATION WARNING on line 1 of ../sass-spec/spec/libsass-closed-issues/issue_1681/url/input.scss:
Naming a function "url" is disallowed and will be an error in future versions of Sass.
This name conflicts with an existing CSS function with special parse rules.
$ sass foo/test.scss
DEPRECATION WARNING on line 6 of foo/test.scss:
Naming a function "url" is disallowed and will be an error in future versions of Sass.
This name conflicts with an existing CSS function with special parse rules.

SourceMap: Require sourceRoot of source-map v3

From sass/sass#1660:

Please include sourceRoot in source-map, so user can set it in options and expect it to get reflected in the emitted .map as is.

From Source-Map V3 docs (under section "Proposed Format"):

4 "sourceRoot": "",
...
...
Line 4: An optional source root, useful for relocating source files on a server or removing repeated values in the “sources” entry. This value is prepended to the individual entries in the “source” field.

and then:

Resolving Sources
If the sources are not absolute URLs after prepending of the “sourceRoot”, the sources are resolved relative to the SourceMap (like resolving script src in a html document).

Duplicate classes are removed from selector when extending

From sass/sass#1596:

Gist Issue Example

SCSS

%my-placeholder {
  color: red;
}

.foo.foo {
  @extend %my-placeholder;
  background-color: blue;
}

Expected

// @extend's output
.foo.foo {
  color: red;
}

// regular property output
.foo.foo {
  background-color: blue;
}

Actual

// @extend's output
.foo {
  color: red;
}

// regular property output
.foo.foo {
  background-color: blue;
}

When using @extend in the context of a selector that uses the same class twice on the same element, the duplicate class is removed in the output of the @extend (.foo.foo becomes .foo). This is not the case for any other styles declared in the same context, for those, the selector is preserved as typed.

A common technique for increasing specificity without over-qualifying is to just duplicate the same class multiple times. This technique cannot be used with extend, because it removes the duplicate classes, thus reducing the specificity that was intentionally added.

compile_file should take an encoding option

From sass/sass#1965:

To be clear, I'm talking about input encoding, output is always utf-8.

Maybe I'm missing something, but I couldn't figure out how to define a specific encoding for input files if they lack any bom or charset declaration. Therefore ruby sass will probably apply the default encoding, which would be CP850 in my case. But I know that the file in question is utf-8, so I would expect:

Sass.compile_file(filename, :encoding => "UTF-8")

Btw. I find it quite puzzeling that it also seems impossible in ruby to open a file in utf-8 encoding with the newline conversion disabled. We have some spec tests results that contain single \r chars, which get converted to \n by ruby io if newline conversion is on. But I'm using 1.9.3, so that may already be solved (saw a writebin function in the docs). I can work around those issues, but I figured I still post this here.

Support specifying custom variables when calling sass

From sass/sass#1628:

Currently it's pretty straightforward to do this by defining an extension function and feeding it with values via the :custom option. For example, you could imagine my-var("varname") accessing options[:custom]["varname"]. This is admittedly less direct than setting variables, but on the other hand it does make it more explicit that these values are coming from somewhere external: users are more used to functions popping up out of nowhere than variables.

unquote should raise an error for non-strings

From sass/sass#1583:

currently unquote silently passes through values that are not strings. This is inconsistent with the quote function.

The current behavior should be deprecated in the next major release and then changed to an error following that.

Note that this is currently deprecated, and just needs to become an error on the master branch.

Add support for tracking non-stylesheet dependencies.

From sass/sass#144:

A stylesheet helper like compass's inline-image needs to be able to add dependencies on images that are embedded so that the stylesheet will be considered out of date if the image changes. This will require changing from a mode where we parse files and look for import nodes to a mode where we cache the dependencies in the sass cache from the previous run.

Separate sass engine and cli into separate gems

From sass/sass#1996:

Proposal

Gems:

  • sass-core will be the Sass Engine and supporting ruby code.
  • sass will be cli and depend on sass-core.

Git:

  • sass-core will be fork of sass git repo.
  • sass will have the core code removed and remain the main git repo.

Existing Issues:

  • Leave them in sass/sass

New issues:

  • either repo is fine. we won't police users about it.

Versioning:

  • a release to sass-core will force a release of sass and vice versa keeping version numbers in sync.

Better traces for exceptions thrown from ruby functions

From sass/sass#1318:

When an exception is thrown from a ruby function, none of the sass trace information is reported.

It would be great to also get the values of the arguments that caused the issue.

Presently, I'm accomplishing this with a monkey patch to Sass 3.2 that looks like this:

          begin
            without_original(opts(Functions::EvaluationContext.new(environment.options).
                send(ruby_name, *args)))
          rescue StandardError => e
            s = Sass::SyntaxError.new("#{e.class.name} calling #{ruby_name}(#{args.map{|a| a.is_a?(Sass::Script::List) ? "(#{a.to_sass})" : a.to_sass}.join(', ')})")
            s.set_backtrace(e.backtrace)
            raise s
          end

Inline comments should be kept inline

From sass/sass#235:

Sometimes comments are meant to be inline. Consider the following code:

.myselector {
  display: none; /* javascript will fix this */
}

It compiles to:

.myselector {
  display: none;
  /* javascript will fix this */
}

There are several use cases like this. Can it be done?

`--sourcemap=auto` should be `--sourcemap auto`

From sass/sass#1321:

In Sass v.4.0.rc.1, the new --sourcemap option needs to specify its value with =. But other options such as --style or --default-encoding specify its value with space. This seems a bit confusing to users and 3rd party tools. I think --sourcemap option should specify its value with space like other options.

Compression improvements

From sass/sass#687:

I found that Yahoo's YUI Compressor manages to minify my CSS to an even smaller file size. So I think there are some extra savings that SASS could be making. I compiled my SASS to vanilla CSS using --style expanded, then compiled that using both YUI and SASS with --style compressed. Here's a list of the possible savings I got from the diff:

  • Remove leading zeroes from decimal values. For example SASS outputs transition:color 0.2s whereas YUI outputs transition:color .2s.

  • Replace outline:none with outline:0

  • Remove extra spaces in media queries. Examples:
    SASS: @media (min-width: 778px) and (max-width: 1161px)
    YUI: @media(min-width:778px) and (max-width:1161px)
    SASS: @media handheld, only screen and (max-width: 777px)
    YUI: @media handheld,only screen and (max-width:777px)

  • YUI replaces background:none with background:0 but I'm not sure if that's really valid.

  • Remove extra spaces in font stacks.
    SASS: font-family:"Ubuntu", "Trebuchet MS", "Open Sans", sans-serif;
    YUI: font-family:"Ubuntu","Trebuchet MS","Open Sans",sans-serif;
    (Should be able to remove the unnecessary quotes around Ubuntu as well, right?)

  • Colors are not compressed: #ffffff should be #fff, #dddd66 should be #dd6.

  • The space between colors in a standalone linear-gradient is removed, but in this rule it is not:

    $header-img: url("image") 20px 0 no-repeat;
    header { background: $header-img, linear-gradient(#333, #111); }
    

Hope this is useful! :)

Clean up tests

From sass/sass#1245:

These tests are getting out of hand. Need to refactor these and do so in a way that makes integration with https://github.com/hcatlin/sass-spec much easier.

     553 test/sass/plugin_test.rb
     849 test/sass/script_test.rb
     906 test/sass/source_map_test.rb
    1444 test/sass/extend_test.rb
    1884 test/sass/functions_test.rb
    2008 test/sass/conversion_test.rb
    3364 test/sass/engine_test.rb
   13391 total

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.