browser: rename old wikimedia parser to mkusage-squid
[sheet.git] / latinsample.js
index cff51e38b9e295869fca2bde87eb49b0037509df..406cac12cdb355f3dd38070c9ccf7172ead633ec 100644 (file)
@@ -3,6 +3,10 @@ function appendsample() {
        for (var row of rows) {
                // append sample column
                var samplecol = row.getElementsByClassName('sample');
+               if (!this.value.length) {
+                       row.removeChild(samplecol[0]);
+                       continue;
+               }
                if (samplecol.length) {
                        samplecol = samplecol[0];
                }
@@ -22,6 +26,9 @@ function appendsample() {
                                cols[++col] = same;
                        }
                }
+               for (var col = 0; col < cols.length; col++) {
+                       cols[col] = cols[col].innerHTML.trimRight();
+               }
 
                // copy letters into sample
                var output = '';
@@ -29,13 +36,27 @@ function appendsample() {
                for (var i = 0; i < input.length; i++) {
                        var col = input.charCodeAt(i) - 64;
                        if (col < 1) col = 27; // space
-                       if (col < cols.length) {
-                               output += '<span>' + cols[col].innerHTML.trimRight() + '</span>';
+                       else if (cols[28] && i && col == input.charCodeAt(i - 1) - 64) {
+                               col = 28; // repetition char
+                       }
+                       if (row.id == 'suetterlin' && col == 19) {
+                               var final = input.length == i + 1 || input[i + 1] == ' ';
+                               output += cols[col].split('&nbsp;')[final ? 1 : 0];
+                       }
+                       else if (col < cols.length) {
+                               output += '<span>' + (cols[col] || ' ') + '</span>';
                        }
                        else {
-                               output += ' ';
+                               output += '<b> </b>';
+                       }
+                       if (row.parentNode.tagName == 'THEAD') {
+                               output += col < 26 ? ' ' : 'ยท '; // number separator
                        }
                }
+               if (cols[29] && !cols[28]) {
+                       // circumfix sign if no repetition
+                       output = cols[29] + output + (cols[30] || cols[29]);
+               }
                samplecol.innerHTML = output;
        }
 };