X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/3b0fce93e40e5457b63ceda9692901539eb4fc82..0d666f4a7c504690866db868e454ebc20f00f5f5:/IkiWiki/Plugin/brokenlinks.pm

diff --git a/IkiWiki/Plugin/brokenlinks.pm b/IkiWiki/Plugin/brokenlinks.pm
index 75c819d76..6741f9081 100644
--- a/IkiWiki/Plugin/brokenlinks.pm
+++ b/IkiWiki/Plugin/brokenlinks.pm
@@ -7,7 +7,7 @@ use strict;
 use IkiWiki;
 
 sub import { #{{{
-	IkiWiki::register_plugin("preprocess", "brokenlinks", \&preprocess);
+	hook(type => "preprocess", id => "brokenlinks", call => \&preprocess);
 } # }}}
 
 sub preprocess (@) { #{{{
@@ -16,25 +16,26 @@ sub preprocess (@) { #{{{
 	
 	# Needs to update whenever a page is added or removed, so
 	# register a dependency.
-	IkiWiki::add_depends($params{page}, $params{pages});
+	add_depends($params{page}, $params{pages});
 	
 	my @broken;
-	foreach my $page (%IkiWiki::links) {
-		if (IkiWiki::globlist_match($page, $params{pages})) {
-			foreach my $link (@{$IkiWiki::links{$page}}) {
-				next if $link =~ /.*\/discussion/i;
-				my $bestlink=IkiWiki::bestlink($page, $link);
+	foreach my $page (keys %links) {
+		if (pagespec_match($page, $params{pages})) {
+			foreach my $link (@{$links{$page}}) {
+				next if $link =~ /.*\/discussion/i && $config{discussion};
+				my $bestlink=bestlink($page, $link);
 				next if length $bestlink;
 				push @broken,
-					IkiWiki::htmllink($page, $link, 1).
-					" in ".
-					IkiWiki::htmllink($params{page}, $page, 1);
+					htmllink($page, $params{destpage}, $link, 1).
+					" from ".
+					htmllink($params{page}, $params{destpage}, $page, 1);
 			}
 		}
 	}
 	
 	return "There are no broken links!" unless @broken;
-	return "<ul>\n".join("\n", map { "<li>$_</li>" } sort @broken)."</ul>\n";
+	my %seen;
+	return "<ul>\n".join("\n", map { "<li>$_</li>" } grep { ! $seen{$_}++ } sort @broken)."</ul>\n";
 } # }}}
 
 1