annapowellsmith / django-template-minifier

Django module, providing simple template loader. It reduces HTML output in templates by stripping out whitespace characters between HTML and django template tags.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

django-template-minifier

Django package, providing simple template loader. It reduces HTML output in templates by stripping out whitespace characters between HTML and django template tags.

Things to note:

Installation

python setup.py install

Basic usage

Modify Your Django project settings's module (note cached loader):

TEMPLATE_LOADERS = (('django.template.loaders.cached.Loader', (
        'template_minifier.template.loaders.filesystem.Loader',
        'template_minifier.template.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_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

About

Django module, providing simple template loader. It reduces HTML output in templates by stripping out whitespace characters between HTML and django template tags.


Languages

Language:Python 100.0%