/usr/local/CPAN/BBCode-Parser/BBCode/Tag/xURL.pm
# $Id: xURL.pm 284 2006-12-01 07:51:49Z chronos $
package BBCode::Tag::xURL;
use base qw(BBCode::Tag);
use BBCode::Util qw(:parse :encode :text);
use strict;
use warnings;
our $VERSION = '0.34';
sub Tag($):method {
return 'URL';
}
sub Class($):method {
return qw(LINK INLINE);
}
sub BodyPermitted($):method {
return 1;
}
sub BodyTags($):method {
return qw(TEXT ENT);
}
sub replace($):method {
my $this = shift;
my $text = $this->bodyHTML;
my $url = parseURL decodeHTML $text;
if(defined $url) {
my $that = BBCode::Tag->new($this->parser, 'URL', [ undef, $url->as_string ]);
$that->pushBody(
BBCode::Tag->new($this->parser, 'TEXT', [ undef, textURL($url) ])
);
return $that;
} else {
return BBCode::Tag->new($this->parser, 'TEXT', [ undef, $text ]);
}
}
1;