chameleon.genshi template bindings for the repoze.bfg web framework
Project description
repoze.bfg.chameleon_genshi
Bindings for Chameleon Genshi-style templating support under repoze.bfg. See the Chameleon website for chameleon.genshi templating language details.
The API for use of repoze.bfg.chameleon_genshi under BFG is identical to the one used for chameleon.zpt` templates as documented in the “Templating” chapter of the BFG docs. Only the templating language itself (Genshi vs. ZPT) and import locations (r.b.chameleon_genshi vs. r.b.chameleon_zpt) differ.
An example:
from repoze.bfg.chameleon_genshi import render_template_to_response render_template_to_response('relative/path/to/template')
relative/path/to/template is relative to the package directory in which the above code is defined.
See also the render_template and get_template APIs exposed by the repoze.bfg.chameleon_genshi package, which serve the same purpose as their brethren in repoze.bfg.chameleon_zpt.
Genshi templates can also be used as a BFG “renderer” when you use repoze.bfg.chameleon_genshi. The easiest way to allow for this is to use the following ZCML in your application’s configure.zcml:
<include package="repoze.bfg.chameleon_genshi"/>
Once your application has been set up to process this ZCML, your application can point at chameleon.genshi templates that have the .genshi file extension from within @bfg_view directives or ZCML view directives in your application. For example:
@bfg_view(renderer='templates/foo.genshi') def someview(request): ....
Or:
<view renderer="templates/foo.genshi" view=".views.someview"/>
If you’d rather not use a .genshi extension for your chameleon.genshi templates, or if you’d rather not use ZCML to do registration, you can explicitly register a renderer using the add_renderer method of a “configurator”. To do so, in the run.py of your BFG application, in the function called at startup, which uses a repoze.bfg.configuration.Configurator as config:
from repoze.bfg.chameleon_genshi import renderer_factory config.add_renderer('.cgenshi', renderer_factory)
Once you’ve registered .cgenshi as a renderer in a view configuration, you can do the following:
@bfg_view(renderer='templates/foo.cgenshi') def someview(request): ....
Misc
By default, Chameleon’s Genshi XIncludes support cannot resolve repoze.bfg “resource specifications” (e.g. my_package:foo/bar.genshi). In order to activate an XIncludes class that understands repoze.bfg resource specifications, call the repoze.bfg.chameleon_genshi.XIncludes.activate method before using any templates (e.g., at process startup time):
from repoze.bfg.chameleon_genshi import XIncludes XIncludes.activate()
This will replace the XIncludes helper class for all consumers of Chameleon in the process.
repoze.bfg.chameleon_genshi
0.3 (2010-07-09)
By default, Chameleon’s Genshi XIncludes support cannot resolve repoze.bfg “resource specifications” (e.g. my_package:foo/bar.genshi). In order to activate an XIncludes class that understands repoze.bfg resource specifications, call the repoze.bfg.chameleon_genshi.XIncludes.activate method before using any templates (e.g., at process startup time):
from repoze.bfg.chameleon_genshi import XIncludes XIncludes.activate()
This will replace the XIncludes helper class for all consumers of Chameleon in the process.
Depend on Chameleon >= 1.2.8 (replaceable XIncludes class).
0.2 (2010-06-15)
Bring up to speed with BFG 1.3.X.
0.1 (2009-05-02)
Initial release (break code out of BFG core).
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.
Source Distribution
Hashes for repoze.bfg.chameleon_genshi-0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0eaf94f317e805b36af7aa65ff90756669fd09979ed2206e03930a464231c38 |
|
MD5 | 1138a822caacaa88c2481ab38780112b |
|
BLAKE2b-256 | ba72d6fba082896a351654864221481956db83f85c54927ad908657994bb495f |