:>
<h1>Browser compatibility</h1>
-<p>Alternate view of Fyrd's <a href="http://caniuse.com/">when can I use...</a> page<:
+<p id="intro">Alternate view of Fyrd's <a href="http://caniuse.com/">when can I use...</a> page<:
my ($canihas, $usage);
given ($get{usage} // 'wm') {
when (!$_) {
<div id="browser">
<:
my $caniuse = do 'browser-support.inc.pl' or die $! || $@;
+$_->{verrelease} = {
+ # mark last two (future) versions as unreleased, ensure current isn't
+ map { $_->[-1] => 0, $_->[-2] => 0, $_->[-3] => undef } $_->{versions}
+} for values %{ $caniuse->{agents} };
my %CSTATS = (
'n' => 'l1',
'y' => 'l5',
- 'y x' => 'l4',
+ 'y x' => 'l5 ex',
'a' => 'l3',
- 'a x' => 'l3',
+ 'a x' => 'l3 ex',
'p j' => 'l2',
'j' => 'l2',
'p' => 'l2',
+ 'p p' => 'l2',
'u' => 'l0',
);
my %CSTATUS = (
'<tr>',
'<th colspan="3">feature',
(map {
- sprintf('<th colspan="%d" title="%.1f%%">%s',
+ my $name = $caniuse->{agents}->{$_}->{browser};
+ sprintf('<th colspan="%d" title="%s">%s',
scalar @{ $versions{$_} },
- sum(values %{ $canihas->{$_} }),
+ join(' ',
+ sprintf('%.1f%%', sum(values %{ $canihas->{$_} })),
+ $name,
+ ),
do {
- my $name = $caniuse->{agents}->{$_}->{browser};
- length $name < 16 ? $name : $caniuse->{agents}->{$_}->{abbr};
+ length $name < 3 + @{ $versions{$_} }*2 ? $name
+ : $caniuse->{agents}->{$_}->{abbr};
},
)
} @browsers),
print "\n<tr>";
print '<td>' x 3;
for my $browser (@browsers) {
- printf('<td title="%.1f%%">%s',
- $canihas->{$browser}->{$_}, showversions($_),
+ printf('<td title="%.1f%%"%s>%s',
+ $canihas->{$browser}->{$_},
+ (map {
+ defined $_ && !$_ && ' class="ex"'
+ } $caniuse->{agents}->{$browser}->{verrelease}->{$_}),
+ showversions($_),
) for @{ $versions{$browser} };
}
print '<td>' x 1;
sub featurescore {
# relative amount of support for given feature
- state $statspts = { y=>10, 'y x'=>9, a=>5, 'a x'=>5, j=>2, 'p j'=>2, p=>1 };
+ state $statspts = { y=>10, 'y x'=>10, a=>5, 'a x'=>5, j=>2, 'p j'=>2, p=>1 };
my $rank = 0;
if (my $row = shift) {
if ($canihas) {
for ($row->{status}) {
my $cell = $_ // '-';
$cell = sprintf '<a href="%s">%s</a>', $_, $cell for $row->{spec} // ();
- printf '<td title="%s" class="%s">%s',
+ printf '<td title="%s" class="l %s">%s',
$caniuse->{statuses}->{$_}, $CSTATUS{$_} // '', $cell;
}
for my $browser (@browsers) {
<div class="legend">
<table class="glyphs"><tr>
<td class="X l5">supported
- <td class="X l4">prefixed
<td class="X l3">partial
<td class="X l2">external (js/plugin)
<td class="X l1">missing
<td class="X l0">unknown
+ <td class="X l0 ex">prefixed
</table>
<p><: if ($usage) { :>
</div>
</div>
+<script src="/searchlocal.js"></script>
+<script> prependsearch(document.getElementById('intro')) </script>
+