forgejo/modules/templates/util_json.go
wxiaoguang 241b74f6c5
Improve template helper (#24417)
It seems that we really need the "context function" soon. So we should
clean up the helper functions first.

Major changes:

* Improve StringUtils and add JsonUtils
* Remove one-time-use helper functions like CompareLink
* Move other code (no change) to util_avatar/util_render/util_misc (no
need to propose changes for them)

I have tested the changed templates:


![image](https://user-images.githubusercontent.com/2114189/235283862-608dbf6b-2da3-4d06-8157-b523ca93edb4.png)


![image](https://user-images.githubusercontent.com/2114189/235283888-1dfc0471-e622-4d64-9d76-7859819580d3.png)


![image](https://user-images.githubusercontent.com/2114189/235283903-d559f14d-4abb-4a50-915f-2b9cbc381a7a.png)


![image](https://user-images.githubusercontent.com/2114189/235283955-b7b5adea-aca3-4758-b38a-3aae3f7c6048.png)

---------

Co-authored-by: Giteabot <teabot@gitea.io>
2023-04-29 08:02:29 -04:00

36 lines
622 B
Go

// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package templates
import (
"bytes"
"code.gitea.io/gitea/modules/json"
)
type JsonUtils struct{} //nolint:revive
var jsonUtils = JsonUtils{}
func NewJsonUtils() *JsonUtils { //nolint:revive
return &jsonUtils
}
func (su *JsonUtils) EncodeToString(v any) string {
out, err := json.Marshal(v)
if err != nil {
return ""
}
return string(out)
}
func (su *JsonUtils) PrettyIndent(s string) string {
var out bytes.Buffer
err := json.Indent(&out, []byte(s), "", " ")
if err != nil {
return ""
}
return out.String()
}