logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Mojolicious::Plugin::TemplateToolkit - Template Toolkit renderer plugin for Mojolicious

Author

       Dan Book <dbook@cpan.org>

Bugs

       Report any issues on the public bugtracker.

Description

       Mojolicious::Plugin::TemplateToolkit is a renderer for "tt2" or "Template Toolkit" templates. See
       Template and Template::Manual for details on the "Template Toolkit" format, and
       Mojolicious::Guides::Rendering for general information on rendering in Mojolicious.

       Along with template files, inline and data section templates can be rendered in the standard Mojolicious
       fashion. Template files and data sections will be retrieved using Mojolicious::Renderer via
       Template::Provider::Mojo for both direct rendering and directives such as "INCLUDE". This means that
       instead of specifying INCLUDE_PATH, you should set "paths" in Mojolicious::Renderer to the appropriate
       paths.

        $app->renderer->paths(['/path/to/templates']);
        push @{$app->renderer->paths}, '/path/to/more/templates';

       Mojolicious stash values will be exposed directly as variables in the templates, and the current
       controller object will be available as "c" or "self", similar to Mojolicious::Plugin::EPRenderer.

       Helper methods can be called on the controller object as normal, as well as on a proxy object available
       as "h". The proxy object was previously needed for efficiency as the controller object used "AUTOLOAD" to
       call helper methods, but since Mojolicious 8.04 the controller object uses a more efficient mechanism and
       the proxy object is no longer needed. See Mojolicious::Plugin::DefaultHelpers and
       Mojolicious::Plugin::TagHelpers for a list of all built-in helper methods.

       Accessing helper methods directly as variables, rather than via the controller or proxy object, is
       deprecated and may be removed in a future release.

        $c->stash(description => 'template engine');
        $c->stash(engines => [qw(Template::Toolkit Text::Template)]);

        [% FOREACH engine IN engines %]
          [% engine %] is a [% description %].
        [% END %]

        [% c.link_to('Template Toolkit', 'http://www.template-toolkit.org') %]

        [% c.param('foo') %]

Methods

       Mojolicious::Plugin::TemplateToolkit inherits all methods from Mojolicious::Plugin and implements the
       following new ones.

   register
        $plugin->register(Mojolicious->new);
        $plugin->register(Mojolicious->new, {name => 'foo'});

       Register renderer in Mojolicious application.

Name

       Mojolicious::Plugin::TemplateToolkit - Template Toolkit renderer plugin for Mojolicious

Options

       Mojolicious::Plugin::TemplateToolkit supports the following options.

   name
        # Mojolicious::Lite
        plugin TemplateToolkit => {name => 'foo'};

       Handler name, defaults to "tt2".

   template
        # Mojolicious::Lite
        plugin TemplateToolkit => {template => {INTERPOLATE => 1}};

       Configuration values passed to Template object used to render templates.  Note that
       Template::Provider::Mojo will use "paths" in Mojolicious::Renderer to find templates, not INCLUDE_PATH
       specified here.

See Also

       Mojolicious::Renderer, Template, Template::Provider::Mojo

perl v5.36.0                                       2023-02-24             Mojolicious::Pl...TemplateToolkit(3pm)

Synopsis

        # Mojolicious
        $app->plugin('TemplateToolkit');
        $app->plugin(TemplateToolkit => {name => 'foo'});
        $app->plugin(TemplateToolkit => {template => {INTERPOLATE => 1}});

        # Mojolicious::Lite
        plugin 'TemplateToolkit';
        plugin TemplateToolkit => {name => 'foo'};
        plugin TemplateToolkit => {template => {INTERPOLATE => 1}});

        # Set as default handler
        $app->renderer->default_handler('tt2');

        # Render without setting as default handler
        $c->render(template => 'bar', handler => 'tt2');

See Also