Skip to content

Commit ecc4244

Browse files
committed
fix render metas
1 parent 00e9824 commit ecc4244

File tree

19 files changed

+120
-107
lines changed

19 files changed

+120
-107
lines changed

models/repo/repo.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@ func (repo *Repository) composeCommonMetas(ctx context.Context) map[string]strin
517517
func (repo *Repository) ComposeMetas(ctx context.Context) map[string]string {
518518
metas := maps.Clone(repo.composeCommonMetas(ctx))
519519
metas["markdownLineBreakStyle"] = "comment"
520-
metas["markdownAllowShortIssuePattern"] = "true"
520+
metas["markupAllowShortIssuePattern"] = "true"
521521
return metas
522522
}
523523

@@ -526,7 +526,7 @@ func (repo *Repository) ComposeUncycloMetas(ctx context.Context) map[string]string
526526
// does wiki need the "teams" and "org" from common metas?
527527
metas := maps.Clone(repo.composeCommonMetas(ctx))
528528
metas["markdownLineBreakStyle"] = "document"
529-
metas["markdownAllowShortIssuePattern"] = "true"
529+
metas["markupAllowShortIssuePattern"] = "true"
530530
return metas
531531
}
532532

models/repo/repo_test.go

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
// Copyright 2017 The Gitea Authors. All rights reserved.
22
// SPDX-License-Identifier: MIT
33

4-
package repo_test
4+
package repo
55

66
import (
77
"testing"
88

99
"code.gitea.io/gitea/models/db"
10-
repo_model "code.gitea.io/gitea/models/repo"
1110
"code.gitea.io/gitea/models/unit"
1211
"code.gitea.io/gitea/models/unittest"
1312
user_model "code.gitea.io/gitea/models/user"
@@ -20,18 +19,18 @@ import (
2019
)
2120

2221
var (
23-
countRepospts = repo_model.CountRepositoryOptions{OwnerID: 10}
24-
countReposptsPublic = repo_model.CountRepositoryOptions{OwnerID: 10, Private: optional.Some(false)}
25-
countReposptsPrivate = repo_model.CountRepositoryOptions{OwnerID: 10, Private: optional.Some(true)}
22+
countRepospts = CountRepositoryOptions{OwnerID: 10}
23+
countReposptsPublic = CountRepositoryOptions{OwnerID: 10, Private: optional.Some(false)}
24+
countReposptsPrivate = CountRepositoryOptions{OwnerID: 10, Private: optional.Some(true)}
2625
)
2726

2827
func TestGetRepositoryCount(t *testing.T) {
2928
assert.NoError(t, unittest.PrepareTestDatabase())
3029

3130
ctx := db.DefaultContext
32-
count, err1 := repo_model.CountRepositories(ctx, countRepospts)
33-
privateCount, err2 := repo_model.CountRepositories(ctx, countReposptsPrivate)
34-
publicCount, err3 := repo_model.CountRepositories(ctx, countReposptsPublic)
31+
count, err1 := CountRepositories(ctx, countRepospts)
32+
privateCount, err2 := CountRepositories(ctx, countReposptsPrivate)
33+
publicCount, err3 := CountRepositories(ctx, countReposptsPublic)
3534
assert.NoError(t, err1)
3635
assert.NoError(t, err2)
3736
assert.NoError(t, err3)
@@ -42,45 +41,45 @@ func TestGetRepositoryCount(t *testing.T) {
4241
func TestGetPublicRepositoryCount(t *testing.T) {
4342
assert.NoError(t, unittest.PrepareTestDatabase())
4443

45-
count, err := repo_model.CountRepositories(db.DefaultContext, countReposptsPublic)
44+
count, err := CountRepositories(db.DefaultContext, countReposptsPublic)
4645
assert.NoError(t, err)
4746
assert.Equal(t, int64(1), count)
4847
}
4948

5049
func TestGetPrivateRepositoryCount(t *testing.T) {
5150
assert.NoError(t, unittest.PrepareTestDatabase())
5251

53-
count, err := repo_model.CountRepositories(db.DefaultContext, countReposptsPrivate)
52+
count, err := CountRepositories(db.DefaultContext, countReposptsPrivate)
5453
assert.NoError(t, err)
5554
assert.Equal(t, int64(2), count)
5655
}
5756

5857
func TestRepoAPIURL(t *testing.T) {
5958
assert.NoError(t, unittest.PrepareTestDatabase())
60-
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 10})
59+
repo := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 10})
6160

