use 5.014;
use utf8;
use warnings;
-use List::Util qw( pairs pairmap sum );
+use List::Util qw( pairs pairmap sum min max );
my %C = (
red => '#EC1C24',
sub dispdash {
my $code = shift;
my ($prefix, @dots) = $code =~ m/\A(-?)(\d)(\d)/ or return $code;
- my ($w, $h) = (12, 9);
- my @w = map { $w / ($_ || 1) } @dots;
+ my ($w, $h) = (max(6, 4 * max(@dots)), 9);
+ my ($w0, $w1) = ($w / $dots[0], $dots[1] ? $w / $dots[1] : 1);
return sprintf(
- '<svg height="20" viewBox="-.5 -.5 %s %s">'
+ '<svg height="20"%s viewBox="-.5 -.5 %s %s">'
. '<path d="%s" /></svg>',
+ $prefix && ' style="opacity:.5"',
$w + 1, $h + 1, join(' ',
- "m0,$h l+$w[0],-$h" x $dots[0], # slashes
- "m0,$h l-$w[1],-$h" x $dots[1], # backslashes
+ "m0,$h l+$w0,-$h" x $dots[0], # slashes
+ "m0,$h l-$w1,-$h" x $dots[1], # backslashes
)
);
}
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%
+ my %col = (
+ 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(?<!%)/,100%/ for values %col;
my @gaps = (grep $_,
shorttap => {
name => 'Short Tap',
style => \@tapstyle,
- list => [map { disptap($_) } qw{
+ altlist => [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
}],
- altlist => [map { dispdash($_) } 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
+ list => [map { dispdash($_) } qw{
+ 10 14 -24 12 20 23 22 21 30 -34 13 33 32
+ 31 40 43 -13 42 41 11 50 -53 -44 -52 -51 -54
}],
},
domino => {