A Just-In-Time compilation and packaging of JavaScript templates for Pyramid.
Project description
The pyramid_jitt package is a wrapper around the jstc JavaScript template compiler that allows client-side templates to be defined in disparate server-side files and be assembled, pre-compiled, packaged, cached, and access-controlled for inline, deferred, and restricted delivery.
Currently, jQuery (v1.9.1+) is required for non-inline template delivery.
Project
Installation
$ pip install pyramid_jitt
Usage
Enable the package either in your INI file via:
pyramid.includes =
pyramid_beaker
pyramid_jitt
(it is highly recommended to use pyramid_beaker for caching of rendered templates) or in code in your package’s application initialization via:
def main(global_config, **settings):
# ...
config.include('pyramid_beaker')
config.include('pyramid_jitt')
# ...
Configure pyramid_jitt’s behaviour by setting the various options in your INI file (see the Manual for details), for example:
# use pyramid_beaker for caching!
cache.type = memory
cache.regions = pyramid_jitt
cache.pyramid_jitt.expire = 3600
# override all template attributes to disable deferred loading
jitt.overrides.inline = true
# define where the "webapp" templates (Handlebars, in this case) are
# located and disable pre-compilation (only for "webapp" templates)
jitt.@webapp.assets = myapp:static/scripts/**.hbs
jitt.@webapp.overrides.precompile = false
Then, add the delivery payload to your HTML file, here a Mako example:
<html>
<body>
${request.registry.jitt.render('webapp')|n}
<script type="text/javascript">
// NOTE: this must come **after** the `jitt.render` call!
$(function() {
$('#Templates').data('jitt').ready(function() {
// start your client-side app that uses your templates here!...
});
});
</script>
</body>
</html>
More Documentation
More documentation can be found in the Manual.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.