Fork me on GitHub
(source)

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' },
        ]
    );

SEE ALSO

Statocles::Help::Theme
Statocles::Theme