X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/bf58fc823d4d25c75c028a7ff225513721c4d824..cf5d941b1a839d049b4f322caebaff605cdd4efc:/latin.plp diff --git a/latin.plp b/latin.plp index c930dce..1dcd8c7 100644 --- a/latin.plp +++ b/latin.plp @@ -2,15 +2,16 @@ Html({ title => 'latin alphabet cheat sheet', - version => 'v1.1', + version => '1.3', description => [ ], keywords => [qw' latin roman alphabet script letter unicode font glyph abc - writing comparison character sample test language spelling - cursive fraktur blind deaf + code encoding spelling symbol writing comparison character + secret cursive fraktur blind braille morse deaf asl hand + barcode bar color semaphore flag '], - stylesheet => [qw'light dark red'], + stylesheet => [qw( light dark red mono )], data => ['writing-latn.inc.pl'], }); @@ -20,51 +21,156 @@ Html({ font-family: Suetterlin; /* R. G. Arens */ src: url("/suetterlin.ttf"); } - .glyphs tr:first-child+tr td { font-family: Suetterlin } + #sütterlin td { font-family: Suetterlin } + #ita2 td, + #tap-code td, + #short-tap td { + white-space: normal; + word-spacing: 5em; /* force line break between words */ + } + #tap-code td, + #short-tap td { + line-height: 1ex; + } + #ita2 td { + font-size: 50%; + } + #cards td { + font-family: Symbola, "DejaVu Sans", serif, sans; + } + #pigpen { + stroke-linecap: square; + } + #nyctographs, + #old-roman-cursive { + stroke-linecap: round; + stroke-linejoin: round; + } + td { + white-space: nowrap; + } + th { + width: auto !important; + } + + .sample { + vertical-align: middle; + text-align: left; + padding: 1px 0.3em; + } + #old-roman-cursive .sample span { + margin-right: -10px; + } + #tap-code .sample, + #short-tap .sample { + font-size: 80%; + } + #ita2 .sample, + #tap-code .sample, + #short-tap .sample { + word-spacing: 0; + } + #ita2 .sample span, + #tap-code .sample span, + #short-tap .sample span { + margin-right: 1ex; + white-space: nowrap; + } + #sutton-asl .sample span, + #maritime-flags .sample span, + #morse .sample span { + margin-right: 0.5ex; + } + #pigpen .sample svg { + margin-right: 0.1em; + } + #nyctographs .sample svg { + background: rgba(0,0,0, .1); + padding: 0.1em; + margin-right: 0.2em; + } + #unistrokes svg path { + stroke-linecap: round; + stroke-linejoin: round; + } + + svg path:not([fill]) { + stroke: currentColor; + fill: none; + } + svg circle:not([fill]) { + fill: currentColor; + } + + td { + vertical-align: top; + } + td svg { + vertical-align: middle; + }

Latin alphabet

-

Also see other alphabets -and common chars.

+

Variant encodings of the common ASCII (latin, roman, +or 'mercan) letters A–Z. +Also see related alphabets +and font comparison.

-
+
<: -use Shiar_Sheet::FormatChar; -my $glyphs = Shiar_Sheet::FormatChar->new; -unless (exists $get{v}) { - $glyphs->{unicode}--; - $glyphs->{anno} = []; - $glyphs->{style} = 0; -} - -my %scriptname = ( - latn => 'Latin', - latnuc => 'Uppercase', - latnlc => 'Lowercase', - latfsuet => 'Sütterlin', - asl => 'ASL', # American manual alphabet - brai => 'Braille', - morse => 'Morse', - tap => 'Tap code', - taps => 'Tap simplified', - ics => 'Maritime flags', # International Code of Signals - sem => 'Flag semaphore', - code39 => 'Code 39', # ISO/IEC 16388 - rm4scc => 'RM4SCC', -); +use List::Util qw( pairs ); my @table = do 'writing-latn.inc.pl'; if ($! or $@) { - printf "

Table data not found: %s.

\n", $@ || $!; + Alert("Table data not found", $@ || $!); } else { - print $glyphs->table([map { - ref $_ ne 'ARRAY' ? ".>$scriptname{$_}" - : exists $get{uc} ? map {uc} @$_ : @$_ - } @table]); + my %VOWELCOLS = (map { ($_ => 1) } 0, 4, 8, 14, 20, 24); + say ''; + say ''; + + for my $row (pairs @table) { + my ($title, $info) = @{$row}; + printf '', (lc $title) =~ s/<[^>]+>//gr =~ s/\s+/-/gr; + say '
# ASCII − 64'; + print '', $_ for 1 .. 26; + say '
', $title; + my $colspan = 1; + my $col = 0; + for (@{ $info->{list} }) { + $col++; + if ($_ eq '>') { + $colspan++; + next; + } + my @class; + push @class ,'l0' if $VOWELCOLS{$col - $colspan}; + push @class, $_ ? 'ex' : 'u-invalid' if s/^-//; + + print "\t 26) { + # special character for sample generation + print ' hidden'; # sample only + } + else { + print ' title=', chr($col + ord('A') - $colspan); + } + if ($colspan > 1) { + print " colspan=$colspan"; + $colspan = 1; + } + printf ' class="%s"', "@class" if @class; + print '>'; + say; + } + } + say "
\n"; } -print "
\n"; +:>
+ + +