|
Packit |
bfcc33 |
LibSass - Sass compiler written in C++
|
|
Packit |
bfcc33 |
======================================
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Currently maintained by Marcel Greter ([@mgreter]) and Michael Mifsud ([@xzyfer])
|
|
Packit |
bfcc33 |
Originally created by Aaron Leung ([@akhleung]) and Hampton Catlin ([@hcatlin])
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
[![Unix CI](https://travis-ci.org/sass/libsass.svg?branch=master)](https://travis-ci.org/sass/libsass "Travis CI")
|
|
Packit |
bfcc33 |
[![Windows CI](https://ci.appveyor.com/api/projects/status/github/sass/libsass?svg=true)](https://ci.appveyor.com/project/sass/libsass/branch/master "Appveyor CI")
|
|
Packit |
bfcc33 |
[![Coverage Status](https://img.shields.io/coveralls/sass/libsass.svg)](https://coveralls.io/r/sass/libsass?branch=feature%2Ftest-travis-ci-3 "Code coverage of spec tests")
|
|
Packit |
bfcc33 |
[![Percentage of issues still open](http://isitmaintained.com/badge/open/sass/libsass.svg)](http://isitmaintained.com/project/sass/libsass "Percentage of issues still open")
|
|
Packit |
bfcc33 |
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/sass/libsass.svg)](http://isitmaintained.com/project/sass/libsass "Average time to resolve an issue")
|
|
Packit |
bfcc33 |
[![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=283068)](https://www.bountysource.com/trackers/283068-libsass?utm_source=283068&utm_medium=shield&utm_campaign=TRACKER_BADGE "Bountysource")
|
|
Packit |
bfcc33 |
[![Join us](https://libsass-slack.herokuapp.com/badge.svg)](https://libsass-slack.herokuapp.com/ "Slack communication channels")
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
[LibSass](https://github.com/sass/libsass "LibSass GitHub Project") is just a library!
|
|
Packit |
bfcc33 |
If you want to use LibSass to compile Sass, you need an implementer. Some
|
|
Packit |
bfcc33 |
implementations are only bindings into other programming languages. But most also
|
|
Packit |
bfcc33 |
ship with a command line interface (CLI) you can use directly. There is also
|
|
Packit |
bfcc33 |
[SassC](https://github.com/sass/sassc), which is the official lightweight
|
|
Packit |
bfcc33 |
CLI tool built by the same people as LibSass.
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
### Excerpt of "sanctioned" implementations:
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
- https://github.com/sass/node-sass (Node.js)
|
|
Packit |
bfcc33 |
- https://github.com/sass/perl-libsass (Perl)
|
|
Packit |
bfcc33 |
- https://github.com/wellington/go-libsass (Go)
|
|
Packit |
bfcc33 |
- https://github.com/sass/sassc-ruby (Ruby)
|
|
Packit |
bfcc33 |
- https://github.com/sass/libsass-net (C#)
|
|
Packit |
bfcc33 |
- https://github.com/medialize/sass.js (JS)
|
|
Packit |
bfcc33 |
- https://github.com/dahlia/libsass-python (Python)
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
This list does not say anything about the quality of either the listed or not listed [implementations](docs/implementations.md)!
|
|
Packit |
bfcc33 |
The authors of the listed projects above are just known to work regularly together with LibSass developers.
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
About
|
|
Packit |
bfcc33 |
-----
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
LibSass is a C++ port of the original Ruby Sass CSS compiler with a [C API](docs/api-doc.md).
|
|
Packit |
bfcc33 |
We coded LibSass with portability and efficiency in mind. You can expect LibSass to be a lot
|
|
Packit |
bfcc33 |
faster than Ruby Sass and on par or faster than the best alternative CSS compilers around.
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Developing
|
|
Packit |
bfcc33 |
----------
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
As noted above, the LibSass repository does not contain any binaries or other way to execute
|
|
Packit |
bfcc33 |
LibSass. Therefore, you need an implementer to develop LibSass. Easiest is to start with
|
|
Packit |
bfcc33 |
the official [SassC](http://github.com/sass/sassc) CLI wrapper. It is *guaranteed* to compile
|
|
Packit |
bfcc33 |
with the latest code in LibSass master, since it is also used in the CI process. There is no
|
|
Packit |
bfcc33 |
limitation here, as you may use any other LibSass implementer to test your LibSass branch!
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Testing
|
|
Packit |
bfcc33 |
-------
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Since LibSass is a pure library, tests are run through the [Sass-Spec](https://github.com/sass/sass-spec)
|
|
Packit |
bfcc33 |
project using the [SassC](http://github.com/sass/sassc) CLI wrapper. To run the tests against LibSass while
|
|
Packit |
bfcc33 |
developing, you can run `./script/spec`. This will clone SassC and Sass-Spec under the project folder and
|
|
Packit |
bfcc33 |
then run the Sass-Spec test suite. You may want to update the clones to ensure you have the latest version.
|
|
Packit |
bfcc33 |
Note that the scripts in the `./script` folder are mainly intended for our CI needs.
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Building
|
|
Packit |
bfcc33 |
--------
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
To build LibSass you need GCC 4.6+ or Clang/LLVM. If your OS is older, you may need to upgrade
|
|
Packit |
bfcc33 |
them first (or install clang as an alternative). On Windows, you need MinGW with GCC 4.6+ or VS 2013
|
|
Packit |
bfcc33 |
Update 4+. It is also possible to build LibSass with Clang/LLVM on Windows with various build chains
|
|
Packit |
bfcc33 |
and/or command line interpreters.
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
See the [build docs for further instructions](docs/build.md)!
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Compatibility
|
|
Packit |
bfcc33 |
-------------
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Current LibSass 3.4 should be compatible with Sass 3.4. Please refer to the [sass compatibility
|
|
Packit |
bfcc33 |
page](http://sass-compatibility.github.io/) for a more detailed comparison. But note that there
|
|
Packit |
bfcc33 |
are still a few incomplete edges which we are aware of. Otherwise LibSass has reached a good level
|
|
Packit |
bfcc33 |
of stability, thanks to our ever growing [Sass-Spec test suite](https://github.com/sass/sass-spec).
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
About Sass
|
|
Packit |
bfcc33 |
----------
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Sass is a CSS pre-processor language to add on exciting, new, awesome features to CSS. Sass was
|
|
Packit |
bfcc33 |
the first language of its kind and by far the most mature and up to date codebase.
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Sass was originally conceived of by the co-creator of this library, Hampton Catlin ([@hcatlin]).
|
|
Packit |
bfcc33 |
Most of the language has been the result of years of work by Natalie Weizenbaum ([@nex3]) and
|
|
Packit |
bfcc33 |
Chris Eppstein ([@chriseppstein]).
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
For more information about Sass itself, please visit http://sass-lang.com
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Initial development of LibSass by Aaron Leung and Hampton Catlin was supported by [Moovweb](http://www.moovweb.com).
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Licensing
|
|
Packit |
bfcc33 |
---------
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
Our [MIT license](LICENSE) is designed to be as simple and liberal as possible.
|
|
Packit |
bfcc33 |
|
|
Packit |
bfcc33 |
[@hcatlin]: https://github.com/hcatlin
|
|
Packit |
bfcc33 |
[@akhleung]: https://github.com/akhleung
|
|
Packit |
bfcc33 |
[@chriseppstein]: https://github.com/chriseppstein
|
|
Packit |
bfcc33 |
[@nex3]: https://github.com/nex3
|
|
Packit |
bfcc33 |
[@mgreter]: https://github.com/mgreter
|
|
Packit |
bfcc33 |
[@xzyfer]: https://github.com/xzyfer
|