====== Dokuwiki ====== [[http://wiki.splitbrain.org/wiki: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 [[https://www.dokuwiki.org/rewrite#nginx|here]] and [[http://wiki.nginx.org/Dokuwiki|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 ===== A list of all plugins is available [[http://wiki.splitbrain.org/wiki:plugins|here]] Those I use are: * [[http://wiki.splitbrain.org/plugin:discussion|discussion]] * [[http://wiki.splitbrain.org/plugin:captcha|captcha]] * [[http://wiki.splitbrain.org/plugin:source|source]] * [[http://wiki.splitbrain.org/plugin:pageindex|PageIndex]] * [[http://wiki.splitbrain.org/plugin:searchindex|SearchIndex]] * [[http://wiki.splitbrain.org/plugin:latex|latex]] * [[http://wiki.splitbrain.org/plugin:comment|comment]] * [[http://wiki.splitbrain.org/plugin:comment|note]] * [[http://wiki.splitbrain.org/plugin:comment|tag]] * [[http://wiki.splitbrain.org/plugin:comment|keywords]] ==== 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 .= ''; + $ret .= ''; 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