Progress on the new parser can be followed at [1]. The rule sets are nearing
completion with the current implementation of tables done and most links now
being managed in addition to handling of emoticons, lists, headers, etc.
One of the frustrations from the original parser was that some links that
ended with a period worked, while others did not. This condition was
documented, but still caused problems. The new parser will now allow
punctuation at the end of a link and ignore it.
More importantly the new parser will make it possible to add new features
easily, where this would have been extremely difficult in the original
parser. Feedback and discussion on any of these proposals is welcomed.
First is the addition of the 'valign' style property to table rows or table
cells. The choices will be 'VT' - top, 'VM' - middle, 'VB' - bottom or 'VBL'
- baseline. The token must be enclosed in the style sequence '{.....}'. If
the token is in the first cell in the row it will be applied to the html
<tr> element. If it is in any other cell in a row it will be applied to the
corresponding cell html <td> element.
Similar treatments can be added for table padding and spacing to override
the default values in CSS for the entire table. These would again be applied
at the corresponding row or cell. The token would be 'Pdd' or 'Sdd' where
'dd' are digit values of pixels.
Definition lists - html element <dl> with sub-elements <dt> and <dd> - will
be added with the indentation level controlled by each tab or 8 spaces
equalling one level of indent up to 7 levels. The actual for of the input
will start with a semicolon, then the term being defined, followed by a
colon and then the actual definition of the term (see below):
;term:definition
Acronym - html element <acronym> - will be added by having the acronym
directly followed by an opening bracket, then the full text representation
of the acronym followed by the closing bracket. This can occur anywhere in
text. This element is useful for style sheets and search engines. An example
follows:
ABC(American Bridge Club)
Finally the big one. Tables with multiple lines in any cell, where those
lines can include any wiki text except another embedded table. For example,
this will allow the easy placement of lists within a table cell. In order to
achieve this it is necessary to define a new token to identify table row
start and end. These will be '[||' and '||]' respectively, where the row
start is found at the start of a line of wiki text and the row end is at the
end of a line of wiki text, with any number of lines of wiki text
intervening between the two tokens. The new cell token will remain as '||'.
The existing single-line table row definitions will still be supported and
current topics that use wikitalk to simulate multiline table will continue
to function correctly. An example of the new format is shown below (note
that the position of the cell break token '||' is unimportant):
[||{T^} * first item of unordered list
* second unordered list item
* third unordered list item (all in first cell of first row ||
The second cell of the first row ||]
[|| first cell of second row
|| second cell of second row
contain LF/CR in text ||]
I have not yet really looked at including any microformat definitions, but
certainly these could be included if I receive input about which ones should
be supported. It should also be noted that the implementation of these rule
sets will allow local wiki administrators to update and include their own
rule definitions, as the rule sets are in xml configuration files that are
read by the application.
[1] http://ods.dyndns.org/NewParser/default.aspx
John Davidson
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Flexwiki-users mailing list
Flexwiki-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flexwiki-users