Table of contents


DokuWeaki is a bundle of plugins for DokuWiki especially targeted for agile teams, supporting agile documentation and following the philosophy of weakly typed wikis, aka as Weaki.

Bundled plugins

Collaboratively edit pages, with real-time synchronization of contents in all Weaki clients.

Developer: Henrique Ferrolho

Enables users to add inline comments in page contents.

Developers: Anaís Dias, Gabriel Souto, João Bordalo, Pedro Castro

This plugin lets users specify a GitHub repository, or a DokuWiki page. The contents of this repository or page will then be used to feed an autocomplete feature. While the user is typing, the suggestions mechanism of the feature will try to autocomplete the word.

Developers: José Cardoso, José Oliveira, Leonardo Faria, Vítor Teixeira

This plugin allows to automatically push, pull and delete files from GitHub when editing DokuWiki pages.

Developers: José Melo, Ricardo Loureiro, Rui Gomes, Tiago Ferreira

This plugin allows users to include a code snippet from GitHub in a DokuWiki page with a simple tag.

The snippet can either be an entire file, or a single function from that file.

Developers: André Pires, Henrique Ferrolho, João Pereira, João Bandeira

* The inclusion of a complete file works for most programming languages. However, in order to include a single function the file must be a JavaScript file.

This plugin enables users to create a new DokuWiki page with one of multiple skeleton templates. There is no need to create more pages from scratch.

It is also possible to add new starting templates for future use.

Developers: Diogo Gomes, Eduardo Almeida, Joana Beleza, João Morgado


Use the right template

The DokuWeaki Plugins have been developed with the Writr template in mind.

Install it and select it in the Configuration Settings page.

How to install the bundle

How to run the ShareJS synchronization server

This is required for the Collaboration Plugin.

Make sure you have Node.js, npm, and Redis both installed.

Don’t forget to read the plugin usage to configure the DokuWiki-side remaining settings.



Firstly, the DokuWiki Editor lock system must be disabled by setting the locktime value to 0 (zero).

Admin > Configuration Settings > Edit section

WeakiGithubIntegration settings

Lastly, set the domain/ip where the ShareJS server is running.

Admin > Configuration Settings > WeakiCollaboration section

WeakiGithubIntegration settings

Afterwards, multiple users using different devices, should be able to edit any DokuWiki page at the same time.

* For this to work, the ShareJS synchronization server must be running. See the Install notes below.


Following is an example of how to use the Comments plugin. One can either use the comment interface buttons on the Wiki page, or can add/edit/delete comments manually through the page editor.

GitHub Content Assist

To enable the content assist on a certain page click the button in the editor, fill in the dialog with the repository details you want to use. Press Ctrl + Space while writing to use the plugin autocomplete feature.

GitHub Integration

To integrate a Wiki with a GitHub repository, one needs to create a GitHub token with repo and user scopes.

After the token is created, its details must be added to the DokuWiki settings in:

Admin > Configuration Settings > WeakiGithubIntegration section

WeakiGithubIntegration settings

* The token in the picture is not available.

Below is a demo of a working configuration.

Tip: Supporting multiple repositories for sub-DokuWikis

The integration of multiple GitHub repositories is supported as long as the Farmer Plugin is installed.

The administrator can create multiple animals, each having its own configuration settings. Thus, having different GitHub tokens assigned.

JavaScript Code Transclusion

To embed code in a page from a file available at GitHub, just use one of the following tags:

<js-code src="{ link to GitHub file }">

<js-code src="{ link to GitHub file }@{ method name }">


To create a page using a template, start editing the page. Edit the url by appending an extension to the page name. The extension must be exactly like the name of an existing template.

For example, if you want to create a page with a FAQ template:


https://.../doku.php?id=start.faq&do=edit - notice the ‘.faq