haiku plugin
parent
f924740b93
commit
a59b1ac8d8
|
@ -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
|
|
@ -15,7 +15,8 @@ extra_build:
|
|||
./ikiwiki doc html --templatedir=templates --underlaydir=basewiki \
|
||||
--wikiname="ikiwiki" --verbose --no-rcs \
|
||||
--exclude=/discussion --plugin=brokenlinks \
|
||||
--plugin=pagecount --plugin=orphans
|
||||
--plugin=pagecount --plugin=orphans \
|
||||
--plugin=haiku
|
||||
./mdwn2man doc/usage.mdwn > ikiwiki.man
|
||||
|
||||
extra_clean:
|
||||
|
|
|
@ -44,7 +44,7 @@ ikiwiki (1.1) UNRELEASED; urgency=low
|
|||
* Allow links of the form [[some page|page]], with whitespace in the link
|
||||
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
|
||||
|
||||
|
|
|
@ -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
|
||||
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]],
|
||||
or the equivalent line in [[ikiwiki.setup]].
|
||||
|
|
|
@ -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.
|
Loading…
Reference in New Issue