* Polygen plugin from Enrico.
--- /dev/null
+#!/usr/bin/perl
+#
+# Include polygen output in a page
+#
+# by Enrico Zini
+package IkiWiki::Plugin::polygen;
+
+use warnings;
+use strict;
+use IkiWiki;
+use File::Find;
+
+sub import { #{{{
+ IkiWiki::hook(type => "preprocess", id => "polygen",
+ call => \&preprocess);
+} # }}}
+
+sub preprocess (@) { #{{{
+ my %params=@_;
+ my $grammar = ($params{grammar} or 'polygen');
+ my $symbol = ($params{symbol} or undef);
+
+ # Sanitize parameters
+ $grammar =~ IkiWiki::basename($grammar);
+ $grammar =~ s/\.grm$//;
+ $grammar .= '.grm';
+ $symbol =~ s/[^A-Za-z0-9]//g if defined $symbol;
+
+ my $grmfile = '/usr/share/polygen/ita/polygen.grm';
+ find({wanted => sub {
+ if (substr($File::Find::name, -length($grammar)) eq $grammar) {
+ $grmfile = IkiWiki::possibly_foolish_untaint($File::Find::name);
+ }
+ },
+ no_chdir => 1,
+ }, '/usr/share/polygen');
+
+ my $res;
+ if (defined $symbol) {
+ $res = `polygen -S $symbol $grmfile 2>/dev/null`;
+ }
+ else {
+ $res = `polygen $grmfile 2>/dev/null`;
+ }
+
+ if ($?) {
+ $res="[[polygen failed]]";
+ }
+
+ # Strip trainling spaces and newlines so that we flow well with the
+ # markdown text
+ $res =~ s/\s*$//;
+ return $res;
+} # }}}
+
+1
--exclude=/discussion --no-discussion \
--plugin=brokenlinks --plugin=pagecount \
--plugin=orphans --plugin=haiku --plugin=meta \
- --plugin=tag
+ --plugin=tag --plugin=polygen --plugin=pagestats
./mdwn2man ikiwiki 1 doc/usage.mdwn > ikiwiki.man
./mdwn2man ikiwiki-mass-rebuild 8 doc/ikiwiki-mass-rebuild.mdwn > ikiwiki-mass-rebuild.man
ikiwiki (1.13) UNRELEASED; urgency=low
+ "Viva l'Italia!"
* New pagestats plugin from Enrico, which can generate a table counting
the backlinks for each page, or a del.icio.us style cloud.
* Build-depend on libtext-wikiformat-perl, so that the syntax check of
display, running them through pagetitle. This removes ugly underscores and
other gunk from the display, much nicer. You may want to rebuild your wiki
when upgrading to get the cleanup globally.
+ * Polygen plugin from Enrico.
-- Joey Hess <joeyh@debian.org> Sat, 29 Jul 2006 14:22:18 -0400
\[[pagestats style="table"]]
-This plugin is included in ikiwiki, but is not enabled by default.
+This plugin is included in ikiwiki, but is not enabled by default. If it is
+enabled, here's a link cloud for this entire wiki:
+[[pagestats ]]
--- /dev/null
+This plugin allows inserting text generated by polygen into a wiki page.
+For example:
+
+ \[[polygen grammar="genius"]]
+
+It's also possible to specify a starting nonterminal for the grammar by
+including `symbol="text"` in the directive.
+
+This plugin is included in ikiwiki, but not enabled by default.
+
+If this plugin is enabled, and polygen is installed, here are a few notes
+about ikiwiki.
+
+----
+
+Ikiwiki is internally based on a [[polygen grammar="designpatterns"]]
+coupled to a [[polygen grammar="designpatterns"]], as described in
+"[[polygen grammar="paper2"]]" by [[polygen grammar="nipponame"]] of
+[[polygen grammar="boyband"]].
+
+Ikiwiki reviews:
+<ul>
+<li>[[polygen grammar="reviews"]]</li>
+<li>[[polygen grammar="reviews"]]</li>
+<li>[[polygen grammar="reviews"]]</li>
+</ul>