Flask extension to minify html, css, js and less.
Project description
flask_minify
A Flask extension to minify flask response for html, javascript, css and less compilation as well.
Install:
- With pip
pip install Flask-Minify
- From the source:
git clone https://github.com/mrf345/flask_minify.git
cd flask_minify
python setup.py install
Setup:
- Inside Flask app:
from flask import Flask
from flask_minify import minify
app = Flask(__name__)
minify(app=app)
- Result:
Before:
<html>
<head>
<script>
if (true) {
console.log('working !')
}
</script>
<style>
body {
background-color: red;
}
</style>
</head>
<body>
<h1>Flask-Less Example !</h1>
</body>
</html>
After:
<html> <head><script>if(true){console.log('working !')}</script><style>body{background-color:red;}</style></head> <body> <h1>Flask-Less Example !</h1> </body> </html>
Options:
def __init__(
self, app=None, html=True, js=True, cssless=True,
fail_safe=True, bypass=[], bypass_caching=[], caching_limit=1
):
''' Extension to minify flask response for html, javascript, css and less.
Parameters
----------
app: Flask.app
Flask app instance to be passed.
js: bool
To minify the css output.
cssless: bool
To minify spaces in css.
fail_safe: bool
to avoid raising error while minifying.
bypass: list
list of endpoints to bypass minifying for. (Regex)
bypass_caching: list
list of endpoints to bypass caching for. (Regex)
caching_limit: int
to limit the number of minified response variations.
NOTE: if `caching_limit` is set to 0, we'll not cache any endpoint
response, so if you want to disable caching just do that.
EXAMPLE: endpoint is the name of the function decorated with the
`@app.route()` so in the following example the endpoint
will be `root`:
@app.route('/root/<id>')
def root(id):
return id
NOTE: when using a `Blueprint` the decorated endpoint will be
suffixed with the blueprint name;
`Blueprint('blueprint_name')` so here the endpoint will be
`blueprint_name.root`.
`bypass` and `bypass_caching` can handle regex patterns so if
you want to bypass all routes on a certain blueprint you can
just pass the pattern as such:
minify(app, bypass=['blueprint_name.*'])
'''
Credit:
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 Distribution
Flask-Minify-0.17.tar.gz
(5.2 kB
view hashes)
Built Distribution
Close
Hashes for Flask_Minify-0.17-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 871dddfc66eabc78af790994e3d2a5f3ab876d20a3e66ee88e7f8fe7180be7fc |
|
MD5 | aa1a5288a1499bbedaaf789357af5018 |
|
BLAKE2b-256 | bbf82160e25253aaf96f6d14ddbee744d00f7b6ad0e2e9cc4adb8418f64bb714 |