Skip to main content

Simple Django template loader that minifies html output.

Project description

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-template-minifying-loader

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',
              'template_minifying_loader.loaders.filesystem.Loader',
              'template_minifying_loader.loaders.app_directories.Loader',
          ],
      },
  },
]

For development (each refresh reloads template):

TEMPLATES = [
  {
      'DIRS': [
          str(APPS_DIR.path('templates')),
      ],
      'OPTIONS': {
          'loaders': [
              'template_minifying_loader.loaders.filesystem.Loader',
              'template_minifying_loader.loaders.app_directories.Loader',
          ],
      },
  },
]

Be happy having less spaces and new lines in Your templates!

Advanced usage:

Using modified settings You can: * turn off stripping spaces between HTML tags

TEMPLATE_MINIFIER_HTML_TAGS = False # default = True
  • turn off stripping spaces between Django template tags (s{%, %}s)

TEMPLATE_MINIFIER_TEMPLATE_TAGS = False # default = True
  • turn off all stripping

TEMPLATE_MINIFIER = False # default = True
  • run Your own strip_function, which preprocess templates

TEMPLATE_MINIFER_STRIP_FUNCTION = 'template_minifier.utils.strip_spaces_in_template'

(There is a typo in variable name, see #2 for details)

  • 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

To do:

  • {% new_line %} template_tag

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-template-minifying-loader-1.1.tar.gz (4.2 kB view details)

Uploaded Source

File details

Details for the file django-template-minifying-loader-1.1.tar.gz.

File metadata

File hashes

Hashes for django-template-minifying-loader-1.1.tar.gz
Algorithm Hash digest
SHA256 30405bfbda1b2b00794451cfb965cb37caa77dfab3ee1afeb4941aa313de1f22
MD5 30403b71a8203c96baf0c9e5772cf6be
BLAKE2b-256 9779e6f7e6baea5894632e1aeef74c2a38193b3a1a3ca3e0a2a910639d9f5f76

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page