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'],
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 stroke-linecap: square;
43 stroke-linecap: round;
44 stroke-linejoin: round;
51 vertical-align: middle;
53 #old-roman-cursive .sample span {
57 #tap-simplified .sample {
62 #tap-simplified .sample {
66 #tap-code .sample span,
67 #tap-simplified .sample span {
77 #nyctographs .sample svg {
78 background: rgba(0,0,0, .1);
83 svg path:not([fill]) {
87 svg circle:not([fill]) {
95 vertical-align: middle;
99 <h1>Latin alphabet</h1>
101 <p id=intro>Variant encodings of the common ASCII (latin, roman,
102 or <span title="fuck yeah!">'mercan</span>) letters A–Z.
103 Also see <a href="/writing">related alphabets</a>
104 and <a href="/chars/abc">font comparison</a>.</p>
109 use List::Util qw( pairs );
111 my @table = do 'writing-latn.inc.pl';
113 Alert("Table data not found", $@ || $!);
116 say '<table class="glyphs">';
117 for my $row (pairs @table) {
118 my ($title, $cells) = @{$row};
119 printf '<tr id="%s">', (lc $title) =~ s/<[^>]+>//gr =~ s/\s+/-/gr;
129 print " colspan=$colspan";
132 print ' class=', $_ ? 'ex' : 'u-invalid' if s/^-//;
142 <script type="text/javascript" src="/latinsample.js"></script>
143 <script type="text/javascript"> prependinput(document.getElementById('intro')) </script>