X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/53885bccd7945b6d1d39baef16290e086ce97027..f18c74928ccf255c0c03f352732dd674efd73040:/writing-latn.inc.pl
diff --git a/writing-latn.inc.pl b/writing-latn.inc.pl
index f0a3e40..d8d0d53 100644
--- a/writing-latn.inc.pl
+++ b/writing-latn.inc.pl
@@ -5,6 +5,18 @@ use List::Util qw( pairs pairmap sum );
my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20);
my $U = 0; # optional unicode alternatives
+my @wrapstyle = (
+ 'td { white-space: normal; word-spacing: 5em }', # force line break between words
+ '.sample { word-spacing: 0 }',
+ '.sample span { margin-right: 1ex; white-space: nowrap }', # larger space between letters
+);
+my $spacestyle = '.sample span { margin-right: 0.5ex }'; # separate multiple letters
+my @tapstyle = (
+ @wrapstyle,
+ '{ line-height: 1ex }',
+ '.sample { font-size: 80% }',
+);
+
sub disptap {
my $code = shift;
my ($prefix, @dots) = $code =~ m/\A(-?)(\d)(\d)/ or return $code;
@@ -46,10 +58,21 @@ lowercase => {
},
suetterlin => {
title => 'Sütterlin',
+ style => [
+ '@font-face {
+ font-family: Suetterlin; /* R. G. Arens */
+ src: url("/suetterlin.ttf");
+ }',
+ 'td { font-family: Suetterlin }',
+ ],
list => [qw{ a b c d e f g h i j k l m n o p q r Å¿Â s t u v w x y z }],
},
roman => {
title => 'Old Roman Cursive',
+ style => [
+ 'svg path { stroke-linecap: round; stroke-linejoin: round }',
+ '.sample span { margin-right: -10px }',
+ ],
list => [
map {
!m/^(-?)(\w.+)/ ? $_ :
@@ -85,6 +108,7 @@ roman => {
},
sutton => {
title => 'Sutton ASL',
+ style => $spacestyle,
list => [
# American manual alphabet in Sutton (U+1D800+) notation
map { !!$_ && pack 'W*', map { hex "1D$_" } unpack '(A3)*', $_ } qw{
@@ -99,6 +123,7 @@ sutton => {
},
unistrokes => {
title => 'Unistrokes',
+ style => 'svg path { stroke-linecap: round; stroke-linejoin: round }',
list => [
map { '' }
map {
@@ -139,6 +164,7 @@ unistrokes => {
#},
ita2 => {
title => 'ITA2',
+ style => [@wrapstyle, 'td { font-size: 50% }'],
list => [map { tr/01/ââ/r =~ s/..\K/ /r } qw(
11000 10011 01110 10010 10000 10110 01011 00101 01100 11010 11110 01001 00111
00110 00011 01101 11101 01010 10100 00001 11100 01111 11001 10111 10101 10001
@@ -167,6 +193,7 @@ tactile => {
],
},
morse => {
+ style => $spacestyle,
list => [map {tr/.-/â§â/r} qw{
.- -... -.-. -.. . ..-. --. .... .. .--- -.- .-.. --
-. --- .--. --.- .-. ... - ..- ...- .-- -..- -.-- --..
@@ -174,6 +201,7 @@ morse => {
},
tap => {
title => 'Tap code',
+ style => \@tapstyle,
list => [map { disptap($_) } qw{
11 12 13 14 15 21 22 23 > 24 25 31 32
33 34 35 41 42 43 44 45 51 52 53 54 55
@@ -181,12 +209,14 @@ tap => {
},
shorttap => {
title => 'Short Tap',
+ style => \@tapstyle,
list => [map { disptap($_) } qw{
11 12 13 14 21 22 23 20 > 31 -13 32 33
30 41 42 -13 43 40 10 51 52 53 50 -31 -40
}],
},
cards => {
+ style => 'td { font-family: Symbola, "DejaVu Sans", serif, sans }',
list => [(
map { chr(0x1F0A0 + $_), sprintf('%s', chr(0x1F0B0 + $_)) } # spades, hearts
1 .. 11, 13, 14 # A 2-10 J Q K
@@ -194,6 +224,7 @@ cards => {
},
maritime => {
title => 'Maritime flags',
+ style => $spacestyle,
list => [
# International Code of Signals, SVG fills
map { !!$_ && '' }
@@ -444,6 +475,10 @@ dni => {
],
},
pigpen => {
+ style => [
+ 'svg path { stroke-linecap: square }',
+ '.sample svg { margin-right: 0.1em }',
+ ],
list => [
map {
qq()
@@ -468,6 +503,14 @@ pigpen => {
],
},
nyctographs => {
+ style => [
+ 'svg path { stroke-linecap: round; stroke-linejoin: round }',
+ '.sample svg {
+ background: rgba(0,0,0, .1);
+ padding: 0.1em;
+ margin-right: 0.2em;
+ }',
+ ],
list => [
map { s/M[\d,\hM]+(?=[M"])//gr } # clean up superfluous moves
map { sprintf