a project


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.


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.


Enable templates on all requests:


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.