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.
master
Joey Hess 2010-01-09 23:10:26 -05:00
parent 149e8e1c62
commit 9dc5685de4
2 changed files with 6 additions and 26 deletions

View File

@ -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;

2
debian/changelog vendored
View File

@ -8,6 +8,8 @@ ikiwiki (3.20100104) UNRELEASED; urgency=low
* img: Support alignment of images with captions. (Giuseppe Bilotta)
* websetup: Fix utf-8 problems.
* websetup: Fix bug in array change detection.
* linkmap: Simplify and improve browser compatability by using an img,
not object tag.
-- Joey Hess <joeyh@debian.org> Mon, 04 Jan 2010 12:53:24 -0500