keyboard: close <dd> legend row tags
[sheet.git] / Shiar_Sheet / Keyboard.pm
index 0108cf1d10f43c70ed846339c549ea0604ee4612..bf25477dcdabe07de775791ef055484ce1913e96 100644 (file)
@@ -6,7 +6,7 @@ use warnings;
 no  warnings 'uninitialized';  # save some useless checks for more legible code
 use Carp;
 
-our $VERSION = '2.07';
+our $VERSION = '2.09';
 
 my @casedesc = (undef, qw/shift ctrl meta/, 'shift meta');
 my @rowdesc = qw(numeric top home bottom);
@@ -110,10 +110,10 @@ sub print_key {
        if (not defined $flags) {
                $flags = $key eq '^0' ? 'ni' : 'no';
        }
-       elsif ($flags =~ s/^=//) { # alias
-               $desc = $self->{sign}->{alias};
-               $desc .= $flags eq "\e" ? 'esc' : $flags;
-               $flags = $self->keyunalias($flags) . ' alias';
+       elsif ($flags =~ s/^=(\S+)\s?//) { # alias
+               my $ref = $1;
+               $desc = $self->{sign}->{alias} . ($ref eq "\e" ? 'esc' : $ref);
+               $flags = join ' ', $self->keyunalias($ref), 'alias', $flags;
        }
        if (my $txt = $self->{key}->{$mode.$key}) {
                ($desc, $mnem) = split /\n/, $self->escapedesc($txt);
@@ -167,8 +167,8 @@ print_row:
 
                for my $submode (@moderows ? @moderows : '') {
                        my $mode = $basemode . $submode;
-                       my @caserows = $mode =~ s/(\d+)(?:-(\d+))?$//
-                               ? (map {$_ - 1} split //, $row == 0 && $2 || $1)  # user override
+                       my @caserows = $mode =~ s/(\d+)(?:-(\d*))?$//
+                               ? (map {$_ - 1} split //, $row == 0 ? $2 // $1 : $1)  # user override
                                : @$defrows;  # default
                        my $modekeys = $self->{def}{$mode};
 
@@ -206,44 +206,12 @@ sub print_legend {
        my ($class, $flags) = @_;
 
        say qq{\t\t<dl class="legend $class">};
-       printf("\t\t".'<dt class="%s">%s'."\n\t\t\t".'<dd>%s'."\n",
+       printf("\t\t".'<dt class="%s">%s'."\n\t\t\t".'<dd>%s</dd>'."\n",
                $_, map { $self->escapedesc($_) } @{ $self->{flag}->{$_} || ["($_)", '...'] }
        ) for @$flags;
        say "\t\t</dl>";
 }
 
-sub print_legends {
-       my $self = shift;
-       my ($input) = @_;
-
-       say "<hr/>\n";
-       say '<div class="help">';
-
-       say "\t", '<div class="left">';
-       my @groups = sort grep {/^g\d/} keys %{ $self->{flag} };
-       $self->print_legend('legend-types', \@groups);
-       say "\t</div>\n";
-
-       say "\t", '<div class="right">';
-       my @attr = sort grep {!/^g\d/} keys %{ $self->{flag} };
-       $self->print_legend('legend-options', \@attr);
-       say '';
-
-       say "\t\t", '<ul class="legend legend-set">';
-
-       say "\t\t<li>keyboard <strong>map</strong> is ",
-               ($input->{map} ? 'set to ' : ''), "<em>$self->{map}</em>";
-       say "\t\t<li><strong>keys</strong> are ",
-               "<em>", ($self->{showkeys} ? 'always shown' : 'hidden if unassigned'), "</em>",
-               (!defined $self->{showkeys} && ' by default');
-       say "\t\t<li>default <strong>style</strong> is ",
-               (defined $input->{style} && 'set to '), "<em>$self->{style}</em>";
-
-       say "\t\t</ul>";
-       say "\t</div>\n";
-       say "</div>\n";
-}
-
 1;
 
 =head1 NAME