-<div class="section">
-<h2>88-colour space</h2>
-<:
-for my $r (0 .. 3) {
- print '<table>';
- for my $g (0 .. 3) {
- print '<tr>';
- for my $b (0 .. 3) {
- my $index = $r*4*4 + $g*4 + $b + 16;
- print colcell($index, map {(0, 139, 205, 255)[$_]} $r, $g, $b);
+ if (ref $info eq 'ARRAY') {
+ coltable($_) for @{$info};
+ }
+
+ 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 '<table class="color mapped">'."\n";
+ printf "<caption>%s</caption>\n", $caption;
+ print coltable_hsv(@{$mapinfo});
+ print "</table>\n\n";
+ }
+
+ if (my $table = $info->{table}) {
+ print '<table class="color mapped">'."\n";
+ printf "<caption>%s</caption>\n", $caption;
+ for my $row (@$table) {
+ print '<tr>';
+ print colcell(@$_) for @$row;
+ }
+
+ my $width = scalar @{ $table->[0] };
+ my @imgpal = map { [ @{$_}[1 .. 3] ] } map { @{$_} } @{$table};
+ for (@draw) {
+ print "<tr><td colspan=$width>", img_egapal(\@imgpal, @{$_});