]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/ikiwiki/directive/template.mdwn
despam
[git.ikiwiki.info.git] / doc / ikiwiki / directive / template.mdwn
index ae71ba5b56e7f12306ece8a39e876e39920e8dc3..9e3ae54dfd6209c92528ace49ad5ae2b3279d486 100644 (file)
@@ -1,7 +1,11 @@
 The `template` directive is supplied by the [[!iki plugins/template desc=template]] plugin.
 
-[[Templates]] are files that can be filled out and inserted into pages in the
-wiki, by using the template directive. The directive has an `id` parameter
+The template directive allows wiki pages to be used as templates.
+These templates can be filled out and inserted into other pages in the
+wiki using the directive. The [[templates]] page lists templates
+that can be used with this directive.
+
+The directive has an `id` parameter
 that identifies the template to use. The remaining parameters are used to
 fill out the template.
 
@@ -30,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
@@ -49,21 +57,21 @@ few things:
 * To insert the raw value of a variable, with wiki markup not yet converted
   to html, use `<TMPL_VAR raw_variable>`.
 * To make a block of text conditional on a variable being set use
-  `<TMPL_IF NAME="variable">text</TMPL_IF>`.
+  `<TMPL_IF variable>text</TMPL_IF>`.
 * To use one block of text if a variable is set and a second if it's not,
-  use `<TMPL_IF NAME="variable">text<TMPL_ELSE>other text</TMPL_IF>`
+  use `<TMPL_IF variable>text<TMPL_ELSE>other text</TMPL_IF>`
 
 Here's a sample template:
 
         <span class="infobox">
         Name: \[[<TMPL_VAR raw_name>]]<br />
         Age: <TMPL_VAR age><br />
-        <TMPL_IF NAME="color">
+        <TMPL_IF color>
         Favorite color: <TMPL_VAR color><br />
         <TMPL_ELSE>
         No favorite color.<br />
         </TMPL_IF>
-        <TMPL_IF NAME="notes">
+        <TMPL_IF notes>
         <hr />
         <TMPL_VAR notes>
         </TMPL_IF>