Graham Ollis > Mojolicious-Plugin-TtRenderer > Mojolicious::Plugin::TtRenderer

Download:
Mojolicious-Plugin-TtRenderer-1.53.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 1.53   Source  

NAME ^

Mojolicious::Plugin::TtRenderer - Template Renderer Plugin for Mojolicious

VERSION ^

version 1.53

SYNOPSIS ^

Mojolicious::Lite:

 plugin 'tt_renderer';

Mojolicious

 $self->plugin('tt_renderer');

DESCRIPTION ^

This plugin is a simple Template Toolkit renderer for Mojolicious. Its defaults are usually reasonable, although for finer grain detail in configuration you may want to use Mojolicious::Plugin::TtRenderer::Engine directly.

OPTIONS ^

These are the options that can be passed in as arguments to this plugin.

template_options

Configuration hash passed into Template's constructor, see Template Toolkit's configuration summary for details. Here is an example using the Mojolicious::Lite form:

 plugin 'tt_renderer' => {
   template_options => {
     PRE_CHOMP => 1,
     POST_CHOMP => 1,
     TRIM => 1,
   },
 };

Here is the same example using the full Mojolicious app form:

 package MyApp;
 
 use Mojo::Base qw( Mojolicious );
 
 sub startup {
   my($self) = @_;
   
   $self->plugin('tt_renderer' => {
     template_options => {
       PRE_CHOMP => 1,
       POST_CHOMP => 1,
       TRIM => 1,
     },
   }
   
   ...
 }

These options will be used if you do not override them:

INCLUDE_PATH

Generated based on your application's renderer's configuration. It will include all renderer paths, in addition to search files located in the __DATA__ section by the usual logic used by Mojolicious.

COMPILE_EXT

.ttc

UNICODE

1 (true)

ENCODING

utf-87

CACHE_SIZE

128

RELATIVE

1 (true)

cache_dir

Specifies the directory in which compiled template files are written. This:

 plugin 'tt_renderer', { cache_dir => 'some/path' };

is equivalent to

 plugin 'tt_renderer', { template_options { COMPILE_DIR => 'some/path' } };

except in the first example relative paths are relative to the Mojolicious app's home directory ($app->home).

STASH ^

h

Helpers are available via the h entry in the stash.

 <a href="[% h.url_for('index') %]">go back to index</a>

c

The current controller instance can be accessed as c.

 I see you are requesting a document from [% c.req.headers.host %].

EXAMPLES ^

Mojolicious::Lite example:

 use Mojolicious::Lite;
 
 plugin 'tt_renderer';
 
 get '/' => sub {
   my $self = shift;
   $self->render('index');
 };
 
 app->start;
 
 __DATA__
 
 @@ index.html.tt
 [% 
    WRAPPER 'layouts/default.html.tt' 
    title = 'Welcome'
 %]
 <p>Welcome to the Mojolicious real-time web framework!</p>
 <p>Welcome to the TtRenderer plugin!</p>
 [% END %]
 
 @@ layouts/default.html.tt
 <!DOCTYPE html>
 <html>
   <head><title>[% title %]</title></head>
   <body>[% content %]</body>
 </html>

Mojolicious example:

 package MyApp;
 use Mojo::Base 'Mojolicious';
 
 sub startup {
   my $self = shift;
   $self->plugin('tt_renderer');
   my $r = $self->routes;
   $r->get('/')->to('example#welcome');
 }
 
 1;

 package MyApp::Example;
 use Mojo::Base 'Mojolicious::Controller';
 
 # This action will render a template
 sub welcome {
   my $self = shift;
 
   # Render template "example/welcome.html.tt" with message
   $self->render(
     message => 'Looks like your TtRenderer is working!');
 }
 
 1;

These are also included with the Mojolicious::Plugin::TtRenderer distribution, including the support files required for the full Mojolicious app example.

SEE ALSO ^

Mojolicious::Plugin::TtRenderer::Engine, Mojolicious, Mojolicious::Guides, http://mojolicious.org.

AUTHOR ^

original author: Ask Bjørn Hansen

current maintainer: Graham Ollis <plicease@cpan.org>

contributors:

vti

Marcus Ramberg

Matthias Bethke

Htbaa

Magnus Holm

Maxim Vuets

Rafael Kitover

giftnuss

Cosimo Streppone

Fayland Lam

Jason Crowther

spleenjack

Árpád Szász

Сергей Романов

uwisser

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2014 by Ask Bjørn Hansen.

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

syntax highlighting: