X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/8da117a41c1c761b470b933ebb96da7134ac6195..HEAD:/dieren.plp diff --git a/dieren.plp b/dieren.plp index 50f9981..8e66008 100644 --- a/dieren.plp +++ b/dieren.plp @@ -9,18 +9,22 @@ my %subpages = ( 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 => '#', + 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, }, ); @@ -30,39 +34,32 @@ my $pageinfo = $subpages{$Request} Html({ title => $pageinfo->{title}.' cheat sheet', - version => '1.0', + 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 voorvoegsel onverwant land zee lucht animals dutch language '], - raw => <<'EOT', + image => 'dieren.jpg', + raw => <<"EOT", EOT }); :> -

Dierennamen (Dutch animal names)

+

Dierennamen (Dutch animal names)

<: @@ -90,104 +84,63 @@ say $pageinfo->{altlink};

<: -my @table = qw( - >: 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??=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?=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 = 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'; +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 !$pageinfo->{prefix}) { - while ($name = shift @table) { - last if $name =~ m/^>/; - } - $name or next; - } - 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}; } - $name =~ s/^-$//; - my ($img) = $name =~ /^([\w-]+)/; - $name =~ y/_/ /; - if ($name =~ s/:$//) { - # trailing colon indicates header text - print ""; - next; - } - print '
$name'; - my $alt = $1 if $name =~ s/=(.*)//; - my $hidden = $name =~ s/\?$//; - $name = "$name" if $name =~ s/\?$//; - $name .= " ($alt)" if $alt; + $_ = [ grep { s/$prefix// } @{$_} ] for @{$table}; +} - printf '', $hidden && !$pageinfo->{secrets} && ' hidden'; - if ($img and -e ($img = "data/dieren/$img.jpg")) { - printf '%s'; - print "
$name
"; - } - elsif ($hidden) { - printf '
%s
', "$name?"; - } - else { - print $name; +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/_/ /; + if ($name =~ s/:$//) { + # trailing colon indicates header text + print ""; + next; + } + print ''; } - print ''; - print ''; + say ''; } -say ''; +say '
';