As you can see I've recently built a few templates demonstrating different ways of building widgets. I see templates as both a means to document how to build certain behaviour into widgets and a means to provide a quick start way of building widgets.

However, these two objectives are not complimentary. The more detailed a template becomes the less likely it is to be reused as it will have features that are not needed and not have features that are needed. In addition, the more detailed it becomes the less useful it is as a form of documentation.

So I'd like to share my ideas for a template strategy.

What I propose to do is build a number of templates where each one demonstrates a single key feature of W3C Widgets or Open Social Gadgets. Note I say a *single* feature, I really mean it. If we focus on demonstrating a single feature very well then each template becomes useful as a documentation for the feature being demonstrated.

Our initial focus would therefore be on provided complete and well commented demonstrations of each major feature of widgets and gadgets. These will be designed with the intention of reuse in users own widgets.

I'm thinking that our templates would include things like:

- basic single page widget
- basic single page gadget
- properties handling
- Wave feature
- JQueryMobile
- Friends list
- Activity streams
- etc.

If our commenting in these templates is reasonably complete we can use these templates as part of our documentation in the live website and in bundled docs.

At some point in the future I would like us to enhance the template generation scripts to enable us to join together a number of the single feature templates into a single coherent widget/gadget template. That is, when running the seed-template target we choose the features we want to include and a custom template is built for us. This will require some form of intelligent way of plugging them together in the interface, but we can deal with that at a later date.

Does this sound like a sensible strategy. That is attack each of these tasks in order:

- build templates as documentation for features of widgets and gadgets
- integrate these templates into our website
- provide a clever "jumpstart" system for widgets/gadgets

Ross

Reply via email to