Skip to main content

Integrates Webassets into Morepath.

Project description

Integrates Webassets into Morepath.

Webassets | Morepath

This package is somewhat similar to more.static, which integrates bowerstatic into Morepath. It is currently not really used anywhere, so you should probably stick to more.static.

Now that you are sufficently discouraged from using more.webassets, these are the reasons it might be for you:

  • You don’t have to learn about javascript package managers (i.e. Bower).

  • You can have your assets compiled on the fly.

  • Your stylesheets are rendered at the top, your scripts at the bottom. No configuration necessary.

If you are alreay familiar with webassets: This package might not be as powerful as you’re used to. It currently has little flexibility. It’s also the first time the author uses webassets, so things might be off.

Usage

To get a basic application that serves webassets under /assets/*:

from morepath import reify
from more.webassets import WebassetsApp
from webassets import Bundle

class MyApp(WebassetsApp):

    @reify
    def webassets_bundles(self):
        return {
            'jquery': Bundle(
                'jquery.js',
                filters='jsmin',
                output='bundles/jquery.bundle.js'
            )
        }

@MyApp.path('')
class Root(object):
    pass

@MyApp.html(model=Root):
def index(self, request):
    request.include('jquery')

    return '<html><head></head><body>hello</body></html>'

This will result in the following html (formatted for readability):

<html>
    <head></head>
    <body>hello</body>
    <script type="text/javascript" src="./assets/bundles/jquery.bundle.js?1234"></script>
</html>

For it to work you need an ‘assets’ folder with a ‘jquery.js’ file in the same folder as your python file where ‘MyApp’ is defined.

Run in Debug Mode

To activate the webassets debug mode (which disables bundling), simply add return the following webassets environment config:

from morepath import reify
from more.webassets import WebassetsApp

class MyApp(WebassetsApp):

    @reify
    def webassets_environment_config(self):
        return {
            'debug': True
        }

Run the Tests

Install tox and run it:

pip install tox
tox

Limit the tests to a specific python version:

tox -e py27

Conventions

More Webassets follows PEP8 as close as possible. To test for it run:

tox -e pep8

More Webassets uses Semantic Versioning

Build Status

Build Status

Coverage

Project Coverage

Latests PyPI Release

Latest PyPI Release

License

more.webassets is released under the revised BSD license

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

more.webassets-0.1.0-py2-none-any.whl (12.7 kB view hashes)

Uploaded Python 2

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page