X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/068aaea8b5ac80809a1b860f63c625b3ea389ded..d7177eb2021bc5517b2d8fab2269564f30d4446e:/doc/doc-docbook/TidyHTML-filter diff --git a/doc/doc-docbook/TidyHTML-filter b/doc/doc-docbook/TidyHTML-filter index 5056c1723..70bb86520 100755 --- a/doc/doc-docbook/TidyHTML-filter +++ b/doc/doc-docbook/TidyHTML-filter @@ -1,6 +1,6 @@ #! /usr/bin/perl -# $Cambridge: exim/doc/doc-docbook/TidyHTML-filter,v 1.2 2005/11/10 12:30:13 ph10 Exp $ +# $Cambridge: exim/doc/doc-docbook/TidyHTML-filter,v 1.3 2006/02/01 11:01:01 ph10 Exp $ # Script to tidy up the filter HTML file that is generated by xmlto. The # following changes are made: @@ -21,13 +21,21 @@ open(IN, "filter.html") || die "Failed to open filter.html for reading: $!\n"; @text = ; close(IN); -# Insert a newline after every > because the whole toc is generated as one -# humungous line that is hard to check. Then split the lines so that each one -# is a separate element in the vector. +# Insert a newline after every > in the toc, because the whole toc is generated +# as one humungous line that is hard to check. Indeed, the start of the first +# chapter is also on the line, so we have to split if off first. Having +# inserted newlines, we split the toc into separate items in the vector. -foreach $line (@text) { $line =~ s/>\s*/>\n/g; } for ($i = 0; $i < scalar(@text); $i++) - { splice @text, $i, 1, (split /(?<=\n)/, $text[$i]); } + { + if ($text[$i] =~ ?Exim's interfaces to mail filtering?) + { + splice @text, $i, 1, (split /(?=
\s*/>\n/g; + splice @text, $i, 1, (split /(?<=\n)/, $text[$i]); + last; + } + } # We want to create reverse links from each chapter and section title back to # the relevant place in the TOC. Scan the TOC for the relevant entries. Add @@ -60,26 +68,25 @@ for (; $i < scalar(@text); $i++) for (; $i < scalar(@text); $i++) { - if ($text[$i] eq "
\n" && $text[$i+1] eq "

\n") + while ($text[$i] =~ + /^(.*)<\/a>(.*?)<\/h(.*)/) { - $text[++$i] = ""; - $thisdiv = 1; + my($ref) = $backref{"#$2"}; + $text[$i] = "$1$4\n" && $text[$i+1] eq "

\n") - { - $text[$i] = ""; - $thisdiv = 0; - } - elsif ($text[$i] =~ /^

(?:
)?(.*)/) { - $i++; - if ($text[$i] =~ /^$/) + my($j); + $text[$i] = "$1

$2"; + + for ($j = $i + 1; $j < scalar(@text); $j++) { - my($ref) = $backref{"#$2"}; - $text[$i++] = "\n"; - my($temp) = $text[$i]; - $text[$i] = $text[$i+1]; - $text[++$i] = $temp; + if ($text[$j] =~ /^<\/p><\/div>/) + { + $text[$j] =~ s/<\/p>//; + last; + } } } }