keyboard: generic subpage include, specifics in metadata
authorMischa POSLAWSKY <perl@shiar.org>
Tue, 31 Oct 2023 19:30:22 +0000 (20:30 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Wed, 8 Nov 2023 00:00:54 +0000 (01:00 +0100)
Extension of mplayer for compatibility with any layout.

keyboard.eng.inc.pl
keyboard.plp

index df1d3f01ffd60ef6f24a4686c5f2d1c1f4df59b1..ff2d8e231635a3742348cd5b85302483c60745bd 100644 (file)
@@ -17,6 +17,16 @@ my @usint = (
 );
 
 {
+       title => 'keyboard',
+       version => '1.2',
+       description => [
+               "Windows US international keyboard layout table",
+               "with the AltGr modifier key.",
+       ],
+       intro => 'Special <a href="/unicode">characters</a> returned with the AltGr modifier
+for the Windows US international layout.',
+       rows => [0],
+
        def => {
                '' => {
                        map {
index 8579524343776a7e5169b94794ff9a4ad9c731d0..36ccaca07a113bbc7a76591f677a318ac525675f 100644 (file)
@@ -1,32 +1,37 @@
 <(common.inc.plp)><:
 
-my $include = 'keyboard.eng';
-my $info = Data($include);
+my $mode = lc($Request || 'keyboard');
+my $include = "$mode.eng";
+
+my $info = eval { Data($include) } || {};
+$mode = $info->{title} // $mode;
 
 Html({
-       title => 'keyboard cheat sheet',
-       version => '1.2',
-       description => [
-               "Windows US international keyboard layout table",
-               "with the AltGr modifier key.",
-       ],
+       title => "\L$mode\E keyboard cheat sheet",
+       version => $info->{version} || '0.1',
+       description => $info->{description} //
+               ["Keyboard cheat sheet for the default controls of $mode."],
+       keywords => [@{ $info->{keywords} // [] }, qw'
+               sheet cheat reference overview keyboard control commands shortkey
+       '],
        stylesheet => [qw( light dark circus mono red )],
        keys => 1,
        data => ["$include.inc.pl"],
 });
 
-:>
-<h1>keyboard cheat sheet</h1>
-
-<p>Special <a href="/unicode">characters</a> returned with the AltGr modifier
-for the Windows US international layout.</p>
+%{$info} or Abort(
+       "Requested keyboard <q>$mode</q> not available",
+       '404 request not found',
+);
 
-<h2>normal mode (default)</h2>
+say "<h1>$mode cheat sheet</h1>";
+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;
 my $keys = Shiar_Sheet::Keyboard->new($info);
 $keys->map($get{map}) or undef $get{map};
-$keys->print_rows($get{rows}, [0]);
+$keys->print_rows($get{rows}, $info->{rows});
 $keys->print_legends(\%get);