]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/skeleton.pm
* Add getopt hook type, this allows plugins to add new command-line options.
[ikiwiki.git] / IkiWiki / Plugin / skeleton.pm
index e8d3db0cc6fc7f17cf5ac1b671697d67fde0667b..27da50e6fba80fe7c998dbbcb7b4265c56f42a76 100644 (file)
@@ -1,19 +1,98 @@
 #!/usr/bin/perl
 # Ikiwiki skeleton plugin. Replace "skeleton" with the name of your plugin
 #!/usr/bin/perl
 # Ikiwiki skeleton plugin. Replace "skeleton" with the name of your plugin
-# in the lines below, and flesh out the methods to make it do something.
+# in the lines below, remove hooks you don't use, and flesh out the code to
+# make it do something.
 package IkiWiki::Plugin::skeleton;
 
 use warnings;
 use strict;
 package IkiWiki::Plugin::skeleton;
 
 use warnings;
 use strict;
+use IkiWiki;
 
 sub import { #{{{
 
 sub import { #{{{
-       IkiWiki::register_plugin("preprocess", "skeleton", \&preprocess);
+       IkiWiki::hook(type => "getopt", id => "skeleton", 
+               call => \&getopt);
+       IkiWiki::hook(type => "checkconfig", id => "skeleton", 
+               call => \&checkconfig);
+       IkiWiki::hook(type => "preprocess", id => "skeleton", 
+               call => \&preprocess);
+       IkiWiki::hook(type => "filter", id => "skeleton", 
+               call => \&filter);
+       IkiWiki::hook(type => "htmlize", id => "skeleton",
+               call => \&htmlize);
+       IkiWiki::hook(type => "sanitize", id => "skeleton", 
+               call => \&sanitize);
+       IkiWiki::hook(type => "pagetemplate", id => "skeleton", 
+               call => \&pagetemplate);
+       IkiWiki::hook(type => "delete", id => "skeleton", 
+               call => \&delete);
+       IkiWiki::hook(type => "change", id => "skeleton", 
+               call => \&change);
+       IkiWiki::hook(type => "cgi", id => "skeleton", 
+               call => \&cgi);
 } # }}}
 
 } # }}}
 
+sub getopt () { #{{{
+       IkiWiki::debug("skeleton plugin getopt");
+} #}}}
+
+sub checkconfig () { #{{{
+       IkiWiki::debug("skeleton plugin checkconfig");
+} #}}}
+
 sub preprocess (@) { #{{{
        my %params=@_;
 
        return "skeleton plugin result";
 } # }}}
 
 sub preprocess (@) { #{{{
        my %params=@_;
 
        return "skeleton plugin result";
 } # }}}
 
+sub filter (@) { #{{{
+       my %params=@_;
+       
+       IkiWiki::debug("skeleton plugin running as filter");
+
+       return $params{content};
+} # }}}
+
+sub htmlize ($) { #{{{
+       my $content=shift;
+
+       IkiWiki::debug("skeleton plugin running as htmlize");
+
+       return $content;
+} # }}}
+
+sub sanitize ($) { #{{{
+       my $content=shift;
+       
+       IkiWiki::debug("skeleton plugin running as a sanitizer");
+
+       return $content;
+} # }}}
+
+sub pagetemplate (@) { #{{{
+       my %params=@_;
+       my $page=$params{page};
+       my $template=$params{template};
+       
+       IkiWiki::debug("skeleton plugin running as a pagetemplate hook");
+} # }}}
+
+sub delete (@) { #{{{
+       my @files=@_;
+
+       IkiWiki::debug("skeleton plugin told that files were deleted: @files");
+} #}}}
+
+sub change (@) { #{{{
+       my @files=@_;
+
+       IkiWiki::debug("skeleton plugin told that changed files were rendered: @files");
+} #}}}
+
+sub cgi ($) { #{{{
+       my $cgi=shift;
+
+       IkiWiki::debug("skeleton plugin running in cgi");
+} #}}}
+
 1
 1