Yanick Champoux

NAME

Dancer::Template::Handlebars - Wrapper for the Handlebars template system

VERSION

version 0.2.1

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.

AUTHOR

Yanick Champoux <yanick@babyl.dyndns.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Yanick Champoux.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.