]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/plugins/write.mdwn
web commit by joey
[ikiwiki.git] / doc / plugins / write.mdwn
index 2a43ad24904c8a353ff3b948c95924e88408b5a4..a4e800c5870cabbf1223ea7171dc1992949695db 100644 (file)
@@ -69,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.
 
+### 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.
@@ -95,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.
 
+## 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`. 
 
-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
-rcs_getctime does nothing except for throwing an error.
+rcs\_getctime does nothing except for throwing an error.