5 use open IO => ':utf8';
9 $header{content_type} = 'text/html; charset=utf-8';
11 :><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
12 "http://www.w3.org/TR/html4/loose.dtd">
16 <title>digraph cheat sheet</title>
17 <meta http-equiv="content-type" content="utf-8">
18 <!-- link rel="stylesheet" type="text/css" media="all" href="unicode.css" -->
21 border-collapse: collapse;
25 border: 1px solid #888;
57 <h1>Common Digraphs</h1>
59 <p>i^k in <a href="/">Vim</a>.
60 Also see the <a href="/digraphs">complete digraphs table</a>.</p>
63 my $diinfo = do 'digraphs.inc.pl';
64 my %di = map { $diinfo->{$_}->[0] => $_ } grep { ref $diinfo->{$_} }
76 my ($width, $digraphs, $rowheads, $colheads) = @_;
79 push @cells, sprintf '<td title="%s">%s%s',
80 $di{ord $_} && $diinfo->{$di{ord $_}}->[1],
81 $_ eq '-' ? ' ' : quote($_),
82 $di{ord $_} && sprintf(' <small>%s</small>', $di{ord $_})
86 splice @cells, $_ * $width, 0, '<th>'.($rowheads->[$_] || ' ')
87 for reverse 0 .. $#cells / $width;
92 push @rows, sprintf '<tr>%s', join '', splice @cells, 0, $width, ()
96 unshift @rows, sprintf '<thead><tr><td>%s<tbody>', join '',
97 map { sprintf '<th title="%2$s">%s', split(/:/, $colheads->[$_], 2) }
101 return sprintf "<table>%s</table>\n", join '', @rows;
104 print "<h2>Arrows</h2>\n\n";
105 print table(@$_) for (
106 [ 4 => [qw{↖ ↑ ↗ ↔ ← - → ↕ ↙ ↓ ↘ -}]],
107 [ 4 => [qw{⇖ ⇑ ⇗ ⇔ ⇐ - ⇒ ⇕ ⇘ ⇓ ⇙ -}]],
108 [ 3 => [qw{◤ ▲ ◥ ◀ ◆ ▶ ◣ ▼ ◢}]],
109 [ 3 => [qw{◸ △ ◹ ◁ ◇ ▷ ◺ ▽ ◿}]],
112 print "<h2>Line drawing</h2>\n\n";
113 print table(@$_) for (
114 [ 4 => [qw{┌ ┬ ┐ ─ ├ ┼ ┤ │ └ ┴ ┘ -}]],
115 [ 4 => [qw{┏ ┳ ┓ ━ ┣ ╋ ┫ ┃ ┗ ┻ ┛ -}]],
116 [ 3 => [qw{┍ ┯ ┑ ┝ ┿ ┥ ┕ ┷ ┙}]],
117 [ 3 => [qw{┎ ┰ ┒ ┠ ╂ ┨ ┖ ┸ ┚}]],
118 # [ 4 => [qw{╔ ╦ ╗ ═ ╠ ╬ ╣ ║ ╚ ╩ ╝ -}]],
119 # [ 3 => [qw{╒ ╤ ╕ ╞ ╪ ╡ ╘ ╧ ╛}]],
120 # [ 3 => [qw{╓ ╥ ╖ ╟ ╫ ╢ ╙ ╨ ╜}]],
123 print "<h2>Signs</h2>\n\n";
124 print table(@$_) for (
125 [ 3 => [qw{▘ ▀ ▝ ▌ █ ▐ ▖ ▄ ▗ ░ ▒ ▓}]],
126 [ 3 => [qw{□ ▣ ■ ▤ ▦ ▥ ▧ ▩ ▨}]],
127 [ 4 => [qw{♠ ♡ ♢ ♣ ♤ ♥ ♦ ♧}]],
128 [10 => [qw{☼ ☿ ♀ ♁ ♂ ♃ ♄ ♅ ♆ ♇}]], # solar
129 # [12 => [qw{♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓}]], # zodiac
130 [ 8 => [qw{¤ ¢ ₥ € £ ₨ $ ¥ ₫ ₭ ₦ ₱ ₧ ₮ ₩ ₪}]],
133 print "<h2>IPA</h2>\n\n";
134 print table(@$_) for (
137 p t - ʈ - c k q - ʔ ʡ -
138 b d - ɖ - ɟ ɡ ɢ - - - -
139 m ɱ - n - ɳ ɲ ŋ ɴ - - -
140 ʙ - - r - - - - - - - -
141 - ⱱ - ɾ - ɽ - - - - - -
142 ɸ f θ s ʃ ʂ ç x χ ħ ʜ h
143 β v ð z ʒ ʐ ʝ ɣ ʁ ʕ ʢ ɦ
144 - - - ɬ - - - - - - - -
145 - - - ɮ - - - - - - - -
146 - ʋ - ɹ - ɻ j ɰ - - - -
147 - - - l - ɭ ʎ ʟ - - - -
148 ʘ - ǀ ǁ ǃ - ǂ - - - - -
149 ɓ - ɗ - - - ʄ ɠ ʛ - - -
160 'Voiced lateral fricative',
162 'Lateral approximant',
167 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',
180 [qw{Close Near-close Close-mid Mid Open-mid Near-open Open}],
181 [map {substr($_, 0, 1).':'.$_, substr($_, 0, 1)." r:$_ rounded"} qw{Front Central Back}]