X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/a59b1ac8d8eb220fd4f574af4a8a6742825aac6f..049be436d084ec02aa76993098e453ac3928df43:/IkiWiki/Plugin/haiku.pm?ds=inline

diff --git a/IkiWiki/Plugin/haiku.pm b/IkiWiki/Plugin/haiku.pm
index 0e93e9d8d..7ce74696b 100644
--- a/IkiWiki/Plugin/haiku.pm
+++ b/IkiWiki/Plugin/haiku.pm
@@ -4,19 +4,34 @@ package IkiWiki::Plugin::haiku;
 
 use warnings;
 use strict;
-use IkiWiki;
+use IkiWiki 3.00;
 
-sub import { #{{{
-	IkiWiki::hook(type => "preprocess", id => "haiku",
-		call => \&preprocess);
-} # }}}
+sub import {
+	hook(type => "getsetup", id => "haiku", call => \&getsetup);
+	hook(type => "preprocess", id => "haiku", call => \&preprocess);
+}
 
-sub preprocess (@) { #{{{
+sub getsetup {
+	return
+		plugin => {
+			safe => 1,
+			rebuild => undef,
+			section => "widget",
+		},
+}
+
+sub preprocess (@) {
 	my %params=@_;
 
 	my $haiku;
 	eval q{use Coy};
-	if ($@) {
+	if ($config{deterministic}) {
+		$haiku = "Coy changes often.
+			  For deterministic builds
+			  try this substitute.
+			 ",
+	}
+	elsif ($@ || ! Coy->can("Coy::with_haiku")) {
 		my @canned=(
 			"The lack of a Coy:
 			 No darting, subtle haiku.
@@ -35,20 +50,17 @@ sub preprocess (@) { #{{{
 		$haiku=$canned[rand @canned];
 	}
 	else {
-		# Coy is rather strange, so the best way to get a haiku
-		# out of it is to die..
-		eval {die exists $params{hint} ? $params{hint} : $params{page}};
-		$haiku=$@;
-
+		$haiku=Coy::with_haiku($params{hint} ? $params{hint} : $params{page});
+		
 		# trim off other text
 		$haiku=~s/\s+-----\n//s;
 		$haiku=~s/\s+-----.*//s;
 	}
 		
 	$haiku=~s/^\s+//mg;
-	$haiku=~s/\n/<br>\n/mg;
+	$haiku=~s/\n/<br \/>\n/mg;
 	
-	return $haiku
-} # }}}
+	return "\n\n<blockquote><p>$haiku</p></blockquote>\n\n";
+}
 
 1