use strict;
use SL::Presenter::EscapedText qw(escape);
+use SL::HTML::Restrict;
+use SL::HTML::Util;
use Exporter qw(import);
-our @EXPORT_OK = qw(format_man_days simple_format truncate);
+our @EXPORT_OK = qw(format_man_days simple_format truncate restricted_html);
our %EXPORT_TAGS = (ALL => \@EXPORT_OK);
use Carp;
+my $html_cleaner;
+
sub truncate {
my ($text, %params) = @_;
escape($output);
}
+sub restricted_html {
+ my ($value) = @_;
+ $html_cleaner //= SL::HTML::Restrict->create;
+ return $html_cleaner->process($value);
+}
+
+sub stripped_html {
+ my ($value) = @_;
+ return SL::HTML::Util::strip($value);
+}
+
1;
__END__
=head1 SYNOPSIS
+ use SL::Presenter::Text qw(truncate);
+
my $long_text = "This is very, very long. Need shorter, surely.";
- my $truncated = $::request->presenter->truncate($long_text, at => 10);
+ my $truncated = truncate($long_text, at => 10);
# Result: "This is..."
=head1 FUNCTIONS
one. Single newlines are converted to line breaks. Carriage returns
are removed.
+=item C<restricted_html $unsafe_html>
+
+Returns HTML code stripped from unwanted/unsupported content. This is
+done via the module L<SL::HTML::Restrict>.
+
+=item C<stripped_html $html>
+
+Returns the raw text with all HTML tags and comments stripped. This is
+done via L<SL::HTML::Util/strip>.
+
=back
=head1 BUGS