Minimatic
An extension to WebHelpers that enables a real time JS/CSS combination and minification in production mode.
Installation
Using easy_install:
$ easy_install minimatic
Using pip:
$ pip install minimatic
Source code
Git repository is located at GitHub.com.
Usage
It extends the WebHelpers functions javascript_link and stylesheet_link to take a modified set of parameters:
- sources (list): JS/CSS items to process. Each item is one of the following:
- (dict) with keys:
file: a path to the source file relative to the static file root
- minify: minification method. Possible values (default False):
False (bool): use the source unmodified
strip (str): only strip extra whitespace and comments (applicable to CSS only)
minify (str): strip whitespace and apply other possible JS/CSS minifications. Note that this involves source parsing and will err on syntax errors (CSS hacks will be removed!). In effect the resulting file may be logically different
dest: if the source list is not combined then each item must provide a destination filename relative to the static file root
(str): it will be treated as (see above):
{'file': (str), 'minify': False}
combined (str): the combined filename relative to the static file root. Implies that the files need to be combined. If combined is None then every Item must have a dest key provided.
beaker_kwargs (dict): override default arguments that will be passed to beaker_cache. beaker_kwargs.update() is issued on default arguments.
timestamp append time.time timestamp to links to force browsers reload the JS/CSS assets, eg. test.js?t=123012343
The files will be combined in production mode; in development mode (debug=True) they will be served unmodified separately.
Example
Mix and match the sources into one big JS file:
>>> javascript_link( ... # These files are already minified; combine them only ... '/js/jquery.js', ... '/js/jquery-ui-custom.js', ... # These are custom files which need to be minified first ... dict(file='/js/base.js', minify='minify'), ... dict(file='/js/page-script.js', minify='minify'), ... combined='/combined/js/scripts.js', ... timestamp=True)
Serve CSS files separately (uncombined):
>>> stylesheet_link( ... # This stylesheet is valid CSS and safe to parse and minify ... dict(file='/css/base.css', minify='minify', ... dest='/combined/css/base.css'), ... # This stylesheet is full of CSS hacks and only the extra whitespace ... # and comments should be stripped ... dict(file='/css/styles.ie6.css', minify='strip', ... dest='/combined/css/styles.ie6.css'), ... timestamp=True)
Release files for Minimatic 1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distributions (sdists)
| File | Size | Uploaded | |
|---|---|---|---|
| Minimatic-1.0.zip | 12.5 kB | Details | |
| Minimatic-1.0.tar.gz | 8.1 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| Minimatic-1.0-py2.6.egg | Legacy Egg format | - | - | Details |
| Minimatic-1.0-py2.5.egg | Legacy Egg format | - | - | Details |
Total release size: 51.3 kB
Release files / Minimatic-1.0.zip
| Download URL | Minimatic-1.0.zip |
|---|---|
| Size | 12.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
be3a7046026a0cc03792085c169bfb52bbcdf115b411d3d1e40254a7eaaa619e
|
|
BLAKE2b-256 checksum How to use checksums |
2febc936a1ad4ef5be2989f8c31aa0a1fdc9a0d160018cd8ac93de99ba9f497e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / Minimatic-1.0.tar.gz
| Download URL | Minimatic-1.0.tar.gz |
|---|---|
| Size | 8.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e2d8a037f797ac3ba5aa81aae8ab6a84322c174ef3709a72a787d94c31a12d06
|
|
BLAKE2b-256 checksum How to use checksums |
4d419ba4bf266296e177a6d3b6af547a9b6b7a4780308afeb2249d9b5a1e541e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / Minimatic-1.0-py2.6.egg
| Download URL | Minimatic-1.0-py2.6.egg |
|---|---|
| Size | 15.3 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
c8f1f9a72c07e7df6120edd49864b454a7203ed24ec1725bc1c5b2ab9ddbf948
|
|
BLAKE2b-256 checksum How to use checksums |
f038608cd8240156f13c8c7e02c0b674efcb4ee947e334a3fed821db239de2cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / Minimatic-1.0-py2.5.egg
| Download URL | Minimatic-1.0-py2.5.egg |
|---|---|
| Size | 15.3 kB |
| Tags | Egg |
|
SHA-256 checksum How to use checksums |
54327a27dbff190e4b59c4553f801ca8ee1ce700dac4128a84fd27c9730c4ce5
|
|
BLAKE2b-256 checksum How to use checksums |
5afc8045c19c1e191e854e88d47c8ab939d76332fccd7cf07fb004c447faa336
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |