keyboard/altgr/ipa: preformatted (double) combining diacritics
[sheet.git] / keyboard.plp
index 7689af5851591a3e3fbaaf96ac2d7d4f47e51e7a..4b4592775ffee14d4c182dd4b36951746cc39f9a 100644 (file)
@@ -1,7 +1,13 @@
 <(common.inc.plp)><:
 
-my $mode = lc($Request || 'altgr');
-my $include = "$mode.eng";
+$Request ||= 'altgr/windows';
+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 $@;
@@ -16,7 +22,7 @@ my @keystyle = (
        $showkeys eq 'ghost' ? '<style> .no, .alias {opacity:.5} </style>' : (),
        '<script type="text/javascript" src="/keys.js?1.6" async></script>',
 );
-if ($include =~ /^altgr/ and open my $cssinc, '<', 'keyboard-altgr.css') {
+if ($Request =~ /^altgr/ and open my $cssinc, '<', 'keyboard/altgr.css') {
        local $/;
        my $data = readline $cssinc;
        push @keystyle, "<style>\n$data</style>";
@@ -25,11 +31,13 @@ if ($include =~ /^altgr/ and open my $cssinc, '<', 'keyboard-altgr.css') {
 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
        '],
+       image => $info->{image},
        stylesheet => [qw( light dark circus mono red )],
        data => ["$include.inc.pl"],
        raw => \@keystyle,
@@ -40,7 +48,7 @@ Html({
        '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;