X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/1fffc8ba4ed48b9cc9a8fd76532ef7396f3d27b6..23f7b10a8432caad3dc2e5ea875dd76757d2bea4:/keyboard/altgr/groups.inc.pl diff --git a/keyboard/altgr/groups.inc.pl b/keyboard/altgr/groups.inc.pl index 363ea03..2968e4b 100644 --- a/keyboard/altgr/groups.inc.pl +++ b/keyboard/altgr/groups.inc.pl @@ -1,19 +1,20 @@ -use strict; +use 5.020; use warnings; +use experimental 'signatures'; 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 -{ + +sub kbchars ($rows) { + my %g; # present group classes + return { rows => [1, 0], def => { '' => { map { - my $v = $rows{$_}; + my $v = $rows->{$_}; my $class = 'g'.( !defined $v || $_ eq $v ? 1 # identical : $v =~ /\A\p{Mn}+\z/ ? 9 # combining accent @@ -26,14 +27,14 @@ my %g; # present group classes ); $g{$class} = 1; $_ => $class - } keys %rows + } keys %{$rows} }, }, key => { map { - my ($glyph, $title) = $uc->glyph_html($rows{$_}); + my ($glyph, $title) = $uc->glyph_html($rows->{$_}); $_ => join "\n", $glyph, $title - } keys %rows + } keys %{$rows} }, flag => {%{{ g2 => ['accented', "decomposes to the original letter with a combining accent"], @@ -44,4 +45,7 @@ my %g; # present group classes g8 => ['mark', "modifier letter or mark (spacing diacritic)"], g9 => ['combining', "diacritical mark to be combined with a following character"], }}{keys %g}}, + }; } + +1;