termcol: path argument to request custom palettes, groups
[sheet.git] / termcol.plp
index acfe2be7105de00e55574b227b35d6c95e452607..32a73560285a0fb4a9f096b859b3ee1404536972 100644 (file)
@@ -14,6 +14,19 @@ Html({
        stylesheet => [qw'light dark'],
 });
 
+my @termlist;
+push @termlist, split /\W+/, $ENV{PATH_INFO} || 'default';
+
+my %termgroup = (
+       default => [qw( ansi xkcd ansi88 )],
+       more    => [qw( ansi legacy ansi256 )],
+       msx     => [qw( msx1 msx2 arnejmp )],
+       ansi    => [qw( cga xterm tango app html )],
+       legacy  => [qw( c64 msx2 mac2 risc arnegame cpc )],
+);
+@{$_} = map { $termgroup{$_} ? @{ $termgroup{$_} } : $_ } @{$_}
+       for values %termgroup, \@termlist;
+
 :>
 <h1>Terminal colours</h1>
 
@@ -22,8 +35,8 @@ Html({
 as implemented by various systems and programs.
 <:
 print
-       !exists $get{v} ? 'Also see <a href="?v">8-bit legacy hardware</a> palettes.' :
-       'Also included are 8-bit legacy hardware palettes.';
+       "@termlist" ne "@{ $termgroup{default} }" ? 'Additional palettes are included as specified.' :
+       'Also see <a href="/termcol/more">8-bit legacy hardware</a> palettes.';
 :>
 </p>
 
@@ -55,11 +68,6 @@ sub colcell {
        return "$out\n";
 }
 
-my @termlist = qw( cga xterm tango app html xkcd );
-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 = $palettes->{$term};
        ref $info eq 'HASH' or next;