charset: newline after each cell in HTML source
[sheet.git] / common.inc.plp
index 3075e7b5a489b624c6a5555f8630eb2dd7da354a..cd218efe2436d4e6dbc36ec67e196992a5196ccd 100644 (file)
@@ -8,10 +8,21 @@ use open ':std' => ':utf8';
 
 use File::stat 'stat';
 use HTTP::Date;
+use Encode qw( decode_utf8 );
+
+sub Alert {
+       my ($html, $debug) = @_;
+       ref $html eq 'ARRAY' or $html = [$html];
+       my ($title, @lines) = @{$html};
+       $body = "<h2>$title</h2>";
+       $body .= "\n<p>$_</p>" for @lines;
+       $body .= "\n<pre>$debug</pre>" if $Dev and $debug;
+       say "<div class=error>$body</div>\n";
+}
 
 $PLP::ERROR = sub {
        my ($text, $html) = @_;
-       print '<p class="error"><strong>Fatal error</strong>: '.$html."</p>\n\n";
+       Alert("<strong>Fatal error</strong>: $html.");
        warn $text;
 };
 
@@ -20,6 +31,11 @@ BEGIN {
        our $Time = [Time::HiRes::gettimeofday];
 }
 
+# user request
+our $Dev = $ENV{HTTP_HOST} =~ /\bdev\./;
+our ($file) = $ENV{SCRIPT_FILENAME} =~ m{ ([^/]+) \.plp$ }x;
+our $Request = decode_utf8($ENV{PATH_INFO} =~ s{^/}{}r);
+
 our $style;
 our $showkeys = !exists $get{keys} ? undef :
        ($get{keys} ne '0' && ($get{keys} || 'always'));
@@ -99,10 +115,6 @@ sub Html {
                '<script type="text/javascript" src="/keys.js?1.6"></script>',
        ) if $meta->{keys};
 
-       # other vars
-       my $Dev = $ENV{HTTP_HOST} =~ /\bdev\./;
-       my ($file) = $ENV{SCRIPT_FILENAME} =~ m{ ([^/]+) \.plp$ }x;
-
        # leading output
        $header{content_type} = "text/html; charset=$meta->{charset}";
        say '<!DOCTYPE html>';