Skip to main content

A wiki system written for the Django framework.

Project description

Docs Build Status Coverage Status PyPi Dependency Status

Important notice

Version 0.0.24 is now out and is the final release before 0.1 in which migrations will be reset.

0.0.24 adds Django 1.7 support, however it’s not well-tested.

0.1 (available as current master branch) adds Django 1.7, 1.8 and 1.9 support, working as of now!

Please refer to the Release Notes

0.1 Roadmap

  • Migrations reset DONE

  • Django 1.7 support DONE

  • Django 1.8 support DONE

  • pep8 the whole codebase #287 DONE

  • Transifex DONE

  • Distribution with Wheels Done (0.0.24.4)

News

*News: December 26th, 2015*

A new release 0.0.24.4 is out and has fixes for the Django loaddata management command such that you can create dumps and restore the dump. Notice, though, that loaddata only works for Django 1.7+.

Django 1.9 support is available in the current master, please help get a 0.1 released by giving feed back in the last remaining issues:

https://github.com/django-wiki/django-wiki/milestones/0.1

*News: November 16th, 2015*

Django 1.8 support is very ready and 0.1 is right on the doorstep now.

*News: January 26th, 2015*

After too long, the new release is out.

The wait was mainly due to all the confusing changes by adding support of Python 3 and readying the migrations for Django 1.7. But there’s actually new features, too.

  • Bootstrap 3.3.1 and Font Awesome 4 (Christian Duvholt)

  • django_nyt instead of builtin django_notify (Benjamin Bach, Maximilien Cuony)

  • tox for testing (Luke Plant)

  • Appropriate use of gettext_lazy (Jaakko Luttinen)

  • Fixed support of custom username fields (Jan De Bleser)

  • Several fixes to the attachment plugin (Christian Duvholt)

  • Errors on notifications settings tab (Benjamin Richter)

  • Chinese translations (Ronald Bai)

  • Finish translations (Jaakko Luttinen)

  • Compatibility with custom user model in article settings (Andy Fang)

  • Fixed bug when [attachment:XX] present multiple times on same line (Maximilien Cuony)

  • Simple mediawiki import management command (Maximilien Cuony)

  • Python 3 and Django 1.6 compatibility (Russell-Jones, Antonin Lenfant, Luke Plant, Lubimov Igor, Benjamin Bach)

  • (and more, forgiveness asked if anyone feels left out)

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/projects/p/django-wiki/

Demo

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

http://demo.django-wiki.org/

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 loose 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

The best way to contribute is to use our Github issue list to look at current wishes. The list is found here:

https://github.com/django-wiki/django-wiki/issues/

Generally speaking, we need more unit tests, and new features will not be accepted without tests. To add more stuff the the project without tests wouldn’t be fair to the project or your hard work. We use coverage metrics to see that each new contribution does not significantly impact test coverage.

The easiest way to add features is to write a plugin. Please create an issue to discuss whether your plugin idea is a core plugin (wiki.plugins.*) or external plugin. If there are additions needed to the plugin API, we can discuss that as well!

To run django-wiki’s tests, run make test or python setup.py test after installing the requirements.

If you want to test for more environments, install “tox” (pip install tox) and then just run tox to run the test suite on multiple environments.

To run specific tests, call runtests.py with the arguments that you would pass to the normal “manage.py test” command.

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.org/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 “pip install wiki” returns “No distributions at all found for wiki”! :)

  • 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

So far the dependencies/requirements are:

Development

The folder testproject/ contains a pre-configured django project and an sqlite database. Login for django admin is admin:admin. This project should always be maintained, but please do not commit changes to the SQLite database as we only care about its contents in case data models are changed.

Acknowledgements

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

wiki-0.1.dev20160119155955.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

wiki-0.1.dev20160119155955-py2.py3-none-any.whl (1.4 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file wiki-0.1.dev20160119155955.tar.gz.

File metadata

File hashes

Hashes for wiki-0.1.dev20160119155955.tar.gz
Algorithm Hash digest
SHA256 dde4d706dfc9882e487d8be51e800c477c5e87d230f86edd57a9832ca9877bca
MD5 a73f7bb0ab3206aeee698d50db6e0d2d
BLAKE2b-256 f2d222b39ab26396eada10e4953f27d6b63986e2e46abe0727b5bace1ce971a0

See more details on using hashes here.

File details

Details for the file wiki-0.1.dev20160119155955-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for wiki-0.1.dev20160119155955-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 66c1a35a0c824c2de285270534c98ac36ab7caad621f2fc4325be9bfe1dc2f5c
MD5 11107a1eaceab93dd06bd54e2189fe1a
BLAKE2b-256 8bc20031f264188ed98f1225560a4363f279a0d0003386523ff6a4cd652ee1e8

See more details on using hashes here.

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