Django template tags to compile all kinds of static files
Project description
Django Static Precompiler
Django Static Precompiler provides template tags and filters to compile CoffeeScript, LiveScript, SASS / SCSS, LESS, Stylus, Babel and Handlebars. It works with both inline code and external files.
Documentation
Documentation is available at https://django-static-precompiler.readthedocs.io.
Install
pip install django-static-precompiler
Use in templates
{% load compile_static %}
{% load static %}
<script src="{% static "path/to/script.coffee"|compile %}"></script>
<link rel="stylesheet" href="{% static "path/to/styles1.less"|compile %}" />
<link rel="stylesheet" href="{% static "path/to/styles2.scss"|compile %}" />
Use in Python
>>> from static_precompiler.utils import compile_static
>>> compile_static("styles.scss")
"COMPILED/styles.css"
Python & Django compatibility
| django-static-precompiler | Python | Django |
|---|---|---|
| 2.2+ | 3.6+ | 2.0 - 4.1 |
| 2.1 | 3.6+ | 2.0 - 4.0 |
| 2.0 | 3.4+ | 1.9 - 3.2 |
| 1.7-1.8 | 2.7+ | 1.7 - 2.2 |
| 1.6 | 2.7+ | 1.7 - 1.11 |
| 1.5 | 2.7+ | 1.6 - 1.10 |
| 1.1-1.4 | 2.7+ | 1.6 - 1.9 |
| 1.0 | 2.7+ | 1.6 - 1.7 |
Changelog
2.4
Deprecation
- Ruby-based Sass compiler is deprecated and will be removed in 3.0
New
- Added support for Dart Sass, see documentation on how to enable it. Dart Sass will become the default Sass compiler starting from 3.0
Bugfixes
- Fix the bug with a greedy regex in the URL converter
Misc
- Ensure compatibility with the latest versions of compilers:
- coffeescript@2.7.0 (may break compatibility with older versions)
- livescript@1.6.0
- less@4.1.3
- handlebars@4.7.7
2.3
- Fix incorrect source map URL with
libsass
2.2
- Add support for Django 4.1
2.1
- Drop Python 3.5 support
- Drop Django 1.x support
- Add support for Django 4.0
2.0
- Drop Python 2.x support
- Add support for Django 3.0 and 3.1
1.8.2
- Add
clean_cssoption to LESS compiler - Fix URL converter to properly handle
url(..)not followed directly by;
1.8.1
- Fix
setup.pyto add compatibility with Python 3.4 and below.
1.8
- Remove deprecated settings:
COFFEESCRIPT_EXECUTABLE,SCSS_EXECUTABLE,SCSS_USE_COMPASS,LESS_EXECUTABLE - Add
--ignore-dependenciesoption tocompilestaticcommand - Add
--delete-stale-filesoption tocompilestaticcommand
1.7.1
- Bugfix: properly handle the URLs containing parenthesis or quotes
1.7
- Prevent detection of imports in comments (SCSS)
- Add support for Django 2.0
1.6
- Add support for Django 1.11
- Drop support for Django 1.6
- Add
include_pathoption to LESS compiler - Take account of
load_pathsoption when doing inline compilation withlibsass - Bugfix: take account of additional compiler options when doing inline compilation with SASS
1.5
- Add support for Django 1.10 and Python 3.5
- Improve support for
load_pathssetting in SCSS/SASS compilers.
1.4
- Fix the
run_commandutility function to rely on process return code rather than stderr to determine if compilation has finished successfully. WARNING! Changes inrun_commandare backward incompatible. If you use this function in your custom compiler you should update your code.
1.3.1
- Add support for
--presetsoption in Babel compiler. See babel-cli [options <https://babeljs.io/docs/usage/options/>]{.title-ref} for more information.
1.3
- Fix Stylus compiler to actually enable support for detecting changes in imported files
- Add
precisionoption to SASS / SCSS / LibSass compilers. Set it to 8 or more if you compile Bootstrap. - Add
output_styleoption to SASS / SCSS / LibSass compilers. - Enable verbose output for
compilestaticmanagement command
1.2
- Add LiveScript compiler
- Add support for
--global-varoption in LESS compiler - Add SCSS / SASS compiler based on Libsass
1.1
- Add source maps support for SASS/SCSS
- Add source maps support for LESS
- Add source maps support for CoffeeScript
- Add source maps support for Stylus
- Add source maps support for Babel
- Add Handlebars compiler
- Add support for Django 1.9
- Add
pluginsparameter to Babel compiler - Add
load_pathsparameter to SASS/SCSS compilers
1.0.1
- Add
modulesparameter to Babel compiler - Allow to install Watchdog with
pip install django-static-precompiler[watch]
1.0
- Add
compiletemplate filter - Deprecate
{% compile %}template tag - The following compiler specific template tags are REMOVED:
{% coffeescript %}{% inlinecoffeescript %}{% sass %}{% inlinesass %}{% scss %}{% inlinescss %}{% less %}{% inlineless %}
- Add Stylus compiler
0.9
- Compiler options are specified with
STATIC_PRECOMPILER_COMPILERSsetting. - The following settings are DEPRECATED:
COFFEESCRIPT_EXECUTABLESCSS_EXECUTABLESCSS_USE_COMPASSLESS_EXECUTABLE
-C(--no-cache) flag is removed from SASS/SCSS compilers- Add
STATIC_PRECOMPILER_LIST_FILESsetting - Add Babel compiler
0.8
- Add
{% inlinecompile %}template tag - The following compiler specific template tags are DEPRECATED:
{% coffeescript %}{% inlinecoffeescript %}{% sass %}{% inlinesass %}{% scss %}{% inlinescss %}{% less %}{% inlineless %}
- Use Django 1.7 migrations
- BUGFIX: fix sass imports from scss and vice versa
- BUGFIX: make sure that
compilestaticworks ifwatchdogisn't installed. - BUGFIX: fix compilation error when dependency file was removed or renamed
0.7
- Add
compilestaticmanagement command (replacesstatic_precompiler_watch) - Add
STATIC_PRECOMPILER_DISABLE_AUTO_COMPILEto settings - Add
STATIC_PRECOMPILER_CACHE_NAMEto settings - Bugfixes
0.6
- Add
STATIC_PRECOMPILER_PREPEND_STATIC_URLto settings - Add
{% compile %}template tag
0.5.3
- Update the parsing of
@importstatements. Fix the bug with URLs containing commas.
0.5.2
static_precompiler_watch: watch for changes in all directories handled by static finders, not onlySTATIC_ROOTstatic_precompiler_watch: add--no-initial-scanoption
0.5.1
- Fix SCSS compilation error when importing Compass styles
0.5
- Add Python 3 support
0.4
- Add
compile_staticandcompile_static_lazyutility functions.
0.3
- Bug fixes
- Add Windows compatibility
0.2
- Reduce the max length of varchar fields in Dependency model to meet MySQL limitations
- static_precompiler_watch: don't fall with exception on compilation errors or if source file is not found
0.1
- Initial release
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django-static-precompiler-2.4.tar.gz.
File metadata
- Download URL: django-static-precompiler-2.4.tar.gz
- Upload date:
- Size: 24.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22c983f4318f4ad96645d8b71af5c29d4525e55d0d5c3abe8917310280c7f89e
|
|
| MD5 |
41877a5e00f538b9410295abb2c4039c
|
|
| BLAKE2b-256 |
09bfa8f0a07e954137d551c7fce53d48bc949ece9c3b8fbf559346a6922db0d9
|
File details
Details for the file django_static_precompiler-2.4-py3-none-any.whl.
File metadata
- Download URL: django_static_precompiler-2.4-py3-none-any.whl
- Upload date:
- Size: 34.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b67e951b19e1136f6bf00d879ae236435fe4be3e430369644743b1677645ce4
|
|
| MD5 |
64f07d9d0a519407eed8d1fcb23bdd7e
|
|
| BLAKE2b-256 |
d5c190b8ff7efdd04a0108fdc4743fae3d6eb990ee4ed581fb9d73345a0fd22a
|