]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/plugins/write.mdwn
Merge branch 'master' into templatemove
[git.ikiwiki.info.git] / doc / plugins / write.mdwn
index 5190a26edb4ce85f5f54c94b9abfe0f9058a5c33..9128c7f5453bd14b679e37ea31fdd14510a3b58b 100644 (file)
@@ -297,7 +297,7 @@ value is ignored.
 
        hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
 
-[[Templates|wikitemplates]] are filled out for many different things in
+[[Templates]] are filled out for many different things in
 ikiwiki, like generating a page, or part of a blog page, or an rss feed, or
 a cgi. This hook allows modifying the variables available on those
 templates. The function is passed named parameters. The "page" and
@@ -313,11 +313,11 @@ a new custom parameter to the template.
 
        hook(type => "templatefile", id => "foo", call => \&templatefile);
 
-This hook allows plugins to change the [[template|wikitemplates]] that is
+This hook allows plugins to change the [[template|templates]] that is
 used for a page in the wiki. The hook is passed a "page" parameter, and
-should return the name of the template file to use, or undef if it doesn't
-want to change the default ("page.tmpl"). Template files are looked for in
-/usr/share/ikiwiki/templates by default.
+should return the name of the template file to use (relative to the
+template directory), or undef if it doesn't want to change the default
+("page.tmpl").
 
 ### sanitize
 
@@ -702,8 +702,25 @@ the entire wiki build and make the wiki unusable.
 ### `template($;@)`
 
 Creates and returns a [[!cpan HTML::Template]] object. The first parameter
-is the name of the file in the template directory. The optional remaining
-parameters are passed to `HTML::Template->new`.
+is the name of the template file. The optional remaining parameters are
+passed to `HTML::Template->new`.
+
+Normally, the template file is first looked for in the templates/ subdirectory
+of the srcdir. Failing that, it is looked for in the templatedir.
+
+Wiki pages can be used as templates. This should be done only for templates
+which it is safe to let wiki users edit. Enable it by passing a filename
+with no ".tmpl" extension. Template pages are normally looked for in
+the templates/ directory. If the page name starts with "/", a page
+elsewhere in the wiki can be used.
+
+### `template_depends($$;@)`
+
+Use this instead of `template()` if the content of a template is being
+included into a page. This causes the page to depend on the template,
+so it will be updated if the template is modified.
+
+Like `template()`, except the second parameter is the page.
 
 ### `htmlpage($)`
 
@@ -972,13 +989,13 @@ Sometimes you may want to add a file to the `srcdir` as a result of content
 of other pages. For example, [[plugins/tag]] pages can be automatically
 created as needed. This function can be used to do that. 
 
-The three parameters are the filename to add, the name of the plugin,
-and a callback function. The callback will be called if it is appropriate
-to automatically add the file, and should then take care of creating it,
-and doing anything else it needs to (such as checking it into revision
-control). Note that the callback may not always be called. For example,
-if an automatically added file is deleted by the user, ikiwiki will avoid
-re-adding it again.
+The three parameters are the filename to create (relative to the `srcdir`),
+the name of the plugin, and a callback function. The callback will be
+called if it is appropriate to automatically add the file, and should then
+take care of creating it, and doing anything else it needs to (such as
+checking it into revision control). Note that the callback may not always
+be called. For example, if an automatically added file is deleted by the
+user, ikiwiki will avoid re-adding it again.
 
 This function needs to be called during the scan hook, or earlier in the
 build process, in order to add the file early enough for it to be built.