X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/3a44f7513defe91c62161807a1ad9a7646155846..f850d8bca38d6f025cd26b62b6e5504dd4d77ad1:/unicode.plp?ds=inline diff --git a/unicode.plp b/unicode.plp index da5b6e8..ac63170 100644 --- a/unicode.plp +++ b/unicode.plp @@ -1,25 +1,17 @@ -<: -use utf8; -use strict; -use warnings; -no warnings 'qw'; # that's not a comment, it's a NUMBER SIGN -use open IO => ':utf8'; - -our $VERSION = '1.0'; - -$header{content_type} = 'text/html; charset=utf-8'; +<(common.inc.plp)><: + our $VERSION = 'v1.0'; :>
-i^k in Vim. @@ -30,7 +22,7 @@ Also see the complete digraphs table.
<: my $diinfo = do 'digraphs.inc.pl'; my %di = map { $diinfo->{$_}->[0] => $_ } grep { ref $diinfo->{$_} } - keys %$diinfo; + sort { length $a <=> length $b } keys %$diinfo; sub quote { local $_ = shift; @@ -75,8 +67,7 @@ sub glyph_table { next; } - my $code = join '', map { $di{ord $_} || '' } split //, $cell; - my $name = $diinfo->{$code}->[1]; + my ($code, $name); # determine display class my @class; @@ -92,11 +83,18 @@ sub glyph_table { push @class, 'di-rare'; # discouraged } - if ($code) { + $code = join '', map { $di{ord $_} || '' } split //, $cell; + $name = $diinfo->{$code}->[1]; + length $code == 2 or undef $code; + + if (defined $code) { push @class, 'di-d'; # digraph push @class, 'di-prop' # unofficial if $diinfo->{$code}->[2] =~ /\bXz\b/; } + elsif (defined $name) { + push @class, 'X'; + } if ($cell =~ /[ -~]/) { push @class, 'di-a'; # ascii @@ -112,7 +110,7 @@ sub glyph_table { @class ? sprintf(' class="%s"', join ' ', @class) : '', $colspan > 1 && qq{ colspan="$colspan"}, $cell eq '' ? ' ' : quote($cell), - $code ne '' ? sprintf(' %s', quote($code)) + defined $code ? sprintf(' %s', quote($code)) : length($cell) == 1 && $cell !~ /[a-z]/ ? sprintf(' %04X', 'value', ord $cell) : '', @@ -127,7 +125,7 @@ sub glyph_table { sub print_glyph_tables { while (@_) { - printf "ascii | digraph @@ -279,16 +282,14 @@ print_glyph_tables( |