vim: custom key rows specifiable via ?status
[sheet.git] / unicode.plp
index 8dfe1322ba87b1aeab5cf6bf457908b1c2af7e6a..5e0327e6c494d60379d4aa6494d30560b0268b72 100644 (file)
@@ -59,7 +59,6 @@ sub glyph_table {
 
        my $colspan = 1;
        for my $cell (@$digraphs) {
-               my $class;
                if ($cell =~ s/^\.//) {
                        # dot indicates start of a new row
                        push @rows, '';
@@ -80,30 +79,37 @@ sub glyph_table {
                my $name = $diinfo->{$code}->[1];
 
                # determine display class
-               if ($cell =~ s/^-//) {
-#                      $class = 'Empty';
+               my @class;
+               if ($cell eq '-') {
+                       $cell = '';
                }
                elsif ($cell eq '=') {
-                       $class = 'Reserved';
+                       push @class, 'di-invalid';
                        $cell = '';
                }
-               elsif ($cell =~ /[ -~]/) {
-                       $class = 'Ascii';
-               }
-               elsif (not $code) {
-                       $class = 'DiNone';
-               }
-               elsif ($diinfo->{$code}->[2] =~ /\bXz\b/) {
-                       $class = 'DiProp';
-               }
                else {
-                       $class = 'Di';
+                       if ($cell =~ s/^-//) {
+                               push @class, 'di-rare'; # discouraged
+                       }
+
+                       if ($code) {
+                               push @class, 'di-d'; # digraph
+                               push @class, 'di-prop' # unofficial
+                                       if $diinfo->{$code}->[2] =~ /\bXz\b/;
+                       }
+
+                       if ($cell =~ /[ -~]/) {
+                               push @class, 'di-a'; # ascii
+                       }
+                       else {
+                               push @class, 'di-b'; # basic unicode
+                       }
                }
 
                # add cell html
                $rows[-1] .= sprintf('<td%s%s%s>%s%s',
                        defined $name  ? qq{ title="$name"}  : '',
-                       defined $class ? qq{ class="$class"} : '',
+                       @class ? sprintf(' class="%s"', join ' ', @class) : '',
                        $colspan > 1 && qq{ colspan="$colspan"},
                        $cell eq '' ? '&nbsp;' : quote($cell),
                        $code ne '' ? sprintf(' <small class="digraph">%s</small>', quote($code))