package Apache::JavaScript::DocumentWrite;
use strict;
use vars qw($VERSION);
$VERSION = 0.02;
use Apache::Constants qw(:common);
use Apache::File ();
sub handler {
my $r = shift;
my $uri = $r->uri();
return DECLINED unless $uri =~ s/\.js$//;
# set it real filename and handle it in content phase
$r->uri($uri);
$r->handler("perl-script");
$r->push_handlers(PerlHandler => \&document_write_handler);
return DECLINED;
}
sub document_write_handler {
my $r = shift;
my $file = $r->filename;
my $fh = Apache::File->new($file) or return DECLINED;
$r->content_type('text/plain');
$r->send_http_header();
return OK if $r->header_only;
while (<$fh>) {
chomp;
s/\x27/'/g; # '
print "document.writeln('$_');\n";
}
return OK;
}
1;
__END__
=head1 NAME
Apache::JavaScript::DocumentWrite - replaces document as javascript document.write
=head1 SYNOPSIS
PerlTransHandler Apache::JavaScript::DocumentWrite
=head1 DESCRIPTION
Apache::JavaScript::DocumentWrite is a mod_perl handler to output HTML
(or plain text) file as a JavaScript document.write file. This module
helps you to do client-side SSI using JavaScript.
For example, you have a HTML file generated from RSS with crontab in
http://example.com/rss.html
access to
http://example.com/rss.html.js
gives you document.write version of rss.html. Thus it can be embedded
into another HTML file using SCRIPT html tag like:
=head1 AUTHOR
Tatsuhiko Miyagawa Emiyagawa@bulknews.netE
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=head1 SEE ALSO
L
=cut