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.


Can't decide if DokuWiki is right for you? Have a look at the Wiki Engine Comparison page

DokuWiki Formatting Syntax

DokuWiki supports some simple markup language, which tries to make the datafiles to be as readable as possible. This page contains all possible syntax you may use when editing the pages. Simply have a look at the source of this page by pressing the Edit this page button at the top or bottom of the page. If you want to try something, just use the playground page. The simpler markup is easily accessible via quickbuttons, too.

Basic text formatting 

DokuWiki supports *bold*, //italic//, 'underlined' and ''monospaced'' texts. Of course you can *'//''combine''//'* all these.

You can use <sub>subscript</sub> and <sup>superscript</sup>, too.

You can mark something as <del>deleted</del> as well.

Paragraphs are created from blank lines. If you want to force a newline without a paragraph, you can use two backslashes followed by a whitespace or the end of line. Note that the two backslashes are only recognized at the end of a line or followed by a whitespace \\this happens without it.


You can use up to five different levels of headlines to structure your content. If you have more than three headlines, a table of contents is generated automatically - this can be disabled by including the string —NOTOC— in the document.

==== Headline Level 3 ====
=== Headline Level 4 ===
== Headline Level 5 ==

By using four or more dashes, you can make a horizontal line:

Inverse Heading Syntax

Is it possible to inverse syntax of headings? It would be more cushier for users if they can "count levels" while writing a text. It would also save time if you get more levels than expected - you wouldn't have to change every heading.


==Heading 1==
===Heading 2 ===
====Heading 3====

Nonparsed Blocks 

You can include non parsed blocks into your documents by either indenting them by at least two spaces (like used for the previous examples) or by using the tags code or file.

To let the parser ignore an area completely (ie. do no formatting on it), enclose the area either with nowiki tags or even simpler, with double percent signs %%.

This is some text which contains addresses like this: and *formatting*, but nothing is done with it.

See the source of this page to see how to use these blocks.

Embedding HTML and PHP 

You can embed raw HTML or PHP code into your documents by using the html or php tags like this:

This is some <font color="red" size="+1">HTML</font>
echo 'A logo generated by PHP:';
echo '<img src="' . $_SERVER['PHP_SELF'] . '?=' . php_logo_guid() . '" alt="PHP Logo !" />';

Please Note: HTML and PHP embedding is disabled by default in the configuration. If disabled, the code is displayed instead of executed.


Dokuwiki supports ordered and unordered lists. To create a list item, indent your text by two spaces and use a * for unordered lists or a - for ordered ones.

Colored or indented quoting

DokuWiki can mark some text by preceding it with one or more > characters. By default DokuWiki just adds blue bars in front of the quoted text. Any chance of some syntax rule being added to DokuWiki, to handle this colored quote?

You can change how the quoting looks by changing the stylesheet style.css. Find the following block:

