digraphs: restyle private use characters
[sheet.git] / unicode.plp
index afd74d1e499abcd9ecba36b5046425bf14d4e9f3..4d48bb4365d84520a47fbf29830d746324d66abb 100644 (file)
@@ -15,15 +15,36 @@ $header{content_type} = 'text/html; charset=utf-8';
 <head>
 <title>digraph cheat sheet</title>
 <meta http-equiv="content-type" content="utf-8">
-<!-- link rel="stylesheet" type="text/css" media="all" href="unicode.css" -->
+<link rel="stylesheet" type="text/css" media="all" href="/digraphs.css">
 <style>
 table {
-       border-collapse: collapse;
-       margin: 1ex;
+       margin: 1ex 1ex 2ex;
+       float: left;
+       table-layout: auto;
 }
+thead td {
+       width: auto;
+}
+tbody {
+       border-width: 0;
+}
+h2, h3 {
+       clear: both;
+}
+
+th {
+       text-align: left;
+       font-size: 50%;
+       background: #888;
+       color: #FFF;
+       padding: 0 0.2em;
+}
+thead td {
+       border: 0;
+}
+
 td {
-       border: 1px solid #888;
-       text-align: center;
+       background: transparent;
        vertical-align: top;
        margin: 0;
        padding: 0;
@@ -31,16 +52,26 @@ td {
 small {
        font-size: 50%;
        display: block;
-       width: 3em;
+       width: 3.2em;
        background: #888;
        color: #FFF;
 }
+
+td.empty {
+       background: #DDD;
+}
+td.reserved {
+       background: #BBB;
+}
 </style>
 </head>
 
 <body>
 <h1>Common Digraphs</h1>
 
+<p>i^k in <a href="/">Vim</a>.
+Also see the <a href="/digraphs">complete digraphs table</a>.</p>
+
 <:
 my $diinfo = do 'digraphs.inc.pl';
 my %di = map { $diinfo->{$_}->[0] => $_ } grep { ref $diinfo->{$_} }
@@ -55,19 +86,32 @@ sub quote {
 }
 
 sub table {
-       my ($width, $digraphs) = @_;
+       my ($width, $digraphs, $rowheads, $colheads) = @_;
 
        my @cells;
-       push @cells, sprintf '<td title="%s">%s%s',
+       push @cells, sprintf '<td title="%s"%s>%s%s',
                $di{ord $_} && $diinfo->{$di{ord $_}}->[1],
-               $_ eq '-' ? '&nbsp;' : quote($_),
+               $_ eq '-' ? ' class="empty"' : $_ eq '=' ? ' class="reserved"' : '',
+               $_ eq '-' || $_ eq '=' ? '&nbsp;' : quote($_),
                $di{ord $_} && sprintf(' <small>%s</small>', $di{ord $_})
                        for @$digraphs;
 
+       if ($rowheads) {
+               splice @cells, $_ * $width, 0, '<th>'.($rowheads->[$_] || '&nbsp;')
+                       for reverse 0 .. $#cells / $width;
+               $width++;
+       }
+
        my @rows;
        push @rows, sprintf '<tr>%s', join '', splice @cells, 0, $width, ()
                while @cells;
 
+       if ($colheads) {
+               unshift @rows, sprintf '<thead><tr><td>%s<tbody>', join '',
+                       map { sprintf '<th title="%2$s">%s', split(/:/, $colheads->[$_], 2) }
+                       0 .. $width-2;
+       }
+
        return sprintf "<table>%s</table>\n", join '', @rows;
 }
 
@@ -92,8 +136,8 @@ print table(@$_) for (
 
 print "<h2>Signs</h2>\n\n";
 print table(@$_) for (
-       [ 3 => [qw{▘ ▀ ▝  ▌ █ ▐  ▖ ▄ ▗}]],
-       [ 3 => [qw{�� ▒ ▓  �� ▣ ■  ▤ ▦ ▥  ▧ ▩ ▨}]],
+       [ 3 => [qw{▘ ▀ ▝  ▌ █ ▐  ▖ ▄ ▗  ░ ▒ ▓}]],
+       [ 3 => [qw{□ ▣ ■  ▤ ▦ ▥  ▧ ▩ ▨}]],
        [ 4 => [qw{♠ ♡ ♢ ♣  ♤ ♥ ♦ ♧}]],
        [10 => [qw{☼ ☿ ♀ ♁ ♂ ♃ ♄ ♅ ♆ ♇}]],  # solar
 #      [12 => [qw{♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓}]],  # zodiac
@@ -102,29 +146,53 @@ print table(@$_) for (
 
 print "<h2>IPA</h2>\n\n";
 print table(@$_) for (
-       [12 => [qw{
-               p t - ʈ - c k q - ʔ - ʡ
-               b d - ɖ - ɟ ɡ ɢ - - - -
-               m ɱ - n - ɳ ɲ ŋ ɴ - - -
-               ʙ - - r - - - - - - - -
-               - ⱱ - ɾ - ɽ - - - - - -
-               ɸ f θ s ʃ ʂ ç x χ ħ h ʜ
-               β v ð z ʒ ʐ ʝ ɣ ʁ ʕ ɦ ʢ
-               - - - ɬ - - - - - - - -
-               - - - ɮ - - - - - - - -
-               - ʋ - ɹ - ɻ j ɰ - - - -
-               - - - l - ɭ ʎ ʟ - - - -
-               ʘ - ǀ ǁ ǃ - ǂ - - - - -
-               ɓ - ɗ - - - ʄ ɠ ʛ - - -
-       }]],
-       [6 => [qw{
-               i y  ɨ ʉ  ɯ u
-               - ɪ  ʏ -  ʊ -
-               e ø  ɘ ɵ  ɤ o
-               - -  ə -  - -
-               ɛ œ  ɜ ɞ  ʌ ɔ
-               æ -  ɐ -  - -
-               a ɶ  - -  ɑ ɒ
-       }]],
+       [
+               12 => [qw{
+                       p t - ʈ - c k q - = ʡ ʔ
+                       b d - ɖ - ɟ ɡ ɢ - = - =
+                       m ɱ - n - ɳ ɲ ŋ ɴ = = =
+                       ʙ - - r - - - = ʀ = я =
+                       - ⱱ - ɾ - ɽ - = ɢ̆ = - =
+                       ɸ f θ s ʃ ʂ ç x χ ħ ʜ h
+                       β v ð z ʒ ʐ ʝ ɣ ʁ ʕ ʢ ɦ
+                       = = - ɬ - - - - - = = =
+                       = = - ɮ - - - - - = = =
+                       - ʋ - ɹ - ɻ j ɰ - - - =
+                       = = - l - ɭ ʎ ʟ - = = =
+                       ʘ - ǀ ǁ ǃ - ǂ - - = = =
+                       ɓ - ɗ - - - ʄ ɠ ʛ - - -
+               }],
+               [
+                       'Plosive',
+                       'Voiced plosive',
+                       'Nasal',
+                       'Trill',
+                       'Tap/flap',
+                       'Fricative',
+                       'Voiced fricative',
+                       'Lateral fricative',
+                       'Voiced lateral fricative',
+                       'Approximant',
+                       'Lateral approximant',
+                       'Click',
+                       'Implosive',
+               ],
+               [
+                       qw'BiL:Bilabial LD:Labiodental D:Dental Alv:Alveolar PA:Postalveolar Rf:Retroflex Pal:Palatal Vel:Velar Uv:Uvular Ph:Pharyngeal EG:Epiglottal Gl:Glottal',
+               ],
+       ],
+       [
+               6 => [qw{
+                       i y  ɨ ʉ  ɯ u
+                       - ɪ  ʏ -  ʊ -
+                       e ø  ɘ ɵ  ɤ o
+                       - -  ə -  - -
+                       ɛ œ  ɜ ɞ  ʌ ɔ
+                       æ -  ɐ -  - -
+                       a ɶ  - -  ɑ ɒ
+               }],
+               [qw{Close Near-close Close-mid Mid Open-mid Near-open Open}],
+               [map {substr($_, 0, 1).':'.$_, substr($_, 0, 1)." r:$_ rounded"} qw{Front Central Back}]
+       ],
 );