]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
Add a postscan hook.
authorJoey Hess <joey@kodama.kitenet.net>
Tue, 26 Aug 2008 16:30:35 +0000 (12:30 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Tue, 26 Aug 2008 16:30:35 +0000 (12:30 -0400)
* Add a postscan hook.
* search: Use postscan hook, avoid updating index when previewing.
(cherry picked from commit 584f3e3061e8983e4caa328d7bc16fdeba849654)

IkiWiki/Plugin/search.pm
IkiWiki/Plugin/skeleton.pm
IkiWiki/Render.pm
debian/changelog
doc/plugins/write.mdwn

index 284f477fae5b32f63f9c9159f06c4af84dea2acd..822b5974eca016a21043b1bf2aba92a3410ea8bc 100644 (file)
@@ -9,7 +9,7 @@ use IkiWiki 2.00;
 sub import { #{{{
        hook(type => "checkconfig", id => "search", call => \&checkconfig);
        hook(type => "pagetemplate", id => "search", call => \&pagetemplate);
-       hook(type => "sanitize", id => "search", call => \&index);
+       hook(type => "postscan", id => "search", call => \&index);
        hook(type => "delete", id => "search", call => \&delete);
        hook(type => "cgi", id => "search", call => \&cgi);
 } # }}}
@@ -48,8 +48,6 @@ my $scrubber;
 my $stemmer;
 sub index (@) { #{{{
        my %params=@_;
-       
-       return $params{content} if $IkiWiki::preprocessing{$params{destpage}};
 
        setupfiles();
 
@@ -132,8 +130,6 @@ sub index (@) { #{{{
 
        $doc->add_term($pageterm);
        $db->replace_document_by_term($pageterm, $doc);
-
-       return $params{content};
 } #}}}
 
 sub delete (@) { #{{{
index 17a2162ffc240728f17ec44f149e79c65597705d..1af8e4e9df3b0903cd1341327f606fd4599afcde 100644 (file)
@@ -18,6 +18,7 @@ sub import { #{{{
        hook(type => "scan", id => "skeleton", call => \&scan);
        hook(type => "htmlize", id => "skeleton", call => \&htmlize);
        hook(type => "sanitize", id => "skeleton", call => \&sanitize);
+       hook(type => "postscan", id => "skeleton", call => \&postscan);
        hook(type => "format", id => "skeleton", call => \&format);
        hook(type => "pagetemplate", id => "skeleton", call => \&pagetemplate);
        hook(type => "templatefile", id => "skeleton", call => \&templatefile);
@@ -89,6 +90,12 @@ sub sanitize (@) { #{{{
        return $params{content};
 } # }}}
 
+sub postscan (@) { #{{{
+       my %params=@_;
+       
+       debug("skeleton plugin running as postscan");
+} # }}}
+
 sub format (@) { #{{{
        my %params=@_;
        
index c241fd40b5beb7abff5901246930d978cb9476b5..e76dcef3dada747090d74865636f8c341c2ae3de 100644 (file)
@@ -135,6 +135,10 @@ sub genpage ($$) { #{{{
        });
        
        $content=$template->output;
+       
+       run_hooks(postscan => sub {
+               shift->(page => $page, content => $content);
+       });
 
        run_hooks(format => sub {
                $content=shift->(
index d36872efb3d728f014e88998a1f0f17c9b1ca958..d1706a77cc3c39698770e6631780839f71ec0fa2 100644 (file)
@@ -11,6 +11,8 @@ ikiwiki (2.54) UNRELEASED; urgency=low
   * smileys: Some fixes for escaped smileys.
   * smileys: Note that smileys need to be double-escaped for the escaping to
     work. Markdown removes one level of escaping.
+  * Add a postscan hook.
+  * search: Use postscan hook, avoid updating index when previewing.
 
  -- Josh Triplett <josh@freedesktop.org>  Wed, 09 Jul 2008 21:30:33 -0700
 
index 5def4c67967165f927ae696954c254e72f49221d..16fa4ae17a955027731fb5325c70ceed16fefc03 100644 (file)
@@ -214,6 +214,17 @@ modify the body of a page after it has been fully converted to html.
 The function is passed named parameters: "page", "destpage", and "content",
 and should return the sanitized content.
 
+### postscan
+
+       hook(type => "postscan", id => "foo", call => \&postscan);
+
+This hook is called once the full page body is available (but before the
+format hook). The most common use is to update search indexes. Added in
+ikiwiki 2.54.
+
+The function is passed named parameters "page" and "content". Its return
+value is ignored.
+
 ### format
 
        hook(type => "format", id => "foo", call => \&format);