Provided by: libmojolicious-perl_4.63+dfsg-1_all
NAME
Mojolicious::Renderer - Generate dynamic content
SYNOPSIS
use Mojolicious::Renderer; my $renderer = Mojolicious::Renderer->new; push @{$renderer->classes}, 'MyApp::Foo'; push @{renderer->paths}, '/home/sri/templates';
DESCRIPTION
Mojolicious::Renderer is the standard Mojolicious renderer. See Mojolicious::Guides::Rendering for more.
ATTRIBUTES
Mojolicious::Renderer implements the following attributes. cache my $cache = $renderer->cache; $renderer = $renderer->cache(Mojo::Cache->new); Renderer cache, defaults to a Mojo::Cache object. classes my $classes = $renderer->classes; $renderer = $renderer->classes(['main']); Classes to use for finding templates in "DATA" sections, first one has the highest precedence, defaults to "main". # Add another class with templates in DATA section push @{$renderer->classes}, 'Mojolicious::Plugin::Fun'; default_format my $default = $renderer->default_format; $renderer = $renderer->default_format('html'); The default format to render if "format" is not set in the stash. default_handler my $default = $renderer->default_handler; $renderer = $renderer->default_handler('ep'); The default template handler to use for rendering in cases where auto detection doesn't work, like for "inline" templates. encoding my $encoding = $renderer->encoding; $renderer = $renderer->encoding('koi8-r'); Will encode generated content if set, defaults to "UTF-8". Note that many renderers such as Mojolicious::Plugin::EPRenderer also use this value to determine if template files should be decoded before processing. handlers my $handlers = $renderer->handlers; $renderer = $renderer->handlers({epl => sub {...}}); Registered handlers, by default only "data", "text" and "json" are already defined. helpers my $helpers = $renderer->helpers; $renderer = $renderer->helpers({url_for => sub {...}}); Registered helpers. paths my $paths = $renderer->paths; $renderer = $renderer->paths(['/home/sri/templates']); Directories to look for templates in, first one has the highest precedence. # Add another "templates" directory push @{$renderer->paths}, '/home/sri/templates';
METHODS
Mojolicious::Renderer inherits all methods from Mojo::Base and implements the following new ones. add_handler $renderer = $renderer->add_handler(epl => sub {...}); Register a new handler. add_helper $renderer = $renderer->add_helper(url_for => sub {...}); Register a new helper. get_data_template my $template = $renderer->get_data_template({ template => 'foo/bar', format => 'html', handler => 'epl' }); Get a "DATA" section template by name, usually used by handlers. render my ($output, $format) = $renderer->render(Mojolicious::Controller->new); my ($output, $format) = $renderer->render(Mojolicious::Controller->new, { template => 'foo/bar', foo => 'bar' }); Render output through one of the renderers. See "render" in Mojolicious::Controller for a more user-friendly interface. template_name my $template = $renderer->template_name({ template => 'foo/bar', format => 'html', handler => 'epl' }); Builds a template name based on an options hash reference with "template", "format" and "handler", usually used by handlers. template_path my $path = $renderer->template_path({ template => 'foo/bar', format => 'html', handler => 'epl' }); Builds a full template path based on an options hash reference with "template", "format" and "handler", usually used by handlers.
SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.