X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/39056453424dcb7e01f69c502192e45604d1fe84..e163b037bf3c9fa68be0971752e6d6584f8d55fd:/IkiWiki/Plugin/table.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/table.pm b/IkiWiki/Plugin/table.pm index 1302646b1..e782fc238 100644 --- a/IkiWiki/Plugin/table.pm +++ b/IkiWiki/Plugin/table.pm @@ -22,7 +22,7 @@ sub getsetup () { #{{{ sub preprocess (@) { #{{{ my %params =( format => 'auto', - header => 'yes', + header => 'row', @_ ); @@ -74,7 +74,7 @@ sub preprocess (@) { #{{{ } my $header; - if (lc($params{header}) eq "yes") { + if (lc($params{header}) eq "row" || IkiWiki::yesno($params{header})) { $header=shift @data; } if (! @data) { @@ -86,11 +86,10 @@ sub preprocess (@) { #{{{ ? "' : '
'; push @lines, "\t", - genrow($params{page}, $params{destpage}, "th", @$header), + genrow(\%params, "th", @$header), "\t" if defined $header; push @lines, "\t" if defined $header; - push @lines, genrow($params{page}, $params{destpage}, "td", @$_) - foreach @data; + push @lines, genrow(\%params, "td", @$_) foreach @data; push @lines, "\t" if defined $header; push @lines, '
'; my $html = join("\n", @lines); @@ -153,26 +152,39 @@ sub split_dsv ($$) { #{{{ return @data; } #}}} -sub genrow ($$$@) { #{{{ - my $page = shift; - my $destpage = shift; +sub genrow ($@) { #{{{ + my %params=%{shift()}; my $elt = shift; my @data = @_; + my $page=$params{page}; + my $destpage=$params{destpage}; + my $type=pagetype($pagesources{$page}); + my @ret; push @ret, "\t\t"; for (my $x=0; $x < @data; $x++) { - my $cell=htmlize($page, $destpage, $data[$x]); + my $cell=IkiWiki::htmlize($page, $destpage, $type, + IkiWiki::preprocess($page, $destpage, $data[$x])); + + # automatic colspan for empty cells my $colspan=1; while ($x+1 < @data && $data[$x+1] eq '') { $x++; $colspan++; } + + # check if the first column should be a header + my $e=$elt; + if ($x == 0 && lc($params{header}) eq "column") { + $e="th"; + } + if ($colspan > 1) { - push @ret, "\t\t\t<$elt colspan=\"$colspan\">$cell" + push @ret, "\t\t\t<$e colspan=\"$colspan\">$cell" } else { - push @ret, "\t\t\t<$elt>$cell" + push @ret, "\t\t\t<$e>$cell" } } push @ret, "\t\t"; @@ -180,12 +192,4 @@ sub genrow ($$$@) { #{{{ return @ret; } #}}} -sub htmlize ($$$) { #{{{ - my $page = shift; - my $destpage = shift; - - return IkiWiki::htmlize($page, $destpage, pagetype($pagesources{$page}), - IkiWiki::preprocess($page, $destpage, shift)); -} - 1