Interface for using Nevow Stan templates in Trac Plugins
If you have any issues, create a new ticket.
Download the zipped source from here.
TracIStan exposes the IStanRequestHandler and IStanRenderer interfaces so that the Nevow Stan templating system can be used in Trac plugins.
To use it:
- implement the IStanRequestHandler and/or the IStanRenderer interfaces
- Set template data in req.standata. Attention should be paid to possible existing values in the req.standata dictionary. Thus, req.standata.update() should be used if filling req.standata from an existing dict.
The IStanRequestHandler is intentionally similar to the IRequestHandler interface. The only difference is that data that should be available in the Stan template must be stored in the req.standata dictionary.
For a more detailed example, see the aftracistan example in the example directory of the source.
To see what the example looks like, simply install both TraciStanPlugin in the aftracistan plugin and then visit the /aftracistan url. The original template looks better because:
- There are no trac header and footer
- I'm having some CSS issues where the CSS from the template and Trac's CSS are fighting each other. If anyone wants to improve the CSS that would be wonderful :)
The template used in the aftracistan example was done by Andreas Viklund. He makes nice templates. Props to him.
Add setup.cfg so that the resulting egg is tagged with the revision number and marked as dev
- Added support for passing different structures to include()
- Added support for using a TracIStan plugin as the default_handler. To do so, set the default_handler to TracIStan and then create a [tracistan] section and set the default_handler option to the name of the object that implements IStanRequestHandler interface. For example:
[trac] default_handler = TracIStan [tracistan] default_handler = MyStanPlugin
Need to split development between 0.10 and 0.9