MojoMojo is a Perl open-sourced web application that combines the features of a wiki, content management system and blog. MojoMojo builds on top of the Catalyst web framework and uses DBIx::Class as the ORM. It is an example of an MVC application, and the most complex Catalyst-based open-source application to date[citation needed]. One of MojoMojo's distinguishing features is that it uses tree hierarchies to store pages, a corresponding hierarchical database model to store page content, and a nested set model for fast page retrieval.
The project was started by Marcus Ramberg and David Naugton in 2005 and has at the moment 55 contributors[1], 82 watchers on GitHub[2] and 29 code forks. The initial release of MojoMojo occurred on August 29, 2007[3], after which it was mentioned at the French open source conference Mediterranean Day of Free Software, 2007.[4] In early January 2009, the lead author, Marcus Ramberg, gave a presentation of MojoMojo to the Oslo Perl Mongers.[5] At YAPC::North America 2009, MojoMojo was presented to an audience of 38[6]. MojoMojo was the only 3rd-party Catalyst application to have its own section in the July 2009 book The Definitive Guide to Catalyst.[7]
MojoMojo has a modular architecture and makes extensive use of CPAN modules; as such, it was listed as #2 among projects with heavy CPAN dependency chains[8]. Currently, MojoMojo is the largest standalone project on CPAN in terms of dependencies[9], being preceded only by meta-modules (modules that simply aggregate other modules for convenience and do not offer specific functionality).
MojoMojo has a combination of features which make it unique among wiki software:[citation needed]
One of MojoMojo's distinguishing features is that it uses a tree hierarchy to store pages. By contrast, most other wikis use a flat page structure, which necessitates disambiguation pages. The difference can be visualized in the table below:
Tree hierarchy | Flat structure |
---|---|
/geography/Europe/France/paris | Paris |
/geography/usa/Texas/paris | Paris, Texas |
/mythology/Greek/paris | Paris (mythology) |
/botany/paris | Paris (genus) |
Below are more of MojoMojo's features[10][11]: