X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/3025dbfd04f2259da0cd45f37b52673eaea1aec8..HEAD:/dieren.plp diff --git a/dieren.plp b/dieren.plp index 452a780..8e66008 100644 --- a/dieren.plp +++ b/dieren.plp @@ -1,109 +1,146 @@ <(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 verdergezochte verbanden' . + ' of het beknopte overzicht.', + prefix => qr/^(?!#)\+?/, # no # optional + + colfilter => 0, + }, + uitgebreid => { + title => 'uitgebreid dieren', + intro => "$intro.. en dergelijke.", + altlink => 'Zie het populaire overzicht voor minder.', + prefix => qr/.*?[#]|^[#+]*/, # after optional # or + + secrets => 1, + }, + beknopt => { + title => 'beknopt dieren', + intro => "een aantal $intro", + altlink => 'Zie het populaire overzicht voor meer.', + prefix => qr/^\+/, # only + + colfilter => 1, + }, +); + +$Request ||= 'standaard'; +my $pageinfo = $subpages{$Request} + or Html(), Abort("Onbekende dierenpagina $Request", '404 request not found'); Html({ - title => 'dieren cheat sheet', - version => '1.0', - description => [], + title => $pageinfo->{title}.' cheat sheet', + version => '1.2', + lang => 'nl', + 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', + image => 'dieren.jpg', + raw => <<"EOT", EOT }); :> -

Dierennamen (Dutch animal names)

+

Dierennamen (Dutch animal names)

-

Dieren die in het Nederlands vernoemd zijn naar andere dieren.

+

+<: +say ucfirst $pageinfo->{intro}; +say $pageinfo->{altlink}; +:> +

<: -my @table = qw( - >: origineel: zee-: meer_water: aardig: anders: - >hond: hond zeehond waterhond? aardhond? vleerhond - >kat: kat zeekat meerkat caterpillar? tijgerkat - #>haas: haas zeehaas ? ? ? - >muis: muis zeemuis watermuis? 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? haiku? - >paard: paard zeepaardje nijlpaard aardpaard? luipaard - #>hoorn: eenhoorn zee-eenhoorn waterhoorn? aardhoorn? neushoorn eekhoorn - #>bra: bh? 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 - #>vlo: vlo strandvlo watervlo aardvlo ? - #>draak: draak zeedraak waterdraak? aarddraak? ? -); +my $table = Data('dieren'); if (exists $get{r}) { use List::MoreUtils qw( part ); - my @trans = (part { state $col; /^#?>/ ? ($col = 0) : ++$col } @table); - @table = (); + my @trans = (part { state $col; /^#?>/ ? ($col = 0) : ++$col } @{$table}); + $table = []; for (@trans) { unshift @$_, '?:' if $_->[0] !~ /:$/; $_->[0] =~ s/^#?\K>?/>>/; for (@$_) { - push @table, s/^#?\K>/$1/r; + push @$table, s/^#?\K>/$1/r; } } } -say ''; -while (my $name = shift @table) { - if ($name =~ s/^#// and not exists $get{v}) { - while ($name = shift @table) { - last if $name =~ m/^>/; - } - } - if ($name =~ s/^>//) { - # leading dash starts a new row - say '' if $name; - print ""; +for my $prefix ($pageinfo->{prefix}) { + for my $col ($pageinfo->{colfilter} // ()) { + @{$table} = grep { $_->[$col] =~ $prefix } @{$table}; } - if ($name =~ s/:$//) { - # trailing colon indicates header text + $_ = [ grep { s/$prefix// } @{$_} ] for @{$table}; +} + +say '
'; +for my $row (@{$table}) { + print ''; + for my $name (@{$row}) { + my $hidden = $name =~ s/^\?//; + $name =~ s/#.*//; # ignore prefixed part + $name =~ s/^-$//; + my ($img) = $name =~ /([\w-]+)/; $name =~ y/_/ /; - print ""; - next; - } - print qq{"; + next; + } + print ''; } - print ''; + say ''; } -say ''; +say '';