X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/d633423013d3cfb34c674454fa402a11561c2eac..ec2eef747aa43c0e485a0068ee74b9928e1f97f9:/keyboard/altgr/index.inc.plp?ds=sidebyside
diff --git a/keyboard/altgr/index.inc.plp b/keyboard/altgr/index.inc.plp
index e4ed3d8..c47bfeb 100644
--- a/keyboard/altgr/index.inc.plp
+++ b/keyboard/altgr/index.inc.plp
@@ -1,12 +1,13 @@
<: # included from keyboard.plp
use 5.014;
use warnings;
+use utf8;
my @incs = glob 'keyboard/altgr/*.eng.inc.pl';
Html({
title => "altgr keyboard cheat sheets",
- version => '1.0',
+ version => '1.2',
description => [
"Overview of alternate keyboard modes,",
"offering extended Unicode characters if a modifier key",
@@ -15,13 +16,84 @@ Html({
keywords => [qw'
sheet cheat reference overview keyboard altgr option
'],
+ image => 'data/keyboard/thumb/ibm-m.jpg',
stylesheet => [qw( light dark circus mono red )],
data => ['keyboard/altgr/index.inc.plp', @incs],
raw => <<'.',
.
@@ -30,25 +102,71 @@ img {
:>
Extended keyboards
-Representative images of available layouts
-with AltGr or similar modifier keys.
+Overview of available key layouts with AltGr or similar modifier keys.
-<:
+<:
+my @sample = split /(? qq{\N{TOP HAT}},
+ windows => qq{\x{1FA9F}}, # \N{WINDOW}
+ macos => qq{\N{RED APPLE}},
+ xorg => qq{\N{PENGUIN}},
+);
+
+printf '', @sample ? 'section' : 'gallery';
+if (@sample) {
+ print '';
+ print '';
+ print " | $_" for @sample;
+ say ' |
';
+}
my %idx = map {s/\Q.inc.pl\E$//; ($_ => eval{ Data($_) })} @incs;
+my $most = max(map { scalar keys %{$_->{def}{''}} } values %idx);
for my $inc (sort {
$idx{$a}{category} cmp $idx{$b}{category} || $a cmp $b
} keys %idx) {
- print '';
+ print @sample ? '' : '';
printf '', $inc =~ s/\.eng$//r;
- if ($table = $idx{$inc}) {
- if (my $img = $table->{image}) {
+ my $table = $idx{$inc};
+ my $title = $table && $table->{title} || $inc;
+
+ unless (@sample) {
+ if ($table and my $img = $table->{image}) {
EscapeHTML $name = $table->{imagealt} // $img =~ m{.*/([^/.]*)};
print qq{ };
}
- $inc = $table->{title};
+ printf '%s', $title;
+ say '';
+ }
+ else {
+ print $title;
+ print '', "\n\t";
+ my $keys = Shiar_Sheet::Keyboard->new($table);
+ for my $mode ($keys->{mode} ? sort keys %{ $keys->{mode} } : '') {
+ my %inventory;
+ $inventory{ s/ (?!ext).*//r }++ for values %{ $keys->{def}{$mode} };
+ print '';
+ print "" for $keys->{key}{$mode} =~ s/\s.*//r || ();
+ for my $g (sort keys %inventory) {
+ printf ' %s',
+ $g, $_/$most*100, $_,
+ join(' ', map {
+ $keys->{flag}{$_}[0] || 'extra' # legend label of each class
+ } reverse split / /, $g)
+ for $inventory{$g};
+ }
+ say '';
+ }
+ print "\t | ";
+ print join ' ', map { $caticon{$_} // () } split m{/}, $keys->{category};
+ say '';
+ $keys->print_key('', $_, $keys->{def}{''}{$_} // 'ni') for @sample;
+ say ' |
';
}
- printf '%s', $inc;
- say '';
}
+print '
' if @sample;
:>