$c1";
- for my $c2 (@chars, '_') {
- my $mnem = $c1 . $c2;
- if (not defined $di->{$mnem}) {
- print ' | ';
- next;
- }
- my $chr = $di->{$mnem};
- my $glyph = chr $chr;
- utf8::upgrade($glyph); # prevent latin1 output
+my @chars = (
+ [qw{! " % ' ( ) * + , - . /}],
+ ['0'..'9'], [qw{: ; < = > ?}],
+ ['A'..'M'], ['N'..'Z'],
+ ['a'..'m'], ['n'..'z'],
+);
+my @chars2 = (['_'], @chars); # trailing character (extended set)
+my @columns = !exists $get{split} ? \@chars2 :
+ ([@chars2[0, 1, 3, 4, 6]], [@chars2[2, 5, 7]]);
- my @class = 'any';
+if ($mode) {
+ $di = Data('digraphs-xorg');
+ $chars2[0] = [qw( # ^ _ ` ~ )];
+ @chars = @chars2;
+}
+
+for my $colchars (@columns) {
+print '';
+print qq'' for map {scalar @$_} @{$colchars};
+say '';
+for my $section (qw{thead tfoot}) {
+ print "<$section>â³";
+ print ' | ', EscapeHTML($_) for map {@$_} @{$colchars};
+ say ' | ';
+}
+for my $c1group (@chars) {
+ print ' | ';
+ for my $c1 (@$c1group) {
+ print '', EscapeHTML($c1);
+ for my $c2 (map {@$_} @$colchars) {
+ my $mnem = $c1 . $c2;
+ if (not defined $di->{key}->{$mnem}) {
+ print ' | ';
+ next;
+ }
+ if (ref $di->{key}->{$mnem} ne 'ARRAY') {
+ printf ' | ', EscapeHTML($mnem);
+ next;
+ }
+ my ($codepoint, $name, $support, $script, $string) =
+ @{ $di->{key}->{$mnem} };
+
+ my $glyph = $string || chr $codepoint;
+ utf8::upgrade($glyph); # prevent latin1 output
+ my $desc = $mnem . ($name && " ($name)");
+ my @class = ('X', grep {$_} $script);
+ push @class, $cmp ? $support : "u-$support" if $support;
- printf ' | %s',
- join(' ', @class), quote($mnem), quote($glyph);
+ $glyph = EscapeHTML($glyph);
+ $glyph = "$glyph" if $script =~ /\bZs\b/;
+
+ printf "\n".' | %s',
+ join(' ', @class), EscapeHTML($desc), $glyph;
+ }
+ say "\n | ", EscapeHTML($c1);
}
- print "\n";
}
-print " |
---|
\n";
+say ' |
---|