dieren: aggregate distinctive subpage metadata
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 16 Oct 2021 15:52:29 +0000 (17:52 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 25 Oct 2021 14:33:21 +0000 (16:33 +0200)
dieren.plp

index f8e945041d888cdc7c594b9a474f9f9e2236a34b..2626cbe943f51a497130c4b6ca5924bb1a641422 100644 (file)
@@ -1,16 +1,34 @@
 <(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>.',
+       },
+       uitgebreid => {
+               title => 'uitgebreid dieren',
+               intro => "$intro.. en dergelijke.",
+               altlink => 'Zie het <a href="/dieren">populaire overzicht</a> voor minder.',
+               prefix => '#',
+               secrets => 1,
+       },
+);
+
+$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 +61,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>
 
@@ -94,7 +107,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 +130,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) {