.quote {
  border-left: 2px solid #8cacbb;
  padding-left: 3px;

Replace it with something you may prefer. Eg. indenting every quote and format the first level red, the second one green and the following ones blue:

.quote {
  padding-left: 1em;
div.quote {
  color: #cf0000;
div.quote div.quote {
  color: #00cf00;
div.quote div.quote div.quote {
  color: #0000cf;

Images and other files 

You can include external and internal images with curly brackets. Optionally you can specify the size of them.

Real size:                        {{wiki:php-powered.png}}
Resize to given width:            {{wiki:php-powered.png?100}}
Resize to given width and height: {{wiki:php-powered.png?100x100}}
Resized external image:           {{}}

By using left or right whitespaces you can choose the alignment

{{ wiki:php-powered.png}}
{{wiki:php-powered.png }}
{{ wiki:php-powered.png }}

Of course, you can add a title (displayed as a tooltip by most browsers), too.

{{ wiki:php-powered.png |This is the caption}}

If you specify a filename (external or internal) that is not an image (gif,jpeg,png), then it will be displayed as a link instead.


DokuWiki supports multiple ways of creating links.


External links are recognized automagically: or simply - You can set Linknames, too: . Email addresses like this one: <> are recognized, too.


Internal links are created by using square brackets. You can either just give a or use an additional . Wiki pagenames are converted to lowercase automatically, special chars are not allowed.

You can use by using a colon in the pagename.

Linking to a specific section is possible, too. Just add the sectionname behind a hash character as known from HTML. E.g.:

This links to .



DokuWiki supports links. These are quick links to other Wikis. For example this is a link to Wikipedia's page about Wikis: .

Image Links 

You can also use an image to link to another internal or external page by combining the syntax for links and images (see below) like this:

Please note: The image formatting is the only formatting syntax accepted in link names.


DokuWiki supports a simple syntax to create tables.

Table rows have to start and end with a | for normal rows or a ^ for headers.

^ 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 2 Col 2     | Row 2 Col 3        |

To connect cells horizontally, just make the next cell completely empty as shown above. Be sure to have always the same amount of cell separators!

Vertical tableheaders are possible, too. As you can see, it's the cell separator before a cell which decides about the formatting:

|              ^ Heading 1            ^ Heading 2          ^
^ Heading 3    | Row 1 Col 2          | Row 1 Col 3        |
^ Heading 4    | no colspan this time |                    |
^ Heading 5    | Row 2 Col 2          | Row 2 Col 3        |
Note: Vertical spans (rowspan) are not possible.

You can align the table contents, too. Just add at least two whitespaces at the opposite end of your text: Add two spaces on the left to align right, two spaces on the right to align left and two spaces at least at both ends for centered text.

^           Table with alignment           ^^^
|         right|    center    |left          |
|left          |         right|    center    |
| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |


You can add footnotes1) by using double parenthesises.

You can add footnotes This is a footnote by using double parenthesises.

Syntax Highlighting 

DokuWiki can highlight sourcecode, which makes it easier to read. It uses the GeSHi Generic Syntax Highlighter - so any language supported by GeSHi is supported. The syntax is the same like in the code block in the previous section, but this time the name of the used language is inserted inside the tag. Eg. <code java>.

The following language strings are currently recognized: actionscript, ada, apache, asm, asp, bash, caddcl, cadlisp, c, c_mac, cpp, csharp, css, delphi, html4strict, java, javascript, lisp, lua, nsis, objc, oobas, pascal, perl, php-brief, php, python, qbasic, smarty, sql, vb, vbnet, visualfoxpro, xml


DokuWiki converts commonly used emoticons to their graphical equivalents. More smileys can be placed in the smiley directory and configured in the conf/smileys.conf file.


DokuWiki can convert simple text characters to their typographically correct entities. Here is an example of recognized characters.

-> <- <-> => <= <=> >> << — --- 640x480 (c) (tm) (r) "He thought 'It's a man's world'…"

Please note: These conversions can be turned off in the config file.

DokuWiki faq

What makes DokuWiki so good for Documentation 

DokuWiki Converters

OpenOffice document 

Iannz DokuWiki macro

copies an OpenOffice document on DokuWiki format, so that it can be pasted into a DokuWiki editing page.

Convert HTML to DokuWiki 

For converting existing documents to text files with DokuWiki syntax using some HTML to Text converter could be an idea. I put up a config file for the tool available at which produces some usable results: text2html.rc.

Thomas J. Messenger made a Perl module to convert HTML to DokuWiki's syntax available at (see 81, too)

Task #81 HTML::WikiConverter::Dialect::DokuWiki FWIW

FWIW I have made a first stab at a DokuWiki dialect for the Perl module HTML::WikiConverter

The module is posted at as When defining a new WikiConverter object, dialect must be specified as 'DokuWiki'. is a Perl script to convert an HTML file (argument) to DokuWiki. WikiConverter works hard at stripping leading and trailing blanks. Unfortunately, that zaps some DokuWiki mark-up. I have used as a placeholder for blank and there is a post-processing step to replace those (s// /g). Anyone interested is welcome to these. (At present also makes a MediaWiki conversion. The base_url is the second argument.)

HTML::WikiConverter is available from CPAN.