# $Id: CODE.pm 284 2006-12-01 07:51:49Z chronos $
package BBCode::Tag::CODE;
use base qw(BBCode::Tag::Block);
use BBCode::Util qw(encodeHTML multilineText);
use strict;
use warnings;
our $VERSION = '0.34';
sub BodyPermitted($):method {
return 1;
}
sub BodyTags($):method {
return qw(:TEXT URL EMAIL);
}
sub NamedParams($):method {
return qw(LANG);
}
sub RequiredParams($):method {
return ();
}
sub validateParam($$$):method {
my($this,$param,$val) = @_;
if($param eq 'LANG') {
$val =~ s/_/-/g;
if($val =~ /^ \w+ (?: - \w+ )* $/x) {
return $val;
} else {
die qq(Invalid value "$val" for [CODE LANG]);
}
}
return $this->SUPER::validateParam($param,$val);
}
sub toHTML($):method {
my $this = shift;
my $pfx = $this->parser->css_prefix;
my $lang = $this->param('LANG');
my $body = $this->bodyHTML;
$body =~ s#
$##mg;
$body =~ s#
#\n#g;
return multilineText
qq(
\n), qq($body\n), qq(\n), qq(