Compatible with DokuWiki
Experimental Plugin
This plugin adds WebDAV server support for DokuWiki using Sabre DAV plugin (https://sabre.io/dav/).
Special thanks to Andi for the idea and code (webdav).
With this plugin it's possible to explore, modify and add elements (pages 1) and media files) in DokuWiki using a WebDAV client (such as Dolphin, Nautilus, Explorer, etc.).
By default WebDAV plugin expose this virtual directory:
Download and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.
This is the default location of WebDAV server end-point:
https://[dokuwiki-server]/lib/plugins/webdav/server.php/
You can enable show_button
configuration setting to display a popup with all WebDAV URL for the famous WebDAV clients (KDE Dolphin, Nautilus, Windows Explorer, etc.).
WebDAV plugin add additional DokuWiki events for add extra plugins or collections 2).
Event | Description |
---|---|
PLUGIN_WEBDAV_WIKI_COLLECTIONS | Add new Wiki collection |
PLUGIN_WEBDAV_PLUGINS | Add new plugin |
Client | Create | Edit | Delete | Rename |
---|---|---|---|---|
Dolphin | yes | yes | yes | no |
Nautilus | yes | yes | yes | no |
DAVFS2 | yes | yes | yes | no |
Cadaver | yes | yes | yes | no |
Windows | yes | yes | yes | no |
WebDAV plugin follow the pagename naming convention for directory (namespace) and files (page).
Windows users may experience problems with files and directories containing spaces and uppercase / lowercase in the name.
Client | Create | Edit | Delete | Rename |
---|---|---|---|---|
Dolphin | yes | yes | yes | no |
Nautilus | yes | yes | yes | no |
DAVFS2 | yes | yes | yes | no |
Cadaver | yes | yes | yes | no |
Windows | yes | yes | yes | no |
WebDAV plugin preserve the original file and directory name (space and upper/lower case). In media manager all files are viewed in standard DokuWiki format.
WebDAV plugin expose additional DAV properties:
Property | Note |
---|---|
dw:id | Page ID |
dw:title | Page Title |
dw:description | Page description/summary |
dw:tag | tag plugin tags |
It's possible to view this properties using PROPFIND
method:
PROPFIND http://dokuwiki.example.org/lib/plugin/webdav/server.php/wiki/pages/wiki/syntax.txt
<?xml version="1.0" encoding="utf-8" ?> <d:propfind xmlns:d="DAV:"> <d:prop xmlns:dw="http://dokuwiki.org/ns"> <d:getlastmodified/> <d:getcontentlength/> <d:getcontenttype/> <d:resourcetype/> <d:getetag/> <d:displayname/> <dw:id/> <dw:title/> <dw:description/> <dw:tag/> </d:prop> </d:propfind>
<?xml version="1.0"?> <d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:dw="http://dokuwiki.org/ns"> <d:response> <d:href> /wiki/lib/plugins/webdav/server.php/wiki/pages/wiki/syntax.txt </d:href> <d:propstat> <d:prop> <d:getlastmodified> Sun, 20 May 2018 22:27:43 GMT </d:getlastmodified> <d:getcontentlength> 22597 </d:getcontentlength> <d:getcontenttype> text/plain </d:getcontenttype> <d:resourcetype/> <d:getetag> "2fd28b7174c545bdb35da008a8208611b92663f3" </d:getetag> <d:displayname> Formatting Syntax </d:displayname> <dw:id> wiki:syntax </dw:id> <dw:title> Formatting Syntax </dw:title> <dw:description> Formatting Syntax DokuWiki supports some simple markup language, which tries to make the datafiles to be as readable as possible. This page contains all possible syntax you may use when editing the pages. Simply have a look at the source of this page by pressing </dw:description> <dw:tag> </dw:tag> </d:prop> <d:status> HTTP/1.1 200 OK </d:status> </d:propstat> </d:response> </d:multistatus>
Config | Default | Description |
---|---|---|
remote | 1 | Allow remote access to WebDAV |
remoteuser | !!not set!! | See remoteuser config |
fix_msoffice_lockroot | 0 | |
show_button | 0 | Show WebDAV button in Page Tools with WebDAV URL |
browser_plugin | 0 | Enable SabreDAV Browser Plugin |
In pages collection, Windows users may experience problems with files and directories containing spaces and uppercase / lowercase in the name.
MSOffice user may experience errors when save media file (lock problem)
Please report bugs or feature requests at the Bug tracker.