<(common.inc.plp)><:
+use warnings;
+no warnings 'qw';
+
+my $intro = 'dieren die in het Nederlands vernoemd zijn naar andere dieren.';
+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 => 'dieren cheat sheet',
+ title => $pageinfo->{title}.' cheat sheet',
version => '1.0',
- description => [],
+ 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;
+th {
+ width: 1%; /* min-content */
}
-img {
- vertical-align: bottom;
- width: 100%;
+td {
+ width: 15%; /* 1fr */
+ vertical-align: top;
}
-img[hidden] {
+figure[hidden] {
transition: opacity 1s 0s;
display: inline;
opacity: 0;
}
-img[hidden]:hover {
+figure[hidden]:hover {
opacity: 1;
- transition-delay: 2s;
+ transition-delay: 1s;
+}
+
+@media (max-width: 60em) {
+ figcaption {
+ position: static;
+ padding: 0;
+ font-size: 50%;
+ }
+ figcaption small {
+ display: none;
+ }
+ th:first-child {
+ display: none;
+ }
+ th {
+ font-size: 50%;
+ }
}
</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 $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 scheepshond? 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??=cactus mierenegel #kegel?
+ >varken: varken zeevarken=bruinvis
+ waterzwijn=capibara aardvarken stekelvarken #feestvarken?
+ >koe: koe zeekoe meerkoetje aardekoe?? koedoe #haiku?
+ >paard: paard zeepaardje nijlpaard (turn)paard? luipaard #tijgerpaard
+ #>hoorn: eenhoorn zeehoorn zee-eenhoorn?=narwal
+ bergahorn=esdoorn 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??=kameleon
+ mierenleeuw #
+ >wolf: wolf zeewolf waterwolf??=snoek aardwolf korenwolf #strandwolf=bruine_hyena
+ >haan: haan zeehaan waterhaan rotshaan sprinkhaan #wilde_haan??=wildrooster
+ #>pad: pad zebrapad? waterpad? landpad schildpad #paddenstoel
+ #>draak: draak zeedraak waterdraak=agame - komododraak=varaan #
+ #>vlo: vlo zeevlo watervlo aardvlo vlok? #
+ #>mot: mot marmot watermot bergamot - #
+ #>bij: bij - waterbij aardbei moerbei hommelbij
);
+$table[4 + 9*7] = 'grasmodderpaard?=草泥马' if $Request eq 'standaard'; # replace turnpaard
+
+@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 );
say '<table>';
while (my $name = shift @table) {
- if ($name =~ s/^#// and not exists $get{v}) {
+ if ($name =~ s/^#// and !$pageinfo->{prefix}) {
while ($name = shift @table) {
last if $name =~ m/^>/;
}
+ $name or next;
}
if ($name =~ s/^>//) {
# leading dash starts a new row
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 $alt = $1 if $name =~ s/=(.*)//;
my $hidden = $name =~ s/\?$//;
- if ($name and -e (my $img = "data/dieren/$name.jpg")) {
+ $name = "<q>$name</q>" if $name =~ s/\?$//;
+ $name .= " <small>($alt)</small>" if $alt;
+
+ printf '<figure%s>', $hidden && !$pageinfo->{secrets} && ' hidden';
+ if ($img and -e ($img = "data/dieren/$img.jpg")) {
printf '<img src="/%s"', $img;
- printf ' alt="%s"', -l $img ? readlink($img) =~ s/\.jpg$//r : $name;
- print ' hidden' if $hidden;
+ printf ' alt="%s"', $alt || $name;
print ' />';
+ print "<figcaption>$name</figcaption>";
+ }
+ elsif ($hidden) {
+ printf '<figcaption>%s</figcaption>', "$name?";
}
- elsif (!$hidden) {
+ else {
print $name;
}
+ print '</figure>';
print '</td>';
}
say '</tr></table>';