diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2010-01-09 23:10:26 -0500 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2010-01-09 23:10:26 -0500 |
commit | 9dc5685de44760d2c06a0376c97eb699de2f2964 (patch) | |
tree | 41c57d6fb5613d0bc351cc562072a4501c0d3113 /IkiWiki | |
parent | 149e8e1c62a11d73f2fbea4e653cff7f3460c8f2 (diff) |
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.
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/Plugin/linkmap.pm | 30 |
1 files changed, 4 insertions, 26 deletions
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 <object> tags (with good reason!) - # Instead, insert a placeholder tag, which will be expanded during - # formatting. $mapnum++; - $maps{$mapnum}=\%params; - return "<div class=\"linkmap$mapnum\"></div>"; -} - -sub format (@) { - my %params=@_; - - $params{content}=~s/<div class=\"linkmap(\d+)"><\/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="<object data=\"".urlto($dest, $params{destpage}). - "\" type=\"image/png\" usemap=\"#linkmap$mapnum\">\n". - <IN>. - "</object>"; + my $ret="<img src=\"".urlto($dest, $params{destpage}). + "\" alt=\"".gettext("linkmap"). + "\" usemap=\"#linkmap$mapnum\" />\n". + <IN>; close IN || error gettext("failed to run dot"); waitpid $pid, 0; |