Randy Brown writes:
> Something like this may work:
>
>  Markup('[[|~', '<[[|',
>    "/(?>\\[\\[([^|\\]]+))\\|\\s*\\~\\s*]]/e",
>    "Keep(MakeLink(\$pagename, PSS('$1'),
>      BestTitle(MakePageName(\$pagename,PSS('$1')))
>      ),'L')");
>
>  function BestTitle ($pn) {
>    $sum = PageTextVar($pn,'Summary');
>    if (strlen($sum)) return $sum;
>    else return PageVar($pn, '$Title');
>  }

Thanks, Petko. That seems to work.

If I don't run into problems, maybe I should post this as a recipe called "Best Title: Use A Page Text Variable For Link Text when available". However, if the "/e" only works for versions before PHP 5.5, then maybe I shouldn't. What do you think?

The following will work with PHP 5.5 (but requires at least pmwiki-2.2.56):

 Markup_e('[[|~', '<[[|',
   "/(?>\\[\\[([^|\\]]+))\\|\\s*\\~\\s*]]/", # replace ending /e with /
   "Keep(MakeLink(\$pagename, PSS(\$m[1]),
     BestTitle(MakePageName(\$pagename,PSS(\$m[1])))
     ),'L')");                               # replace '$1' with \$m[1]

I'll document the new ways to define custom markup after I release 2.2.58 in a few days (the old ways still work and will not be removed).

Petko


_______________________________________________
pmwiki-users mailing list
pmwiki-users@pmichaud.com
http://www.pmichaud.com/mailman/listinfo/pmwiki-users

Reply via email to