[pmwiki-users] wiki trail navigation

John Rankin john.rankin at affinity.co.nz
Mon May 19 20:37:14 CDT 2014

On 20/05/14 4:31 AM, Petko Yotov wrote:
> John Rankin writes:
>> We have a link on a trail page that reads:
>> * [[1960: to Rob on his 46th birthday]]
>> The pagename resolves to 1960ToRobOnHis46thBirthday, but the colon 
>> after 1960 causes the page to be omitted from the trail. ReadTrail in 
>> trails.php matches [^|:]*? in the link name, so skips the entry.
> Correct. Colons are not allowed in page names, and it assumes that 
> this is not a link to a page in the trail, for example an InterMap link.
>> To get around this, we have written:
>> * [[1960 to Rob on his 46th birthday |1960: to Rob on his 46th 
>> birthday]]
>> Is there a simpler way?
>  * [[1960 to Rob on his 46th birthday|+]]
Right, because we also need to add a title to that page to insert the 
colon. Thanks!
>> Also, $Titlespaced resolves to "1960 To Rob On His46th Birthday". I 
>> wonder whether AsSpaced might look for and space (lower)(\d+lower). 
>> Or would this be undesirable?
> If it is desirable to change the default "spacing" way, PmWiki can use 
> a different function to space the page names:
>  $AsSpacedFunction = "MyOwnAsSpaced"; # use MyOwnAsSpaced() to space 
> names
I did it this way. However, it would be nice if one could set a match / 
replace array pair in local/config.php, which PmWiki then applies. In 
this example:

$LocalAsSpacedRules = array('/([[:lower:]])(\d+[[:lower:]])/' => '$1 $2');

My code sets $PmAsSpacedFunction = $AsSpacedFunction then MyOwnAsSpaced 
function calls $PmAsSpacedFunction first, before applying the extra 
rule. However, if the site uses utf-8, $PmAsSpacedFunction needs to be 
set *after* loading xlpage-utf-8, which redefines $AsSpacedFunction.
> Or, simply set the page title in a (:title ...:) directive instead.
 From a user perspective, it looks like a spacing error, so I think it's 
better to fix in software.


John Rankin

More information about the pmwiki-users mailing list