ixmatus / pyramid_webassets

Pyramid extension for working with the webassets library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Configuration

You are required to set base_dir and base_url, the rest are optional, but we currently support:

  • base_dir: The directory to output and search for assets
  • base_url: The url static assets will be located
  • debug: If webassets should be in debug mode (i.e no compression)
  • updater: Different update configurations (i.e always, timestamp)
  • cache: If we should use webassets cache
  • jst_compiler: A custom jst compiler, by defalut it uses underscore
webassets.base_dir=%(here)s/app/static
webassets.base_url=/static
webassets.debug=True
webassets.updater=timestamp
webassets.cache=False
webassets.jst_compiler=Handlebars.compile

Then you can just use config.add_webasset to add bundles to your environment

    from webassets import Bundle
    
    jst = Bundle('templates/*.html',
            filters='jst',
            output='js/jst.js', debug=False)

    config.add_webasset('jst', jst)

Mako

You can use the global webassets tag:

    % for url in webassets(request, 'css/bootstrap.css', 'css/bootstrap-responsive.css', output='css/generated.css', filters='cssmin'):
        <link href="${url}" rel="stylesheet">
    % endfor

or you can grab the environment from the request.

From The Request

If you are not using Jinja2, you can still access the environment from the request.

    jst_urls = request.webassets_env['jst'].urls()

Jinja2

If you are using Jinja2, you can just do the following configuration (this assumes use of pyramid_jinja2):

    config.add_jinja2_extension('webassets.ext.jinja2.AssetsExtension')
    assets_env = config.get_webassets_env()
    jinja2_env.assets_environment = assets_env

and then:

    {% assets "jst" %}
    <script type="text/javascript" src="{{ ASSET_URL }}"></script>
    {% endassets %}

Extras

There are a few utility methods you can use:

get_webassets_env_from_settings(settings, prefix='static_assets'): Pass it a dictionary of your settings and an optional keyword argument of the prefix in your configuration and it will return you a webassets environment.

get_webassets_env(request or config): This will pull the environment out of the registry, you can use either a configurator object or a request.

About

Pyramid extension for working with the webassets library


Languages

Language:Python 100.0%