DokuWiki is a
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 License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
and written in the
PHP
PHP is a general-purpose scripting language geared toward 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 a free and open-source wiki software. It is used on Wikipedia and almost all other Wikimedia websites, including Wiktionary, Wikimedia Commons and Wikidata; these sites define a large part of the requirement set for MediaWi ...
.
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
German(s) may refer to:
* Germany (of or related to)
** Germania (historical use)
* Germans, citizens of Germany, people of German ancestry, or native speakers of the German language
** For citizens of Germany, see also German nationality law
**Ge ...
means
documentation.
Because DokuWiki does not require a database, it can be installed on local PCs, flash drives, and folders synced with
file hosting services (
Dropbox
Dropbox is a file hosting service operated by the American company Dropbox, Inc., headquartered in San Francisco, California, U.S. that offers cloud storage, file synchronization, personal cloud, and client software. Dropbox was founded in 2007 ...
) or file synchronization programs (
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
Freecode, formerly Freshmeat, is a website owned by BIZX, Inc., hosting mainly open-source software for programmers and developers. Among other things, the site also hosted user reviews and discussions. While a majority of the software covered is ...
).
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 search 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 the process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar. The term ''parsing'' comes from Lat ...
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 and
Gentoo Linux 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: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data in ...
was made, making use of
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continu ...
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 Terry Pratchett, set on the Discworld, a flat ...
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
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
: 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 a free and open-source wiki software. It is used on Wikipedia and almost all other Wikimedia websites, including Wiktionary, Wikimedia Commons and Wikidata; these sites define a large part of the requirement set for MediaWi ...
. Parallel editing of one page by multiple users is prevented by a
locking mechanism.
;
Access control: 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). An ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed on gi ...
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 information services over an Internet Protocol (IP) network. Directory servi ...
Servers and
Active Directory
Active Directory (AD) is a directory service developed by Microsoft for Windows domain networks. It is included in most Windows Server operating systems as a set of Process (computing), processes and Windows service, services. Initially, Active D ...
. 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
Template may refer to:
Tools
* Die (manufacturing), used to cut or shape material
* Mold, in a molding process
* Stencil, a pattern or overlay used in graphic arts (drawing, painting, etc.) and sewing to replicate letters, shapes or designs
Co ...
: 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) or internationalisation and localisation (British English), often abbreviated i18n and L10n, are means of adapting computer software to different languages, regional peculiarities and ...
: DokuWiki supports Unicode (
UTF-8
UTF-8 is a variable-length character encoding used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode'' (or ''Universal Coded Character Set'') ''Transformation Format 8-bit''.
UTF-8 is capable of ...
) and properly handles right-to-left languages, so languages such as
Chinese
Chinese can refer to:
* Something related to China
* Chinese people, people of Chinese nationality, citizenship, and/or ethnicity
**''Zhonghua minzu'', the supra-ethnic concept of the Chinese nation
** List of ethnic groups in China, people of ...
,
Thai, and
Hebrew
Hebrew (; ; ) is a Northwest Semitic language of the Afroasiatic language family. Historically, it is one of the spoken languages of the Israelites and their longest-surviving descendants, the Jews and Samaritans. It was largely preserved ...
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 an online hypertext publication Collaborative editing, collaboratively edited and managed by its own audience, using a web browser. A typical wiki contains multiple pages for the subjects or scope of the project, and could be ...
: DokuWiki uses a simple markup language similar to that of MediaWiki. Like MediaWiki it makes use of
free link
A wiki ( ) is an online hypertext publication collaboratively edited and managed by its own audience, using a web browser. A typical wiki contains multiple pages for the subjects or scope of the project, and could be either open to the pub ...
s, but
CamelCase
Camel case (sometimes stylized as camelCase or CamelCase, also known as camel caps or more formally as medial capitals) is the practice of writing phrases without spaces or punctuation. The format indicates the separation of words with a single ...
links can optionally be enabled.
WYSIWYG
In computing, WYSIWYG ( ), an acronym for What You See Is What You Get, is a system in which editing software allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed d ...
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 and List of cities in Germany by population, largest city of Germany by both area and population. Its 3.7 million inhabitants make it the European Union's List of cities in the European Union by population within ci ...
,
Kaiserslautern,
Wuppertal
Wuppertal (; "''Wupper Dale''") is, with a population of approximately 355,000, the seventh-largest city in North Rhine-Westphalia as well as the 17th-largest city of Germany. It was founded in 1929 by the merger of the cities and tow ...
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
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general u ...
version 2.
Notable uses
DokuWiki is used by various public and non-public wiki setups. Below is a list of more notable uses
*
PHP
PHP is a general-purpose scripting language geared toward 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
*
XFCE Desktop Environment
*
OpenWRT
OpenWrt (from ''open wireless router'') is an open-source project for embedded operating systems based on Linux, primarily used on embedded devices to route network traffic. The main components are Linux, util-linux, musl, and BusyBox. All ...
Router Software
*
Slackware
Slackware is a Linux distribution created by Patrick Volkerding in 1993. Originally based on Softlanding Linux System, Slackware has been the basis for many other Linux distributions, most notably the first versions of SUSE Linux distributio ...
Linux Distribution
*
SouthEastern
The points of the compass are a set of horizontal, radially arrayed compass directions (or azimuths) used in navigation and cartography. A compass rose is primarily composed of four cardinal directions—north, east, south, and west—each se ...
Railways
Notes
See also
*
List of wiki software
Standard wiki programs, by programming language
JavaScript-based
* Lively Wiki is based on Lively Kernel and combines features of wikis and development environments. Users can create and edit application behavior and other content.
* Tid ...
*
Comparison of wiki software
The following tables compare general and technical information for a number of wiki software packages.
General information
Systems listed on a light purple background are no longer in active development.
Target audience
Features 1
Featur ...
References
Further reading
*
*
External links
*
{{Wiki software
Free wiki software
Technical communication tools