DokuWiki is an open source
wiki application
Wiki software (also known as a wiki engine or a wiki application) is collaborative software that runs a wiki, which allows the users to create and collaboratively edit pages or entries via a web browser. A wiki system is usually a web application ...
licensed under
GPLv2
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or copyleft, ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was th ...
and written in the
PHP
PHP is a general-purpose scripting language geared towards web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by the PHP Group. ...
programming language. It works on plain text files and thus does not need a database. Its syntax is similar to the one used by
MediaWiki
MediaWiki is free and open-source wiki software originally developed by Magnus Manske for use on Wikipedia on January 25, 2002, and further improved by Lee Daniel Crocker,mailarchive:wikipedia-l/2001-August/000382.html, Magnus Manske's announc ...
.
It is often recommended as a more lightweight, easier to customize alternative to MediaWiki. The 'Doku' in DokuWiki is short for ''Dokumentation'' which in
German means
documentation
Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance, and use. As a form of knowledge managem ...
.
Because DokuWiki does not require a database, it can be installed on local PCs, flash drives, and folders synced with
file hosting services or file synchronization programs such as
Dropbox
Dropbox is a file hosting service operated by the American company Dropbox, Inc., headquartered in San Francisco, California, that offers cloud storage, file synchronization, personal cloud, and Client (computing), client software. Dropbox w ...
or
Syncthing.
History
DokuWiki was created by Andreas Gohr in June 2004. In July the first official release was published on Freshmeat (now known as
Freecode).
Originally DokuWiki used a simple list of
regular expression
A regular expression (shortened as regex or regexp), sometimes referred to as rational expression, is a sequence of characters that specifies a match pattern in text. Usually such patterns are used by string-searching algorithms for "find" ...
s to transform wiki syntax into HTML. A big step forward in the development was the re-design of the
parser
Parsing, syntax analysis, or syntactic analysis is a process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar by breaking it into parts. The term '' ...
and the
renderer mechanisms based on contributions by Harry Fuecks in January 2005. The new design made use of the then-new object-oriented features of PHP4. The new parser and the introduction of a cache mechanism led to significant performance improvements, thus making DokuWiki usable for larger projects.
The new parser also prepared DokuWiki for the introduction of a generic plugin interface which simplified the development and maintenance of syntax-based
plugins. Over the years additional plugin mechanisms followed which allowed 3rd-party developers to extend nearly all aspects of the wiki software.
The introduction of DokuWiki into the
Debian
Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
and
Gentoo Linux
Gentoo Linux (pronounced ) is a Linux distribution built using the Portage package management system. Unlike a binary software distribution, the source code is compiled locally according to the user's preferences and is often optimized for ...
distributions in April and July 2005 respectively significantly increased the visibility of the software.
The DokuWiki logo is the result of a design contest. The winning logo, designed by Esther Brunner, represents editing pages (by pencils of different colors, i.e. different people) and linking them.
For many years, DokuWiki's source code was managed through the
Darcs distributed version control system. In 2010 a switch to
Git
Git () is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively.
Design goals of Git include speed, data integrity, and suppor ...
was made, making use of
GitHub
GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
for hosting.
Today, DokuWiki is one of the most popular wiki engines available and has achieved significant usage with stable interest over time.
Release history
Since 2011, releases are named after
Discworld
''Discworld'' is a comic fantasy"Humorous Fantasy" in David Pringle, ed., ''The Ultimate Encyclopedia of Fantasy'' (pp.31-33). London, Carlton,2006. book series written by the English author Sir Terry Pratchett, set on the Discworld, a fl ...
characters.
Main features
; Installation and Requirements
: DokuWiki requires only a webserver and PHP; no database is needed. It can run on cheap web hosting servers and is usually installed by simply unpacking. Additional plugins may have additional requirements.
;
Revision control
Version control (also known as revision control, source control, and source code management) is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code ...
: DokuWiki stores all versions of each wiki page, allowing the user to compare the current version with any older version. The difference engine is the same as the one used in
MediaWiki
MediaWiki is free and open-source wiki software originally developed by Magnus Manske for use on Wikipedia on January 25, 2002, and further improved by Lee Daniel Crocker,mailarchive:wikipedia-l/2001-August/000382.html, Magnus Manske's announc ...
. Parallel editing of one page by multiple users is prevented by a
locking mechanism.
;
Access control
In physical security and information security, access control (AC) is the action of deciding whether a subject should be granted or denied access to an object (for example, a place or a resource). The act of ''accessing'' may mean consuming ...
: Access control can be handled by a user manager, which allows users and groups of users to be defined, and an
access control list
In computer security, an access-control list (ACL) is a list of permissions associated with a system resource (object or facility). An ACL specifies which users or system processes are granted access to resources, as well as what operations are ...
in which an administrator user can define permissions on page and namespace level, giving DokuWiki more fine-grained control than Mediawiki. Besides the built-in user management, DokuWiki also provides mechanisms for authentication against databases,
LDAP
The Lightweight Directory Access Protocol (LDAP ) is an open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed Directory service, directory information services over an Internet Protocol (IP) networ ...
Servers and
Active Directory
Active Directory (AD) is a directory service developed by Microsoft for Windows domain networks. Windows Server operating systems include it as a set of processes and services. Originally, only centralized domain management used Active Direct ...
. Other authentication mechanisms are available as plugins.
;
Plugins: DokuWiki has a generic plugin interface which simplifies the process of writing and maintaining plugins. There are ~1000 plugins available. These can be easily integrated and managed by an administrator user with the help of the plugin manager.
;
Templates: The appearance of the wiki can be defined by a template. There are various templates provided by the development community.
;
Internationalization and localization
In computing, internationalization and localization (American English, American) or internationalisation and localisation (British English, British), often abbreviated i18n and l10n respectively, are means of adapting to different languages, regi ...
: DokuWiki supports Unicode (
UTF-8
UTF-8 is a character encoding standard used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode Transformation Format 8-bit''. Almost every webpage is transmitted as UTF-8.
UTF-8 supports all 1,112,0 ...
) and properly handles right-to-left languages, so languages such as
Chinese,
Thai, and
Hebrew
Hebrew (; ''ʿÎbrit'') is a Northwest Semitic languages, Northwest Semitic language within the Afroasiatic languages, Afroasiatic language family. A regional dialect of the Canaanite languages, it was natively spoken by the Israelites and ...
can be displayed. DokuWiki can be configured in about 70 languages. Multilingual wikis can be configured through plugins. Users can contribute translations of the DokuWiki software and of plugins through a web interface.
;
Caching: DokuWiki uses a two-level cache mechanism which stores the parsed wiki page in an intermediate serialized format which is then rendered to the desired output format, such as HTML5. This rendered format is cached again. The two levels of caching expire on different conditions. The caching helps to reduce server load and speeds up access to the information.
;
Full text search
In text retrieval, full-text search refers to techniques for searching a single computer-stored document or a collection in a full-text database. Full-text search is distinguished from searches based on metadata or on parts of the original texts ...
: DokuWiki has an integrated indexed search with which a user can search for keywords and phrases on the wiki.
;
Wiki markup
A wiki ( ) is a form of hypertext publication on the internet which is Collaborative editing, collaboratively edited and managed by its audience directly through a web browser. A typical wiki contains multiple pages that can either be edit ...
: DokuWiki uses a simple markup language similar to that of MediaWiki. Like MediaWiki it makes use of
free links, but
CamelCase links can optionally be enabled.
WYSIWYG
In computing, WYSIWYG ( ), an acronym for what you see is what you get, refers to software that allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed document, web ...
editors are available as plugins.
DokuWiki based software projects
Some independent software projects based on DokuWiki have been created. These projects usually bundle the DokuWiki software, select plugins, a customized design and sometimes pre-built content for specialized use cases.
* Th
EinsatzleiterWikiis a German project, bundling fire fighting knowledge in a package that can be installed in fire departments and then be customized to the needs of the specific department. The wiki is used by the professional fire services of
Berlin
Berlin ( ; ) is the Capital of Germany, capital and largest city of Germany, by both area and List of cities in Germany by population, population. With 3.7 million inhabitants, it has the List of cities in the European Union by population withi ...
,
Kaiserslautern
Kaiserslautern (; ) is a town in southwest Germany, located in the state of Rhineland-Palatinate at the edge of the Palatinate Forest. The historic centre dates to the 9th century. It is from Paris, from Frankfurt am Main, 666 kilometers (414 m ...
,
Wuppertal
Wuppertal (; ) is a city in North Rhine-Westphalia, in western Germany, with a population of 355,000. Wuppertal is the seventh-largest city in North Rhine-Westphalia and List of cities in Germany by population, 17th-largest in Germany. It ...
and many voluntary fire services in Germany.
open, SchulPortfoliois a German project aimed at the internal management of schools. It has been created with input from the ministry of education of the German state of
Baden-Würtemberg.
ICKEWikiis a redistribution of DokuWiki with a focus on the use in enterprises. It was originally developed in a research project focusing on adding structured data to wikis and making it more usable in industrial production companies.
As required by DokuWiki's license these projects are all licensed under the
GPL version 2.
Notes
See also
*
List of wiki software
*
Comparison of wiki software
References
Further reading
*
*
External links
*
{{Wiki software
Free wiki software
Technical communication tools