X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/e6123313e3d9fe59ae9334aa4324b42d62f6a0d8..a8e253aa1f8e235a4793e0a3c06442ddc3db3117:/browser.plp diff --git a/browser.plp b/browser.plp index bd6d8ab..7355aa7 100644 --- a/browser.plp +++ b/browser.plp @@ -5,13 +5,13 @@ use List::Util qw(sum max first); Html({ title => 'browser compatibility cheat sheet', - version => 'v1.0', + version => 'v1.1', description => [ "Compatibility table of new web features (HTML5, CSS3, SVG, Javascript)", "comparing support and usage share for all popular browser versions.", ], keywords => [qw' - web browser support compatibility usage available feature + web browser support compatibility usage matrix available feature html html5 css css3 svg javascript js dom mobile ie internet explorer firefox chrome safari webkit opera '], @@ -63,12 +63,13 @@ my %DSTATS = ( ); my %CSTATUS = ( unoff => 'l1', # unofficial - wd => 'l3', # draft - cr => 'l4', # candidate - pr => 'l4', # proposed + wd => 'l2', # draft + cr => 'l3', # candidate + pr => 'l3', # proposed rec => 'l5', # recommendation - other => 'l2', # non-w3 - ietf => 'l5', # standard + ls => 'l4', # whatwg + ietf => 'l0', # standard + other => 'l0', # non-w3 ); my %versions; if (my ($somerow) = values %{ $caniuse->{data} }) { @@ -81,7 +82,7 @@ print <<'';

Alternate rendition of Fyrd's when can I use... page my ($canihas, $usage); -my $minusage = $get{threshold} // .5; +my $minusage = $get{threshold} // .7; given ($get{usage} // 'wm') { when (!$_) { # none @@ -158,6 +159,7 @@ if ($usage) { # first() does not work inside given >:( } else { # order browser columns by name grouped by engine + @{$_} = map { [$_] } @{$_} for values %versions; @browsers = sort { $caniuse->{agents}->{$b}->{prefix} cmp $caniuse->{agents}->{$a}->{prefix} @@ -198,7 +200,7 @@ say ''; my $header = join('', '', - 'feature', + 'feature', (map { my $name = $caniuse->{agents}->{$_}->{browser}; sprintf('%s', @@ -211,17 +213,16 @@ my $header = join('', $name, ), do { - length $name < 3 + @{ $versions{$_} }*2 ? $name + length $name <= (3 * @{ $versions{$_} }) ? $name : $caniuse->{agents}->{$_}->{abbr}; }, ) } @browsers), - '%', + '%', ); print '', $header; # preceding row without any colspan to work around gecko bug print "\n"; -print '' x 3; for my $browser (@browsers) { for (@{ $versions{$browser} }) { my $lastver = $_->[-1]; @@ -238,9 +239,21 @@ for my $browser (@browsers) { ); } } -print '' x 1; say ''; -say '', $header, ''; +say '', $header; +{ + # prefix indicates browser family; count adjacent families + my (@families, %familycount); + for my $browser (@browsers) { + my $family = $caniuse->{agents}->{$browser}->{prefix}; + push @families, $family unless $familycount{$family}; + $familycount{$family} += @{ $versions{$browser} }; + } + + print "\n", ''; + printf '%s', $familycount{$_}, $_ for @families; +} +say ''; sub featurescore { # relative amount of support for given feature