add --diffurl, if set RecentChanges has links to svn diffs
[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 It ships with some basic templates which can be customised:
6
7 * `templates/page.tmpl` - Used for displaying all regular wiki pages.
8 * `templates/misc.tmpl` - Generic template used for any page that doesn't
9   have a custom template.
10 * `templates/recentchanges.tmpl` - Used for the RecentChanges page.
11 * `templates/editpage.tmpl` - Create/edit page.
12 * `templates/passwordmail.tmpl` - Not a html template, this is used to
13   generate the mail with the user's password in it.
14
15 If you like, you can add this to further customise it:
16
17 * `templates/signin.tmpl` - If it exists, it is used for customising the
18   layout of the SignIn form and all assciated forms. The misc.tmpl is
19   wrapped around this, so it should only be a template for the form.
20   
21   Note that the SignIn form is implemented using CGI::FormBuilder, which
22   interfaces to HTML::Template, so not all of it can be customised with
23   templates, although most of it can, by creating this template. Without
24   the template, CGI::FormBuilder creates the page body by itself.
25
26 I aim to keep almost all html out of ikiwiki and in the templates.