Commit | Line | Data |
ed99cbb4 |
1 | package HTML::String::TT::Directive; |
2 | |
3 | use strictures 1; |
4 | use HTML::String::Overload (); |
cfb242dd |
5 | use Data::Munge; |
ed99cbb4 |
6 | use base qw(Template::Directive); |
7 | |
8 | sub template { |
cfb242dd |
9 | return byval { |
a31f2ca0 |
10 | s/sub {/sub { package HTML::String::TT::_TMPL; use HTML::String::Overload { ignore => { q{Template::Provider} => 1, q{Template::Directive} => 1, q{Template::Document} => 1, q{Template::Plugins} => 1 } };/; |
cfb242dd |
11 | } Template::Directive::pad(shift->SUPER::template(@_), 2); |
ed99cbb4 |
12 | } |
13 | |
5c65e9e1 |
14 | # TT code does &text(), no idea why |
15 | |
f27b509e |
16 | sub textblock { |
17 | my ($self, $text) = @_; |
18 | return $Template::Directive::OUTPUT.' '.$self->text($text).';'; |
19 | } |
20 | |
5c65e9e1 |
21 | # https://rt.perl.org/rt3/Ticket/Display.html?id=49594 |
22 | |
f27b509e |
23 | sub text { |
24 | my ($class, $text) = @_; |
25 | for ($text) { |
5bee64f9 |
26 | s/(["\$\@\\])/"."\\$1"."/g; |
f27b509e |
27 | s/\n/"."\\n"."/g; |
28 | } |
29 | return '"' . $text . '"'; |
30 | } |
31 | |
ed99cbb4 |
32 | 1; |