[[!meta author="""http://jmtd.livejournal.com/"""]] [[!meta authorurl="""http://jmtd.livejournal.com/"""]] [[!meta title="""change to ikiwiki/directive/template on ikiwiki"""]] [[!meta permalink="http://ikiwiki.info/recentchanges/#change-da9e1ea667f82d5fca9168dbed19be08040570ff"]]

Changed pages:
[[diff|wikiicons/diff.png]]ikiwiki/directive/template
Changed by:
jmtd [livejournal.com]
Commit type:
web
Date:
10:28:05 11/15/10
[[revert|wikiicons/revert.png]]
guard templates with the if directive where necessary
diff --git a/doc/ikiwiki/directive/template.mdwn b/doc/ikiwiki/directive/template.mdwn
index 9e3ae54..df391f9 100644
--- a/doc/ikiwiki/directive/template.mdwn
+++ b/doc/ikiwiki/directive/template.mdwn
@@ -60,22 +60,30 @@ few things:
   `<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 variable>text<TMPL_ELSE>other text</TMPL_IF>`
+* 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:
 
-        <span class="infobox">
-        Name: \[[<TMPL_VAR raw_name>]]<br />
-        Age: <TMPL_VAR age><br />
-        <TMPL_IF color>
-        Favorite color: <TMPL_VAR color><br />
-        <TMPL_ELSE>
-        No favorite color.<br />
-        </TMPL_IF>
-        <TMPL_IF notes>
-        <hr />
-        <TMPL_VAR notes>
-        </TMPL_IF>
-        </span>
+        \[[!if test="included()" then="""
+          <span class="infobox">
+          Name: \[[<TMPL_VAR raw_name>]]<br />
+          Age: <TMPL_VAR age><br />
+          <TMPL_IF color>
+            Favorite color: <TMPL_VAR color><br />
+          <TMPL_ELSE>
+            No favorite color.<br />
+          </TMPL_IF>
+          <TMPL_IF notes>
+            <hr />
+            <TMPL_VAR notes>
+          </TMPL_IF>
+          </span>
+        """ 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