<(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'],
my @termlist;
push @termlist, split /\W+/, $Request || 'default';
-:>
-<h1>Terminal colours</h1>
+say "<h1>$_</h1>\n" for $Request ? 'Colour palettes' : 'Terminal colours';
-<p>
-<span title="ECMA-48">ANSI</span> (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 <a href="/termcol/more">8-bit legacy hardware</a> palettes.';
+say '<p>';
+if ("@termlist" eq 'default') {
+ say '<span title="ECMA-48">ANSI</span> (VT100, ISO-6429) 16-colour text palette';
+ say 'as implemented by various systems and programs.';
+ say 'Also see <a href="/termcol/legacy">8-bit legacy hardware</a> palettes.';
+}
+elsif ("@termlist" eq 'legacy') {
+ say 'Colour palettes of various 8-bit legacy systems and retro games.';
+ say 'Also see <a href="/termcol">ANSI console</a> palettes.';
+}
+else {
+ say 'Comparison of requested colour palettes.';
+}
:>
-</p>
<div class="section">
<:
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 "<td>\n";
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;
say '<table class="color mapped">';
say sprintf '<caption>%s</caption>', $caption;
for my $row (@$table) {
+ if (!$row) {
+ say '<tbody>';
+ next;
+ }
print '<tr>';
print colcell(ref $_ ? @$_ : $_ ? reverse split /:/ : undef) for @$row;
}