django-wakawaka is a super simple wiki system written in Python using the Django framework.
- Links between Wiki pages are automatically resolved by their CamelCase naming scheme.
- It automatically keeps track of revision changes of a Page, while providing the ability to revert to earlier states.
- It also has a quite comprehensive permission integration, taking care of Django's default create/edit/delete permissions.
- Wakawaka is an application and indented to be placed in an existing project.
Some screenshots from the Example Project:
- Put
wakawaka
to your INSTALLED_APPS in your settings.py within your django project. - Add
(r'^wiki/', include('wakawaka.urls')),
to your urls.py.
That's all. Wakawaka has no other dependencies than Django 1.8 or later.
Private wiki: If you want to deploy a private wiki so that every page
needs an login simply add this line (r'^wiki/', include('wakawaka.urls.authenticated')),
to your urls.py instead of the above.
Wakawaka takes care of Django's permission system. Grant your users always a
pair of wikipage
and revision
permissions either what they should do.
(Adding, changing or deleting WikiPages)
The name of your first wiki page is defined as WikiIndex
. You can change
this by adding a setting WAKAWAKA_DEFAULT_INDEX
to your settings.py.
Example:
WAKAWAKA_DEFAULT_INDEX = 'Home'
Words that are written in CamelCase (a pair of one upper letter followed by
n lower letters) are automatically treated as internal wiki links. You can
change this behaviour by adding a setting WAKAWAKA_SLUG_REGEX
to your
settings.py. This holds a regular expression of the wiki name format. Default:
WAKAWAKA_SLUG_REGEX = r'((([A-Z]+[a-z]+){2,})(/([A-Z]+[a-z]+){2,})*)'
Wakawaka does not provide the ability to store file attachments to wiki pages. To do so, have a look on the side project `django-attachments`_ which provides a unobstrusive way to add attachments to models.
The project comes with a (not so) comprehensive test library which can be simply invoked by Tox, which tests the project under all current Python and Djanog versions:
$ pip install tox $ tox
To run the testsuite manually in your development environment, install the project in a separate virtualenv. I'm using virtualenvwrapper here:
$ mkvirtualenv --python=`which python3` wakawaka-env $ pip install -e . $ ./runtests.py
The application comes with a sample project. This gives you a brief overview about the Wiki features, and can help you with the integration of the application into an existing project. It's alo used for the test suite:
$ mkvirtualenv --python=`which python3` wakawaka-env $ pip install -e . $ ./runtestproject.py migrate $ ./runtestproject.py createsuperuser $ ./runtestproject.py runserver
Note
runtestproject.py
is the pendant to a regular manage.py
file
in a Django project..