diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-05-05 04:15:47 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-05-05 04:15:47 +0000 |
commit | a59b1ac8d8eb220fd4f574af4a8a6742825aac6f (patch) | |
tree | c895e6b18739ff3a22b75fc2817c7f62327fe4a0 /IkiWiki | |
parent | f924740b939c3f14072fb5c428468355d8c4be52 (diff) |
haiku plugin
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/Plugin/haiku.pm | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/haiku.pm b/IkiWiki/Plugin/haiku.pm new file mode 100644 index 000000000..0e93e9d8d --- /dev/null +++ b/IkiWiki/Plugin/haiku.pm @@ -0,0 +1,54 @@ +#!/usr/bin/perl +# haiku generator plugin +package IkiWiki::Plugin::haiku; + +use warnings; +use strict; +use IkiWiki; + +sub import { #{{{ + IkiWiki::hook(type => "preprocess", id => "haiku", + call => \&preprocess); +} # }}} + +sub preprocess (@) { #{{{ + my %params=@_; + + my $haiku; + eval q{use Coy}; + if ($@) { + my @canned=( + "The lack of a Coy: + No darting, subtle haiku. + Instead, canned tuna. + ", + "apt-get install Coy + no, wait, that's not quite it + instead: libcoy-perl + ", + "Coyly I'll do it, + no code, count Five-Seven-Five + to make a haiku. + ", + ); + + $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=$@; + + # trim off other text + $haiku=~s/\s+-----\n//s; + $haiku=~s/\s+-----.*//s; + } + + $haiku=~s/^\s+//mg; + $haiku=~s/\n/<br>\n/mg; + + return $haiku +} # }}} + +1 |