[pmwiki-users] Simple markup question...

Patrick R. Michaud pmichaud at pobox.com
Wed Sep 20 12:49:31 CDT 2006


On Wed, Sep 20, 2006 at 01:05:58PM -0400, The Editor wrote:
> What I meant was I thought of trying to add a NEW (custom) markup rule
> modeled on the [= =] rule, not that I would replace [= =] or in any
> way change its functionality.
> 
> My obstacle was I could not figure out how to write it so the new
> markup rule would be triggered by (:keep text:).  That being the
> syntax I thought might work me, for this specific situation.
> 
>      Markup('keep','>{$var}',"/(\n[^\\S\n]*)?\\[([=@])(.*?)\\2\\]/se",
>          "PreserveText('$2', PSS('$3'), '$1')");
> 
> I changed the timing and name of it, but how do I change [= and =] to
> (:keep and :)? The expression matching in this markup in particular is
> quite complex.

Start with:

    Markup('varkeep', '>{$var}', 
      '/\\(:keep (.*?):\\)/e',
      "Keep(PSS('$1'))");

Pm


P.S.:  The reason the standard keep markup is complex is because we 
want PmWiki to do the right thing if someone does [@...@] inside of
[=...=] *or* vice-versa.    That means we can't process [@...@]
and [=...=] with sequential markup rules -- they have to be
processed within the same rule.  This rule is also complex because
we have to recognize when the [=...=] or [@...@] has leading
spaces, and migrate those appropriately.






More information about the pmwiki-users mailing list