X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/4f067d460821f15ab66522dd9cef5f0342b2dfc3..f1cfafd56c8fc6be24d8691daf40a9fbff767b17:/keyboard/altgr/index.inc.plp diff --git a/keyboard/altgr/index.inc.plp b/keyboard/altgr/index.inc.plp index ccb7fb6..9e4d6b5 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.1', + version => '1.2', description => [ "Overview of alternate keyboard modes,", "offering extended Unicode characters if a modifier key", @@ -31,6 +32,14 @@ Html({ .keys.big.cmp tbody { font-size: 150%; } +@media (max-width: 48em) { + .keys.big.cmp tbody { + font-size: 100%; + } + .keys.big.cmp tbody a { + white-space: normal; + } +} .keys.cmp tbody { display: table-row-group; } @@ -46,6 +55,49 @@ Html({ text-align: right; } +@font-face { + font-family: osicons; + src: url(/osicon.ttf); +} +.icon { + font-family: osicons; +} +.keys.cmp tbody .ni { + font-size: 80%; + padding: 0 .2em; +} + +.graph { + display: block; + line-height: 1ex; + height: 1.2ex; + margin-top: .4ex; +} +.graph ~ .graph { + /* subsequent graphs */ + height: .7ex; +} +.graph > * { + display: inline-block; + height: 100%; + vertical-align: top; +} +.graph > label { + font-size: 75%; + margin-right: .2em; +} +.graph > span { + border: 1px solid #000; + border-right-width: 0; + font-size: 0; +} +.graph > :last-of-type { + border-right-width: 1px; +} +.graph > .ext { + border-left: 0; /* assume following unext */ +} + img { object-fit: cover; height: 100%; @@ -63,17 +115,27 @@ img { <: 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 ''; } 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 + ($idx{$a}{category} // 0) cmp ($idx{$b}{category} // 0) + || $a cmp $b } keys %idx) { print @sample ? ''; } }
'; + print '
'; print "$_" for @sample; say '
' : '
'; printf '', $inc =~ s/\.eng$//r; @@ -90,11 +152,29 @@ for my $inc (sort { } else { print $title; - print ''; + print '', "\n\t"; my $keys = Shiar_Sheet::Keyboard->new($table); - print '
', join(' ', map { $keys->{key}{$_} =~ s/\s.*//r } grep {$_} keys %{$_}) - for $keys->{mode} || (); - $keys->print_key('', $_, $keys->{def}{''}{$_} // 'ni') for @sample; + for my $mode ($keys->{mode} ? sort keys %{ $keys->{mode} } : '') { + my %inventory; + $inventory{$_}++ for grep { /^g[2-9]/ } map { s/ (?!ext).*//r } + values %{ $keys->{def}{$mode} }; + print ''; + printf '', s/\s.*//r for $keys->{key}{$mode} || (); + 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') =~ s/ mode\S*//r) + for @sample; say '