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
editThe 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
editMojoMojo 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
editMojoMojo has a combination of features which make it unique among wiki software:[citation needed]
- 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
editOne 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
editBelow 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- ^ MojoMojo contributors
- ^ GitHub - MojoMojo watchers
- ^ MojoMojo Changes on CPAN
- ^ 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.
- ^ Ramberg, Marcus (2009-01). Introduction MojoMojo. Oslo Perl Mongers. Retrieved 2009-07-14.
{{cite conference}}
: Check date values in:|date=
(help) - ^ Dascalescu, Dan (2009-06-23). MojoMojo - the Elegant Wiki, Catalyst-powered. YAPC 10 - Pittsburgh, PA. Retrieved 2009-07-14.
- ^ 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) - ^ 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