A powerful HTML whitespace remover
Project description
HTML Whitespace remover for Django
Introduction :
A powerful tool to optimize HTML
Why use “django_stip_whitespace” ?
Adds line break to InlineJS.
It can automagically minify inline CSS, JS.
Removes <!–prettier-ignore–> from HTML.
It speeds up website by reducing the HTML size.
Can be used with ‘django.middleware.gzip.GZipMiddleware’.
Its mostly based on C ( gzip ) and Rust ( minify-html ) libraries.
Significantly lower bytes transferred when working with frameworks like AlpineJs & Petite Vue.
Is very customizable. ( You can configure lower level minify-html rust bindings from settings.py )
Why souldn’t you use django_stip_whitespace ?
Disables the use of in HTML. Although this can be easily mitigated by using CSS pesudo element.
- Use this CSS code:
selector::before { content : '\00a0\00a0' }
Although I tried my best to use Compiled Language for Optimizations. It can still be sub miliseconds slower compared to normal Django Rendering.
Requirements :
Brotli ( or BrotliPy )
minify-html
Django > 3 ( Should work with version 2? )
Python 3 ( Should work with all version? )
User guide :
Installation :
Install with pip from pypi:
$ python -m pip install django_strip_whitespace
Install with pip from github ( Development | Not Recommended for Production ):
$ python -m pip install https://codeload.github.com/baseplate-admin/django_strip_whitespace/zip/refs/heads/main
Then include it in your django project:
MIDDLEWARE = [ ... "strip_whitespace.middlewares.HtmlStripWhiteSpaceMiddleware.html_strip_whitespace", ]
Or if you like:
MIDDLEWARE += "strip_whitespace.middlewares.HtmlStripWhiteSpaceMiddleware.html_strip_whitespace"
Change Lower Level Bindings :
The module allows settings to be changed from Django’s settings.py file. If you would like to change any settings, refer to minify-html’s source code.
The bindings are ( by default set to True):
STRIP_WHITESPACE_DO_NOT_MINIFY_DOCTYPE, # passes do_not_minify_doctype to minify-html STRIP_WHITESPACE_ENSURE_SPEC_CONPLIANT_UNQUOTED_ATTRIBUTE_VALUES, # passes ensure_spec_compliant_unquoted_attribute_values to minify-html STRIP_WHITESPACE_KEEP_CLOSING_TAGS, # passes keep_closing_tags to minify-html STRIP_WHITESPACE_KEEP_COMMENTS, # passes keep_comments to minify-html STRIP_WHITESPACE_KEEP_HTML_AND_HEAD_OPENING_TAGS, # passes keep_html_and_head_opening_tags to minify-html STRIP_WHITESPACE_KEEP_SPACES_BETWEEN_ATTRIBUTES, # passes keep_spaces_between_attributes to minify-html STRIP_WHITESPACE_MINIFY_CSS, # passes minify_css to minify-html STRIP_WHITESPACE_MINIFY_JS, # passes minify_js to minify-html STRIP_WHITESPACE_REMOVE_BANGS, # passes remove_bangs to minify-html STRIP_WHITESPACE_REMOVE_PROCESSING_INSTRUCTIONS, # passes remove_processing_instructions to minify-html
If you would like to change any of the above variables, simply put them in settings.py. Please note that every variable here is a python boolean.
For example:
# settings.py STRIP_WHITESPACE_DO_NOT_MINIFY_DOCTYPE = False
Contributing :
If you like this project add a star. If you have problems or suggestions please put them in the Issue Tracker. If you like to add features. Fork this repo and submit a Pull Request. 😛
Roadmap :
Add ZStandard Compression ? ( Should Work )
Do not remove ‘ ’ from html
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for django_strip_whitespace-0.0.17-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70d93b2447e1695eccad0d9777c01e1d3f98ec66096807580f2bfaa35d9f69e1 |
|
MD5 | 51e969b9932694650d6f10240945a2c1 |
|
BLAKE2b-256 | 07b6e13ca9126a2ae8a3c4714753ede417b1c96478dc317c499ca38cb4f26725 |