"caniuse.",
keywords => [qw'html css browser feature'],
stylesheet => [qw'light dark circus mono red'],
- data => ['caniuse.js'],
+ data => ['browser-support.inc.pl'],
});
:>
browser usage statistics.</p>
<:
-use JSON;
-use File::Slurp 'read_file';
-my $source = read_file('caniuse.js');
-for ($source) { # cleanup
- # convert seperate variables to hash keys
- s/\A/{/;
- s/^caniuse\.(\w+) = /"$1":/gm;
- s/;$/,/gm;
- s/,\s*\Z/\n}/;
- # fractions not supported by barekey
- s/(?<=[,{]) (\d*\.\d) (?=:')/"$1"/gx;
- # escapes not supported in singlequote
- s{'((?:[^\\']+|\\.)*)'}{
- my $_ = $1;
- s/"/\\"/g;
- s/\\'/'/g;
- qq("$_");
- }ge;
-}
-my $caniuse = from_json($source, {
-# allow_singlequote => 1,
- allow_barekey => 1,
-});
+my $caniuse = do 'browser-support.inc.pl' or die $! || $@;
my %CSTATS = (
n => 'di-b',
--- /dev/null
+#!/usr/bin/env perl
+use 5.010;
+use strict;
+use warnings;
+
+use Data::Dump 'pp';
+use File::Slurp 'read_file';
+use JSON;
+
+local $/; # slurp
+my $source = readline;
+
+for ($source) { # cleanup
+ # convert seperate variables to hash keys
+ s/\A/{/;
+ s/^caniuse\.(\w+) = /"$1":/gm;
+ s/;$/,/gm;
+ s/,\s*\Z/\n}/;
+ # fractions not supported by barekey
+ s/(?<=[,{]) (\d*\.\d) (?=:')/"$1"/gx;
+ # escapes not supported in singlequote
+ s{'((?:[^\\']+|\\.)*)'}{
+ my $_ = $1;
+ s/"/\\"/g;
+ s/\\'/'/g;
+ qq("$_");
+ }ge;
+}
+
+my $data = from_json($source, {
+ allow_singlequote => 1,
+ allow_barekey => 1,
+});
+
+print pp($data);
+
+__END__
+
+=head1 NAME
+
+convert-caniuse - Turn Javascript data into an equivalent Perl structure
+
+=head1 SYNOPSIS
+
+ curl http://caniuse.com/js/data.js |
+ tools/convert-caniuse.pl > browser-support.inc.pl
+