The contents of each cell are individually processed by the BlockParser. This means that you can do interesting things like put invoke plugins, use enumerated lists etc within each cell!
- A "-" (dash) at the start of a new line represents a new row in the table.
- A "|" (vertical bar or pipe) at the start of a new line represents a cell.
Attributes for the tags * A line that starts with a "*" (star or asterisk) after a "|" is parsed for attributes for the corresponding cell. * Attributes for the table are given on line that starts with a "*", only if the line appears before any other line except whitespace.
- A line that starts with a - is always parsed for attributes since it can't have any content, unlike a cell.
- Cell contents are processed by the BlockParser.
* Any line that starts with a "*" anywhere other than the table attribute line is treated as normal content.
- Any line that starts with whitespace is also treated as content.
* Any cell line that does not have a "*" after the "|" is treated as normal content.
- All content lines that follow a cell line are added to that cell. They can contain arbitrary text except the above cases.
- If there is no cell in the current row, content lines are dropped silently.
- The two special characters "~" and "?>" should be escaped as "\~" and "?\>". I havn't discovered any other characters yet that might need to be escaped. This is required for the block parser to work.
We allow attributes with or without quotes (")
border=1, cellpadding="5" style="font-family: sans-serif; border-top:1px solid #dddddd;" style="font-family: Verdana, Arial, Helvetica, sans-serif"
This cell actually has a plugin invocation inside it!
This cell uses the row color
The above table is rendered from:
<<RichTable *border=1, cellpadding=5, bgcolor=#f0f8f8, width=75%, align=center - |* colspan=3, align=center HomePage - |* colspan=2 [http://phpwiki.sourceforge.net/demo/themes/default/images/png.png] |* rowspan=2 This cell actually has a plugin invocation inside it! <?plugin BackLinks ?\> - bgcolor=white | # One # Two | * Foo * Bar - bgcolor=cyan This line gets dropped ... no cell to contain it! |* bgcolor=#f0f0ff, align=center One paragraph. Another paragraph? |* align=left This cell uses the row color | I wish this cell had a nested table inside it! :( >>
- The plugin can't nest itself yet. Thus nested tables are currently not possible.