<(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',
table {
width: 100%;
}
-td {
- vertical-align: bottom;
+th {
+ width: 1%; /* min-content */
}
-figure {
- width: 100%;
- height: 100%;
+td {
+ width: 15%; /* 1fr */
+ vertical-align: top;
}
figure[hidden] {
transition: opacity 1s 0s;
}
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
<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>
<:
my @table = qw(
>: origineel: zee-: meer_water: land/aardig: anders: #:
- >hond: hond zeehond waterhond?? prairiehond vleerhond #rodehond
+ >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?? mierenegel #
- >varken: varken zeevarken waterzwijn aardvarken stekelvarken #
+ >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 aardpaard?? luipaard #tijgerpaard
- #>hoorn: eenhoorn zeehoorn zee-eenhoorn? bergahorn neushoorn #eekhoorn
+ >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?? mierenleeuw #
- >wolf: wolf zeewolf waterwolf?? aardwolf korenwolf #buidelwolf
- >haan: haan zeehaan waterhaan rotshaan sprinkhaan #wilde_haan??
+ >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 - komododraak #
- #>vlo: vlo zeevlo watervlo aardvlo - #vlok?
+ #>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 !$Request) {
+ 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
print "<tr>";
}
$name =~ s/^-$//;
- my ($img) = $name =~ /^([\w-]+)/;
+ my ($img) = $name =~ /([\w-]+)/;
$name =~ y/_/ /;
if ($name =~ s/:$//) {
# trailing colon indicates header text
next;
}
print '<td>';
+ my $alt = $1 if $name =~ s/=(.*)//;
my $hidden = $name =~ s/\?$//;
- my $alt = $name;
$name = "<q>$name</q>" if $name =~ s/\?$//;
+ $name .= " <small>($alt)</small>" if $alt;
- 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) {
- $name .= " ($alt)";
- }
- else {
- $alt = $name;
- }
- print "<figcaption>$name</figcaption>";
printf '<img src="/%s"', $img;
- printf ' alt="%s"', $alt;
+ printf ' alt="%s"', $alt || $name;
print ' />';
+ print "<figcaption>$name</figcaption>";
}
elsif ($hidden) {
printf '<figcaption>%s</figcaption>', "$name?";