/usr/share/perl5/Template/Plugin/JavaScript.pm is in libtemplate-plugin-javascript-perl 0.02-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | package Template::Plugin::JavaScript;
use strict;
use vars qw($VERSION);
$VERSION = '0.02';
require Template::Plugin;
use base qw(Template::Plugin);
use vars qw($FILTER_NAME);
$FILTER_NAME = 'js';
sub new {
my($self, $context, @args) = @_;
my $name = $args[0] || $FILTER_NAME;
$context->define_filter($name, \&encode_js, 0);
return $self;
}
sub encode_js {
local $_ = shift;
return '' unless defined $_;
s!\\!\\\\!g;
s!(['"])!\\$1!g;
s!\n!\\n!g;
s!\f!\\f!g;
s!\r!\\r!g;
s!\t!\\t!g;
s!<!\\x3c!g;
s!>!\\x3e!g;
s!&!\\x26!g;
$_;
}
1;
__END__
=head1 NAME
Template::Plugin::JavaScript - Encodes text to be safe in JavaScript
=head1 SYNOPSIS
[% USE JavaScript %]
<script type="text/javascript">
document.write("[% sometext | js %]");
</script>
=head1 DESCRIPTION
Template::Plugin::JavaScript is a TT filter that filters text so it
can be safely used in JavaScript quotes.
[% USE JavaScript %]
document.write("[% FILTER js %]
Here's some text going on.
[% END %]");
will become:
document.write("\nHere\'s some text going on.\n");
=head1 AUTHOR
The original idea comes from Movable Type's C<encode_js> global filter.
Tatsuhiko Miyagawa E<lt>miyagawa@bulknews.netE<gt>
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=head1 SEE ALSO
L<Apache::JavaScript::DocumentWrite>
=cut
|