summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-03-12 14:21:48 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-03-12 14:21:48 -0400
commitf7bdc2385d3ec8060f00d5ceb3b45f3cc4760e38 (patch)
tree852afeedb432084b4832263087a706a4e7bde408
parentbe0f1a63a3ebd05967a8bc6b03a425a2118b17c4 (diff)
* Use forcebaseurl to make page previews be displayed with the html base
set to the destination page. This avoids need for hacks to munge the urls in preview mode, which fixes several bugs. * Several destpage fixes in plugins.
-rw-r--r--IkiWiki/CGI.pm27
-rw-r--r--IkiWiki/Plugin/graphviz.pm6
-rw-r--r--IkiWiki/Plugin/img.pm4
-rw-r--r--IkiWiki/Plugin/linkmap.pm4
-rw-r--r--IkiWiki/Plugin/sparkline.pm4
-rw-r--r--IkiWiki/Plugin/teximg.pm16
-rw-r--r--debian/changelog4
-rw-r--r--doc/plugins/teximg/discussion.mdwn2
-rw-r--r--po/ikiwiki.pot8
9 files changed, 38 insertions, 37 deletions
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index 87cb9c3f3..042e168aa 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -21,7 +21,7 @@ sub printheader ($) { #{{{
} #}}}
-sub showform ($$$$) { #{{{
+sub showform ($$$$;@) { #{{{
my $form=shift;
my $buttons=shift;
my $session=shift;
@@ -35,7 +35,7 @@ sub showform ($$$$) { #{{{
}
printheader($session);
- print misctemplate($form->title, $form->render(submit => $buttons));
+ print misctemplate($form->title, $form->render(submit => $buttons), @_);
}
sub redirect ($$) { #{{{
@@ -276,6 +276,8 @@ sub cgi_editpage ($$) { #{{{
file_pruned($page, $config{srcdir}) || $page=~/^\//) {
error("bad page name");
}
+
+ my $baseurl=$config{url}."/".htmlpage($page);
my $from;
if (defined $form->field('from')) {
@@ -325,10 +327,9 @@ sub cgi_editpage ($$) { #{{{
$form->tmpl_param("can_commit", $config{rcs});
$form->tmpl_param("indexlink", indexlink());
$form->tmpl_param("helponformattinglink",
- htmllink("", "", "ikiwiki/formatting",
+ htmllink($page, $page, "ikiwiki/formatting",
noimageinline => 1,
linktext => "FormattingHelp"));
- $form->tmpl_param("baseurl", baseurl());
if ($form->submitted eq "Cancel") {
if ($form->field("do") eq "create" && defined $from) {
@@ -354,9 +355,9 @@ sub cgi_editpage ($$) { #{{{
});
$form->tmpl_param("page_preview",
htmlize($page, $type,
- linkify($page, "/",
- preprocess($page, "/",
- filter($page, "/", $content), 0, 1))));
+ linkify($page, $page,
+ preprocess($page, $page,
+ filter($page, $page, $content), 0, 1))));
# previewing may have created files on disk
saveindex();
}
@@ -458,7 +459,7 @@ sub cgi_editpage ($$) { #{{{
$form->title(sprintf(gettext("editing %s"), pagetitle($page)));
}
- showform($form, \@buttons, $session, $q);
+ showform($form, \@buttons, $session, $q, forcebaseurl => $baseurl);
}
else {
# save page
@@ -474,7 +475,7 @@ sub cgi_editpage ($$) { #{{{
$form->field(name => "page", type => 'hidden');
$form->field(name => "type", type => 'hidden');
$form->title(sprintf(gettext("editing %s"), $page));
- showform($form, \@buttons, $session, $q);
+ showform($form, \@buttons, $session, $q, forcebaseurl => $baseurl);
return;
}
elsif ($form->field("do") eq "create" && $exists) {
@@ -488,7 +489,7 @@ sub cgi_editpage ($$) { #{{{
value => readfile("$config{srcdir}/$file").
"\n\n\n".$form->field("editcontent"),
force => 1);
- showform($form, \@buttons, $session, $q);
+ showform($form, \@buttons, $session, $q, forcebaseurl => $baseurl);
return;
}
@@ -518,7 +519,8 @@ sub cgi_editpage ($$) { #{{{
$form->field(name => "page", type => 'hidden');
$form->field(name => "type", type => 'hidden');
$form->title(sprintf(gettext("editing %s"), $page));
- showform($form, \@buttons, $session, $q);
+ showform($form, \@buttons, $session, $q,
+ forcebaseurl => $baseurl);
return;
}
@@ -562,7 +564,8 @@ sub cgi_editpage ($$) { #{{{
$form->field(name => "page", type => 'hidden');
$form->field(name => "type", type => 'hidden');
$form->title(sprintf(gettext("editing %s"), $page));
- showform($form, \@buttons, $session, $q);
+ showform($form, \@buttons, $session, $q,
+ forcebaseurl => $baseurl);
return;
}
else {
diff --git a/IkiWiki/Plugin/graphviz.pm b/IkiWiki/Plugin/graphviz.pm
index fb3239227..ec48bad2c 100644
--- a/IkiWiki/Plugin/graphviz.pm
+++ b/IkiWiki/Plugin/graphviz.pm
@@ -29,10 +29,10 @@ sub render_graph (\%) { #{{{
# Use the sha1 of the graphviz code as part of its filename.
eval q{use Digest::SHA1};
error($@) if $@;
- my $dest=$params{page}."/graph-".
+ my $dest=$params{destpage}."/graph-".
IkiWiki::possibly_foolish_untaint(Digest::SHA1::sha1_hex($src)).
".png";
- will_render($params{page}, $dest);
+ will_render($params{destpage}, $dest);
if (! -e "$config{destdir}/$dest") {
my $pid;
@@ -73,7 +73,7 @@ sub render_graph (\%) { #{{{
return "<img src=\"".urlto($dest, "")."\" />\n";
}
else {
- return "<img src=\"".urlto($dest, $params{page})."\" />\n";
+ return "<img src=\"".urlto($dest, $params{destpage})."\" />\n";
}
} #}}}
diff --git a/IkiWiki/Plugin/img.pm b/IkiWiki/Plugin/img.pm
index b6e7c9e41..c5b86bad8 100644
--- a/IkiWiki/Plugin/img.pm
+++ b/IkiWiki/Plugin/img.pm
@@ -39,7 +39,7 @@ sub preprocess (@) { #{{{
my $file = bestlink($params{page}, $image);
- my $dir = $params{page};
+ my $dir = $params{destpage};
my $base = IkiWiki::basename($file);
eval q{use Image::Magick};
@@ -56,7 +56,7 @@ sub preprocess (@) { #{{{
my $outfile = "$config{destdir}/$dir/${w}x${h}-$base";
$imglink = "$dir/${w}x${h}-$base";
- will_render($params{page}, $imglink);
+ will_render($params{destpage}, $imglink);
if (-e $outfile && (-M srcfile($file) >= -M $outfile)) {
$r = $im->Read($outfile);
diff --git a/IkiWiki/Plugin/linkmap.pm b/IkiWiki/Plugin/linkmap.pm
index 62984d9b8..5b87277ac 100644
--- a/IkiWiki/Plugin/linkmap.pm
+++ b/IkiWiki/Plugin/linkmap.pm
@@ -53,11 +53,11 @@ sub genmap ($) { #{{{
}
}
- my $dest=$params{page}."/linkmap.png";
+ my $dest=$params{destpage}."/linkmap.png";
# Use ikiwiki's function to create the file, this makes sure needed
# subdirs are there and does some sanity checking.
- will_render($params{page}, $dest);
+ will_render($params{destpage}, $dest);
writefile($dest, $config{destdir}, "");
# Run dot to create the graphic and get the map data.
diff --git a/IkiWiki/Plugin/sparkline.pm b/IkiWiki/Plugin/sparkline.pm
index 69b3512c2..0b9ddd8d2 100644
--- a/IkiWiki/Plugin/sparkline.pm
+++ b/IkiWiki/Plugin/sparkline.pm
@@ -114,10 +114,10 @@ sub preprocess (@) { #{{{
# the base for its filename.
eval q{use Digest::SHA1};
error($@) if $@;
- my $fn=$params{page}."/sparkline-".
+ my $fn=$params{destpage}."/sparkline-".
IkiWiki::possibly_foolish_untaint(Digest::SHA1::sha1_hex($php)).
".png";
- will_render($params{page}, $fn);
+ will_render($params{destpage}, $fn);
if (! -e "$config{destdir}/$fn") {
my $pid;
diff --git a/IkiWiki/Plugin/teximg.pm b/IkiWiki/Plugin/teximg.pm
index 5dff5feef..f7fd91ddf 100644
--- a/IkiWiki/Plugin/teximg.pm
+++ b/IkiWiki/Plugin/teximg.pm
@@ -70,21 +70,13 @@ sub create ($$$) { #{{{
my $digest = md5_hex($code, $height);
- my $imglink= $params->{page} . "/$digest.png";
- my $imglog = $params->{page} . "/$digest.log";
+ my $imglink= $params->{destpage} . "/$digest.png";
+ my $imglog = $params->{destpage} . "/$digest.log";
will_render($params->{destpage}, $imglink);
will_render($params->{destpage}, $imglog);
- my $imgurl;
- my $logurl;
- if (! $params->{preview}) {
- $imgurl = urlto($imglink, $params->{destpage});
- $logurl = urlto($imglog, $params->{destpage});
- }
- else {
- $imgurl=$params->{page}."/$digest.png";
- $logurl=$params->{page}."/$digest.log";
- }
+ my $imgurl=urlto($imglink, $params->{destpage});
+ my $logurl=urlto($imglink, $params->{destpage});
if (-e "$config{destdir}/$imglink" ||
gen_image($code, $height, $digest, $params->{page})) {
diff --git a/debian/changelog b/debian/changelog
index 53a2fbe16..d05fa8f30 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -31,6 +31,10 @@ ikiwiki (2.41) UNRELEASED; urgency=low
rcs_commit either.
* monotone: Require version 0.38 or greater, and stop using the mtnmergerc
option. (Brian May)
+ * Use forcebaseurl to make page previews be displayed with the html base
+ set to the destination page. This avoids need for hacks to munge the urls
+ in preview mode, which fixes several bugs.
+ * Several destpage fixes in plugins.
-- martin f. krafft <madduck@debian.org> Sun, 02 Mar 2008 17:46:38 +0100
diff --git a/doc/plugins/teximg/discussion.mdwn b/doc/plugins/teximg/discussion.mdwn
index 17f677c21..019298670 100644
--- a/doc/plugins/teximg/discussion.mdwn
+++ b/doc/plugins/teximg/discussion.mdwn
@@ -1,2 +1,4 @@
A minor nitpick: if, while editing, you preview your page two times without changing anything, the second time produces an error. --[[buo]]
+
+> Fixed --[[Joey]]
diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot
index 6ff0a41d1..76baba228 100644
--- a/po/ikiwiki.pot
+++ b/po/ikiwiki.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-03 15:55-0500\n"
+"POT-Creation-Date: 2008-03-12 13:53-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -235,7 +235,7 @@ msgstr ""
msgid "%s is locked by %s and cannot be edited"
msgstr ""
-#: ../IkiWiki/Plugin/mdwn.pm:37
+#: ../IkiWiki/Plugin/mdwn.pm:42
#, perl-format
msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)"
msgstr ""
@@ -244,11 +244,11 @@ msgstr ""
msgid "stylesheet not found"
msgstr ""
-#: ../IkiWiki/Plugin/meta.pm:158
+#: ../IkiWiki/Plugin/meta.pm:166
msgid "redir page not found"
msgstr ""
-#: ../IkiWiki/Plugin/meta.pm:171
+#: ../IkiWiki/Plugin/meta.pm:179
msgid "redir cycle is not allowed"
msgstr ""