—package
Template::Plugin::HTML::Strip;
use
5.006;
use
strict;
our
$VERSION
=
'0.01'
;
use
HTML::Strip;
my
$FILTER_NAME
=
'html_strip'
;
sub
init {
my
$self
=
shift
;
$self
->{_DYNAMIC} = 1;
$self
->install_filter(
$self
->{_ARGS}->[0] ||
$FILTER_NAME
);
return
$self
;
}
sub
filter {
my
(
$self
,
$text
,
undef
,
$config
) =
@_
;
$config
=
$self
->merge_config(
$config
);
my
$hs
= HTML::Strip->new(
%$config
);
return
$hs
->parse(
$text
);
}
1;
__END__
=head1 NAME
Template::Plugin::HTML::Strip - HTML::Strip filter for Template Toolkit
=head1 SYNOPSIS
[% USE HTML.Strip %]
[% FILTER html_strip %]
<title>People for the Preservation of Presentational Markup</title>
<h1>HTML::Strip - A cause for concern?</h1>
[% END %]
[% USE HTML.Strip 'strip'
striptags = [ 'script' 'iframe' ]
emit_spaces = 0
%]
[% FILTER strip %]
<p>A call to arms against the removal of our elements!</p>
[% END %]
=head1 DESCRIPTION
This module is a Template Toolkit dynamic filter, which uses HTML::Strip
to remove markup (primarily HTML, but also SGML, XML, etc) from filtered
content during template processing.
By default, the installed filter's name is 'html_strip'. This can be
changed by specifying a new name as the first positional argument
during plugin usage:
[% USE HTML.Strip 'strip' %]
[% '<div>Our very existence is under threat.</div>' | strip %]
The filter can optionally take configuration options, which will be
passed to HTML::Strip's constructor method:
[% USE HTML.Strip
striptags = [ 'applet' 'strong' ]
emit_spaces = 0
%]
[% FILTER html_strip %]
<strong>Are we next!?</strong>
[% END %]
For more details on available configuration options, please refer to
L<HTML::Strip|HTML::Strip>.
=head1 METHODS
=head2 init
Creates a dynamic filter and installs the filter under the value provided
for the first positional argument, otherwise uses 'html_strip'.
=head2 filter
Receives a reference to the plugin object, along with the text to be
filtered and configuration options. Using HTML::Strip, returns the filtered
(stripped) text.
=head1 SEE ALSO
L<Template|Template>, L<HTML::Strip|HTML::Strip>
=head1 AUTHOR
Geoff Simmons E<lt>gsimmons@cpan.orgE<gt>
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2005 Geoff Simmons
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut