#!/usr/bin/env perl
# Copyright (C) 2014-2016 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 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;
$str =~ s!\e!>!g; # swap escapes back to >
print '',
'',
"$title",
"\n", $str , '
';