found some problems in plugins
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Tue, 20 Feb 2007 06:42:10 +0000 (06:42 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Tue, 20 Feb 2007 06:42:10 +0000 (06:42 +0000)
doc/patchqueue/index.html_allowed.mdwn

index 44b2a22055a662ecc4e0a171827b0fdba9a686d0..dffffa184cea115ec88836757d3f94dd36ce2228 100644 (file)
@@ -273,9 +273,83 @@ I'll attach an updated and slightly modified version below.
 * The rss page name generation code seems unnecesarily roundabout, I'm sure
   that can be cleaned up somehow, perhaps by making `htmlpage` more
   generic.
+* `aggregate.pm` uses htmlpage in a way that breaks with its new behavior.
+  It will need to be changed as follows:
 
-This is only a first pass, I have not yet audited all the plugins to see if
-any are broken by the changes.
+       Index: aggregate.pm
+       ===================================================================
+       --- aggregate.pm        (revision 2700)
+       +++ aggregate.pm        (working copy)
+       @@ -320,7 +320,7 @@
+                       # NB: This doesn't check for path length limits.
+                       eval q{use POSIX};
+                       my $max=POSIX::pathconf($config{srcdir}, &POSIX::_PC_NAME_MAX);
+       -               if (defined $max && length(htmlpage($page)) >= $max) {
+       +               if (defined $max && length(htmlfn($page)) >= $max) {
+                               $c="";
+                               $page=$feed->{dir}."/item";
+                               while (exists $IkiWiki::pagecase{lc $page.$c} ||
+       @@ -356,7 +356,7 @@
+               if (ref $feed->{tags}) {
+                       $template->param(tags => [map { tag => $_ }, @{$feed->{tags}}]);
+               }
+       -       writefile(htmlpage($guid->{page}), $config{srcdir},
+       +       writefile(htmlfn($guid->{page}), $config{srcdir},
+                       $template->output);
+        
+               # Set the mtime, this lets the build process get the right creation
+       @@ -434,4 +434,8 @@
+               return "$config{srcdir}/".htmlpage($page);
+        } #}}}
+        
+       +sub htmlfn ($) { #{{{
+       +       return shift().".html";
+       +} #}}}
+       +
+        1
+
+* `linkmap.pm` uses `htmlpage` to construct a link and should probably be
+  changed like this (untested):
+
+       Index: linkmap.pm
+       ===================================================================
+       --- linkmap.pm  (revision 2700)
+       +++ linkmap.pm  (working copy)
+       @@ -50,8 +50,7 @@
+               foreach my $item (keys %links) {
+                       if (pagespec_match($item, $params{pages}, $params{page})) {
+                               my $link=htmlpage($item);
+       -                       $link=IkiWiki::abs2rel($link, IkiWiki::dirname($params{page}));
+       -                       $mapitems{$item}=$link;
+       +                       $mapitems{$item}=urlto($link, $params{destpage});
+                       }
+               }
+
+* `inline.pm` uses htmlpage and `abs2rel` to generate a link, and probably
+  needs to be changed to either use `urlto` or to call `beautify_url` like
+  htmllink does. This might work:
+
+       Index: inline.pm
+       ===================================================================
+       --- inline.pm   (revision 2700)
+       +++ inline.pm   (working copy)
+       @@ -150,10 +150,7 @@
+                               # Don't use htmllink because this way the
+                               # title is separate and can be overridden by
+                               # other plugins.
+       -                       my $link=bestlink($params{page}, $page);
+       -                       $link=htmlpage($link) if defined $type;
+       -                       $link=abs2rel($link, dirname($params{destpage}));
+       -                       $template->param(pageurl => $link);
+       +                       $template->param(pageurl => urlto(bestlink($params{page}, $page), $params{destpage}));
+                               $template->param(title => pagetitle(basename($page)));
+                               $template->param(ctime => displaytime($pagectime{$page}));
+
+* `img.pm` makes some assumptions about name of the page that will be
+  linking to the image, which are probably broken.
+
+* The changes to htmlpage's behavior probably call for the plugin
+  interface version number to be changed.
 
 --[[Joey]]