allow search form visibility to be controlled on the template
[ikiwiki.git] / doc / templates.mdwn
index f7b3adae5adf0170cef71e151687447345593e5d..2444cf14d42acc88cd28a44772d7adc6358cf491 100644 (file)
@@ -1,88 +1,77 @@
 [[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. Customized 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 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>`
+
 [[!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.
-These templates can be filled out and inserted into other pages in the
-wiki using the directive.
+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="""
 """]]
 [[!if test="enabled(template) and enabled(inline)" then="""
-[[!inline pages="templates/* and !*/discussion" feeds=no archive=yes
-sort=title template=titlepage
+[[!inline pages="templates/* and !*.tmpl and !*/discussion"
+feeds=no archive=yes sort=title template=titlepage
 rootpage=templates postformtext="Add a new template named:"]]
 """]]
 
 [[!if test="enabled(edittemplate)" then="""
 rootpage=templates postformtext="Add a new template named:"]]
 """]]
 
 [[!if test="enabled(edittemplate)" then="""
-## The edittemplate directive
+## edit templates
 
 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 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.
 """]]
 
-## 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.
-* `editpage.tmpl` - Create/edit page.
-* `change.tmpl` - Used to create a page describing a change made to the wiki.
-* `passwordmail.tmpl` - Not a html template, this is used to
-  generate a mail with an url the user can use to reset their password.
-* `rsspage.tmpl` - Used for generating rss feeds for [[blogs|blog]].
+* `page.tmpl` - Used for displaying all regular wiki pages. This is the
+  key template to customize. [[!if test="enabled(pagetemplate)" then="""
+  (The 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.
 * `atomitem.tmpl` - Used for generating individual items on atom feeds.
 * `rssitem.tmpl` - Used for generating individual items on rss feeds.
 * `atompage.tmpl` - Used for generating atom feeds for blogs.
 * `atomitem.tmpl` - Used for generating individual items on atom feeds.
-* `inlinepage.tmpl` - Used for adding a page inline in a blog
-  page.
+* `inlinepage.tmpl` - Used for displaying a post in a blog.
 * `archivepage.tmpl` - Used for listing a page in a blog archive page.
 * `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 a rss/atom links)
 * `microblog.tmpl` - Used for showing a microblogging post inline.
 * `blogpost.tmpl` - Used for a form to add a post to a blog (and a rss/atom links)
-* `feedlink.tmpl` - Used to add rss/atom links if blogpost.tmpl is not used.
-* `aggregatepost.tmpl` - Used by the [[plugins/aggregate]] plugin to create
+* `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.
   a page for a post.
-* `searchform.tmpl` - Used by the [[plugins/search]] plugin to add a search
-  form to wiki pages.
-* `searchquery.tmpl` - This is an omega template, used by the
-  [[plugins/search]] plugin.
-* `comment.tmpl` - This template is used to display a comment
-  by the [[plugins/comments]] plugin.
-* `editcomment.tmpl` - This template is the comment post form for the
-  [[plugins/comments]] plugin.
-* `commentmoderation.tmpl` - This template is used to produce the comment
-  moderation form.
-* `recentchanges.tmpl` - This template is used for listing a change
-  on the RecentChanges page.
-
-[[!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>`
+* `searchform.tmpl`, `googleform.tmpl` - Used by the search plugin 
+  and google plugin to add search forms to wiki pages.
+* `searchquery.tmpl` - This is a Omega template, used by the
+  search plugin.
+* `comment.tmpl` - Used by the comments plugin to display a comment.
+* `change.tmpl` - Used to create a page describing a change made to the wiki.
+* `recentchanges.tmpl` - Used for listing a change on the RecentChanges page.
+* `autoindex.tmpl` - Filled in by the autoindex plugin to make index pages.
+* `autotag.tmpl` - Filled in by the tag plugin to make tag pages.
+* `calendarmonth.tmpl`, `calendaryear.tmpl` - Used by ikiwiki-calendar to
+  make calendar archive pages.
+* `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.
 
 [[!meta robots="noindex, follow"]]
 
 [[!meta robots="noindex, follow"]]