From: Joey Hess <joey@kitenet.net>
Date: Fri, 7 May 2010 03:20:48 +0000 (-0400)
Subject: inline: Call indexhtml when inlining internal pages, so their text can be indexed... 
X-Git-Tag: 3.20100515~75^2~9
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/ea4967f184bf0a27eaa2dc81da1084780756156a

inline: Call indexhtml when inlining internal pages, so their text can be indexed for searching.
---

diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 933e30646..715a3d652 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -476,6 +476,13 @@ sub get_inline_content ($$) {
 		       filter($page, $destpage,
 		       readfile(srcfile($file))))));
 		$nested--;
+		if (isinternal($page)) {
+			# make inlined text of internal pages searchable
+			run_hooks(indexhtml => sub {
+				shift->(page => $page, destpage => $page,
+					content => $ret);
+			});
+		}
 	}
 	
 	if ($cached_destpage ne $destpage) {
diff --git a/IkiWiki/Plugin/search.pm b/IkiWiki/Plugin/search.pm
index b1f4747fe..c578b44ab 100644
--- a/IkiWiki/Plugin/search.pm
+++ b/IkiWiki/Plugin/search.pm
@@ -10,7 +10,7 @@ sub import {
 	hook(type => "getsetup", id => "search", call => \&getsetup);
 	hook(type => "checkconfig", id => "search", call => \&checkconfig);
 	hook(type => "pagetemplate", id => "search", call => \&pagetemplate);
-	hook(type => "indexhtml", id => "search", call => \&index);
+	hook(type => "indexhtml", id => "search", call => \&indexhtml);
 	hook(type => "delete", id => "search", call => \&delete);
 	hook(type => "cgi", id => "search", call => \&cgi);
 }
@@ -68,7 +68,7 @@ sub pagetemplate (@) {
 
 my $scrubber;
 my $stemmer;
-sub index (@) {
+sub indexhtml (@) {
 	my %params=@_;
 
 	setupfiles();
@@ -117,7 +117,7 @@ sub index (@) {
 	eval q{use HTML::Entities};
 	error $@ if $@;
 	$doc->set_data(
-		"url=".urlto($params{page}, "")."\n".
+		"url=".urlto($params{destpage}, "")."\n".
 		"sample=".decode_entities($sample)."\n".
 		"caption=".decode_entities($caption)."\n".
 		"modtime=$IkiWiki::pagemtime{$params{page}}\n".
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index 30e3d4199..b0bd8dee0 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -63,7 +63,7 @@ sub genpage ($$) {
 	my $content=shift;
 	
 	run_hooks(indexhtml => sub {
-		shift->(page => $page, content => $content);
+		shift->(page => $page, destpage => $page, content => $content);
 	});
 
 	my $templatefile;
diff --git a/debian/changelog b/debian/changelog
index eb67c2bde..10a4912af 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,8 @@ ikiwiki (3.20100505) UNRELEASED; urgency=low
   * Gave comment and page editing forms some CSS and accessability love.
   * Renamed postscan hook to indexhtml, to reflect its changed position,
     and typical use.
+  * inline: Call indexhtml when inlining internal pages, so their
+    text can be indexed for searching.
 
  -- Joey Hess <joeyh@debian.org>  Wed, 05 May 2010 18:07:29 -0400
 
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index 7180237a4..193005565 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -290,8 +290,8 @@ 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.
+The function is passed named parameters "page", "destpage", and "content".
+Its return value is ignored.
 
 ### pagetemplate