Line # Revision Author
1 13 dpavlin #
2 # reformat html inside xml back to html (basically, support for tables)
3 #
4 # filed #-# field ###
5 # ...
6
7 sub back2html {
8 my $html = shift;
9
10 80 dpavlin $html =~ s/</&lt;/g;
11 $html =~ s/>/&gt;/g;
12 13 dpavlin my $out;
13 79 dpavlin foreach $line (split(/\s*###\s*/,$html)) {
14 $out .= "<tr><td valign=\"top\">";
15 my @items = split(/\s*#-#\s*/,$line);
16 # convert spaces in left field to non-breaking spaces
17 $items[0] =~ s#\s+#&nbsp;#g;
18 # try to make link on right field
19 146 dpavlin sub mkurl {
20 my $url = shift || die "mkurl needs url as argument";
21 66 dpavlin # chop URLS longer than 60 characters
22 146 dpavlin my $txturl = substr($1,0,60);
23 $txturl .= "..." if (length($1) > 60);
24 return "<a href=\"$url\">$txturl</a>";
25 66 dpavlin }
26 146 dpavlin $items[1] =~ s#(http://[\S]+)#mkurl($1)#gie;
27 13 dpavlin $out .= join("</td><td>",@items);
28 $out .= "</td></tr>\n";
29 }
30 151 dpavlin # put <br> back into html
31 $out =~ s,&lt;br/*&gt;,<br/>,gi;
32 # put <a href=xxx>yyyy</a> back into html
33 $out =~ s,&lt;(a\s+href=)(.+?)&gt;(.+?)&lt;(/a)&gt;,<$1$2>$3<$4>,gsi;
34 13 dpavlin return $out;
35 }
36
37 1;