:
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;
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 "\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}]
],
);
|