Acme-Monta
view release on metacpan or search on metacpan
lib/Acme/Monta.pm view on Meta::CPAN
sub new {
my $class = shift;
my %args = @_;
my $self = bless {
_start => $args{start} ? $args{start} : '<monta>',
_end => $args{end} ? $args{end} : '</monta>',
_open_font => $args{open_font} ? $args{open_font} : '#000',
_open_back => $args{open_back} ? $args{open_back} : '#fff',
_close_font => $args{close_font} ? $args{close_font} : '#000',
_close_back => $args{close_back} ? $args{close_back} : '#000',
_close_img => $args{close_img} ? 'url(' . $args{close_img} . ')' : '',
_replace_tag => $args{replace_tag} ? $args{replace_tag} : 'span',
_cursor => $args{cursor} ? $args{cursor} : 'pointer',
}, $class;
return $self;
}
sub montaize {
my $self = shift;
my $data = shift;
$data =~ s|$self->{_start}(.*?)$self->{_end}|
'<' . $self->{_replace_tag} . ' style="' .
'cursor:' . $self->{_cursor} . ';' .
'color:' . $self->{_close_font} . ';' .
'background-color:' . $self->{_close_back} . ';' .
'background-image:' . $self->{_close_img} . ';' .
'" onClick="' .
'this.style.color = \'' . $self->{_open_font} . '\';' .
'this.style.backgroundColor = \'' . $self->{_open_back} . '\';' .
'this.style.backgroundImage = \'\';' .
'this.style.cursor = \'\';' .
'">' . $1 . '</' . $self->{_replace_tag} . '>'
|goie;
return $data;
}
1;
lib/Acme/Monta.pm view on Meta::CPAN
It is TV of Japan and a popular presentation technique.
It is called 'MONTA METHOD'.
=head1 METHOD
=over 4
=item new (%args)
Acme::Monta->new(close_font => '#0f0', close_back => '#0f0');
=item montaize (content)
Contents are converted.
=head2 ARGS
=over 4
=item start
change start tag.
=item end
change end tag.
=item open_font
change open font color.
=item open_back
change open background color.
=item close_font
change close font color.
=item close_back
change close background color.
=item close_img
set close background image url.
=item replace_tag
t/montaize_openclose.t view on Meta::CPAN
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl Acme-Monta.t'
#########################
# change 'tests => 1' to 'tests => last_test_to_print';
use Test::More tests => 2;
BEGIN { use_ok('Acme::Monta') };
my $monta = Acme::Monta->new(open_font => '#f00', open_back => '#00f', close_font => '#0f0', close_back => '#0f0');
my $data = 'this is <monta>secret words</monta>.';
ok($monta->montaize($data) eq 'this is <span style="cursor:pointer;color:#0f0;background-color:#0f0;background-image:;" onClick="this.style.color = \'#f00\';this.style.backgroundColor = \'#00f\';this.style.backgroundImage = \'\';this.style.cursor = \...
( run in 1.677 second using v1.01-cache-2.11-cpan-ceb78f64989 )