(warning: this item may contain traces of PHP)
A classic case of yak shaving: too much work on anyway, decided to take a break by turning our local community site into a wiki. Then I thought it'd be nice to embed a Google map showing a few local landmarks. Must be possible, right? Well it probably has been done already but it seemed pretty simple (and an interesting diversion) to write a MediaWiki extension to allow maps to be embedded.
So then you need to let users add points to the map - so the map needs button that spits out a chunk of markup that can be used to add a point. So I wrote some Javascript to do that.
Of course one extension is never enough (just say no kids). I was writing a load of code that'd be useful in other extensions anyway. What about a framework for extensions? Yup, the dreaded 'f' word. Oh well.
Anyway, to cut a long story short: Wiki Widgets.
One of the things I wanted to do (you know, once it became a project rather than a displacement activity) was to make widgets that, from the user's point of view, are discoverable. It's all very well installing an extension but if users can't find out about it they won't use it. Wiki Widgets has a pretty simple take on discoverability: make a blank page and add the markup:
<widget />
to it. When you save or preview the page you'll get a list of all the installed Wiki Widgets. For each Widget there's a link that takes you directly to a (wiki) page that explains how to use it. From there you should be able to select the widget you want. Wherever possible I plan to make the individual Widgets support additional discoverability. For example if you add an empty Google Gadget Widget like this:
<widget type="googlegadget" />
you should get a user interface that makes it easy to add the gadget you want and set up its parameters.
Anyway, back to the day job now.