6261
assert.Equal(t, "https://try.gitea.io/api/v1/repos/user12/repo10", repo.APIURL())
6362
}
6463

6564
func TestWatchRepo(t *testing.T) {
6665
assert.NoError(t, unittest.PrepareTestDatabase())
6766

68-
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3})
67+
repo := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 3})
6968
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
7069

71-
assert.NoError(t, repo_model.WatchRepo(db.DefaultContext, user, repo, true))
72-
unittest.AssertExistsAndLoadBean(t, &repo_model.Watch{RepoID: repo.ID, UserID: user.ID})
73-
unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: repo.ID})
70+
assert.NoError(t, WatchRepo(db.DefaultContext, user, repo, true))
71+
unittest.AssertExistsAndLoadBean(t, &Watch{RepoID: repo.ID, UserID: user.ID})
72+
unittest.CheckConsistencyFor(t, &Repository{ID: repo.ID})
7473

75-
assert.NoError(t, repo_model.WatchRepo(db.DefaultContext, user, repo, false))
76-
unittest.AssertNotExistsBean(t, &repo_model.Watch{RepoID: repo.ID, UserID: user.ID})
77-
unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: repo.ID})
74+
assert.NoError(t, WatchRepo(db.DefaultContext, user, repo, false))
75+
unittest.AssertNotExistsBean(t, &Watch{RepoID: repo.ID, UserID: user.ID})
76+
unittest.CheckConsistencyFor(t, &Repository{ID: repo.ID})
7877
}
7978

