-The `edittemplate` directive is supplied by the [[!iki plugins/edittemplate]] plugin.
+The `edittemplate` directive is supplied by the [[!iki plugins/edittemplate desc=edittemplate]] plugin.
This directive allows registering template pages, that provide default
content for new pages created using the web frontend. To register a
-template, insert a [[ikiwiki/directive/template]] directive on some other page.
+template, insert an [[ikiwiki/directive/edittemplate]] directive on some other
+page.
\[[!edittemplate template="bugtemplate" match="bugs/*"]]
+
+A recommended place to put the directive is on the parent page
+of the pages that will be created using the template. So the above
+example would be put on the bugs page. (Do not put the directive on the
+template page itself.)
In the above example, the page named "bugtemplate" is registered as a
-template to be used when any page named "bugs/*" is created.
+template to be used when any page named "bugs/*" is created. To avoid
+the directive displaying a note about the template being registered, add
+"silent=yes".
Often the template page contains a simple skeleton for a particular type of
-page. For the bug report pages in the above example, it might look
-something like:
+page, wrapped in a [[templatebody]] directive. For the bug report pages in
+the above example, it might look something like:
+ \[[!templatebody <<ENDBODY
Package:
Version:
Reproducible: y/n
Details:
+ ENDBODY]]
The template page can also contain [[!cpan HTML::Template]] directives,
-similar to other ikiwiki [[templates]]. Currently only one variable is
-set: `<TMPL_VAR name>` is replaced with the name of the page being
-created.
+like other ikiwiki [[templates]].
-----
+These variables might be set:
-It's generally not a good idea to put the `edittemplate` directive in
-the template page itself, since the directive would then be included as
-part of the template on new pages, which would then in turn be registered
-as templates. If multiple pages are registered as templates for a new page,
-an arbitrary one is chosen, so that could get confusing.
+* `<TMPL_VAR name>` is replaced with the name of the page being
+ created.
+
+* `<TMPL_VAR uuid>` is replaced with a version 4 (random) UUID
+ suitable for use in `\[[!meta guid="urn:uuid:<TMPL_VAR uuid>"]]`.
+ (Requires the `UUID::Tiny` Perl module if not running on Linux.)
+
+* `<TMPL_VAR time>` is replaced with the current (template generation)
+ time using a fixed format (RFC 3339, `%Y-%m-%dT%H:%M:%SZ`),
+ suitable for use in `\[[!meta date="<TMPL_VAR time>"]]`
+ (see [[meta]]) or `\[[!date "<TMPL_VAR time>"]]` (see [[date]]).
+
+Text outside the [[templatebody]] directive is not part of the template,
+and can be used to document it.
+
+If the template does not contain a [[templatebody]] directive, the entire
+source of the page is used for the template. This is deprecated.
[[!meta robots="noindex, follow"]]