|
1 |
| -LibSass |
2 |
| -======= |
| 1 | +LibSass - Sass compiler written in C++ |
| 2 | +====================================== |
3 | 3 |
|
4 |
| -by Aaron Leung ([@akhleung]), Hampton Catlin ([@hcatlin]), Marcel Greter ([@mgreter]) and Michael Mifsud ([@xzyfer]) |
| 4 | +Currently maintained by Marcel Greter ([@mgreter]) and Michael Mifsud ([@xzyfer]) |
| 5 | +Originally created by Aaron Leung ([@akhleung]) and Hampton Catlin ([@hcatlin]) |
5 | 6 |
|
6 |
| -[](https://travis-ci.org/sass/libsass) |
7 |
| -[](https://ci.appveyor.com/project/sass/libsass/branch/master) |
8 |
| -[](https://www.bountysource.com/trackers/283068-libsass?utm_source=283068&utm_medium=shield&utm_campaign=TRACKER_BADGE) |
9 |
| -[](https://coveralls.io/r/sass/libsass?branch=feature%2Ftest-travis-ci-3) |
10 |
| -[](https://libsass-slack.herokuapp.com/) |
| 7 | +[](https://travis-ci.org/sass/libsass "Travis CI") |
| 8 | +[](https://ci.appveyor.com/project/sass/libsass/branch/master "Appveyor CI") |
| 9 | +[](https://coveralls.io/r/sass/libsass?branch=feature%2Ftest-travis-ci-3 "Code coverage of spec tests") |
| 10 | +[](http://isitmaintained.com/project/sass/libsass "Percentage of issues still open") |
| 11 | +[](http://isitmaintained.com/project/sass/libsass "Average time to resolve an issue") |
| 12 | +[](https://www.bountysource.com/trackers/283068-libsass?utm_source=283068&utm_medium=shield&utm_campaign=TRACKER_BADGE "Bountysource") |
| 13 | +[](https://libsass-slack.herokuapp.com/ "Slack communication channels") |
11 | 14 |
|
12 |
| -https://github.com/sass/libsass |
13 | 15 |
|
14 |
| -LibSass is just a library, but if you want to RUN LibSass, |
15 |
| -then go to https://github.com/sass/sassc or |
16 |
| -https://github.com/sass/sassc-ruby or |
17 |
| -[find your local implementer](docs/implementations.md). |
| 16 | +[LibSass](https://github.com/sass/libsass "LibSass GitHub Project") is just a library! |
| 17 | +If you want to use LibSass to compile Sass, you need an implementer. Some |
| 18 | +implementations are only bindings into other programming languages. But most also |
| 19 | +ship with a command line interface (CLI) you can use directly. There is also |
| 20 | +[SassC](https://github.com/sass/sassc), which is the official lightweight |
| 21 | +CLI tool built by the same people as LibSass. |
18 | 22 |
|
19 |
| -LibSass requires GCC 4.6+ or Clang/LLVM. If your OS is older, this version may not compile. |
| 23 | +### Excerpt of "sanctioned" implementations: |
20 | 24 |
|
21 |
| -On Windows, you need MinGW with GCC 4.6+ or VS 2013 Update 4+. It is also possible to build LibSass with Clang/LLVM on Windows. |
| 25 | +- https://github.com/sass/node-sass (Node.js) |
| 26 | +- https://github.com/sass/perl-libsass (Perl) |
| 27 | +- https://github.com/wellington/go-libsass (Go) |
| 28 | +- https://github.com/sass/sassc-ruby (Ruby) |
| 29 | +- https://github.com/sass/libsass-net (C#) |
| 30 | +- https://github.com/medialize/sass.js (JS) |
| 31 | + |
| 32 | +This list does not say anything about the quality of either the listed or not listed [implementations](docs/implementations.md)! |
| 33 | +The authors of the listed projects above are just known to work regularly together with LibSass developers. |
22 | 34 |
|
23 | 35 | About
|
24 | 36 | -----
|
25 | 37 |
|
26 |
| -LibSass is a C/C++ port of the Sass CSS precompiler. The original version was written in Ruby, but this version is meant for efficiency and portability. |
27 |
| - |
28 |
| -This library strives to be light, simple, and easy to build and integrate with a variety of platforms and languages. |
| 38 | +LibSass is a C++ port of the original Ruby Sass CSS compiler with a [C API](docs/api-doc.md). |
| 39 | +We coded LibSass with portability and efficiency in mind. You can expect LibSass to be a lot |
| 40 | +faster than Ruby Sass and on par or faster than the best alternative CSS compilers around. |
29 | 41 |
|
30 | 42 | Developing
|
31 | 43 | ----------
|
32 | 44 |
|
33 |
| -As you may have noticed, the LibSass repo itself has |
34 |
| -no executables and no tests. Oh noes! How can you develop??? |
35 |
| - |
36 |
| -Well, luckily, [SassC](http://github.com/sass/sassc) is the official binary wrapper for |
37 |
| -LibSass and is *always* kept in sync. SassC is used by continous integration systems in |
38 |
| -LibSass repository. When developing LibSass, it is best to actually |
39 |
| -checkout SassC and develop in that directory with the SassC spec |
40 |
| -and tests there. |
41 |
| - |
42 |
| -We even run Travis tests for SassC! |
| 45 | +As noted above, the LibSass repository does not contain any binaries or other way to execute |
| 46 | +LibSass. Therefore, you need an implementer to develop LibSass. Easiest is to start with |
| 47 | +the official [SassC](http://github.com/sass/sassc) CLI wrapper. It is *guaranteed* to compile |
| 48 | +with the latest code in LibSass master, since it is also used in the CI process. There is no |
| 49 | +limitation here, as you may use any other LibSass implementer to test your LibSass branch! |
43 | 50 |
|
44 |
| -Tests |
| 51 | +Testing |
45 | 52 | -------
|
46 | 53 |
|
47 |
| -Since LibSass is a pure library, tests are run through the [SassSpec](https://github.com/sass/sass-spec) project using the [SassC](http://github.com/sass/sassc) driver. |
| 54 | +Since LibSass is a pure library, tests are run through the [Sass-Spec](https://github.com/sass/sass-spec) |
| 55 | +project using the [SassC](http://github.com/sass/sassc) CLI wrapper. To run the tests against LibSass while |
| 56 | +developing, you can run `./script/spec`. This will clone SassC and Sass-Spec under the project folder and |
| 57 | +then run the Sass-Spec test suite. You may want to update the clones to ensure you have the latest version. |
| 58 | +Note that the scripts in the `./script` folder are mainly intended for our CI needs. |
48 | 59 |
|
49 |
| -To run tests against LibSass while developing, you can run `./script/spec`. This will clone SassC and Sass-Spec under the project folder and then run the Sass-Spec test suite. You may want to update the clones to ensure you have the latest version. |
| 60 | +Building |
| 61 | +-------- |
50 | 62 |
|
51 |
| -### DEBUG builds |
| 63 | +To build LibSass you need GCC 4.6+ or Clang/LLVM. If your OS is older, you may need to upgrade |
| 64 | +them first (or install clang as an alternative). On Windows, you need MinGW with GCC 4.6+ or VS 2013 |
| 65 | +Update 4+. It is also possible to build LibSass with Clang/LLVM on Windows with various build chains |
| 66 | +and/or command line interpreters. |
52 | 67 |
|
53 |
| -Set the environment variable `DEBUG` to `1` to enable debug builds that can be debugged |
54 |
| -with `gdb`, `lldb` and others. E.g.: use `$ DEBUG=1 ./script/spec` to run the tests with |
55 |
| -a debug build. |
| 68 | +See the [build docs for further instructions](docs/build.md)! |
56 | 69 |
|
57 |
| -Library Usage |
| 70 | +Compatibility |
58 | 71 | -------------
|
59 | 72 |
|
60 |
| -While LibSass is a library primarily written in C++, it provides a simple |
61 |
| -C interface which should be used by most implementers. LibSass does not do |
62 |
| -much on its own without an implementer. This can be a command line tool, like |
63 |
| -[sassc](https://github.com/sass/sassc) or a [binding](docs/implementations.md) |
64 |
| -to your favorite programing language. |
65 |
| - |
66 |
| -If you want to build or interface with LibSass, we recommend to check out the |
67 |
| -documentation pages about [building LibSass](docs/build.md) and |
68 |
| -the [C-API documentation](docs/api-doc.md). |
| 73 | +Current LibSass 3.4 should be compatible with Sass 3.4. Please refer to the [sass compatibility |
| 74 | +page](http://sass-compatibility.github.io/) for a more detailed comparison. But note that there |
| 75 | +are still a few incomplete edges which we are aware of. Otherwise LibSass has reached a good level |
| 76 | +of stability, thanks to our ever growing [Sass-Spec test suite](https://github.com/sass/sass-spec). |
69 | 77 |
|
70 | 78 | About Sass
|
71 | 79 | ----------
|
72 | 80 |
|
73 |
| -Sass is a CSS pre-processor language to add on exciting, new, |
74 |
| -awesome features to CSS. Sass was the first language of its kind |
75 |
| -and by far the most mature and up to date codebase. |
| 81 | +Sass is a CSS pre-processor language to add on exciting, new, awesome features to CSS. Sass was |
| 82 | +the first language of its kind and by far the most mature and up to date codebase. |
76 | 83 |
|
77 |
| -Sass was originally concieved of by the co-creator of this library, |
78 |
| -Hampton Catlin ([@hcatlin]). Most of the language has been the result of years |
79 |
| -of work by Natalie Weizenbaum ([@nex3]) and Chris Eppstein ([@chriseppstein]). |
| 84 | +Sass was originally conceived of by the co-creator of this library, Hampton Catlin ([@hcatlin]). |
| 85 | +Most of the language has been the result of years of work by Natalie Weizenbaum ([@nex3]) and |
| 86 | +Chris Eppstein ([@chriseppstein]). |
80 | 87 |
|
81 | 88 | For more information about Sass itself, please visit http://sass-lang.com
|
82 | 89 |
|
83 |
| -Initial development of libsass by Aaron Leung and Hampton Catlin was supported by [Moovweb](http://www.moovweb.com). |
| 90 | +Initial development of LibSass by Aaron Leung and Hampton Catlin was supported by [Moovweb](http://www.moovweb.com). |
84 | 91 |
|
85 | 92 | Licensing
|
86 | 93 | ---------
|
87 | 94 |
|
88 |
| -Our MIT license is designed to be as simple, and liberal as possible. |
89 |
| - |
90 |
| -sass2scss was originally written by [Marcel Greter][@mgreter] |
91 |
| -and he happily agreed to have it merged into the project. |
92 |
| - |
| 95 | +Our [MIT license](LICENSE) is designed to be as simple and liberal as possible. |
93 | 96 |
|
94 | 97 | [@hcatlin]: https://github.com/hcatlin
|
95 | 98 | [@akhleung]: https://github.com/akhleung
|
|
0 commit comments