X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/43f639f1fdbf9dd95236037d9291854559e92d92..70888ead921575f20a2692dfcb18d171e1b269e0:/termcol.plp diff --git a/termcol.plp b/termcol.plp index e313856..32a7356 100644 --- a/termcol.plp +++ b/termcol.plp @@ -1,90 +1,170 @@ -<: -use utf8; -use strict; -use warnings; -use open IO => ':utf8'; -use List::Util 'min'; - -our $VERSION = 'v1.0'; +<(common.inc.plp)><: -$header{content_type} = 'text/html; charset=utf-8'; +Html({ + title => 'terminal colour cheat sheet', + version => '1.0', + description => [ + "Index of all terminal/console colour codes,", + "with an example result of various environments.", + ], + keywords => [qw' + color code terminal console escape table xterm rxvt + '], + data => ['termcol.inc.pl'], + stylesheet => [qw'light dark'], +}); -:> - +my @termlist; +push @termlist, split /\W+/, $ENV{PATH_INFO} || 'default'; -
-%s | %s | %s', - "background:#$rgb48; color:#$inverse", - $id, - "background:#000; color:#$rgb48", - $rgb24, - "background:#FFF; color:#$rgb48", - $rgb24, -} + my $name = shift // return " | \n"; + my $col = Shiar_Sheet::Colour->new(@_); + my $minhex = $col->rgb24; + my $css = '#' . $col->rgb48; + my $inverse = '#' . sprintf('%X', $col->luminance/255 < .3 ? 12 : 0) x 3; -my %col = ( - -name => [ - qw/black maroon green olive navy purple cyan silver - gray red lime yellow blue fuchsia aqua white/, - qw/reset bold dim italic underline blink fastblink - reverse hidden/, - ], - html => [ - qw/000000 CCCCCC/, - qw/000000 800000 008000 808000 000080 800080 008080 C0C0C0 - 808080 FF0000 00FF00 FFFF00 0000FF FF00FF 00FFFF FFFFFF/, - ], - cga => [ - qw/000000 CCCCCC/, - qw/000000 AA0000 00AA00 AA5500 0000AA AA00AA 00AAAA AAAAAA - 555555 FF5555 55FF55 FFFF55 5555FF FF55FF 55FFFF FFFFFF/, - ], - xterm => [ - qw/000000 CCCCCC/, - qw/000000 CC0000 00CC00 CCCC00 4682B4 CC00CC 00CCCC E5E5E5 - 4C4C4C FF0000 00FF00 FFFF00 1E90FF FF00FF 00FFFF FFFFFF/, - ], - tango => [ - qw/000000 CCCCCC/, - qw/2E3436 CC0000 4E9A06 C4A000 3465A4 75507B 06989A D3D7CF - 555753 EF2929 8AE234 FCE94F 729FCF AD7FA8 34E2E2 EEEEEC/, - ], -); + my $sample = [ qw(#000 #FFF) ]; + ($name, $sample) = @$name if ref $name eq 'ARRAY'; -my @termlist = qw(html cga xterm tango); -print ' |
'.$_} @termlist), " | ||
---|---|---|
%s', + join(',', map { int } @$col), + "background:$css; color:$inverse; padding:0 1ex", + $name, ); + $out .= sprintf ' | %s ', "background:$_; color:$css", $minhex
+ for @$sample;
+ return "$out\n";
+}
+
+for my $term (@termlist) {
+ my $info = $palettes->{$term};
+ ref $info eq 'HASH' or next;
+ my $caption = $info->{name} // $term;
+ $caption = sprintf('<%s %s>%s%1$s>',
+ $info->{href} ? 'a' : 'span',
+ join(' ',
+ map { sprintf '%s="%s"', $_, $info->{$_} }
+ grep { defined $info->{$_} }
+ qw( href title )
+ ),
+ $caption,
+ ) if $info->{href} or $info->{title};
+
+ if (my $mapinfo = $info->{rgbmap}) {
+ print ' |