[pmwiki-users] brackets in link alt/title text

John Rankin john.rankin at affinity.co.nz
Mon May 23 04:08:21 CDT 2011


A couple of weeks ago on the developers' list, I raised a minor issue of
brackets in link alt or title text being removed. The work-around was to
use numeric entities (( and )). This was in the context of a local
customisation to support markup like:

[[Kororareka"Kororareka ¶ A Mixed Community ¶ Shulitea (King
George)"|+]]

One would rather write:

[[Kororareka"Kororareka ¶ A Mixed Community ¶ Shulitea (King
George)"|+]]

I think this could be supported with a minor change to the MakeLink
function in pmwiki.php:

function MakeLink($pagename,$tgt,$txt=NULL,$suffix=NULL,$fmt=NULL) {
  global
$LinkPattern,$LinkFunctions,$UrlExcludeChars,$ImgExtPattern,$ImgTagFmt;
#  $t = preg_replace('/[()]/','',trim($tgt));
#  $t = preg_replace('/<[^>]*>/','',$t);
#  preg_match("/^($LinkPattern)?(.+?)(\"(.*)\")?$/",$t,$m);
  $t = preg_replace('/<[^>]*>/','',trim($tgt));
  if (preg_match('/^(.+?)("(.*)")$/',$t,$mt)) $t = $mt[1];
  $t = preg_replace('/[()]/','',$t);
  preg_match("/^($LinkPattern)?(.+?)$/",$t,$m);

[ ...]

  $out = $LinkFunctions[$m[1]]($pagename,$m[1],$m[2],@$mt[3],$txt,$fmt);
#  $out = $LinkFunctions[$m[1]]($pagename,$m[1],$m[2],@$m[4],$txt,$fmt);
  return $out;
}

The commented lines are the original pmwiki code. The change removes
optional "alt text" from the $tgt *before* removing ( and ). The change
will also correctly process markup like:

[[http://example.org"a (possibly) relevant example" | this case]]

I think this change would be harmless and consistent with image alt text,
in which brackets are fine.

JR
-- 
John Rankin




More information about the pmwiki-users mailing list