latin: encode row data in named hashes
[sheet.git] / latin.plp
index 7f94ebf32bff8fbebf940bc5a5ccf243eed7b857..1dcd8c7881f81f7757426665289677f3e28f7504 100644 (file)
--- a/latin.plp
+++ b/latin.plp
@@ -24,12 +24,12 @@ Html({
        #sütterlin td { font-family: Suetterlin }
        #ita2 td,
        #tap-code td,
-       #tap-simplified td {
+       #short-tap td {
                white-space: normal;
                word-spacing: 5em; /* force line break between words */
        }
        #tap-code td,
-       #tap-simplified td {
+       #short-tap td {
                line-height: 1ex;
        }
        #ita2 td {
@@ -49,6 +49,9 @@ Html({
        td {
                white-space: nowrap;
        }
+       th {
+               width: auto !important;
+       }
 
        .sample {
                vertical-align: middle;
@@ -59,17 +62,17 @@ Html({
                margin-right: -10px;
        }
        #tap-code .sample,
-       #tap-simplified .sample {
+       #short-tap .sample {
                font-size: 80%;
        }
        #ita2 .sample,
        #tap-code .sample,
-       #tap-simplified .sample {
+       #short-tap .sample {
                word-spacing: 0;
        }
        #ita2 .sample span,
        #tap-code .sample span,
-       #tap-simplified .sample span {
+       #short-tap .sample span {
                margin-right: 1ex;
                white-space: nowrap;
        }
@@ -86,6 +89,10 @@ Html({
                padding: 0.1em;
                margin-right: 0.2em;
        }
+       #unistrokes svg path {
+               stroke-linecap: round;
+               stroke-linejoin: round;
+       }
 
        svg path:not([fill]) {
                stroke: currentColor;
@@ -98,7 +105,7 @@ Html({
        td {
                vertical-align: top;
        }
-       td svg {
+       td svg {
                vertical-align: middle;
        }
 </style>
@@ -120,26 +127,41 @@ if ($! or $@) {
        Alert("Table data not found", $@ || $!);
 }
 else {
+       my %VOWELCOLS = (map { ($_ => 1) } 0, 4, 8, 14, 20, 24);
        say '<table class="glyphs">';
+       say '<thead><tr><th># <small>ASCII − 64</small>';
+       print '<td>', $_ for 1 .. 26;
+       say '</thead>';
+
        for my $row (pairs @table) {
-               my ($title, $cells) = @{$row};
+               my ($title, $info) = @{$row};
                printf '<tr id="%s">', (lc $title) =~ s/<[^>]+>//gr =~ s/\s+/-/gr;
                say '<th>', $title;
                my $colspan = 1;
                my $col = 0;
-               for (@{$cells}) {
+               for (@{ $info->{list} }) {
                        $col++;
                        if ($_ eq '>') {
                                $colspan++;
                                next;
                        }
+                       my @class;
+                       push @class ,'l0' if $VOWELCOLS{$col - $colspan};
+                       push @class, $_ ? 'ex' : 'u-invalid' if s/^-//;
+
                        print "\t<td";
+                       if ($col > 26) {
+                               # special character for sample generation
+                               print ' hidden';  # sample only
+                       }
+                       else {
+                               print ' title=', chr($col + ord('A') - $colspan);
+                       }
                        if ($colspan > 1) {
                                print " colspan=$colspan";
                                $colspan = 1;
                        }
-                       print ' hidden' if $col > 26;  # sample only
-                       print ' class=', $_ ? 'ex' : 'u-invalid' if s/^-//;
+                       printf ' class="%s"', "@class" if @class;
                        print '>';
                        say;
                }