diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2024-03-01 15:11:51 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-01 07:11:51 +0000 |
commit | e71eb8930a5d0f60874b038c223498b41ad65592 (patch) | |
tree | f95ac2c5ed1854929ef63dddeddf8720963477f5 /modules/templates | |
parent | 58ce1de994c2a036ebf7137c143ce193694d740d (diff) | |
download | gitea-e71eb8930a5d0f60874b038c223498b41ad65592.tar.gz gitea-e71eb8930a5d0f60874b038c223498b41ad65592.zip |
Refactor some Str2html code (#29397)
This PR touches the most interesting part of the "template refactoring".
1. Unclear variable type. Especially for "web/feed/convert.go":
sometimes it uses text, sometimes it uses HTML.
2. Assign text content to "RenderedContent" field, for example: `
project.RenderedContent = project.Description` in web/org/projects.go
3. Assign rendered content to text field, for example: `r.Note =
rendered content` in web/repo/release.go
4. (possible) Incorrectly calling `{{Str2html
.PackageDescriptor.Metadata.ReleaseNotes}}` in
package/content/nuget.tmpl, I guess the name Str2html misleads
developers to use it to "render string to html", but it only sanitizes.
if ReleaseNotes really contains HTML, then this is not a problem.
Diffstat (limited to 'modules/templates')
-rw-r--r-- | modules/templates/util_render.go | 2 | ||||
-rw-r--r-- | modules/templates/util_string.go | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/modules/templates/util_render.go b/modules/templates/util_render.go index 1d9635410b..cdff31698c 100644 --- a/modules/templates/util_render.go +++ b/modules/templates/util_render.go @@ -208,7 +208,7 @@ func RenderMarkdownToHtml(ctx context.Context, input string) template.HTML { //n if err != nil { log.Error("RenderString: %v", err) } - return template.HTML(output) + return output } func RenderLabels(ctx context.Context, labels []*issues_model.Label, repoLink string) template.HTML { diff --git a/modules/templates/util_string.go b/modules/templates/util_string.go index 2771b1e223..479b755da1 100644 --- a/modules/templates/util_string.go +++ b/modules/templates/util_string.go @@ -4,6 +4,8 @@ package templates import ( + "fmt" + "html/template" "strings" "code.gitea.io/gitea/modules/base" @@ -17,6 +19,19 @@ func NewStringUtils() *StringUtils { return &stringUtils } +func (su *StringUtils) ToString(v any) string { + switch v := v.(type) { + case string: + return v + case template.HTML: + return string(v) + case fmt.Stringer: + return v.String() + default: + return fmt.Sprint(v) + } +} + func (su *StringUtils) HasPrefix(s, prefix string) bool { return strings.HasPrefix(s, prefix) } |