Changeset 1101
- Timestamp:
- 07/17/06 17:11:40
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/feature-server/plagger/lib/Plagger/Plugin/Filter/HTMLScrubber.pm
r735 r1101 4 4 5 5 use HTML::Scrubber; 6 7 sub rules { 8 return( 9 img => { 10 src => qr{^http://}, # only URL with http:// 11 alt => 1, # alt attributes allowed 12 '*' => 0, # deny all others 13 }, 14 style => 0, 15 script => 0, 16 ); 17 } 18 19 sub default { 20 return( 21 '*' => 1, # default rule, allow all attributes 22 'href' => qr{^(?!(?:java)?script)}i, 23 'src' => qr{^(?!(?:java)?script)}i, 24 'cite' => '(?i-xsm:^(?!(?:java)?script))', 25 'language' => 0, 26 'name' => 1, # could be sneaky, but hey ;) 27 'onblur' => 0, 28 'onchange' => 0, 29 'onclick' => 0, 30 'ondblclick' => 0, 31 'onerror' => 0, 32 'onfocus' => 0, 33 'onkeydown' => 0, 34 'onkeypress' => 0, 35 'onkeyup' => 0, 36 'onload' => 0, 37 'onmousedown' => 0, 38 'onmousemove' => 0, 39 'onmouseout' => 0, 40 'onmouseover' => 0, 41 'onmouseup' => 0, 42 'onreset' => 0, 43 'onselect' => 0, 44 'onsubmit' => 0, 45 'onunload' => 0, 46 'src' => 0, 47 'type' => 0, 48 'style' => 0, 49 ); 50 } 6 51 7 52 sub register { … … 14 59 my $config = $self->conf; 15 60 61 my ( %rules, %default ); 62 unless ( delete $config->{no_default_configs} ) { 63 %rules = $self->rules; 64 %default = $self->default; 65 } 66 $scrubber->rules( %rules, %{ delete $config->{rules} || {} } ); 67 $scrubber->default( %default, %{ delete $config->{default} || {} } ); 68 16 69 while ( my ( $method, $arg ) = each %$config ) { 17 eval { $scrubber->$method( ref $arg eq 'ARRAY' ? @$arg : $arg ) }; 70 eval { 71 $scrubber->$method( 72 ref $arg eq 'ARRAY' ? @$arg 73 : ref $arg eq 'HASH' ? %$arg 74 : $arg ); 75 }; 18 76 $context->error(qq/Invalid method call "$method": $@/) if $@; 19 77 } … … 32 90 =head1 NAME 33 91 34 Plagger::Plugin::Filter::HTMLScrubber - Scrub bfeed content92 Plagger::Plugin::Filter::HTMLScrubber - Scrub feed content 35 93 36 94 =head1 SYNOPSIS … … 38 96 - module: Filter::HTMLScrubber 39 97 config: 40 default: 1 41 deny: [ 'script', 'iframe' ] 98 rules: 99 style: 0 100 script: 0 42 101 43 102 =head1 DESCRIPTION 44 103 45 This plugin scrub bfeed content by L<HTML::Scrubber>.104 This plugin scrub feed content by L<HTML::Scrubber>. 46 105 47 All config parameters are implemented as HTML::Scrubber's method: value.106 All config parameters (except 'no_default_configs') are implemented as HTML::Scrubber's method: value. 48 107 For example, if you write in config. 49 108 … … 58 117 So please see L<HTML::Scrubber> document for detail. 59 118 119 =head1 DEFAULT_CONFIGS 120 121 some rules and default config parameters are setted by default. 122 see rules and default functions in this module. 123 124 and if you doen't need these settings, use no_default_configs: 125 126 config: 127 no_detault_configs: 1 128 60 129 =head1 AUTHOR 61 130
