This article is really just a reflection of the e-mail I sent out a few days ago about extensions.

Extensions provide a way to hook into and augment MojoMojo's functionality without modifying core code. These are the kinds of extensions I envision:

  • Additional page actions. This one would be tricky to do right, and it has a lot of potential to do more harm than good. Just figured I'd write it down so we can come back to it later if we want.
  • Extending existing page actions. This could use the same mechanism as adding a new page action, but it has more disadvantages than simply adding actions. Also, how would be manage multiple extensions extending the same action?
  • I think it'd be cool if things like attachments, comments, the gallery, etc, became extensions.
  • Additional syntax. The MojoMojo formatter facility provides this already. Maybe we should give users the option to select which formatters they want at installation or something?
  • Special Pages.
  • The ability to embed other Catalyst applications into MojoMojo, and delegate certain namespaces to them.

I think a good extension facility could probably use a dependency system, so that some extensions could provide generic functionality for others.

A wiki maintainer should be able to turn extensions off?
-- Rob Hoelz