X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=back2html.pm;h=ba224c79acbba03e092a68019ff015133479f37d;hb=59ace2b4b24a63980678c794091a17f6acfb64cb;hp=1df13428ff1ceda6047445804a1e3d6dd32aa844;hpb=9c3f8adc030d8342a16a0138718e0ed1108dee35;p=webpac
diff --git a/back2html.pm b/back2html.pm
index 1df1342..ba224c7 100644
--- a/back2html.pm
+++ b/back2html.pm
@@ -6,7 +6,10 @@
sub back2html {
my $html = shift;
+ my $url_params = shift;
+ $html =~ s/</g;
+ $html =~ s/>/>/g;
my $out;
foreach $line (split(/\s*###\s*/,$html)) {
$out .= "
";
@@ -14,16 +17,32 @@ sub back2html {
# convert spaces in left field to non-breaking spaces
$items[0] =~ s#\s+# #g;
# try to make link on right field
- if ($items[1] =~ m#(http://[\S]+)\s*.*?#i) {
+ sub mkurl($) {
+ my $url = shift || die "mkurl needs url as argument";
# chop URLS longer than 60 characters
- my $url = substr($1,0,60);
- $url .= "..." if (length($1) > 60);
- $items[1] =~ s#(.*)\b(http://[\S]+)(\b?.*)#$1$url$3#g;
+ my $txturl = substr($1,0,60);
+ $txturl .= "..." if (length($1) > 60);
+ return "$txturl";
}
+ $items[1] =~ s#(http://[\S]+)#mkurl($1)#gie;
$out .= join(" | ",@items);
$out .= " |
\n";
}
- $out =~ s/<br\/*>/
/g;
+ # put
back into html
+ $out =~ s,<br/*>,
,gi;
+ # put yyyy back into html
+ sub mkurl_param($$$$) {
+ my ($a_href,$url,$text,$a_end) = @_;
+ if ($url_params) {
+ if ($url =~ m#\?#) {
+ $url .= "&".$url_params;
+ } else {
+ $url .= "?".$url_params;
+ }
+ }
+ return '<'.$a_href.'"'.$url.'">'.$text.'<'.$a_end.'>';
+ }
+ $out =~ s#<(a\s+href=)['"]*(.+?)['"]*>(.+?)<(/a)>#mkurl_param($1,$2,$3,$4)#gsie;
return $out;
}