Djiki is designed to work as a simple drop-in application. However, it still offers flexibility to adapt to different environments. You may easily set up access policy, change the markup language or replace templating engine to match your needs.


You decide who is able to perform certain operations in the wiki. The actions for which you may implement authorization checks, are:

  • create a new page or image,
  • edit a page or image,
  • view a page or image,
  • view the history of edits or older version.

The authorization is handled by a backend, which you may choose out of the default ones or implement yourself. Just point it in your file, like in the following example:

DJIKI_AUTHORIZATION_BACKEND = 'djiki.auth.base.UnrestrictedAccess'

The default backends, which reside in djiki.auth.base, support the following policies:

  • everyone can do everything: djiki.auth.base.UnrestrictedAccess,
  • only registered users can create edit: djiki.auth.base.OnlyAuthenticatedEdits,
  • only admins can create and edit: djiki.auth.base.OnlyAdminEdits,

Markup parser

Djiki allows you to use custom markup parser. You may point to the parser in the settings file:

DJIKI_PARSER = 'djiki.parsers.wikicreole module'

The included parsers are:

  • djiki.parsers.wikicreole — the default Creole markup,
  • djiki.parsers.raw — passes the content without modification, allowing for raw HTML. This should not be used in a public wiki, as users may enter malicious code.
  • djiki.parsers.html.SafeHTML — it is a safer alternative, which filters the resulting content from dangerous HTML elements like scripts, CSS styles or annoying and invalid tags.


The default Django templating engine is great but no one is forced to use it. I, for example, use Jinja2 in some of my projects. Djiki has a hook, which allows for quick replacement of the templating backend. The default is:

DJIKI_TEPLATING_BACKEND = 'djiki.templating.django_engine'

There are no other backends included at the moment.


There are more settings to configure Djiki's behavior:

  • DJIKI_IMAGES_PATH — path to images, relative to MEDIA_ROOT.
  • DJIKI_SPACES_AS_UNDERSCORES — makes Djiki replace whitespaces in URLs by underscores. It's a choice between having nice or exact URLs. Depending on the settings, the adresses may look as or This setting will also squash multiple spaces into one. It affects image names in the same way, too. Defaults to True.

Djiki @ GitHub



Send bitcoins to feed the author: 1Er6u1xt5CuxguhkwPe8mzQXrNo7sVEuw5

...or do it via Coinbase:
Donate Bitcoins