NAME
Mojolicious::Plugin::TtRenderer - Template Renderer Plugin for
Mojolicious
VERSION
version 1.62
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:
lib/MyApp.pm:
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;
lib/MyApp/Example.pm:
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;
templates/example/welcome.html.tt:
[%
WRAPPER 'layouts/default.html.tt'
title = 'Welcome'
%]
<h2>[% message %]</h2>
This page was generated from the template "templates/example/welcome.html.tt"
and the layout "templates/layouts/default.html.tt",
<a href="[% url_for %]">click here</a> to reload the page or
<a href="/index.html">here</a> to move forward to a static page.
[% END %]
templates/layouts/default.html.tt:
<!DOCTYPE html>
<html>
<head><title>[% title %]</title></head>
<body>[% content %]</body>
</html>
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
Dinis Lage
jay mortensen (GMORTEN)
Matthew Lawrence (MATTLAW)
COPYRIGHT AND LICENSE
This software is copyright (c) 2009-2021 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.