[Pmwiki-users] PmWiki WikiStyles implementation testers needed

Patrick R. Michaud pmichaud at sci.tamucc.edu
Fri Feb 14 11:12:44 CST 2003


On Fri, 14 Feb 2003, Jonathan Scott Duff wrote:

> . It appears that style definitions must come lexicographically before
> their use.  True?

True.  PmWiki processes items top-to-bottom in a procedural form (like
a one-pass compiler), and not full text in a declarative form.

> . Why does %foo bar baz% not render, but but %don't render this% does?

The rule for recognizing a WikiStyle is that the only characters
allowed in the %...% are letters, numbers, underscores, hyphens, commas,
pound-signs, equals-signs, and whitespace.  (For you regexp types, the 
pattern is /%[-,=#\w\s]*%/.)  The point was to try to prevent an accidenal
line containing two %-signs as normal text from being treated as a style 
sheet.  So, %foo bar baz% is a WikiStyle meaning to combine the
"foo", "bar", and "baz" defined styles, while "%don't render this%" isn't
a valid WikiStyle because it contains the apostrophe.

However, I know this still isn't quite perfect, because text like
"John scored 15% and Mary scored 30%" would treat the parts between
the two percent signs as being a style sheet.  So it doesn't quite work.

Some possible solutions:
  * Require everything in a WikiStyle to be in the form [name]=[value].
    Then %=red% would mean to use the previous WikiStyle that had "define=red"
    in it.
  * Require that the first character following the leading % in a WikiStyle
    be a letter.  This would eliminate the mis-classifications that occur in
        - John scored 15% and Mary scored 30% on the exam
        - Our output increased by 15%-30%
  * Other ideas?

One possible benefit of the WikiStyle implementation I thought of (based
on Scott's experiments) is that some people have asked for the ability 
to include comments in the markup that do not render on output.  
I could easily add a "comment" WikiStyle such that

   This is %comment% an undisplayed comment and %% some text.

would render as

   This is some text.

Pm





More information about the pmwiki-users mailing list