* Add support for mercurial, contributed by Emanuele Aina.
[ikiwiki.git] / doc / templates.mdwn
1 ikiwiki uses the HTML::Template module as its template engine. This
2 supports things like conditionals and loops in templates and is pretty easy
3 to learn.
4
5 The aim is to keep almost all html out of ikiwiki and in the templates.
6
7 It ships with some basic templates which can be customised:
8
9 * `page.tmpl` - Used for displaying all regular wiki pages.
10 * `misc.tmpl` - Generic template used for any page that doesn't
11   have a custom template.
12 * `recentchanges.tmpl` - Used for the RecentChanges page.
13 * `editpage.tmpl` - Create/edit page.
14 * `notifymail.tmpl` - Not a html template, this is used to
15   generate change notification mails for users who have subscribed to
16   changes to a page.
17 * `passwordmail.tmpl` - Not a html template, this is used to
18   generate the mail with the user's password in it.
19 * `rsspage.tmpl` - Used for generating rss feeds for [[blog]]s.
20 * `rssitem.tmpl` - Used for generating individual items on rss feeds.
21 * `inlinepage.tmpl` - Used for adding a page inline in a blog
22   page.
23 * `inlinepagetitle.tmpl` - Used for listing a page inline in a blog
24   archive page.
25 * `estseek.conf` - Not a html template, this is actually a template for
26   a config file for the [[HyperEstraier]] search engine. If you like you
27   can read the [[HyperEstraier]] docs and configure it using this.
28 * `blogpost.tmpl` - Used for a form to add a post to a blog (and a rss link)
29 * `rsslink.tmpl` - Used to add a rss link if blogpost.tmpl is not used.
30 * `aggregatepost.tmpl` - Used by the [[plugins/aggregate]] plugin to create
31   a page for a post.
32 * `searchform.tmpl` - Used by the [[plugins/search]] plugin to add a search
33   form to wiki pages.
34
35 If you like, you can add these to further customise it:
36
37 * `signin.tmpl` - If it exists, it is used for customising the
38   layout of the SignIn form and all assciated forms. The misc.tmpl is
39   wrapped around this, so it should only be a template for the form.
40 * `prefs.tmpl` - If it exists, it is used for customising the
41   layout of the Prefs form and all assciated forms. The misc.tmpl is
42   wrapped around this, so it should only be a template for the form.
43   
44 Note that the SignIn and Prefs forms are implemented using
45 CGI::FormBuilder, which interfaces to HTML::Template, so not all of it can
46 be customised with templates, although most of it can, by creating these
47 templates. Without the templates, CGI::FormBuilder creates the page bodies
48 by itself.
49
50 The [[plugins/template]] plugin also uses templates, though those templates
51 are stored in the wiki.