X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/a59b1ac8d8eb220fd4f574af4a8a6742825aac6f..97e21ae21caa2418015ae512755e8078a0bc5ccf:/IkiWiki/Plugin/haiku.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/haiku.pm b/IkiWiki/Plugin/haiku.pm index 0e93e9d8d..5d5e8d5aa 100644 --- a/IkiWiki/Plugin/haiku.pm +++ b/IkiWiki/Plugin/haiku.pm @@ -4,11 +4,10 @@ package IkiWiki::Plugin::haiku; use warnings; use strict; -use IkiWiki; +use IkiWiki 2.00; sub import { #{{{ - IkiWiki::hook(type => "preprocess", id => "haiku", - call => \&preprocess); + hook(type => "preprocess", id => "haiku", call => \&preprocess); } # }}} sub preprocess (@) { #{{{ @@ -16,7 +15,7 @@ sub preprocess (@) { #{{{ 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 +34,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