summaryrefslogtreecommitdiffstats
path: root/debian/lynx-dump-postprocess
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 16:16:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 16:16:14 +0000
commit318a1a2246a9f521e5a02313dcc1f6d68a0af7ec (patch)
treee28c79d572e488bf782444e31d81291b99ef1932 /debian/lynx-dump-postprocess
parentAdding upstream version 4.96. (diff)
downloadexim4-6e6c849c1f16d1756acecce7a9318ceed4505ed1.tar.xz
exim4-6e6c849c1f16d1756acecce7a9318ceed4505ed1.zip
Adding debian version 4.96-15+deb12u4.debian/4.96-15+deb12u4debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/lynx-dump-postprocess')
-rwxr-xr-xdebian/lynx-dump-postprocess49
1 files changed, 49 insertions, 0 deletions
diff --git a/debian/lynx-dump-postprocess b/debian/lynx-dump-postprocess
new file mode 100755
index 0000000..e1ebbf9
--- /dev/null
+++ b/debian/lynx-dump-postprocess
@@ -0,0 +1,49 @@
+#!/usr/bin/perl
+
+open IN, '<&STDIN';
+#open IN, 'dump';
+{
+ local $/;
+ $content=<IN>;
+}
+close IN;
+
+($title,$body,$links) =
+ ($content =~
+ /^(.*)\n\s+_+\n\n
+ (\s+Table\ of\ Contents.*)
+ (References\n\n\s+1\..*)/sx);
+
+die unless ($title);
+
+print "$title\n".'-' x length($title)."\n\n";
+
+# Sort out local links.
+# The regex might not be entirely accurate.
+foreach (split /\n/, $links) {
+ ($index, $url) = /^\s*(\d+)\. (.+)$/;
+ if ($url !~ /file:\/\/.*#.*$/) {
+ $links[$index] = $url;
+ }
+}
+
+$linkno=0;
+# Split paragraphs
+foreach (split /\n(?:\s+_+\n)?\n/, $body) {
+ my $footnote = '';
+ my $rest = $_;
+ while ( $rest =~ /^(.*?)\[(\d+)\](.*)$/s ) {
+ print $1;
+ if (defined $links[$2]) {
+ $linkno++;
+ print "[$linkno]";
+ $footnote.=" $linkno. $links[$2]\n";
+ }
+ $rest = $3;
+ }
+ print $rest;
+ print "\n\n";
+ if ($footnote ne '') {
+ print "$footnote\n";
+ }
+}