dieren: subpage names to indicate verbosity
[sheet.git] / dieren.plp
index 67525c421175917012d24de167f449c5cd34215b..5f181080bedd1977ffa67506225174fc93a2b4cd 100644 (file)
 <(common.inc.plp)><:
 
+my $intro = 'dieren die in het Nederlands vernoemd zijn naar andere dieren.';
+$intro .= '.. en dergelijke.' if $Request;
+$intro .= '.. enzo.' if exists $get{v};
+
 Html({
-       title => 'dieren cheat sheet',
+       title => (!!$Request && 'uitgebreid ') . 'dieren cheat sheet',
        version => '1.0',
-       description => [],
+       description => "Tabeloverzicht met afbeeldingen van $intro",
        keywords => [qw'
                dier beest naam naamgeving woord taal nederlands gerelateerd
                relatie vernoemd vernoeming combinatie samenstelling onverwant
                land zee lucht  animals dutch language
        '],
+       raw => <<'EOT',
+<style>
+table {
+       width: 100%;
+}
+tr:first-child th {
+       word-break: break-all;
+}
+img {
+       vertical-align: bottom;
+       width: 100%;
+}
+img[hidden] {
+       transition: opacity 1s 0s;
+       display: inline;
+       opacity: 0;
+}
+img[hidden]:hover {
+       opacity: 1;
+       transition-delay: 2s;
+}
+</style>
+EOT
 });
 
 :>
 <h1>Dierennamen <small>(Dutch animal names)</small></h1>
 
-<p>Dieren die in het Nederlands vernoemd zijn naar andere dieren.</p>
+<p>
+<:
+say ucfirst $intro;
+if ($Request) {
+       say 'Zie het <a href="/dieren">populaire overzicht</a> voor minder.';
+}
+else {
+       say 'Zie ook minderbekende en <a href="/dieren/uitgebreid">verdergezochte verbanden</a>.';
+}
+:>
+</p>
 
 <:
 my @table = qw(
-       >:         origineel: zee-:        meer_water:  aardig:      anders:
-       >hond:     hond       zeehond      waterhond?   aardhond?    vleerhond
-       >kat:      kat        zeekat       meerkat      caterpillar? tijgerkat
-       >muis:     muis       zeemuis      waterrat?    aardmuis     vleermuis
-       >egel:     egel       zee-egel     wateregel?   aardegel?    mierenegel
-       >varken:   varken     zeevarken    waterzwijn   aardvarken   stekelvarken
-       >koe:      koe        zeekoe       meerkoetje   aardkoe?     haiku?
-       >paard:    paard      zeepaardje   nijlpaard    aardpaard?   luipaard
-       >beer:     beer       zeebeer      waterbeertje ijsbeer      wasbeer
-       >leeuw:    leeuw      zeeleeuw     waterleeuw?  aardleeuw?   mierenleeuw
-       >wolf:     wolf       zeewolf      waterwolf?   aardwolf     buidelwolf
-       >haan:     haan       zeehaan      waterhaan    rotshaan     sprinkhaan
+       >:         origineel: zee-:        meer_water:    aardig:      anders:      #:
+       >hond:     hond       zeehond      waterhond?     prairiehond  vleerhond    #rodehond
+       >kat:      kat        zeekat       meerkat        cat_325?     tijgerkat    #
+       #>haas:    haas       zeehaas      waterhaas      aardhaas?    ossenhaas?   #
+       >muis:     muis       zeemuis      waterspitsmuis aardmuis     vleermuis    #
+       >rat:      rat        zeerat       waterrat       woestijnrat  buidelrat    #beverrat
+       >egel:     egel       zee-egel     wateregel?     aardegel?    mierenegel   #
+       >varken:   varken     zeevarken    waterzwijn     aardvarken   stekelvarken #
+       >koe:      koe        zeekoe       meerkoetje     aardkoe?     koedoe       #haiku?
+       >paard:    paard      zeepaardje   nijlpaard      aardpaard?   luipaard     #
+       #>hoorn:   eenhoorn   zeehoorn     zee-eenhoorn?  aardhoorn?   neushoorn    #eekhoorn
+       #>bra:     brassiere? zebra        waterbra?      aardbra?     cobra        #sabra
+       #>olifant: olifant    zeeolifant   waterolifant?  landolifant? #            #
+       >beer:     beer       zeebeer      waterbeertje   ijsbeer      wasbeer      #neusbeer
+       >leeuw:    leeuw      zeeleeuw     waterleeuw?    aardleeuw?   mierenleeuw  #
+       #>wolf:    wolf       zeewolf      waterwolf?     aardwolf     buidelwolf   #
+       >haan:     haan       zeehaan      waterhaan      rotshaan     sprinkhaan   #
+       #>pad:     pad        zeepad?      waterpad?      landpad      schildpad    #paddenstoel
+       #>draak:   draak      zeedraak     waterdraak     aarddraak?   komododraak  #
+       #>vlo:     vlo        strandvlo    watervlo       aardvlo      vlok?        #
+       #>mot:     mot        zeemot?      watermot       aardmot?     marmot       #
+       #>bij:     bij        zeebij?      waterbij       aardbei      #            #
 );
 
+if (exists $get{r}) {
+       use List::MoreUtils qw( part );
+       my @trans = (part { state $col; /^#?>/ ? ($col = 0) : ++$col } @table);
+       @table = ();
+       for (@trans) {
+               unshift @$_, '?:' if $_->[0] !~ /:$/;
+               $_->[0] =~ s/^#?\K>?/>>/;
+               for (@$_) {
+                       push @table, s/^#?\K>/$1/r;
+               }
+       }
+}
+
 say '<table>';
-for my $name (@table) {
+while (my $name = shift @table) {
+       if ($name =~ s/^#// and !$Request) {
+               while ($name = shift @table) {
+                       last if $name =~ m/^>/;
+               }
+       }
+       $name =~ y/_/ /;
        if ($name =~ s/^>//) {
                # leading dash starts a new row
                say '</tr>' if $name;
@@ -41,16 +107,20 @@ for my $name (@table) {
        }
        if ($name =~ s/:$//) {
                # trailing colon indicates header text
-               $name =~ y/_/ /;
                print "<th>$name</th>";
                next;
        }
-       print qq{<td title="$name">};
-       if (-e (my $img = "data/dieren/$name.jpg")) {
+       printf '<td title="%s">', $name // '?';
+       my $hidden = $name =~ s/\?$//;
+       if ($name and -e (my $img = "data/dieren/$name.jpg")) {
                printf '<img src="/%s"', $img;
-               printf ' alt="%s"', $name;
+               printf ' alt="%s"', -l $img ? readlink($img) =~ s/\.jpg$//r : $name;
+               print ' hidden' if $hidden and not exists $get{v};
                print ' />';
        }
+       elsif (!$hidden) {
+               print $name;
+       }
        print '</td>';
 }
 say '</tr></table>';