use warnings;
use Unicode::Normalize qw( NFKD );
use Text::Unidecode qw( unidecode );
+use Shiar_Sheet::FormatChar;
our %rows;
+
+my $uc = Shiar_Sheet::FormatChar->new;
my %g; # present group classes
{
- rows => [0, 1],
+ rows => [1, 0],
def => {
'' => {
map {
my $v = $rows{$_};
- my $class = (
+ my $class = 'g'.(
!defined $v || $_ eq $v ? 1 # identical
: $v =~ /\A\p{Mn}+\z/ ? 9 # combining accent
: $v =~ /\A[\p{Sk}\p{Lm}]+\z/ ? 8 # modifier symbol
: 6
);
$g{$class} = 1;
- $_ => "g$class"
+ $_ => $class
} keys %rows
},
},
- key => \%rows,
- flag => {
- g1 => ['unaltered', "same results as without modifier"],
+ key => {
+ map {
+ my ($glyph, $title) = $uc->glyph_html($rows{$_});
+ $_ => join "\n", $glyph, $title
+ } keys %rows
+ },
+ flag => {%{{
g2 => ['accented', "decomposes to the original letter with a combining accent"],
g4 => ['similar', "transliterates (mostly) into the unmodified letter"],
g5 => ['latin', "a different (accented) latin letter"],
g6 => ['symbol', "other character not directly deducible from key"],
g7 => ['punctuation', "(punctuation) mark"],
- !$g{9} ? () : (
g8 => ['mark', "modifier letter or mark (spacing diacritic)"],
g9 => ['combining', "diacritical mark to be combined with a following character"],
- ),
- },
+ }}{keys %g}},
}