%{$groups},
version => '1.0',
title => 'APL',
+ category => 'specialised',
intro => join("\n",
'Resulting <a href="/charset">Unicode</a> characters',
'of a typical <a href="/apl">APL</a> keyboard layout',
},
version => '1.0',
title => 'EurKEY',
+ category => 'latin',
intro => join("\n",
'Third-party proposal <a href="https://eurkey.steffen.bruentjen.eu/">EurKEY</a>',
'<abbr title="last updated 2017-05-15">v1.3</abbr> by Steffen Brüntjen',
with AltGr or similar modifier keys.</p>
<section class="gallery"><:
-for my $inc (@incs) {
- $inc =~ s/\Q.inc.pl\E$//;
+my %idx = map {s/\Q.inc.pl\E$//; ($_ => eval{ Data($_) })} @incs;
+for my $inc (sort {
+ $idx{$a}{category} cmp $idx{$b}{category} || $a cmp $b
+} keys %idx) {
print '<figure>';
printf '<a href="/%s">', $inc =~ s/\.eng$//r;
- if (my $table = eval { Data($inc) }) {
+ if ($table = $idx{$inc}) {
if (my $img = $table->{image}) {
EscapeHTML $name = $table->{imagealt} // $img =~ m{.*/([^/.]*)};
print qq{<img src="/$img" alt="$name" />};
%{ kbmodes(\%rows) },
version => '1.0',
title => 'UCL phonetic',
+ category => 'specialised',
intro => join("\n",
'Unicode Phonetic Keyboard',
'<abbr title="dated 2009-06-28">v1.10</abbr> by Mark Huckvale',
},
version => '1.0',
title => 'ABC option',
+ category => 'latin/macos',
intro => join("\n",
'Resulting <a href="/unicode">selection</a> of <a href="/charset">Unicode</a> characters',
"while pressing ⌥ Option (Alt) with Apple's ABC Extended",
%{ kbchars(\%rows) },
version => '1.3',
title => 'US option',
+ category => 'latin/windows',
intro => join("\n",
'Resulting <a href="/unicode">selection</a> of <a href="/charset">Unicode</a> characters',
"while pressing ⌥ Option (Alt) with Apple's US (or US International) layout",
%{ $groups },
version => '1.1',
title => 'msx code',
+ category => 'legacy/latin',
intro => join("\n",
'Resulting <a href="/unicode">selection</a> of equivalent <a href="/charset">Unicode</a> characters',
"when the <em>code</em> key is pressed on an MSX home computer",
%{ kbchars(\%rows) },
version => '1.0',
title => 'Space Cadet',
+ category => 'legacy',
intro => join("\n",
'Apparent <a href="/charset">glyphs</a> available',
'on the 1978 Symbolics Space Cadet keyboard',
+{
%{ kbchars(\%rows) },
title => 'UK-extended',
+ category => 'latin',
version => '1.0',
intro => join("\n",
"A Chrome OS extension",
+{
%{$groups},
title => 'Windows AltGr',
+ category => 'latin/windows',
version => '1.4',
intro => join("\n",
'Resulting <a href="/unicode">selection</a> of <a href="/charset">Unicode</a> characters',