X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=Documentation%2Ftxt2pre;h=cb6a76138131a8d0abd3593d013860d523b1f1fa;hb=7c5ac90b309bbe76468055e8a9289664ef2dfe37;hp=2dd1597c9a24002ee6f23579c0780da2fad2a93c;hpb=3f779258173530ca88f31e1dc5332f951d2c44cd;p=public-inbox.git
diff --git a/Documentation/txt2pre b/Documentation/txt2pre
index 2dd1597c..cb6a7613 100755
--- a/Documentation/txt2pre
+++ b/Documentation/txt2pre
@@ -1,5 +1,5 @@
#!/usr/bin/env perl
-# Copyright (C) 2014-2016 all contributors
+# Copyright (C) 2014-2019 all contributors
# License: AGPL-3.0+
#
# Stupid script to make HTML from preformatted, utf-8 text versions,
@@ -7,28 +7,25 @@
# and requires indentation to output preformatted text.
use strict;
use warnings;
-use Encode qw/encode/;
+use PublicInbox::Linkify;
+use PublicInbox::Hval qw(ascii_html);
+
my $str = eval { local $/; <> };
-my %xhtml_map = (
- '"' => '"',
- '&' => '&',
- "'" => ''',
- '<' => '<',
- '>' => '>',
-);
-$str =~ s/([<>&'"])/$xhtml_map{$1}/ge;
-$str = encode('us-ascii', $str, Encode::HTMLCREF);
my ($title) = ($str =~ /\A([^\n]+)/);
-
-# temporarily swap > for escape so our s!! to add href works.
-# there's probably a way to do this with only a single s!! ...
-$str =~ s!>!\e!g;
-$str =~ s!\b((nntp|ftp|https?)://[\w+\+\&\?\.\%\;/#-]+)!$1!g;
-
-$str =~ s!\e!>!g; # swap escapes back to >
+$title = ascii_html($title);
+my $l = PublicInbox::Linkify->new;
+$str = $l->linkify_1($str);
+$str = ascii_html($str);
+$str = $l->linkify_2($str);
print '',
- '',
+ qq(),
"$title",
- "\n", $str , '
';
+ "", $str , '