blob: 9f1e2c7366a2030a5b26fa15dbf08afd3d41ef7d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package Dancer::Template::Xslate;
# ABSTRACT: Text::Xslate wrapper for Dancer
use strict;
use warnings;
use Text::Xslate;
use base 'Dancer::Template::Abstract';
my $_engine;
sub init {
my $self = shift;
my %args = (
%{$self->config},
);
$_engine = Text::Xslate->new(%args);
}
sub render {
my ($self, $template, $tokens) = @_;
my $content = eval {
$_engine->render($template, $tokens)
};
if (my $err = $@) {
my $error = qq/Couldn't render template "$err"/;
die $error;
}
return $content;
}
1;
=head1 DESCRIPTION
This class is an interface between Dancer's template engine abstraction layer
and the L<Text::Xslate> module.
In order to use this engine, use the template setting:
template: xslate
This can be done in your config.yml file or directly in your app code with the
B<set> keyword.
You can configure L<Text::Xslate> :
template: xslate
engines:
xslate:
cache_dir => "/www/.../xslate_cache",
cache => 1,
module =>
- Text::Xslate::Bridge::TT2 # to keep partial compatibility
=head1 SEE ALSO
L<Dancer>, L<Text::Xslate>, L<http://xslate.org/>
|