Metadata-Version: 1.1
Name: facets
Version: 1.1.0
Summary: Asset manager for Django.
Home-page: https://github.com/olivier-m/django-facets
Author: Olivier Meunier
Author-email: olivier@neokraft.net
License: MIT License
Description: =============
        Django Facets
        =============
        
        Features
        ========
        
        Django facets is an assets manager providing a cache manager for static files, CSS, Javascript,
        images compression and a collection (concatenation) system for CSS and JavaScript.
        
        This new version uses Django static storage system.
        
        
        Installation
        ============
        
        - Download the package and type ``python setup.py install``
        - Add ``django.contrib.staticfiles`` and ``facets`` to your ``INSTALLED_APPS``
        - Set ``STATICFILES_STORAGE`` setting to ``facets.storages.FacetsFilesStorage``
        - Add, **in first position** ``facets.finders.FacetsFinder`` to ``STATICFILES_FINDERS`` setting
        
        
        Configuration
        =============
        
        Django facets needs some configuration settings.
        
        FACETS_ENABLED
        --------------
        
        This setting enables cache. Its default value is the negation of ``DEBUG`` setting. You can set
        it manualy if you want to test your cache in debug mode.
        
        CACHES
        ------
        
        Django Facets keeps track of cached files using Django cache system. It tries to use the cache
        named "facets" and falls back to default. Here a configuration example::
        
          CACHES = CACHES = {
            'default': {
                # Whatever you want
            },
            'facets': {
                'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
                'LOCATION': '/path/to/directory'
            }
        }
        
        FACETS_HANDLERS
        ---------------
        
        A list of handlers. The default value is::
        
          (
              'facets.processors.css.CssUrlsProcessor',
          )
        
        These handlers are called during static files collect and/or while compiling some files. Order does not matter.
        
        See handlers_ section.
        
        
        Usage
        =====
        
        All static files should be handled as with `Django staticfiles
        <https://docs.djangoproject.com/en/1.6/ref/contrib/staticfiles/>`_.
        
        Collections
        -----------
        
        Collections are files you want to concatenate while in production. To create
        a collection, you should use the ``mediacollection`` template tag. Here's an
        example::
        
          {% load static from staticfiles %}
          {% load facets %}
        
          {% mediacollection "css/main.css" %}
            <link rel="stylesheet" href="{% static "css/reset.css" %}" />
            <link rel="stylesheet" href="{% static "css/screen.css" %}" />
          {% endmediacollection %}
        
        The argument of the tag is the collection's final name.
        
        Collections follow some rules:
        
        * Only for ``link`` and ``script`` HTML tags.
        * You can't mix ``link`` and ``script`` tags together.
        * With ``link`` tags, the following attributes must have the same values on
          each tag: ``rel``, ``type``, ``media``
        * With ``script`` tags, the following attributes must have the same values on
          each tag: ``type``
        
        Collect
        -------
        
        Before using the cache, you should run ``./manage.py collectstatic``. This
        command generates cached files.
        
        You could run this command during project deployment. Please note that you MUST restart your
        project server after running collectstatic.
        
        .. _handlers:
        
        Handlers
        ========
        
        Handlers are classes that take responsibility to transform an input file. There are two types of handlers: compilers and processors.
        
        Compilers
        ---------
        
        Compilers create final files for some preprocessors languages (Less, Sass, CoffeeScript, etc.).
        A compiler will be called during *collectstatic* and while serving static files if setting ``FACETS_ENABLED`` is set to ``False`` (usually during development).
        
        Please note that there can be only one compiler by file extension.
        
        facets.compilers.css.LessCompiler
        +++++++++++++++++++++++++++++++++
        
        :Extensions: ``less``
        :Options:
        
          | **new_name**: ``{base}.css``
          | **program**: ``/usr/bin/env lessc``
          | **command**: ``{program} - {outfile}``
        
        This compiler compiles Less files using `Less <http://lesscss.org/>`_ preprocessor.
        
        facets.compilers.css.SasscCompiler
        ++++++++++++++++++++++++++++++++++
        
        :Extensions: ``scss``, ``sass``
        :Options:
        
          | **new_name**: ``{base}.css``
          | **program**: ``/usr/bin/env sassc``
          | **command**: ``{program} -``
        
        This compiler compiles Sass files using `SassC <http://libsass.org/#sassc>`_ preprocessor.
        
        facets.compilers.css.LibSassCompiler
        ++++++++++++++++++++++++++++++++++++
        
        :Extensions: ``scss``, ``sass``
        
        This compiler compiles Sass files using `libsass-python <http://dahlia.kr/libsass-python/>`_ preprocessor.
        
        facets.compilers.js.CoffeScriptCompiler
        +++++++++++++++++++++++++++++++++++++++
        
        :Extensions: ``coffee``
        :Options:
        
          | **new_name**: ``{base}.js``
          | **program**: ``/usr/bin/env coffee``
          | **command**: ``{program} -c --print {infile}``
        
        This compiler compiles CoffeeScript files using `CoffeeScript <http://coffeescript.org/>`_ command.
        
        facets.compilers.js.LiveScriptCompiler
        ++++++++++++++++++++++++++++++++++++++
        
        :Extensions: ``ls``
        :Options:
        
          | **new_name**: ``{base}.js``
          | **program**: ``/usr/bin/env lsc``
          | **command**: ``{program} -c --print {infile}``
        
        This compiler compiles LiveScript files using `LiveScript <http://livescript.net/>`_ command.
        
        facets.compilers.js.DartCompiler
        ++++++++++++++++++++++++++++++++
        
        :Extensions: ``dart``
        :Options:
        
          | **new_name**: ``{base}.js``
          | **program**: ``/usr/bin/env dart2js``
          | **command**: ``{program} -o {outfile} {infile}``
        
        This compiler compiles Dart files using `Dart <https://www.dartlang.org/>`_ dart2js.
        
        
        Processors
        ----------
        
        Processors are called during *collectstatic*. Their job is usually to optimize files.
        
        facets.processors.css.CssUrlsProcessor
        ++++++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.css``
        :Options: **priority**: -1000 (please don't change it)
        
        This processor transforms every URL found in CSS files to point to cached files version. For
        example, this rule::
        
          h1 {
              background: url(../img/title.png);
          }
        
        would become::
        
          h1 {
              background: url("/static/img/title-e221e1b36656.png");
          }
        
        **Note**: It is recommended to always have this processor set.
        
        facets.processors.css.CssMinProcessor
        +++++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.css``
        
        This processor minifies CSS files using `cssmin <https://github.com/zacharyvoase/cssmin>`_.
        
        facets.processors.js.JsMinProcessor
        +++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.js``
        
        This processor minifies JavaScript files using `jsmin <http://pypi.python.org/pypi/jsmin>`_.
        
        facets.processors.js.UglifyJsProcessor
        ++++++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.js``
        :Options:
        
          | **program**: ``/usr/bin/env uglifyjs``
          | **command**: ``{program} {infile} --ascii -m -c -o {outfile}``
        
        This processor minifies JavaScript files using `UglifyJs 2 <https://github.com/mishoo/UglifyJS2>`_.
        
        facets.processors.js.GoogleClosureProcessor
        +++++++++++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.js``
        :Options:
        
          | **program**: ``/usr/bin/env java -jar /path/to/compiler.jar`` (you'll have to change that)
          | **command**: ``{program} {infile}``
        
        This processor minifies JavaScript files using `Google Closure Compiler
        <https://developers.google.com/closure/compiler/>`_.
        
        facets.processors.js.YuiJsProcessor
        +++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.js``
        :Options:
        
          | **program**: ``/usr/bin/env java -jar /path/to/yuicompressor-xxx.jar`` (you'll have to change that)
          | **command**: ``{program} {infile}``
        
        This processor minifies JavaScript files using `Yahoo UI Compressor
        <http://developer.yahoo.com/yui/compressor/>`_.
        
        facets.processors.css.YuiCssProcessor
        +++++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.css``
        :Options:
        
          | **program**: ``/usr/bin/env java -jar /path/to/yuicompressor-xxx.jar`` (you'll have to change that)
          | **command**: ``{program} {infile}``
        
        This processor minifies CSS files using `Yahoo UI Compressor
        <http://developer.yahoo.com/yui/compressor/>`_.
        
        facets.processors.images.OptiPngProcessor
        +++++++++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.png``
        :Options:
        
          | **program**: ``/usr/bin/env optipng``
          | **command**: ``{program} -o7 -nc {infile}``
        
        This processor optimizes PNG files using `OptiPNG <http://optipng.sourceforge.net/>`_.
        
        facets.processors.images.AdvPngProcessor
        ++++++++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.png``
        :Options:
        
          | **program**: ``/usr/bin/env advpng``
          | **command**: ``{program} -z -4 {infile}``
        
        This processor optimizes PNG files using `AdvanceCOMP advpng
        <http://advancemame.sourceforge.net/doc-advpng.html>`_.
        
        facets.processors.images.JpegtranProcessor
        ++++++++++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.jpg, *.jpeg``
        :Options:
        
          | **program**: ``/usr/bin/env jpegtran``
          | **command**: ``{program} -copy none -optimize {infile}``
        
        This processor optimizes JPEG files using `jpegtran <http://jpegclub.org/jpegtran/>`_.
        
        facets.processors.images.JpegoptimProcessor
        +++++++++++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.jpg, *.jpeg``
        :Options:
        
          | **program**: ``/usr/bin/env jpegoptim``
          | **command**: ``{program} -q --strip-all {infile}``
        
        This processor optimizes JPEG files using `jpegoptim <http://freshmeat.net/projects/jpegoptim>`_.
        
        facets.processors.images.GifsicleProcessor
        ++++++++++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.gif``
        :Options:
        
          | **program**: ``/usr/bin/env gifsicle``
          | **command**: ``{program} --batch -O3 {infile}``
        
        This processor optimizes GIF files using `Gifsicle <http://www.lcdf.org/gifsicle/>`_.
        
        facets.processors.gz.GZipProcessor
        ++++++++++++++++++++++++++++++++++
        
        :Scope: ``*.htm, *.html, *js, *.css, *.txt, *.eot, *.ttf, *.woff, *.svg``
        :Options:
        
          | **priority**: 1000 (please don't change it)
          | **compresslevel**: A compression level (0-9). Default to 5.
        
        This processor is a bit special. Instead of updating existing cached file, it creates a gziped copy. It could be very useful if you configured Nginx with `Gzip Static Module
        <http://wiki.nginx.org/HttpGzipStaticModule>`_.
        
        
        License
        =======
        
        Django facets is released under the BSD license. See the LICENSE
        file for the complete license.
        
Keywords: django assets css javascript compression
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Utilities
