GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Dancer::Template::TemplateToolkit(3) User Contributed Perl Documentation Dancer::Template::TemplateToolkit(3)

Dancer::Template::TemplateToolkit - Template Toolkit wrapper for Dancer

version 1.3513

This class is an interface between Dancer's template engine abstraction layer and the Template module.

This template engine is recommended for production purposes, but depends on the Template module.

In order to use this engine, use the template setting:

    template: template_toolkit

This can be done in your config.yml file or directly in your app code with the set keyword.

Note that by default, Dancer configures the Template::Toolkit engine to use <% %> brackets instead of its default [% %] brackets. This can be changed within your config file - for example:

    template: template_toolkit
    engines:
        template_toolkit:
            start_tag: '[%'
            stop_tag: '%]'

You can also add any options you would normally add to the Template module's initialization. You could, for instance, enable saving the compiled templates:

    engines:
        template_toolkit:
            COMPILE_DIR: 'caches/templates'
            COMPILE_EXT: '.ttc'

Note though that unless you change them, Dancer sets both of the Template options "ANYCASE" and "ABSOLUTE" on, as well as pointing "INCLUDE_PATH" to your views directory and setting "ENCODING" to your charset setting.

By default, Template is used, but you can configure Dancer to use a subclass of Template with the "subclass" option.

    engines:
        template_toolkit:
            subclass: My::Template

When used like this, Dancer skips the defaults mentioned above. Only those included in your config file are sent to the subclass.

Dancer already provides a WRAPPER-like ability, which we call a "layout". The reason we do not use TT's WRAPPER (which also makes it incompatible with it) is because not all template systems support it. Actually, most don't.

However, you might want to use it, and be able to define META variables and regular Template::Toolkit variables.

These few steps will get you there:

  • Disable the layout in Dancer

    You can do this by simply commenting (or removing) the "layout" configuration in the config.yml file.

  • Use Template Toolkit template engine

    Change the configuration of the template to Template Toolkit:

        # in config.yml
        template: "template_toolkit"
        
  • Tell the Template Toolkit engine who's your wrapper

        # in config.yml
        # ...
        engines:
            template_toolkit:
                WRAPPER: layouts/main.tt
        

Done! Everything will work fine out of the box, including variables and META variables.

You can embed your templates in your script file, to get a self-contained dancer application in one file (inspired by <http://advent.perldancer.org/2011/3>).

To enable this:

    # in app.pl
    # ...
    set engines => {
        template_toolkit => {
            embedded_templates => 1,
        },
    };
    set template => 'template_toolkit';

This feature requires Template::Provider::FromDATA. Put your templates in the __DATA__ section, and start every template with __${templatename}__.

This engine provides three additional methods to access the WRAPPER stack of TemplateToolkit.

Synopsis:

    engine('template')->set_wrapper( inner => 'inner_layout.tt' );
    engine('template')->set_wrapper( outer => 'outer_layout.tt' );
    engine('template')->set_wrapper( 'only_layout.tt' );

The first two lines pushes/unshifts layout files to the wrapper array. The third line overwrites the wrapper array with a single element.

Synopsis:

    engine('template')->unset_wrapper('inner') # returns 'inner_layout.tt';
    engine('template')->unset_wrapper('outer') # returns 'outer_layout.tt';

These lines pops/shifts layout files from the wrapper array and returns the removed elements.

Synopsis:

    engine('template')->reset_wrapper;

This method restores the wrapper array after a set_wrapper call.

Dancer, Template

Dancer Core Developers

This software is copyright (c) 2010 by Alexis Sukrieh.

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

2020-01-29 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.