### needsbuild
-
-
hook(type => "needsbuild", id => "foo", call => \&needsbuild);
This allows a plugin to manipulate the list of files that need to be
Use this to implement html sanitization or anything else that needs to
modify the body of a page after it has been fully converted to html.
-The function is passed named parameters: "page" and "content", and
-should return the sanitized content.
+The function is passed named parameters: "page", "destpage", and "content",
+and should return the sanitized content.
### format
The difference between format and sanitize is that sanitize only acts on
the page body, while format can modify the entire html page including the
-header and footer inserted by ikiwiki, the html document type, etc.
+header and footer inserted by ikiwiki, the html document type, etc. (It
+should not rely on always being passed the entire page, as it won't be
+when the page is being previewed.)
The function is passed named parameters: "page" and "content", and
should return the formatted content.
use `%pagestate{$page}{$id}{$key}=$value`, and to retrieve the value,
use `%pagestate{$page}{$id}{$key}`.
-`$key` can be any string you like, but `$id` must be the same as the "id"
-parameter passed to `hook()` when registering the plugin. This is so
-ikiwiki can know when to delete pagestate for plugins that are no longer
-used.
+The `$value` can be anything that perl's Storable module is capable of
+serializing. `$key` can be any string you like, but `$id` must be the same
+as the "id" parameter passed to `hook()` when registering the plugin. This
+is so ikiwiki can know when to delete pagestate for plugins that are no
+longer used.
When pages are deleted, ikiwiki automatically deletes their pagestate too.