summaryrefslogtreecommitdiffstats
path: root/debian/lynx-dump-postprocess
diff options
context:
space:
mode:
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";
+ }
+}