package Codestriker::Template::Plugin::FormatWhitespace;
# Simple template toolkit plugin module for formatting whitespace.
use Template::Plugin::Filter;
use Codestriker;
use base qw( Template::Plugin::Filter );
sub filter {
my ($self, $text) = @_;
# Get the tabwidth setting from the config.
my $tabwidth = $self->{ _CONFIG }->{tabwidth};
# Replace newlines with
s.
$text =~ s/\n/
/mgo;
# Replace consective spaces with entities. Its important
# start start with a leading space, so that the text can be
# broken up when it appears inside a floating div or a table row.
$text =~ s/ \s+/' ' x (length($&)-1)/emgo;
# Replace tabs.
$text = Codestriker::Http::Render::tabadjust($tabwidth, $text, 1);
return $text;
}
1;