X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/7d058f41993c955a19f1123b76938e292eee319e..0b7c0c10cebb4a8be61e88a3b1d62bdd638d77c0:/browser.plp?ds=sidebyside
diff --git a/browser.plp b/browser.plp
index 19011ab..2776a5b 100644
--- a/browser.plp
+++ b/browser.plp
@@ -6,8 +6,10 @@ use List::Util qw(sum max first);
Html({
title => 'browser compatibility cheat sheet',
version => 'v1.0',
- description =>
- "caniuse.",
+ 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
html html5 css css3 svg javascript js dom mobile
@@ -86,8 +88,9 @@ given ($get{usage} // 'wm') {
break;
};
$usage = $_;
- my $ref = $canihas->{-source} || 'unknown';
- $ref = sprintf '%s', $_, $ref for $canihas->{-url} || ();
+ my $ref = $canihas->{-title} || 'unknown';
+ $ref = sprintf '%s', $_, $ref
+ for $canihas->{-site} || $canihas->{-source} || ();
$ref .= " $_" for $canihas->{-date} || ();
print "\nwith $ref browser usage statistics";
}
@@ -99,9 +102,10 @@ if ($usage) {
$row->{$_} //= undef for @$verlist; # ensure stable keys during iteration
while (my ($version, $usage) = each %$row) {
next if defined $supported{$version};
- $_ = paddedver($_) for $version;
- my $next = first { paddedver($_) ge $version } @$verlist; # or next
+ my $next = first { paddedver($_) ge paddedver($version) } @$verlist
+ or warn("No fallback found for $browser v$version; $usage% ignored"), next;
$row->{$next} += $usage;
+ $row->{$version} = 0; # balance browser total
}
}
}
@@ -163,16 +167,19 @@ print '', $header;
print "\n";
print ' ';
@@ -232,10 +239,14 @@ sub saytitlecol {
} $row->{title};
print '' x 3;
for my $browser (@browsers) {
- printf(' %s',
- join(' ',
- sprintf('%.1f%%', $canihas->{$browser}->{$_} * $usagepct),
- "version $_",
- ),
- (map {
- defined $_ && !$_ && ' class="ex"'
- } $caniuse->{agents}->{$browser}->{verrelease}->{$_}),
- showversions($_),
- ) for @{ $versions{$browser} };
+ for my $_ (@{ $versions{$browser} }) {
+ my $release = $caniuse->{agents}->{$browser}->{verrelease}->{$_};
+ my $future = defined $release;
+ printf(' %s',
+ join(' ',
+ sprintf('%.1f%%', $canihas->{$browser}->{$_} * $usagepct),
+ $future ? 'development' : (),
+ "version $_",
+ ),
+ $future && ' class="ex"',
+ showversions($_),
+ );
+ }
}
print ' ' x 1;
say '
$_
" for map { ref $_ ? @$_ : $_ || () } - Entity($row->{description}), formathtml($row->{notes}); # sic + Entity($row->{description}), + map { s/\s*\n/\n