git.shiar.nl
/
sheet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
latin: chromacons description in header title
[sheet.git]
/
writing-latn.inc.pl
diff --git
a/writing-latn.inc.pl
b/writing-latn.inc.pl
index 44fc0d6ce526810b3229cd1437277b7ff0453e45..4c10d46b93be80926d3b33e84b1bef9731b2e5b8 100644
(file)
--- a/
writing-latn.inc.pl
+++ b/
writing-latn.inc.pl
@@
-12,14
+12,17
@@
my %C = (
my $U = 0; # optional unicode alternatives
my @wrapstyle = (
my $U = 0; # optional unicode alternatives
my @wrapstyle = (
- 'td { white-space: normal; word-spacing: 10em }', # force line break between words
+ 'td { white-space: normal; word-spacing: 10em }',
+ # force line break between words
'.sample { word-spacing: 0 }',
'.sample { word-spacing: 0 }',
- '.sample span { margin-right: 1ex; white-space: nowrap; display: inline-block }', # larger space between letters
+ '.sample span { margin-right: 1ex; white-space: nowrap; display: inline-block }',
+ # larger space between letters
);
);
-my $spacestyle = '.sample span { margin-right: 0.5ex }'; # separate
multiple
letters
+my $spacestyle = '.sample span { margin-right: 0.5ex }'; # separate letters
my @tapstyle = (
@wrapstyle,
'{ line-height: 1ex }',
my @tapstyle = (
@wrapstyle,
'{ line-height: 1ex }',
+ 'td:not(.sample) { vertical-align: top }',
'.sample { font-size: 80% }',
);
'.sample { font-size: 80% }',
);
@@
-28,6
+31,18
@@
my @hueorder = (
1,10,9,12,3,4,0, 14,23,22,25,16,17,26, # dark, light hues
);
1,10,9,12,3,4,0, 14,23,22,25,16,17,26, # dark, light hues
);
+# Order to put similar sounds close to each other:
+# ┌ R Y G C B M X
+# ┌┼──────────────
+# W│ o e y h s f -
+# │muaixqgkdtbp l
+# K│ w n j c z v r
+
+my @hueletters = ((26) x 27);
+@hueletters[map { ord($_) - ord('a') } qw(
+ u a i x q g k d t b p m l w n j c z v r o e y h s f
+)] = @hueorder;
+
sub disptap {
my $code = shift;
my ($prefix, @dots) = $code =~ m/\A(-?)(\d)(\d)/ or return $code;
sub disptap {
my $code = shift;
my ($prefix, @dots) = $code =~ m/\A(-?)(\d)(\d)/ or return $code;
@@
-62,15
+77,16
@@
sub dispbar {
sub disphues {
my ($index, $hues, $opaque) = @_;
sub disphues {
my ($index, $hues, $opaque) = @_;
+ $index >= 0 or $index = 26;
my @lum = ($index % 3, $index / 3 % 3, $index / 9); # hue opacities (0..2)x3
my @lumf = $opaque ? ('hsl(%s,100%%,50%%)', 'hsl(%s,100%%,25%%)') :
('hsl(%s,100%%,50%%)', 'hsla(%s,100%%,50%%,.5)');
return sprintf(
my @lum = ($index % 3, $index / 3 % 3, $index / 9); # hue opacities (0..2)x3
my @lumf = $opaque ? ('hsl(%s,100%%,50%%)', 'hsl(%s,100%%,25%%)') :
('hsl(%s,100%%,50%%)', 'hsla(%s,100%%,50%%,.5)');
return sprintf(
- '<svg width="16" height="16" viewBox="0 0
22 2
2">%s</svg>',
+ '<svg width="16" height="16" viewBox="0 0
12 1
2">%s</svg>',
join '', map {
my $colf = $lumf[ $lum[$_] ];
!$colf ? () : sprintf('<circle cx="%d" cy="%d" r="%d" fill="%s"/>',
join '', map {
my $colf = $lumf[ $lum[$_] ];
!$colf ? () : sprintf('<circle cx="%d" cy="%d" r="%d" fill="%s"/>',
-
10 + $_, $_ == 1 ? 12 : 10, 10
, sprintf($colf, $hues->[$_])
+
5 + $_, $_ == 1 ? 7 : 5, 5
, sprintf($colf, $hues->[$_])
);
} 0 .. 2
);
);
} 0 .. 2
);
@@
-84,7
+100,7
@@
lowercase => {
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 }],
},
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 }],
},
suetterlin => {
-
titl
e => 'Sütterlin',
+
nam
e => 'Sütterlin',
style => [
'@font-face {
font-family: Suetterlin; /* R. G. Arens */
style => [
'@font-face {
font-family: Suetterlin; /* R. G. Arens */
@@
-95,15
+111,15
@@
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 => {
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 => {
-
titl
e => 'Old Roman Cursive',
+
nam
e => 'Old Roman Cursive',
style => [
'svg path { stroke-linecap: round; stroke-linejoin: round }',
'.sample span { margin-right: -10px }',
],
list => [
map {
style => [
'svg path { stroke-linecap: round; stroke-linejoin: round }',
'.sample span { margin-right: -10px }',
],
list => [
map {
- !m/^(-?)(\w.+)/ ? $_ :
- $1.'<svg width="20" height="20" viewBox="0 0 12 20"><path d="'.$2.'"/></svg>'
+ s{\A-?\K(\w.+)}
+ {<svg width="20" height="20" viewBox="0 0 12 20"><path d="$1"/></svg>}r
}
"m2,4 c1,2 8,9 8,9 M2,15 6,9",
"m2,4 c0,0 3,-2 4,1 1,2 0,9 3,9 1,-0 2,-1 2,-1 m-6,-2 c-5,4 -0,6 1,3",
}
"m2,4 c1,2 8,9 8,9 M2,15 6,9",
"m2,4 c0,0 3,-2 4,1 1,2 0,9 3,9 1,-0 2,-1 2,-1 m-6,-2 c-5,4 -0,6 1,3",
@@
-134,7
+150,7
@@
roman => {
],
},
sutton => {
],
},
sutton => {
-
titl
e => 'Sutton <abbr title="American Sign Lanugage">ASL</abbr>',
+
nam
e => 'Sutton <abbr title="American Sign Lanugage">ASL</abbr>',
style => $spacestyle,
list => [
# American manual alphabet in Sutton (U+1D800+) notation
style => $spacestyle,
list => [
# American manual alphabet in Sutton (U+1D800+) notation
@@
-149,7
+165,7
@@
sutton => {
}],
},
unistrokes => {
}],
},
unistrokes => {
-
titl
e => 'Unistrokes',
+
nam
e => 'Unistrokes',
url => 'https://www.google.com/patents/US5596656', # by Xerox
style => 'svg path { stroke-linecap: round; stroke-linejoin: round }',
list => [
url => 'https://www.google.com/patents/US5596656', # by Xerox
style => 'svg path { stroke-linecap: round; stroke-linejoin: round }',
list => [
@@
-188,7
+204,7
@@
unistrokes => {
],
},
edgewrite => {
],
},
edgewrite => {
-
titl
e => 'EdgeWrite',
+
nam
e => 'EdgeWrite',
url => 'http://depts.washington.edu/ewrite/', # patented US7729542
style => 'svg path { stroke-linecap: round; stroke-linejoin: round }',
list => [
url => 'http://depts.washington.edu/ewrite/', # patented US7729542
style => 'svg path { stroke-linecap: round; stroke-linejoin: round }',
list => [
@@
-196,12
+212,14
@@
edgewrite => {
map {
my @route = split //;
my @coords = map { $_ % 2 << 3, $_ >> 1 << 3 } @route; # x,y,
map {
my @route = split //;
my @coords = map { $_ % 2 << 3, $_ >> 1 << 3 } @route; # x,y,
- sprintf('<circle cx="%s" cy="%s" r="1"/>', @coords[0, 1]) . # start point
- sprintf('<path d="M%s"/>', join ' ', map {
- my $pos = join(',', @coords[$_*2, $_*2 + 1]);
- $_ > 1 && $route[$_] == $route[$_ - 2] ? 'Q4,4 '.$pos.'L' : # curve back
- $pos
- } 0 .. $#route)
+ sprintf('<circle cx="%s" cy="%s" r="1"/><path d="M%s"/>',
+ @coords[0, 1], # start point
+ join(' ', map {
+ my $pos = join(',', @coords[$_*2, $_*2 + 1]);
+ $_ > 1 && $route[$_] == $route[$_ - 2] # curve back
+ ? 'Q4,4 '.$pos.'L' : $pos
+ } 0 .. $#route),
+ )
}
# corners (0..3) clockwise from top-left in order
qw(
}
# corners (0..3) clockwise from top-left in order
qw(
@@
-211,10
+229,10
@@
edgewrite => {
],
},
#graffiti => {
],
},
#graffiti => {
-#
titl
e => 'Palm Graffiti',
+#
nam
e => 'Palm Graffiti',
#},
ita2 => {
#},
ita2 => {
-
titl
e => '<abbr title="International Telegraph Alphabet">ITA</abbr>2',
+
nam
e => '<abbr title="International Telegraph Alphabet">ITA</abbr>2',
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
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
@@
-226,7
+244,7
@@
braille => {
list => [qw{ ⠁ ⠃ ⠉ ⠙ ⠑ ⠋ ⠛ ⠓ ⠊ ⠚ ⠅ ⠇ ⠍ ⠝ ⠕ ⠏ ⠟ ⠗ ⠎ ⠞ ⠥ ⠧ ⠺ ⠭ ⠽ ⠵ }],
},
tactile => {
list => [qw{ ⠁ ⠃ ⠉ ⠙ ⠑ ⠋ ⠛ ⠓ ⠊ ⠚ ⠅ ⠇ ⠍ ⠝ ⠕ ⠏ ⠟ ⠗ ⠎ ⠞ ⠥ ⠧ ⠺ ⠭ ⠽ ⠵ }],
},
tactile => {
-
titl
e => '5-point Tactile',
+
nam
e => '5-point Tactile',
list => [
map { '<svg width="9" height="12" viewBox="0 0 18 24">'.$_.'</svg>' }
map {
list => [
map { '<svg width="9" height="12" viewBox="0 0 18 24">'.$_.'</svg>' }
map {
@@
-251,7
+269,7
@@
morse => {
}],
},
tap => {
}],
},
tap => {
-
titl
e => 'Tap code',
+
nam
e => 'Tap code',
style => \@tapstyle,
list => [map { disptap($_) } qw{
11 12 13 14 15 21 22 23 > 24 25 31 32
style => \@tapstyle,
list => [map { disptap($_) } qw{
11 12 13 14 15 21 22 23 > 24 25 31 32
@@
-259,7
+277,7
@@
tap => {
}],
},
shorttap => {
}],
},
shorttap => {
-
titl
e => 'Short Tap',
+
nam
e => 'Short Tap',
style => \@tapstyle,
list => [map { disptap($_) } qw{
11 12 13 14 21 22 23 20 > 31 -13 32 33
style => \@tapstyle,
list => [map { disptap($_) } qw{
11 12 13 14 21 22 23 20 > 31 -13 32 33
@@
-274,7
+292,7
@@
cards => {
), '', chr(0x1F0CF), chr(0x1F0DF) ],
},
maritime => {
), '', chr(0x1F0CF), chr(0x1F0DF) ],
},
maritime => {
-
titl
e => 'Maritime flags',
+
nam
e => 'Maritime flags',
style => $spacestyle,
list => [
# International Code of Signals, SVG fills
style => $spacestyle,
list => [
# International Code of Signals, SVG fills
@@
-319,7
+337,8
@@
maritime => {
<path fill="$C{yellow}" d="M0,0 h15 v15 h-15 M15,15 h15 v15 h-15"/>
<path fill="white" d="M0,0 h30v30 h-30z"/>
<path fill="$C{yellow}" d="M0,0 h15 v15 h-15 M15,15 h15 v15 h-15"/>
<path fill="white" d="M0,0 h30v30 h-30z"/>
- <path fill="$C{blue}" d="M4,0h22l-11,11 M4,30h22l-11,-11 M0,4v22l11,-11 M30,4v22l-11,-11"/>
+ <path fill="$C{blue}" d="M4,0h22l-11,11 M4,30h22l-11,-11
+ M0,4v22l11,-11 M30,4v22l-11,-11"/>
<path fill="white" d="M0,0 h30v30 h-30z"/>
<path fill="$C{blue}" d="
<path fill="white" d="M0,0 h30v30 h-30z"/>
<path fill="$C{blue}" d="
@@
-352,7
+371,8
@@
maritime => {
<path fill="$C{red}" d="M0,0 h15 v15 h-15 M15,15 h15 v15 h-15"/>
<path fill="$C{red}" d="M0,0 h30v30 h-30z"/>
<path fill="$C{red}" d="M0,0 h15 v15 h-15 M15,15 h15 v15 h-15"/>
<path fill="$C{red}" d="M0,0 h30v30 h-30z"/>
- <path fill="white" d="M4,0h22l-11,11 M4,30h22l-11,-11 M0,4v22l11,-11 M30,4v22l-11,-11"/>
+ <path fill="white" d="M4,0h22l-11,11 M4,30h22l-11,-11
+ M0,4v22l11,-11 M30,4v22l-11,-11"/>
<path fill="$C{blue}" d="M0,0 h30v30 h-30z"/>
<path fill="white" d="M5,5 h20 v20 h-20"/>
<path fill="$C{blue}" d="M0,0 h30v30 h-30z"/>
<path fill="white" d="M5,5 h20 v20 h-20"/>
@@
-363,8
+383,8
@@
maritime => {
<path fill="$C{blue}" d="M0,12.5 h30 v5 h-30"/>
<path fill="$C{red}" d="M0,0 h30v30 h-30z"/>
<path fill="$C{blue}" d="M0,12.5 h30 v5 h-30"/>
<path fill="$C{red}" d="M0,0 h30v30 h-30z"/>
- <path fill="$C{yellow}" d="M0,0h6l-6,6 M12,0h6l-18,18v-6
M24,0h6l-30,30v-6
- M30,6v6l-18,18h-6 M30,18v6l-6,6h-6"/>
+ <path fill="$C{yellow}" d="M0,0h6l-6,6 M12,0h6l-18,18v-6
+ M
24,0h6l-30,30v-6 M
30,6v6l-18,18h-6 M30,18v6l-6,6h-6"/>
<path fill="$C{black}" d="M0,0 h30v30 h-30z"/>
<path fill="$C{blue}" d="M30,0 v31 l-15,-15"/>
<path fill="$C{black}" d="M0,0 h30v30 h-30z"/>
<path fill="$C{blue}" d="M30,0 v31 l-15,-15"/>
@@
-382,7
+402,7
@@
maritime => {
],
},
flag => {
],
},
flag => {
-
titl
e => 'Flag semaphore',
+
nam
e => 'Flag semaphore',
list => [
map {
local $_ = $_;
list => [
map {
local $_ = $_;
@@
-398,7
+418,7
@@
flag => {
],
},
chappe => {
],
},
chappe => {
-
titl
e => 'Chappe semaphore',
+
nam
e => 'Chappe semaphore',
list => [
map {
my ($r, $pr, $pl) = split //, $_;
list => [
map {
my ($r, $pr, $pl) = split //, $_;
@@
-423,7
+443,7
@@
chappe => {
],
},
prussian => {
],
},
prussian => {
-
titl
e => 'Prussian semaphore',
+
nam
e => 'Prussian semaphore',
list => [
map { /^\D+$/ ? $_ : sprintf
join('',
list => [
map { /^\D+$/ ? $_ : sprintf
join('',
@@
-446,7
+466,7
@@
prussian => {
],
},
code39 => {
],
},
code39 => {
-
titl
e => 'Code 39',
+
nam
e => 'Code 39',
list => [map { dispbar($_) } qw(
2111121121 1121121121 2121121111 1111221121 2111221111 1121221111
1111122121 2111122111 1121122111 1111222111 2111111221 1121111221
list => [map { dispbar($_) } qw(
2111121121 1121121121 2121121111 1111221121 2111221111 1121221111
1111122121 2111122111 1121122111 1111222111 2111111221 1121111221
@@
-456,7
+476,7
@@
code39 => {
)], # ISO/IEC 16388
},
code93 => {
)], # ISO/IEC 16388
},
code93 => {
-
titl
e => 'Code 93',
+
nam
e => 'Code 93',
list => [map { dispbar($_) } qw(
211113 211212 211311 221112 221211 231111 112113 112212 112311 122112
132111 111123 111222 111321 121122 131121 212112 212211 211122 211221
list => [map { dispbar($_) } qw(
211113 211212 211311 221112 221211 231111 112113 112212 112311 122112
132111 111123 111222 111321 121122 131121 212112 212211 211122 211221
@@
-464,15
+484,15
@@
code93 => {
)],
},
code128 => {
)],
},
code128 => {
-
titl
e => 'Code 128',
+
nam
e => 'Code 128',
list => [map { dispbar($_) } qw(
111323 131123 131321 112313 132113 132311 211313 231113 231311 112133
112331 132131 113123 113321 133121 313121 211331 231131 213113 213311
list => [map { dispbar($_) } qw(
111323 131123 131321 112313 132113 132311 211313 231113 231311 112133
112331 132131 113123 113321 133121 313121 211331 231131 213113 213311
- 213131 311123 311321 331121 312113 312311
212222 0 211412 23311120
+ 213131 311123 311321 331121 312113 312311 212222 0 211412 23311120
)],
},
rm4scc => {
)],
},
rm4scc => {
-
titl
e => '<abbr title="Royal Mail 4-State Customer Code">RM4SCC</abbr>',
+
nam
e => '<abbr title="Royal Mail 4-State Customer Code">RM4SCC</abbr>',
list => [
map {
my $len = length $_;
list => [
map {
my $len = length $_;
@@
-500,7
+520,7
@@
rm4scc => {
],
},
rgbmap => {
],
},
rgbmap => {
-
titl
e => 'RGBmap',
+
nam
e => 'RGBmap',
style => [
'svg { isolation: isolate }',
'svg circle { mix-blend-mode: screen }',
style => [
'svg { isolation: isolate }',
'svg circle { mix-blend-mode: screen }',
@@
-512,7
+532,7
@@
rgbmap => {
],
},
cmymap => {
],
},
cmymap => {
-
titl
e => 'CMYmap',
+
nam
e => 'CMYmap',
style => [
'svg { isolation: isolate }', # mix on white
'svg circle { mix-blend-mode: multiply }',
style => [
'svg { isolation: isolate }', # mix on white
'svg circle { mix-blend-mode: multiply }',
@@
-520,14
+540,18
@@
cmymap => {
],
list => [
map { disphues($_, [180, 60, 300]) } # Cyan, Yellow, Magenta
],
list => [
map { disphues($_, [180, 60, 300]) } # Cyan, Yellow, Magenta
- @hueorder[13..18, 19, 0..11, 20..25, 12, 26],
+# @hueorder[13..18, 19, 0..11, 20..25, 12, 26],
+ @hueletters
],
},
dni => {
],
},
dni => {
- title => "D'ni",
+ name => "D'ni",
+ style => [
+ 'svg { border: 1px solid currentColor }',
+ '.sample span + span svg { border-left: 0 }',
+ ],
list => [
map {
list => [
map {
- state $window = 'M-.5,-.5H8.5V8.5H-.5Z';
state $v = [
'',
'M0,4 8,4',
state $v = [
'',
'M0,4 8,4',
@@
-544,8
+568,10
@@
dni => {
'M4,-.5 0,4 4,8.5',
'M4,8 4,2 8,2',
];
'M4,-.5 0,4 4,8.5',
'M4,8 4,2 8,2',
];
- sprintf '<svg width="16" height="16" viewBox="-.5 -.5 9 9"><path d="%s"/></svg>',
- $window . ($h->[$_ % 5] . $v->[$_ / 5] || $v->[6]);
+ sprintf(
+ '<svg width="16" height="16" viewBox="0 0 8 8"><path d="%s"/></svg>',
+ $h->[$_ % 5] . $v->[$_ / 5] || $v->[6],
+ );
} 0 .. 5*5
],
},
} 0 .. 5*5
],
},
@@
-598,14
+624,15
@@
nyctographs => {
# draw style (0=empty, 1=dot, 2=line connect) to right, down, left, up
qw(
0010 0112 2022 2220 2000 2012 0122 0202 0020 0220 0012 0022 2202
# draw style (0=empty, 1=dot, 2=line connect) to right, down, left, up
qw(
0010 0112 2022 2220 2000 2012 0122 0202 0020 0220 0012 0022 2202
- 0222 2222 0102 0200 2201 2002 2200 0100 0110 0120 2001 2010 2020 0000
+ 0222 2222 0102 0200 2201 2002 2200 0100 0110 0120 2001 2010 2020
+ 0000
),
],
},
chromacons => {
),
],
},
chromacons => {
+ title => 'Colour Alphabet by Paul Green-Armytage (2010)',
# style => '.sample { word-break: break-all }',
list => [
# style => '.sample { word-break: break-all }',
list => [
- # Colour Alphabet by Paul Green-Armytage (2010)
map {
sprintf('<span%s>%s</span>',
!!$_ && sprintf(' style="background:#%s" title="%s"', split /:/),
map {
sprintf('<span%s>%s</span>',
!!$_ && sprintf(' style="background:#%s" title="%s"', split /:/),
@@
-613,12
+640,13
@@
chromacons => {
);
}
qw{
);
}
qw{
- F0A3FF:Amethyst 0075DC:Blue 993F00:Caramel 4C005C:Damson 191919:Ebony
- 005C31:Forest 2BCE48:Green FFCC99:Honeydew 808080:Iron 94FFB5:Jade
- 8F7C00:Khaki 9DCC00:Lime C20088:Mallow
- 003380:Navy FFA405:Orpiment FFA8BB:Pink 426600:Quagmire FF0010:Red
- 5EF1F2:Sky 00998F:Turquoise E0FF66:Uranium 740AFF:Violet 990000:Wine
- FFFF80:Xanthin FFFF00:Yellow FF5005:Zinnia 0
+ F0A3FF:Amethyst 0075DC:Blue 993F00:Caramel 4C005C:Damson
+ 191919:Ebony 005C31:Forest 2BCE48:Green FFCC99:Honeydew
+ 808080:Iron 94FFB5:Jade 8F7C00:Khaki 9DCC00:Lime
+ C20088:Mallow 003380:Navy FFA405:Orpiment FFA8BB:Pink
+ 426600:Quagmire FF0010:Red 5EF1F2:Sky 00998F:Turquoise
+ E0FF66:Uranium 740AFF:Violet 990000:Wine FFFF80:Xanthin
+ FFFF00:Yellow FF5005:Zinnia 0
}
],
},
}
],
},