Package: django-libsass
A django-compressor filter to compile Sass files using libsass.InstallationStarting from a Django project withdjango-compressorset up:pip install django-libsassand add django_libsass.SassCompiler to your COMPRESS_PRECOMPILERS setting:COMPRESS_PRECOMPILERS = (
    ('text/x-scss', 'django_libsass.SassCompiler'),
)You can now use the content type text/x-scss on your stylesheets, and have them
compiled seamlessly into CSS:{% load compress %}

{% compress css %}
    <link rel="stylesheet" type="text/x-scss" href="{% static "myapp/css/main.scss" %}" />
{% endcompress %}ImportsRelative paths in @import lines are followed as you would expect:@import "../variables.scss";Additionally, Django’s STATICFILES_FINDERS setting is consulted, and all possible locations
for static fileson the local filesystemare included on the search path. This makes it
possible to import files across different apps:@import "myotherapp/css/widget.scss"SettingsThe following settings can be used to control django-libsass’s behaviour:LIBSASS_SOURCE_COMMENTS- whether to enable SASS source comments (adds comments about source lines). Defaults toTruewhen Django’sDEBUGisTrue,Falseotherwise.LIBSASS_OUTPUT_STYLE- SASS output style. Options are'nested','expanded','compact'and'compressed', although as of libsass 3.0.2 only'nested'and'compressed'are implemented. Default is ‘nested’. SeeSASS documentation for output styles. Note thatdjango-compressor’s settingsmay also affect the formatting of the resulting CSS.LIBSASS_CUSTOM_FUNCTIONS- A mapping of custom functions to be made available within the SASS compiler. By default, astaticfunction is provided, analogous to Django’sstatictemplate tag.LIBSASS_SOURCEMAPS- Enable embedding sourcemaps into file output (default: False)LIBSASS_PRECISION- Number of digits of numerical precision (default: 5)LIBSASS_ADDITIONAL_INCLUDE_PATHS- a list of base paths to be recognised in @import lines, in addition to Django’s recognised static file locationsCustom functionsThe SASS compiler can be extended with custom Python functions defined in theLIBSASS_CUSTOM_FUNCTIONSsetting. By default, astaticfunction is provided, for generating static paths to resources such as images and fonts:.foo {
    background: url(static("myapp/image/bar.png"));
}If yourSTATIC_URLis ‘/static/’, this will be rendered as:.foo {
    background: url("/static/myapp/image/bar.png"));
}Why django-libsass?We wanted to use Sass in a Django project without introducing any external (non pip-installable)
dependencies. (Actually, we wanted to use Less, but the same arguments apply…) There are a few
pure Python implementations of Sass and Less, but we found that they invariably didn’t match the
behaviour of the reference compilers, either in their handling of @imports or lesser-used CSS
features such as media queries.libsassis a mature C/C++ port of the Sass engine, co-developed by the
original creator of Sass, and we can reasonably rely on it to stay in sync with the reference
Sass compiler - and, being C/C++, it’s fast. Thanks to Hong Minhee’slibsass-pythonproject, it has Python bindings and
installs straight from pip.django-libsass builds on libsass-python to make @import paths aware of Django’s staticfiles
mechanism, and provides a filter module for django-compressor which uses the libsass-python API
directly, avoiding the overheads of calling an external executable to do the compilation.Reporting bugsPlease see thetroubleshootingpage for help with some common setup issues.I do not provide support for getting django-libsass working with your CSS framework of choice. If you believe you’ve found a bug, please try to isolate it as a minimal reproducible test case before reporting it - ideally this will consist of a few edits / additions to thehello-django-libsassexample project. If you cannot demonstrate the problem in a few standalone SCSS files, it is almost certainly not a django-libsass bug - any bug reports that relate to a third-party CSS framework are likely to be closed without further investigation.AuthorMatt Westcottmatthew.westcott@torchbox.com