[pmwiki-users] quirk with nested-if
Patrick R. Michaud
pmichaud at pobox.com
Mon Jun 30 09:33:33 CDT 2008
On Mon, Jun 30, 2008 at 01:44:41PM +0200, Peter Bowers wrote:
> > yes. GroupHeader and GroupFooter pages are included with standard
> > (:include ..:) markup, and (:include ..:) directives are rendered
> > after (:if..:) directives (Markup('include', '>if', ... in
> > stdmarkup.php).
> >
> > Conditional (:if ...:) markup does work in GroupHeader and GroupFooter
> > pages, BTW.
>
> How does this work? It's exactly what I found in my testing, but it
> seems strange. If (:if:) gets processed *before* (:include:) then how
> come the (:if ...:) within those included pages gets rendered? It
> seems that the (:if:) directive in the included text wouldn't even
> exist until after the if rule had already been executed...
>
> I'm not arguing that it happens - I verify that you are exactly
> correct on my own system. I'm just confused *how* it happens...
Whenever an (:include:) directive is processed, PmWiki restarts
processing of the new text using the entire rule set. This way
any directives or markups inside of the included file are also
processed.
(For the programming minded-- the PRR() function ("PmWiki restart ruleset")
is the one that signals PmWiki to restart rule processing at the beginning.
Pm
More information about the pmwiki-users
mailing list