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 font-family: Symbola, "DejaVu Sans", serif, sans;
42 stroke-linecap: square;
46 stroke-linecap: round;
47 stroke-linejoin: round;
54 vertical-align: middle;
56 #old-roman-cursive .sample span {
60 #tap-simplified .sample {
65 #tap-simplified .sample {
69 #tap-code .sample span,
70 #tap-simplified .sample span {
80 #nyctographs .sample svg {
81 background: rgba(0,0,0, .1);
86 svg path:not([fill]) {
90 svg circle:not([fill]) {
98 vertical-align: middle;
102 <h1>Latin alphabet</h1>
104 <p id=intro>Variant encodings of the common ASCII (latin, roman,
105 or <span title="fuck yeah!">'mercan</span>) letters A–Z.
106 Also see <a href="/writing">related alphabets</a>
107 and <a href="/chars/abc">font comparison</a>.</p>
112 use List::Util qw( pairs );
114 my @table = do 'writing-latn.inc.pl';
116 Alert("Table data not found", $@ || $!);
119 say '<table class="glyphs">';
120 for my $row (pairs @table) {
121 my ($title, $cells) = @{$row};
122 printf '<tr id="%s">', (lc $title) =~ s/<[^>]+>//gr =~ s/\s+/-/gr;
134 print " colspan=$colspan";
137 print ' hidden' if $col > 26; # sample only
138 print ' class=', $_ ? 'ex' : 'u-invalid' if s/^-//;
148 <script type="text/javascript" src="/latinsample.js"></script>
149 <script type="text/javascript"> prependinput(document.getElementById('intro')) </script>