X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=Documentation%2Ftxt2pre;h=4c4b2ca2f77b6189b6a72f5f27623a89d5558ef4;hb=1dc0f0c10fd856166a6726034de8aec53392901a;hp=2dd1597c9a24002ee6f23579c0780da2fad2a93c;hpb=3f779258173530ca88f31e1dc5332f951d2c44cd;p=public-inbox.git
diff --git a/Documentation/txt2pre b/Documentation/txt2pre
index 2dd1597c..4c4b2ca2 100755
--- a/Documentation/txt2pre
+++ b/Documentation/txt2pre
@@ -1,5 +1,5 @@
#!/usr/bin/env perl
-# Copyright (C) 2014-2016 all contributors
+# Copyright (C) 2014-2018 all contributors
# License: AGPL-3.0+
#
# Stupid script to make HTML from preformatted, utf-8 text versions,
@@ -7,28 +7,19 @@
# and requires indentation to output preformatted text.
use strict;
use warnings;
-use Encode qw/encode/;
-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;
+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 , '