Metadata-Version: 2.4
Name: django-wakawaka
Version: 1.7
Summary: A simple Django based wiki system.
License: MIT
License-File: LICENSE
Keywords: django,wiki
Author: Martin Mahner
Author-email: martin@mahner.org
Requires-Python: >=3.9,<4.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: django (>=3.2)
Project-URL: Homepage, https://github.com/bartTC/django-wakawaka/
Description-Content-Type: text/markdown

[![](https://badge.fury.io/py/django-wakawaka.svg)](https://badge.fury.io/py/django-wakawaka)

_Compatibility Matrix:_

| Py/Dj     | 3.9 | 3.10 | 3.11 | 3.12 | 3.13 | 3.14 |
|-----------|-----|------|------|------|------|------|
| 4.2 (LTS) | ✓   | ✓    | ✓    | ✓    | ✓    |      |
| 5.0       |     | ✓    | ✓    | ✓    | ✓    |      |
| 5.1       |     | ✓    | ✓    | ✓    | ✓    |      |
| 5.2 (LTS) |     | ✓    | ✓    | ✓    | ✓    | ✓    |

# django-wakawaka

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_:

- [WikiIndex Page][WikiIndex Page]
- [Revision List][Revision List]
- [Page History][Page History]
- [Page List][Page List]

[WikiIndex Page]: https://github.com/bartTC/django-wakawaka/raw/main/docs/_static/overview.png
[Revision List]: https://github.com/bartTC/django-wakawaka/raw/main/docs/_static/revisions.png
[Page History]: https://github.com/bartTC/django-wakawaka/raw/main/docs/_static/history.png
[Page List]: https://github.com/bartTC/django-wakawaka/raw/main/docs/_static/pagelist.png

## 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 3.2 or later.

## 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][django-attachments]
which provides a unobstrusive way to add attachments to models.

## Testing and Development:

The project comes with a test library which can be simply invoked by Tox,
which tests the project under all current Python and Django versions:

    $ pip install tox
    $ tox

To run the testsuite manually in your development environment, install the
project using [Poetry][poetry]:

    $ poetry install
    $ pipenv run pytest

## 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:

    $ poetry install
    $ poetry run ./manage.py migrate
    $ poetry run ./manage.py createsuperuser
    $ poetry run ./manage.py runserver

[django-attachments]: https://github.com/bartTC/django-attachments
[poetry]: https://python-poetry.org

# Changelog:

v1.7 (2026-02-07)

- Added support for Python 3.14.
- Added support for Django 5.2.
- Updated ruff config for ruff 0.15.

v1.6 (2024-11-19)

- Added support for Python 3.13.
- Added support for Django 5.1.
- Drop support for Django <= 4.1.
- Drop support for Python 3.8.

v1.5 (2024-07-10):

- Switch from pipenv to a Poetry build system
- The IP Address field is now optional

v1.4 (2023-12-15):

- Added support for Django 5.0.
- Added support for Python 3.12
- Type Annotations

v1.3 (2022-04-30):

- Added support for Django 3.2 to 4.2.
- Added support for Python 3.8 to 3.11.

v1.2 (2020-01-08):

- Dropped support for Python 2.7.
- Added support for Python 3.8.
- Added support for Django 2.2 and 3.0.

v1.1 (2019-01-21):

- Django 2.1 compatibility and and further cleanup.
- Dropped support for Django <v1.11.
- Dropped "authenticated" url patterns which were not functional since a while.

v1.0 (2016-11-26):

- 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

