{ "info": { "author": "Olivier Meunier", "author_email": "olivier@neokraft.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Utilities" ], "description": "=============\nDjango Facets\n=============\n\nFeatures\n========\n\nDjango facets is an assets manager providing a cache manager for static files, CSS, Javascript,\nimages compression and a collection (concatenation) system for CSS and JavaScript.\n\nThis new version uses Django static storage system.\n\n\nInstallation\n============\n\n- Download the package and type ``python setup.py install``\n- Add ``django.contrib.staticfiles`` and ``facets`` to your ``INSTALLED_APPS``\n- Set ``STATICFILES_STORAGE`` setting to ``facets.storages.FacetsFilesStorage``\n- Add, **in first position** ``facets.finders.FacetsFinder`` to ``STATICFILES_FINDERS`` setting\n\n\nConfiguration\n=============\n\nDjango facets needs some configuration settings.\n\nFACETS_ENABLED\n--------------\n\nThis setting enables cache. Its default value is the negation of ``DEBUG`` setting. You can set\nit manualy if you want to test your cache in debug mode.\n\nCACHES\n------\n\nDjango Facets keeps track of cached files using Django cache system. It tries to use the cache\nnamed \"facets\" and falls back to default. Here a configuration example::\n\n CACHES = CACHES = {\n 'default': {\n # Whatever you want\n },\n 'facets': {\n 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',\n 'LOCATION': '/path/to/directory'\n }\n}\n\nFACETS_HANDLERS\n---------------\n\nA list of handlers. The default value is::\n\n (\n 'facets.processors.css.CssUrlsProcessor',\n )\n\nThese handlers are called during static files collect and/or while compiling some files. Order does not matter.\n\nSee handlers_ section.\n\n\nUsage\n=====\n\nAll static files should be handled as with `Django staticfiles\n`_.\n\nCollections\n-----------\n\nCollections are files you want to concatenate while in production. To create\na collection, you should use the ``mediacollection`` template tag. Here's an\nexample::\n\n {% load static from staticfiles %}\n {% load facets %}\n\n {% mediacollection \"css/main.css\" %}\n \n \n {% endmediacollection %}\n\nThe argument of the tag is the collection's final name.\n\nCollections follow some rules:\n\n* Only for ``link`` and ``script`` HTML tags.\n* You can't mix ``link`` and ``script`` tags together.\n* With ``link`` tags, the following attributes must have the same values on\n each tag: ``rel``, ``type``, ``media``\n* With ``script`` tags, the following attributes must have the same values on\n each tag: ``type``\n\nCollect\n-------\n\nBefore using the cache, you should run ``./manage.py collectstatic``. This\ncommand generates cached files.\n\nYou could run this command during project deployment. Please note that you MUST restart your\nproject server after running collectstatic.\n\n.. _handlers:\n\nHandlers\n========\n\nHandlers are classes that take responsibility to transform an input file. There are two types of handlers: compilers and processors.\n\nCompilers\n---------\n\nCompilers create final files for some preprocessors languages (Less, Sass, CoffeeScript, etc.).\nA compiler will be called during *collectstatic* and while serving static files if setting ``FACETS_ENABLED`` is set to ``False`` (usually during development).\n\nPlease note that there can be only one compiler by file extension.\n\nfacets.compilers.css.LessCompiler\n+++++++++++++++++++++++++++++++++\n\n:Extensions: ``less``\n:Options:\n\n | **new_name**: ``{base}.css``\n | **program**: ``/usr/bin/env lessc``\n | **command**: ``{program} - {outfile}``\n\nThis compiler compiles Less files using `Less `_ preprocessor.\n\nfacets.compilers.css.SasscCompiler\n++++++++++++++++++++++++++++++++++\n\n:Extensions: ``scss``, ``sass``\n:Options:\n\n | **new_name**: ``{base}.css``\n | **program**: ``/usr/bin/env sassc``\n | **command**: ``{program} -``\n\nThis compiler compiles Sass files using `SassC `_ preprocessor.\n\nfacets.compilers.css.LibSassCompiler\n++++++++++++++++++++++++++++++++++++\n\n:Extensions: ``scss``, ``sass``\n\nThis compiler compiles Sass files using `libsass-python `_ preprocessor.\n\nfacets.compilers.js.CoffeScriptCompiler\n+++++++++++++++++++++++++++++++++++++++\n\n:Extensions: ``coffee``\n:Options:\n\n | **new_name**: ``{base}.js``\n | **program**: ``/usr/bin/env coffee``\n | **command**: ``{program} -c --print {infile}``\n\nThis compiler compiles CoffeeScript files using `CoffeeScript `_ command.\n\nfacets.compilers.js.LiveScriptCompiler\n++++++++++++++++++++++++++++++++++++++\n\n:Extensions: ``ls``\n:Options:\n\n | **new_name**: ``{base}.js``\n | **program**: ``/usr/bin/env lsc``\n | **command**: ``{program} -c --print {infile}``\n\nThis compiler compiles LiveScript files using `LiveScript `_ command.\n\nfacets.compilers.js.DartCompiler\n++++++++++++++++++++++++++++++++\n\n:Extensions: ``dart``\n:Options:\n\n | **new_name**: ``{base}.js``\n | **program**: ``/usr/bin/env dart2js``\n | **command**: ``{program} -o {outfile} {infile}``\n\nThis compiler compiles Dart files using `Dart `_ dart2js.\n\n\nProcessors\n----------\n\nProcessors are called during *collectstatic*. Their job is usually to optimize files.\n\nfacets.processors.css.CssUrlsProcessor\n++++++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.css``\n:Options: **priority**: -1000 (please don't change it)\n\nThis processor transforms every URL found in CSS files to point to cached files version. For\nexample, this rule::\n\n h1 {\n background: url(../img/title.png);\n }\n\nwould become::\n\n h1 {\n background: url(\"/static/img/title-e221e1b36656.png\");\n }\n\n**Note**: It is recommended to always have this processor set.\n\nfacets.processors.css.CssMinProcessor\n+++++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.css``\n\nThis processor minifies CSS files using `cssmin `_.\n\nfacets.processors.js.JsMinProcessor\n+++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.js``\n\nThis processor minifies JavaScript files using `jsmin `_.\n\nfacets.processors.js.UglifyJsProcessor\n++++++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.js``\n:Options:\n\n | **program**: ``/usr/bin/env uglifyjs``\n | **command**: ``{program} {infile} --ascii -m -c -o {outfile}``\n\nThis processor minifies JavaScript files using `UglifyJs 2 `_.\n\nfacets.processors.js.GoogleClosureProcessor\n+++++++++++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.js``\n:Options:\n\n | **program**: ``/usr/bin/env java -jar /path/to/compiler.jar`` (you'll have to change that)\n | **command**: ``{program} {infile}``\n\nThis processor minifies JavaScript files using `Google Closure Compiler\n`_.\n\nfacets.processors.js.YuiJsProcessor\n+++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.js``\n:Options:\n\n | **program**: ``/usr/bin/env java -jar /path/to/yuicompressor-xxx.jar`` (you'll have to change that)\n | **command**: ``{program} {infile}``\n\nThis processor minifies JavaScript files using `Yahoo UI Compressor\n`_.\n\nfacets.processors.css.YuiCssProcessor\n+++++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.css``\n:Options:\n\n | **program**: ``/usr/bin/env java -jar /path/to/yuicompressor-xxx.jar`` (you'll have to change that)\n | **command**: ``{program} {infile}``\n\nThis processor minifies CSS files using `Yahoo UI Compressor\n`_.\n\nfacets.processors.images.OptiPngProcessor\n+++++++++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.png``\n:Options:\n\n | **program**: ``/usr/bin/env optipng``\n | **command**: ``{program} -o7 -nc {infile}``\n\nThis processor optimizes PNG files using `OptiPNG `_.\n\nfacets.processors.images.AdvPngProcessor\n++++++++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.png``\n:Options:\n\n | **program**: ``/usr/bin/env advpng``\n | **command**: ``{program} -z -4 {infile}``\n\nThis processor optimizes PNG files using `AdvanceCOMP advpng\n`_.\n\nfacets.processors.images.JpegtranProcessor\n++++++++++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.jpg, *.jpeg``\n:Options:\n\n | **program**: ``/usr/bin/env jpegtran``\n | **command**: ``{program} -copy none -optimize {infile}``\n\nThis processor optimizes JPEG files using `jpegtran `_.\n\nfacets.processors.images.JpegoptimProcessor\n+++++++++++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.jpg, *.jpeg``\n:Options:\n\n | **program**: ``/usr/bin/env jpegoptim``\n | **command**: ``{program} -q --strip-all {infile}``\n\nThis processor optimizes JPEG files using `jpegoptim `_.\n\nfacets.processors.images.GifsicleProcessor\n++++++++++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.gif``\n:Options:\n\n | **program**: ``/usr/bin/env gifsicle``\n | **command**: ``{program} --batch -O3 {infile}``\n\nThis processor optimizes GIF files using `Gifsicle `_.\n\nfacets.processors.gz.GZipProcessor\n++++++++++++++++++++++++++++++++++\n\n:Scope: ``*.htm, *.html, *js, *.css, *.txt, *.eot, *.ttf, *.woff, *.svg``\n:Options:\n\n | **priority**: 1000 (please don't change it)\n | **compresslevel**: A compression level (0-9). Default to 5.\n\nThis 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\n`_.\n\n\nLicense\n=======\n\nDjango facets is released under the BSD license. See the LICENSE\nfile for the complete license.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/olivier-m/django-facets", "keywords": "django assets css javascript compression", "license": "MIT License", "maintainer": null, "maintainer_email": null, "name": "facets", "package_url": "https://pypi.org/project/facets/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/facets/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/olivier-m/django-facets" }, "release_url": "https://pypi.org/project/facets/1.1.0/", "requires_dist": null, "requires_python": null, "summary": "Asset manager for Django.", "version": "1.1.0" }, "last_serial": 1197851, "releases": { "0.8.1": [ { "comment_text": "", "digests": { "md5": "ec3c5692d60d0ac88c115fd57ba537f1", "sha256": "1e36835378412ba228a554637d055cb3ffebd42cdb9653636bfd27828ac06f43" }, "downloads": -1, "filename": "facets-0.8.1.tar.gz", "has_sig": false, "md5_digest": "ec3c5692d60d0ac88c115fd57ba537f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10807, "upload_time": "2013-09-02T10:36:59", "url": "https://files.pythonhosted.org/packages/76/95/2abe093257e179b79d3b4401be24d83c300f8d8c20ede5f492cc87871db4/facets-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "a59880bd249df07c8c7df399e61b760f", "sha256": "959ccda19d7ac03a7dc949131c07edb650ab7a7f60885ce81306e2f2bd5909cb" }, "downloads": -1, "filename": "facets-0.8.2.tar.gz", "has_sig": false, "md5_digest": "a59880bd249df07c8c7df399e61b760f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10799, "upload_time": "2014-01-15T12:10:01", "url": "https://files.pythonhosted.org/packages/91/e6/99d6ec5ed3978e9442d0e59e05474488d89dac48478fe3d4fff7f9dd53bd/facets-0.8.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "2988823564187d8d7bbb356c9649155b", "sha256": "62bb62523ea61938dfb7f4ca2f4c3403eb4a66a6a089498b98a3e5a1fbbdc7de" }, "downloads": -1, "filename": "facets-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2988823564187d8d7bbb356c9649155b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15450, "upload_time": "2014-06-03T12:12:06", "url": "https://files.pythonhosted.org/packages/df/f7/e5e2dba72bed44fa1bf7d49c0c54588d8f2075d11c181c21490feef62a4d/facets-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "96d07e09d7a3c62d5b9dba6434a18cd9", "sha256": "b3c997d97d35fd8afbb333f5dd890d73ada86e6ad3c8f6e567e0daa37dc18ff2" }, "downloads": -1, "filename": "facets-1.1.0.tar.gz", "has_sig": false, "md5_digest": "96d07e09d7a3c62d5b9dba6434a18cd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15000, "upload_time": "2014-08-21T15:05:53", "url": "https://files.pythonhosted.org/packages/5b/66/deb8a69a06a5ed433d2bcf7542e135acc6ad789c258d936a2f81cab3ed7e/facets-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "96d07e09d7a3c62d5b9dba6434a18cd9", "sha256": "b3c997d97d35fd8afbb333f5dd890d73ada86e6ad3c8f6e567e0daa37dc18ff2" }, "downloads": -1, "filename": "facets-1.1.0.tar.gz", "has_sig": false, "md5_digest": "96d07e09d7a3c62d5b9dba6434a18cd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15000, "upload_time": "2014-08-21T15:05:53", "url": "https://files.pythonhosted.org/packages/5b/66/deb8a69a06a5ed433d2bcf7542e135acc6ad789c258d936a2f81cab3ed7e/facets-1.1.0.tar.gz" } ] }