This page is about Caddy 2. If you still need v1 docs for a limited time, click here.
Documentation

templates

Executes the response body as a template document. Templates provide functional primitives for making simple dynamic pages. Features include HTTP subrequests, HTML file includes, Markdown rendering, JSON parsing, basic data structures, randomness, time, and more.

Syntax

templates [<matcher>] {
	mime    <types...>
	between <open_delim> <close_delim>
	root    <path>
}
  • mime are the MIME types the templates middleware will act on; any responses that do not have a qualifying Content-Type will not be evaluated as templates. Default: text/html text/plain.
  • between are the opening and closing delimiters for template actions. Default: {{ }}. You can change them if they interfere with the rest of your document.
  • root is the site root, when using functions that access the file system.

Examples

Enable templates on all requests:

templates

For a complete example of a site using templates to serve markdown, take a look at the source for this very website! Specifically, take a look at the Caddyfile and src/docs/index.html.