Moved the postscan hook to run on the raw html of a page, before the template is filled out. This improves the search plugin's indexing, since it will not include navigational elements from the page template or sidebar.
parent
19ff6180a8
commit
66b46576ec
|
@ -61,6 +61,10 @@ sub backlinks ($) {
|
|||
sub genpage ($$) {
|
||||
my $page=shift;
|
||||
my $content=shift;
|
||||
|
||||
run_hooks(postscan => sub {
|
||||
shift->(page => $page, content => $content);
|
||||
});
|
||||
|
||||
my $templatefile;
|
||||
run_hooks(templatefile => sub {
|
||||
|
@ -130,10 +134,6 @@ sub genpage ($$) {
|
|||
|
||||
$content=$template->output;
|
||||
|
||||
run_hooks(postscan => sub {
|
||||
shift->(page => $page, content => $content);
|
||||
});
|
||||
|
||||
run_hooks(format => sub {
|
||||
$content=shift->(
|
||||
page => $page,
|
||||
|
|
|
@ -4,6 +4,10 @@ ikiwiki (3.20091032) UNRELEASED; urgency=low
|
|||
references.
|
||||
* underlay: Avoid crashing if lists of underlays (or template
|
||||
directories) are not configured.
|
||||
* Moved the postscan hook to run on the raw html of a page, before
|
||||
the template is filled out. This improves the search plugin's indexing,
|
||||
since it will not include navigational elements from the page template
|
||||
or sidebar.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Fri, 06 Nov 2009 12:04:29 -0500
|
||||
|
||||
|
|
|
@ -7,3 +7,16 @@ A way to name some CSS ids that should be removed in search results within the i
|
|||
http://leaf.dragonflybsd.org/mailarchive/users/2009-11/msg00077.html
|
||||
|
||||
(bin attachment on that page is actually a .diff.)
|
||||
|
||||
> So I was looking at this and I relized that while the search plugin used
|
||||
> to use the format hook, and so there was no way to avoid it seeing all
|
||||
> the gunk around the page body, it was changed a while ago for different
|
||||
> reasons to use its own hook, postscan. So there's really no reason not
|
||||
> to move postscan so it runs before said gunk is added to the page.
|
||||
> (Aside from a small risk of breaking other third-party plugins that
|
||||
> somehow use postscan.)
|
||||
>
|
||||
> I've implemented that in git, and it drops the navigation elements nicely.
|
||||
> It's perhaps less general than allowing specific divs to be skipped from
|
||||
> search, but it seems good enough. Please thank the dragonfly guys for their
|
||||
> work on this. [[done]] --[[Joey]]
|
||||
|
|
|
@ -201,6 +201,17 @@ like `Makefile` that have no extension.
|
|||
If `hook` is passed an optional "longname" parameter, this value is used
|
||||
when prompting a user to choose a page type on the edit page form.
|
||||
|
||||
### postscan
|
||||
|
||||
hook(type => "postscan", id => "foo", call => \&postscan);
|
||||
|
||||
This hook is called once the page has been converted to html (but before
|
||||
the generated html is put in a template). 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.
|
||||
|
||||
### pagetemplate
|
||||
|
||||
hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
|
||||
|
@ -237,17 +248,6 @@ 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