MoinMoin Desktop Edition Print
Monday, 23 August 2010 03:17

moinmoinMoinMoin is a wiki engine implemented in Python, initially based on the PikiPiki wiki engine. The MoinMoin code is licensed under the GNU General Public License  v2, or (at the user's option) any later version (except some 3rd party modules that are licensed under other Free Software licenses compatible with the GPL).
A number of organizations use MoinMoin to run public wikis, including notable free software projects Ubuntu, Apache, Debian, FreeBSD, and others.

Technical details

MoinMoin's storage mechanism is based on flat files and folders, rather than a database. This makes it easy to manipulate the content in a text editor on the server if necessary, including managing revisions if the wiki gets attacked by spammers. A storage abstraction layer is currently being worked on, which will allow the server administrator to select between flat file-storage or a relational database.

MoinMoin supports plugins and can be extended via Macros and Actions. It also uses the idea of separate parsers (e.g. for parsing the wiki syntax) and formatters (e.g. for outputting HTML code) with a SAX-like interface between the two. The idea is that if you want to be able to output DocBook instead of HTML, you only need to write a docbook-formatter that implements the formatter interface, and all parsers that use the interface will automatically be supported.
MoinMoin supports CamelCase linking as well as free links (non-CamelCase linking). The CamelCase is activated by default and MoinMoin does not allow disabling CamelCase links. The workaround to do this is to use a different parser[4] but this option does not work with the WYSIWYG editor.
MoinMoin also has extensive support for Access Control Lists (ACL) that greatly increase its usability in a content management system (CMS). It also has GUI editing capabilities.
MoinMoin is able to either use a built-in search engine (rather slow, but no dependencies) or a Xapian based indexed search engine (faster, and can also search old revisions and attached files).
MoinMoin also allows synchronization of contents from instance to instance via XML-RPC and therefore allows distributed offline editing.
The original MoinMoin "DesktopEdition" is significantly easier to use because it uses a built-in web server to display pages, requiring only Python to be installed on the host machine. Since version 1.6.0, the "DesktopEdition" has been integrated into the standard release. Also in this release a different markup syntax was introduced, which had not been changed much since the early releases.