<: use utf8; use strict; use warnings; use open IO => ':utf8'; our $VERSION = '1.0'; $header{content_type} = 'text/html; charset=utf-8'; :> digraph cheat sheet

Common Digraphs

i^k in Vim. Also see the complete digraphs table.

<: my $diinfo = do 'digraphs.inc.pl'; my %di = map { $diinfo->{$_}->[0] => $_ } grep { ref $diinfo->{$_} } keys %$diinfo; sub quote { local $_ = shift; s/"/"/g; s//>/g; return $_; } sub table { my ($width, $digraphs, $rowheads, $colheads) = @_; my @cells; push @cells, sprintf '%s%s', $di{ord $_} && $diinfo->{$di{ord $_}}->[1], $_ eq '-' ? ' class="empty"' : $_ eq '=' ? ' class="reserved"' : '', $_ eq '-' || $_ eq '=' ? ' ' : quote($_), $di{ord $_} && sprintf(' %s', $di{ord $_}) for @$digraphs; if ($rowheads) { splice @cells, $_ * $width, 0, ''.($rowheads->[$_] || ' ') for reverse 0 .. $#cells / $width; $width++; } my @rows; push @rows, sprintf '%s', join '', splice @cells, 0, $width, () while @cells; if ($colheads) { unshift @rows, sprintf '%s', join '', map { sprintf '%s', split(/:/, $colheads->[$_], 2) } 0 .. $width-2; } return sprintf "%s
\n", join '', @rows; } print "

Arrows

\n\n"; print table(@$_) for ( [ 4 => [qw{↖ ↑ ↗ ↔ ← - → ↕ ↙ ↓ ↘ -}]], [ 4 => [qw{⇖ ⇑ ⇗ ⇔ ⇐ - ⇒ ⇕ ⇘ ⇓ ⇙ -}]], [ 3 => [qw{◤ ▲ ◥ ◀ ◆ ▶ ◣ ▼ ◢}]], [ 3 => [qw{◸ △ ◹ ◁ ◇ ▷ ◺ ▽ ◿}]], ); print "

Line drawing

\n\n"; print table(@$_) for ( [ 4 => [qw{┌ ┬ ┐ ─ ├ ┼ ┤ │ └ ┴ ┘ -}]], [ 4 => [qw{┏ ┳ ┓ ━ ┣ ╋ ┫ ┃ ┗ ┻ ┛ -}]], [ 3 => [qw{┍ ┯ ┑ ┝ ┿ ┥ ┕ ┷ ┙}]], [ 3 => [qw{┎ ┰ ┒ ┠ ╂ ┨ ┖ ┸ ┚}]], # [ 4 => [qw{╔ ╦ ╗ ═ ╠ ╬ ╣ ║ ╚ ╩ ╝ -}]], # [ 3 => [qw{╒ ╤ ╕ ╞ ╪ ╡ ╘ ╧ ╛}]], # [ 3 => [qw{╓ ╥ ╖ ╟ ╫ ╢ ╙ ╨ ╜}]], ); print "

Signs

\n\n"; print table(@$_) for ( [ 3 => [qw{▘ ▀ ▝ ▌ █ ▐ ▖ ▄ ▗ ░ ▒ ▓}]], [ 3 => [qw{□ ▣ ■ ▤ ▦ ▥ ▧ ▩ ▨}]], [ 4 => [qw{♠ ♡ ♢ ♣ ♤ ♥ ♦ ♧}]], [10 => [qw{☼ ☿ ♀ ♁ ♂ ♃ ♄ ♅ ♆ ♇}]], # solar # [12 => [qw{♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓}]], # zodiac [ 8 => [qw{¤ ¢ ₥ € £ ₨ $ ¥ ₫ ₭ ₦ ₱ ₧ ₮ ₩ ₪}]], ); print "

IPA

\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 - ɭ ʎ ʟ - = = = ʘ - ǀ ǁ ǃ - ǂ - - = = = ɓ - ɗ - - - ʄ ɠ ʛ - - - }], [ '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}] ], );