Do not crash when passing undef to literal
[plack-app-gruntmaster.git] / lib / Plack / App / Gruntmaster / HTML.pm
index a21b6cc933da5393d48e6e67a4ddf84a6397d0ca..9f6f2ec5b27c6454686be8a1916a3b95df8b018e 100644 (file)
@@ -4,12 +4,20 @@ use parent qw/Exporter/;
 our @EXPORT = qw/render render_article/;
 
 use File::Slurp qw/read_file/;
-use HTML::Seamstress;
+use HTML::Element::Library;
+use HTML::TreeBuilder;
 use POSIX qw//;
 use Data::Dumper qw/Dumper/;
 
 sub ftime ($)   { POSIX::strftime '%c', localtime shift }
-sub literal ($) { HTML::Element::Library::super_literal shift // '' }
+sub literal ($) {
+       my ($html) = @_;
+       return unless $html;
+       my $b = HTML::TreeBuilder->new;
+       $b->ignore_unknown(0);
+       $b->parse($html);
+       HTML::Element::Library::super_literal $b->guts->as_HTML;
+}
 
 sub HTML::Element::edit_href {
        my ($self, $sub) = @_;
@@ -45,7 +53,7 @@ sub HTML::Element::namedlink {
 my %page_cache;
 for (<tmpl/*>) {
        my ($tmpl, $lang) = m,tmpl/(\w+)\.(\w+),;
-       my $builder = HTML::Seamstress->new;
+       my $builder = HTML::TreeBuilder->new;
        $builder->ignore_unknown(0);
        $page_cache{$tmpl, $lang} = $builder->parse_file($_);
 }
This page took 0.009989 seconds and 4 git commands to generate.