X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/fd5c01500fca59d3779078d755438c02f209a2c1..42dac653b12a2d5ff5455c2bccd126e97dcf0ed5:/termcol.plp diff --git a/termcol.plp b/termcol.plp index 571b296..26a5c70 100644 --- a/termcol.plp +++ b/termcol.plp @@ -1,14 +1,15 @@ <(common.inc.plp)><: Html({ - title => 'terminal colour cheat sheet', + title => ($Request ? 'terminal colour' : 'colour palettes') . ' cheat sheet', version => '1.1', - description => [ + description => [!$Request ? "Comparison of various colour palettes." : ( "Index of all terminal/console colour codes,", "with an example result of various environments.", - ], + )], keywords => [qw' - color code terminal console escape table xterm rxvt + color colour code terminal console escape table xterm rxvt + ansi vt100 8bit 4bit cga ega vga rgb hsv game emulator display '], data => ['termcol.inc.pl'], stylesheet => [qw'light dark'], @@ -20,18 +21,22 @@ my @draw = map { [$_, s/\W+\z//] } grep { $_ } split m(/), my @termlist; push @termlist, split /\W+/, $Request || 'default'; -:> -

Terminal colours

+say "

$_

\n" for $Request ? 'Colour palettes' : 'Terminal colours'; -

-ANSI (VT100, ISO-6429) 16-colour text palette -as implemented by various systems and programs. -<: -print - "@termlist" ne 'default' ? 'Additional palettes are included as specified.' : - 'Also see 8-bit legacy hardware palettes.'; +say '

'; +if ("@termlist" eq 'default') { + say 'ANSI (VT100, ISO-6429) 16-colour text palette'; + say 'as implemented by various systems and programs.'; + say 'Also see 8-bit legacy hardware palettes.'; +} +elsif ("@termlist" eq 'legacy') { + say 'Colour palettes of various 8-bit legacy systems and retro games.'; + say 'Also see ANSI console palettes.'; +} +else { + say 'Comparison of requested colour palettes.'; +} :> -

<: @@ -41,8 +46,6 @@ use POSIX qw( ceil ); my $palettes = do 'termcol.inc.pl'; die "Cannot open palette data: $_\n" for $@ || $! || (); -my $more = do 'termcol-xcolor.inc.pl' || {}; -$palettes = {%$palettes, %$more}; sub colcell { my $name = shift // return "\n"; @@ -103,6 +106,12 @@ sub coltable { if (ref $info eq 'ARRAY') { coltable($_) for @{$info}; + return; + } + + if (ref $info eq 'CODE') { + coltable($_) for $info->($palettes); + return; } ref $info eq 'HASH' or return; @@ -129,6 +138,10 @@ sub coltable { say ''; say sprintf '', $caption; for my $row (@$table) { + if (!$row) { + say ''; + next; + } print ''; print colcell(ref $_ ? @$_ : $_ ? reverse split /:/ : undef) for @$row; }
%s