]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/plugins/write.mdwn
web commit by joey
[ikiwiki.git] / doc / plugins / write.mdwn
index 04803f7778c9feb973203fb7838eeaf5aa1c672f..a4e800c5870cabbf1223ea7171dc1992949695db 100644 (file)
@@ -53,10 +53,9 @@ Beyond PreProcessorDirectives, Other types of hooks that can be used by plugins
 
 ### checkconfig
 
 
 ### checkconfig
 
-        IkiWiki::hook(type => "delete", id => "foo", call => \&checkconfig);
+        IkiWiki::hook(type => "checkconfig", id => "foo", call => \&checkconfig);
 
 
-This is useful if the plugin needs to check for, or modify ikiwiki's configuration. It's called early in the ikiwiki startup process. It's ok for
-the function to call IkiWiki::error if something isn't configured right.
+This is useful if the plugin needs to check for, or modify ikiwiki's configuration. It's called early in the ikiwiki startup process. The function is passed no values. It's ok for the function to call IkiWiki::error if something isn't configured right.
 
 ### delete
 
 
 ### delete
 
@@ -70,6 +69,13 @@ Each time a page or pages is removed from the wiki, the referenced function is c
 
 Each time ikiwiki renders a change or addition (but not deletion) of a page to the wiki, the referenced function is called, and passed the name of the source file that was rendered.
 
 
 Each time ikiwiki renders a change or addition (but not deletion) of a page to the wiki, the referenced function is called, and passed the name of the source file that was rendered.
 
+### cgi
+
+        IkiWiki::hook(type => "cgi", id => "foo", call => \&cgi);
+
+Use this to hook into ikiwiki's cgi script. Each registered cgi hook is called
+in turn, and passed a CGI object. The hook should examine the parameters, and if it will handle this CGI request, output a page and terminate the program.
+
 ## Wiki configuration
 
 A plugin can access the wiki's configuration via the `%IkiWiki::config` hash.
 ## Wiki configuration
 
 A plugin can access the wiki's configuration via the `%IkiWiki::config` hash.
@@ -96,12 +102,21 @@ use the following hashes, using a page name as the key:
   it is by using the IkiWiki::add_depends function, which takes as its
   parameters the page name and a [[GlobList]] of dependencies to add.
 
   it is by using the IkiWiki::add_depends function, which takes as its
   parameters the page name and a [[GlobList]] of dependencies to add.
 
+## Page templates
+
+Plugins are mostly limited to changing the content of pages, to change the look and feel of the wiki it's generally better to use a stylesheet and [[templates]]. However, there are some hooks in the templates that plugins can use to add stuff to the wiki's UI:
+
+### Adding content to the page header
+
+Html that is added to $IkiWiki::config{headercontent} will show up in the
+header of the page. One good thing to put here is a search form.
+
 ## RCS plugins
 
 ikiwiki's support for revision control systems also uses pluggable perl
 modules. These are in the `IkiWiki::RCS` namespace, for example
 `IkiWiki::RCS::svn`. 
 
 ## RCS plugins
 
 ikiwiki's support for revision control systems also uses pluggable perl
 modules. These are in the `IkiWiki::RCS` namespace, for example
 `IkiWiki::RCS::svn`. 
 
-Each RCS plugin must support all the IkiWiki::rcs_* functions.
+Each RCS plugin must support all the IkiWiki::rcs\_* functions.
 See IkiWiki::RCS::Stub for the full list of functions. It's ok if
 See IkiWiki::RCS::Stub for the full list of functions. It's ok if
-rcs_getctime does nothing except for throwing an error.
+rcs\_getctime does nothing except for throwing an error.