X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/14b49376dc03672f896e5f1df3945a718a39d5a0..ab89494797ef6e0045428d63251287bbc05fa63b:/IkiWiki/Plugin/search.pm?ds=inline

diff --git a/IkiWiki/Plugin/search.pm b/IkiWiki/Plugin/search.pm
index 393c17e0f..c0e8703d8 100644
--- a/IkiWiki/Plugin/search.pm
+++ b/IkiWiki/Plugin/search.pm
@@ -20,6 +20,7 @@ sub getsetup () {
 		plugin => {
 			safe => 1,
 			rebuild => 1,
+			section => "web",
 		},
 		omega_cgi => {
 			type => "string",
@@ -109,6 +110,7 @@ sub index (@) {
 	# data used by omega
 	# Decode html entities in it, since omega re-encodes them.
 	eval q{use HTML::Entities};
+	error $@ if $@;
 	$doc->set_data(
 		"url=".urlto($params{page}, "")."\n".
 		"sample=".decode_entities($sample)."\n".
@@ -213,9 +215,19 @@ sub setupfiles () {
 		writefile("omega.conf", $config{wikistatedir}."/xapian",
 			"database_dir .\n".
 			"template_dir ./templates\n");
+		
+		# Avoid omega interpreting anything in the misctemplate
+		# as an omegascript command.
+		my $misctemplate=IkiWiki::misctemplate(gettext("search"), "\0");
+		eval q{use HTML::Entities};
+		error $@ if $@;
+		$misctemplate=encode_entities($misctemplate, '\$');
+
+		my $querytemplate=readfile(IkiWiki::template_file("searchquery.tmpl"));
+		$misctemplate=~s/\0/$querytemplate/;
+
 		writefile("query", $config{wikistatedir}."/xapian/templates",
-			IkiWiki::misctemplate(gettext("search"),
-				readfile(IkiWiki::template_file("searchquery.tmpl"))));
+			$misctemplate);
 		$setup=1;
 	}
 }