Adam Day 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
..
b64 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
m4 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
posix 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
res 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
script 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
support 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
test 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
utf8 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
win 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
.editorconfig 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
.gitattributes 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
.npmignore 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
.travis.yml 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
COPYING 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
INSTALL 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
LICENSE 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
Makefile 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
Makefile.am 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
Readme.md 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
appveyor.yml 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
ast.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
ast.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
ast_def_macros.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
ast_factory.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
ast_fwd_decl.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
backtrace.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
base64vlq.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
base64vlq.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
bind.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
bind.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
cencode.c 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
color_names.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
configure.ac 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
constants.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
constants.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
context.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
context.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
contextualize.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
contextualize.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
copy_c_str.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
copy_c_str.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
debug.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
environment.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
error_handling.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
error_handling.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
eval.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
eval.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
expand.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
expand.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
extconf.rb 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
extend.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
extend.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
file.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
file.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
functions.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
functions.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
inspect.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
inspect.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
json.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
json.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
kwd_arg_macros.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
mapping.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
memory_manager.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
node.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
node.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
operation.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
output_compressed.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
output_compressed.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
output_nested.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
output_nested.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
parser.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
parser.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
paths.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
position.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
prelexer.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
prelexer.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
remove_placeholders.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
remove_placeholders.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass.h 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass2scss.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass2scss.h 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass_context.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass_context.h 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass_functions.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass_functions.h 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass_interface.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass_interface.h 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass_util.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass_util.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass_values.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
sass_values.h 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
source_map.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
source_map.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
subset_map.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
test-driver 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
to_c.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
to_c.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
to_string.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
to_string.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
token.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
units.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
units.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
utf8.h 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
utf8_string.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
utf8_string.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
util.cpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos
util.hpp 8b3891d3c4 Initial commit %!s(int64=9) %!d(string=hai) anos

Readme.md

Libsass

by Aaron Leung (@akhleung) and Hampton Catlin (@hcatlin)

Linux CI Windows CI Bountysource Coverage Status

https://github.com/sass/libsass

Libsass is just a library, but if you want to RUN libsass, then go to https://github.com/sass/sassc or https://github.com/sass/ruby-libsass or find your local implementer.

LibSass requires GCC 4.5+ or Clang/LLVM. If your OS is older, this version may not compile.

About

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.

This library strives to be light, simple, and easy to build and integrate with a variety of platforms and languages.

Developing

As you may have noticed, the libsass repo itself has no executables and no tests. Oh noes! How can you develop???

Well, luckily, SassC is the official binary wrapper for libsass and is always kept in sync. SassC uses a git submodule to include libsass. When developing libsass, its best to actually check out SassC and develop in that directory with the SassC spec and tests there.

We even run Travis tests for SassC!

Tests

Since libsass is a pure library, tests are run through the SassSpec project using the SassC driver.

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.

Library Usage

While libsass is a library primarily written in C++, it provides a simple C interface which should be used by most implementers. Libsass does not do much on its own without an implementer. This can be a command line tool, like sassc or a binding to your favorite programing language.

If you want to build or interface with libsass, we recommend to check out the wiki pages about building libsass and the C-API documentation.

About Sass

Sass is a CSS pre-processor language to add on exciting, new, awesome features to CSS. Sass was the first language of its kind and by far the most mature and up to date codebase.

Sass was originally created by the co-creator of this library, Hampton Catlin (@hcatlin). The extension and continuing evolution of the language has all been the result of years of work by Natalie Weizenbaum (@nex3) and Chris Eppstein (@chriseppstein).

For more information about Sass itself, please visit http://sass-lang.com

Contribution Agreement

Any contribution to the project are seen as copyright assigned to Hampton Catlin, a human on the planet earth. Your contribution warrants that you have the right to assign copyright on your work. The intention here is to ensure that the project remains totally free (liberal, like).

Our MIT license is designed to be as simple, and liberal as possible.

sass2scss was originally written by Marcel Greter [@mgreter] and he happily agreed to have it merged into the project.