A wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models.
Python HTML CSS JavaScript Makefile
Latest commit ab42d45 Jun 27, 2017 @benjaoming benjaoming committed on GitHub Merge pull request #655 from benjaoming/account-handling-docs
Add section about setting up account handling
Permalink
Failed to load latest commit information.
.tx Updating Transifex for new src/ structure May 19, 2017
docs Add section about setting up account handling #650 Jun 26, 2017
src/wiki Rename so it doesn't sound like it's the last page number Jun 12, 2017
testproject Since Bootstrap 3 error messages must be shown with alert-danger, and… Jun 25, 2017
tests Rename wiki.core.wiki_paginate to wiki.core.paginator Jun 12, 2017
.coveragerc Consolidate requirements, remove django\<1.8 artifacts, update tests … Oct 12, 2016
.gitignore Refactor: tests to a separated layout, wiki package in src/ subdirectory Apr 21, 2017
.isort.cfg fix autocorrect wrong import order May 5, 2016
.pre-commit-config.yaml Adding precommit hooks and removing unused imports, fixing pep8 etc May 5, 2016
.travis.yml Lint code in Travis test May 4, 2017
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Jun 16, 2017
CONTRIBUTING.md Adding Cookiecutter-based contribution guide May 4, 2017
COPYING Add better info about licensing Feb 9, 2013
MANIFEST.in Added wrapper for easier running of tests. May 2, 2017
Makefile Update Makefile's lint target [ci skip] May 4, 2017
README.rst Re-add django 1.8 and 1.8 support in matrix since nothing indicates s… May 4, 2017
pytest.ini Refactor: tests to a separated layout, wiki package in src/ subdirectory Apr 21, 2017
requirements_readthedocs.txt Fixes issue where Markdown extension crashes when an absolute URL is … Apr 15, 2017
runtests.py Added note about Selenium tests May 2, 2017
setup.cfg Adding precommit hooks and removing unused imports, fixing pep8 etc May 5, 2016
setup.py Added Django 1.11 to test matrix Apr 29, 2017
tox.ini Remove PYTHONPATH from tox env, it already does an installation throu… May 8, 2017

README.rst

django-wiki

Docs Build Status Coverage Status PyPi Dependency Status

Django support

The below table explains which Django versions are supported.

Release Django Upgrade from
0.3 (unreleased) 1.8, 1.9, 1.10, 1.11 0.2
0.2 1.8, 1.9, 1.10 0.1
0.1 1.5, 1.6, 1.7 0.0.24
0.0.24 1.4, 1.5, 1.6 1.7 (unstable) 0.0.?

For upgrade instructions, please refer to the Release Notes

Translations (Transifex)

Django-wiki has almost fully translated into 7 languages, apart from the default (English). But please help out in adding more languages! It's very easy, you don't even need to be a programmer.

https://www.transifex.com/django-wiki/django-wiki/

Demo

A demo running the latest master is available here, sign up for an account to see the notification system.

https://demo.django.wiki

Community

Please use our IRC or mailing list (google group) for getting in touch on development and support. Please do not email developers asking for personal support.

THIS IS A WORK IN PROGRE...

Currently, the model API is subject to smaller changes, and the plugin API seems pretty stable.

South is used so no database changes will cause data loss. In order to customize the wiki, best idea is to override templates and create your own template tags. Do not make your own hard copy of this repository in order to fiddle with internal parts of the wiki -- this strategy will lead you to lose out on future updates with highly improved features and plugins. Possibly security updates as well!

The release cycle has already begun, so you can administer django-wiki through Pypi and pip.

All views are class-based, however don't take it as an encouragement to extend them, unless you are prepared to modify both templates and view classes every time there is an update.

Contributing

Please read our Developer Guide

Manifesto

Django needs a mature wiki system appealing to all kinds of needs, both big and small:

  • Be pluggable and light-weight. Don't integrate optional features in the core.
  • Be open. Make an extension API that allows the ecology of the wiki to grow in a structured way. Wikipedia consists of over 1100 extension projects written for MediaWiki. We should learn from this.
  • Be smart. This is the map of tables in MediaWiki - we'll understand the choices of other wiki projects and make our own. After-all, this is a Django project.
  • Be simple. The source code should almost explain itself.
  • Be structured. Markdown is a simple syntax for readability. Features should be implemented either through easy coding patterns in the content field, but rather stored in a structured way (in the database) and managed through a friendly interface. This gives control back to the website developer, and makes knowledge more usable. Just ask: Why has Wikipedia never changed? Answer: Because it's knowledge is stored in a complicated way, thus it becomes very static.

Docs

See the docs/ folder, or read them at:

http://django-wiki.readthedocs.io/en/latest/

If you wish to add something, please ask in the google group or raise an issue if you're in doubt about whether something might change.

Background

Django-wiki is a rewrite of django-simplewiki, a project from 2009 that aimed to be a base system for a wiki. It proposed that the user should customize the wiki by overwriting templates, but soon learned that the only customization that really took place was that people forked the entire project. We don't want that for django-wiki, we want it to be modular and extendable.

As of now, Django has existed for too long without a proper wiki application. The dream of django-wiki is to become a contestant alongside Mediawiki, so that Django developers can stick to the Django platform even when facing tough challenges such as implementing a wiki.

Q&A

  • Why is the module named just wiki ? Because when we tried pip install wiki, it returned "No distributions at all found for wiki", so we had to make up for that!
  • What markup language will you use? Markdown. The markup renderer is not a pluggable part but has been internalized into core parts. Discussion should go here: https://github.com/django-wiki/django-wiki/issues/76
  • Why not use django-reversion? It's a great project, but if the wiki has to grow ambitious, someone will have to optimize its behavior, and using a third-party application for something as crucial as the revision system is a no-go in this regard.
  • Any support for multiple wikis? Yes, in an sense you can just imagine that you always have multiple wikis, because you always have hierarchies and full control of their permissions. See this discussion: https://github.com/django-wiki/django-wiki/issues/63

Requirements

Please refer to current release to see exact version dependencies. And make note that Pillow needs to have certain build dependencies satisfied on your host system.

Acknowledgements