package Text::Livedoor::Wiki::Plugin::Function::Color; use warnings; use strict; use base qw/Text::Livedoor::Wiki::Plugin::Function/; __PACKAGE__->function_name('color'); sub prepare_args { my $class = shift; my $args = shift; die 'no args' unless scalar @$args; my $color = $args->[0]; my $bgcolor = $args->[1]; my $my_args = {}; if( $color ) { die 'color is not web color' unless $color =~ /^[a-zA-Z0-9#]+$/i; $my_args->{color} = $color; } if( $bgcolor ) { die 'bgcolor is not web color' unless $bgcolor=~ /^[a-zA-Z0-9#]+$/i; $my_args->{bgcolor} = $bgcolor; } return $my_args; } sub process { my ( $class, $inline, $data ) = @_; my $str_color = ''; my $str_bgcolor = ''; if( my $color = $data->{args}{color} ) { $str_color = "color:$color;"; } if( my $bgcolor = $data->{args}{bgcolor} ) { $str_bgcolor = "background-color:$bgcolor;"; } my $style = qq{style="$str_color$str_bgcolor"}; my $value = $inline->parse( $data->{value} ); return "$value"; } sub process_mobile { my ( $class, $inline, $data ) = @_; my $str_color =''; my $str_bgcolor = ''; if( my $color = $data->{args}{color} ) { $str_color = qq| color="$color"|; } if( my $bgcolor = $data->{args}{bgcolor} ) { $str_bgcolor = qq| style="background-color:$bgcolor"|; } my $value = $inline->parse( $data->{value} ); return (qq|$value|); } 1; =head1 NAME Text::Livedoor::Wiki::Plugin::Function::Color - Color Function Plugin =head1 DESCRIPTION customize font color. =head1 SYNOPSIS &color(red){red} &color(,red){back ground red} &color(red,black){ red text and block background} &color(#ffffff,#000000){hey hey} =head1 FUNCTION =head2 prepare_args =head2 process =head2 process_mobile =head1 AUTHOR polocky =cut