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.

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

It ships with some basic templates which can be customised. These are located in /usr/share/ikiwiki/templates by default; the templatedir setting can be used to make another directory be searched first.

The pagetemplate plugin can allow individual pages to use a different template than page.tmpl.

The template plugin also uses templates, though those templates are typically stored as pages in the wiki, and are inserted into pages.

The edittemplate plugin is used to make new pages default to containing text from a template, which can be filled as out the page is edited.