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;
}