-- [[Jon]]
[[!tag wishlist patch]]
+
+> This seems like weird overloading of the header parameter - it's
+> table data, except when it isn't. Perhaps
+> something like this would be easier to use in practice?
+> (and also more featureful :-) )
+>
+> \[[!table header="2 rows 1 column" data="""
+> Name | Platform ||
+> | Windows | Mac | Linux
+> ikiwiki | no | yes | yes
+> Starcraft | yes | yes | via Wine
+> """]]
+>
+> intended to be rendered like
+>
+> <table>
+> <tr><th>Name</th><th colspan=2>Platform</th>
+> <tr><th></th><th>Windows</th><th>Mac</th><th>Linux</th></tr>
+> <tr><th>ikiwiki</th><td>no</td><td>yes</td><td>yes</td></tr>
+> <tr><th>Starcraft</th><td>yes</td><td>yes</td><td>via Wine</td></tr>
+> </table>
+>
+> (Deliberately switching to plain-text to make it more obvious
+> what's a `<th>` and what's `<td>`.)
+>
+> Vague pseudocode for parsing `headers`
+> (possibly even valid Perl, I'm not sure):
+>
+> my ($header_rows, $header_cols);
+> while ($header =~ s/(\d*)\W*(\w+)//) {
+> my $n = ($1 or 0);
+> my $what = $2;
+> if ($what =~ m/rows?/) {
+> $header_rows = $n;
+> }
+> elif ($what =~ m/col(?:umn)?s?/) {
+> $header_cols = $n;
+> }
+> }
+>
+> and it would even be fairly easy to extend to support
+> `(first|last|)\W*(\d*)\W*(\w+)` later, e.g.
+> `header="1 row, first 2 cols, last column"`.
+>
+> --[[smcv]]