Jump to content

User:Andreas Gohr/sandbox/DokuWiki: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
proofreading
Line 2: Line 2:


{{Short description|Wiki software}}
{{Short description|Wiki software}}





{{Infobox software
{{Infobox software
Line 27: Line 24:
}}
}}


'''DokuWiki''' is a [[wiki application]] licensed under [[GNU General Public License#Version 2|GPLv2]] and written in the [[PHP]] 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]].<ref name=":0">{{cite web|title=DokuWiki|url=https://www.dokuwiki.org/dokuwiki|publisher=Dokuwiki.org|access-date=25 November 2012}}</ref> It is often recommended as more lightweight, easier to customize alternative to MediaWiki.<ref>{{Cite web|date=2008-06-25|title=DokuWiki: An elegant and lightweight wiki engine|url=https://www.linux.com/news/dokuwiki-elegant-and-lightweight-wiki-engine/|access-date=2021-08-17|website=Linux.com|language=en-US}}</ref>
'''DokuWiki''' is a [[wiki application]] licensed under [[GNU General Public License#Version 2|GPLv2]] and written in the [[PHP]] 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]].<ref name=":0">{{cite web|title=DokuWiki|url=https://www.dokuwiki.org/dokuwiki|publisher=Dokuwiki.org|access-date=25 November 2012}}</ref> It is often recommended as a more lightweight, easier to customize alternative to MediaWiki.<ref>{{Cite web|date=2008-06-25|title=DokuWiki: An elegant and lightweight wiki engine|url=https://www.linux.com/news/dokuwiki-elegant-and-lightweight-wiki-engine/|access-date=2021-08-17|website=Linux.com|language=en-US}}</ref>


==History==
==History==
DokuWiki was created by Andreas Gohr<ref>[https://doc.ubuntu-fr.org/dokuwiki "Dokuwiki - C'est mieux quand c'est simple" Ubuntu French - Org.]</ref> in June 2004. In July the first official release was published on Freshmeat (now known as [[Freecode]]).<ref>[http://freshmeat.net/projects/dokuwiki/ freshmeat.net: Project details for DokuWiki]</ref>
DokuWiki was created by Andreas Gohr<ref>[https://doc.ubuntu-fr.org/dokuwiki "Dokuwiki - C'est mieux quand c'est simple" Ubuntu French - Org.]</ref> in June 2004. In July the first official release was published on Freshmeat (now known as [[Freecode]]).<ref>[http://freshmeat.net/projects/dokuwiki/ freshmeat.net: Project details for DokuWiki]</ref>


Originally DokuWiki used a simple list of [[Regular expression|regular expressions]] to transform wiki syntax into HTML. A big step forward in the development was the re-design of the [[parser]] and the [[Web browser engine|renderer]] mechanisms based on contributions by Harry Fuecks in January 2005<ref>{{Cite web|title=OOP and Performance - SitePoint|url=https://www.sitepoint.com/oop-and-performance/|access-date=2021-08-17|website=www.sitepoint.com|language=en}}</ref>. The new design made use of the then new object oriented features of PHP4. The new parser and the introduction of a cache mechanism brought big performance improvements that made DokuWiki usable for bigger projects.
Originally DokuWiki used a simple list of [[Regular expression|regular expressions]] to transform wiki syntax into HTML. A big step forward in the development was the re-design of the [[parser]] and the [[Web browser engine|renderer]] mechanisms based on contributions by Harry Fuecks in January 2005<ref>{{Cite web|title=OOP and Performance - SitePoint|url=https://www.sitepoint.com/oop-and-performance/|access-date=2021-08-17|website=www.sitepoint.com|language=en}}</ref>. 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 an introduction of a generic plugin interface which simplified the development and maintenance of syntax based [[plug-in (computing)|plugins]]. Over the years additional plugin mechanisms followed that allowed 3rd party developers to extend nearly all aspects of the wiki software.<ref>{{Cite web|title=devel:plugins [DokuWiki]|url=https://www.dokuwiki.org/devel:plugins|access-date=2021-08-17|website=www.dokuwiki.org}}</ref>
The new parser also prepared DokuWiki for the introduction of a generic plugin interface which simplified the development and maintenance of syntax-based [[plug-in (computing)|plugins]]. Over the years additional plugin mechanisms followed which allowed 3rd-party developers to extend nearly all aspects of the wiki software.<ref>{{Cite web|title=devel:plugins [DokuWiki]|url=https://www.dokuwiki.org/devel:plugins|access-date=2021-08-17|website=www.dokuwiki.org}}</ref>


A push of the level of awareness was the introduction of DokuWiki in the Linux distributions [[Debian]] in April and [[Gentoo Linux]] in July 2005.<ref>{{cite web|title=Debian Publishing History|url=https://launchpad.net/debian/lenny/+source/dokuwiki/0.0.20080505-3|work=Debian GNU/Linux|publisher=Debian Foundation|access-date=25 November 2012}}</ref><ref>{{cite web|title=Contents of dokuwiki changelog|url=http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-apps/dokuwiki/ChangeLog?view=markup|work=Gentoo-x86|publisher=Gentoo.org|access-date=25 November 2012|archive-date=13 April 2019|archive-url=https://web.archive.org/web/20190413010855/https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-apps/dokuwiki/ChangeLog?view=markup|url-status=dead}}</ref>
The introduction of DokuWiki into the [[Debian]]<ref>{{cite web|title=Debian Publishing History|url=https://launchpad.net/debian/lenny/+source/dokuwiki/0.0.20080505-3|work=Debian GNU/Linux|publisher=Debian Foundation|access-date=25 November 2012}}</ref> and [[Gentoo Linux]]<ref>{{cite web|title=Contents of dokuwiki changelog|url=http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-apps/dokuwiki/ChangeLog?view=markup|work=Gentoo-x86|publisher=Gentoo.org|access-date=25 November 2012|archive-date=13 April 2019|archive-url=https://web.archive.org/web/20190413010855/https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/www-apps/dokuwiki/ChangeLog?view=markup|url-status=dead}}</ref> distributions in April and July 2005 respectively significantly increased the visibility of the software.


The DokuWiki logo was found in a contest with a design by Esther Brunner being picked as the winner. The logo represents editing pages (by pens of different colors, ie. different people) and linking them.<ref>{{Cite web|title=FS#111 DokuWiki Logo|url=https://bugs.dokuwiki.org/111.html|access-date=2021-08-17|website=bugs.dokuwiki.org}}</ref><ref>{{Cite web|title=logo [DokuWiki]|url=https://www.dokuwiki.org/logo|access-date=2021-08-17|website=www.dokuwiki.org}}</ref>
The DokuWiki logo is the result of a design contest. The winning logo, designed by Esther Brunner, represents editing pages (by pens of different colors, i.e. different people) and linking them.<ref>{{Cite web|title=FS#111 DokuWiki Logo|url=https://bugs.dokuwiki.org/111.html|access-date=2021-08-17|website=bugs.dokuwiki.org}}</ref><ref>{{Cite web|title=logo [DokuWiki]|url=https://www.dokuwiki.org/logo|access-date=2021-08-17|website=www.dokuwiki.org}}</ref>


For many years DokuWiki's source code was managed through the [[Darcs]] distributed version control system. In 2010 a switch to [[Git]] was made, making use of [[GitHub|Github]] for hosting.<ref>{{Cite web|title=[dokuwiki] repository switched to git - dokuwiki - FreeLists|url=https://www.freelists.org/post/dokuwiki/repository-switched-to-git|access-date=2021-08-17|website=www.freelists.org|language=en}}</ref>
For many years, DokuWiki's source code was managed through the [[Darcs]] distributed version control system. In 2010 a switch to [[Git]] was made, making use of [[GitHub|Github]] for hosting.<ref>{{Cite web|title=[dokuwiki] repository switched to git - dokuwiki - FreeLists|url=https://www.freelists.org/post/dokuwiki/repository-switched-to-git|access-date=2021-08-17|website=www.freelists.org|language=en}}</ref>


Today, DokuWiki is one of the most popular wiki engines available and has achieved significant usage with stable interest over time.<ref>{{Cite web|title=Wiki Usage Distribution on the Entire Internet|url=https://trends.builtwith.com/cms/wiki/traffic/Entire-Internet|access-date=2021-08-17|website=trends.builtwith.com}}</ref><ref>{{Cite web|title=Technologies - What CMS?|url=https://whatcms.org/Technologies/Wiki|access-date=2021-08-17|website=whatcms.org}}</ref><ref>[https://trends.google.com/trends/explore?hl=en-GB&tz=-120&q=DokuWiki,Twiki,MediaWiki,PmWiki,MoinMoin&sni=3 Google trend history comparison]</ref><ref>{{Cite web |url=http://www.wikimatrix.org/stats.php |title=WikiMatrix View and Comparison Statistics |access-date=2008-08-01 |archive-url=https://web.archive.org/web/20080626102013/http://www.wikimatrix.org/stats.php |archive-date=2008-06-26 |url-status=dead }}</ref>
Today, DokuWiki is one of the most popular wiki engines available and has achieved significant usage with stable interest over time.<ref>{{Cite web|title=Wiki Usage Distribution on the Entire Internet|url=https://trends.builtwith.com/cms/wiki/traffic/Entire-Internet|access-date=2021-08-17|website=trends.builtwith.com}}</ref><ref>{{Cite web|title=Technologies - What CMS?|url=https://whatcms.org/Technologies/Wiki|access-date=2021-08-17|website=whatcms.org}}</ref><ref>[https://trends.google.com/trends/explore?hl=en-GB&tz=-120&q=DokuWiki,Twiki,MediaWiki,PmWiki,MoinMoin&sni=3 Google trend history comparison]</ref><ref>{{Cite web |url=http://www.wikimatrix.org/stats.php |title=WikiMatrix View and Comparison Statistics |access-date=2008-08-01 |archive-url=https://web.archive.org/web/20080626102013/http://www.wikimatrix.org/stats.php |archive-date=2008-06-26 |url-status=dead }}</ref>
Line 63: Line 60:
| 2011-05-25c || Rincewind || IPv6 support and metadata index.
| 2011-05-25c || Rincewind || IPv6 support and metadata index.
|-
|-
| 2012-01-25c || Angua || New media manager (result of the [[Google Summer of Code]]-project); version handling of media files, [[drag & drop]] support in media manager to speed up adding new files (only works in Firefox and Chrome).
| 2012-01-25c || Angua || New media manager (result of the [[Google Summer of Code]]-project). Version handling of media files. [[drag & drop]] support in media manager to speed up adding new files (only works in Firefox and Chrome).
|-
|-
| 2012-10-13 || Adora Belle || New default DokuWiki template with optional sidebar.
| 2012-10-13 || Adora Belle || New default DokuWiki template with optional sidebar.
Line 75: Line 72:
| 2014-09-29d || Hrun || Single strings of the localization customizable. New history function to see how a wiki looked at a certain time. Security fix for AD/LDAP auth plugin.
| 2014-09-29d || Hrun || Single strings of the localization customizable. New history function to see how a wiki looked at a certain time. Security fix for AD/LDAP auth plugin.
|-
|-
| 2015-08-10a || Detritus || New Style Manager to adjust template variables like colors. The Extension Manager can now remove old files when updating extensions.<ref name="dokuwiki_changelog">{{cite web |url=https://www.dokuwiki.org/changes |title=Changelog |publisher=DokuWiki }}</ref>
| 2015-08-10a || Detritus || New Style Manager to adjust template variables such as colors. The Extension Manager can now remove old files when updating extensions.<ref name="dokuwiki_changelog">{{cite web |url=https://www.dokuwiki.org/changes |title=Changelog |publisher=DokuWiki }}</ref>
|-
|-
| 2016-06-26a || Elenor of Tsort || New authPDO plugin; authmysql and authpgsql are deprecated. Internet Explorer 8 (and older) no longer supported, workarounds removed. Support for PHP's builtin web server.<ref name="dokuwiki_changelog" />
| 2016-06-26a || Elenor of Tsort || New authPDO plugin; authmysql and authpgsql are deprecated. Internet Explorer 8 (and older) no longer supported; workarounds removed. Support for PHP's builtin web server.<ref name="dokuwiki_changelog" />
|-
|-
| 2017-02-19c || Frusterick Manners || New Admin screen, jQuery 3, PHP 7.1 support and PHP 7.0 bug fixes.<ref name="dokuwiki_changelog" />
| 2017-02-19c || Frusterick Manners || New Admin screen. jQuery 3, PHP 7.1 support and PHP 7.0 bug fixes.<ref name="dokuwiki_changelog" />
|-
|-
| 2018-04-22 || Greebo || New form on search page with more search tools, new command line plugins, new menu system. PHP 7.2 support and improvements for PHP 7.3 support.<ref name="dokuwiki_changelog" />
| 2018-04-22 || Greebo || New form on search page with more search tools. New command line plugins. New menu system. PHP 7.2 support and improvements for PHP 7.3 support.<ref name="dokuwiki_changelog" />
|-
|-
| 2020-07-29 || Hogfather ||PHP 7.4 compatibility and some preparations for the upcoming PHP8.
| 2020-07-29 || Hogfather ||PHP 7.4 compatibility and some preparations for the upcoming PHP8.
Line 90: Line 87:
==Main features==
==Main features==


;Installation and Requirements
; Installation and Requirements
: DokuWiki requires only a webserver and PHP, no database is needed. It runs on cheap web hosting and is usually installed by simply unpacking. Additional plugins may have additional reuirements.
: 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.
;[[Version control|Revision control]]
; [[Version control|Revision control]]
: 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]]. Parallel editing of one page by multiple users is prevented by a [[file lock|locking mechanism]].
: 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]]. Parallel editing of one page by multiple users is prevented by a [[file lock|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]] where an admin user can define permissions on page and namespace level, giving it much better access control than Mediawiki. Besides the built-in user management, DokuWiki also provides mechanisms for authenticating against databases, [[Lightweight Directory Access Protocol|LDAP]] Servers and [[Active Directory]]. Other authentication mechanisms are available as plugins.
; [[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 which an administrator user can define permissions on page and namespace level, giving DokuWiki much better access control than Mediawiki. Besides the built-in user management, DokuWiki also provides mechanisms for authentication against databases, [[Lightweight Directory Access Protocol|LDAP]] Servers and [[Active Directory]]. Other authentication mechanisms are available as plugins.
; [[Plug-in (computing)|Plugins]]: DokuWiki has a generic plugin interface which simplifies the process of writing and maintaining plugins. There are ~1000 plugins available.<ref>[http://www.dokuwiki.org/features plugins]</ref> These can be easily integrated and managed by an admin user with the help of the plugin manager.
; [[Plug-in (computing)|Plugins]]: DokuWiki has a generic plugin interface which simplifies the process of writing and maintaining plugins. There are ~1000 plugins available.<ref>[http://www.dokuwiki.org/features plugins]</ref> These can be easily integrated and managed by an administrator user with the help of the plugin manager.
; [[Web template|Templates]]: The appearance of the wiki can be defined by a template. There are various templates<ref>[http://www.dokuwiki.org/template templates]</ref> provided by the development community.
; [[Web template|Templates]]: The appearance of the wiki can be defined by a template. There are various templates<ref>[http://www.dokuwiki.org/template templates]</ref> provided by the development community.
; [[Internationalization and localization]]: DokuWiki supports Unicode ([[UTF-8]]) and properly handles right-to-left languages, so languages such as [[Chinese language|Chinese]], [[Thai language|Thai]], and [[Hebrew language|Hebrew]] can be displayed. DokuWiki can be configured in about 70 languages. Multilingual wikis can be configured through plugins. Users can contribute translations to the DokuWiki software as well as plugins through a web interface.<ref>{{Cite web|title=DokuWiki Localization|url=https://translate.dokuwiki.org/|access-date=2021-08-17|website=translate.dokuwiki.org}}</ref>
; [[Internationalization and localization]]: DokuWiki supports Unicode ([[UTF-8]]) and properly handles right-to-left languages, so languages such as [[Chinese language|Chinese]], [[Thai language|Thai]], and [[Hebrew language|Hebrew]] 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.<ref>{{Cite web|title=DokuWiki Localization|url=https://translate.dokuwiki.org/|access-date=2021-08-17|website=translate.dokuwiki.org}}</ref>
; [[Web cache|Caching]]: DokuWiki uses a two-level cache mechanism which stores the parsed wiki page in a 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.<ref>{{Cite web|title=devel:caching [DokuWiki]|url=https://www.dokuwiki.org/devel:caching|access-date=2021-08-17|website=www.dokuwiki.org}}</ref>
; [[Web cache|Caching]]: DokuWiki uses a two-level cache mechanism which stores the parsed wiki page in a 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.<ref>{{Cite web|title=devel:caching [DokuWiki]|url=https://www.dokuwiki.org/devel:caching|access-date=2021-08-17|website=www.dokuwiki.org}}</ref>
; [[Full text search]]: DokuWiki has an integrated indexed search with which a user can search for keywords and phrases on the wiki.
; [[Full text search]]: DokuWiki has an integrated indexed search with which a user can search for keywords and phrases on the wiki.
; [[Wiki Markup]]: DokuWiki uses a simple markup language similar to MediaWiki, but it is not exactly the same. Like MediaWiki it makes use of [[Free link|free links]], but [[Camel case|CamelCase]] links can optionally be enabled. [[WYSIWYG]] editors are available as plugins.
; [[Wiki Markup]]: DokuWiki uses a simple markup language similar to that of MediaWiki. Like MediaWiki it makes use of [[Free link|free links]], but [[Camel case|CamelCase]] links can optionally be enabled. [[WYSIWYG]] editors are available as plugins.


== DokuWiki based software projects ==
== 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.
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.


* The [https://einsatzleiterwiki.de/ EinsatzleiterWiki] is a German project, bundling fire fighting knowledge in a package that can be installed in fire departments and then be customized to their needs. The wiki is used by the professional fire services of [[Berlin]], [[Kaiserslautern]], [[Wuppertal]] and many voluntary fire services in Germany.<ref>{{Cite web|title=Referenzen [Einsatzleiterwiki]|url=https://einsatzleiterwiki.de/doku.php?id=referenzen|access-date=2021-08-17|website=einsatzleiterwiki.de}}</ref><ref>{{Cite journal|last=Ziehr|first=Christoph|last2=Skorupa|first2=Frank|last3=Schmitt|first3=Konrad|last4=Kopp|first4=Mike|title=Berliner Feuerwehr: Wiki-Systeme für den Einsatz- und rückwärtigen Dienst|url=https://www.kohlhammer-feuerwehr.de/de/magazin/view/44|journal=BRANDSchutz/Deutsche Feuerwehr-Zeitung|volume=5/2017}}</ref>
* The [https://einsatzleiterwiki.de/ EinsatzleiterWiki] is 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]], [[Kaiserslautern]], [[Wuppertal]] and many voluntary fire services in Germany.<ref>{{Cite web|title=Referenzen [Einsatzleiterwiki]|url=https://einsatzleiterwiki.de/doku.php?id=referenzen|access-date=2021-08-17|website=einsatzleiterwiki.de}}</ref><ref>{{Cite journal|last=Ziehr|first=Christoph|last2=Skorupa|first2=Frank|last3=Schmitt|first3=Konrad|last4=Kopp|first4=Mike|title=Berliner Feuerwehr: Wiki-Systeme für den Einsatz- und rückwärtigen Dienst|url=https://www.kohlhammer-feuerwehr.de/de/magazin/view/44|journal=BRANDSchutz/Deutsche Feuerwehr-Zeitung|volume=5/2017}}</ref>
* [https://openschulportfolio.de/ open|SchulPortfolio] is 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ürttemberg|Baden-Würtemberg]].<ref>{{Cite web|date=2019-03-19|title=DokuWiki als Schulportfolio|url=https://lehrerfortbildung-bw.de/st_digital/medienwerkstatt/internet/cms/wiki/portfolio/index.html|access-date=2021-08-17|website=lehrerfortbildung-bw.de|language=de}}</ref>
* [https://openschulportfolio.de/ open|SchulPortfolio] is 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ürttemberg|Baden-Würtemberg]].<ref>{{Cite web|date=2019-03-19|title=DokuWiki als Schulportfolio|url=https://lehrerfortbildung-bw.de/st_digital/medienwerkstatt/internet/cms/wiki/portfolio/index.html|access-date=2021-08-17|website=lehrerfortbildung-bw.de|language=de}}</ref>
* [https://ickewiki.de/ ICKEWiki] is 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.<ref>{{Citation|last=Fuchs-Kittowski|first=Frank|title=WiKo – Eine integrierte Wissens- und Kooperations-Plattform|date=2004|url=http://dx.doi.org/10.1524/9783486598773.231|work=Mensch & Computer 2004|pages=231–240|publisher=Oldenbourg Verlag|isbn=978-3-486-57624-5|access-date=2021-08-17|last2=Faust|first2=Daniel}}</ref>
* [https://ickewiki.de/ ICKEWiki] is 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.<ref>{{Citation|last=Fuchs-Kittowski|first=Frank|title=WiKo – Eine integrierte Wissens- und Kooperations-Plattform|date=2004|url=http://dx.doi.org/10.1524/9783486598773.231|work=Mensch & Computer 2004|pages=231–240|publisher=Oldenbourg Verlag|isbn=978-3-486-57624-5|access-date=2021-08-17|last2=Faust|first2=Daniel}}</ref>
Line 112: Line 109:


== Notable uses ==
== Notable uses ==



DokuWiki is used by various public and non-public wiki setups. Below is a list of more notable uses
DokuWiki is used by various public and non-public wiki setups. Below is a list of more notable uses

Revision as of 18:32, 17 August 2021

DokuWiki
Developer(s)Andreas Gohr, et al.
Initial releaseJuly 4, 2004; 20 years ago (2004-07-04)
Stable release
2024-02-06[1] Edit this on Wikidata
Written inPHP
Operating systemCross-platform
Size~2.5 MB (compressed)
Available in74[2] languages
TypeWiki software
LicenseGPLv2
Websitewww.dokuwiki.org

DokuWiki is a wiki application licensed under GPLv2 and written in the PHP 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.[3] It is often recommended as a more lightweight, easier to customize alternative to MediaWiki.[4]

History

DokuWiki was created by Andreas Gohr[5] in June 2004. In July the first official release was published on Freshmeat (now known as Freecode).[6]

Originally DokuWiki used a simple list of regular expressions to transform wiki syntax into HTML. A big step forward in the development was the re-design of the parser and the renderer mechanisms based on contributions by Harry Fuecks in January 2005[7]. 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.[8]

The introduction of DokuWiki into the Debian[9] and Gentoo Linux[10] 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 pens of different colors, i.e. different people) and linking them.[11][12]

For many years, DokuWiki's source code was managed through the Darcs distributed version control system. In 2010 a switch to Git was made, making use of Github for hosting.[13]

Today, DokuWiki is one of the most popular wiki engines available and has achieved significant usage with stable interest over time.[14][15][16][17]

Release history

Version Codename Significant changes
2004-07-04 none Initial DokuWiki release.[18]
2009-02-14b none
2009-12-25c Lemming
2010-11-07a Anteater
2011-05-25c Rincewind IPv6 support and metadata index.
2012-01-25c Angua New media manager (result of the Google Summer of Code-project). Version handling of media files. drag & drop support in media manager to speed up adding new files (only works in Firefox and Chrome).
2012-10-13 Adora Belle New default DokuWiki template with optional sidebar.
2013-05-10a Weatherwax
2013-12-08 Binky
2014-05-05e Ponder Stibbons
2014-09-29d Hrun Single strings of the localization customizable. New history function to see how a wiki looked at a certain time. Security fix for AD/LDAP auth plugin.
2015-08-10a Detritus New Style Manager to adjust template variables such as colors. The Extension Manager can now remove old files when updating extensions.[19]
2016-06-26a Elenor of Tsort New authPDO plugin; authmysql and authpgsql are deprecated. Internet Explorer 8 (and older) no longer supported; workarounds removed. Support for PHP's builtin web server.[19]
2017-02-19c Frusterick Manners New Admin screen. jQuery 3, PHP 7.1 support and PHP 7.0 bug fixes.[19]
2018-04-22 Greebo New form on search page with more search tools. New command line plugins. New menu system. PHP 7.2 support and improvements for PHP 7.3 support.[19]
2020-07-29 Hogfather PHP 7.4 compatibility and some preparations for the upcoming PHP8.
202?-??-?? Igor

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
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. 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 which an administrator user can define permissions on page and namespace level, giving DokuWiki much better access control than Mediawiki. Besides the built-in user management, DokuWiki also provides mechanisms for authentication against databases, LDAP Servers and Active Directory. 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.[20] 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[21] provided by the development community.
Internationalization and localization
DokuWiki supports Unicode (UTF-8) and properly handles right-to-left languages, so languages such as Chinese, Thai, and Hebrew 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.[22]
Caching
DokuWiki uses a two-level cache mechanism which stores the parsed wiki page in a 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.[23]
Full text search
DokuWiki has an integrated indexed search with which a user can search for keywords and phrases on the wiki.
Wiki Markup
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 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.

  • The EinsatzleiterWiki is 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, Kaiserslautern, Wuppertal and many voluntary fire services in Germany.[24][25]
  • open|SchulPortfolio is 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.[26]
  • ICKEWiki is 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.[27]

As required by DokuWiki's license these projects are all licensed under the GPL version 2.

Notable uses

DokuWiki is used by various public and non-public wiki setups. Below is a list of more notable uses

See also

References

  1. ^ "Release 2024-02-06 "Kaos"".
  2. ^ "Download DokuWiki!". DokuWiki. Retrieved 19 May 2021.
  3. ^ "DokuWiki". Dokuwiki.org. Retrieved 25 November 2012.
  4. ^ "DokuWiki: An elegant and lightweight wiki engine". Linux.com. 2008-06-25. Retrieved 2021-08-17.
  5. ^ "Dokuwiki - C'est mieux quand c'est simple" Ubuntu French - Org.
  6. ^ freshmeat.net: Project details for DokuWiki
  7. ^ "OOP and Performance - SitePoint". www.sitepoint.com. Retrieved 2021-08-17.
  8. ^ "devel:plugins [DokuWiki]". www.dokuwiki.org. Retrieved 2021-08-17.
  9. ^ "Debian Publishing History". Debian GNU/Linux. Debian Foundation. Retrieved 25 November 2012.
  10. ^ "Contents of dokuwiki changelog". Gentoo-x86. Gentoo.org. Archived from the original on 13 April 2019. Retrieved 25 November 2012.
  11. ^ "FS#111 DokuWiki Logo". bugs.dokuwiki.org. Retrieved 2021-08-17.
  12. ^ "logo [DokuWiki]". www.dokuwiki.org. Retrieved 2021-08-17.
  13. ^ "[dokuwiki] repository switched to git - dokuwiki - FreeLists". www.freelists.org. Retrieved 2021-08-17.
  14. ^ "Wiki Usage Distribution on the Entire Internet". trends.builtwith.com. Retrieved 2021-08-17.
  15. ^ "Technologies - What CMS?". whatcms.org. Retrieved 2021-08-17.
  16. ^ Google trend history comparison
  17. ^ "WikiMatrix View and Comparison Statistics". Archived from the original on 2008-06-26. Retrieved 2008-08-01.
  18. ^ "Old Changelogs: Release 2004-07-04". DokuWiki.
  19. ^ a b c d "Changelog". DokuWiki.
  20. ^ plugins
  21. ^ templates
  22. ^ "DokuWiki Localization". translate.dokuwiki.org. Retrieved 2021-08-17.
  23. ^ "devel:caching [DokuWiki]". www.dokuwiki.org. Retrieved 2021-08-17.
  24. ^ "Referenzen [Einsatzleiterwiki]". einsatzleiterwiki.de. Retrieved 2021-08-17.
  25. ^ Ziehr, Christoph; Skorupa, Frank; Schmitt, Konrad; Kopp, Mike. "Berliner Feuerwehr: Wiki-Systeme für den Einsatz- und rückwärtigen Dienst". BRANDSchutz/Deutsche Feuerwehr-Zeitung. 5/2017.
  26. ^ "DokuWiki als Schulportfolio". lehrerfortbildung-bw.de (in German). 2019-03-19. Retrieved 2021-08-17.
  27. ^ Fuchs-Kittowski, Frank; Faust, Daniel (2004), "WiKo – Eine integrierte Wissens- und Kooperations-Plattform", Mensch & Computer 2004, Oldenbourg Verlag, pp. 231–240, ISBN 978-3-486-57624-5, retrieved 2021-08-17
  28. ^ "PHP: start". wiki.php.net. Retrieved 2021-08-17.
  29. ^ "start [Xfce Wiki]". wiki.xfce.org. Retrieved 2021-08-17.
  30. ^ Brown, Rich (2016-09-27). "Welcome to the OpenWrt Project". OpenWrt Wiki. Retrieved 2021-08-17.
  31. ^ "start - SlackDocs". docs.slackware.com. Retrieved 2021-08-17.
  32. ^ "dokuinstall:southeastern [DokuWiki]". www.dokuwiki.org. Retrieved 2021-08-17.

Further reading

  • No URL found. Please specify a URL here or add one to Wikidata.