It's better when it's simple

User Tools

Site Tools


relativelinks plugin

Compatible with DokuWiki

No compatibility info given!

plugin Replaces standard wiki-base-centric links with relative ones (anything which doesn't start with . or : is assumed to be relative to the current namespace

Last updated on
Conflicts with

This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.

Tagged with links, namespace


Whether it is of general interest to the wider community or not, I would prefer it if DokuWiki's links were relative to the current document's namespace. As such, I created this incredibly simple plugin (based upon the first syntax plugin example) which rewrites the links that don't start with “.”, “..” or “:”.


“Works for me, does what I want” ;-)

Hmm, doesn't work for me. I noticed that it messes up external links… oops.

    $event->data = preg_replace( "/\[\[([^:.][^\/]*?(?:\|.*?))\]\]/", '[[.:${1}]]', $event->data );

Updated the regexp so that it doesn't match links with slashes in the address. :-\


 * Relative Linking Plugin
 * @author Andy Turner <>
if(!defined('DOKU_INC')) die();
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
class action_plugin_relativelinks extends DokuWiki_Action_Plugin {
   * return some info
  function getInfo(){
    return array(
                 'author' => 'Andy Turner',
                 'email'  => 'public [at] ssbd [dot] net',
                 'date'   => '2008-03-07',
                 'name'   => 'Relative Links',
                 'desc'   => 'Replaces standard wiki-base-centric links with relative ones (anything which doesn\'t start with . or : is assumed to be relative to the current namespace)',
   * Register its handlers with the DokuWiki's event controller
  function register(Doku_Event_Handler $controller) {
    $controller->register_hook('PARSER_WIKITEXT_PREPROCESS', 'BEFORE',  $this, '_hookrellink');
   * Stick a colon in front of links... that's all :D
   * @author Andy Turner <public [at] ssbd [dot] net>
  function _hookrellink(&$event, $param) {
        $event->data = preg_replace( "/\[\[([^:.][^\/]*?(?:\|.*?))\]\]/", '[[.:${1}]]', $event->data );
plugin/relativelinks.txt · Last modified: 2017-10-28 15:10 by turnermm