]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/plugins/write.mdwn
* Add first draft at a Restructured Text (rst) plugin, by Sergio
[git.ikiwiki.info.git] / doc / plugins / write.mdwn
index 925717777d93360639ba3a7402dadb5944db95a5..950c4f1f9f5046a8c09911eb12a6b5b585518e64 100644 (file)
@@ -116,23 +116,27 @@ 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
 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,
-it's a good idea to check whether the template has a variable before trying
-to set it, as setting a variable that's not present is an error.
-
-       if ($template->query(name => 'foo')) {
-               $template->param("foo" => "bar");
-       }
+a new custom parameter to the template.
 
 ## sanitize
 
        IkiWiki::hook(type => "sanitize", id => "foo", call => \&sanitize);
 
 Use this to implement html sanitization or anything else that needs to
 
 ## sanitize
 
        IkiWiki::hook(type => "sanitize", id => "foo", call => \&sanitize);
 
 Use this to implement html sanitization or anything else that needs to
-modify the content of a page after it has been fully converted to html.
+modify the body of a page after it has been fully converted to html.
 The function is passed the page content and should return the sanitized
 content.
 
 The function is passed the page content and should return the sanitized
 content.
 
+## format
+
+       IkiWiki::hook(type => "format", id => "foo", call => \&format);
+
+The function is passed the complete page content and can reformat it
+and return the new content. 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.
+
 ## delete
 
        IkiWiki::hook(type => "delete", id => "foo", call => \&delete);
 ## delete
 
        IkiWiki::hook(type => "delete", id => "foo", call => \&delete);
@@ -183,13 +187,13 @@ use the following hashes, using a page name as the key:
 * `%IkiWiki::renderedfiles` contains the name of the file rendered by a
   page
 * `%IkiWiki::pagesources` contains the name of the source file for a page.
 * `%IkiWiki::renderedfiles` contains the name of the file rendered by a
   page
 * `%IkiWiki::pagesources` contains the name of the source file for a page.
-* `%IkiWiki::depends` contains a [[GlobList]] that is used to specify other
+* `%IkiWiki::depends` contains a [[PageSpec]] that is used to specify other
   pages that a page depends on. If one of its dependencies is updated, the
   page will also get rebuilt. 
   
   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
   pages that a page depends on. If one of its dependencies is updated, the
   page will also get rebuilt. 
   
   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.
+  parameters the page name and a [[PageSpec]] 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.
 
 * `%IkiWiki::forcerebuild` any pages set as the keys to this hash will be
   treated as if they're modified and rebuilt.