MojoMojo
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. One of MojoMojo’s distinguishing features is that it uses tree hierarchies to store pages, a corresponding hierarchical data model to store page content and a nested set model for fast page retrieval.
History
The project was started by Marcus Ramberg and David Naugton in 2005 and has at the moment 44 contributors, 47 watchers on GitHub and 15 code forks. The initial release of MojoMojo occurred on August 29, 2007, after which it was mentioned at the French open source conference Mediterranean Day of Free Software, 2007. In early January 2009, the lead author, Marcus Ramberg, gave a presentation of MojoMojo to the Oslo Perl Mongers. At YAPC::North America 2009, MojoMojo was presented to an audience of 38. In July 2009, MojoMojo was the only 3rd party Catalyst application having a section dedicated in the book The Definitive Guide to Catalyst.
Architecture
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. Currently, MojoMojo is the largest individual project on CPAN in terms of dependencies, being preceded only by meta-modules (modules that simply aggregate other modules for convenience and do not offer specific functionality).
Key Features
MojoMojo has a combination of features which make it unique among wiki software:
- hierarchical page structure, coupled with folksonomical page tagging
- live AJAX preview while editing pages
- Multiple wiki syntax choices (Markdown, Textile, POD) and pluggable syntax
- extensive permissions system
Hierarchical page structure
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:
Other features
Below are more of MojoMojo’s features :
- Built-in full text search, with external search option
- Easy 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
- ^ MojoMojo contributors
- ^ GitHub – MojoMojo watchers
- ^ MojoMojo Changes on CPAN
- ^ Aperghis-Tramoni, Sébastien (2007). “Perl, langage d’aujourd’hui et de demain” (in French). Journée Méditerranéenne du Logiciel Libre 2007. pp. 21. http:maddingue.free.fr/conferences/jm2l-2007/perl-now-and-then/. Retrieved 2009-07-14.
- ^ Ramberg, Marcus (2009-01). “Introduction MojoMojo”. Oslo Perl Mongers. http:www.slideshare.net/marcusramberg/mojomojo-talk-presentation. Retrieved 2009-07-14.
- ^ Dascalescu, Dan (2009-06-23). “MojoMojo – the Elegant Wiki, Catalyst-powered”. YAPC 10 – Pittsburgh, PA. http:yapc10.org/yn2009/talk/2002. Retrieved 2009-07-14.
- ^ Diment, Kieren; Trout, Matt S (2009). “Catalyst Cookbook”. The Definitive Guide to Catalyst. Apress. pp. 278-281. ISBN 978-1430223658. http:www.amazon.com/Definitive-Guide-Catalyst-Maintainable-Applications/dp/1430223650/.
- ^ use.perl.org – Announcing the “CPANTS Heavy 100″ index
- ^ CPAN Top 100 – Heavy 100
- ^ Wikimatrix.org – MojoMojo features page
- ^ MojoMojo on the c2.com wiki
External Links
- MojoMojo Home Page
- MojoMojo on CPAN
- MojoMojo on github
- Replacing Mediawiki with MojoMojo for a private installation
