X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/a59b1ac8d8eb220fd4f574af4a8a6742825aac6f..5d3f7877299942cbec4fde6054761635d90a089a:/IkiWiki/Plugin/haiku.pm diff --git a/IkiWiki/Plugin/haiku.pm b/IkiWiki/Plugin/haiku.pm index 0e93e9d8d..bf23dce67 100644 --- a/IkiWiki/Plugin/haiku.pm +++ b/IkiWiki/Plugin/haiku.pm @@ -4,19 +4,28 @@ 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 ($@ || ! Coy->can("Coy::with_haiku")) { my @canned=( "The lack of a Coy: No darting, subtle haiku. @@ -35,20 +44,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/
\n/mg; + $haiku=~s/\n/
\n/mg; - return $haiku -} # }}} + return "\n\n

$haiku

\n\n"; +} 1