From 6311c65d7397e07947d6cf38df772545a3fa296d Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Mon, 30 May 2022 17:40:02 +0200 Subject: [PATCH] dieren: external word include with prefixed beknopt picks --- dieren.inc.pl | 29 +++++++++++ dieren.plp | 140 ++++++++++++++++++-------------------------------- 2 files changed, 80 insertions(+), 89 deletions(-) create mode 100644 dieren.inc.pl diff --git a/dieren.inc.pl b/dieren.inc.pl new file mode 100644 index 0000000..475fa12 --- /dev/null +++ b/dieren.inc.pl @@ -0,0 +1,29 @@ +#!/bin/env perl +use 5.014; +use warnings; +use utf8; + +[map {[split ' ']} grep {$_} split /\n/, <<'.']; + : 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 #leeuwerik + 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 ?aarddraak=戊辰 komododraak=varaan #drakenkop +#vlo: vlo zeevlo watervlo aardvlo - #vlok +#mot: +mot +marmot watermot +bergamot ?behemoth # +#bij: bij - waterbij aardbei moerbei #hommelbij +. diff --git a/dieren.plp b/dieren.plp index 4187dc8..deb2ac3 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/^[#+]*/, # optional # or + secrets => 1, }, beknopt => { title => 'beknopt dieren', intro => "een aantal $intro", altlink => 'Zie het populaire overzicht voor meer.', + prefix => qr/^\+/, # only + + colfilter => 1, }, ); @@ -78,108 +82,66 @@ say $pageinfo->{altlink};

<: -my @table = map {[split ' ']} grep {$_} split /\n(?!\s{3})/, q( - >: 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 #leeuwerik - >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 aarddraak?=戊辰 - komododraak=varaan #drakenkop - #>vlo: vlo zeevlo watervlo aardvlo - vlok? - #>mot: mot marmot watermot bergamot behemoth? # - #>bij: bij - waterbij aardbei moerbei hommelbij -); +my $table = readdata('dieren'); if ($Request eq 'standaard') { - $table[ 9][4] = 'grasmodderpaard?=草泥马'; # replace turnpaard - $table[18][1] = 'draak_'; # irl animal + $table->[ 9][4] = '?grasmodderpaard=草泥马'; # replace turnpaard + $table->[18][1] = 'draak_'; # irl animal } -@table = map {[split ' ']} grep {$_} split /\n/, q( - >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); - @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 ''; -for my $row (@table) { -for my $name (@{$row}) { - if ($name =~ s/^#// and !$pageinfo->{prefix}) { - last; - } - 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 ''; -- 2.30.0