Ævar Arnfjörð Bjarmason

NAME

Template::JavaScript - A templating engine using the JavaScript::V8 module

SYNOPSIS

    use Test::More qw( no_plan );
    use Template::JavaScript;

    my $tj = Template::JavaScript->new();

    $tj->output( \my $out );

    $tj->tmpl_string( <<'' );
    before
    % for( var i = 3; i ; i-- ){
      this is a loop
    % }
    after

    $tj->run;

    is( $out, <<'', 'can run simple JS code (loops)' );
    before
      this is a loop
      this is a loop
      this is a loop
    after

DESCRIPTION

This is a very simple template to JavaScript compiler. We compile either templates passed in as strings or as a file with Template Toolkit, so you can do includes etc. like Template normally does it.

Once Template has run we apply our own syntax, which is that any line beginning with % is JavaScript and any other line is output verbatim.

After the compilation phase (which you can cache) we execute the template with JavaScript::V8. So your templates will run very fast in the V8 JIT. We provide ways to pass variables and functions back & forth to JavaScript::V8 through its normal facilities.