]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/otl.pm
release candidate
[git.ikiwiki.info.git] / IkiWiki / Plugin / otl.pm
index b10d5e80724a315c5c277087f99aa0464d743c22..3801a6ec2417d225f3cf541a505ff79adedec8ef 100644 (file)
@@ -4,30 +4,33 @@ package IkiWiki::Plugin::otl;
 
 use warnings;
 use strict;
-use IkiWiki;
+use IkiWiki 3.00;
+use open qw{:utf8 :std};
 
-sub import { #{{{
-       IkiWiki::hook(type => "filter", id => "otl", call => \&filter);
-       IkiWiki::hook(type => "htmlize", id => "otl", call => \&htmlize);
+sub import {
+       hook(type => "getsetup", id => "otl", call => \&getsetup);
+       hook(type => "htmlize", id => "otl", call => \&htmlize);
+}
 
-} # }}}
+sub getsetup () {
+       return 
+               plugin => {
+                       safe => 1,
+                       rebuild => 1, # format plugin
+                       section => "format",
+               },
+}
 
-sub filter (@) { #{{{
+sub htmlize (@) {
        my %params=@_;
-        
-       # Munge up check boxes to look a little bit better. This is a hack.
-       my $checked=IkiWiki::htmllink($params{page}, $params{page},
-               "smileys/star_on.png", 0, 0, "[X]");
-       my $unchecked=IkiWiki::htmllink($params{page}, $params{page},
-               "smileys/star_off.png", 0, 0, "[_]");
+       
+       # Munge up check boxes to look a little bit better.
+       my $checked=htmllink($params{page}, $params{page},
+               "smileys/star_on.png", linktext => "[X]");
+       my $unchecked=htmllink($params{page}, $params{page},
+               "smileys/star_off.png", linktext => "[_]");
        $params{content}=~s/^(\s*)\[X\]\s/${1}$checked /mg;
        $params{content}=~s/^(\s*)\[_\]\s/${1}$unchecked /mg;
-        
-       return $params{content};
-} # }}}
-
-sub htmlize (@) { #{{{
-       my %params=@_;
 
        # Can't use open2 since otl2html doesn't play nice with buffering.
        # Instead, fork off a child process that will run otl2html and feed
@@ -40,7 +43,7 @@ sub htmlize (@) { #{{{
                unless (defined $pid) {
                        $tries--;
                        if ($tries < 1) {
-                               IkiWiki::debug("failed to fork: $@");
+                               debug("failed to fork: $@");
                                return $params{content};
                        }
                }
@@ -55,7 +58,7 @@ sub htmlize (@) { #{{{
                        unless (defined $pid) {
                                $tries--;
                                if ($tries < 1) {
-                                       IkiWiki::debug("failed to fork: $@");
+                                       debug("failed to fork: $@");
                                        print $params{content};
                                        exit;
                                }
@@ -64,7 +67,7 @@ sub htmlize (@) { #{{{
 
                if (! $pid) {
                        if (! exec 'otl2html', '-S', '/dev/null', '-T', '/dev/stdin') {
-                               IkiWiki::debug("failed to run otl2html: $@");
+                               debug("failed to run otl2html: $@");
                                print $params{content};
                                exit;
                        }
@@ -85,6 +88,6 @@ sub htmlize (@) { #{{{
        $ret=~s/<body>.*//s;
        $ret=~s/<div class="Footer">.*//s;
        return $ret;
-} # }}}
+}
 
 1