latin: custom space glyphs in sample
[sheet.git] / latin.plp
index d9f8be7777cad12a8a634b5a460a9f06ee56b482..c9c59ad9d2dc7f0dcb088fc6e2825de0d7847e04 100644 (file)
--- a/latin.plp
+++ b/latin.plp
@@ -22,10 +22,19 @@ Html({
                src: url("/suetterlin.ttf");
        }
        #sütterlin td { font-family: Suetterlin }
+       #ita2 td,
+       #tap-code td,
+       #tap-simplified td {
+               white-space: normal;
+               word-spacing: 5em; /* force line break between words */
+       }
        #tap-code td,
        #tap-simplified td {
                line-height: 1ex;
        }
+       #ita2 td {
+               font-size: 50%;
+       }
        #pigpen {
                stroke-linecap: square;
        }
@@ -38,10 +47,34 @@ Html({
                white-space: nowrap;
        }
 
-       #pigpen .sample > svg {
+       .sample {
+               vertical-align: middle;
+       }
+       #old-roman-cursive .sample span {
+               margin-right: -10px;
+       }
+       #tap-code .sample,
+       #tap-simplified .sample {
+               font-size: 80%;
+       }
+       #ita2 .sample,
+       #tap-code .sample,
+       #tap-simplified .sample {
+               word-spacing: 0;
+       }
+       #ita2 .sample span,
+       #tap-code .sample span,
+       #tap-simplified .sample span {
+               margin-right: 1ex;
+               white-space: nowrap;
+       }
+       #morse .sample span {
+               margin-right: 0.5ex;
+       }
+       #pigpen .sample svg {
                margin-right: 0.1em;
        }
-       #nyctographs .sample svg {
+       #nyctographs .sample svg {
                background: rgba(0,0,0, .1);
                padding: 0.1em;
                margin-right: 0.2em;
@@ -51,6 +84,9 @@ Html({
                stroke: currentColor;
                fill: none;
        }
+       svg circle:not([fill]) {
+               fill: currentColor;
+       }
 
        td {
                vertical-align: top;
@@ -62,10 +98,10 @@ Html({
 
 <h1>Latin alphabet</h1>
 
-<p>Variant encodings of the common ASCII (latin, roman,
+<p id=intro>Variant encodings of the common ASCII (latin, roman,
 or <span title="fuck yeah!">'mercan</span>) letters A–Z.
 Also see <a href="/writing">related alphabets</a>
-and <a href="/unicode">common chars</a>.</p>
+and <a href="/chars/abc">font comparison</a>.</p>
 
 <div>
 
@@ -83,7 +119,9 @@ else {
                printf '<tr id="%s">', (lc $title) =~ s/<[^>]+>//gr =~ s/\s+/-/gr;
                say '<th>', $title;
                my $colspan = 1;
+               my $col = 0;
                for (@{$cells}) {
+                       $col++;
                        if ($_ eq '>') {
                                $colspan++;
                                next;
@@ -93,6 +131,7 @@ else {
                                print " colspan=$colspan";
                                $colspan = 1;
                        }
+                       print ' hidden' if $col > 26;  # sample only
                        print ' class=', $_ ? 'ex' : 'u-invalid' if s/^-//;
                        print '>';
                        say;
@@ -103,45 +142,6 @@ else {
 
 :></div>
 
-<script>
-var inputel = document.createElement('INPUT');
-inputel.oninput = function () {
-       var rows = document.getElementsByClassName('glyphs')[0].rows;
-       for (var row of rows) {
-               cols = [ row.cells[0] ];
-               for (var col = 1; col <= 26; col++) {
-                       cols[col] = cols[ col - 1 ].nextSibling;
-                       for (var span = 1; span < cols[col].colSpan; span++) {
-                               var same = cols[col];
-                               cols[++col] = same;
-                       }
-               }
-               var samplecol = row.getElementsByClassName('sample');
-               if (samplecol.length) {
-                       samplecol = samplecol[0];
-               }
-               else {
-                       samplecol = row.appendChild(document.createElement('TD'));
-                       samplecol.className = 'sample';
-               }
-
-               var output = '';
-               var input = inputel.value.toUpperCase();
-               for (var i = 0; i < input.length; i++) {
-                       var col = input.charCodeAt(i) - 64;
-                       if (col < 1 || col > 26) {
-                               output += ' &nbsp; ';
-                       }
-                       else {
-                               output += cols[col].innerHTML.trimRight();
-                       }
-               }
-               samplecol.innerHTML = output;
-       }
-};
-
-var container = document.createElement('P');
-container.appendChild(inputel);
-document.body.appendChild(container);
+<script type="text/javascript" src="/latinsample.js"></script>
+<script type="text/javascript"> prependinput(document.getElementById('intro')) </script>
 
-</script>