Skip to main content

An opinionated Webassets integration for 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.

If you’re using Webassets differently than me and you want your ways to work with more.webassets, do open an issue. I’m happy to turn this into something more powerful.

Usage

The following app serves a minified jquery from assets/js/jquery.js (relative to the code):

from more.webassets import WebassetsApp

class App(WebassetsApp):
    pass

@App.webasset_path()
def get_asset_path():
    return 'assets/js'

@App.webasset_output()
def get_output_path():
    return 'assets/bundles'

@App.webasset_filter('js')
def get_js_filter():
    return 'rjsmin'

@App.webasset('jquery')
def get_jquery_asset():
    yield 'jquery.js'

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

@App.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/jquery.bundle.js?1234"></script>
</html>

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

Documentation

Most documentation is currently found in source code. Have a look at the comments in the directives file.

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.3.0 (2016-04-08)

  • Breaking Changes - This release changes everything!

    Assets are no longer registerd through special methods on the application. Instead proper Morepath directives are used. This enables better re-use of assets, less verbosity and proper support of inheritance (you can now have applications which define assets and child-applications which use those assets).

    Have a look at the readme and at the comments in the directives file, to get an idea about what has changed.

    Don’t hesitate to open an issue if you need help migrating your existing setup.

0.2.0 (2016-04-06)

  • Adds compatibility with morepath 0.13. [href]

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.3.0.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

more.webassets-0.3.0-py2-none-any.whl (19.3 kB view details)

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for more.webassets-0.3.0.tar.gz
Algorithm Hash digest
SHA256 fb39c5d34e1af8d3d74e1251bd73d3a372b74c2448528129e159b96550d0525a
MD5 a616302f7630d62067e32c56a934a95e
BLAKE2b-256 836c50b9e8c0527c9cb6b868c733183d0c1f02c78f921311ff68a81e58f42fe1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for more.webassets-0.3.0-py2-none-any.whl
Algorithm Hash digest
SHA256 b8871dcfb75969c0961b2590e8f4dc917e0c9f3c3dca9e1e8182f5a11e94ad90
MD5 4735f11a06549b2ff388408c6d5e194f
BLAKE2b-256 cb3a3da8e106cf039e6926be723909ef81132b8e8d571e26668a5582581b2065

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