MoinMoin
Encyclopedia
MoinMoin is a wiki engine
Wiki software
Wiki software is collaborative software that runs a wiki, i.e., a website that allows users to create and collaboratively edit web pages via a web browser. A wiki system is usually a web application that runs on one or more web servers...

 implemented in Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

, initially based on the PikiPiki wiki engine. The MoinMoin code is licensed under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 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
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...

, Apache
Apache Software Foundation
The Apache Software Foundation is a non-profit corporation to support Apache software projects, including the Apache HTTP Server. The ASF was formed from the Apache Group and incorporated in Delaware, U.S., in June 1999.The Apache Software Foundation is a decentralized community of developers...

, Debian
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...

, FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

, and others.

Technical details

MoinMoin's storage mechanism is based on flat files
Flat file database
A flat file database describes any of various means to encode a database model as a single file .- Overview :...

 and folders, rather than a database
Database
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...

. 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
Abstraction layer
An abstraction layer is a way of hiding the implementation details of a particular set of functionality...

 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
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

 code) with a SAX
Simple API for XML
SAX is an event-based sequential access parser API developed by the XML-DEV mailing list for XML documents. SAX provides a mechanism for reading data from an XML document that is an alternative to that provided by the Document Object Model...

-like interface between the two. The idea is that if you want to be able to output DocBook
DocBook
DocBook is a semantic markup language for technical documentation. It was originally intended for writing technical documents related to computer hardware and software but it can be used for any other sort of documentation....

 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
CamelCase
CamelCase , also known as medial capitals, is the practice of writing compound words or phrases in which the elements are joined without spaces, with each element's initial letter capitalized within the compound and the first letter either upper or lower case—as in "LaBelle", "BackColor",...

 linking as well as free links (non-CamelCase linking). The CamelCase
CamelCase
CamelCase , also known as medial capitals, is the practice of writing compound words or phrases in which the elements are joined without spaces, with each element's initial letter capitalized within the compound and the first letter either upper or lower case—as in "LaBelle", "BackColor",...

 is activated by default and MoinMoin does not allow disabling CamelCase links except on a one-off basis. The workaround to do this is to use a different parser but this option does not work with the WYSIWYG editor.

MoinMoin also has extensive support for Access Control Lists (ACL
Access control list
An access control list , with respect to a computer file system, is a list of permissions attached to an object. An ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed on given objects. Each entry in a typical ACL specifies a subject...

) that greatly increase its usability in a content management system
Content management system
A content management system is a system providing a collection of procedures used to manage work flow in a collaborative environment. These procedures can be manual or computer-based...

 (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
Xapian
Xapian is an open source probabilistic information retrieval library, released under the GNU General Public License . It is a full text search engine library for programmers....

 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
XML-RPC
XML-RPC is a remote procedure call protocol which uses XML to encode its calls and HTTP as a transport mechanism. "XML-RPC" also refers generically to the use of XML for remote procedure call, independently of the specific protocol...

 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.

See also

  • Comparison of wiki software
    Comparison of wiki software
    The following tables compare general and technical information for a number of wiki software packages.-General information:-Target audience:-Features 1:-Features 2:-Installation:-See also:* List of wiki software* List of wikis* Wiki farm...

  • List of content management systems

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK