Skip to content

Commit f9c2c67

Browse files
committed
fix
1 parent 41b4ef8 commit f9c2c67

16 files changed

+254
-69
lines changed

modules/markup/html.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,10 @@ func createLink(href, content, class string) *html.Node {
442442
a := &html.Node{
443443
Type: html.ElementNode,
444444
Data: atom.A.String(),
445-
Attr: []html.Attribute{{Key: "href", Val: href}},
445+
Attr: []html.Attribute{
446+
{Key: "href", Val: href},
447+
{Key: "data-markdown-generated-content"},
448+
},
446449
}
447450

448451
if class != "" {

modules/markup/html_codepreview_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@ func TestRenderCodePreview(t *testing.T) {
3030
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(buffer))
3131
}
3232
test("http://localhost:3000/owner/repo/src/commit/0123456789/foo/bar.md#L10-L20", "<p><div>code preview</div></p>")
33-
test("http://other/owner/repo/src/commit/0123456789/foo/bar.md#L10-L20", `<p><a href="http://other/owner/repo/src/commit/0123456789/foo/bar.md#L10-L20" rel="nofollow">http://other/owner/repo/src/commit/0123456789/foo/bar.md#L10-L20</a></p>`)
33+
test("http://other/owner/repo/src/commit/0123456789/foo/bar.md#L10-L20", `<p><a href="http://other/owner/repo/src/commit/0123456789/foo/bar.md#L10-L20" data-markdown-generated-content="" rel="nofollow">http://other/owner/repo/src/commit/0123456789/foo/bar.md#L10-L20</a></p>`)
3434
}

modules/markup/html_internal_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,9 @@ func numericIssueLink(baseURL, class string, index int, marker string) string {
3333

3434
// link an HTML link
3535
func link(href, class, contents string) string {
36-
if class != "" {
37-
class = " class=\"" + class + "\""
38-
}
39-
40-
return fmt.Sprintf("<a href=\"%s\"%s>%s</a>", href, class, contents)
36+
extra := ` data-markdown-generated-content=""`
37+
extra += util.Iif(class != "", ` class="`+class+`"`, "")
38+
return fmt.Sprintf(`<a href="%s"%s>%s</a>`, href, extra, contents)
4139
}
4240

4341
var numericMetas = map[string]string{
@@ -353,7 +351,9 @@ func TestRender_FullIssueURLs(t *testing.T) {
353351
Metas: localMetas,
354352
}, []processor{fullIssuePatternProcessor}, strings.NewReader(input), &result)
355353
assert.NoError(t, err)
356-
assert.Equal(t, expected, result.String())
354+
actual := result.String()
355+
actual = strings.ReplaceAll(actual, ` data-markdown-generated-content=""`, "")
356+
assert.Equal(t, expected, actual)
357357
}
358358
test("Here is a link https://git.osgeo.org/gogs/postgis/postgis/pulls/6",
359359
"Here is a link https://git.osgeo.org/gogs/postgis/postgis/pulls/6")

modules/markup/html_test.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,9 @@ func TestRender_CrossReferences(t *testing.T) {
116116
Metas: localMetas,
117117
}, input)
118118
assert.NoError(t, err)
119-
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(buffer))
119+
actual := strings.TrimSpace(buffer)
120+
actual = strings.ReplaceAll(actual, ` data-markdown-generated-content=""`, "")
121+
assert.Equal(t, strings.TrimSpace(expected), actual)
120122
}
121123

122124
test(
@@ -156,7 +158,9 @@ func TestRender_links(t *testing.T) {
156158
},
157159
}, input)
158160
assert.NoError(t, err)
159-
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(buffer))
161+
actual := strings.TrimSpace(buffer)
162+
actual = strings.ReplaceAll(actual, ` data-markdown-generated-content=""`, "")
163+
assert.Equal(t, strings.TrimSpace(expected), actual)
160164
}
161165

162166
oldCustomURLSchemes := setting.Markdown.CustomURLSchemes
@@ -267,7 +271,9 @@ func TestRender_email(t *testing.T) {
267271
},
268272
}, input)
269273
assert.NoError(t, err)
270-
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(res))
274+
actual := strings.TrimSpace(res)
275+
actual = strings.ReplaceAll(actual, ` data-markdown-generated-content=""`, "")
276+
assert.Equal(t, strings.TrimSpace(expected), actual)
271277
}
272278
// Text that should be turned into email link
273279

@@ -616,7 +622,9 @@ func TestPostProcess_RenderDocument(t *testing.T) {
616622
Metas: localMetas,
617623
}, strings.NewReader(input), &res)
618624
assert.NoError(t, err)
619-
assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(res.String()))
625+
actual := strings.TrimSpace(res.String())
626+
actual = strings.ReplaceAll(actual, ` data-markdown-generated-content=""`, "")
627+
assert.Equal(t, strings.TrimSpace(expected), actual)
620628
}
621629

622630
// Issue index shouldn't be post processing in a document.

modules/markup/markdown/markdown_test.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,8 @@ func TestTotal_RenderWiki(t *testing.T) {
311311
IsWiki: true,
312312
}, sameCases[i])
313313
assert.NoError(t, err)
314-
assert.Equal(t, template.HTML(answers[i]), line)
314+
actual := strings.ReplaceAll(string(line), ` data-markdown-generated-content=""`, "")
315+
assert.Equal(t, answers[i], actual)
315316
}
316317

317318
testCases := []string{
@@ -336,7 +337,8 @@ func TestTotal_RenderWiki(t *testing.T) {
336337
IsWiki: true,
337338
}, testCases[i])
338339
assert.NoError(t, err)
339-
assert.Equal(t, template.HTML(testCases[i+1]), line)
340+
actual := strings.ReplaceAll(string(line), ` data-markdown-generated-content=""`, "")
341+
assert.EqualValues(t, testCases[i+1], actual)
340342
}
341343
}
342344

@@ -356,7 +358,8 @@ func TestTotal_RenderString(t *testing.T) {
356358
Metas: localMetas,
357359
}, sameCases[i])
358360
assert.NoError(t, err)
359-
assert.Equal(t, template.HTML(answers[i]), line)
361+
actual := strings.ReplaceAll(string(line), ` data-markdown-generated-content=""`, "")
362+
assert.Equal(t, answers[i], actual)
360363
}
361364

362365
testCases := []string{}
@@ -996,7 +999,8 @@ space</p>
996999
for i, c := range cases {
9971000
result, err := markdown.RenderString(&markup.RenderContext{Ctx: context.Background(), Links: c.Links, IsWiki: c.IsWiki}, input)
9981001
assert.NoError(t, err, "Unexpected error in testcase: %v", i)
999-
assert.Equal(t, c.Expected, string(result), "Unexpected result in testcase %v", i)
1002+
actual := strings.ReplaceAll(string(result), ` data-markdown-generated-content=""`, "")
1003+
assert.Equal(t, c.Expected, actual, "Unexpected result in testcase %v", i)
10001004
}
10011005
}
10021006

modules/markup/sanitizer_default.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ func (st *Sanitizer) createDefaultPolicy() *bluemonday.Policy {
107107
"start", "summary", "tabindex", "target",
108108
"title", "type", "usemap", "valign", "value",
109109
"vspace", "width", "itemprop",
110+
"data-markdown-generated-content",
110111
}
111112

112113
generalSafeElements := []string{

modules/templates/util_render_test.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -129,18 +129,18 @@ com 88fc37a3c0a4dda553bdcfc80c178a58247f42fb mit
129129
<a href="/mention-user" class="mention">@mention-user</a> test
130130
<a href="/user13/repo11/issues/123" class="ref-issue">#123</a>
131131
space`
132-
133-
assert.EqualValues(t, expected, newTestRenderUtils().RenderCommitBody(testInput(), testMetas))
132+
actual := strings.ReplaceAll(string(newTestRenderUtils().RenderCommitBody(testInput(), testMetas)), ` data-markdown-generated-content=""`, "")
133+
assert.EqualValues(t, expected, actual)
134134
}
135135

136136
func TestRenderCommitMessage(t *testing.T) {
137-
expected := `space <a href="/mention-user" class="mention">@mention-user</a> `
137+
expected := `space <a href="/mention-user" data-markdown-generated-content="" class="mention">@mention-user</a> `
138138

139139
assert.EqualValues(t, expected, newTestRenderUtils().RenderCommitMessage(testInput(), testMetas))
140140
}
141141

142142
func TestRenderCommitMessageLinkSubject(t *testing.T) {
143-
expected := `<a href="https://example.com/link" class="default-link muted">space </a><a href="/mention-user" class="mention">@mention-user</a>`
143+
expected := `<a href="https://example.com/link" class="default-link muted">space </a><a href="/mention-user" data-markdown-generated-content="" class="mention">@mention-user</a>`
144144

145145
assert.EqualValues(t, expected, newTestRenderUtils().RenderCommitMessageLinkSubject(testInput(), "https://example.com/link", testMetas))
146146
}
@@ -168,7 +168,8 @@ [email protected]
168168
space<SPACE><SPACE>
169169
`
170170
expected = strings.ReplaceAll(expected, "<SPACE>", " ")
171-
assert.EqualValues(t, expected, newTestRenderUtils().RenderIssueTitle(testInput(), testMetas))
171+
actual := strings.ReplaceAll(string(newTestRenderUtils().RenderIssueTitle(testInput(), testMetas)), ` data-markdown-generated-content=""`, "")
172+
assert.EqualValues(t, expected, actual)
172173
}
173174

