comments: Fix cache avoidance hack.
[ikiwiki.git] / IkiWiki / Plugin / comments.pm
index 0ae9eefe320f2b634781375b8c57927844a8d2cc..3a0465dbb833fd0485d133bb39ee3ebc1daebf46 100644 (file)
@@ -7,7 +7,7 @@ package IkiWiki::Plugin::comments;
 
 use warnings;
 use strict;
-use IkiWiki 2.00;
+use IkiWiki 3.00;
 use Encode;
 use POSIX qw(strftime);
 
@@ -198,8 +198,17 @@ sub preprocess {
                        $pagestate{$page}{meta}{author} = $params{claimedauthor};
                }
 
-               if (defined $params{url} and safeurl($params{url})) {
-                       $pagestate{$page}{meta}{authorurl} = $params{url};
+               if (defined $params{url}) {
+                       my $url=$params{url};
+
+                       eval q{use URI::Heuristic}; 
+                       if (! $@) {
+                               $url=URI::Heuristic::uf_uristr($url);
+                       }
+
+                       if (safeurl($url)) {
+                               $pagestate{$page}{meta}{authorurl} = $url;
+                       }
                }
        }
        else {
@@ -497,7 +506,10 @@ sub sessioncgi ($$) {
                error($conflict) if defined $conflict;
 
                # Jump to the new comment on the page.
-               IkiWiki::redirect($cgi, urlto($page, undef, 1)."#$location");
+               # The trailing question mark tries to avoid broken
+               # caches and get the most recent version of the page.
+               IkiWiki::redirect($cgi, urlto($page, undef, 1)."?updated#$location");
+
        }
        else {
                IkiWiki::showform ($form, \@buttons, $session, $cgi,