Merge remote branch 'remotes/peteg/revert' into revert
[ikiwiki.git] / doc / templates.mdwn
index c91037670133adac3e2e60b409a24c98d310de0d..4fd2bf5012872c96caed7ea782b398e4713feec4 100644 (file)
@@ -1,34 +1,53 @@
 [[Ikiwiki]] uses many templates for many purposes. By editing its templates,
 you can fully customise this site.
 
 [[Ikiwiki]] uses many templates for many purposes. By editing its templates,
 you can fully customise this site.
 
+Templates are located in `/usr/share/ikiwiki/templates` by default;
+the `templatedir` setting can be used to make another directory be
+searched first. Customised templates can also be placed inside the
+"templates/" directory in your wiki's source.
+
+Ikiwiki uses the HTML::Template module as its template engine. This
+supports things like conditionals and loops in templates and is pretty
+easy to learn. All you really need to know to modify templates is this:
+
+* To insert the value of a template variable, use `<TMPL_VAR variable>`.
+* To make a block of text conditional on a variable being set use
+  `<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>`
+
 [[!if test="enabled(template)" then="""
 [[!if test="enabled(template)" then="""
-## The template directive
+## template pages
 
 
-The template directive allows wiki pages to be used as templates,
-filled out and inserted into other pages in the wiki.
-"""]]
-[[!if test="enabled(template) and enabled(inline)" then="""
-[[!inline pages="templates/* and !*/discussion" feeds=no archive=yes
-sort=title template=titlepage
-rootpage=templates postformtext="Add a new template named:"]]
+The [[!iki ikiwiki/directive/template desc="template directive"]] allows
+wiki pages to be used as templates, filled out and inserted into other
+pages in the wiki.
 """]]
 
 [[!if test="enabled(edittemplate)" then="""
 """]]
 
 [[!if test="enabled(edittemplate)" then="""
-## The edittemplate directive
+## default content for new pages
 
 
-The edittemplate directive can be used to make new pages default to
-containing text from a template, which can be filled as out the page is
-edited.
+The [[!iki ikiwiki/directive/edittemplate desc="edittemplate directive"]] can
+be used to make new pages default to containing text from a template
+page, which can be filled out as the page is edited.
+"""]]
+
+[[!if test="(enabled(template) or enabled(edittemplate))
+and enabled(inline)" then="""
+[[!inline pages="templates/* and !*.tmpl and !templates/*/* and !*/discussion"
+feeds=no archive=yes sort=title template=titlepage
+rootpage=templates postformtext="Add a new template named:"]]
 """]]
 
 """]]
 
-## Wiki templates
+## wiki templates
 
 These templates are used to build the wiki. The aim is to keep almost all
 html out of ikiwiki and in the templates.
 
 
 These templates are used to build the wiki. The aim is to keep almost all
 html out of ikiwiki and in the templates.
 
-* `page.tmpl` - Used for displaying all regular wiki pages.
-* `misc.tmpl` - Generic template used for any page that doesn't
-  have a custom template.
+* `page.tmpl` - Used for displaying all regular wiki pages. This is the
+  key template to customise. [[!if test="enabled(pagetemplate)" then="""
+  (The [[!iki ikiwiki/directive/pagetemplate desc="pagetemplate directive"]]
+  can be used to make a page use a different template than `page.tmpl`.)"""]]
 * `rsspage.tmpl` - Used for generating rss feeds for blogs.
 * `rssitem.tmpl` - Used for generating individual items on rss feeds.
 * `atompage.tmpl` - Used for generating atom feeds for blogs.
 * `rsspage.tmpl` - Used for generating rss feeds for blogs.
 * `rssitem.tmpl` - Used for generating individual items on rss feeds.
 * `atompage.tmpl` - Used for generating atom feeds for blogs.
@@ -37,7 +56,7 @@ html out of ikiwiki and in the templates.
 * `archivepage.tmpl` - Used for listing a page in a blog archive page.
 * `titlepage.tmpl` - Used for listing a page by title in a blog archive page.
 * `microblog.tmpl` - Used for showing a microblogging post inline.
 * `archivepage.tmpl` - Used for listing a page in a blog archive page.
 * `titlepage.tmpl` - Used for listing a page by title in a blog archive page.
 * `microblog.tmpl` - Used for showing a microblogging post inline.
-* `blogpost.tmpl` - Used for a form to add a post to a blog (and rss/atom links)
+* `blogpost.tmpl` - Used for a form to add a post to a blog (and rss/atom links)
 * `feedlink.tmpl` - Used to add rss/atom links if `blogpost.tmpl` is not used.
 * `aggregatepost.tmpl` - Used by the aggregate plugin to create
   a page for a post.
 * `feedlink.tmpl` - Used to add rss/atom links if `blogpost.tmpl` is not used.
 * `aggregatepost.tmpl` - Used by the aggregate plugin to create
   a page for a post.
@@ -55,33 +74,7 @@ html out of ikiwiki and in the templates.
 * `editpage.tmpl`, `editconflict.tmpl`, `editcreationconflict.tmpl`,
   `editfailedsave.tmpl`, `editpagegone.tmpl`, `pocreatepage.tmpl`,
   `editcomment.tmpl` `commentmoderation.tmpl`, `renamesummary.tmpl`,
 * `editpage.tmpl`, `editconflict.tmpl`, `editcreationconflict.tmpl`,
   `editfailedsave.tmpl`, `editpagegone.tmpl`, `pocreatepage.tmpl`,
   `editcomment.tmpl` `commentmoderation.tmpl`, `renamesummary.tmpl`,
-  `passwordmail.tmpl` - Parts of ikiwiki's user interface; do not
-  normally need to be customised.
-
-[[!if test="enabled(pagetemplate)" then="""
-## The pagetemplate directive
-
-The pagetemplate directive can allow individual pages to use a
-different template than `page.tmpl`.
-"""]]
-
-## Template locations
-
-Templates are located in `/usr/share/ikiwiki/templates` by default;
-the `templatedir` setting can be used to make another directory be
-searched first. Customized templates can also be placed inside the
-"templates/" directory in your wiki's source.
-
-## Template syntax
-
-Ikiwiki uses the HTML::Template module as its template engine. This
-supports things like conditionals and loops in templates and is pretty easy
-to learn. All you really need to know are a few things:
-
-* To insert the value of a template variable, use `<TMPL_VAR variable>`.
-* To make a block of text conditional on a variable being set use
-  `<TMPL_IF NAME="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>`
+  `passwordmail.tmpl`, `openid-selector.tmpl`, `revert.tmpl` - Parts of ikiwiki's user
+  interface; do not normally need to be customised.
 
 [[!meta robots="noindex, follow"]]
 
 [[!meta robots="noindex, follow"]]