(common.inc.plp)><:
Html({
title => 'unicode glyph cheat sheet',
version => '1.2',
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
'],
stylesheet => [qw'light dark mono circus red'],
data => [qw( unicode-table.inc.pl data/unicode-char.inc.pl )],
});
:>
Common Unicode
Glyphs are followed by
digraph or code point,
i^k or i^vu respectively in Vim.
<:
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
?player
Mathematics
math/size
equal
set
logic
Arrows
arrows/single
double
white
black
block
blacktri
whitetri
?-large
?-heavy
Line_drawing
lines/double
doubleh
doublev
single
heavy
heavyh
heavyv
straight
curved
diagonal
Blocks
block/square
shades
fill4
fill4i
fill8
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 = do 'unicode-table.inc.pl' or die $@ || $!;
$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++; $rowlen <= $#$table) {
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;
:>