-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 ɶ - - ɑ ɒ
- }]],
+print "<div>\n", "<h2>Blocks</h2>\n\n";
+print glyph_table(@$_) for (
+ [ [qw{. ▘ ▀ ▝ . ▌ █ ▐ . ▖ ▄ ▗ }]],
+ [ [qw{. ░ . ▒ . ▓ }]],
+ [ [qw{. ▛ ▚ ▟ . ▙ ▞ ▜ }]],
+ [ [qw{. ▁ ▂ ▃ ▄ ▅ ▆ ▇ ▔ . ▏ ▎ ▍ ▌ ▋ ▊ ▉ ▕ }]],
+ [ [qw{. □ ▣ ■ . ▤ ▦ ▥ . ▧ ▩ ▨}]],
+);
+print "</div>\n\n";
+
+print "<div>\n", "<h2>Signs</h2>\n\n";
+print glyph_table(@$_) for (
+ [ [qw{. ¤ ¢ ₥ € £ ₨ $ ¥ . ₫ ₭ ₦ ₱ ₧ ₮ ₩ ₪}]],
+ [ [qw{. ♠ ♡ ♢ ♣ . ♤ ♥ ♦ ♧}]],
+ [ [qw{. ☉ ☿ ♀ ♁ ♂ ♃ ♄ ♅ ♆ ♇}]], # solar
+ [ [qw{. ♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓}]], # zodiac
+);
+print "</div>\n\n";
+
+print "<div>\n", "<h2>IPA</h2>\n\n";
+print glyph_table(@$_) for (
+ [
+ [qw{
+ . p p̪ > > t ʈ c k q = ʡ ʔ
+ . b 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',
+ ],
+ ],
+ [
+ [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}]
+ ],
+);
+print "</div>\n\n";
+
+print "<div>\n", "<h2>Alphabetics</h2>\n\n";
+print glyph_table(
+ [ map { ('.', split //, $_->[1]) } @$_ ],
+ [ map { $_->[0] } @$_ ],
+) for [
+ [Latin => 'aīıęôɳŋṡšđðƷ'],
+ [Cyrillic => 'аійэёнњшщчьЯ'],
+ [Greek => 'αίϊηϋπψσςθξΩ'],
+ [Hebrew => 'אײיעונןסשטצץ'],
+];
+print "</div>\n\n";
+
+print "<div>\n", "<h2>Japanese</h2>\n\n";
+print glyph_table(@$_) for (
+ [
+ [qw{
+ . あ い う え お =
+ . か き く け こ =
+ . さ し す せ そ =
+ . た ち つ て と =
+ . な に ぬ ね の ん
+ . は ひ ふ へ ほ =
+ . ま み む め も =
+ . や = ゆ = よ =
+ . ら り る れ ろ =
+ . わ ゐ = ゑ を =
+ }],
+ ['', qw{K S T N H M Y R W}],
+ [qw{A I U E O}, ''],
+ ],
+ [
+ [qw{
+ . が ぎ ぐ げ ご
+ . ざ じ ず ぜ ぞ
+ . だ ぢ づ で ど
+ . ば び ぶ べ ぼ
+ . ぱ ぴ ぷ ぺ ぽ
+ }],
+ [qw{G Z D B P}],
+ [qw{A I U E O}],
+ ],
+ [
+ [qw{
+ . ア イ ウ エ オ ー
+ . カ キ ク ケ コ =
+ . サ シ ス セ ソ =
+ . タ チ ツ テ ト =
+ . ナ ニ ヌ ネ ノ ン
+ . ハ ヒ フ ヘ ホ =
+ . マ ミ ム メ モ =
+ . ヤ - ユ - ヨ =
+ . ラ リ ル レ ロ =
+ . ワ ヰ - ヱ ヲ =
+ }],
+ ['', qw{K S T N H M Y R W}],
+ [qw{A I U E O}, ''],
+ ],
+ [
+ [qw{
+ . ガ ギ グ ゲ ゴ
+ . ザ ジ ズ ゼ ゾ
+ . ダ ヂ ヅ デ ド
+ . バ ビ ブ ベ ボ
+ . パ ピ プ ペ ポ
+ . ヷ ヸ ヴ ヹ ヺ
+ }],
+ [qw{G Z D B P V}],
+ [qw{A I U E O}],
+ ],