X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/89d70c322fed012f3efda452e81437d2ee14c629..8c3e7dc6481f4d61eca39c1250699302a329be56:/common.inc.plp diff --git a/common.inc.plp b/common.inc.plp index 879381d..6330329 100644 --- a/common.inc.plp +++ b/common.inc.plp @@ -1,6 +1,6 @@ <: +use 5.014; use utf8; -use strict; use warnings; no warnings 'qw'; # you know what you doing no warnings 'uninitialized'; # save some useless checks for more legible code @@ -12,8 +12,14 @@ use HTTP::Date; $PLP::ERROR = sub { my ($text, $html) = @_; print '

Fatal error: '.$html."

\n\n"; + warn $text; }; +BEGIN { + require Time::HiRes; + our $Time = [Time::HiRes::gettimeofday]; +} + our $style; our $showkeys = !exists $get{keys} ? undef : ($get{keys} ne '0' && ($get{keys} || 'always')); @@ -21,7 +27,9 @@ our $showkeys = !exists $get{keys} ? undef : $header{content_type} = 'text/html; charset=utf-8'; sub stylesheet { - my %styles = map {$_ => $_} @_; + my ($avail) = @_; + my @avail = ref $avail eq 'ARRAY' ? @{$avail} : $avail or return; + my %styles = map {$_ => $_} @avail; if (defined( my $setstyle = $get{style} )) { $style = $styles{ $setstyle }; @@ -37,12 +45,12 @@ sub stylesheet { } or warn "Unable to create style cookie: $@"; } - $style ||= exists $cookie{style} && $styles{ $cookie{style} } || $_[0]; + $style ||= exists $cookie{style} && $styles{ $cookie{style} } || $avail[0]; - return join "\n", map { sprintf( + return map { sprintf( '', - $_ eq $style ? 'stylesheet' : 'alternate stylesheet', "/$_.css?1.7", $_ - ) } @_; + $_ eq $style ? 'stylesheet' : 'alternate stylesheet', "/$_.css?1.9", $_ + ) } @avail; } sub checkmodified { @@ -77,6 +85,8 @@ sub Html { $meta->{stylesheet} ||= [qw'light dark circus mono red terse']; $meta->{charset} ||= 'utf-8'; + ref $_ eq 'ARRAY' or $_ = [$_] for $meta->{raw}; + # optional amends push @{ $meta->{raw} }, ( '', @@ -91,9 +101,9 @@ sub Html { ref $_ eq 'ARRAY' and $_ = join ' ', @$_ for $meta->{description}; ref $_ eq 'ARRAY' and $_ = join ', ', @$_ for $meta->{keywords}; ref $_ eq 'ARRAY' and $_ = join "\n", @$_ for $meta->{raw}; - ref $_ eq 'ARRAY' and $_ = stylesheet(@$_)."\n" for $meta->{stylesheet}; # other vars + my $Dev = $ENV{HTTP_HOST} =~ /\bdev\./; my ($file) = $ENV{SCRIPT_FILENAME} =~ m{ ([^/]+) \.plp$ }x; # leading output @@ -107,11 +117,24 @@ sub Html { $meta->{title} + EOT - print $_, "\n" for $meta->{stylesheet} || (); - print $_, "\n" for $meta->{raw} || (); - print qq{\n\n\n}; + say for stylesheet($meta->{stylesheet}); + say for $meta->{raw} || (); + say '' if $Dev; + say qq{\n\n}; + + # development version indicator + printf '

beta

', join('; ', + 'position: fixed', + 'right: 1em', + 'opacity: .5', + 'border: 1ex solid red', + 'border-width: 1ex 0', + 'z-index: 1', + 'background: inherit', + ) if $Dev; # prepare trailing output PLP_END { @@ -119,15 +142,16 @@ EOT - - EOT + say sprintf '• %.3fs', Time::HiRes::tv_interval($Time) if $Dev; + say '

'; + say ''; + say ''; }; }