Learn about DokuWiki
Learn about DokuWiki
Currently DokuWiki locks a page once someone starts to edit it. This idea is about adding a feature where two or more people could simultaneously edit the same page similar to the Google Docs or Etherpad.
This feature requires some kind of backend server. It could be implemented taking the rather simple mobwrite library which uses a Server written in Python. We could provide a public server backend at DokuWiki.org (or appengine) for people who can't run the server themselves. There is also a fork of mobwrite at GitHub that uses the Tornado Web Server. As the project doesn't seem to be really active anymore we should plan maintaining it ourselves if we decide to use it.
This feature should be implemented as plugin or be optional.
The user who starts editing a page should be able to allow or deny the initialization of a multi-user session.
As a simple integration of mobwrite is trivial the main task of this project should be to provide a nice user interface and to really integrate with the editing process in DokuWiki.
Some points you should take into consideration:
Some ideas for the user interface:
If you want to implement this as part of the Google Summer of Code please provide more detailed descriptions how the editing process should look like, perhaps some drafts of the user interface and also more detailed ideas how you'll implement the different features. Feel free to suggest different synchronization backends if you don't like MobWrite.
Medium: Synchronizing stuff isn't easy so expect some difficulties like the scenarios that are outlined above. There are just a few parts of DokuWiki (locks, saving, drafts) concerned so understanding DokuWiki isn't the issue.
The following people volunteered to “mentor” any new developers taking up this task by answering questions, giving tips and reviewing code:
We have been using a combination of DW and Google Docs or Piratepad during live or Skype work-sessions and realtime editing would be a great addition to DW. Would be more than happy to do beta testing. — Thomas Wingate 2011/02/13 18:48
The need for python limits it's use. Is it possible to create a temporary page when a second user request to edit a section? So instead of locking him out he will be notified that another person is working on another section, and let him chose how to merge the two revisions and a link to a diff comparison could be provided. if both were working on different sections, the system should place every change on it's place with no problem. — damascene 2011/02/16 01:16
Python is only needed for the backend, as explained above there could be a public server at dokuwiki.org that can be used by everyone who can't host his own one. Merging sections is subject of the merge idea. I think for this idea we should assume that always the whole page is edited and otherwise either the page is locked like now or the hidden parts are synchronized, too. — Michael Hamann 2011/02/15 23:45