mirror of
https://github.com/danog/sass-site.git
synced 2024-12-02 17:38:26 +01:00
202 lines
6.6 KiB
Plaintext
202 lines
6.6 KiB
Plaintext
---
|
||
title: LibSass
|
||
introduction: >
|
||
We want everyone to enjoy Sass, no matter what language they use. Sass was
|
||
originally written in Ruby. LibSass is a C/C++ port of the Sass engine. The
|
||
point is to be simple, faster, and easy to integrate. Find out more about the
|
||
project over at [GitHub](http://github.com/sass/libsass).
|
||
---
|
||
|
||
:markdown
|
||
## Wrappers
|
||
|
||
LibSass is just a library. To run the code locally (i.e. to compile your
|
||
stylesheets), you need an implementer, or "wrapper". There are a number of
|
||
other wrappers for LibSass. We encourage you to write your own wrapper --- the
|
||
whole point of LibSass is that we want to bring Sass to many other languages,
|
||
not just Ruby!
|
||
|
||
Below are the LibSass wrappers that we're currently aware of. Sometimes there
|
||
are multiple wrappers per language – in those cases, we put the most
|
||
recently-updated wrapper first.
|
||
|
||
%ul.slides
|
||
%li#sassc
|
||
:markdown
|
||
### Sass C
|
||
|
||
[SassC](https://github.com/sass/sassc) (get it?) is a wrapper written in
|
||
C.
|
||
|
||
To run the compiler on your local machine, you need to build SassC. To
|
||
build SassC, you must have either a local copy of the LibSass source or it
|
||
must be installed into your system. For development, please use the source
|
||
version. You must then setup an environment variable pointing to the
|
||
LibSass folder, for example:
|
||
|
||
= partial 'code-snippets/libsass-setup'
|
||
|
||
:markdown
|
||
The executable will be in the bin folder. To run it, simply try something
|
||
like:
|
||
|
||
= partial 'code-snippets/libsass-execute'
|
||
|
||
%li#crystal
|
||
:markdown
|
||
### Crystal
|
||
|
||
[sass.cr](https://github.com/straight-shoota/sass.cr) is a LibSass wrapper
|
||
for the [Crystal programming language](https://crystal-lang.org/).
|
||
|
||
%li#go
|
||
:markdown
|
||
### Go
|
||
|
||
[go-libsass](https://github.com/wellington/go-libsass) has the most active
|
||
GoLang wrapper. [gosass](https://github.com/moovweb/gosass) is another
|
||
LibSass wrapper.
|
||
|
||
[Wellington](http://getwt.io/) is an extension to LibSass that adds
|
||
spriting. It is available on brew: `brew install wellington`
|
||
|
||
[C6](https://github.com/c9s/c6) is a Sass 3.2 compatible implementation
|
||
written in pure GoLang that aims to extend Sass.
|
||
[wellington/sass](https://github.com/wellington/sass) is an in-progress
|
||
pure Go Sass lexer, parser, and compiler.
|
||
|
||
%li#java
|
||
:markdown
|
||
### Java
|
||
|
||
There is one Java wrapper --- [jsass](https://github.com/bit3/jsass).
|
||
There is also a plugin for Maven --- [LibSass Maven
|
||
plugin](https://github.com/warmuuh/libsass-maven-plugin).
|
||
|
||
%li#javascript
|
||
:markdown
|
||
### JavaScript
|
||
|
||
The [sass.js](https://github.com/medialize/sass.js) project makes
|
||
LibSass available as pure JavaScript. There's a way to [test it in the
|
||
browser](http://medialize.github.io/playground.sass.js/), too.
|
||
|
||
%li#lua
|
||
:markdown
|
||
### Lua
|
||
|
||
The Lua wrapper is found at
|
||
[lua-sass](https://github.com/craigbarnes/lua-sass).
|
||
|
||
%li#net
|
||
:markdown
|
||
### .NET
|
||
|
||
[libsass-net](https://github.com/darrenkopp/libsass-net) is updated
|
||
regularly, and is probably the best bet. There's also
|
||
[NSass](https://github.com/TBAPI-0KA/NSass), although it hasn't been
|
||
updated in a while.
|
||
|
||
%li#node
|
||
:markdown
|
||
### Node
|
||
|
||
The [node-sass](https://github.com/sass/node-sass) project has proven to
|
||
be popular, and we've taken it into the main Sass GitHub repo. Check out
|
||
its package page [here](https://www.npmjs.org/package/node-sass), and
|
||
[there's a dedicated twitter account](https://twitter.com/nodesass) for
|
||
updates.
|
||
|
||
%li#perl
|
||
:markdown
|
||
### Perl
|
||
|
||
The [CSS::Sass](https://github.com/sass/perl-libsass) project is updated
|
||
regularly. There's the
|
||
[Text-Sass-XS](https://github.com/ysasaki/Text-Sass-XS) project, too,
|
||
although it hasn't been updated in a while.
|
||
|
||
%li#php
|
||
:markdown
|
||
### PHP
|
||
|
||
The [SassPHP](https://github.com/sensational/sassphp) project is an
|
||
updated fork of an [older PHP
|
||
version](https://github.com/jamierumbelow/sassphp).
|
||
|
||
%li#python
|
||
:markdown
|
||
### Python
|
||
|
||
There are two Python projects that are updated regularly. The
|
||
[libsass-python](https://github.com/dahlia/libsass-python) project (there
|
||
are more details on [its own
|
||
website](http://hongminhee.org/libsass-python/)) and the
|
||
[python-scss](https://github.com/pistolero/python-scss) project.
|
||
|
||
Two other Python projects,
|
||
[pylibsass](https://github.com/rsenk330/pylibsass) and
|
||
[SassPython](https://github.com/marianoguerra/SassPython), haven't been
|
||
updated in a while.
|
||
|
||
|
||
%li#ruby
|
||
:markdown
|
||
### Ruby
|
||
|
||
LibSass has also been ported back into Ruby for the
|
||
[sassc-ruby](https://github.com/sass/sassc-ruby) project.
|
||
|
||
%li#rust
|
||
:markdown
|
||
### Rust
|
||
|
||
The [`sass_rs`](https://github.com/compass-rs/sass-rs) crate is a LibSass
|
||
wrapper and is updated regularly.
|
||
|
||
%li#scala
|
||
:markdown
|
||
### Scala
|
||
|
||
The only Scala project, [Sass-Scala](https://github.com/kkung/Sass-Scala),
|
||
hasn't been updated in a couple of years.
|
||
|
||
%h2 About LibSass
|
||
|
||
:markdown
|
||
This project is the brainchild of [Hampton
|
||
Catlin](http://twitter.com/hcatlin), the original creator of Sass, and is
|
||
sponsored by [Moovweb](http://moovweb.com/). [Aaron
|
||
Leung](http://github.com/akhleung) from Moovweb is the primary developer.
|
||
|
||
%figure
|
||
= image_tag 'logos/libsass.png', alt: 'LibSass logo'
|
||
|
||
- content_for :navigation do
|
||
%h3 Wrappers
|
||
|
||
%ul.sl-c-list.sl-c-list--navigation.anchors
|
||
%li.sl-c-list--navigation__item= link_to 'SassC', '#sassc'
|
||
%li.sl-c-list--navigation__item= link_to 'Crystal', '#crystal'
|
||
%li.sl-c-list--navigation__item= link_to 'Go', '#go'
|
||
%li.sl-c-list--navigation__item= link_to 'Java', '#java'
|
||
%li.sl-c-list--navigation__item= link_to 'JavaScript', '#javascript'
|
||
%li.sl-c-list--navigation__item= link_to 'Lua', '#lua'
|
||
%li.sl-c-list--navigation__item= link_to '.NET', '#net'
|
||
%li.sl-c-list--navigation__item= link_to 'Node', '#node'
|
||
%li.sl-c-list--navigation__item= link_to 'Perl', '#perl'
|
||
%li.sl-c-list--navigation__item= link_to 'PHP', '#php'
|
||
%li.sl-c-list--navigation__item= link_to 'Python', '#python'
|
||
%li.sl-c-list--navigation__item= link_to 'Ruby', '#ruby'
|
||
%li.sl-c-list--navigation__item= link_to 'Scala', '#scala'
|
||
|
||
- content_for :complementary do
|
||
%h3 Resources
|
||
|
||
%ul
|
||
- for project in data.libsass.resources
|
||
%li
|
||
= link_to project.name, project.url
|
||
—
|
||
= project.description
|