summaryrefslogtreecommitdiff
path: root/doc/templates.mdwn
blob: 481e555ee379a978f0da415b4c06aa93da31d605 (plain)

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.

I aim to keep almost all html out of ikiwiki and in the templates.

It ships with some basic templates which can be customised:

  • templates/page.tmpl - Used for displaying all regular wiki pages.
  • templates/misc.tmpl - Generic template used for any page that doesn't have a custom template.
  • templates/recentchanges.tmpl - Used for the RecentChanges page.
  • templates/editpage.tmpl - Create/edit page.
  • templates/passwordmail.tmpl - Not a html template, this is used to generate the mail with the user's password in it.
  • templates/rsspage.tmpl - Used for generating rss feeds for [[blog]]s.
  • `templates/inlinepage.tmpl - Used for adding a page inline in a blog page.
  • `templates/inlinepagetitle.tmpl - Used for listing a page inline in a blog archive page.

If you like, you can add these to further customise it:

  • templates/signin.tmpl - If it exists, it is used for customising the layout of the SignIn form and all assciated forms. The misc.tmpl is wrapped around this, so it should only be a template for the form.
  • templates/prefs.tmpl - If it exists, it is used for customising the layout of the Prefs form and all assciated forms. The misc.tmpl is wrapped around this, so it should only be a template for the form.

Note that the SignIn and Prefs forms are implemented using CGI::FormBuilder, which interfaces to HTML::Template, so not all of it can be customised with templates, although most of it can, by creating these templates. Without the templates, CGI::FormBuilder creates the page bodies by itself.