X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/92a5fa99807996d54ad9dd2b5618743ad3c8154d..2ba168ac8357ad76de246d656b3da15bc9c0e722:/IkiWiki/Plugin/linkmap.pm diff --git a/IkiWiki/Plugin/linkmap.pm b/IkiWiki/Plugin/linkmap.pm index 0a8d0ca9a..81ee665c8 100644 --- a/IkiWiki/Plugin/linkmap.pm +++ b/IkiWiki/Plugin/linkmap.pm @@ -3,14 +3,23 @@ package IkiWiki::Plugin::linkmap; use warnings; use strict; -use IkiWiki; +use IkiWiki 2.00; use IPC::Open2; sub import { #{{{ + hook(type => "getsetup", id => "linkmap", call => \&getsetup); hook(type => "preprocess", id => "linkmap", call => \&preprocess); hook(type => "format", id => "linkmap", call => \&format); } # }}} +sub getsetup () { #{{{ + return + plugin => { + safe => 1, + rebuild => undef, + }, +} #}}} + my $mapnum=0; my %maps; @@ -48,7 +57,7 @@ sub genmap ($) { #{{{ # Get all the items to map. my %mapitems = (); foreach my $item (keys %links) { - if (pagespec_match($item, $params{pages}, $params{page})) { + if (pagespec_match($item, $params{pages}, location => $params{page})) { $mapitems{$item}=urlto($item, $params{destpage}); } } @@ -62,7 +71,7 @@ sub genmap ($) { #{{{ # Run dot to create the graphic and get the map data. my $pid; - my $sigpipe=0;; + my $sigpipe=0; $SIG{PIPE}=sub { $sigpipe=1 }; $pid=open2(*IN, *OUT, "dot -Tpng -o '$config{destdir}/$dest' -Tcmapx"); @@ -86,7 +95,7 @@ sub genmap ($) { #{{{ close OUT; local $/=undef; - my $ret="\n". . ""; @@ -94,9 +103,7 @@ sub genmap ($) { #{{{ waitpid $pid, 0; $SIG{PIPE}="DEFAULT"; - if ($sigpipe) { - return "[[linkmap ".gettext("failed to run dot")."]]"; - } + error gettext("failed to run dot") if $sigpipe; return $ret; } #}}}