From 9dc5685de44760d2c06a0376c97eb699de2f2964 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 9 Jan 2010 23:10:26 -0500 Subject: linkmap: Simplify and improve browser compatability by using an img, not object tag. I noticed that chromium was not hyperlinking the areas in the object-based linkmap, while img works ok. Dunno why, but img based is nicer anyway since it is allowed right through the htmlscrubber with no workarounds. --- IkiWiki/Plugin/linkmap.pm | 30 ++++-------------------------- 1 file changed, 4 insertions(+), 26 deletions(-) (limited to 'IkiWiki') diff --git a/IkiWiki/Plugin/linkmap.pm b/IkiWiki/Plugin/linkmap.pm index 28acbda32..68eb6c8c6 100644 --- a/IkiWiki/Plugin/linkmap.pm +++ b/IkiWiki/Plugin/linkmap.pm @@ -9,7 +9,6 @@ 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 () { @@ -21,34 +20,13 @@ sub getsetup () { } my $mapnum=0; -my %maps; sub preprocess (@) { my %params=@_; $params{pages}="*" unless defined $params{pages}; - # Can't just return the linkmap here, since the htmlscrubber - # scrubs out all tags (with good reason!) - # Instead, insert a placeholder tag, which will be expanded during - # formatting. $mapnum++; - $maps{$mapnum}=\%params; - return "
"; -} - -sub format (@) { - my %params=@_; - - $params{content}=~s/
<\/div>/genmap($1)/eg; - - return $params{content}; -} - -sub genmap ($) { - my $mapnum=shift; - return "" unless exists $maps{$mapnum}; - my %params=%{$maps{$mapnum}}; my $connected=IkiWiki::yesno($params{connected}); # Get all the items to map. @@ -102,10 +80,10 @@ sub genmap ($) { close OUT || error gettext("failed to run dot"); local $/=undef; - my $ret="\n". - . - ""; + my $ret="\"".gettext("linkmap").\n". + ; close IN || error gettext("failed to run dot"); waitpid $pid, 0; -- cgit v1.2.3