X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/1b3f6e3efdae206d58ae48986872044b2cab8024..7cea1777bdbedbc08eeeab566ba186b7c195e160:/writing-latn.inc.pl?ds=inline
diff --git a/writing-latn.inc.pl b/writing-latn.inc.pl
index 57193c8..76b2f6c 100644
--- a/writing-latn.inc.pl
+++ b/writing-latn.inc.pl
@@ -15,10 +15,10 @@ my @wrapstyle = (
'td { white-space: normal; word-spacing: 10em }',
# force line break between words
'.sample { word-spacing: 0 }',
- '.sample span { margin-right: 1ex; white-space: nowrap; display: inline-block }',
+ '.sample svg { margin-right: 1ex; white-space: nowrap; display: inline-block }',
# larger space between letters
);
-my $spacestyle = '.sample span { margin-right: 0.5ex }'; # separate letters
+my $spacestyle = '.sample svg { margin-right: 0.5ex }'; # separate letters
my @tapstyle = (
@wrapstyle,
'{ line-height: 1ex }',
@@ -53,6 +53,50 @@ sub disptap {
return $prefix . join(' ', map { '·' x $_ } @dots);
}
+sub dispdomino {
+ my $code = shift;
+ my ($prefix, @dots) = $code =~ m/\A(-?)(\d)(\d)/ or return $code;
+ # unicode glyph alternative as DOMINO TILE HORIZONTAL-0a-0b
+ return $prefix . chr(0x1F031 + ($dots[0] * 7) + $dots[1]);
+}
+
+sub dispblock {
+ my $code = shift;
+ my ($prefix, $shape, $rotate) = $code =~ m/\A(-?)(\w)(\d?)/
+ or return $code;
+ my %path = (
+ S => 'm0,1h1v-1h1',
+ Z => 'm0,0h1v1h1',
+ L => 'm0,0v2h1',
+ v => 'm0,0v1h1',
+ J => 'm1,0v2h-1',
+ T => 'm0,0h2.5h-1.5v1',
+ O => 'm0,0h1v1h-1',
+ I => 'm0,1h3',
+ i => 'm0,1h2',
+ o => 'm0,1h1',
+ );
+ my %col = qw(
+ S 120 Z 0 J 240 L 30 T 300 O 60 I 180
+ v 45,50% i 165,50% o 165,0%
+ );
+ s/\z(?'
+ . '',
+ $code eq 'I' ? 4 : $code =~ /T3|[LJO]$|[Iio]1/ ? 2 : 3,
+ @gaps ? qq( class="@gaps") : '',
+ $path{$shape}, "hsl($col{$shape},50%)", join('',
+ $rotate && sprintf(' transform="rotate(%s 1 1)"', $rotate * 90),
+ $prefix && ' style="opacity:.5"',
+ ),
+ );
+}
+
sub dispbar {
my $code = shift or return '';
@@ -114,7 +158,7 @@ roman => {
name => 'Old Roman Cursive',
style => [
'svg path { stroke-linecap: round; stroke-linejoin: round }',
- '.sample span { margin-right: -10px }',
+ '.sample svg { margin-right: -10px }',
],
list => [
map {
@@ -315,6 +359,31 @@ shorttap => {
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
}],
+ altlist => [map { disptap($_) } qw{
+ 10 14 -13 12 20 23 22 21 30 -34 13 33 32
+ 31 40 43 -13 42 41 11 50 -23 -50 -1341 -31 -41
+ }],
+},
+domino => {
+ name => 'Domino tiles',
+ list => [map { dispdomino($_) } qw{
+ 10 11 20 21 22 30 31 32 33 40 41 42 43
+ 44 50 51 52 53 54 55 60 61 62 63 64 65
+ }],
+},
+tetromino => {
+ style => [
+ 'svg path { stroke-linecap: square }',
+ '.sample .gapl1 + .gapr1 { margin-left: -6.3px }',
+ ],
+ name => 'Tetrominos',
+ list => [map { dispblock($_) } qw{
+ T2 T1 I T3
+ i L1 J L3
+ o1 I1 L2 L -S1 Z1
+ O J2 v2 -J3 S T
+ J1 v1 v v3 i1 Z
+ }],
},
cards => {
style => 'td { font-family: Symbola, "DejaVu Sans", serif, sans }',
@@ -580,7 +649,7 @@ dni => {
name => "D'ni",
style => [
'svg { border: 1px solid currentColor }',
- '.sample span + span svg { border-left: 0 }',
+ '.sample svg + svg { border-left: 0 }',
],
list => [
map {
@@ -663,7 +732,10 @@ nyctographs => {
},
chromacons => {
title => 'Colour Alphabet by Paul Green-Armytage (2010)',
-# style => '.sample { word-break: break-all }',
+ style => [
+ #'.sample { word-break: break-all }',
+ '.sample { background: white }',
+ ],
list => [
map {
sprintf('%s',