SYNOPSIS

        # in config.yml
       template: handlebars
    
       engines:
            handlebars:
                helper_modules:
                    - MyApp::HandlebarsHelpers
    
       # in the app
       get '/style/:style' => sub {
           template 'style' => {
               style => param('style')
           };
       };
    
       # in views/style.mustache
       That's a nice, manly {{style}} mustache you have there!

DESCRIPTION

    Wrapper for Text::Handlebars, the Perl implementation of the Handlebars
    templating system.

 Configuration

    The arguments passed to the 'handlebars' engine are given directly to
    the Text::Handlebars constructor, with the exception of helper_modules
    (see below for details).

 Calls to 'template()'

    When calling template, one can use a filename as usual, or can pass a
    string reference, which will treated as the template itself.

        get '/file' => sub {
            # look for the file views/my_template.hbs
            template 'my_template', {
                name => 'Bob',
            };
        };
    
        get '/string' => sub {
            # provide the template directly
            template \'hello there {{name}}', {
                name => 'Bob',
            };
        };

    The default extension for Handlebars templates is 'hbs'.

 Helper Functions

    Handlebars helper functions can be defined in modules, which are passed
    via helper_modules in the configuration. See
    Dancer::Template::Handlebars::Helpers for more details on how to
    register the functions themselves.

 Layouts

    Layouts are supported. The content of the inner template will be
    available via the 'content' variable.

    Example of a perfectly valid, if slightly boring, layout:

        <html>
        <body>
            {{ content }}
        </body>
        </html>

SEE ALSO

    Dancer::Template::Mustache - similar Dancer wrapper for
    Template::Mustache.