$conv_nxy, $on_archlabel, $on_island, $on_league,
$on_incomprehensible) = @_;
- my ($x,$y, $arch,$island,$solid,$dirn);
+ my ($x,$y, $arch,$island,$sizecol,$solid,$dirn);
my $nn= sub { return $conv_nxy->($x,$y) };
# We don't even bother with tag soup; instead we do line-oriented parsing.
s/^\s*//; chomp; s/\s+$//; s/\s+/ /g;
s/\<\/?(?:b|em)\>//g;
s/\{\{(?:chart\ style|Chart league difficulty)\|[^{}]*\}\}//gi;
+ s/^\{\{(?:testing|current)\}\}//;
next unless m/\{\{/; # only interested in chart template stuff
if (($x,$y,$arch) =
m/^\{\{ chart\ label \|(\d+)\|(\d+)\| .*
(?: \<(?: big|center )\>)* \'+
(?: \[\[ | \{\{ )
- [^][\']* \| ([^][\'|]+)\ archipelago
+ [^][]* \| ([^][|]+)\ archipelago
(?: \]\] | \}\} )
\'+ (?: \<\/(?: big|center )\>)* \}\}$/xi) {
printf $debugfh "%2d,%-2d arch %s\n", $x,$y,$arch;
$on_archlabel->($x,$y,$arch);
} elsif (m/^\{\{ chart\ label \|\d+\|\d+\|
\<big\> \'+ \[\[ .* \b ocean \]\]/xi) {
- } elsif (($x,$y,$island) =
+ } elsif (($x,$y,$island,$sizecol) =
m/^\{\{ chart\ island\ icon \|(\d+)\|(\d+)\|
- ([^| ][^|]*[^| ]) \| .*\}\}$/xi) {
+ ([^| ][^|]*[^| ]) \| [^|]* \| (\w+) \| .*\}\}$/xi) {
my $n= $nn->();
printf $debugfh "%2d,%-2d island %s\n", $x,$y,$island;
- $on_island->($n, $island);
+ $on_island->($n, $island, $sizecol);
} elsif (($solid,$x,$y,$dirn) =
m/^\{\{ chart\ league((?:\ solid)?) \|(\d+)\|(\d+)\|
\.?([-\/\\o])\.? \| .*\}\}$/xi) {