X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/39d4bfde6b9c49f0a8b13699be701bda11eb851a..da9e1ea667f82d5fca9168dbed19be08040570ff:/doc/ikiwiki/directive/template.mdwn diff --git a/doc/ikiwiki/directive/template.mdwn b/doc/ikiwiki/directive/template.mdwn index 052ca7873..df391f99e 100644 --- a/doc/ikiwiki/directive/template.mdwn +++ b/doc/ikiwiki/directive/template.mdwn @@ -34,11 +34,15 @@ large chunks of marked up text to be embedded into a template: The template is a regular wiki page, located in the `templates/` subdirectory inside the source directory of the wiki. -(Alternatively, templates can be stored in a directory outside the wiki, +Alternatively, templates can be stored in a directory outside the wiki, as files with the extension ".tmpl". -By default, these are searched for in `/usr/share/ikiwiki/templates`; +By default, these are searched for in `/usr/share/ikiwiki/templates`, the `templatedir` setting can be used to make another directory be searched -first.) +first. When referring to templates outside the wiki source directory, the "id" +parameter is not interpreted as a pagespec, and you must include the full filename +of the template page, including the ".tmpl" extension. E.g.: + + \[[!template id=blogpost.tmpl]] The template uses the syntax used by the [[!cpan HTML::Template]] perl module, which allows for some fairly complex things to be done. Consult its @@ -53,25 +57,33 @@ few things: * To insert the raw value of a variable, with wiki markup not yet converted to html, use ``. * To make a block of text conditional on a variable being set use - `text`. + `text`. * To use one block of text if a variable is set and a second if it's not, - use `textother text` + use `textother text` +* Each template file included in the wiki's source will also generate a regular + wiki page. In many cases you might want to prevent some of your template + being interpreted for the regular page. Use the [[if]] directive with the + `included()` test to guard the template code. Here's a sample template: - - Name: \[[]]
- Age:
- - Favorite color:
- - No favorite color.
-
- -
- -
-
+ \[[!if test="included()" then=""" + + Name: \[[]]
+ Age:
+ + Favorite color:
+ + No favorite color.
+
+ +
+ +
+
+ """ else=""" + This is a template page. + """]] The filled out template will be formatted the same as the rest of the page that contains it, so you can include WikiLinks and all other forms of wiki