X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/ba377adce826b1c5956aa225c04ec2fe0a58db32..4f444f02fce7e747c016158000f01f63c1c39039:/termcol.plp?ds=sidebyside diff --git a/termcol.plp b/termcol.plp index 686316c..a040eed 100644 --- a/termcol.plp +++ b/termcol.plp @@ -73,9 +73,13 @@ if ($get{v}) { } my @termlist = qw( cga xterm tango app html xkcd ); -push @termlist, qw( c64 msx2 mac2 risc arnegame ) if exists $get{v}; +push @termlist, qw( c64 msx2 mac2 risc arnegame cpc ) if exists $get{v}; +push @termlist, qw( ansi88 ); +push @termlist, qw( ansi256 ) if $ENV{PATH_INFO} =~ /256/; + for my $term (@termlist) { - my ($info, @index) = @{ $palettes->{$term} }; + my $info = $palettes->{$term}; + ref $info eq 'HASH' or next; my $caption = $info->{name} // $term; $caption = sprintf('<%s %s>%s', $info->{href} ? 'a' : 'span', @@ -87,32 +91,26 @@ for my $term (@termlist) { $caption, ) if $info->{href} or $info->{title}; - print '', "\n"; - printf "\n", $caption; - for my $num (0 .. $#index) { - my ($rgb, $name) = split /:/, $index[$num], 3; - $name ||= $num; - $name = [ $name, ['#333'] ] if $term eq 'xkcd'; - print '', colcell($name, $rgb); + if (my $mapinfo = $info->{rgbmap}) { + print '
%s
'."\n"; + printf "\n", $caption; + print coltable_hsv(@{$mapinfo}); + print "
%s
\n\n"; } - print "\n\n"; -} -if (exists $get{v}) { - print "\n"; - print "\n"; - print coltable_hsv(3, sub { - $_[2] + 3 * ($_[0] + 3 * $_[1]), - map { $_ && $_ * 127 + 1 } @_ - }); - print "
Amstrad CPC
\n\n"; + if (my $colours = $info->{list}) { + print '', "\n"; + printf "\n", $caption; + for my $num (0 .. $#{$colours}) { + my ($rgb, $name) = split /:/, $colours->[$num], 3; + $name ||= $num; + $name = [ $name, ['#333'] ] if $term eq 'xkcd'; + print '', colcell($name, $rgb); + } + print "
%s
\n\n"; + } } -:> - -
-
-<: sub coltable_hsv { my ($dim, $rgbval, $greyramp) = @_; @@ -171,31 +169,6 @@ sub coltable_hsv { return $out; } -{ - print "

88-colour space

\n"; - print "\n"; - print coltable_hsv(4, - sub { - $_[2] + 4 * ($_[1] + 4 * $_[0]) + 16, - map { (0, 139, 205, 255)[$_] } @_ - }, - [map { ($_ + 2 + ($_>0)) * 255/11 } 0 .. 7], - ); - print "
\n"; -} - -if ($ENV{PATH_INFO} =~ /256/) { - print "

256-colour space

\n"; - print "\n"; - print coltable_hsv(6, - sub { - $_[2] + 6 * ($_[1] + 6 * $_[0]) + 16, - map { $_ && $_*40 + 55 } @_ - }, - [ map { $_ * 10 + 8 } 0 .. 23 ], - ); - print "
\n"; -} :>