X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/a59b1ac8d8eb220fd4f574af4a8a6742825aac6f..e54ec757d01fd77001fc5efe1942bdeea8ee468f:/IkiWiki/Plugin/haiku.pm diff --git a/IkiWiki/Plugin/haiku.pm b/IkiWiki/Plugin/haiku.pm index 0e93e9d8d..eb8b786e8 100644 --- a/IkiWiki/Plugin/haiku.pm +++ b/IkiWiki/Plugin/haiku.pm @@ -4,19 +4,27 @@ 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 => "getsetup", id => "haiku", call => \&getsetup); + hook(type => "preprocess", id => "haiku", call => \&preprocess); } # }}} +sub getsetup { #{{{ + return + plugin => { + safe => 1, + rebuild => undef, + }, +} #}}} + 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 +43,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