Hey Jack!
I very much like your ideas for implementing a WebDAV interface into
MediaWiki.
In fact, this is something I suggested back in February...
You might want to post your notes there to keep everything in one place. :)
Let me know if I can help you 'kick the tires' a bit...
--
Jamie Hari
Editor-in-Chief
Marvel & DC Database Projects
On 6/14/07, Jack Bates <ms419(a)freezone.co.uk> wrote:
I'm working on a WebDAV interface to MediaWiki, based on the WebDAV
module I contributed to the Gallery project:
http://www.mediawiki.org/wiki/WebDAV
The goal of this project is:
* To support connecting to MediaWiki with WebDAV clients like
[
http://www.webdav.org/cadaver/ cadaver] and
[
http://0pointer.de/lennart/projects/fusedav/ fusedav].
* To support integrating MediaWiki with editors that support WebDAV,
like Emacs and Eclipse.
* To explore MediaWiki article histories with WebDAV clients that
support the WebDAV versioning extension, DeltaV.
* To support connecting to MediaWiki with a Subversion client like the
command line or Eclipse Subclipse plugin.
Connecting with Subversion is in the scope of this project because
Subversion supports a protocol which is very close to WebDAV and DeltaV:
http://subversion.tigris.org/webdav-usage.html
By supporting Subversion clients, I can edit MediaWiki articles using
the Emacs version control mode and I can explore MediaWiki article
histories using the Eclipse Subclipse plugin. If I maintain a software
project's documentation in MediaWiki, I can use the Subversion
[
http://svnbook.red-bean.com/nightly/en/svn.advanced.externals.html
externals] feature to checkout MediaWiki articles along with the source
code. These can then be distributed with the project or converted to PDF
or manpage using XSL as part of the build process.
So far I have implemented:
* Some WebDAV features: GET, PUT, PROPFIND and DELETE. I can edit
articles with cadaver, fusedav, Emacs and Eclipse.
* Some DeltaV features: version-tree and baseline support. I can explore
article histories and old revisions with cadaver.
* Subversion checkout: I can checkout articles from the command line and
explore article histories with Subclipse. Checkin will need support for
the svndiff format, which happily is well documented in the Subversion
source.
You can install it by executing in your MediaWiki root directory:
svn co
http://svn.freegeek.org/svn/mediawiki-webdav/trunk .
However the code is still very "proof of concept" - I'm still figuring
out how the code will be finally organized. Unless I can contribute this
interface to the MediaWiki project, I guess it should be organized as a
MediaWiki extension? However I'm still getting familiar with how
MediaWiki delegates requests to extensions. Most WebDAV clients demand
hierarchical URLs and don't support query strings, so I currently use
two additional PHP landing pages in the MediaWiki root directory:
* webdav.php handles WebDAV requests for articles like
webdav.php/<MediaWiki_Article_Name>
* deltav.php is responsible for DeltaV functionality. Its layout is
based on Subversion's, e.g. deltav.php/ver/<Revision_ID>,
deltav.php/bc/<Revision_ID>, etc.
If I continue using this layout, I will spend some time cleaning and
reorganizing the code. But before I do, I'd love some feedback from
MediaWiki developers: Is this a reasonable design? What are the
alternatives to and the consequences of introducing these two new
landing pages?
Eventually, I would like to move this project to the MediaWiki
Subversion repository. Here is my SSH public key, signed with my GPG
key:
http://cgi.sfu.ca/~jdbates/tmp/freegeek/id_dsa.pub.gpg
My username is "jablko".
I look forward to your input on this project! Thanks, Jack
_______________________________________________
Wikitech-l mailing list
Wikitech-l(a)lists.wikimedia.org
http://lists.wikimedia.org/mailman/listinfo/wikitech-l