termcol: move common styling to css include
[sheet.git] / termcol.plp
index acfe2be7105de00e55574b227b35d6c95e452607..e544bf700262ceb10e263a0d11f5d52be024f9f6 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>
 
@@ -45,21 +58,16 @@ sub colcell {
        my $sample = [ qw(#000 #FFF) ];
        ($name, $sample) = @$name if ref $name eq 'ARRAY';
 
-       my $out = sprintf('<td title="%s" style="%s">%s',
+       my $out = sprintf('<th title="%s" style="%s">%s',
                join(',', map { int } @$col),
-               "background:$css; color:$inverse; padding:0 1ex",
+               "background:$css; color:$inverse",
                $name,
        );
-       $out .= sprintf '<td style="%s"><code>%s</code>', "background:$_; color:$css", $minhex
+       $out .= sprintf '<td style="%s">%s', "background:$_; color:$css", $minhex
                for @$sample;
        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;
@@ -75,7 +83,7 @@ for my $term (@termlist) {
        ) if $info->{href} or $info->{title};
 
        if (my $mapinfo = $info->{rgbmap}) {
-               print '<table class="mapped">'."\n";
+               print '<table class="color mapped">'."\n";
                printf "<caption>%s</caption>\n", $caption;
                print coltable_hsv(@{$mapinfo});
                print "</table>\n\n";
@@ -86,7 +94,7 @@ for my $term (@termlist) {
                        $colours = [ map { $colours->[$_] =~ s/:|$/:$_/r } @{$reorder} ];
                }
 
-               print '<table>', "\n";
+               print '<table class=color>', "\n";
                printf "<caption>%s</caption>\n", $caption;
                for my $num (0 .. $#{$colours}) {
                        my ($rgb, $name) = split /:/, $colours->[$num], 3;