Git Product home page Git Product logo

djiki's Introduction

Djiki

Djiki is a lightweight, portable Wiki engine based on Django. It offers full functionality of a wiki engine without any configuration, yet it might be easily customized to match your preferred environment.

Features:

  • Creole markup,
  • anonymous and registered edits,
  • automatic merges of parallel edits when possible,
  • inclusion of images,
  • diff views between revisions,
  • reverts to any revision in the history,
  • automatic undos of any historical revision, if possible.
  • not strictly bound to Django user model and template engine, you may replace them

Requirements

Usage

  • Add 'djiki' and 'sorl.thumbnail' to your INSTALLED_APPS setting.

  • Run './manage.py syncdb' in your project.

  • Add the following to your URLconf:

    (r'wiki/', include('djiki.urls')),
    
  • Add the required setting DJIKI_IMAGES_PATH

  • Create a 'base.html' that Djiki expects to exist and acts as a base template for all the wiki pages. It must have a 'page' block. Alternatively, supply your own 'djiki/base.html' that overrides the supplied template.

  • Optionally include/add the provided CSS in media/css/styles.css to your page template.

Settings

The following settings configure Djiki's behavior:

DJIKI_PARSER — a Python path to the markup parser. The default is djiki.parsers.wikicreole.

DJIKI_IMAGES_PATH — path to images, relative to MEDIA_ROOT.

DJIKI_SPACES_AS_UNDERSCORES — makes Djiki replace whitespaces in URLs by underscores. It's a choice between having nice or exact URLs. Depending on the settings, the adresses may look as http://djiki.org/wiki/Main_Page or http://djiki.org/wiki/Main%20Page This setting will also squash multiple spaces into one. It affects image names in the same way, too. Defaults to True.

DJIKI_AUTHORIZATION_BACKEND — a Python path to authorization backend. The default is djiki.auth.base.UnrestrictedAccess, which grants full read/write permissions to all clients. The other included backends are djiki.auth.base.OnlyAuthenticatedEdits and djiki.auth.base.OnlyAdminEdits.

DJIKI_TEPLATING_BACKEND — a Python path to a templating backend. The default is djiki.templating.django_engine, which is a light wrapper over the standard Django template engine. Therefore you are not strictly bound to the default implementation. The author, for example, uses Jinja2 in some of his projects.

Parsers

Djiki allows you to use custom markup parser and it is no longer required to use Creole. The default behavior, however, is to pass all the page contents through djiki.parsers.wikicreole module. The other choices are:

  • djiki.parsers.raw — passes the content without modification, allowing for raw HTML. This should not be used in a public wiki, as users may enter malicious code.
  • djiki.parsers.html.SafeHTML — it is a safer alternative, which filters the resulting content from dangerous HTML elements like scripts, CSS styles or annoying and invalid tags.

Images

The standard Creole markup has been extended to handle resizing of images. The standard syntax of {{Image_name.jpg|Image title}} is still valid, however you may add size by typing {{Image_name.jpg|300x200|Image title}} or even omit the title: {{Image_name.jpg|300x200}}.

Templating

Roadmap

  • more markup backends; MediaWiki is the main priority
  • page operations: rename, delete
  • multi-language support, interwiki links
  • translations

djiki's People

Contributors

emesik avatar spookylukey avatar cfra avatar perchouli avatar

Stargazers

Michael Zhuang avatar  avatar

Watchers

 avatar James Cloos avatar

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.