X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/f129526ebd5a30105e909a56db761520e97d3451..29a87b835d71d96bef2a123b68b1bf5fa3ce1608:/chars.plp diff --git a/chars.plp b/chars.plp index 9197e5c..ebfdc6b 100644 --- a/chars.plp +++ b/chars.plp @@ -14,27 +14,20 @@ use 5.010; use Shiar_Sheet::FormatChar; my $glyphs = Shiar_Sheet::FormatChar->new; -my %oslist = ( - win95 => [qw( arial ariuni verdana times )], # microsoft - mac10 => [qw( lucida garamond )], # apple - android => [qw( roboto noto )], # google - oss => [qw( dvsans c2k unifont )], -); -my @ossel = qw( win95 mac10 oss android ); +my $groupinfo = do 'unicode-cover.inc.pl' or die $@ || $!; + +my @ossel = @{ $groupinfo->{osdefault} }; +my @fontlist = map { $_->{file} } + @{ $groupinfo->{fonts} }[ map { @{ $groupinfo->{os}->{$_} } } @ossel ]; -my (%font, @fontlist); -for my $os (@ossel) { - my $osfonts = $oslist{$os}; - for my $fontid (@{$osfonts}) { - push @fontlist, $fontid; +my %font; +for my $fontid (@fontlist) { my ($fontmeta, @fontrange) = do "ttfsupport/$fontid.inc.pl"; $fontmeta or next; $font{$fontid} = { - -id => $fontmeta->{id} || $fontid, - -name => $fontmeta->{name}, + (map { (-$_ => $fontmeta->{$_}) } keys %{$fontmeta}), map { (chr $_ => 1) } @fontrange }; - } } # parse input @@ -50,13 +43,12 @@ my $query = eval { ($cat, $name) = ('table', $cat); } - my $groupinfo = do 'unicode-cover.inc.pl' or die $@ || $!; my $row = $groupinfo->{$cat}->{$name} or die "unknown character group $cat/$name\n"; $title = ucfirst EscapeHTML($name).' characters'; $parent = $cat; - return EscapeHTML($row->{-query}); + return EscapeHTML($row->{query}); } } || $get{q}; @@ -99,20 +91,23 @@ for (map { split /[^\d-]/ } $query) { say '
'; print ''; print '' x 3; -print "" for 2, map { scalar @{$oslist{$_}} } @ossel; +print "" + for 2, map { scalar @{ $groupinfo->{os}->{$_} } } @ossel; print ''; print ''; print ''; for my $chr (@chars) { @@ -128,7 +123,7 @@ for my $chr (@chars) { EscapeHTML($mnem) // ''], [$ascii ? 'l0' : defined $html ? 'l4' : 'l1', $html // ''], (map { - !$font{$_}->{-id} ? [l0 => '?'] : + !defined $font{$_}->{-name} ? [l0 => '?'] : $font{$_}->{$chr} ? [l4 => '✔'] : [l1 => '✘'] } @fontlist), );
character'; print 'input'; -printf '%s fonts', scalar @{ $oslist{$_} }, $_ +printf '%s', scalar @{ $groupinfo->{os}->{$_} }, $_ for @ossel; print '
unicode'; print 'name'; print 'dihtml'; -printf '%s', $font{$_}->{-name}, $font{$_}->{-id} // $_ - for @fontlist; +printf('%s', map { EscapeHTML($_) } + join("\n", $font{$_}->{-name}, $font{$_}->{-description}), + $font{$_}->{-abbr}, +) for @fontlist; say '