haiku plugin

master
joey 2006-05-05 04:15:47 +00:00
parent f924740b93
commit a59b1ac8d8
5 changed files with 73 additions and 3 deletions

View File

@ -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

View File

@ -15,7 +15,8 @@ extra_build:
./ikiwiki doc html --templatedir=templates --underlaydir=basewiki \ ./ikiwiki doc html --templatedir=templates --underlaydir=basewiki \
--wikiname="ikiwiki" --verbose --no-rcs \ --wikiname="ikiwiki" --verbose --no-rcs \
--exclude=/discussion --plugin=brokenlinks \ --exclude=/discussion --plugin=brokenlinks \
--plugin=pagecount --plugin=orphans --plugin=pagecount --plugin=orphans \
--plugin=haiku
./mdwn2man doc/usage.mdwn > ikiwiki.man ./mdwn2man doc/usage.mdwn > ikiwiki.man
extra_clean: extra_clean:

2
debian/changelog vendored
View File

@ -44,7 +44,7 @@ ikiwiki (1.1) UNRELEASED; urgency=low
* Allow links of the form [[some page|page]], with whitespace in the link * Allow links of the form [[some page|page]], with whitespace in the link
text. text.
-- Joey Hess <joeyh@debian.org> Thu, 4 May 2006 14:46:46 -0400 -- Joey Hess <joeyh@debian.org> Fri, 5 May 2006 00:14:53 -0400
ikiwiki (1.0) unstable; urgency=low ikiwiki (1.0) unstable; urgency=low

View File

@ -2,7 +2,8 @@ There's documentation if you want to [[write]] your own plugins, or you can inst
The ikiwiki package includes some standard plugins that are installed and The ikiwiki package includes some standard plugins that are installed and
by default. These include [[inline]], [[pagecount]], [[brokenlinks]], by default. These include [[inline]], [[pagecount]], [[brokenlinks]],
[[smiley]], and [[search]]. Of these, [[inline]] is enabled by default. [[search]], [[smiley]], and even [[haiku]].
Of these, [[inline]] is enabled by default.
To enable other plugins, use the `--plugin` switch described in [[usage]], To enable other plugins, use the `--plugin` switch described in [[usage]],
or the equivalent line in [[ikiwiki.setup]]. or the equivalent line in [[ikiwiki.setup]].

View File

@ -0,0 +1,14 @@
This plugin allows inserting a randomly generated haiku into a wiki page.
Just type \\[[haiku hint="argument with a bear"]].
[[haiku hint="argument with a bear"]]
The hint parameter can be omitted, it only provides the generator a hint at
what to write the haiku about. If no hint is given, it might base it on the
page name. Since the vocabulary it knows is very small, many hints won't
affect the result at all.
This plugin is included in ikiwiki, but is not enabled by default.
You need to have the Coy module installed for this plugin to do anything
interesting. That does all the heavy lifting.