common: prepare path request in global variable
[sheet.git] / common.inc.plp
index 58d096481b05d882d14b7e3008335003b23e41d7..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'));
@@ -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('; ',