<(common.inc.plp)><:
+use warnings;
+no warnings 'qw';
-my $verbose = exists $get{v} && ($get{v} // 1);
my $intro = 'dieren die in het Nederlands vernoemd zijn naar andere dieren.';
-$intro .= '.. en dergelijke.' if $verbose;
-$intro .= '.. enzo.' if $verbose >= 2;
+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 => ($verbose && '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',
table {
width: 100%;
}
-tr:first-child th {
- word-break: break-all;
-}
-img {
+td {
vertical-align: bottom;
+}
+figure {
width: 100%;
+ height: 100%;
}
-img[hidden] {
+figure[hidden] {
transition: opacity 1s 0s;
display: inline;
opacity: 0;
}
-img[hidden]:hover {
+figure[hidden]:hover {
opacity: 1;
transition-delay: 2s;
}
<p>
<:
-say ucfirst $intro;
-if ($verbose) {
- say 'Zie het <a href="?">populaire overzicht</a> voor minder.';
-}
-else {
- say 'Zie ook minderbekende en <a href="?v">verdergezochte verbanden</a>.';
-}
+say ucfirst $pageinfo->{intro};
+say $pageinfo->{altlink};
:>
</p>
<:
my @table = qw(
- >: origineel: zee-: meer_water: aardig: anders: #:
- >hond: hond zeehond waterhond? aardhond? vleerhond #rodehond
- >kat: kat zeekat meerkat caterpillar? 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 #
- #>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 #
- #>draak: draak zeedraak waterdraak aarddraak? komododraak #
- #>vlo: vlo strandvlo watervlo aardvlo # #
- #>mot: mot zeemot? watermot aardmot? marmot #
- #>bij: bij zeebij? waterbij aardbij # #
+ >: origineel: zee-: meer_water: land/aardig: anders: #:
+ >hond: hond zeehond waterhond?? prairiehond vleerhond #rodehond
+ >kat: kat zeekat meerkat cat_325? vliegende_kat #tijgerkat
+ #>haas: haas zeehaas waterhaas koolhaas? ossenhaas? #buidelhaas
+ >muis: muis zeemuis waterspitsmuis aardmuis vleermuis #computermuis
+ >rat: rat zeerat waterrat woestijnrat buidelrat #beverrat
+ >egel: egel zee-egel wateregel? aardegel?? mierenegel #
+ >varken: varken zeevarken waterzwijn aardvarken stekelvarken #
+ >koe: koe zeekoe meerkoetje aardekoe?? koedoe #haiku?
+ >paard: paard zeepaardje nijlpaard aardpaard?? luipaard #tijgerpaard
+ #>hoorn: eenhoorn zeehoorn zee-eenhoorn? bergahorn neushoorn #eekhoorn
+ #>bra: bra(ssière)? zebra - - cobra #sabra
+ #>olifant: olifant zeeolifant olifantsvis kamerolifant? - #olifantsoor
+ >beer: beer zeebeer waterbeertje ijsbeer wasbeer #neusbeer
+ >leeuw: leeuw zeeleeuw waterleeuw?? aardleeuw?? mierenleeuw #
+ >wolf: wolf zeewolf waterwolf?? aardwolf korenwolf #buidelwolf
+ >haan: haan zeehaan waterhaan rotshaan sprinkhaan #wilde_haan??
+ #>pad: pad zebrapad? waterpad? landpad schildpad #paddenstoel
+ #>draak: draak zeedraak waterdraak - komododraak #
+ #>vlo: vlo zeevlo watervlo aardvlo - #vlok?
+ #>mot: mot marmot watermot bergamot - #
+ #>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);
say '<table>';
while (my $name = shift @table) {
- if ($name =~ s/^#// and !$verbose) {
+ if ($name =~ s/^#// and !$pageinfo->{prefix}) {
while ($name = shift @table) {
last if $name =~ m/^>/;
}
say '</tr>' if $name;
print "<tr>";
}
+ $name =~ s/^-$//;
+ my ($img) = $name =~ /^([\w-]+)/;
+ $name =~ y/_/ /;
if ($name =~ s/:$//) {
# trailing colon indicates header text
- $name =~ y/_/ /;
print "<th>$name</th>";
next;
}
- printf '<td title="%s">', $name // '?';
+ print '<td>';
my $hidden = $name =~ s/\?$//;
- if ($name and -e (my $img = "data/dieren/$name.jpg")) {
+ my $alt = $name;
+ $name = "<q>$name</q>" if $name =~ s/\?$//;
+
+ 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) {
+ $name .= " ($alt)";
+ }
+ else {
+ $alt = $name;
+ }
+ print "<figcaption>$name</figcaption>";
printf '<img src="/%s"', $img;
- printf ' alt="%s"', -l $img ? readlink($img) =~ s/\.jpg$//r : $name;
- print ' hidden' if $hidden and $verbose < 2;
+ printf ' alt="%s"', $alt;
print ' />';
}
- elsif (!$hidden) {
+ elsif ($hidden) {
+ printf '<figcaption>%s</figcaption>', "$name?";
+ }
+ else {
print $name;
}
+ print '</figure>';
print '</td>';
}
say '</tr></table>';