174175
func TestRenderMarkdownToHtml(t *testing.T) {
@@ -193,7 +194,8 @@ com 88fc37a3c0a4dda553bdcfc80c178a58247f42fb mit
193194
#123
194195
space</p>
195196
`
196-
assert.Equal(t, expected, string(newTestRenderUtils().MarkdownToHtml(testInput())))
197+
actual := strings.ReplaceAll(string(newTestRenderUtils().MarkdownToHtml(testInput())), ` data-markdown-generated-content=""`, "")
198+
assert.Equal(t, expected, actual)
197199
}
198200

199201
func TestRenderLabels(t *testing.T) {
@@ -211,5 +213,5 @@ func TestRenderLabels(t *testing.T) {
211213

212214
func TestUserMention(t *testing.T) {
213215
rendered := newTestRenderUtils().MarkdownToHtml("@no-such-user @mention-user @mention-user")
214-
assert.EqualValues(t, `<p>@no-such-user <a href="/mention-user" rel="nofollow">@mention-user</a> <a href="/mention-user" rel="nofollow">@mention-user</a></p>`, strings.TrimSpace(string(rendered)))
216+
assert.EqualValues(t, `<p>@no-such-user <a href="/mention-user" data-markdown-generated-content="" rel="nofollow">@mention-user</a> <a href="/mention-user" data-markdown-generated-content="" rel="nofollow">@mention-user</a></p>`, strings.TrimSpace(string(rendered)))
215217
}

routers/api/v1/misc/markup_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ func testRenderMarkup(t *testing.T, mode string, wiki bool, filePath, text, expe
3838
ctx, resp := contexttest.MockAPIContext(t, "POST /api/v1/markup")
3939
web.SetForm(ctx, &options)
4040
Markup(ctx)
41-
assert.Equal(t, expectedBody, resp.Body.String())
41+
actual := strings.ReplaceAll(resp.Body.String(), ` data-markdown-generated-content=""`, "")
42+
assert.Equal(t, expectedBody, actual)
4243
assert.Equal(t, expectedCode, resp.Code)
4344
resp.Body.Reset()
4445
}
@@ -58,7 +59,8 @@ func testRenderMarkdown(t *testing.T, mode string, wiki bool, text, responseBody
5859
ctx, resp := contexttest.MockAPIContext(t, "POST /api/v1/markdown")
5960
web.SetForm(ctx, &options)
6061
Markdown(ctx)
61-
assert.Equal(t, responseBody, resp.Body.String())
62+
actual := strings.ReplaceAll(resp.Body.String(), ` data-markdown-generated-content=""`, "")
63+
assert.Equal(t, responseBody, actual)
6264
assert.Equal(t, responseCode, resp.Code)
6365
resp.Body.Reset()
6466
}

templates/repo/diff/comments.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
{{end}}
5050
{{end}}
5151
{{template "repo/issue/view_content/add_reaction" dict "ActionURL" (printf "%s/comments/%d/reactions" $.root.RepoLink .ID)}}
52-
{{template "repo/issue/view_content/context_menu" dict "ctxData" $.root "item" . "delete" true "issue" false "diff" true "IsCommentPoster" (and $.root.IsSigned (eq $.root.SignedUserID .PosterID))}}
52+
{{template "repo/issue/view_content/context_menu" dict "item" . "delete" true "issue" false "diff" true "IsCommentPoster" (and $.root.IsSigned (eq $.root.SignedUserID .PosterID))}}
5353
</div>
5454
</div>
5555
<div class="ui attached segment comment-body">

templates/repo/issue/view_content.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
{{if not $.Repository.IsArchived}}
4949
{{template "repo/issue/view_content/add_reaction" dict "ActionURL" (printf "%s/issues/%d/reactions" $.RepoLink .Issue.Index)}}
5050
{{end}}
51-
{{template "repo/issue/view_content/context_menu" dict "ctxData" $ "item" .Issue "delete" false "issue" true "diff" false "IsCommentPoster" $.IsIssuePoster}}
51+
{{template "repo/issue/view_content/context_menu" dict "item" .Issue "delete" false "issue" true "diff" false "IsCommentPoster" $.IsIssuePoster}}
5252
</div>
5353
</div>
5454
<div class="ui attached segment comment-body" role="article">

templates/repo/issue/view_content/comments.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
{{if not $.Repository.IsArchived}}
5656
{{template "repo/issue/view_content/add_reaction" dict "ActionURL" (printf "%s/comments/%d/reactions" $.RepoLink .ID)}}
5757
{{end}}
58-
{{template "repo/issue/view_content/context_menu" dict "ctxData" $ "item" . "delete" true "issue" true "diff" false "IsCommentPoster" (and $.IsSigned (eq $.SignedUserID .PosterID))}}
58+
{{template "repo/issue/view_content/context_menu" dict "item" . "delete" true "issue" true "diff" false "IsCommentPoster" (and $.IsSigned (eq $.SignedUserID .PosterID))}}
5959
</div>
6060
</div>
6161
<div class="ui attached segment comment-body" role="article">
@@ -430,7 +430,7 @@
430430
{{template "repo/issue/view_content/show_role" dict "ShowRole" .ShowRole}}
431431
{{if not $.Repository.IsArchived}}
432432
{{template "repo/issue/view_content/add_reaction" dict "ActionURL" (printf "%s/comments/%d/reactions" $.RepoLink .ID)}}
433-
{{template "repo/issue/view_content/context_menu" dict "ctxData" $ "item" . "delete" false "issue" true "diff" false "IsCommentPoster" (and $.IsSigned (eq $.SignedUserID .PosterID))}}
433+
{{template "repo/issue/view_content/context_menu" dict "item" . "delete" false "issue" true "diff" false "IsCommentPoster" (and $.IsSigned (eq $.SignedUserID .PosterID))}}
434434
{{end}}
435435
</div>
436436
</div>

templates/repo/issue/view_content/context_menu.tmpl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,29 @@
55
<div class="menu">
66
{{$referenceUrl := ""}}
77
{{if .issue}}
8-
{{$referenceUrl = printf "%s#%s" .ctxData.Issue.Link .item.HashTag}}
8+
{{$referenceUrl = printf "%s#%s" ctx.RootData.Issue.Link .item.HashTag}}
99
{{else}}
10-
{{$referenceUrl = printf "%s/files#%s" .ctxData.Issue.Link .item.HashTag}}
10+
{{$referenceUrl = printf "%s/files#%s" ctx.RootData.Issue.Link .item.HashTag}}
1111
{{end}}
1212
<div class="item context js-aria-clickable" data-clipboard-text-type="url" data-clipboard-text="{{$referenceUrl}}">{{ctx.Locale.Tr "repo.issues.context.copy_link"}}</div>
13-
{{if .ctxData.IsSigned}}
13+
{{if ctx.RootData.IsSigned}}
1414
{{$needDivider := false}}
15-
{{if not .ctxData.Repository.IsArchived}}
15+
{{if not ctx.RootData.Repository.IsArchived}}
1616
{{$needDivider = true}}
1717
<div class="item context js-aria-clickable quote-reply {{if .diff}}quote-reply-diff{{end}}" data-target="{{.item.HashTag}}-raw">{{ctx.Locale.Tr "repo.issues.context.quote_reply"}}</div>
1818
{{if not ctx.Consts.RepoUnitTypeIssues.UnitGlobalDisabled}}
1919
<div class="item context js-aria-clickable reference-issue" data-target="{{.item.HashTag}}-raw" data-modal="#reference-issue-modal" data-poster="{{.item.Poster.GetDisplayName}}" data-poster-username="{{.item.Poster.Name}}" data-reference="{{$referenceUrl}}">{{ctx.Locale.Tr "repo.issues.context.reference_issue"}}</div>
2020
{{end}}
21-
{{if or .ctxData.Permission.IsAdmin .IsCommentPoster .ctxData.HasIssuesOrPullsWritePermission}}
21+
{{if or ctx.RootData.Permission.IsAdmin .IsCommentPoster ctx.RootData.HasIssuesOrPullsWritePermission}}
2222
<div class="divider"></div>
2323
<div class="item context js-aria-clickable edit-content">{{ctx.Locale.Tr "repo.issues.context.edit"}}</div>
2424
{{if .delete}}
25-
<div class="item context js-aria-clickable delete-comment" data-comment-id={{.item.HashTag}} data-url="{{.ctxData.RepoLink}}/comments/{{.item.ID}}/delete" data-locale="{{ctx.Locale.Tr "repo.issues.delete_comment_confirm"}}">{{ctx.Locale.Tr "repo.issues.context.delete"}}</div>
25+
<div class="item context js-aria-clickable delete-comment" data-comment-id={{.item.HashTag}} data-url="{{ctx.RootData.RepoLink}}/comments/{{.item.ID}}/delete" data-locale="{{ctx.Locale.Tr "repo.issues.delete_comment_confirm"}}">{{ctx.Locale.Tr "repo.issues.context.delete"}}</div>
2626
{{end}}
2727
{{end}}
2828
{{end}}
29-
{{$canUserBlock := call .ctxData.CanBlockUser .ctxData.SignedUser .item.Poster}}
30-
{{$canOrgBlock := and .ctxData.Repository.Owner.IsOrganization (call .ctxData.CanBlockUser .ctxData.Repository.Owner .item.Poster)}}
29+
{{$canUserBlock := call ctx.RootData.CanBlockUser ctx.RootData.SignedUser .item.Poster}}
30+
{{$canOrgBlock := and ctx.RootData.Repository.Owner.IsOrganization (call ctx.RootData.CanBlockUser ctx.RootData.Repository.Owner .item.Poster)}}
3131
{{if or $canOrgBlock $canUserBlock}}
3232
{{if $needDivider}}
3333
<div class="divider"></div>
@@ -36,7 +36,7 @@
3636
<div class="item context js-aria-clickable show-modal" data-modal="#block-user-modal" data-modal-modal-blockee="{{.item.Poster.Name}}" data-modal-modal-blockee-name="{{.item.Poster.GetDisplayName}}" data-modal-modal-form.action="{{AppSubUrl}}/user/settings/blocked_users">{{ctx.Locale.Tr "user.block.block.user"}}</div>
3737
{{end}}
3838
{{if $canOrgBlock}}
39-
<div class="item context js-aria-clickable show-modal" data-modal="#block-user-modal" data-modal-modal-blockee="{{.item.Poster.Name}}" data-modal-modal-blockee-name="{{.item.Poster.GetDisplayName}}" data-modal-modal-form.action="{{.ctxData.Repository.Owner.OrganisationLink}}/settings/blocked_users">{{ctx.Locale.Tr "user.block.block.org"}}</div>
39+
<div class="item context js-aria-clickable show-modal" data-modal="#block-user-modal" data-modal-modal-blockee="{{.item.Poster.Name}}" data-modal-modal-blockee-name="{{.item.Poster.GetDisplayName}}" data-modal-modal-form.action="{{ctx.RootData.Repository.Owner.OrganisationLink}}/settings/blocked_users">{{ctx.Locale.Tr "user.block.block.org"}}</div>
4040
{{end}}
4141
{{end}}
4242
{{end}}

templates/repo/issue/view_content/conversation.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@
8383
{{template "repo/issue/view_content/show_role" dict "ShowRole" .ShowRole}}
8484
{{if not $.Repository.IsArchived}}
8585
{{template "repo/issue/view_content/add_reaction" dict "ActionURL" (printf "%s/comments/%d/reactions" $.RepoLink .ID)}}
86-
{{template "repo/issue/view_content/context_menu" dict "ctxData" $ "item" . "delete" true "issue" true "diff" true "IsCommentPoster" (and $.IsSigned (eq $.SignedUserID .PosterID))}}
86+
{{template "repo/issue/view_content/context_menu" dict "item" . "delete" true "issue" true "diff" true "IsCommentPoster" (and $.IsSigned (eq $.SignedUserID .PosterID))}}
8787
{{end}}
8888
</div>
8989
</div>

0 commit comments

Comments
 (0)