<(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 $@;
$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',
+ 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,
'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;