]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/templates.mdwn
* Work around a strange bug in CGI::FormBuilder 3.0401 that makes
[git.ikiwiki.info.git] / doc / templates.mdwn
index 13d285d3cb3d544aba50e564dd81d5798b60abd6..05fdc4426b6d4a1d4380c73b3af431595d4357c4 100644 (file)
@@ -1,13 +1,53 @@
-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.
+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:
 
-* `templates/page.tmpl` - Used for displaying all regular wiki pages.
-* `templates/recentchanges.tmpl` - Used for the RecentChanges page.
-* `templates/edit.tmpl' - Edit page.
-* `templates/create.tmpl' - Creating a new page.
-* `templates/signin.tmpl` - Used for the SignIn form and all assciated forms, if it exists.
-   
-  Note that the SignIn form is 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 this template. Without the template, CGI::FormBuilder creates the page by itself.
+* `page.tmpl` - Used for displaying all regular wiki pages.
+* `misc.tmpl` - Generic template used for any page that doesn't
+  have a custom template.
+* `recentchanges.tmpl` - Used for the RecentChanges page.
+* `editpage.tmpl` - Create/edit page.
+* `notifymail.tmpl` - Not a html template, this is used to
+  generate change notification mails for users who have subscribed to
+  changes to a page.
+* `passwordmail.tmpl` - Not a html template, this is used to
+  generate the mail with the user's password in it.
+* `rsspage.tmpl` - Used for generating rss feeds for [[blog]]s.
+* `rssitem.tmpl` - Used for generating individual items on rss feeds.
+* `atompage.tmpl` - Used for generating atom feeds for [[blog]]s.
+* `atomitem.tmpl` - Used for generating individual items on atom feeds.
+* `inlinepage.tmpl` - Used for adding a page inline in a blog
+  page.
+* `inlinepagetitle.tmpl` - Used for listing a page inline in a blog
+  archive page.
+* `estseek.conf` - Not a html template, this is actually a template for
+  a config file for the [[HyperEstraier]] search engine. If you like you
+  can read the [[HyperEstraier]] docs and configure it using this.
+* `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
+  a page for a post.
+* `searchform.tmpl` - Used by the [[plugins/search]] plugin to add a search
+  form to wiki pages.
+
+If you like, you can add these to further customise it:
+
+* `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.
+* `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.
 
-I aim to keep almost all html out of ikiwiki and in the templates.
+The [[plugins/template]] plugin also uses templates, though those templates
+are stored in the wiki.