[pmwiki-users] proposed markup for rowspan in simple tables

Christian Ridderström christian.ridderstrom at gmail.com
Mon Aug 25 17:13:13 CDT 2008


On Mon, 25 Aug 2008, Patrick R. Michaud wrote:

>> ||cell text ||__spanning text ||
>> ||text      ||__more spanning text ||
>> ||more      ||__last row of spanning text ||
>> ||aaa       ||bbb ||

> I like this as well, but it has the distinct drawback that the markup 
> engine would have to "look ahead" to determine the number of rows to be 
> spanned and to find the complete text of the current cell, and then 
> remember not to re-render that text in subsequent rows.  Doing that 
> might be a bit tricky.

Another drawback is if you wish to place two twospans on top of each 
other. :-(  So something more might still be required.

>> recipe http://www.pmwiki.org/wiki/Cookbook/TableEdit improves this 
>
> As long as the table markup that is produced/consumed is still 
> readable/writable by human editors, I think this approach could be okay.

I definitely agree on this.

> For example, does TableEdit understand (and preserve) all of the table 
> options that might exist in a manually generated table?  Or do some of 
> the properties get lost?

I loses some of the properties I believe, but I see no reason why it 
couldn't retain them. In other words, it's not feature complete. A version 
based on JavaScript and perhaps also AJAX would probably improve the 
experience quite a bit. For instance, it's very cool how the google 
calendar allows you to just click in a cell and start writing.

>> (:simpletable separator=";" alignment="llc" :)
>> Column A ; Column B  ; Column C
>> asfasdf  ; asdfasdf  ; asdfas
>> afasdff  ;
>> (:simpletableend:)
>
> I like this approach a lot -- I'll have to think about it. It might even 
> be do-able within the existing table markup, as something like:
>
> || separator=";" alignment="llc"
> || Column A ; Column B ; Column C
> || apple    ; banana   ; cherry
> || ask      ;
>
> Or, perhaps combine separators and alignments in a single format string,
> allowing the separator to change:
>
> || format="l ; l - c"
> || Column A ; Column B - Column C
> || apple    ; banana   - cherry
> || ask      ;          -

I like this version, but it's probably not so easy to understand. However, 
prefixing each line with '||' is a bit of a annoyance -- it's no longer 
possible to just paste the table from an external source.

>> Perhaps it might even be possible to use multiple spaces as column 
>> separator, thus allowing:
>>
>> (:simpletable separator="  " alignment="lcr" :)
>> Column A    Column B     Column C
>
> ... how would one specify an "empty" cell?

That's certainly a problem. I have no answer, but maybe   could
be used to mark an empty cell?

Having written some posts on this subject now, I think I'm leaning towards 
the following:

* Add mechanism to convert between different types of table markup styles.

* Aim for a reasonable table editor in the core. It's important that
   the editor doesn't destory parts of the table markup that it doesn't
   recognice. It'd be ok if it can only work with (:table:) if it's
   possible to convert.

* Add mechanism to control alignment on a column basis. This is
   for ||...||-tables as well. If cells in the table need a different
   alignement, this should be done with e.g. %left% in the cell.

Best regards
/Christian

-- 
Christian Ridderström, +46-8-768 39 44            http://www.md.kth.se/~chr


More information about the pmwiki-users mailing list