Introduction to DokuWiki

15-06-2011 | Remy van Elst


Table of Contents


DokuWiki is a standards compliant, simple to use Wiki, mainly aimed at creating documentation of any kind. It is targeted at developer teams, workgroups and small companies. It has a simple but powerful syntax which makes sure the datafiles remain readable outside the Wiki and eases the creation of structured texts. All data is stored in plain text files no database is required.

Nowdays it can be used for a lot of things, like a wiki, note taking, podcast show notes, collaborative note taking and a lot more.

I myself use it to keep notes, save code and articles (it has version control), communication platform and study help tool.
Official website of DokuWiki

What does it look like?

dokuwiki
dokuwiki
dokuwiki

Key features of DokuWiki

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 where an admin user can define permissions on page and namespace level, giving it much better access control than Mediawiki.

Plugins

DokuWiki has a generic plugin interface which simplifies the process of writing and maintaining plugins. There are over 750 plugins available. These can be easily integrated and managed by an admin user with the help of the plugin manager.

Templates

The appearance of the wiki can be defined by a template. There are templates to make it resemble a MediaWiki site, or a popular blogging platform and more.

Internationalization and localization

DokuWiki supports Unicode (UTF-8), so languages such as Chinese, Thai, and Hebrew can be displayed. DokuWiki can be configured in about 40 languages.

Caching

DokuWiki stores the rendered output of parsed wiki pages to reduce server load.

Full text search

DokuWiki has an integrated indexed search with which a user can search for keywords on the wiki.

Other very handy and interesting features

  • Content can be categorized in namespaces, easily browsable through an automatic index
  • Uploading and embedding of images and other media (images, PDF, music or anything)
  • Unlimited page revisions
  • Overview of Recent changes
  • Colored side by side diff support
  • Section Editing allows editing of small parts of a page (a feature I use very much)
  • Authentication Backends for integrating with LDAP, MySQL, Postgres and others (I've setup a dokuwiki instance which authentication goes via Facebook and Twitter)

Installing and upgrading

Install is very simple, extract the archive to a webserver. Upgrading also, backup your data & media directory and replace the files with the newer ones.
Your webserver only needs PHP. I've run it on NGINX, Apache2, Lighttpd and Cherokee. Everything which supports PHP mostly...
Also, auto-installers like Installotron and Softalicious have dokuwiki in it.

Syntax

Below I'll give some examples of the Dokuwiki Syntaxis.
Official Syntax Reference can be found here
Here is a good page with Tips and Tricks for DokuWiki

Headers
====== This is H1 ======
===== This is H2 =====
==== This is H3 ====
=== This is H4 ===
== This is H5 ==
Unordered Lists

Type two spaces and then a star: *

  * first
  * second
    * sub-list
    * sub-item 2
  * third
Ordered Lists

Type two spaces and then a dash: -

  - first ordered
  - second ordered
    - first sub-ordered
  - third item
Quotes
I say this
> I agree with that
>> Well, I do not.
> Why not?
Yeah, why not?
Images
Real size:                        {{wiki:dokuwiki-128.png}}
Resize to given width:            {{wiki:dokuwiki-128.png?50}}
Resize to given width and height: {{wiki:dokuwiki-128.png?200x50}}
Resized external image:           {{http://de3.php.net/images/php.gif?200x50}}

Alignment via left or right whitespaces (or both for center):

{{ wiki:dokuwiki-128.png}}
{{wiki:dokuwiki-128.png }}
{{ wiki:dokuwiki-128.png }}
Horizontal Lines
---
Tables
^ Heading 1      ^ Heading 2       ^ Heading 3          ^
| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
| Row 2 Col 1    | some colspan (note the double pipe) ||
| Row 3 Col 1    | Row 3 Col 2     | Row 3 Col 3        |
| Row 4 Col 1    |                 | Row 4 Col 3        |
References & Footnotes

Are done by ((This is a footnote)) using double parentheses.

Links
Internal Links

Done via [[pagename]] or [[pagename|Page Title]].
If you have a namespace: [[namespace:second:page|NameSpace Name]].

External Links

automatically recognized by dokuwiki via: http://www.google.com or www.google.com
With links title: [[http://www.google.com|This link goes to Google]]
Email addresses: <spambox@emaildomain.org> are converted to mailto: links.


Tags: dokuwiki, markup, php, wiki,