SASS processor to compile SCSS files into *.css, while rendering, or offline.
Project description
Processor to compile files from markup languages such as SASS/SCSS, if referenced using the templatetag {% sass_src 'path/to/file.scss' %}. This special templatetag can be used instead of the built-in tag static.
Additionally, django-sass-processor is shipped with a management command, which can convert the content of all occurrences inside the templatetag sass_src as an offline operation. Hence the libsass compiler is not required in a production environment.
During development, a sourcemap is generated along side with the compiled *.css file. This allows to debug style sheet errors much easier.
With this tool, you can safely remove your Ruby projects “Compass” and “SASS”.
Project’s Home
On GitHub:
https://github.com/jrief/django-sass-processor
Please use the issue tracker to report bugs or propose new features.
Installation
pip install libsass django-compressor django-sass-processor
django-compressor is required only for offline compilation, when using the command manage.py compilescss.
libsass is not required on the production environment, if SASS/SCSS files have been precompiled and deployed using offline compilation.
Configuration
In settings.py add to:
INSTALLED_APPS = (
...
'sass_processors',
...
)
Optionally, add a list of additional search paths, the SASS compiler may examine when using the @import "..."; statement in SASS/SCSS files:
import os
SASS_PROCESSOR_INCLUDE_DIRS = (
os.path.join(PROJECT_PATH, 'mystyles/scss'),
os.path.join(PROJECT_PATH, 'node_modules'),
)
During development, or when SASS_PROCESSOR_ENABLED is set to True, the compiled file is placed into the folder referenced by SASS_PROCESSOR_ROOT (if unset, this setting defaults to STATIC_ROOT). Having a location outside of the working directory prevents to pollute your local static/css/... folders with auto-generated files. Therefore assure, that this directory is writable by the Django runserver.
django-sass-processor is shipped with a special finder, to locate the generated *.css files in the folder referred by SASS_PROCESSOR_ROOT (or, if unset STATIC_ROOT). Just add it to your settings.py:
STATICFILES_FINDERS = ( ... 'sass_processor.finders.CssFinder', ... )
Preprocessing SASS
django-sass-processor is shipped with a built-in preprocessor to convert *.scss or *.sass files into *.css while rendering the template. For performance reasons this is done only once, but the preprocessor keeps track on the timestamps and recompiles, if any of the imported SASS/SCSS files is younger than the corresponding generated CSS file.
In your Django templates
{% load sass_tags %}
<link href="{% sass_src 'myapp/css/mystyle.scss' %}" rel="stylesheet" type="text/css" />
You can safely use this templatetag inside a Sekizai’s {% addtoblock "css" %} statement.
Offline compilation
If you want to precompile all occurrences of your SASS/SCSS files for the whole project, on the command line invoke:
./manage.py compilescss
This is useful for preparing production environments, where SASS/SCSS files can’t be compiled on the fly. To simplify the deployment, the compiled *.css files are stored side-by-side with their corresponding SASS/SCSS files; just run ./manage.py collectstatic afterwards. In case you don’t want to expose the SASS/SCSS files in a production environment, deploy with ./manage.py collectstatic --ignore=.scss.
In case you want to get rid of the compiled *.css files in your local static directories, simply reverse the above command:
./manage.py compilescss --delete-files
This will remove all occurrences of previously generated *.css files.
History
0.2.0 Removed dependency to django-sekizai and django-classy-tags. It now can operate in stand-alone mode. Therefore the project has been renamed to django-sass-processor.
0.1.0 Initial revision named django-sekizai-processors, based on a preprocessor for the Sekizai template tags {% addtoblock %}.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-sass-processor-0.2.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3cc9d4396151ee2cbfd01797ac4c51352642409ccccc7a58ed2a6f93158affe |
|
MD5 | b4b63aba46641c7718b03d29a644e296 |
|
BLAKE2b-256 | eb6a378fef2f6329da698eec3b39495cb571e528fb037a80c60431aaa79d9779 |