my %idx = map {s/\Q.inc.pl\E$//; ($_ => eval{ Data($_) })} @incs;
my $most = max(map { scalar keys %{$_->{def}{''}} } values %idx);
for my $inc (sort {
my %idx = map {s/\Q.inc.pl\E$//; ($_ => eval{ Data($_) })} @incs;
my $most = max(map { scalar keys %{$_->{def}{''}} } values %idx);
for my $inc (sort {
} keys %idx) {
print @sample ? '<tr><th>' : '<figure>';
printf '<a href="/%s">', $inc =~ s/\.eng$//r;
} keys %idx) {
print @sample ? '<tr><th>' : '<figure>';
printf '<a href="/%s">', $inc =~ s/\.eng$//r;
my $keys = Shiar_Sheet::Keyboard->new($table);
for my $mode ($keys->{mode} ? sort keys %{ $keys->{mode} } : '') {
my %inventory;
my $keys = Shiar_Sheet::Keyboard->new($table);
for my $mode ($keys->{mode} ? sort keys %{ $keys->{mode} } : '') {
my %inventory;
for my $g (sort keys %inventory) {
printf '<span class="%s" style="width:%.0f%%" title="%3$d %4$s"> %s</span>',
$g, $_/$most*100, $_,
for my $g (sort keys %inventory) {
printf '<span class="%s" style="width:%.0f%%" title="%3$d %4$s"> %s</span>',
$g, $_/$most*100, $_,