- print '<table class=color>', "\n";
- printf "<caption>%s</caption>\n", $caption;
- for my $num (0 .. $#{$colours}) {
- my ($rgb, $name) = split /:/, $colours->[$num], 3;
- $name //= $num;
- $name = [ $name, [] ] if $term =~ /^msx/ and !$num;
- $name = [ $name, ['#333'] ] if $term eq 'xkcd';
- print '<tr>', colcell($name, $rgb);
+ say "</table>\n";
+ }
+
+ if (my $palette = $info->{list}) {
+ my $colours = colorder($palette, $reorder);
+
+ my $rows = 8;
+ my $columns = ceil(@{$palette} / $rows);
+
+ say '<table class=color>';
+ say sprintf '<caption>%s</caption>', $caption;
+ for my $row (0 .. $rows - 1) {
+ print '<tr>';
+ for my $col (0 .. $columns - 1) {
+ my $num = $row + $col * $rows;
+ my ($rgb, $name) = split /:/, $colours->[$num], 3;
+ $name //= $rgb && $num;
+ $name = [ $name, [] ] if $term =~ /^msx/ and !$name; # no bg for transparency
+ $name = [ $name, ['#333'] ] if $term eq 'xkcd';
+ print colcell($name, $rgb);
+ }