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 \
|
./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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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]].
|
||||||
|
|
|
@ -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