diff options
author | Eric Wong <e@80x24.org> | 2014-04-19 19:19:06 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2014-04-19 23:10:12 +0000 |
commit | 6a414a4087a59ad8c62cbef30984632ea31ced23 (patch) | |
tree | 113e0937e35f110496027a95415fc346f7f532d5 /Documentation/txt2pre | |
parent | 6dfb9311700d09fb019bee74d2b420c6cdea8b8f (diff) | |
download | public-inbox-6a414a4087a59ad8c62cbef30984632ea31ced23.tar.gz |
We have an HTML homepage, OMG!
Diffstat (limited to 'Documentation/txt2pre')
-rwxr-xr-x | Documentation/txt2pre | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Documentation/txt2pre b/Documentation/txt2pre new file mode 100755 index 00000000..f84f9c06 --- /dev/null +++ b/Documentation/txt2pre @@ -0,0 +1,26 @@ +#!/usr/bin/env perl +# Copyright (C) 2014, Eric Wong <normalperson@yhbt.net> and all contributors +# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt) +# +# 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(https?://[\w+\+\&\?\.\%\;/-]+)!<a\nhref="$1"\n>$1</a>!g; +$str =~ s!\e!>!g; # swap escapes back to > + +print '<html><head>', + '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />', + "<title>$title</title>", + "</head><body>\n<pre>", $str , '</pre></body></html>'; |