Can anyone recommend any particular "design patterns" for creating modular templates that make it easy for third parties to create "plugins"?

To be more specific -- I'm the maintainer of SVN::Web. Output is fully templated, using TT2. The application itself is modular, and broken down in to actions carried out by plugins.

This works well -- adding new actions is a case of installing the plugin and updating the application config file.

The only problem is that if a plugin needs to change the output for some reason then the only mechanism I've got for that at the moment is to tell the person installing the plugin

   ... When you've finished installing, you need to edit the following
   templates by hand, and include some HTML.  That HTML should look
   something like this ...

For example, if you take a look at http://jc.ngo.org.uk/svnweb/jc/ you'll see a "View timeline" link. That's not there in the default SVN::Web install. You need to install SVN::Web::Timeline (which I'll get around to releasing once I've resolved this issue to my satisfaction), and then edit the template.

Or consider SVN::Web::Search, which I'll get around to releasing one of these days. The installation section of the documentation

http://jc.ngo.org.uk/svnweb/jc/view/nik/CPAN/SVN-Web-Search/trunk/lib/SVN/Web/Search.pm

has a big glob of HTML for the user to cut/paste. I'm not sure that's really acceptable.

I can solve this in an SVN::Web specific way, but I'm casting around for an approach that might be a bit more generic.

Any thoughts?

N

_______________________________________________
templates mailing list
[email protected]
http://lists.template-toolkit.org/mailman/listinfo/templates

Reply via email to