mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
Add jsonify template func
This commit is contained in:
parent
c8c6f5d05b
commit
435e996c4f
3 changed files with 21 additions and 0 deletions
|
@ -112,6 +112,14 @@ e.g.
|
|||
{{ .Render "summary" }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
### jsonify
|
||||
Encodes a given object to JSON.
|
||||
|
||||
e.g.
|
||||
|
||||
{{ dict "title" .Title "content" .Plain | jsonify }}
|
||||
|
||||
### last
|
||||
Slices an array to only the last _N_ elements.
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ package tpl
|
|||
import (
|
||||
"bytes"
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"html"
|
||||
|
@ -1142,6 +1143,15 @@ func markdownify(text string) template.HTML {
|
|||
return template.HTML(m)
|
||||
}
|
||||
|
||||
// jsonify encodes a given object to JSON.
|
||||
func jsonify(v interface{}) (template.HTML, error) {
|
||||
b, err := json.Marshal(v)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return template.HTML(b), nil
|
||||
}
|
||||
|
||||
func refPage(page interface{}, ref, methodName string) template.HTML {
|
||||
value := reflect.ValueOf(page)
|
||||
|
||||
|
@ -1522,6 +1532,7 @@ func init() {
|
|||
"intersect": intersect,
|
||||
"isSet": isSet,
|
||||
"isset": isSet,
|
||||
"jsonify": jsonify,
|
||||
"last": last,
|
||||
"le": le,
|
||||
"lower": func(a string) string { return strings.ToLower(a) },
|
||||
|
|
|
@ -98,6 +98,7 @@ in: {{ if in "this string contains a substring" "substring" }}Substring found!{{
|
|||
seq: {{ seq 3 }}
|
||||
sort: {{ slice "B" "C" "A" | sort }}
|
||||
delimit: {{ delimit (slice "A" "B" "C") ", " " and " }}
|
||||
jsonify: {{ (slice "A" "B" "C") | jsonify }}
|
||||
`
|
||||
expected := `chomp: <p>Blockhead</p>
|
||||
dateFormat: Wednesday, Jan 21, 2015
|
||||
|
@ -132,6 +133,7 @@ in: Substring found!
|
|||
seq: [1 2 3]
|
||||
sort: [A B C]
|
||||
delimit: A, B and C
|
||||
jsonify: ["A","B","C"]
|
||||
`
|
||||
|
||||
var b bytes.Buffer
|
||||
|
|
Loading…
Reference in a new issue