Skip to main content

django-wakawka is a super simple wiki system written in Python using the Django framework.

Project description

https://travis-ci.org/bartTC/django-wakawaka.svg?branch=master https://codecov.io/github/bartTC/django-wakawaka/coverage.svg?branch=master

django-wakawaka

django-wakawka 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:

Installation:

  1. Put wakawaka to your INSTALLED_APPS in your settings.py within your django project.

  2. Add (r'^wiki/', include('wakawaka.urls')), to your urls.py.

That’s all. Wakawaka has no other dependencies than Django 1.0 (or Django 1.1, currently known as trunk)

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.

Configuration:

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)

Optional Settings:

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,})*)'

Attachments:

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.

Testing and Development:

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

Example Project:

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

Changelog:

v1.0 (master):

  • Django 1.10 compatibility and total cleanup.

  • Full Python 3 compatibility.

  • Removed Pinax Group support.

  • Tests.

v0.3: (2009-08-06):

  • If a wikipage was not found, the view now raises a proper Http404 instead of a (silent) HttpResponseNotFound. This gives you the ability to display a proper 404 page.

  • All templates are now translatable using gettext.

v0.2 (2009-07-22):

  • Edit-forms are now replaceable

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-wakawaka-1.0.tar.gz (309.6 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page