From: Ian Jackson Date: Thu, 12 Apr 2018 11:59:24 +0000 (+0100) Subject: docs/parse-support-md: Unify identical [*] in footnotes X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~190 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6bd34dc33a237df1af0b4bfec212b5c9e8705745;p=xen.git 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 Release-acked-by: Juergen Gross --- v3: New patch v3.1: Drop `}' in multi-row [*] notes. I put this in to help work around firefox bugs eg https://bugzilla.mozilla.org/show_bug.cgi?id=244135 but I have been convinced it is not generally wanted. Signed-off-by: Ian Jackson --- diff --git a/docs/parse-support-md b/docs/parse-support-md index 83768cf7ef..decda33fb6 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,34 @@ 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 '', $rows; + $nextcell .= sprintf '[*]', + $version_urls[$i], $sectnode->{RealSect}{Anchor}; + $nextcell .= ''; + $colspan = ''; + } + $sectnode->{RealSect}{ColSpan}[$i] = $colspan; + } + $st //= '-'; - o(''); + o(""); my $end_a = ''; if ($sectnode->{Key} eq 'release-support--xen-version') { o(sprintf '', $version_urls[$i]); $end_a = ''; } o(escapeHTML($st)); - if ($sectnode->{RealSect}{HasText}[$i] - && $sectnode->{Status}[$i] - && $sectnode->{RealSect}{Anchor}) { - o(sprintf '[*]', - $version_urls[$i], $sectnode->{RealSect}{Anchor}); - } o($end_a); o(''); + o($nextcell); } o("\n"); }