dieren: 3 column beknopt mode of 39 custom words
[sheet.git] / dieren.plp
index f8e945041d888cdc7c594b9a474f9f9e2236a34b..6ab51174b3b9594a1faa37addb8c32a1222884a0 100644 (file)
@@ -1,16 +1,40 @@
 <(common.inc.plp)><:
+use warnings;
+no warnings 'qw';
 
 my $intro = 'dieren die in het Nederlands vernoemd zijn naar andere dieren.';
-$intro .= '.. en dergelijke.' if $Request;
-$intro .= '.. enzo.' if exists $get{v};
+my %subpages = (
+       standaard => {
+               title => 'dieren',
+               intro => $intro,
+               altlink => 'Zie ook <a href="/dieren/uitgebreid">verdergezochte verbanden</a>' .
+                          ' of het <a href="/dieren/beknopt">beknopte overzicht</a>.',
+       },
+       uitgebreid => {
+               title => 'uitgebreid dieren',
+               intro => "$intro.. en dergelijke.",
+               altlink => 'Zie het <a href="/dieren">populaire overzicht</a> voor minder.',
+               prefix => '#',
+               secrets => 1,
+       },
+       beknopt => {
+               title => 'beknopt dieren',
+               intro => "een aantal $intro",
+               altlink => 'Zie het <a href="/dieren">populaire overzicht</a> voor meer.',
+       },
+);
+
+$Request ||= 'standaard';
+my $pageinfo = $subpages{$Request}
+       or Html(), Abort("Onbekende dierenpagina <q>$Request</q>", '404 request not found');
 
 Html({
-       title => (!!$Request && 'uitgebreid ') . 'dieren cheat sheet',
+       title => $pageinfo->{title}.' cheat sheet',
        version => '1.0',
-       description => "Tabeloverzicht met afbeeldingen van $intro",
+       description => "Tabeloverzicht met afbeeldingen van $pageinfo->{intro}",
        keywords => [qw'
                dier beest naam naamgeving woord taal nederlands gerelateerd
-               relatie vernoemd vernoeming combinatie samenstelling onverwant
+               relatie vernoemd vernoeming combinatie samenstelling voorvoegsel onverwant
                land zee lucht  animals dutch language
        '],
        raw => <<'EOT',
@@ -43,13 +67,8 @@ EOT
 
 <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>.';
-}
+say ucfirst $pageinfo->{intro};
+say $pageinfo->{altlink};
 :>
 </p>
 
@@ -79,6 +98,22 @@ my @table = qw(
        #>bij:     bij        -            waterbij       aardbei      moerbei      hommelbij
 );
 
+@table = qw(
+       >hond    zeehond    prairiehond
+       >kat     zeekat     meerkat
+       >muis    zeemuis    vleermuis
+       >egel    zee-egel   mierenegel
+       >varken  zeevarken  stekelvarken
+       >koe     zeekoe     meerkoetje
+       >paard   zeepaardje nijlpaard
+       >olifant zeeolifant olifantsvis
+       >beer    zeebeer    wasbeer
+       >leeuw   zeeleeuw   mierenleeuw
+       >wolf    zeewolf    korenwolf
+       >haan    zeehaan    sprinkhaan
+       >mot     marmot     bergamot
+) if $Request eq 'beknopt';
+
 if (exists $get{r}) {
        use List::MoreUtils qw( part );
        my @trans = (part { state $col; /^#?>/ ? ($col = 0) : ++$col } @table);
@@ -94,7 +129,7 @@ if (exists $get{r}) {
 
 say '<table>';
 while (my $name = shift @table) {
-       if ($name =~ s/^#// and !$Request) {
+       if ($name =~ s/^#// and !$pageinfo->{prefix}) {
                while ($name = shift @table) {
                        last if $name =~ m/^>/;
                }
@@ -117,7 +152,7 @@ while (my $name = shift @table) {
        my $alt = $name;
        $name = "<q>$name</q>" if $name =~ s/\?$//;
 
-       printf '<figure%s>', $hidden && !exists $get{v} && ' hidden';
+       printf '<figure%s>', $hidden && !$pageinfo->{secrets} && ' hidden';
        if ($img and -e ($img = "data/dieren/$img.jpg")) {
                my $alt = -l $img && readlink($img) =~ s/\.jpg$//r;
                if ($alt) {