<(common.inc.plp)><: Html({ title => 'unicode glyph cheat sheet', 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.", ], keywords => [qw' unicode glyph char character reference common ipa symbol sign mark table digraph '], data => [qw( unicode-table.inc.pl data/unicode-char.inc.pl )], }); :> <h1>Common Unicode</h1> <p> Glyphs are followed by <a href="/digraphs">digraph</a> or <a href="/charset">code point</a>, i^k or i^vu respectively in <a href="/vi">Vim</a>. </p> <div class="diinfo"> <: use Shiar_Sheet::FormatChar; my $glyphs = Shiar_Sheet::FormatChar->new; if (exists $get{di}) { $glyphs->{anno} = [ (!defined $get{di} || $get{di}) && 'di', 'hex' ]; } if (exists $get{q}) { $glyphs->{anno} = []; } if (exists $get{html}) { $glyphs->{anno} = ['html', 'xml']; $glyphs->{style} = 'html'; } our $verbose = exists $get{v}; my @config = qw( Popular punctuation/quoting common=-5?common symbols/binary?symbols/binary=-5 latin/sample=-1 ?sample=2- ?uncommon punctuation/version punctuation/marks spacing Symbols symbols/currency cards=-3?cards ?chess harvey signs1 communic=0?communic trinity=0?trinity signs2 Signs solar ?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 Line_drawing lines/double doubleh doublev single heavy heavyh heavyv straight curved diagonal Blocks block/square shades 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}; $_ 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 { s/^(?=-)/0/; my $end = (s/-(.+)?// ? ($1 // @$table / $rowlen - 1) : $_) + 1; $_ * $rowlen .. $end * $rowlen - 1; } @select; $table = [ @$table[@cells] ]; } $table; } } @config); say "</div>\n"; say for $glyphs->legend; :> <script type="text/javascript" src="/clipboard.js"></script>