NAME
Statocles::Template - A template object to pass around
DESCRIPTION
This is the template abstraction layer for Statocles.
ATTRIBUTES
content
The main template string. This will be generated by reading the file path
by default.
path
The path to the file for this template. Optional.
theme
The theme this template was created from. Used for includes and other information.
METHODS
BUILDARGS
Set the default path to something useful for in-memory templates.
render
my $html = $tmpl->render( %args )
Render this template, passing in %args. Each key in %args will be available as a scalar in the template.
coercion
my $coerce = Statocles::Template->coercion;
has template => (
is => 'ro',
isa => InstanceOf['Statocles::Template'],
coerce => Statocles::Template->coercion,
);
A class method to returns a coercion sub to convert strings into template objects.
TEMPLATE LANGUAGE
The default Statocles template language is Mojolicious's Embedded Perl template. Inside the template, every key of the %args passed to render() will be available as a simple scalar:
# template.tmpl
% for my $p ( @$pages ) {
<%= $p->{content} %>
% }
my $tmpl = Statocles::Template->new( path => 'template.tmpl' );
$tmpl->render(
pages => [
{ content => 'foo' },
{ content => 'bar' },
]
);