Skip to main content

Integrates Webassets into Morepath.

Project description

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

Changelog

0.1.1 (2016-01-24)

  • Disables webassets url caching if debug mode is active. [href]

0.1.0 (2016-01-24)

  • Support webassets debug mode (before it would trigger an exception). [href]

0.0.3 (2015-08-07)

  • Cache the resource urls for increased speed. Note that with this change a reload of the application is necessary to get the updated javascript files.

    If this is an issue for you, speak up and we might add a debug flag. [href]

0.0.2 (2015-05-18)

  • Adds more checks to ensure we never serve anything outside the assets directory. [href]

0.0.1 (2015-04-29)

  • Initial Release [href]

Project details


Download files

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

Source Distribution

more.webassets-0.1.1.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

more.webassets-0.1.1-py2-none-any.whl (12.8 kB view details)

Uploaded Python 2

File details

Details for the file more.webassets-0.1.1.tar.gz.

File metadata

File hashes

Hashes for more.webassets-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a6c3f58558e9a443af8440cbe861191c1268ea115b47b043f1d68f29e2a897e2
MD5 76245bf78b8438cb57d20ef40fe3707e
BLAKE2b-256 5df892ef2e47ef8eb48b917c8c91cbb899231115c1c61438f7fc34a79b955dbc

See more details on using hashes here.

File details

Details for the file more.webassets-0.1.1-py2-none-any.whl.

File metadata

File hashes

Hashes for more.webassets-0.1.1-py2-none-any.whl
Algorithm Hash digest
SHA256 22808feeab0c3d4f6171cf8b8142c5dca7850fb10dea62b9b5958d8d8663eaf5
MD5 2e8f8c5c026d77ada2875aa8b1b59666
BLAKE2b-256 ab8f3749eec918f604eb2e42c83cf8beff2502c6578585feef923bf4ba0c3656

See more details on using hashes here.

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