* Use forcebaseurl to make page previews be displayed with the html base
authorJoey Hess <joey@kodama.kitenet.net>
Wed, 12 Mar 2008 18:21:48 +0000 (14:21 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Wed, 12 Mar 2008 18:21:48 +0000 (14:21 -0400)
  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.

IkiWiki/CGI.pm
IkiWiki/Plugin/graphviz.pm
IkiWiki/Plugin/img.pm
IkiWiki/Plugin/linkmap.pm
IkiWiki/Plugin/sparkline.pm
IkiWiki/Plugin/teximg.pm
debian/changelog
doc/plugins/teximg/discussion.mdwn
po/ikiwiki.pot

index 87cb9c3f3f12c637005cc06ecbbc04b18c5736c5..042e168aa8dc501613746ea3af45b2ecbbc4fafa 100644 (file)
@@ -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 {
index fb32392279cbff0e0e4aa7ad434ce9b3a6acc03d..ec48bad2c859fef49b87cce9f249113d3875a8d3 100644 (file)
@@ -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";
        }
 } #}}}
 
index b6e7c9e41db20db9639ec7927a2994a0560a799e..c5b86bad8311c42ca8c88993c9e55f62845ab988 100644 (file)
@@ -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);
index 62984d9b88b1082c8d40cca133ed8ae5174fb26f..5b87277ac1982f0dd73d5f4f06ad881e31d2c7f5 100644 (file)
@@ -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.
index 69b3512c27e708d1155fab842e76b46b7dbff9f5..0b9ddd8d2460e8ea175a603e710f77ca4589e9e0 100644 (file)
@@ -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;
index 5dff5feef30913bd598da7e02ab7b2f42b5cfa2b..f7fd91ddf2a7156934a0a6c71ee52b1f294bea01 100644 (file)
@@ -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})) {
index 53a2fbe160dfe62b82a461dc10963ff68bc126e4..d05fa8f30e362e1b412be6570324a2d0085d9568 100644 (file)
@@ -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
 
index 17f677c2138cd8067d5cfea33cad6c9ef0a068a3..019298670f284957b1a0dbc181c67c3cc1f76158 100644 (file)
@@ -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]]
index 6ff0a41d1463ea66c6a796860aea5e4c266b3351..76baba228f9f64028be032263d6fb69d16e6e045 100644 (file)
@@ -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 ""