NAME
Dancer2::Template::Mason - Mason wrapper for Dancer2
VERSION
version 0.1.1
SYNOPSIS
# in 'config.yml'
template: 'mason'
# in the app
get '/foo', sub {
template 'foo' => {
title => 'bar'
};
};
Then, on views/foo.mason
:
<%args>
$title
</%args>
<h1><% $title %></h1>
<p>Mason says hi!</p>
DESCRIPTION
This class is an interface between Dancer's template engine abstraction layer and the HTML::Mason templating system. For templates using Mason version 2.x, what you want is Dancer2::Template::Mason2.
In order to use this engine, set the template to 'mason' in the configuration file:
template: mason
HTML::Mason::Interp CONFIGURATION
Parameters can also be passed to the HTML::Mason::Interp interpreter via the configuration file, like so:
engines:
mason:
default_escape_flags: ['h']
If unspecified, comp_root
defaults to the views
configuration setting or, if it's undefined, to the /views
subdirectory of the application.
Notes on Mason Caching and Performance
To improve performance of your templates, Mason creates a long-term cache on disk. This is great in production, where you want to squeak every ounce of performance out of your application, but in development, it can be a pain to constantly clear the cache. And when developing, it's not always clear where Mason even stores the cache!
For development, we recommend disabling the Mason cache. In your environments/development.yml file, you'd put the following:
template: "mason"
engines:
template:
mason:
use_object_files: 0
static_source: 0
(static_source is also a potential performance enhancing setting. See the Mason docs for more details)
In production (environments/production.yml), recommended settings are:
template: "mason"
engines:
template:
mason:
extension: m
data_dir: "/path/to/your/app/var/"
use_object_files: 1
static_source: 1
data_dir
tells Mason where to store its long-term cache. It must be an absolute path.
Clearing the cache is as easy as:
rm -rf /path/to/your/app/var/obj
See the Mason docs for more information on the object files and caching.
SEE ALSO
For Mason v2, see Mason and Dancer2::Template::Mason2.
And, of course, there is the original Dancer::Template::Mason.
AUTHOR
Yanick Champoux <yanick@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2023 by Yanick Champoux.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.