diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index d6fec7687..608b1b6bf 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -13,6 +13,7 @@ had been deleted. (Martin Kamerbeek / Oqapi) - fix: Events don't display on last day of week on week view - fix: Data Form tab delimited export doesn't obey field order + - fix: Extra tags inserted when viewing only Wiki page 7.4.6 - Prevent Help index from trying to link to non-existant documentation diff --git a/lib/WebGUI/Asset/Wobject/WikiMaster.pm b/lib/WebGUI/Asset/Wobject/WikiMaster.pm index 1176af6e3..4d00f2e51 100644 --- a/lib/WebGUI/Asset/Wobject/WikiMaster.pm +++ b/lib/WebGUI/Asset/Wobject/WikiMaster.pm @@ -95,7 +95,6 @@ sub autolinkHtml { my $skipTitles = $opts{skipTitles} || []; # TODO: ignore caching for now, but maybe do it later. my %mapping = $self->session->db->buildHash("SELECT LOWER(d.title), d.url FROM asset AS i INNER JOIN assetData AS d ON i.assetId = d.assetId WHERE i.parentId = ? and className='WebGUI::Asset::WikiPage'", [$self->getId]); - return $html unless %mapping; foreach my $key (keys %mapping) { if (grep {lc $_ eq $key} @$skipTitles) { delete $mapping{$key}; @@ -105,9 +104,10 @@ sub autolinkHtml { $key =~ s{\)}{\\\)}gxms; # escape parens $mapping{$key} = $self->session->url->gateway($mapping{$key}); } + return $html unless %mapping; # sort by length so it prefers matching longer titles my $matchString = join('|', map{quotemeta} sort {length($b) <=> length($a)} keys %mapping); - my $regexp = qr/($matchString)/i; + my $regexp = qr/($matchString)/i; my @acc = (); my $in_a = 0; my $p = HTML::Parser->new;