tpl: Update Jsonify to return pretty-print output
authorSean Prashad <S.Prashad@outlook.com>
Sun, 21 Oct 2018 02:44:15 +0000 (22:44 -0400)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 21 Oct 2018 21:36:35 +0000 (23:36 +0200)
Fixes #5040

docs/content/en/functions/jsonify.md
tpl/encoding/encoding.go
tpl/encoding/encoding_test.go
tpl/encoding/init.go

index 5c670244f276e97cffec9c2b84ade8f308d4010f..98ad3c78baf2c5eeecb5be6f4ed68171edb1fe09 100644 (file)
@@ -1,7 +1,7 @@
 ---
 title: jsonify
 linktitle: jsonify
-description: Encodes a given object to JSON.
+description: Encodes a given object to JSON, returning pretty printed output.
 godocref:
 date: 2017-02-01
 publishdate: 2017-02-01
index 4b02c426a93dd6752f68988e0c27f28732c91a01..d9c2bdfd64d0307920763b344fe94adde2e1ae07 100644 (file)
@@ -50,9 +50,9 @@ func (ns *Namespace) Base64Encode(content interface{}) (string, error) {
        return base64.StdEncoding.EncodeToString([]byte(conv)), nil
 }
 
-// Jsonify encodes a given object to JSON.
+// Jsonify encodes a given object to JSON, returning pretty printed output.
 func (ns *Namespace) Jsonify(v interface{}) (template.HTML, error) {
-       b, err := json.Marshal(v)
+       b, err := json.MarshalIndent(v, "", "  ")
        if err != nil {
                return "", err
        }
index 8242561b656a967710978fb5c7d238790c92daf0..fdb12e349d45804fb8c6612d945f376fa79e4905 100644 (file)
@@ -88,7 +88,7 @@ func TestJsonify(t *testing.T) {
                v      interface{}
                expect interface{}
        }{
-               {[]string{"a", "b"}, template.HTML(`["a","b"]`)},
+               {[]string{"a", "b"}, template.HTML("[\n  \"a\",\n  \"b\"\n]")},
                {tstNoStringer{}, template.HTML("{}")},
                {nil, template.HTML("null")},
                // errors
index bad1804de8fcddc834d21912218e3202b46f76a3..902a2b0030c8ec790c2f935c44cf8eba3c28ed03 100644 (file)
@@ -47,7 +47,7 @@ func init() {
                ns.AddMethodMapping(ctx.Jsonify,
                        []string{"jsonify"},
                        [][2]string{
-                               {`{{ (slice "A" "B" "C") | jsonify }}`, `["A","B","C"]`},
+                               {`{{ (slice "A" "B" "C") | jsonify }}`, "[\n  \"A\",\n  \"B\",\n  \"C\"\n]"},
                        },
                )