]> www.wagner.pp.ru Git - oss/vjournal.git/blob - lib/VJournal/Format.pm
new description
[oss/vjournal.git] / lib / VJournal / Format.pm
1 package VJournal::Format;
2 use strict;
3 use vars qw(@EXPORT);
4 @EXPORT=qw(format_post format_tape format_comment);
5
6 our $imgprefix="/img";
7
8 our %sites=(
9 lj=>{uri=>'http://%s.livejournal.com',convertunderscore=>1,image=>'lj.gif'},
10 ljr=>{uri=>'http://lj.rossia.org/users/%s',convertunderscore=>0,image=>'ljr.gif'},
11 dw=>{uri=>'http://%s.dreamwidth.org',convertunderscore=>1,image=>'dw.gif'},
12 );
13
14 sub user_link {
15         my ($site,$name,$title) = @_;
16         $title ||=$name;
17         return "" unless exists $sites{$site};
18         my $s=$sites{$site};
19         if ($s->{convertunderscore}) {
20                 $name=~tr/_/-/;
21         }
22         my $uri=sprintf($s->{uri},$name);
23         return "<a href=\"$uri\"><img src=\"$imgprefix/".$s->{image}."\"><b>$title</b></a>";
24 }
25
26 sub find_user_links {
27         local $_ = pop @_;
28         my $expr="<(".join("|",keys %sites).')\s+user="?(\w+)"?(?:\s+title="([^\"]+)")?\s*/?>';
29         s/$expr/user_link($1,$2,$3)/seg;
30         return $_;
31 }
32 sub find_http_links {
33
34 }
35