* Add a destpage parameter to the filter hook.
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Thu, 17 May 2007 19:55:11 +0000 (19:55 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Thu, 17 May 2007 19:55:11 +0000 (19:55 +0000)
* Fix links to smilies generated by the smiley plugin for inlined pages. The
  old links were often wrong, but often still worked by accident.

13 files changed:
IkiWiki.pm
IkiWiki/CGI.pm
IkiWiki/Plugin/conditional.pm
IkiWiki/Plugin/inline.pm
IkiWiki/Plugin/more.pm
IkiWiki/Plugin/sidebar.pm
IkiWiki/Plugin/smiley.pm
IkiWiki/Plugin/template.pm
IkiWiki/Plugin/toggle.pm
IkiWiki/Render.pm
debian/changelog
doc/bugs/rss_output_relative_links.mdwn
doc/plugins/write.mdwn

index aea5b7abf95da33edfd9fc9164622214d61cda91..a0b9027941fd1d7c18ea7d4e50c16f4763532862 100644 (file)
@@ -651,12 +651,14 @@ sub preprocess ($$$;$$) { #{{{
        return $content;
 } #}}}
 
-sub filter ($$) { #{{{
+sub filter ($$$) { #{{{
        my $page=shift;
+       my $destpage=shift;
        my $content=shift;
 
        run_hooks(filter => sub {
-               $content=shift->(page => $page, content => $content);
+               $content=shift->(page => $page, destpage => $destpage, 
+                       content => $content);
        });
 
        return $content;
index d92bdd3301eccab36b1d2ca8cab4c61db19c3028..3b1cab9a8d3ac75edbaa4e5d5bfb8354ab5d68e1 100644 (file)
@@ -401,7 +401,7 @@ sub cgi_editpage ($$) { #{{{
                        htmlize($page, $type,
                        linkify($page, "",
                        preprocess($page, $page,
-                       filter($page, $form->field('editcontent')), 0, 1))));
+                       filter($page, $page, $form->field('editcontent')), 0, 1))));
        }
        else {
                $form->tmpl_param("page_preview", "");
index 6c14361f7d2b39df373d0e7fda25bab8946fa23f..68ed36cc91692ea23fa767a5b51aee6ddc9a6650 100644 (file)
@@ -56,7 +56,7 @@ sub preprocess_if (@) { #{{{
                $ret="";
        }
        return IkiWiki::preprocess($params{page}, $params{destpage}, 
-               IkiWiki::filter($params{page}, $ret));
+               IkiWiki::filter($params{page}, $params{destpage}, $ret));
 } # }}}
 
 package IkiWiki::PageSpec;
index 3c029e001f78a208840b26aa814df1a742a7b5ca..063673730ca88e9f30fe6762863e75ee2ae47a71 100644 (file)
@@ -212,7 +212,7 @@ sub preprocess_inline (@) { #{{{
                                $ret.="\n".
                                      linkify($page, $params{page},
                                      preprocess($page, $params{page},
-                                     filter($page,
+                                     filter($page, $params{page},
                                      readfile(srcfile($file)))));
                        }
                }
@@ -266,7 +266,7 @@ sub get_inline_content ($$) { #{{{
                return htmlize($page, $type,
                       linkify($page, $destpage,
                       preprocess($page, $destpage,
-                      filter($page,
+                      filter($page, $destpage,
                       readfile(srcfile($file))))));
        }
        else {
index 6a34682ba61c9043ffff65343acd035e018cce25..667cd64154803c37e6aad977932767cadba4f5a6 100644 (file)
@@ -24,7 +24,7 @@ sub preprocess (@) { #{{{
        }
        else {
                $params{text}=IkiWiki::preprocess($params{page}, $params{destpage},
-                       IkiWiki::filter($params{page}, $params{text}));
+                       IkiWiki::filter($params{page}, $params{destpage}, $params{text}));
                return "<a name=\"more\"></a>\n\n".$params{text};
        }
 }
index f0dd0ca0352ce1077141079bd349906572f00bea..a49726768762ac51f8b950630d104d2fd69c3e54 100644 (file)
@@ -30,7 +30,7 @@ sub sidebar_content ($) { #{{{
                return IkiWiki::htmlize($page, $sidebar_type,
                       IkiWiki::linkify($sidebar_page, $page,
                       IkiWiki::preprocess($sidebar_page, $page,
-                      IkiWiki::filter($sidebar_page, $content))));
+                      IkiWiki::filter($sidebar_page, $page, $content))));
        }
 
 } # }}}
