digraphs: link to and from altgr keyboards
[sheet.git] / keyboard.plp
index 59e8ad5d1e4909212a90b49b8495b86d1de95e0c..3a40a4d22bf9b64a0525fa5403b0481a3a7b407f 100644 (file)
@@ -4,6 +4,11 @@ $Request ||= 'altgr/windows';
 my $mode = lc $Request;
 my $include = "keyboard/$mode.eng";
 
 my $mode = lc $Request;
 my $include = "keyboard/$mode.eng";
 
+if (-e (my $page = "keyboard/$Request/index.inc.plp")) {
+       Include $page;
+       exit;
+}
+
 my $info = eval { Data($include) } || {};
 warn "error in $include: ", @{$@} if ref $@;
 $mode = $info->{title} // $mode;
 my $info = eval { Data($include) } || {};
 warn "error in $include: ", @{$@} if ref $@;
 $mode = $info->{title} // $mode;
@@ -17,20 +22,17 @@ my @keystyle = (
        $showkeys eq 'ghost' ? '<style> .no, .alias {opacity:.5} </style>' : (),
        '<script type="text/javascript" src="/keys.js?1.6" async></script>',
 );
        $showkeys eq 'ghost' ? '<style> .no, .alias {opacity:.5} </style>' : (),
        '<script type="text/javascript" src="/keys.js?1.6" async></script>',
 );
-if ($Request =~ /^altgr/ and open my $cssinc, '<', 'keyboard/altgr.css') {
-       local $/;
-       my $data = readline $cssinc;
-       push @keystyle, "<style>\n$data</style>";
-}
 
 Html({
        title => "\L$mode\E keyboard cheat sheet",
        version => $info->{version} || '0.1',
 
 Html({
        title => "\L$mode\E keyboard cheat sheet",
        version => $info->{version} || '0.1',
+       canonical => -e "$Request.plp" ? "/$Request" : undef, # historic shorthand
        description => $info->{description} //
                ["Keyboard cheat sheet for the default controls of $mode."],
        keywords => [@{ $info->{keywords} // [] }, qw'
                sheet cheat reference overview keyboard control commands shortkey
        '],
        description => $info->{description} //
                ["Keyboard cheat sheet for the default controls of $mode."],
        keywords => [@{ $info->{keywords} // [] }, qw'
                sheet cheat reference overview keyboard control commands shortkey
        '],
+       image => $info->{image},
        stylesheet => [qw( light dark circus mono red )],
        data => ["$include.inc.pl"],
        raw => \@keystyle,
        stylesheet => [qw( light dark circus mono red )],
        data => ["$include.inc.pl"],
        raw => \@keystyle,
@@ -41,12 +43,12 @@ Html({
        '404 request not found',
 );
 
        '404 request not found',
 );
 
-say "<h1>$mode cheat sheet</h1>";
+say "<h1>$mode keyboard</h1>";
 say "<p>$_</p>" for $info->{intro} // ();
 say "<h2>", $info->{mode}->{''}, " (default)</h2>"
        if $info->{mode} and %{ $info->{mode} } > 1;
 
 say "<p>$_</p>" for $info->{intro} // ();
 say "<h2>", $info->{mode}->{''}, " (default)</h2>"
        if $info->{mode} and %{ $info->{mode} } > 1;
 
-use Shiar_Sheet::Keyboard 2.08;
+use Shiar_Sheet::Keyboard 3.00;
 my $keys = Shiar_Sheet::Keyboard->new($info);
 $keys->map($get{map}) or undef $get{map};
 $keys->print_rows($get{rows} || $info->{moderows}, $info->{rows});
 my $keys = Shiar_Sheet::Keyboard->new($info);
 $keys->map($get{map}) or undef $get{map};
 $keys->print_rows($get{rows} || $info->{moderows}, $info->{rows});