4 title => 'latin alphabet cheat sheet',
9 latin roman alphabet script letter unicode font glyph abc
10 code encoding spelling symbol writing comparison character
11 secret cursive fraktur blind braille morse deaf asl hand
12 barcode bar color semaphore flag
14 stylesheet => [qw( light dark red mono )],
15 data => ['writing-latn.inc.pl'],
21 font-family: Suetterlin; /* R. G. Arens */
22 src: url("/suetterlin.ttf");
24 #sütterlin td { font-family: Suetterlin }
29 word-spacing: 5em; /* force line break between words */
39 font-family: Symbola, "DejaVu Sans", serif, sans;
42 stroke-linecap: square;
46 stroke-linecap: round;
47 stroke-linejoin: round;
54 vertical-align: middle;
58 #old-roman-cursive .sample span {
62 #tap-simplified .sample {
67 #tap-simplified .sample {
71 #tap-code .sample span,
72 #tap-simplified .sample span {
76 #sutton-asl .sample span,
77 #maritime-flags .sample span,
84 #nyctographs .sample svg {
85 background: rgba(0,0,0, .1);
90 svg path:not([fill]) {
94 svg circle:not([fill]) {
102 vertical-align: middle;
106 <h1>Latin alphabet</h1>
108 <p id=intro>Variant encodings of the common ASCII (latin, roman,
109 or <span title="fuck yeah!">'mercan</span>) letters A–Z.
110 Also see <a href="/writing">related alphabets</a>
111 and <a href="/chars/abc">font comparison</a>.</p>
116 use List::Util qw( pairs );
118 my @table = do 'writing-latn.inc.pl';
120 Alert("Table data not found", $@ || $!);
123 my %VOWELCOLS = (map { ($_ => 1) } 0, 4, 8, 14, 20, 24);
124 say '<table class="glyphs">';
125 for my $row (pairs @table) {
126 my ($title, $cells) = @{$row};
127 printf '<tr id="%s">', (lc $title) =~ s/<[^>]+>//gr =~ s/\s+/-/gr;
138 push @class ,'l0' if $VOWELCOLS{$col - $colspan};
139 push @class, $_ ? 'ex' : 'u-invalid' if s/^-//;
143 # special character for sample generation
144 print ' hidden'; # sample only
147 print ' title=', chr($col + ord('A') - $colspan);
150 print " colspan=$colspan";
153 printf ' class="%s"', "@class" if @class;
163 <script type="text/javascript" src="/latinsample.js"></script>
164 <script type="text/javascript"> prependinput(document.getElementById('intro')) </script>