======Getting rid of underscores in displayed links====== Consider config option [[config:useheading|useheading]] before reading the rest. \\ \\ \\ ====Change title of internallinks==== It will replace underscores in links in wikipages. When people copy this linktitles on a page and use them in their internallinks, that's fine, because DokuWiki interpret spaces as underscores. Modify only indicated lines. Index: inc/parser/renderer.php =================================================================== --- inc/parser/renderer.php +++ inc/parser/renderer.php function _simpleTitle($name){ global $conf; //if there is a hash we use the ancor name only list($name,$hash) = explode('#',$name,2); if($hash) return $hash; if($conf['useslash']){ $name = strtr($name,';/',';:'); }else{ $name = strtr($name,';',':'); } - return noNSorNS($name); + $name = noNSorNS($name); + + // replace '_' with ' ' + return strtr($name,'_',' '); } ===== Old format_pretty_ref() for changing DokuWiki pagetitles ===== ==== Clean pagetitles without 'useheading' ==== Thanks for the great tips on this page! I wanted a few things for my titles: to replace underscores by spaces, add an initial capital and show an abbreviated title when using namespaces. I disliked the idea of using [[config:useheading|Useheading]], so this is what I did: Add this at the bottom of inc/template.php: function format_pretty_ref($name){ if(strstr($name, ':') == ''){ return utf8_ucfirst(strtr($name,'_',' ')); }else{ return utf8_ucfirst(substr(strrchr(strtr($name,'_',' '), ':'), 1 )); } } Wrap the function around tpl_pagetitle in lib/tpl/[yourtheme]/main.php or add it to tpl_pagetitle in inc/template.php \\ eg. print(format_pretty_ref(tpl_pagetitle($ID,true))) e.g. 'wiki:namespace:page_title' becomes 'Page title' -- [[jay-jay@telenet.be|jayjay]] 2008-05-08 ==== Update for namespace start pages ==== This one may even be better. The standard start page of a namespace is 'namespace:start'. The above code will show 'Start' as the pagetitle of every namespace start page. The code below will show the namespace title instead of the word 'start'. eg. 'wine_bottles:french_wine' becomes 'French wine' ; 'wine_bottles:start' becomes 'Wine bottles' function format_pretty_ref($name){ global $conf; if(strstr($name, ':') == ''){ return utf8_ucfirst(strtr($name,'_',' ')); }else{ if(substr(strrchr($name, ':'), 1 ) == $conf['start']) { $name = substr($name, 0, strlen($name) - strlen($conf['start']) - 1); if(strstr($name, ':') == ''){ return utf8_ucfirst(strtr($name,'_',' ')); }else{ return utf8_ucfirst(substr(strrchr(strtr($name,'_',' '), ':'), 1 )); } }else{ return utf8_ucfirst(substr(strrchr(strtr($name,'_',' '), ':'), 1 )); } } } -- [[jay-jay@telenet.be|jayjay]] 2008-05-08 ==== Only ':' -> '|' and '_' ->' ' ==== function format_pretty_ref($name){ return utf8_ucwords(str_replace(":", " | ", strtr($name,'_',' '))); }