Add a postscan hook.
* Add a postscan hook. * search: Use postscan hook, avoid updating index when previewing.master
parent
1b46f52043
commit
584f3e3061
|
@ -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);
|
||||
} # }}}
|
||||
|
@ -49,8 +49,6 @@ my $stemmer;
|
|||
sub index (@) { #{{{
|
||||
my %params=@_;
|
||||
|
||||
return $params{content} if $IkiWiki::preprocessing{$params{destpage}};
|
||||
|
||||
setupfiles();
|
||||
|
||||
# A unique pageterm is used to identify the document for a page.
|
||||
|
@ -132,8 +130,6 @@ sub index (@) { #{{{
|
|||
|
||||
$doc->add_term($pageterm);
|
||||
$db->replace_document_by_term($pageterm, $doc);
|
||||
|
||||
return $params{content};
|
||||
} #}}}
|
||||
|
||||
sub delete (@) { #{{{
|
||||
|
|
|
@ -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=@_;
|
||||
|
||||
|
|
|
@ -118,6 +118,10 @@ sub genpage ($$) { #{{{
|
|||
|
||||
$content=$template->output;
|
||||
|
||||
run_hooks(postscan => sub {
|
||||
shift->(page => $page, content => $content);
|
||||
});
|
||||
|
||||
run_hooks(format => sub {
|
||||
$content=shift->(
|
||||
page => $page,
|
||||
|
|
|
@ -26,6 +26,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.
|
||||
|
||||
[ Simon McVittie ]
|
||||
* meta, inline: Support guid options, to allow forcing a particular url or
|
||||
|
|
|
@ -15,3 +15,5 @@ the problem, of course.
|
|||
Making the indexing only happen on a real commit might also speed the
|
||||
Preview up a small amount.
|
||||
--Chapman Flack
|
||||
|
||||
[[tag done]]
|
||||
|
|
|
@ -216,6 +216,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);
|
||||
|
|
Loading…
Reference in New Issue