semvec/pypi-packages huggingface dataset:
zif.jsmin 0.2
WSGI middleware for javascript compression.
License: BSD
Keywords: jsmin wsgi middleware zope3

****************
zif.jsmin
****************

See 'src/zif/jsmin/README.txt' for more information.


Releases
********

================
0.1 (2007/04/13)
================

Initial release.


Detailed Documentation
**********************

=========
zif.jsmin
=========

This is a wsgi middleware application intended for use with paste.deploy,
zope.paste, and zope3.

It serves as a wsgi filter to "minimize" javascript for a zope3 application.

*This can be slow.*  You probably do not want to run this in production unless
you have (small) dynamically-generated scripts and css.  But it can be useful
for generating minimized javascript or css for resources.  Those larger files
can then be excluded from on-the-fly minimization.


Dependencies
------------

For zope3, jsmin requires Sidnei da Silva's zope.paste.

zope.paste is available at http://svn.zope.org/zope.paste/trunk/

::

    cd [path.to.zope3.src.directory]/zope
    svn co http://svn.zope.org/zope.paste/trunk/ paste

Instructions for zope.paste are at  http://awkly.org/

zope.paste requires paste.deploy.  paste.deploy can be obtained from the cheese
shop.  Presuming you have setuptools installed,

::

    sudo easy_install.py PasteDeploy

This (zif.jsmin) package can be unzipped and installed anywhere on the Python path.


Setup
-----

Follow Sidnei's instructions for setting up zope.paste.  It involves putting the
usual zope.paste-configure.zcml file in [zope3 instance]/etc/site-packages.
There is also a parameter to change in [zope3 instance]/etc/zope.conf.
The new twist is a paste.ini file in [zope3 instance]/etc

An example paste.ini file looks like:

::

    [pipeline:Paste.Main]
    pipeline = gzipper jsmin main

    [app:main]
    paste.app_factory = zope.paste.application:zope_publisher_app_factory

    [filter:gzipper]
    paste.filter_factory=gzipper.gzipper:filter_factory
    compress_level=6
    nocompress=jp gz zip
    tempfile=0

    [filter:jsmin]
    paste.filter_factory=jsmin.jsmin:filter_factory
    compress_level=safe
    compress_types=js css
    exclude=MochiKit

Configuration

The paste.ini file above shows examples of the configuration options for jsmin.

- **compress_level** is the degree of minimization desired.  "safe" is often good
  enough; it mainly removes spaces.  "full" will additionally munge variable
  names in javascript to make a more compact (and even less readable) module.
  Default is "safe"

- **compress_types** determines whether to compress javascript or css or both.
  For both, use "css js", which is the default.  For just one, specify "css" or
  "js"

- **exclude** is for excluding large files that presumably are already compressed.
  You may exclude on several matches; just put a space between them.  The module
  looks for consecutive characters in the url, and is case-sensitive.  "K" would
  exclude MochiKit.js or any file with "K" in its name.  "big_scripts" would
  exclude any file in the big_scripts url/folder.


Download
**********************