X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/4af2c4c329f1a501831734ce6e7e867bf1d26b9d..505057bf787c2582cc1e4d3e17f2ea6c93ab53bd:/unicode.plp?ds=sidebyside diff --git a/unicode.plp b/unicode.plp index 70f13e6..0ec6374 100644 --- a/unicode.plp +++ b/unicode.plp @@ -2,7 +2,7 @@ Html({ title => 'unicode glyph cheat sheet', - version => 'v1.0', + version => '1.1', description => [ "Common Unicode characters with digraph or code point, layed out for quick location.", "Includes general symbols, arrows, drawing characters, and IPA letters.", @@ -10,8 +10,8 @@ Html({ keywords => [qw' unicode glyph char character reference common ipa symbol sign mark table digraph '], - stylesheet => [qw'light dark red'], - data => [qw'digraphs.inc.pl'], + stylesheet => [qw'light dark mono circus red'], + data => [qw'unicode-table.inc.pl unicode-char.inc.pl'], }); :> @@ -30,191 +30,143 @@ use Shiar_Sheet::FormatChar; my $glyphs = Shiar_Sheet::FormatChar->new; if (exists $get{di}) { - $glyphs->{digraph} = defined $get{di} ? ! !$get{di} : 1; - $glyphs->{unicode} = 1; + $glyphs->{anno} = [ (!defined $get{di} || $get{di}) && 'di', 'hex' ]; } if (exists $get{q}) { - $glyphs->{unicode} = -1; - $glyphs->{digraph}--; + $glyphs->{anno} = []; +} +if (exists $get{html}) { + $glyphs->{anno} = ['html', 'xml']; + $glyphs->{style} = 'html'; } our $verbose = exists $get{v}; -$glyphs->print( - 'Popular', - [qw{. « » . ⹠⺠. â â . â â . â â . â â}], - [qw{. â ⡠⢠. § ¶ # . © ® ⢠. ° â² â³ . â à ÷ . ± ² â}], - [qw{. â â . â â . ⺠⹠. â â . â â }, $verbose ? () : qw{. â âº}], - [qw{. Ã¥ ä ö ü à . Ä Ã¦ ø ű Å¿}], - [qw{ - . á è õ û ç . Ä Ä± Æ¡ ů þ - }], - $verbose ? [qw{ - .>Englisc æ ð Ä È Å Ã¾ Æ¿ - .>Sámi á Ä Ä Å Å¡ ŧ ž - .>Slavic Ä Ä Å Å¯ ź ż ž - .>Türkçe ç Ä Ä± Ä° ö Šü - .>Esperanto Ä Ä Ä¥ ĵ Å Å - }] : (), - [qw{. α β}], - [qw{. ¿ ⦠ã â â . ⽠· â» â â }], - - 'Symbols', - [qw{. ¤ ¢ ⥠⬠£ ⨠$ Â¥ . ฿ â« â ⦠Ⱡ⮠⩠âª}], - [qw{. â ⡠⢠⣠. ⤠⥠⦠â§}], - [qw{. ⮠⯠⻠⪠Ⲡ⿠}], - [qw{. â â â» â â}, $verbose ? qw{. ð ð¾ ð° ð® ð } : ()], # communication - [qw{. â â â }, $verbose ? qw{. ð¹ ð ð¼ } : ()], # 3-way (RockPaperScissors, TerranProtossZerg) - [qw{. â â¡ â }], - 'Signs', - [qw{. â â¿ â â â â â â â â}], # solar - [qw{ - . â â â â â â â â â â â â - }, !$verbose ? () : qw{ - . å¯ å¯ è¾° å·³ å æª ç³ é æ 亥 å ä¸ - . è å é¾ è 馬 ç¾ ç´ é ç 豬 é¼ ç - . ð ð ð ð ð ð ð ð ð ð ð ð - }], # zodiac - - 'Key commands', - [qw{. ⥠⤠. ⣠⫠}], # common spacing - [qw{. â â± â . ⦠Ⲡâ }], # edit block - [qw{. ⪠⯠â . ⧠⮠â }], # modifier - [qw{. â ⥠â â }], [qw{. âµ â â â }], # command -$verbose ? ( - [qw{. ⺠⩠â â¼ â« . â ⪠⮠â -ââ }], # player ui -) : (), - - 'Arrows', - [qw{. â â â â . â - â â . â â â -}], - [qw{. â â â â . â - â â . â â â -}], - [qw{. ⬠⧠⬠⬠. ⦠- ⨠Ⳡ. ⬠⩠⬠-}], - [qw{. ⬠⬠⬠⬠. ⬠- ⡠⬠. ⬠⬠⬠-}], - [qw{. ⩠⬠⬠. ⧠⡠⨠. ⬠⬠⪠}], - [qw{. ⤠Ⲡ⥠. â â ⶠ. ⣠⼠⢠}], - [qw{. ⸠Ⳡ⹠. â â â· . ⺠⽠⿠}], -$verbose ? ( - [qw{. î© î§ îª . î¥ - î¦ . î« î¨ î¬ }], - [qw{. î± î¯ î² . î - î® . î³ î° î´ }], -) : (), - - 'Line drawing', - [qw{. â ⦠â â . â ⬠⣠â . â â© â - }], - [qw{. â ⤠â . â ⪠⡠. â ⧠â }], - [qw{. â ⥠â . â ⫠⢠. â ⨠â }], - [qw{. â ⬠â . â ⼠⤠. â â´ â}], - [qw{. â â³ â . ⣠â â« . â â» â}], - [qw{. â ⯠â . â ⿠⥠. â â· â}], - [qw{. â â° â . â â ⨠. â ⸠â}], - [qw{ - . â´ â â â â ⶠ⾠- . ⸠â â â â ⺠⼠- . âµ â â â â â· â¿ - . â¹ â â â â â» â½ - }], - [qw{. â â® . Ⱐ⯠}], - [qw{. â± â³ â² }], - # âââ¡â¢â¦â§â©âªââ®â±â²âµâ¶â¹âºâ½â¾âââââ âââââ - - 'Blocks', - [qw{. ⡠⣠â . ⤠⦠⥠. ⧠⩠â¨}], - [qw{. â . â . â }], - [qw{. â â â . â â â . â â â }], - [qw{. â â â . â â â }], - [qw{. â â â â â â â â . â â â â â â â â }], - - 'IPA', - [qw{ - - BiL:Bilabial LD:Labiodental D:Dental Alv:Alveolar PA:Postalveolar - Rf:Retroflex Pal:Palatal Vel:Velar Uv:Uvular Ph:Pharyngeal - EG:Epiglottal Gl:Glottal - .>Plosive p -ȹ > > t Ê c k q = Ê¡ Ê - .>Voiced_Plosive b -ȸ > > d É É É¡ É¢ = - = - .>Nasal m ɱ > > n ɳ ɲ Å É´ = = = - .>Trill Ê - > > r - - = Ê = -Ñ = - .>Tap/flap - â±± > > ɾ ɽ - = É¢Ì = - = - .>Fricative ɸ f θ s Ê Ê Ã§ x Ï Ä§ Ê h - .>Voiced_fricative β v ð z Ê Ê Ê É£ Ê Ê Ê¢ ɦ - .>Lateral_fricative = = > > ɬ - - - - = = = - .>Voiced_lateral_fricative = = > > É® - - - - = = = - .>Approximant - Ê > > ɹ É» j É° - - - = - .>Lateral_approximant = = > > l É Ê Ê - = = = - .>Click Ê - Ç Ç Ç -â¼ Ç - - = = = - .>Implosive É É̪ > > É -á¶ Ê É Ê = = = - }], - [qw{ - - co:coarticulated .>sç É .>zÊ Ê .>Êx ɧ .>jÊ· É¥ .>hwÌ¥ Ê .>É°Ê· w - }], - [( - '-', - map { substr($_, 0, 1).':'.$_, substr($_, 0, 1)." r:$_ rounded" } - qw{Front Central Back} - ), qw{ - .>Close i y ɨ Ê É¯ u - .>Near-close ɪ Ê - - - Ê - .>Close-mid e ø É Éµ ɤ o - .>Mid - - É - - - - .>Open-mid É Å É É Ê É - .>Near-open æ - É - - - - .>Open a ɶ - - É É - }], - -$verbose ? ( - 'Japanese', - [qw{ - - A I U E O _ - .> ã ã ã ã ã = - .>K ã ã ã ã ã = - .>S ã ã ã ã ã = - .>T ã 㡠㤠㦠㨠= - .>N 㪠㫠㬠ã ã® ã - .>H 㯠㲠㵠㸠㻠= - .>M ã¾ ã¿ ã ã ã = - .>Y ã = ã = ã = - .>R ã ã ã ã ã = - .>W ã -ã = -ã ã = - }], - [qw{ - - A I U E O - .>G ã ã ã ã ã - .>Z ã ã ã ã ã - .>D ã 㢠㥠㧠㩠- .>B 㰠㳠㶠㹠㼠- .>P 㱠㴠㷠㺠㽠- }], - [qw{ - - A I U E O _ - .> 㢠㤠㦠㨠㪠㼠- .>K ã« ã 㯠㱠㳠= - .>S ãµ ã· ã¹ ã» ã½ = - .>T ã¿ ã ã ã ã = - .>N ã ã ã ã ã ã³ - .>H ã ã ã ã ã = - .>M ã ã ã 㡠㢠= - .>Y 㤠- 㦠- 㨠= - .>R 㩠㪠㫠㬠ã = - .>W 㯠㰠- ã± ã² = - }], - [qw{ - - A I U E O - .>G 㬠㮠㰠㲠㴠- .>Z 㶠㸠㺠㼠㾠- .>D ã ã ã ã ã - .>B ã ã ã ã ã - .>P ã ã ã ã ã - .>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 + 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 + ?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 { + my $_ = /(.*)\?(.*)/ ? ($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 die "Unknown table specified: $group/$_"; + + 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); + :>
ascii - | <:= $glyphs->{digraph} ? 'digraph' : 'latin1' :> - | <:= $glyphs->{digraph} ? 'proposed' : 'BMP' :> - | other unicode + | <:= $glyphs->{style} eq 'di' ? 'digraph' : 'latin1' :> + | <:= $glyphs->{style} eq 'di' ? 'proposed' : 'HTML4' :> + | unicode â¤6.0 + | other unicode | discouraged |