*{"${caller}::strftime"} = \&POSIX::strftime;
*{"${caller}::NAME"} = sub () { $name };
*{"${caller}::TITLE"} = sub () { $title };
+ *{"${caller}::debug"} = sub {
+ local $Log::Log4perl::caller_depth = $Log::Log4perl::caller_depth + 1;
+ $_[0]->({qw/level debug message/ => $_[1]})
+ };
}
##################################################
en => <<'HTML',
<!DOCTYPE html>
<title>TITLE_GOES_HERE</title>
-<link rel="stylesheet" href="/gm.css">
-<script src="/zepto.var" defer></script>
-<script src="/view.js" defer></script>
-<script src="/form.js" defer></script>
+<link rel="stylesheet" href="/static/gm.css">
+<script src="/static/zepto.var" defer></script>
+<script src="/static/view.js" defer></script>
+<script src="/static/form.js" defer></script>
<meta charset="utf-8">
<span id="admin"></span>
<div id="title"><span class="i">i</span><span class="Eval">Eval</span></div>
<div id="subtitle">TITLE_GOES_HERE</div>
-<nav><ul><li><a href="/learn.var">Learn</a><li><a href="/pb/">Practice</a><li><a href="/ct/">Compete</a><li><a href="/log/">Job log</a></ul></nav>
+<nav><ul>
+<li><a href="/pb/">Problems</a>
+<li><a href="/ct/">Contests</a>
+<li><a href="/log/">Job log</a></ul></nav>
HTML
);
my %templates;
sub generate{
- my ($self, $path, $lang) = @_;
+ my ($self, $lang, @args) = @_;
$templates{$self} = { cook_templates $self->TEMPLATES, $self->NAME => $self->TITLE } if !exists $templates{$self} or reload_templates;
my $htc = HTML::Template::Compiled->new(scalarref => \$templates{$self}{$lang}, default_escape => 'HTML',);
- $self->_generate($htc, $path, $lang);
- $htc->output
+ $self->_generate($htc, $lang, @args);
+ [200, ['Content-Type' => 'text/html', 'Content-Language' => $_[1]], [ $htc->output ] ]
}
sub _generate {}
+sub variants {
+ [ map { [ $_, 1, 'text/html', undef, undef, $_, undef ]} keys $_[0]->TEMPLATES ]
+}
+
1