From: Marius Gavrilescu Date: Wed, 25 Mar 2015 14:53:39 +0000 (+0200) Subject: Merge branch 'master' into newmc X-Git-Url: http://git.ieval.ro/?a=commitdiff_plain;ds=inline;h=838663d1450cf5606e59c30966e2e56b0f787416;hp=-c;p=plack-app-gruntmaster.git Merge branch 'master' into newmc --- 838663d1450cf5606e59c30966e2e56b0f787416 diff --combined lib/Plack/App/Gruntmaster/HTML.pm index 0a10ee8,f2b4ec9..a595331 --- a/lib/Plack/App/Gruntmaster/HTML.pm +++ b/lib/Plack/App/Gruntmaster/HTML.pm @@@ -42,6 -42,14 +42,14 @@@ sub HTML::Element::namedlink $self->replace_content($name); } + my %page_cache; + for () { + my ($tmpl, $lang) = m,tmpl/(\w+)\.(\w+),; + my $builder = HTML::Seamstress->new; + $builder->ignore_unknown(0); + $page_cache{$tmpl, $lang} = $builder->parse_file($_); + } + sub render { my ($tmpl, $lang, %args) = @_; $lang //= 'en'; @@@ -59,9 -67,7 +67,7 @@@ sub render_article sub _render { my ($tmpl, $lang, %args) = @_; - my $builder = HTML::Seamstress->new; - $builder->ignore_unknown(0); - my $tree = $builder->parse_file("tmpl/$tmpl.$lang"); + my $tree = $page_cache{$tmpl, $lang}->clone or die "No such template/language combination: $tmpl/$lang\n"; $tree = $tree->guts unless $tmpl eq 'skel'; $tree->defmap(smap => \%args); my $process = __PACKAGE__->can("process_$tmpl"); @@@ -74,7 -80,6 +80,7 @@@ sub process_skel { my ($tree, %args) = @_; + $tree->fid('logo')->replace_with(literal scalar read_file "mclogo.svg"); $tree->content_handler( title => $args{title}, content => literal $args{meat}); @@@ -160,7 -165,10 +166,7 @@@ sub process_pb_entry if ($args{contest_stop}) { $tree->fid('solution')->detach; $tree->fid('solution_modal')->detach; - my $score = $tree->fid('score'); - $score->attr('data-start' => $args{open_time}); - $score->attr('data-stop' => $args{contest_stop}); - $score->attr('data-value' => $args{value}); + $tree->fid('score')->replace_content($args{value}); $tree->fid('countdown')->attr('data-stop' => $args{contest_stop}); } else { $tree->fid('job_log')->edit_href(sub{$_ .= "&private=$args{private}"}) if $args{private}; @@@ -293,3 -301,6 +299,6 @@@ sub process_ed my @pb = map { @{$args{$_} // []} } qw/beginner easy medium hard/; $tree->fclass('well')->iter3(\@pb, $iter); } + + 1; + __END__