Html({
title => 'character support sheet',
- version => 'v1.0',
+ version => '1.0',
keywords => [qw'
unicode glyph char character reference common ipa symbol sign mark table digraph
'],
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
($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};
say '<div>';
print '<table class=mapped>';
print '<col>' x 3;
-print "<colgroup span=$_>" for 2, map { scalar @{$oslist{$_}} } @ossel;
+print "<colgroup span=$_>"
+ for 2, map { scalar @{ $groupinfo->{os}->{$_} } } @ossel;
print '<thead><tr>';
print '<td colspan=3>character';
print '<td colspan=2>input';
-printf '<td colspan=%d>%s fonts', scalar @{ $oslist{$_} }, $_
+printf '<td colspan=%d>%s', scalar @{ $groupinfo->{os}->{$_} }, $_
for @ossel;
print '<tr>';
print '<td colspan=2>unicode';
print '<td>name';
print '<td><a href="/digraphs" title="digraph">di</a><td>html';
-printf '<td title="%s">%s', $font{$_}->{-name}, $font{$_}->{-id} // $_
- for @fontlist;
+printf('<td title="%s">%s', map { EscapeHTML($_) }
+ join("\n", $font{$_}->{-name}, $font{$_}->{-description}),
+ $font{$_}->{-abbr},
+) for @fontlist;
say '</thead>';
for my $chr (@chars) {
my ($class, $name, $mnem, $html, $string) = @$info;
print "<td>$_" for sprintf('%X', $codepoint), EscapeHTML($name || '?');
printf '<td class="%s">%s', @$_ for (
- [$ascii ? 'l0' : defined $mnem ? $class =~ /\bu-di\b/ ? 'l4' : 'l3' : 'l1', $mnem // ''],
+ [$ascii ? 'l0' : defined $mnem ? $class =~ /\bu-di\b/ ? 'l4' : 'l3' : 'l1',
+ EscapeHTML($mnem) // ''],
[$ascii ? 'l0' : defined $html ? 'l4' : 'l1', $html // ''],
(map {
- !$font{$_}->{-id} ? [l0 => '?'] :
+ !defined $font{$_}->{-name} ? [l0 => '?'] :
$font{$_}->{$chr} ? [l4 => '✔'] : [l1 => '✘']
} @fontlist),
);