Table of Contents
Dokuwiki
Dokuwiki is the wiki engine I am using. It seemed the nicer, more complete and easier to use to me.
Le faire fonctionner sur les pages persos de free.fr
Il y a quelques problèmes pour le faire fonctionner chez Free, mais quelqu'un a créé un patch qui résout tous les problèmes : http://forum.dokuwiki.org/thread/518.
Cependant dokuwiki est dorénavant banni chez Free. Si vous êtes détecté, votre compte sera suspendu pour le motif :
Les interfaces utilisant des fichiers locaux comme base de données/log sont interdites.
Install with Nginx
userewrite = 2
(dokuwiki is rewriting) did not work with nginx, so I wanted to switch to mode 1 where the web server manages rewriting.
There are suggestions of configuration here and here but they all seemed to assume that the wiki was at the root of the server, and the “@dokuwiki” syntax did not work in my case, when I want to access the wiki with domain.tld/wiki.
Therefore I use this configuration, that in addition permanently redirects the old rewrite mode 2 to mode 1:
# always needed location ~ /wiki/(data|conf|bin|inc) { deny all; } # needed to support old rewrite location ~ /wiki/doku.php/ { rewrite ^/wiki/doku.php/(.*) /wiki/$1 permanent; } # needed for new rewrite location ~ /wiki/lib/ {} location ~ /wiki/ { rewrite ^/_media/(.*) /lib/exe/fetch.php?media=$1 last; rewrite ^/_detail/(.*) /lib/exe/detail.php?media=$1 last; rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 last; rewrite ^/wiki/(.*) /wiki/doku.php?id=$1 last; }
With version 2020-07-29 Hogfather
the rewritemode 2 was working, but then it was impossible to log in anymore…
The sidebar
One bottleneck of Dokuwiki in the standard version is navigation.
There is a template Sidebar
which replaces the default
template, which adds this sidebar with the index you can see at your left : http://wiki.jalakai.co.uk/dokuwiki/doku.php/start.
You just have to copy the content of the archive in Dokuwiki/lib/tpl
, and either use the admin page to modify the template, or change in local.php
:
$conf['template'] = 'sidebar-rc2006-09-28'; // the name of your template folder
You can change some options in sidebar/conf/tplfn_sidebar.php
.
In version 2020-07-29 Hogfather
the default template has a sidebar, by creating the “:sidebar” page.
Disabling some automatic conversions
In particular if you use to write C/C++ code, you can find annoying that Dokuwiki replaced <<
and >>
by « and »
.
You can do that by commenting out the lines in conf/entities.conf
.
Plugins
source
It wasn't finding the local files without giving the full path. So I've added several cases where if it fails to find the file, it tries to find it relatively to the website root and relatively to the dokuwiki media path.
syntax.php:166|_getSource $source = @file($this->location.$file); + if (empty($source)) $source = @file($_SERVER['DOCUMENT_ROOT']."/".$this->location.$file); + if (empty($source)) $source = @file(DOKU_INC."data/media/".$this->location.$file); if (empty($source)) return '';
pageindex
I modified it so that it displays directories/namespaces too, and displays recursively all pages.
syntax.php:24|search_list_index - if ($type == 'd') return false; + if ($type == 'd') + { + $id = pathID($file); + if($opts['ns'].":$id" <> $ID) + { + $data[] = array( + 'id' => $opts['ns'].":$id", + 'type' => $type, + 'level' => $lvl ); + } + return true; + }
Show start on directory
To show the start page when clicking on a directory/namespace in the sidebar/index, and to hide the start page in the list of pages.
lib/scripts/index.js:28|treeattach - addEvent(elem,'click',function(e){ return index.toggle(e,this); }); + //addEvent(elem,'click',function(e){ return index.toggle(e,this); }); inc/html.php:642|html_list_index $base = substr($base,strrpos($base,':')+1); + if ($base == "start" && $item['id'] != "start") return $ret; if($item['type']=='d'){ inc/html.php:644|html_list_index - $ret .= '<a href="'.wl($item['id'], "").':start" class="idx_dir"><strong>'; + $ret .= '<a href="'.wl($ID,'idx='.rawurlencode($item['id'])).'" class="idx_dir"><strong>'; inc/html.php:664|html_li_index function html_li_index($item){ + $base = ':'.$item['id']; + $base = substr($base,strrpos($base,':')+1); + if ($base == "start" && $item['id'] != "start") return;
Allow more file types for upload
In conf/mime.conf, add:
html text/html htm text/html txt text/plain conf text/plain xml text/xml bas text/bas pas text/pas c text/c cpp text/cpp cxx text/cxx h text/h hpp text/hpp hxx text/hxx