use List::Util qw(sum max first);
no if $] >= 5.018, warnings => 'experimental::smartmatch';
Html({
title => 'browser compatibility cheat sheet',
use List::Util qw(sum max first);
no if $] >= 5.018, warnings => 'experimental::smartmatch';
Html({
title => 'browser compatibility cheat sheet',
description => [
"Compatibility table of new web features (HTML5, CSS3, SVG, Javascript)",
"comparing support and usage share for all popular browser versions.",
description => [
"Compatibility table of new web features (HTML5, CSS3, SVG, Javascript)",
"comparing support and usage share for all popular browser versions.",
a => .5, 'a x' => .5, 'a d' => .1,
j => .2, 'p j' => .2, 'n d' => .2, 'n x d' => .2,
p => .2, 'p p' => .2, 'p d' => .1,
a => .5, 'a x' => .5, 'a d' => .1,
j => .2, 'p j' => .2, 'n d' => .2, 'n x d' => .2,
p => .2, 'p p' => .2, 'p d' => .1,
-if (my ($somerow) = values %{ $caniuse->{data} }) {
- while (my ($browser, $row) = each %{ $somerow->{stats} }) {
- $versions{$browser} = [ sort { paddedver($a) cmp paddedver($b) } keys %$row ];
- }
+while (my ($browser, $row) = each %{ $caniuse->{agents} }) {
+ $versions{$browser} = [
+ sort { paddedver($a) cmp paddedver($b) } grep { defined }
+ @{ $row->{versions} }
+ ];
- printf "<p>Invalid browser usage data request: <em>%s</em>",
- 'identifier must be alphanumeric name or <q>0</q>';
+ Alert([
+ 'Invalid browser usage data request',
+ 'Identifier must be alphanumeric name or <q>0</q>.',
+ ]);
for $canihas->{-site} || $canihas->{-source} || ();
$ref .= " $_" for $canihas->{-date} || ();
print "\nwith $ref browser usage statistics";
for $canihas->{-site} || $canihas->{-source} || ();
$ref .= " $_" for $canihas->{-date} || ();
print "\nwith $ref browser usage statistics";
my $usagepct = 1; # score multiplier for 0..100 result
# normalise usage percentage to only include shown browsers
my $usagepct = 1; # score multiplier for 0..100 result
# normalise usage percentage to only include shown browsers
say '</p>';
}
printf 'Resources: %s.', join(', ', map {
say '</p>';
}
printf 'Resources: %s.', join(', ', map {
} @$_) for grep { @$_ } $row->{links} // ();
printf '<br>Parent feature: %s.', join(', ', map {
} @$_) for grep { @$_ } $row->{links} // ();
printf '<br>Parent feature: %s.', join(', ', map {
printf '<td title="%s" class="l %s">%s',
$caniuse->{statuses}->{$_}, $CSTATUS{$_} // '', $cell;
}
printf '<td title="%s" class="l %s">%s',
$caniuse->{statuses}->{$_}, $CSTATUS{$_} // '', $cell;
}
sprintf('p%01d', $usage * ($usagepct - .0001) / 10),
sprintf('p%02d', $usage * ($usagepct - .0001)),
),
sprintf('p%01d', $usage * ($usagepct - .0001) / 10),
sprintf('p%02d', $usage * ($usagepct - .0001)),
),