Photos
Blog
Projects
vanrenterghem.biz
projects
/
git.ikiwiki.info.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add news item for ikiwiki 3.20101129
[git.ikiwiki.info.git]
/
IkiWiki
/
Plugin
/
polygen.pm
diff --git
a/IkiWiki/Plugin/polygen.pm
b/IkiWiki/Plugin/polygen.pm
index c148891672ebc54cfc6196b1143d26725c95974e..78e3611e1c1aa9a592ff6f156d3b796a01b9a5bd 100644
(file)
--- a/
IkiWiki/Plugin/polygen.pm
+++ b/
IkiWiki/Plugin/polygen.pm
@@
-7,26
+7,40
@@
package IkiWiki::Plugin::polygen;
use warnings;
use strict;
use warnings;
use strict;
-use IkiWiki;
+use IkiWiki
3.00
;
use File::Find;
use File::Find;
-sub import {
#{{{
- IkiWiki::hook(type => "preprocess", id => "polygen",
-
call => \&preprocess);
-}
# }}}
+sub import {
+ hook(type => "getsetup", id => "polygen", call => \&getsetup);
+
hook(type => "preprocess", id => "polygen",
call => \&preprocess);
+}
-sub preprocess (@) { #{{{
+sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ rebuild => undef,
+ section => "widget",
+ },
+}
+
+sub preprocess (@) {
my %params=@_;
my $grammar = ($params{grammar} or 'polygen');
my $symbol = ($params{symbol} or undef);
# Sanitize parameters
$grammar =~ IkiWiki::basename($grammar);
my %params=@_;
my $grammar = ($params{grammar} or 'polygen');
my $symbol = ($params{symbol} or undef);
# Sanitize parameters
$grammar =~ IkiWiki::basename($grammar);
+ $grammar =~ s/[^A-Za-z0-9]//g;
$grammar =~ s/\.grm$//;
$grammar .= '.grm';
$symbol =~ s/[^A-Za-z0-9]//g if defined $symbol;
$grammar =~ s/\.grm$//;
$grammar .= '.grm';
$symbol =~ s/[^A-Za-z0-9]//g if defined $symbol;
+ $symbol = IkiWiki::possibly_foolish_untaint($symbol) if defined $symbol;
my $grmfile = '/usr/share/polygen/ita/polygen.grm';
my $grmfile = '/usr/share/polygen/ita/polygen.grm';
+ if (! -d '/usr/share/polygen') {
+ error gettext("polygen not installed");
+ }
find({wanted => sub {
if (substr($File::Find::name, -length($grammar)) eq $grammar) {
$grmfile = IkiWiki::possibly_foolish_untaint($File::Find::name);
find({wanted => sub {
if (substr($File::Find::name, -length($grammar)) eq $grammar) {
$grmfile = IkiWiki::possibly_foolish_untaint($File::Find::name);
@@
-44,13
+58,13
@@
sub preprocess (@) { #{{{
}
if ($?) {
}
if ($?) {
-
$res="[[polygen failed]]"
;
+
error gettext("command failed")
;
}
}
- # Strip trai
n
ling spaces and newlines so that we flow well with the
+ # Strip trailing spaces and newlines so that we flow well with the
# markdown text
$res =~ s/\s*$//;
return $res;
# markdown text
$res =~ s/\s*$//;
return $res;
-}
# }}}
+}
1
1