index: release v1.18 with only altgr index linked
[sheet.git] / apl.plp
diff --git a/apl.plp b/apl.plp
index 0e4ddcf47f4cc616b0aa695811f382de43abd66d..302a55d5d0af890c5eb8328fb9bb1d5aeafdd50e 100644 (file)
--- a/apl.plp
+++ b/apl.plp
@@ -2,69 +2,82 @@
 
 Html({
        title => 'APL',
 
 Html({
        title => 'APL',
-       version => 'v1.0',
+       version => '1.0',
        description => [
        ],
        keywords => [qw'
        '],
        stylesheet => [qw'light circus dark red'],
        data => [qw'apl.inc.pl'],
        description => [
        ],
        keywords => [qw'
        '],
        stylesheet => [qw'light circus dark red'],
        data => [qw'apl.inc.pl'],
+       raw => <<'EOT',
+<style>
+       .target tbody td:nth-child(4) ~ td,
+       :target tbody td:nth-child(4) ~ td {
+               text-align: left;
+       }
+       .target tbody td[title]::after,
+       :target tbody td[title]::after {
+               content: ': ' attr(title);
+               font-size: 75%;
+               opacity: .7;
+       }
+</style>
+EOT
 });
 
 use Shiar_Sheet::FormatChar;
 my $glyphs = Shiar_Sheet::FormatChar->new;
 });
 
 use Shiar_Sheet::FormatChar;
 my $glyphs = Shiar_Sheet::FormatChar->new;
-
-my @ops = do 'apl.inc.pl';
-@ops > 1 or die "cannot open operator include: $@\n";
+my $ops = Data('apl');
 
 :>
 <h1>APL Symbols</h1>
 
 <div class="section">
 
 :>
 <h1>APL Symbols</h1>
 
 <div class="section">
-<table class="mapped">
+<table class="mapped" onclick="this.classList.toggle('target')">
+       <col><colgroup span=3><colgroup span=2>
 <thead><tr>
        <td rowspan=2>op
 <thead><tr>
        <td rowspan=2>op
-       <td colspan=2>input
+       <td colspan=3>input
        <td colspan=2>meaning
 <tr>
        <td colspan=2>meaning
 <tr>
+       <td title="unified/Dyalog key combination">⎈
        <td><a href="/digraphs" title="digraph">di</a><td>html
        <td><a href="/digraphs" title="digraph">di</a><td>html
-       <td>monadic
-       <td>dyadic
-</thead>
-
+       <td title="…B">monadic
+       <td title="A…B">dyadic
+<tbody>
 
 <:
 
 <:
-for my $op (@ops) {
-       my ($chr, $monad, $dyad) = @{$op};
+for my $op (@{$ops}) {
+       $op or do {
+               say '<tbody>';
+               next;
+       };
+
+       my ($chr, $dyad, $monad) = @{$op};
+       ($chr, my $altkey) = split /\n/, $chr;
        my $codepoint = ord $chr;
        my $ascii = $codepoint <= 127;
        my $info = $glyphs->glyph_info($codepoint);
        my $codepoint = ord $chr;
        my $ascii = $codepoint <= 127;
        my $info = $glyphs->glyph_info($codepoint);
-       my ($class, $name, $mnem, $html, $string) = @{$info};
-       printf '<tr><th title="%2$s">%s'."\n", $chr, EscapeHTML($name || '?'), $class;
+       my ($class, $name, $mnem, $entity, $string) = @{$info};
+
+       printf '<tr><th title="%2$s">%s', $chr, EscapeHTML($name || '?'), $class;
        printf '<td class="%s">%s', @{$_} for (
        printf '<td class="%s">%s', @{$_} for (
+               [$ascii ? 'l5' : defined $altkey ? 'l4' : 'l3', $altkey],
                [defined $mnem ? $class =~ /\bu-di\b/ ? 'l4' : 'l3' : $ascii ? 'l5' : 'l1',
                        EscapeHTML($mnem) // sprintf('%s%0*X', $codepoint < 256 ? (x => 2) : (u => 4), $codepoint)],
                [defined $mnem ? $class =~ /\bu-di\b/ ? 'l4' : 'l3' : $ascii ? 'l5' : 'l1',
                        EscapeHTML($mnem) // sprintf('%s%0*X', $codepoint < 256 ? (x => 2) : (u => 4), $codepoint)],
-               [defined $html ? 'l4' : $ascii ? 'l5' : 'l1', $html // "#$codepoint"],
+               [defined $entity ? 'l4' : $ascii ? 'l5' : 'l1', $entity // "#$codepoint"],
        );
        printf(
        );
        printf(
-               defined $_ ? '<td title="%2$s">%s' : '<td class="Xi">',
-               map { EscapeHTML($_) } split /\n/, $_, 2
+               '<td%s>%s',
+               map { defined ? (!!$_->[1] && qq( title="$_->[1]"), $_->[0]) : (' class=Xi', '') }
+               $_ && [map { EscapeHTML($_) } split /\n/, $_, 2]
        ) for $monad, $dyad;
        ) for $monad, $dyad;
+       say '</td>';
 }
 
 :></table>
 </div>
 
 }
 
 :></table>
 </div>
 
-<hr>
-
-<div class="legend">
-       <table class="glyphs"><tr>
-       <td class="X l5">unicode 1.1
-       <td class="X l4">20th century
-       <td class="X l3">in 6.0 (2010)
-       <td class="X l2">recent assignments
-       <td class="X l1">proposed
-       <td class="ex">irregular
-       </table>
-</div>
+<:
+say for '<hr/>', $glyphs->legend;