Django application, providing simple template loader. It reduces HTML output in templates by stripping out whitespace characters between HTML and django template tags. This is an update of django-template-minifier that works with django 1.10.
Things to note:
It does not make any fancy compression, to do that use GZip Middleware.
To compress CSS and JS use django-compressor.
Installation
via virtualenv - yup we highly recommend it!
pip install django-spaceless-templates
Basic usage
Modify Your Django project settings’s module.
For production (note cached loader):
TEMPLATES = [
{
'DIRS': [
str(APPS_DIR.path('templates')),
],
'OPTIONS': {
'loaders': [
(
'django.template.loaders.cached.Loader', [
'django_spaceless_templates.loaders.filesystem.Loader',
'django_spaceless_templates.loaders.app_directories.Loader',
],
),
],
},
},
]
For development (each refresh reloads template):
TEMPLATES = [
{
'DIRS': [
str(APPS_DIR.path('templates')),
],
'OPTIONS': {
'loaders': [
'django_spaceless_templates.loaders.filesystem.Loader',
'django_spaceless_templates.loaders.app_directories.Loader',
],
},
},
]
Be happy having less spaces and new lines in Your templates!
Advanced usage:
Using modified settings You can:
turn on stripping only for templates with given extensions
TEMPLATE_MINIFIER_FILENAME_EXTENSIONS = ('.html', '.htm', )
turn off stripping for particular directories
TEMPLATE_MINIFIER_EXCLUDED_DIRS = ('admin/', )
turn off all stripping
TEMPLATE_MINIFIER = False # default = True
run Your own strip_function, which preprocess templates
TEMPLATE_MINIFIER_STRIP_FUNCTION = 'template_minifier.utils.strip_spaces_in_template'
use only in production
if DEBUG:
TEMPLATE_MINIFIER = False
Known issues:
Don’t use // one line comments in Your inline javascript <script> or .js templates. In some cases, if You are using lot of {% if %} there, it can comment out }; or }, for example:
// comment something - !!it's evil!!
{% if %}
function name(){
}
{% endif %}
Use /* */ instead
/* comment something - it's nice and clean <3! */
{% if %}
function name(){
}
{% endif %}
Or just set TEMPLATE_MINIFIER_TEMPLATE_TAGS = False
Don’t use multiline {% blockquote %} without parameter trimmed. Otherwise your blockquote translations won’t be translated. Correct usage:
{% blockquote trimmed %}
My paragraph...
{% blockquote %}
Running Tests:
(myenv) $ pip install -e . (myenv) $ python ./runtests.py
Check package:
python -m build; python -m twine check dist/*
To do:
{% new_line %} template_tag
Release files for django-spaceless-templates 1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-spaceless-templates-1.0.tar.gz | 4.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_spaceless_templates-1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.0 kB
Release files / django-spaceless-templates-1.0.tar.gz
| Download URL | django-spaceless-templates-1.0.tar.gz |
|---|---|
| Size | 4.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
964b9469cee4ac90fb2f0b5408a12a1aaf5111549d60eee81d2eb4ad2ce51182
|
|
BLAKE2b-256 checksum How to use checksums |
2ff750a10942efe562122bfc4310875d227cedc34323d9d615e4d1cf8b92a0f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
|
Release files / django_spaceless_templates-1.0-py3-none-any.whl
| Download URL | django_spaceless_templates-1.0-py3-none-any.whl |
|---|---|
| Size | 6.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
95a5883f579ac899e548bfb117ee82823f300adad872a519f673a6253e79a97e
|
|
BLAKE2b-256 checksum How to use checksums |
6e80cf21e57d9f36780fb1373dc44edb15f34170bd1db0c33618a736fb9a4de8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5
|