8079
func TestMetas(t *testing.T) {
8180
assert.NoError(t, unittest.PrepareTestDatabase())
8281

83-
repo := &repo_model.Repository{Name: "testRepo"}
82+
repo := &Repository{Name: "testRepo"}
8483
repo.Owner = &user_model.User{Name: "testOwner"}
8584
repo.OwnerName = repo.Owner.Name
8685

@@ -90,15 +89,15 @@ func TestMetas(t *testing.T) {
9089
assert.Equal(t, "testRepo", metas["repo"])
9190
assert.Equal(t, "testOwner", metas["user"])
9291

93-
externalTracker := repo_model.RepoUnit{
92+
externalTracker := RepoUnit{
9493
Type: unit.TypeExternalTracker,
95-
Config: &repo_model.ExternalTrackerConfig{
94+
Config: &ExternalTrackerConfig{
9695
ExternalTrackerFormat: "https://someurl.com/{user}/{repo}/{issue}",
9796
},
9897
}
9998

10099
testSuccess := func(expectedStyle string) {
101-
repo.Units = []*repo_model.RepoUnit{&externalTracker}
100+
repo.Units = []*RepoUnit{&externalTracker}
102101
repo.commonRenderingMetas = nil
103102
metas := repo.ComposeMetas(db.DefaultContext)
104103
assert.Equal(t, expectedStyle, metas["style"])
@@ -118,7 +117,7 @@ func TestMetas(t *testing.T) {
118117
externalTracker.ExternalTrackerConfig().ExternalTrackerStyle = markup.IssueNameStyleRegexp
119118
testSuccess(markup.IssueNameStyleRegexp)
120119

121-
repo, err := repo_model.GetRepositoryByID(db.DefaultContext, 3)
120+
repo, err := GetRepositoryByID(db.DefaultContext, 3)
122121
assert.NoError(t, err)
123122

124123
metas = repo.ComposeMetas(db.DefaultContext)
@@ -132,15 +131,15 @@ func TestGetRepositoryByURL(t *testing.T) {
132131
assert.NoError(t, unittest.PrepareTestDatabase())
133132

134133
t.Run("InvalidPath", func(t *testing.T) {
135-
repo, err := repo_model.GetRepositoryByURL(db.DefaultContext, "something")
134+
repo, err := GetRepositoryByURL(db.DefaultContext, "something")
136135

137136
assert.Nil(t, repo)
138137
assert.Error(t, err)
139138
})
140139

141140
t.Run("ValidHttpURL", func(t *testing.T) {
142141
test := func(t *testing.T, url string) {
143-
repo, err := repo_model.GetRepositoryByURL(db.DefaultContext, url)
142+
repo, err := GetRepositoryByURL(db.DefaultContext, url)
144143

145144
assert.NotNil(t, repo)
146145
assert.NoError(t, err)
@@ -155,7 +154,7 @@ func TestGetRepositoryByURL(t *testing.T) {
155154

156155
t.Run("ValidGitSshURL", func(t *testing.T) {
157156
test := func(t *testing.T, url string) {
158-
repo, err := repo_model.GetRepositoryByURL(db.DefaultContext, url)
157+
repo, err := GetRepositoryByURL(db.DefaultContext, url)
159158

160159
assert.NotNil(t, repo)
161160
assert.NoError(t, err)
@@ -173,7 +172,7 @@ func TestGetRepositoryByURL(t *testing.T) {
173172

174173
t.Run("ValidImplicitSshURL", func(t *testing.T) {
175174
test := func(t *testing.T, url string) {
176-
repo, err := repo_model.GetRepositoryByURL(db.DefaultContext, url)
175+
repo, err := GetRepositoryByURL(db.DefaultContext, url)
177176

178177
assert.NotNil(t, repo)
179178
assert.NoError(t, err)
@@ -200,21 +199,21 @@ func TestComposeSSHCloneURL(t *testing.T) {
200199
setting.SSH.Domain = "domain"
201200
setting.SSH.Port = 22
202201
setting.Repository.UseCompatSSHURI = false
203-
assert.Equal(t, "git@domain:user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
202+
assert.Equal(t, "git@domain:user/repo.git", ComposeSSHCloneURL("user", "repo"))
204203
setting.Repository.UseCompatSSHURI = true
205-
assert.Equal(t, "ssh://git@domain/user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
204+
assert.Equal(t, "ssh://git@domain/user/repo.git", ComposeSSHCloneURL("user", "repo"))
206205
// test SSH_DOMAIN while use non-standard SSH port
207206
setting.SSH.Port = 123
208207
setting.Repository.UseCompatSSHURI = false
209-
assert.Equal(t, "ssh://git@domain:123/user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
208+
assert.Equal(t, "ssh://git@domain:123/user/repo.git", ComposeSSHCloneURL("user", "repo"))
210209
setting.Repository.UseCompatSSHURI = true
211-
assert.Equal(t, "ssh://git@domain:123/user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
210+
assert.Equal(t, "ssh://git@domain:123/user/repo.git", ComposeSSHCloneURL("user", "repo"))
212211

213212
// test IPv6 SSH_DOMAIN
214213
setting.Repository.UseCompatSSHURI = false
215214
setting.SSH.Domain = "::1"
216215
setting.SSH.Port = 22
217-
assert.Equal(t, "git@[::1]:user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
216+
assert.Equal(t, "git@[::1]:user/repo.git", ComposeSSHCloneURL("user", "repo"))
218217
setting.SSH.Port = 123
219-
assert.Equal(t, "ssh://git@[::1]:123/user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
218+
assert.Equal(t, "ssh://git@[::1]:123/user/repo.git", ComposeSSHCloneURL("user", "repo"))
220219
}

modules/markup/html_internal_test.go

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,19 @@ func link(href, class, contents string) string {
4040
}
4141

4242
var numericMetas = map[string]string{
43-
"format": "https://someurl.com/{user}/{repo}/{index}",
44-
"user": "someUser",
45-
"repo": "someRepo",
46-
"style": IssueNameStyleNumeric,
43+
"format": "https://someurl.com/{user}/{repo}/{index}",
44+
"user": "someUser",
45+
"repo": "someRepo",
46+
"style": IssueNameStyleNumeric,
47+
"markupAllowShortIssuePattern": "true",
4748
}
4849

4950
var alphanumericMetas = map[string]string{
50-
"format": "https://someurl.com/{user}/{repo}/{index}",
51-
"user": "someUser",
52-
"repo": "someRepo",
53-
"style": IssueNameStyleAlphanumeric,
51+
"format": "https://someurl.com/{user}/{repo}/{index}",
52+
"user": "someUser",
53+
"repo": "someRepo",
54+
"style": IssueNameStyleAlphanumeric,
55+
"markupAllowShortIssuePattern": "true",
5456
}
5557

5658
var regexpMetas = map[string]string{
@@ -62,14 +64,15 @@ var regexpMetas = map[string]string{
6264

6365
// these values should match the TestOrgRepo const above
6466
var localMetas = map[string]string{
65-
"user": "test-owner",
66-
"repo": "test-repo",
67+
"user": "test-owner",
68+
"repo": "test-repo",
69+
"markupAllowShortIssuePattern": "true",
6770
}
6871

6972
var localUncycloMetas = map[string]string{
7073
"user": "test-owner",
7174
"repo": "test-repo",
72-
"renderContentMode": "wiki",
75+
"markupContentMode": "wiki",
7376
}
7477

7578
func TestRender_IssueIndexPattern(t *testing.T) {

modules/markup/html_issue.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func issueIndexPatternProcessor(ctx *RenderContext, node *html.Node) {
7070
// crossLinkOnly: do not parse "#123", only parse "owner/repo#123"
7171
// if there is no repo in the context, then the "#123" format can't be parsed
7272
// old logic: crossLinkOnly := ctx.Metas["mode"] == "document" && !ctx.IsUncyclo
73-
crossLinkOnly := ctx.Metas["markdownAllowShortIssuePattern"] != "true"
73+
crossLinkOnly := ctx.Metas["markupAllowShortIssuePattern"] != "true"
7474

7575
var (
7676
found bool

modules/markup/html_link.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func ResolveLink(ctx *RenderContext, link, userContentAnchorPrefix string) (resu
2020
isAnchorFragment := link != "" && link[0] == '#'
2121
if !isAnchorFragment && !IsFullURLString(link) {
2222
linkBase := ctx.Links.Base
23-
if ctx.IsContentModeUncyclo() {
23+
if ctx.IsMarkupContentUncyclo() {
2424
// no need to check if the link should be resolved as a wiki link or a wiki raw link
2525
// just use wiki link here, and it will be redirected to a wiki raw link if necessary
2626
linkBase = ctx.Links.UncycloLink()
@@ -147,7 +147,7 @@ func shortLinkProcessor(ctx *RenderContext, node *html.Node) {
147147
}
148148
if image {
149149
if !absoluteLink {
150-
link = util.URLJoin(ctx.Links.ResolveMediaLink(ctx.IsContentModeUncyclo()), link)
150+
link = util.URLJoin(ctx.Links.ResolveMediaLink(ctx.IsMarkupContentUncyclo()), link)
151151
}
152152
title := props["title"]
153153
if title == "" {

modules/markup/html_node.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func visitNodeImg(ctx *RenderContext, img *html.Node) (next *html.Node) {
1717
}
1818

1919
if IsNonEmptyRelativePath(attr.Val) {
20-
attr.Val = util.URLJoin(ctx.Links.ResolveMediaLink(ctx.IsContentModeUncyclo()), attr.Val)
20+
attr.Val = util.URLJoin(ctx.Links.ResolveMediaLink(ctx.IsMarkupContentUncyclo()), attr.Val)
2121

2222
// By default, the "<img>" tag should also be clickable,
2323
// because frontend use `<img>` to paste the re-scaled image into the markdown,
@@ -53,7 +53,7 @@ func visitNodeVideo(ctx *RenderContext, node *html.Node) (next *html.Node) {
5353
continue
5454
}
5555
if IsNonEmptyRelativePath(attr.Val) {
56-
attr.Val = util.URLJoin(ctx.Links.ResolveMediaLink(ctx.IsContentModeUncyclo()), attr.Val)
56+
attr.Val = util.URLJoin(ctx.Links.ResolveMediaLink(ctx.IsMarkupContentUncyclo()), attr.Val)
5757
}
5858
attr.Val = camoHandleLink(attr.Val)
5959
node.Attr[i] = attr

modules/markup/html_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ var (
3030
localUncycloMetas = map[string]string{
3131
"user": testRepoOwnerName,
3232
"repo": testRepoName,
33-
"renderContentMode": "wiki",
33+
"markupContentMode": "wiki",
3434
}
3535
)
3636

@@ -532,7 +532,7 @@ func TestRender_RelativeMedias(t *testing.T) {
532532
buffer, err := markdown.RenderString(&markup.RenderContext{
533533
Ctx: git.DefaultContext,
534534
Links: links,
535-
Metas: util.Iif(isUncyclo, localMetas, localUncycloMetas),
535+
Metas: util.Iif(isUncyclo, localUncycloMetas, localMetas),
536536
}, input)
537537
assert.NoError(t, err)
538538
return strings.TrimSpace(string(buffer))

0 commit comments

Comments
 (0)