common: prepare path request in global variable
[sheet.git] / common.inc.plp
index d6ef393c0313c437124e6c0d5f626394d9d76914..0a010d24170790cb592b18782c4787144129313f 100644 (file)
@@ -20,6 +20,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 = $ENV{PATH_INFO} =~ s{^/}{}r;
+
 our $style;
 our $showkeys = !exists $get{keys} ? undef :
        ($get{keys} ne '0' && ($get{keys} || 'always'));
@@ -54,7 +59,7 @@ sub stylesheet {
 }
 
 sub checkmodified {
-       my $lastmod;
+       my $lastmod = 0;
        for (@_) {
                my $mod = stat $_ or next;
                $mod = $mod->mtime or next;
@@ -99,20 +104,14 @@ 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}";
-       print <<"EOT";
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
-<meta http-equiv="content-type" content="$header{content_type}">
-<title>$meta->{title}</title>
-EOT
+       say '<!DOCTYPE html>';
+       say '<html lang="en">';
+       say '';
+       say '<head>';
+       say sprintf '<meta http-equiv="content-type" content="%s">', $header{content_type};
+       say sprintf '<title>%s</title>', $meta->{title};
        say sprintf '<meta name="description" content="%s">', EscapeHTML($_)
                for join(' ', @{ $meta->{description} }) || ();
        say sprintf '<meta name="keywords" content="%s">', EscapeHTML($_)
@@ -122,7 +121,9 @@ EOT
        say for stylesheet($meta->{stylesheet});
        say for map { @{$_} } $meta->{raw} || ();
        say '<meta name="robots" content="noindex">' if $Dev;
-       say qq{</head>\n\n<body id="$file">};
+       say '</head>';
+       say '';
+       say sprintf '<body id="%s">', $file;
 
        # development version indicator
        printf '<p style="%s">beta</p>', join('; ',