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 /models | |
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 'models')
-rw-r--r-- | models/issues/comment.go | 5 | ||||
-rw-r--r-- | models/issues/issue.go | 3 | ||||
-rw-r--r-- | models/issues/milestone.go | 5 | ||||
-rw-r--r-- | models/project/project.go | 3 | ||||
-rw-r--r-- | models/repo/release.go | 3 |
5 files changed, 12 insertions, 7 deletions
diff --git a/models/issues/comment.go b/models/issues/comment.go index c7b22f3cca..da91a83384 100644 --- a/models/issues/comment.go +++ b/models/issues/comment.go @@ -8,6 +8,7 @@ package issues import ( "context" "fmt" + "html/template" "strconv" "unicode/utf8" @@ -259,8 +260,8 @@ type Comment struct { CommitID int64 Line int64 // - previous line / + proposed line TreePath string - Content string `xorm:"LONGTEXT"` - RenderedContent string `xorm:"-"` + Content string `xorm:"LONGTEXT"` + RenderedContent template.HTML `xorm:"-"` // Path represents the 4 lines of code cemented by this comment Patch string `xorm:"-"` diff --git a/models/issues/issue.go b/models/issues/issue.go index 90aad10bb9..563a780dcb 100644 --- a/models/issues/issue.go +++ b/models/issues/issue.go @@ -7,6 +7,7 @@ package issues import ( "context" "fmt" + "html/template" "regexp" "slices" @@ -105,7 +106,7 @@ type Issue struct { OriginalAuthorID int64 `xorm:"index"` Title string `xorm:"name"` Content string `xorm:"LONGTEXT"` - RenderedContent string `xorm:"-"` + RenderedContent template.HTML `xorm:"-"` Labels []*Label `xorm:"-"` MilestoneID int64 `xorm:"INDEX"` Milestone *Milestone `xorm:"-"` diff --git a/models/issues/milestone.go b/models/issues/milestone.go index f663d42fe9..ea52a64c81 100644 --- a/models/issues/milestone.go +++ b/models/issues/milestone.go @@ -6,6 +6,7 @@ package issues import ( "context" "fmt" + "html/template" "strings" "code.gitea.io/gitea/models/db" @@ -47,8 +48,8 @@ type Milestone struct { RepoID int64 `xorm:"INDEX"` Repo *repo_model.Repository `xorm:"-"` Name string - Content string `xorm:"TEXT"` - RenderedContent string `xorm:"-"` + Content string `xorm:"TEXT"` + RenderedContent template.HTML `xorm:"-"` IsClosed bool NumIssues int NumClosedIssues int diff --git a/models/project/project.go b/models/project/project.go index d2fca6cdc8..42b06e58c9 100644 --- a/models/project/project.go +++ b/models/project/project.go @@ -6,6 +6,7 @@ package project import ( "context" "fmt" + "html/template" "code.gitea.io/gitea/models/db" repo_model "code.gitea.io/gitea/models/repo" @@ -100,7 +101,7 @@ type Project struct { CardType CardType Type Type - RenderedContent string `xorm:"-"` + RenderedContent template.HTML `xorm:"-"` CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` diff --git a/models/repo/release.go b/models/repo/release.go index 9287931dd5..a9f65f6c3e 100644 --- a/models/repo/release.go +++ b/models/repo/release.go @@ -7,6 +7,7 @@ package repo import ( "context" "fmt" + "html/template" "net/url" "sort" "strconv" @@ -80,7 +81,7 @@ type Release struct { NumCommits int64 NumCommitsBehind int64 `xorm:"-"` Note string `xorm:"TEXT"` - RenderedNote string `xorm:"-"` + RenderedNote template.HTML `xorm:"-"` IsDraft bool `xorm:"NOT NULL DEFAULT false"` IsPrerelease bool `xorm:"NOT NULL DEFAULT false"` IsTag bool `xorm:"NOT NULL DEFAULT false"` // will be true only if the record is a tag and has no related releases |