print '<td colspan=2>unicode';
print '<td>name';
print '<td><a href="/digraphs" title="digraph">di</a><td>html';
-printf '<td title="%s">%s', $font{$_}->{-name}, $font{$_}->{-abbr}
- for @fontlist;
+printf('<td title="%s">%s', map { EscapeHTML($_) }
+ join("\n", $font{$_}->{-name}, $font{$_}->{-description}),
+ $font{$_}->{-abbr},
+) for @fontlist;
say '</thead>';
for my $chr (@chars) {
print '<tr>';
print '<th colspan=2>';
-printf '<td title="%s">%s', $_->{name}, $_->{abbr}
- for @{ $cover->{fonts} }[@fontlist];
+printf('<td title="%s">%s', map { EscapeHTML($_) }
+ join("\n", $_->{name}, $_->{description}),
+ $_->{abbr},
+) for @{ $cover->{fonts} }[@fontlist];
say '</thead>';
for (@rows) {
my ($fontid) = basename($fontfile, $incsuffix);
my ($fontmeta, @fontrange) = do $fontfile or next;
$fontmeta->{file} = $fontid;
+ my $year = substr $fontmeta->{date}, 0, 4;
+ $fontmeta->{description} = join(' ',
+ (map { "version $_" } $fontmeta->{version} || ()),
+ $fontmeta->{version} && $fontmeta->{version} =~ /\Q$year/ ? () :
+ (map { "($_)" } $year || ()),
+ );
push @fontlist, $fontmeta;
$cover{$fontid} = { map { (chr $_ => 1) } @fontrange };
}
source => $ttfuri =~ m{(^/usr/.+ | [^/]+) \z}msx,
name => $ttfmeta->find_name(4) || $ttfname,
revision => sprintf('%g', $ttf->{head}->{fontRevision}),
- version => $ttfmeta->find_name(5) =~ s/\Aversion //ri,
+ version => $ttfmeta->find_name(5) =~ s/\Aversion //ri =~ s/\s+\z//r,
copyright=> scalar $ttfmeta->find_name(0),
license => $ttfmeta->find_name(14) || undef,
date => (map {