[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 10/11] docs/parse-support-md: Unify identical [*] in footnotes
A section in the SUPPORT.md may mention multiple Status, something: Supported and then have some text. The text is linked to from [*] footnotes in the table. But, this means that each bit of text needs to apply to multiple rows. Before this commit this was a separate [*] after each applicable item. But multiple apparently-different links to the same thing are annoying for the reader. So, in this commit we combine them. Formatting the result is not entirely trivial. Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> --- v3: New patch --- docs/parse-support-md | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/docs/parse-support-md b/docs/parse-support-md index 83768cf..38c8326 100755 --- a/docs/parse-support-md +++ b/docs/parse-support-md @@ -17,6 +17,7 @@ use Tie::IxHash; use IO::File; use CGI qw(escapeHTML); use Data::Dumper; +use POSIX; #---------- accumulating input/output ---------- @@ -285,9 +286,14 @@ sub count_rows_sectnode ($) { $rows++ if $sectnode->{Status}; $rows += count_rows_sectlist $sectnode->{Children}; $sectnode->{Rows} = $rows; + $sectnode->{RealSect}{Rows} = $rows; return $rows; } +# Now we have +# $sectnode->{Rows} +# $sectnode->{RealSect}{Rows} + sub count_rows_sectlist ($) { my ($sectlist) = @_; my $rows = 0; @@ -349,22 +355,36 @@ sub write_output_row ($) { } for (my $i=0; $i<@version_urls; $i++) { my $st = $sectnode->{Status}[$i]; + + my $colspan = $sectnode->{RealSect}{ColSpan}[$i]; + my $nextcell = ''; + if (!defined $colspan) { # first row of this RealSect + $colspan= ' colspan="2"'; + if ($sectnode->{RealSect}{HasText}[$i] && $st + && $sectnode->{RealSect}{Anchor}) { + my $rows = $sectnode->{RealSect}{Rows}; + $nextcell = sprintf '<td rowspan=%d>', $rows; + my @nce = ($rows>1 ? ('}') : ('')) x $rows; + $nce[floor(($rows-1)/2)] .= sprintf '<a href="%s#%s">[*]</a>', + $version_urls[$i], $sectnode->{RealSect}{Anchor}; + $nextcell .= join '<br>', @nce; + $nextcell .= '</td>'; + $colspan = ''; + } + $sectnode->{RealSect}{ColSpan}[$i] = $colspan; + } + $st //= '-'; - o('<td>'); + o("<td$colspan>"); my $end_a = ''; if ($sectnode->{Key} eq 'release-support--xen-version') { o(sprintf '<a href="%s">', $version_urls[$i]); $end_a = '</a>'; } o(escapeHTML($st)); - if ($sectnode->{RealSect}{HasText}[$i] - && $sectnode->{Status}[$i] - && $sectnode->{RealSect}{Anchor}) { - o(sprintf '<a href="%s#%s">[*]</a>', - $version_urls[$i], $sectnode->{RealSect}{Anchor}); - } o($end_a); o('</td>'); + o($nextcell); } o("</tr>\n"); } -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |