]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/plugins/write.mdwn
add
[git.ikiwiki.info.git] / doc / plugins / write.mdwn
index a31f78b4ee7d79c8c519044af7e11bead051972d..925717777d93360639ba3a7402dadb5944db95a5 100644 (file)
@@ -72,7 +72,8 @@ This allows for plugins to perform their own processing of command-line
 options and so add options to the ikiwiki command line. It's called during
 command line processing, with @ARGV full of any options that ikiwiki was
 not able to process on its own. The function should process any options it
 options and so add options to the ikiwiki command line. It's called during
 command line processing, with @ARGV full of any options that ikiwiki was
 not able to process on its own. The function should process any options it
-can, removing them from @ARGV. It should take care not to abort if it sees
+can, removing them from @ARGV, and probably recording the configuration
+settings in %IkiWiki::config. It should take care not to abort if it sees
 an option it cannot process, and should just skip over those options and
 leave them in @ARGV.
 
 an option it cannot process, and should just skip over those options and
 leave them in @ARGV.
 
@@ -80,8 +81,8 @@ leave them in @ARGV.
 
        IkiWiki::hook(type => "checkconfig", 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. The
+This is useful if the plugin needs to check for or modify ikiwiki's
+configuration. It's called early in the startup process. The
 function is passed no values. It's ok for the function to call
 IkiWiki::error if something isn't configured right.
 
 function is passed no values. It's ok for the function to call
 IkiWiki::error if something isn't configured right.
 
@@ -95,7 +96,7 @@ make arbitrary changes. The function is passed named parameters `page` and
 
 ## htmlize
 
 
 ## htmlize
 
-       IkiWiki::hook(type => "htmlize", id => "ext", call => \&filter);
+       IkiWiki::hook(type => "htmlize", id => "ext", call => \&htmlize);
 
 Runs on the raw source of a page and turns it into html. The id parameter
 specifies the filename extension that a file must have to be htmlized using
 
 Runs on the raw source of a page and turns it into html. The id parameter
 specifies the filename extension that a file must have to be htmlized using
@@ -106,12 +107,13 @@ languages to ikiwiki.
 
        IkiWiki::hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
 
 
        IkiWiki::hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
 
-Each time a page is rendered, a [[template|templates]] is filled out.
-This hook allows modifying that template. The function is passed named
-parameters. The "page" and "destpage" parameters are the same as for a
-preprocess hook. The "template" parameter is a `HTML::Template` object that
-is the template that will be used to generate the page. The function 
-can manipulate that template object.
+Each time a page (or part of a blog page, or an rss feed) is rendered, a
+[[template|templates]] is filled out. This hook allows modifying that
+template. The function is passed named parameters. The "page" and
+"destpage" parameters are the same as for a preprocess hook. The "template"
+parameter is a `HTML::Template` object that is the template that will be
+used to generate the page. The function can manipulate that template
+object.
 
 The most common thing to do is probably to call $template->param() to add
 a new custom parameter to the template. Note that in order to be robust,
 
 The most common thing to do is probably to call $template->param() to add
 a new custom parameter to the template. Note that in order to be robust,
@@ -133,7 +135,7 @@ content.
 
 ## delete
 
 
 ## delete
 
-       IkiWiki::hook(type => "delete", id => "foo", call => \&dele);
+       IkiWiki::hook(type => "delete", id => "foo", call => \&delete);
 
 Each time a page or pages is removed from the wiki, the referenced function
 is called, and passed the names of the source files that were removed.
 
 Each time a page or pages is removed from the wiki, the referenced function
 is called, and passed the names of the source files that were removed.
@@ -155,6 +157,14 @@ 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.
 
 parameters, and if it will handle this CGI request, output a page and
 terminate the program.
 
+## savestate
+
+       IkiWiki::hook(type => "savestate", id => "foo", call => \&savestate);
+
+This hook is called wheneven ikiwiki normally saves its state, just before
+the state is saved. The function can save other state, modify values before
+they're saved, etc.
+
 # Wiki configuration
 
 A plugin can access the wiki's configuration via the `%IkiWiki::config`
 # Wiki configuration
 
 A plugin can access the wiki's configuration via the `%IkiWiki::config`
@@ -180,6 +190,8 @@ use the following hashes, using a page name as the key:
   Many plugins will need to add dependencies to this hash; the best way to do
   it is by using the IkiWiki::add_depends function, which takes as its
   parameters the page name and a [[GlobList]] of dependencies to add.
   Many plugins will need to add dependencies to this hash; the best way to do
   it is by using the IkiWiki::add_depends function, which takes as its
   parameters the page name and a [[GlobList]] of dependencies to add.
+* `%IkiWiki::forcerebuild` any pages set as the keys to this hash will be
+  treated as if they're modified and rebuilt.
 
 # A note on generating html links
 
 
 # A note on generating html links