index 1a9833e6eed899ae2ed3a77d337f2e06ea789c29..96e714d3d2acfa88e0b05fb34fe0f92f22243b10 100644 (file)
@@ -36,7 +36,7 @@ sub filter (@) { #{{{
        
        build_regexp() unless defined $smiley_regexp;
        $params{content} =~ s{(?:^|(?<=\s))(\\?)$smiley_regexp(?:(?=\s)|$)}{
-               $1 ? $2 : htmllink($params{page}, $params{page}, $smileys{$2}, linktext => $2)
+               $1 ? $2 : htmllink($params{page}, $params{destpage}, $smileys{$2}, linktext => $2)
        }egs if length $smiley_regexp;
 
        return $params{content};
index b169f7e75f23c1528c44ecbad00eb661d3df4d73..c87ba51029434acca2d3dd94ffd9389cec8e1231 100644 (file)
@@ -50,7 +50,7 @@ sub preprocess (@) { #{{{
        }
 
        return IkiWiki::preprocess($params{page}, $params{destpage},
-               IkiWiki::filter($params{page},
+               IkiWiki::filter($params{page}, $params{destpage},
                $template->output));
 } # }}}
 
index 4a16ef32c70db4c7f188e8790be78e285cfdf55e..3f9c4867256ab0f9aa9f23bd1026f9594ee27a39 100644 (file)
@@ -89,7 +89,7 @@ sub preprocess_toggleable (@) { #{{{
        # Preprocess the text to expand any preprocessor directives
        # embedded inside it.
        $params{text}=IkiWiki::preprocess($params{page}, $params{destpage}, 
-               IkiWiki::filter($params{page}, $params{text}));
+               IkiWiki::filter($params{page}, $params{destpage}, $params{text}));
        
        my $id=genid($params{page}, $params{id});
 
index 92993fd95faf4003961062d9773f7f21d16526a1..ef4d1123505ae8f456691899d0cab50460b03c9b 100644 (file)
@@ -159,7 +159,7 @@ sub scan ($) { #{{{
 
                # Always needs to be done, since filters might add links
                # to the content.
-               $content=filter($page, $content);
+               $content=filter($page, $page, $content);
 
                my @links;
                while ($content =~ /(?<!\\)$config{wiki_link_regexp}/g) {
@@ -186,15 +186,15 @@ sub render ($) { #{{{
        my $type=pagetype($file);
        my $srcfile=srcfile($file);
        if (defined $type) {
-               my $content=readfile($srcfile);
                my $page=pagename($file);
                delete $depends{$page};
                will_render($page, htmlpage($page), 1);
                
-               $content=filter($page, $content);
-               $content=preprocess($page, $page, $content);
-               $content=linkify($page, $page, $content);
-               $content=htmlize($page, $type, $content);
+               my $content=htmlize($page, $type,
+                       linkify($page, $page,
+                       preprocess($page, $page,
+                       filter($page, $page,
+                       readfile($srcfile)))));
                
                writefile(htmlpage($page), $config{destdir},
                        genpage($page, $content, mtime($srcfile)));
@@ -454,7 +454,7 @@ sub commandline_render () { #{{{
        my $content=readfile($srcfile);
        my $page=pagename($file);
        $pagesources{$page}=$file;
-       $content=filter($page, $content);
+       $content=filter($page, $page, $content);
        $content=preprocess($page, $page, $content);
        $content=linkify($page, $page, $content);
        $content=htmlize($page, $type, $content);
index 83cb6b40fa252d08bb685dcf5d7deabb6533b2bf..aa8effe0e32dcd07e382dca647615de78e29caea 100644 (file)
@@ -36,8 +36,11 @@ ikiwiki (2.1) UNRELEASED; urgency=low
     - If the password is empty in preferences, don't clear the existing
       password.
     - Actually check the confirm password field, even if it's left empty.
+  * Add a destpage parameter to the filter hook.
+  * Fix links to smilies generated by the smiley plugin for inlined pages. The
+    old links were often wrong, but often still worked by accident.
 
- -- Joey Hess <joeyh@debian.org>  Thu, 17 May 2007 04:02:04 -0400
+ -- Joey Hess <joeyh@debian.org>  Thu, 17 May 2007 15:14:42 -0400
 
 ikiwiki (2.00) unstable; urgency=low
 
index ff607cbb361e9e82422d94d095029c0d04a18c8b..ba5f90867ade643fb7ca579c9e2f65a58f01e7f5 100644 (file)
@@ -1,3 +1,6 @@
 RSS output contains relative links. Ie. 
 http://kitenet.net/~joey/blog/index.rss contains a link to 
 http://kitenet.net/~joey/blog/../blog.html
+
+> I think I've fixed the last of these, but not 100% sure. Calling it
+> [[done]] for now. --[[Joey]]
index 9d85d4a9f04d602ee1a61994ca54468dd06d2999..6593ab018573db50e7f275263e12ba3a824312f9 100644 (file)
@@ -76,8 +76,8 @@ adding or removing files from it.
        hook(type => "filter", id => "foo", call => \&filter);
 
 Runs on the raw source of a page, before anything else touches it, and can
-make arbitrary changes. The function is passed named parameters `page` and
-`content` and should return the filtered content.
+make arbitrary changes. The function is passed named parameters "page",
+"destpage", and "content". It should return the filtered content.
 
 ### preprocess