File Coverage

blib/lib/Parse/BBCode/SCEditor.pm
Criterion Covered Total %
statement 16 26 61.5
branch 0 6 0.0
condition n/a
subroutine 6 9 66.6
pod 0 3 0.0
total 22 44 50.0


%s', ',
line stmt bran cond sub pod time code
1             package Parse::BBCode::SCEditor;
2             BEGIN {
3 1     1   1022 $Parse::BBCode::SCEditor::AUTHORITY = 'cpan:GETTY';
4             }
5             # ABSTRACT: Parse::BBCode::HTML specific for SCEditor
6             $Parse::BBCode::SCEditor::VERSION = '0.001';
7 1     1   10 use strict;
  1         3  
  1         34  
8 1     1   5 use warnings;
  1         3  
  1         46  
9 1     1   5 use Carp qw(croak carp);
  1         3  
  1         72  
10 1     1   6 use base qw/ Parse::BBCode /;
  1         2  
  1         1148  
11 1     1   164764 use Parse::BBCode::HTML;
  1         3  
  1         631  
12              
13             my %default_tags = (
14             Parse::BBCode::HTML->defaults(),
15             's' => '%s',
16             'sub' => '%s',
17             'sup' => '%s',
18             'font' => '%s',
19             'size' => '%s',
20             'color' => '%s',
21             'center' => '

%s

',
22             'right' => '

%s

',
23             'justify' => '

%s

',
24             'ul' => '
    %s
',
25             'ol' => '
    %s
',
26             'li' => '
  • %s
  • ',
    27             'table' => {
    28             code => sub {
    29             my ($parser, $attr, $content, $attribute_fallback) = @_;
    30             $$content =~ s{\r?\n|\r}{}g;
    31             return "$$content
    ";
    32             },
    33             parse => 1,
    34             class => 'block',
    35             },
    36             'tr' => '
    37             'td' => '%s
    38             'hr' => {
    39             class => 'block',
    40             output => '
    ',
    41             single => 1,
    42             },
    43             'code' => {
    44             code => sub {
    45             my ($parser, $attr, $content, $attribute_fallback) = @_;
    46             $content = Parse::BBCode::escape_html($$content);
    47             $content =~ s{\r?\n|\r}{
    \n}g;
    48             return "$content";
    49             },
    50             parse => 0,
    51             class => 'block',
    52             },
    53             'quote' => '
    %s
    ',
    54             '' => sub {
    55             my ($parser, $tag, $content, $info) = @_;
    56             my $text = Parse::BBCode::escape_html($content);
    57             my $in = $info->{stack}->[-1];
    58             if ($in eq 'table' || $in eq 'tr' || $in eq 'ol' || $in eq 'ul') {
    59             # explicit not adding the
    60             } else {
    61             $text =~ s{\r?\n|\r}{
    \n}g;
    62             }
    63             $text;
    64             },
    65             );
    66              
    67             my %optional_tags = (
    68             Parse::BBCode::HTML->optional(),
    69             );
    70              
    71             my %default_escapes = (
    72             Parse::BBCode::HTML->default_escapes,
    73             );
    74            
    75             sub defaults {
    76 0     0 0   my ($class, @keys) = @_;
    77             return @keys
    78 0 0         ? (map { $_ => $default_tags{$_} } grep { defined $default_tags{$_} } @keys)
      0            
      0            
    79             : %default_tags;
    80             }
    81            
    82             sub default_escapes {
    83 0     0 0   my ($class, @keys) = @_;
    84             return @keys
    85 0 0         ? (map { $_ => $default_escapes{$_} } grep { defined $default_escapes{$_} } @keys)
      0            
      0            
    86             : %default_escapes;
    87             }
    88            
    89             sub optional {
    90 0     0 0   my ($class, @keys) = @_;
    91 0 0         return @keys ? (grep defined, @optional_tags{@keys}) : %optional_tags;
    92             }
    93              
    94             1;
    95              
    96             __END__