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.

History

edit

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]

Architecture

edit

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).

Key Features

edit

MojoMojo has a combination of features which make it unique among wiki software:[citation needed]

Hierarchical page structure

edit

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)

Other features

edit

Below are more of MojoMojo's features[10][11]:

  • Built-in full text search, with external search option
  • RSS feeds
  • Support for attachments, with photo gallery for image attachments
  • Diffs, revision control and edit conflict resolution via 3-way merge
  • User registration control and CAPTCHA anti-spam measures
  • Localization (currently translated into Catalan, French, German, Japanese, Norwegian, Polish, Russian) and full Unicode support

References

edit
  1. ^ MojoMojo contributors
  2. ^ GitHub - MojoMojo watchers
  3. ^ MojoMojo Changes on CPAN
  4. ^ Aperghis-Tramoni, Sébastien (2007). Perl, langage d'aujourd'hui et de demain. Journée Méditerranéenne du Logiciel Libre 2007 (in French). p. 21. Retrieved 2009-07-14.
  5. ^ Ramberg, Marcus (2009-01). Introduction MojoMojo. Oslo Perl Mongers. Retrieved 2009-07-14. {{cite conference}}: Check date values in: |date= (help)
  6. ^ Dascalescu, Dan (2009-06-23). MojoMojo - the Elegant Wiki, Catalyst-powered. YAPC 10 - Pittsburgh, PA. Retrieved 2009-07-14.
  7. ^ Diment, Kieren (2009). "Catalyst Cookbook". The Definitive Guide to Catalyst. Apress. pp. 278–281. ISBN 978-1430223658. {{cite book}}: Unknown parameter |coauthors= ignored (|author= suggested) (help)
  8. ^ use.perl.org - Announcing the "CPANTS Heavy 100" index
  9. ^ CPAN Top 100 - Heavy 100
  10. ^ Wikimatrix.org - MojoMojo features page
  11. ^ MojoMojo on the c2.com wiki
edit