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?