Skip to main content

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:

Installation

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)

Source distribution for django-spaceless-templates 1.0
File Size Uploaded
django-spaceless-templates-1.0.tar.gz 4.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-spaceless-templates 1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

1.0.2

2 release files

1.0.1

2 release files

This release

1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page