Django Spaceless Templates
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
Metadata
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
|