GithubHelp home page GithubHelp logo

openedx / django-wiki Goto Github PK

View Code? Open in Web Editor NEW

This project forked from django-wiki/django-wiki

10.0 116.0 26.0 4.28 MB

A wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models.

Python 64.35% CSS 3.58% JavaScript 13.43% HTML 18.42% Makefile 0.22%

django-wiki's Introduction

django-wiki

Last update: 2012-08-22

Demo here, sign up for an account to see the notification system.

wiki.overtag.dk

NB!! THIS IS A WORK IN PROGR...

Currently, the whole API is subject to change. That means, if you use the wiki, you should use it as it is and not access internals or override templates or write plugins... yet! But the games will soon begin, and Django South migrations are available.

Please refer to the TODO for a detailed status or the Issue list.

Manifesto

This is where it all begins. In less than 1 week we should have a wiki system appealing to any kind of Django developer out there. Here is the manifest (so far):

  • 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. After all, Wikipedia consists of some 680 extensions written for MediaWiki.
  • 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.

Installation

Install

Install directly from Github, since there is no release yet:

pip install git+git://github.com/benjaoming/django-wiki.git

Configure settings.INSTALLED_APPS

Make sure that the following is present:

'wiki',
'wiki.plugins.attachments',
'wiki.plugins.notifications',
'wiki.plugins.images',
'south',
'django_notify',
'mptt',
'sekizai',
'django.contrib.humanize',

Database

To sync and create tables, do:

python manage.py syncdb
python manage.py migrate

Configure settings.TEMPLATE_CONTEXT_PROCESSORS

Add 'sekizai.context_processors.sekizai' to settings.TEMPLATE_CONTEXT_PROCESSORS.

Include urlpatterns

To integrate the wiki to your existing application, you shoud add the following lines at the end of your project's urls.py.

from wiki.urls import get_pattern as get_wiki_pattern
from django_notify.urls import get_pattern as get_notify_pattern
urlpatterns += patterns('',
    (r'^notify/', get_notify_pattern()),
    (r'', get_wiki_pattern())
)

Please use these function calls rather than writing your own include() call - the url namespaces aren't supposed to be customized.

The above line puts the wiki in / so it's important to put it at the end of your urlconf. You can also put it in /wiki by putting '^wiki/' as the pattern.

Settings

For now, look in wiki/conf/settings.py to see a list of available settings.

Other tips

  1. Account handling: There are simple views that handle login, logout and signup. They are on by default. Make sure to set settings.LOGIN_URL to point to your login page as many wiki views may redirect to a login page.

Plugins

Add/remove the following to your settings.INSTALLED_APPS to enable/disable the core plugins:

  • 'wiki.plugins.attachments'
  • 'wiki.plugins.images'
  • 'wiki.plugins.notifications'

The notifications plugin is mandatory for an out-of-the-box installation. You can safely remove it from INSTALLED_APPS if you also override the wiki/base.html template.

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.

Contributing

This project will be very open for enrolling anyone with a good idea. As of now, however, it's a bit closed while we get the foundation laid out.

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? The markup engine will be pluggable, but Markdown will be the built-in supported one.
  • 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.

Dependencies

So far the dependencies are:

Development

In a your Git fork, run pip install -r requirements.txt to install the requirements.

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, although the sqlite database will be deleted very soon to avoid unnecessary conflicts.

Acknowledgements

  • The people at edX & MIT for finding and supporting the project both financially and with ideas.
  • django-cms for venturing where no django app has gone before in terms of well-planned features and high standards. It's a very big inspiration.
  • django-mptt, a wonderful utility for inexpensively using tree structures in Django with a relational database backend.

django-wiki's People

Contributors

adampalay avatar aht007 avatar awais786 avatar awaisdar001 avatar ayub-khan avatar benjaoming avatar bmedx avatar bridger avatar dawoudsheraz avatar edx-requirements-bot avatar ericfab179 avatar feanil avatar gabor-boros avatar hgdeoro avatar iamsobanjaved avatar iloveagent57 avatar irtazaakram avatar jawayria avatar jmbowman avatar mraarif avatar mtyaka avatar muhammad-ammar avatar mzulqarnain1 avatar nedbat avatar rocha avatar saleem-latif avatar sarina avatar usamasadiq avatar xitij2000 avatar yro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

django-wiki's Issues

Test django-wiki on Python 3.11

This repository is a depedency of edx-platform and needs to be upgraded to Python 3.11 before
the Readwood release is cut (mid-April).

  • Requirements are compiled with Python 3.8
  • Tests are run on Python 3.8 and 3.11
  • (Optional) Tests are also run with 3.12 and passing or 3.12 issues are ticketed.
  • Classifiers in setup.py setup.cfg or pyproject.toml indicate Python 3.11 support
  • A new version is release to PyPI
  • A PR is merged to edx-platform to use the new version

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.