diff --git a/v2:-Templates.md b/v2:-Templates.md index 6375e48..8afe773 100644 --- a/v2:-Templates.md +++ b/v2:-Templates.md @@ -6,7 +6,7 @@ In addition to the functions described on this page, **[all Sprig functions](htt ### `.Args` -Access arguments passed to this page/context, for example as the result of a `.Include`. +Access arguments passed to this page/context, for example as the result of a `include`. ``` {{.Args 0}} // first argument @@ -28,37 +28,37 @@ Returns the hostname portion (no port) of the Host header of the HTTP request. {{.Host}} ``` -### `.HTTPInclude` +### `httpInclude` Includes the contents of another file by making a virtual HTTP request (also known as a sub-request). The URI path must exist on the same virtual server because the request does not use sockets; instead, the request is crafted in memory and the handler is invoked directly for increased efficiency. ``` -{{.HTTPInclude "/foo/bar?q=val"}} +{{httpInclude "/foo/bar?q=val"}} ``` -### `.Include` +### `include` Includes the contents of another file. Optionally can pass key-value pairs as arguments to be accessed by the included file. ``` -{{.Include "path/to/file.html"}} // no arguments -{{.Include "path/to/file.html" "arg1" 2 "value 3"}} // with arguments +{{include "path/to/file.html"}} // no arguments +{{include "path/to/file.html" "arg1" 2 "value 3"}} // with arguments ``` -### `.ListFiles` +### `listFiles` Returns a list of the files in the given directory, which is relative to the template context's file root. ``` -{{.ListFiles "/mydir"}} +{{listFiles "/mydir"}} ``` -### `.Markdown` +### `markdown` Renders the given Markdown text as HTML. ``` -{{.Markdown "My _markdown_ text"}} +{{markdown "My _markdown_ text"}} ``` ### `.RemoteIP` @@ -93,10 +93,55 @@ Sets a header field on the HTTP response, replacing any existing value. {{.RespHeader.Set "Field-Name" "val"}} ``` -### `.StripHTML` +### `splitFrontMatter` + +Splits front matter out from the body. Front matter is metadata that appears at the very beginning of a file or string. Front matter can be in YAML, TOML, or JSON formats: + +**TOML** front matter starts and ends with `+++`: + +``` ++++ +template = "blog" +title = "Blog Homepage" +sitename = "A Caddy site" ++++ +``` + +**YAML** is surrounded by `---`: + +``` +--- +template: blog +title: Blog Homepage +sitename: A Caddy site +--- +``` + + +**JSON** is simply `{` and `}`: + +``` +{ + "template": "blog", + "title": "Blog Homepage", + "sitename": "A Caddy site" +} +``` + +The resulting front matter will be made available like so: + +- `.Meta` to access the metadata fields, for example: `{{$parsed.Meta.title}}` +- `.Body` to access the body after the front matter, for example: `{{markdown $parsed.Body}}` + + +``` +{{markdown "My _markdown_ text"}} +``` + +### `stripHTML` Removes HTML from a string. ``` -{{.StripHTML "Shows only text content"}} +{{stripHTML "Shows only text content"}} ``` \ No newline at end of file