X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/9cabbcb99510ce7c9256d085d1c9de6c0b5fc8ce..HEAD:/unicode.plp diff --git a/unicode.plp b/unicode.plp index 2f9969a..a7d5459 100644 --- a/unicode.plp +++ b/unicode.plp @@ -2,7 +2,7 @@ Html({ title => 'unicode glyph cheat sheet', - version => 'v1.0', + version => '1.4', description => [ "Common Unicode characters with digraph or code point, layed out for quick location.", "Includes general symbols, arrows, drawing characters, and IPA letters.", @@ -11,7 +11,7 @@ Html({ unicode glyph char character reference common ipa symbol sign mark table digraph '], stylesheet => [qw'light dark mono circus red'], - data => [qw'digraphs.inc.pl unicode.inc.pl'], + data => [qw( unicode-table.inc.pl data/unicode-char.inc.pl )], }); :> @@ -26,7 +26,6 @@ i^k or i^vu respectively in Vim.
<: -use 5.010; use Shiar_Sheet::FormatChar; my $glyphs = Shiar_Sheet::FormatChar->new; @@ -36,72 +35,62 @@ if (exists $get{di}) { if (exists $get{q}) { $glyphs->{anno} = []; } +if (exists $get{html}) { + $glyphs->{anno} = ['html', 'xml']; + $glyphs->{style} = 'html'; +} our $verbose = exists $get{v}; -my $tables = do 'unicode.inc.pl' or die $@ || $!; - -$glyphs->print(map { - my $_ = /(.*)\?(.*)/ ? ($verbose ? $2 : $1) : $_; - if (/[A-Z]/) { - $_; - } - else { - state $group; - $group = $1 if s{^([^/]+)/}{}; - if (s/=(.*)//) { - my @select = split /=/, $1; - my $table = $tables->{$group}->{$_}; - my $rowlen; - for ($rowlen = 1; $rowlen++; $rowlen <= $#$table) { - last if $table->[$rowlen] =~ /\./; - } - my @cells = map { $_*$rowlen .. ($_+1)*$rowlen - 1 } @select; - [ @$table[@cells] ]; - } - else { - $tables->{$group}->{$_}; - } - } -} qw{ +my @config = qw( Popular punctuation/quoting - common - symbols/binary?symbols/binary=0 - latin/sample=0=1 - sample=2=3 + common=-5?common + symbols/binary?symbols/binary=-5 + latin/sample=-1 + ?sample=2- ?uncommon punctuation/version punctuation/marks + spacing Symbols symbols/currency - cards + cards=-3?cards ?chess + harvey signs1 communic=0?communic trinity=0?trinity signs2 Signs solar - zodiac=0?zodiac - Key commands + ?minorplanets + zodiac=0-1=3?zodiac + Key_commands keys/spacing editing modifier control command + android=0 + ps=0 ?player + Mathematics + math/size + equal + set + logic Arrows arrows/single double white black + triangle + barb block blacktri whitetri - ?-large - ?-heavy - Line drawing + Line_drawing lines/double doubleh doublev @@ -118,28 +107,65 @@ $glyphs->print(map { fill4 fill4i fill8 + colour IPA ipa/cons consco vowels + tones + contours ?Japanese ?japanese/hira ?hiraderiv ?kata ?kataderiv -}); +); -:>
+splice @config, 4, 2, qw( + latin/vowels=-5?latin/vowels + westeuro + ?easteuro +) if exists $get{html}; -
- -
ascii - <:= $glyphs->{style} eq 'di' ? 'digraph' : 'latin1' :> - <:= $glyphs->{style} eq 'di' ? 'proposed' : 'BMP' :> - other unicode - discouraged -
-
+$_ and m{/*+(.+)} and @config = split /[ ]/, $1 for $Request, $get{q}; +my $tables = Data('unicode-table'); + +$glyphs->print(map { + $_ = /(.*)\?(.*)/ ? ($verbose ? $2 : $1) : $_; + if (!$_) { + (); + } + elsif (/[A-Z]/) { + tr/_/ /; + $_; + } + else { + state $group; + $group = $1 if s{^([^/]+)/}{}; + my @select = s/=(.*)// ? split(/=/, $1) : (); + my $table = $tables->{$group}->{$_} + or Abort("Unknown table specified: $group/$_", 404); + + if (@select) { + my $rowlen; + for ($rowlen = 1; $rowlen <= $#$table; $rowlen++) { + last if $table->[$rowlen] =~ /\./; + } + my @cells = map { + my $end = (s/-(.+)?// ? ($1 // @$table / $rowlen - 1) : $_) + 1; + $_ * $rowlen .. $end * $rowlen - 1; + } @select; + $table = [ @$table[@cells] ]; + } + $table; + } +} @config); + +say "\n"; + +say for $glyphs->legend; + +:>