X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/a213453ce900f654f44ca6ff11a69df07215cdfe..a8e253aa1f8e235a4793e0a3c06442ddc3db3117:/browser.plp?ds=sidebyside diff --git a/browser.plp b/browser.plp index 9fd9e90..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 '], @@ -23,8 +23,11 @@ say "
Alternate rendition of Fyrd's when can I use... page -my ($canihas, $usage, $minusage); +my ($canihas, $usage); +my $minusage = $get{threshold} // .7; given ($get{usage} // 'wm') { when (!$_) { # none @@ -98,12 +102,18 @@ given ($get{usage} // 'wm') { $ref .= " $_" for $canihas->{-date} || (); print "\nwith $ref browser usage statistics"; } + +my @browsers; if ($usage) { # first() does not work inside given >:( # adapt version usage to actual support data my %engineuse; # prefix => usage sum for my $browser (keys %versions) { my $row = $canihas->{$browser} // {}; my $verlist = $versions{$browser} or next; + if ($minusage and sum(values %$row) < $minusage) { + delete $versions{$browser}; + next; + } my %supported = map { $_ => 1 } @$verlist; # cascade unknown versions @@ -117,7 +127,7 @@ if ($usage) { # first() does not work inside given >:( } # build row list for each version - if ($minusage = $get{threshold} // .5) { + if ($minusage) { my @vershown; # $verlist replacement my ($rowusage, @verrow) = (0); # replacement row tracking for (@$verlist) { @@ -145,16 +155,17 @@ if ($usage) { # first() does not work inside given >:( $engineuse{ $caniuse->{agents}->{$a}->{prefix} } || $canihas->{$b}->{-total} <=> $canihas->{$a}->{-total} - } @browsers; + } keys %versions; } else { # order browser columns by name grouped by engine + @{$_} = map { [$_] } @{$_} for values %versions; @browsers = sort { $caniuse->{agents}->{$b}->{prefix} cmp $caniuse->{agents}->{$a}->{prefix} || $a cmp $b - } @browsers; + } keys %versions; } :>.
@@ -189,7 +200,7 @@ say '