Merge branch 'master' into autoconfig
[ikiwiki] / IkiWiki / Plugin / skeleton.pm.example
1 #!/usr/bin/perl
2 # Ikiwiki skeleton plugin. Replace "skeleton" with the name of your plugin
3 # in the lines below, remove hooks you don't use, and flesh out the code to
4 # make it do something.
5 package IkiWiki::Plugin::skeleton;
6
7 use warnings;
8 use strict;
9 use IkiWiki 2.00;
10
11 sub import { #{{{
12         hook(type => "getopt", id => "skeleton",  call => \&getopt);
13         hook(type => "getsetup", id => "skeleton",  call => \&getsetup);
14         hook(type => "checkconfig", id => "skeleton", call => \&checkconfig);
15         hook(type => "needsbuild", id => "skeleton", call => \&needsbuild);
16         hook(type => "preprocess", id => "skeleton", call => \&preprocess);
17         hook(type => "filter", id => "skeleton", call => \&filter);
18         hook(type => "linkify", id => "skeleton", call => \&linkify);
19         hook(type => "scan", id => "skeleton", call => \&scan);
20         hook(type => "htmlize", id => "skeleton", call => \&htmlize);
21         hook(type => "sanitize", id => "skeleton", call => \&sanitize);
22         hook(type => "postscan", id => "skeleton", call => \&postscan);
23         hook(type => "format", id => "skeleton", call => \&format);
24         hook(type => "pagetemplate", id => "skeleton", call => \&pagetemplate);
25         hook(type => "templatefile", id => "skeleton", call => \&templatefile);
26         hook(type => "delete", id => "skeleton", call => \&delete);
27         hook(type => "change", id => "skeleton", call => \&change);
28         hook(type => "cgi", id => "skeleton", call => \&cgi);
29         hook(type => "auth", id => "skeleton", call => \&auth);
30         hook(type => "sessioncgi", id => "skeleton", call => \&sessioncgi);
31         hook(type => "canedit", id => "skeleton", call => \&canedit);
32         hook(type => "editcontent", id => "skeleton", call => \&editcontent);
33         hook(type => "formbuilder_setup", id => "skeleton", call => \&formbuilder_setup);
34         hook(type => "formbuilder", id => "skeleton", call => \&formbuilder);
35         hook(type => "savestate", id => "skeleton", call => \&savestate);
36 } # }}}
37
38 sub getopt () { #{{{
39         debug("skeleton plugin getopt");
40 } #}}}
41
42 sub getsetup () { #{{{
43         return
44                 skeleton => {
45                         type => "boolean",
46                         example => 0,
47                         description => "example option",
48                         safe => 0,
49                         rebuild => 0,
50                 },
51 } #}}}
52
53 sub checkconfig () { #{{{
54         debug("skeleton plugin checkconfig");
55 } #}}}
56
57 sub needsbuild () { #{{{
58         debug("skeleton plugin needsbuild");
59 } #}}}
60
61 sub preprocess (@) { #{{{
62         my %params=@_;
63
64         return "skeleton plugin result";
65 } # }}}
66
67 sub filter (@) { #{{{
68         my %params=@_;
69         
70         debug("skeleton plugin running as filter");
71
72         return $params{content};
73 } # }}}
74
75 sub linkify (@) { #{{{
76         my %params=@_;
77         
78         debug("skeleton plugin running as linkify");
79
80         return $params{content};
81 } # }}}
82
83 sub scan (@) { #{{{a
84         my %params=@_;
85
86         debug("skeleton plugin running as scan");
87 } # }}}
88
89 sub htmlize (@) { #{{{
90         my %params=@_;
91
92         debug("skeleton plugin running as htmlize");
93
94         return $params{content};
95 } # }}}
96
97 sub sanitize (@) { #{{{
98         my %params=@_;
99         
100         debug("skeleton plugin running as a sanitizer");
101
102         return $params{content};
103 } # }}}
104
105 sub postscan (@) { #{{{
106         my %params=@_;
107         
108         debug("skeleton plugin running as postscan");
109 } # }}}
110
111 sub format (@) { #{{{
112         my %params=@_;
113         
114         debug("skeleton plugin running as a formatter");
115
116         return $params{content};
117 } # }}}
118
119 sub pagetemplate (@) { #{{{
120         my %params=@_;
121         my $page=$params{page};
122         my $template=$params{template};
123         
124         debug("skeleton plugin running as a pagetemplate hook");
125 } # }}}
126
127 sub templatefile (@) { #{{{
128         my %params=@_;
129         my $page=$params{page};
130         
131         debug("skeleton plugin running as a templatefile hook");
132 } # }}}
133
134 sub delete (@) { #{{{
135         my @files=@_;
136
137         debug("skeleton plugin told that files were deleted: @files");
138 } #}}}
139
140 sub change (@) { #{{{
141         my @files=@_;
142
143         debug("skeleton plugin told that changed files were rendered: @files");
144 } #}}}
145
146 sub cgi ($) { #{{{
147         my $cgi=shift;
148
149         debug("skeleton plugin running in cgi");
150 } #}}}
151
152 sub auth ($$) { #{{{
153         my $cgi=shift;
154         my $session=shift;
155
156         debug("skeleton plugin running in auth");
157 } #}}}
158
159 sub sessionncgi ($$) { #{{{
160         my $cgi=shift;
161         my $session=shift;
162
163         debug("skeleton plugin running in sessioncgi");
164 } #}}}
165
166 sub canedit ($$$) { #{{{
167         my $page=shift;
168         my $cgi=shift;
169         my $session=shift;
170
171         debug("skeleton plugin running in canedit");
172 } #}}}
173
174 sub editcontent ($$$) { #{{{
175         my %params=@_;
176
177         debug("skeleton plugin running in editcontent");
178
179         return $params{content};
180 } #}}}
181
182 sub formbuilder_setup (@) { #{{{
183         my %params=@_;
184         
185         debug("skeleton plugin running in formbuilder_setup");
186 } # }}}
187
188 sub formbuilder (@) { #{{{
189         my %params=@_;
190         
191         debug("skeleton plugin running in formbuilder");
192 } # }}}
193
194 sub savestate () { #{{{
195         debug("skeleton plugin running in savestate");
196 } #}}}
197
198 1