In reply to jase (msg #18):
Understood. I'm not sure how much tinkering you would
like to do in terms of reverse-engineering the Markdown code (which is also available in Perl, I've just remembered), but it might or might not be possible to change the way the hyphens and pipes are parsed into html table elements.
Example:
------------------------
Data 1 | data 2 | data 2
------------------------
content| text | stuff
------------------------
The first line of hyphens indicates the start of a table, the pipes indicate separate fields, the line of hypens between table cells indicates a new table row, and the final line of hyphens indicates the end of the table.
This gets around the question of requiring the table header be the first row.
If you wanted table headers elsewhere (e.g. the leftmost column), you could use something like Markdown's "emphasis" or "bold" syntax: surround the desired field's text with asterisks or underscores.
---------------------------
*Header1* | data 2 | data 2
---------------------------
*Header2* | text | stuff
---------------------------
Also, I think I'm with Utsukushi on this one: if we want an easy way for non-expert users to make tables, the limitations you mentioned in msg#18 are reasonable concessions in the name of ease of use. Complex tables can be created by hand or using one of a number of online table-writing tools.