Update for new funcs including front matter

Matt Holt 2019-12-23 12:31:43 -07:00
parent 9801536787
commit 9a8806492e

@ -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 <b>only</b> text content"}}
{{stripHTML "Shows <b>only</b> text content"}}
```