git.shiar.nl
/
sheet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
termcol: dawnbringer32 option
[sheet.git]
/
browser.plp
diff --git
a/browser.plp
b/browser.plp
index effda377a2f9bbf1e5ce3564c2010238ac2c2923..1c5bb8535cb9dfab8a1d9d95421c0a6a86f08e2e 100644
(file)
--- a/
browser.plp
+++ b/
browser.plp
@@
-4,7
+4,7
@@
no if $] >= 5.018, warnings => 'experimental::smartmatch';
Html({
title => 'browser compatibility cheat sheet',
Html({
title => 'browser compatibility cheat sheet',
- version => '1.
4
',
+ version => '1.
5
',
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.",
@@
-193,11
+193,11
@@
$canihas ||= {
} @browsers
}; # fallback hash based on release semantics
} @browsers
}; # fallback hash based on release semantics
-my $usagepct = 1; # score multiplier for 0..100 result
-# normalise usage percentage to only include shown browsers
-$usagepct = 100.01 / featurescore({ # yes for every possible version
- map { $_ => { map {$_ => 'y'} map { @{$_} } @{$versions{$_}} } } keys %versions
-});
+# score multiplier for percentage of all browser versions
+my $usagepct = 99.99 / sum(
+ map { $_->{-total} // values %{$_} } values %{$canihas}
+);
+
$_->{usage} = featurescore($_->{stats}) * $usagepct
for values %{ $caniuse->{data} };
$_->{usage} = featurescore($_->{stats}) * $usagepct
for values %{ $caniuse->{data} };
@@
-232,18
+232,18
@@
print '<thead>', $header;
# preceding row without any colspan to work around gecko bug
print "\n<tr>";
for my $browser (@browsers) {
# preceding row without any colspan to work around gecko bug
print "\n<tr>";
for my $browser (@browsers) {
- for (@{ $versions{$browser} }) {
+ for
my $span
(@{ $versions{$browser} }) {
my $lastver = first {
!defined $caniuse->{agents}->{$browser}->{verrelease}->{$_} # stable
my $lastver = first {
!defined $caniuse->{agents}->{$browser}->{verrelease}->{$_} # stable
- } reverse @{$
_
};
+ } reverse @{$
span
};
printf('<td title="%s"%s>%s',
join(' ',
printf('<td title="%s"%s>%s',
join(' ',
- sprintf('%.1f%%', sum(@{ $canihas->{$browser} }{
@$_
}) * $usagepct),
- 'version ' . showversions(@{$
_
}, undef),
- $
_
->[-1] eq $lastver ? () : '(development)',
+ sprintf('%.1f%%', sum(@{ $canihas->{$browser} }{
@{$span}
}) * $usagepct),
+ 'version ' . showversions(@{$
span
}, undef),
+ $
span
->[-1] eq $lastver ? () : '(development)',
),
!defined $lastver && ' class="ex"',
),
!defined $lastver && ' class="ex"',
- showversions($lastver),
+ showversions($lastver
// $span->[0]
),
);
}
}
);
}
}
@@
-389,7
+389,12
@@
sub saybrowsercols {
|| 'u' # unsure
);
unless (!defined $prev or $prev ~~ $compare) {
|| 'u' # unsure
);
unless (!defined $prev or $prev ~~ $compare) {
- my $usage = sum(@{ $canihas->{$browser} }{ map { @{$_} } @span });
+ my @vercover = (map { @{$_} } @span);
+ for ($ver ? @{$ver} : ()) {
+ $data->{$_} eq $data->{$vercover[-1]} or last;
+ push @vercover, $_; # matches from next span start
+ }
+ my $usage = sum(@{ $canihas->{$browser} }{@vercover});
# strip #\d note references from support class
my @notes;
# strip #\d note references from support class
my @notes;
@@
-398,13
+403,13
@@
sub saybrowsercols {
# prepare version hover details
my $title = sprintf('%.1f%% %s', $usage * $usagepct, join(' ',
# prepare version hover details
my $title = sprintf('%.1f%% %s', $usage * $usagepct, join(' ',
- (map { ref $_ eq 'CODE' ? $_->($browser, $
span[0]->
[0]) : $_ }
+ (map { ref $_ eq 'CODE' ? $_->($browser, $
vercover
[0]) : $_ }
map { $DSTATS{$_} // () }
map { split / /, $_ }
$prev
),
'in', $caniuse->{agents}->{$browser}->{abbr},
map { $DSTATS{$_} // () }
map { split / /, $_ }
$prev
),
'in', $caniuse->{agents}->{$browser}->{abbr},
- showversions(
(map { @{$_} } @span)
, undef),
+ showversions(
@vercover
, undef),
));
$title .= "\n$_" for notestotitle(@notes);
));
$title .= "\n$_" for notestotitle(@notes);
@@
-450,9
+455,9
@@
say '</table>';
sub paddedver {
# normalised version number comparable as string (cmp)
sub paddedver {
# normalised version number comparable as string (cmp)
-
shift =~
/(?:.*-|^)(\d*)(.*)/;
+
$_[0] =~ m
/(?:.*-|^)(\d*)(.*)/;
# matched (major)(.minor) of last value in range (a-B)
# matched (major)(.minor) of last value in range (a-B)
- return sprintf('%02d',
$1 ||
99) . $2;
+ return sprintf('%02d',
length $1 ? $1 :
99) . $2;
}
sub showversions {
}
sub showversions {
@@
-506,5
+511,7
@@
sub showversions {
</div>
<script type="text/javascript" src="/searchlocal.js"></script>
</div>
<script type="text/javascript" src="/searchlocal.js"></script>
-<script type="text/javascript"> prependsearch(document.getElementById('intro')) </script>
+<script type="text/javascript"><!--
+ prependsearch(document.getElementById('intro'));
+//--></script>