X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/4ca5c383de798f0aa6b1b5e149c620a77b753400..dc1ab5f00eed170e75fe40687b381369a35760b8:/codec.plp diff --git a/codec.plp b/codec.plp index 1ae734a..1ce4611 100644 --- a/codec.plp +++ b/codec.plp @@ -1,37 +1,53 @@ <(common.inc.plp)><: -my @feat = split m{/+}, $Request || 'default'; +my ($page, @feat) = split m{/+}, $Request || 'image'; +$page !~ /\W/ or Html(), Abort('Invalid codec type request', 400); +@feat or @feat = 'default'; +my $title = "$page codecs"; Html({ - title => 'Codecs', + title => "$title cheat sheet", version => '1.0', description => [ ], keywords => [qw' + codec encoder encoding decode file format type mime + feature comparison support benchmark compression + image audio video '], stylesheet => [qw'light circus dark red'], data => [qw'codec.inc.pl'], + raw => '', }); -my $info = do 'codec.inc.pl'; -$info and %{$info} > 1 or Abort("cannot open operator include", 500, $@ // $!); +my $info = do "codec-$page.inc.pl"; +$info and %{$info} > 1 + or Abort("Requested codec type $page not available", '404 request not found', $@ // $!); + +say "

\u$title

"; +say "

$_

" for $info->{intro} // (); my %BOOLSCORE = (y => [5, '✔'], n => [1, '✘'], 0 => [0, 'n/a']); :> -

Image codecs

- -"; -print ''; + my @spans; + $spans[ $_->{generation} ]++ for @codeccols; + print "" for @spans; +} +say ''; +print ''; while (defined (my $feat = shift @feat)) { @@ -41,7 +57,7 @@ while (defined (my $feat = shift @feat)) { print '' if $featinfo->{children}; printf ''; }
feature <: my @codecs = sort { $info->{codec}->{$a}->{available} <=> $info->{codec}->{$b}->{available} } keys $info->{codec}->%*; +my @codeccols = @{$info->{codec}}{@codecs}; -print '', $_->{name} for @{$info->{codec}}{@codecs}; -print "\n
', $_->{available} for @{$info->{codec}}{@codecs}; +{ + print '
'; +say "\t", '', $_->{name} for @codeccols; +print '
', $_->{available} for @codeccols; say '
%s', $featinfo->{name} // $feat; for (@codecs) { - my ($score, $data) = map { ref ? @$_ : $_ } $featinfo->{score}->{$_}; + my ($score, $data, $title) = map { ref ? @$_ : $_ } $featinfo->{score}->{$_}; if (not defined $data) { if (my $override = $BOOLSCORE{$score}) { ($score, $data) = @{$override}; @@ -50,7 +66,9 @@ while (defined (my $feat = shift @feat)) { $data = '•' x ($score - 1); } } - printf '%s', $score, $data; + printf '', $data; } say '