NAME JavaScript::V8::Handlebars - Compile and execute Handlebars templates via the actual JS library SYNOPSIS use JavaScript::V8::Handlebars my $hbjs = JavaScript::V8::Handlebars->new; print $hbjs->render_string( "Hello {{var}}", { var => "world" } ); my $template = $hbjs->compile_file( "template.hbs" ); print $template->({ var => "world" }); METHODS For now the majority of these methods work as described in <http://handlebarsjs.com/> $hbjs->new() $hbjs->c() Returns the internal JavaScript::V8 object, useful for executing javascript code in the context of the module. $hbjs->eval($javascript_string) Wrapper function for "$hbjs-"c->eval> that checks for errors and throws an exception. $hbjs->add_to_context_file($javascript_filename) $hbjs->add_to_context($javascript_string) Shortcut for evaluating javascript intended to add global functions and objects to the current environment. $hbjs->precompile_file($template_filename) $hbjs->precompile($template_string) Takes a template and translates it into the javascript code suitable for passing to the "template" method. $hbjs->compile_file($template_filename) $hbjs->compile($template_string) Takes a template and returns a subref that takes a hashref containing variables as an argument and returns the text of the executed template. $hbjs->registerHelper TBD $hbjs->template( $compiled_javascript_string | $compiled_perl_object ) Takes a precompiled template datastructure and returns a subref ready to be executed. $hbjs->render_string( $template_string, \%context_vars ) Wrapper method for compiling and then executing a template passed as a string. $hbjs->add_template_dir( $directory, [$extension] ) $hbjs->add_template_file( $filename, [$base_path] ) $hbjs->add_template( $name, $template_string ) Takes a template, compiles it and adds it to the internal store of cached templates for "execute_template" to use. $hbjs->execute_template( $name, \%context_vars ) Executes a cached template. $hbjs->precompiled() Returns a string of javascript consisting of all the templates in the cache ready for execution by the browser. $hbjs->safeString($string) Whatever the original Handlebar function does. $hbjs->escapeString ($string) Whatever the original Handlebar function does. $hbjs->registerPartial($string) Whatever the original Handlebar function does. AUTHOR Robert Grimes, "<rmzgrimes at gmail.com>" BUGS Please report and bugs or feature requests through the interfaces at <https://github.com/rmzg/JavaScript-V8-Handlebars> SUPPORT You can find documentation for this module with the perldoc command. perldoc JavaScript::V8::Handlebars LICENSE AND COPYRIGHT Copyright 2015 Robert Grimes. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO <https://github.com/rmzg/JavaScript-V8-Handlebars>, <http://handlebarsjs.com/>