<(common.inc.plp)><:
-use 5.014;
Html({
title => 'latin alphabet cheat sheet',
font-family: Suetterlin; /* R. G. Arens */
src: url("/suetterlin.ttf");
}
- .glyphs tr:first-child+tr+tr td { font-family: Suetterlin }
+ #sütterlin td { font-family: Suetterlin }
+ #tap-code td,
+ #tap-simplified td {
+ line-height: 1ex;
+ }
+ #old-roman-cursive {
+ stroke-width: 3;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ }
svg path:not([fill]) {
stroke: currentColor;
<div>
<:
+use List::Util qw( pairs );
+
my @table = do 'writing-latn.inc.pl';
if ($! or $@) {
- printf "<p class=error>Table data not found: <em>%s</em>.</p>\n", $@ || $!;
+ Alert("Table data not found", $@ || $!);
}
else {
say '<table class="glyphs">';
- print ref $_ ne 'ARRAY' ? "<tr><th>$_\n" : map {/^<td/ ? $_ : "\t<td>$_\n"} @$_
- for @table;
+ for my $row (pairs @table) {
+ my ($title, $cells) = @{$row};
+ printf '<tr id="%s">', (lc $title) =~ s/<[^>]+>//gr =~ s/\s+/-/gr;
+ say '<th>', $title;
+ my $colspan = 1;
+ for (@{$cells}) {
+ if ($_ eq '>') {
+ $colspan++;
+ next;
+ }
+ print "\t<td";
+ if ($colspan > 1) {
+ print " colspan=$colspan";
+ $colspan = 1;
+ }
+ print '>' unless s/^<td//;
+ say;
+ }
+ }
say "</table>\n";
}