X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=Documentation%2Ftxt2pre;h=4c4b2ca2f77b6189b6a72f5f27623a89d5558ef4;hb=87425172fb480214c3f72e0174f4f8f15f48d92d;hp=ef6a4f3557395825d05fc5818ba56696367ec40e;hpb=e012d02ca21ddd01864c683e9cec318190abb047;p=public-inbox.git
diff --git a/Documentation/txt2pre b/Documentation/txt2pre
index ef6a4f35..4c4b2ca2 100755
--- a/Documentation/txt2pre
+++ b/Documentation/txt2pre
@@ -1,28 +1,25 @@
#!/usr/bin/env perl
-# Copyright (C) 2014-2015 all contributors
-# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt)
+# Copyright (C) 2014-2018 all contributors
+# License: AGPL-3.0+
#
# Stupid script to make HTML from preformatted, utf-8 text versions,
# only generating links for http(s). Markdown does too much
# and requires indentation to output preformatted text.
use strict;
use warnings;
-use CGI qw/escapeHTML/;
-use Encode qw/encode/;
-my $str = eval { local $/; <> };
-$str = escapeHTML($str);
-$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;
+use PublicInbox::Linkify;
+use PublicInbox::Hval qw(ascii_html);
-$str =~ s!\e!>!g; # swap escapes back to >
+my $str = eval { local $/; <> };
+my $title = $ENV{TITLE};
+($title) = ($str =~ /\A([^\n]+)/) unless $title;
+$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 , '