diff --git a/lib/calcms/HTML/Template/Compiled/Plugin/Hyphen.pm b/lib/calcms/HTML/Template/Compiled/Plugin/Hyphen.pm new file mode 100644 index 0000000..8aed12a --- /dev/null +++ b/lib/calcms/HTML/Template/Compiled/Plugin/Hyphen.pm @@ -0,0 +1,26 @@ +package HTML::Template::Compiled::Plugin::Hyphen; +use strict; +use warnings; + +HTML::Template::Compiled->register(__PACKAGE__); + +sub escape_whitespace { + my ($s) = @_; + $s =~ s/\s/-/g; + $s =~ s/\-+/-/g; + $s =~ s/\-$//g; + $s =~ s/^\-//g; + return $s; +} + +sub register { + my ($class) = @_; + my %plugs = ( + escape => { + HYPHEN => \&escape_whitespace + }, + ); + return \%plugs; +} + +return 1; diff --git a/lib/calcms/template.pm b/lib/calcms/template.pm index 6d360f7..74e797e 100644 --- a/lib/calcms/template.pm +++ b/lib/calcms/template.pm @@ -8,6 +8,7 @@ use feature 'state'; use Data::Dumper; use HTML::Template::Compiled(); use HTML::Template::Compiled::Plugin::XMLEscape(); +use HTML::Template::Compiled::Plugin::Hyphen(); #use HTML::Template::JIT(); use JSON(); @@ -119,6 +120,7 @@ sub initTemplate($) { default_escape => $default_escape, cache => 1, utf8 => 1, + plugin => [qw(HTML::Template::Compiled::Plugin::Hyphen)] ); }