+<: # 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>
+