hypothesis/h — pull request #1813 by aron (2014-12-17 15:18:25+00:00)
Title: Refactor asset management

This pull request aims to refactor our asset bundles to allow us to produce both non-minified and minified production assets depending on the use case. This was required for the Firefox addon where the moderators prefer assets to be non-minified so that they are easier to review.

The main change here is to move away from having our assets declared in a yaml format to using python to build the bundles (asset_bundles.py). I think for a small project the yaml makes sense, but our current file is extremely verbose and full of duplication making it hard to understand.

This change tries to ensure dependency definitions are just filename strings. A `create_bundle` helper (asset_helpers.py) then works out whether the file is CoffeeScript or SCSS based on the file extension and compiles it accordingly. This has the added benefit of giving us a 1-1 mapping of coffee to js files in development.

Bundles are then registered with the application and given production file names in a second step at the bottom of asset_bundles.py. This again checks to see if a new `hassets.minify` setting is true and then applies the minification filters and a `.min` file extension.

The result gives us a cleaner file that clearly defines the dependencies for each file and removes all the boilerplate around minification and compilation.

Other small changes include...

* moving the production output to `static/build` and development debug output to `static/debug`. This keeps our actual source files separate from generated output and simplifies our clean scripts.
* I removed a lot of outdated and unused code in scripts.py that was copying old deleted assets.
* Firefox assets are no longer minified.
* Included non minified and updated versions of jQuery and Katex.
* Moved bootstrap.js into scripts/