From a59b1ac8d8eb220fd4f574af4a8a6742825aac6f Mon Sep 17 00:00:00 2001 From: joey Date: Fri, 5 May 2006 04:15:47 +0000 Subject: haiku plugin --- IkiWiki/Plugin/haiku.pm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 IkiWiki/Plugin/haiku.pm (limited to 'IkiWiki') 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/
\n/mg; + + return $haiku +} # }}} + +1 -- cgit v1.2.3