From a3b35d531c0b6ee2622099b7a31a5c1cd00ed9d3 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Tue, 9 Aug 2011 10:59:31 +0200 Subject: [PATCH] Added a new SlimItFilter which is an yet another implementation of the jsmin filter. This requires installing the external dependency though (pip install slimit). The rJSmin filter stays the default due to the fact it's only one file and easily shipped as part of compressor. --- compressor/filters/jsmin/__init__.py | 1 + compressor/filters/jsmin/slimit.py | 10 ++++++++++ docs/changelog.txt | 7 +++++++ docs/installation.txt | 9 +++++++++ docs/settings.txt | 8 ++++++++ 5 files changed, 35 insertions(+) create mode 100644 compressor/filters/jsmin/slimit.py diff --git a/compressor/filters/jsmin/__init__.py b/compressor/filters/jsmin/__init__.py index 5d35fad..90cdae8 100644 --- a/compressor/filters/jsmin/__init__.py +++ b/compressor/filters/jsmin/__init__.py @@ -1,5 +1,6 @@ from __future__ import absolute_import from compressor.filters import CallbackOutputFilter +from compressor.filters.jsmin.slimit import SlimItFilter class rJSMinFilter(CallbackOutputFilter): callback = "compressor.filters.jsmin.rjsmin.jsmin" diff --git a/compressor/filters/jsmin/slimit.py b/compressor/filters/jsmin/slimit.py new file mode 100644 index 0000000..f53f93c --- /dev/null +++ b/compressor/filters/jsmin/slimit.py @@ -0,0 +1,10 @@ +from __future__ import absolute_import +from django.core.exceptions import ImproperlyConfigured +from compressor.filters import CallbackOutputFilter + +class SlimItFilter(CallbackOutputFilter): + dependencies = ["slimit"] + callback = "slimit.minify" + kwargs = { + "mangle": True, + } diff --git a/docs/changelog.txt b/docs/changelog.txt index e83f0b4..6338ac4 100644 --- a/docs/changelog.txt +++ b/docs/changelog.txt @@ -12,6 +12,13 @@ HEAD - Documented included filters. +- Added `Slim It`_ filter. + +- Added new CallbackOutputFilter to ease the implementation of Python-based + callback filters that only need to pass the content to a callable. + +.. _`Slim It`: http://slimit.org/ + 0.9.2 ----- diff --git a/docs/installation.txt b/docs/installation.txt index 6fa198f..41257c0 100644 --- a/docs/installation.txt +++ b/docs/installation.txt @@ -58,7 +58,16 @@ for the :ref:`parser ` ``compressor.parser.Html5LibParser``:: pip install html5lib +`Slim It`_ (optional) +^^^^^^^^^^^^^^^^^^^^^ + +for the :ref:`Slim It filter ` ``compressor.filters.jsmin.SlimItFilter``:: + + pip install slimit + + .. _BeautifulSoup: http://www.crummy.com/software/BeautifulSoup/ .. _lxml: http://codespeak.net/lxml/ .. _libxml2: http://xmlsoft.org/ .. _html5lib: http://code.google.com/p/html5lib/ +.. _`Slim It`: http://slimit.org/ diff --git a/docs/settings.txt b/docs/settings.txt index 6439cdb..50f135f 100644 --- a/docs/settings.txt +++ b/docs/settings.txt @@ -133,6 +133,13 @@ A list of filters that will be applied to javascript. Possible options are: A filter that uses the jsmin implementation rJSmin_ to compress JavaScript code. +.. _slimit_filter: + +``compressor.filters.jsmin.SlimItFilter`` +""""""""""""""""""""""""""""""""""""""""" + +A filter that uses the jsmin implementation `Slim It`_ to compress JavaScript code. + ``compressor.filters.closure.ClosureCompilerFilter`` """""""""""""""""""""""""""""""""""""""""""""""""""" @@ -154,6 +161,7 @@ A filter that passes the JavaScript code to the `YUI compressor`_. .. _rJSmin: http://opensource.perlig.de/rjsmin/ .. _`Google Closure compiler`: http://code.google.com/closure/compiler/ .. _`YUI compressor`: http://developer.yahoo.com/yui/compressor/ +.. _`Slim It`: http://slimit.org/ .. _compress_precompilers: