4 title => 'cli cheat sheet',
9 data => ['data/cli.inc.pl'],
12 my $cmd = do 'data/cli.inc.pl'
13 or Abort("Error loading program data", 501, $@ // $!);
18 tbody td {font-size:70%}
22 my ($info, $char, $span) = @_;
23 my ($alias, $help) = @{ $info // [] };
24 printf '<td class="l%s"', $info ? 5 : 1;
25 print ' rowspan="2"' if $span;
28 my ($title) = $alias =~ m{--([\w-]+=?)}
29 or return print $char;
30 $title =~ s/-\K/<wbr>/g;
31 $title =~ s/deref\Kerence/./;
35 my @colchars = ('a'..'z', '?');
36 print '<table class="ccmap"><col>';
37 print qq'<colgroup span="$_">' for scalar @colchars;
38 #say '</colgroup><col>';
39 for my $section (qw{thead tfoot}) {
40 print "<$section><tr><th>↳";
41 print '<th>', EscapeHTML($_) for @colchars;
45 for my $name (sort keys %$cmd) {
46 my $row = $cmd->{$name};
47 print '<tr><th rowspan="2">', $name;
48 showoption($row->{$_}, $_, !$row->{uc $_}) for @colchars;
50 $row->{$_} and showoption($row->{$_}, $_) for map {uc} @colchars;
56 <table class="glyphs"><tr>
57 <td class="X l5">supported
58 <td class="X l1">unsupported
59 <td class="X l0 ex">alias