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 { #{{{
|
sub import { #{{{
|
||||||
hook(type => "checkconfig", id => "search", call => \&checkconfig);
|
hook(type => "checkconfig", id => "search", call => \&checkconfig);
|
||||||
hook(type => "pagetemplate", id => "search", call => \&pagetemplate);
|
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 => "delete", id => "search", call => \&delete);
|
||||||
hook(type => "cgi", id => "search", call => \&cgi);
|
hook(type => "cgi", id => "search", call => \&cgi);
|
||||||
} # }}}
|
} # }}}
|
||||||
|
@ -49,8 +49,6 @@ my $stemmer;
|
||||||
sub index (@) { #{{{
|
sub index (@) { #{{{
|
||||||
my %params=@_;
|
my %params=@_;
|
||||||
|
|
||||||
return $params{content} if $IkiWiki::preprocessing{$params{destpage}};
|
|
||||||
|
|
||||||
setupfiles();
|
setupfiles();
|
||||||
|
|
||||||
# A unique pageterm is used to identify the document for a page.
|
# A unique pageterm is used to identify the document for a page.
|
||||||
|
@ -132,8 +130,6 @@ sub index (@) { #{{{
|
||||||
|
|
||||||
$doc->add_term($pageterm);
|
$doc->add_term($pageterm);
|
||||||
$db->replace_document_by_term($pageterm, $doc);
|
$db->replace_document_by_term($pageterm, $doc);
|
||||||
|
|
||||||
return $params{content};
|
|
||||||
} #}}}
|
} #}}}
|
||||||
|
|
||||||
sub delete (@) { #{{{
|
sub delete (@) { #{{{
|
||||||
|
|
|
@ -18,6 +18,7 @@ sub import { #{{{
|
||||||
hook(type => "scan", id => "skeleton", call => \&scan);
|
hook(type => "scan", id => "skeleton", call => \&scan);
|
||||||
hook(type => "htmlize", id => "skeleton", call => \&htmlize);
|
hook(type => "htmlize", id => "skeleton", call => \&htmlize);
|
||||||
hook(type => "sanitize", id => "skeleton", call => \&sanitize);
|
hook(type => "sanitize", id => "skeleton", call => \&sanitize);
|
||||||
|
hook(type => "postscan", id => "skeleton", call => \&postscan);
|
||||||
hook(type => "format", id => "skeleton", call => \&format);
|
hook(type => "format", id => "skeleton", call => \&format);
|
||||||
hook(type => "pagetemplate", id => "skeleton", call => \&pagetemplate);
|
hook(type => "pagetemplate", id => "skeleton", call => \&pagetemplate);
|
||||||
hook(type => "templatefile", id => "skeleton", call => \&templatefile);
|
hook(type => "templatefile", id => "skeleton", call => \&templatefile);
|
||||||
|
@ -89,6 +90,12 @@ sub sanitize (@) { #{{{
|
||||||
return $params{content};
|
return $params{content};
|
||||||
} # }}}
|
} # }}}
|
||||||
|
|
||||||
|
sub postscan (@) { #{{{
|
||||||
|
my %params=@_;
|
||||||
|
|
||||||
|
debug("skeleton plugin running as postscan");
|
||||||
|
} # }}}
|
||||||
|
|
||||||
sub format (@) { #{{{
|
sub format (@) { #{{{
|
||||||
my %params=@_;
|
my %params=@_;
|
||||||
|
|
||||||
|
|
|
@ -118,6 +118,10 @@ sub genpage ($$) { #{{{
|
||||||
|
|
||||||
$content=$template->output;
|
$content=$template->output;
|
||||||
|
|
||||||
|
run_hooks(postscan => sub {
|
||||||
|
shift->(page => $page, content => $content);
|
||||||
|
});
|
||||||
|
|
||||||
run_hooks(format => sub {
|
run_hooks(format => sub {
|
||||||
$content=shift->(
|
$content=shift->(
|
||||||
page => $page,
|
page => $page,
|
||||||
|
|
|
@ -26,6 +26,8 @@ ikiwiki (2.54) UNRELEASED; urgency=low
|
||||||
* smileys: Some fixes for escaped smileys.
|
* smileys: Some fixes for escaped smileys.
|
||||||
* smileys: Note that smileys need to be double-escaped for the escaping to
|
* smileys: Note that smileys need to be double-escaped for the escaping to
|
||||||
work. Markdown removes one level of escaping.
|
work. Markdown removes one level of escaping.
|
||||||
|
* Add a postscan hook.
|
||||||
|
* search: Use postscan hook, avoid updating index when previewing.
|
||||||
|
|
||||||
[ Simon McVittie ]
|
[ Simon McVittie ]
|
||||||
* meta, inline: Support guid options, to allow forcing a particular url or
|
* 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
|
Making the indexing only happen on a real commit might also speed the
|
||||||
Preview up a small amount.
|
Preview up a small amount.
|
||||||
--Chapman Flack
|
--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",
|
The function is passed named parameters: "page", "destpage", and "content",
|
||||||
and should return the sanitized 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
|
### format
|
||||||
|
|
||||||
hook(type => "format", id => "foo", call => \&format);
|
hook(type => "format", id => "foo", call => \&format);
|
||||||
|
|
Loading…
Reference in New Issue