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