keyboard/altgr: cover images of all available subpages
[sheet.git] / keyboard / altgr / index.inc.plp
diff --git a/keyboard/altgr/index.inc.plp b/keyboard/altgr/index.inc.plp
new file mode 100644 (file)
index 0000000..36b50c3
--- /dev/null
@@ -0,0 +1,49 @@
+<: # included from keyboard.plp
+use 5.014;
+use warnings;
+
+my @incs = glob 'keyboard/altgr/*.eng.inc.pl';
+
+Html({
+       title => "altgr keyboard cheat sheets",
+       version => '1.0',
+       description => [
+               "Overview of alternate keyboard modes,",
+               "offering extended Unicode characters if a modifier key",
+               "(such as AltGr or option) is pressed.",
+       ],
+       keywords => [qw'
+               sheet cheat reference overview keyboard altgr option
+       '],
+       stylesheet => [qw( light dark circus mono red )],
+       data => ['keyboard/altgr/index.inc.plp', @incs],
+       raw => <<'.',
+<style>
+img {
+       object-fit: cover;
+       height: 100%;
+}
+</style>
+.
+});
+
+:>
+<h1>Extended keyboards</h1>
+
+<p>Representative images of available layouts
+with AltGr or similar modifier keys.</p>
+
+<section class="gallery"><:
+for my $inc (@incs) {
+       $inc =~ s/\Q.inc.pl\E$//;
+       print '<figure>';
+       printf '<a href="/%s">', $inc =~ s/\.eng$//r;
+       if (my $table = eval { Data($inc) }) {
+               printf '<img src="/%s" />', $_ for $table->{image} || ();
+               $inc = $table->{title};
+       }
+       printf '<figcaption>%s</figcaption>', $inc;
+       say '</a></figure>';
+}
+:></section>
+