mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	Use ctx.metas for SHA hash links (#6645)
Since #6273 was merged, we now have access to proper context metas always. Update SHA generated links to use these instead of urlPrefix. Update tests as well. Fixes #4536.
This commit is contained in:
		| @@ -625,6 +625,9 @@ func crossReferenceIssueIndexPatternProcessor(ctx *postProcessCtx, node *html.No | |||||||
|  |  | ||||||
| // fullSha1PatternProcessor renders SHA containing URLs | // fullSha1PatternProcessor renders SHA containing URLs | ||||||
| func fullSha1PatternProcessor(ctx *postProcessCtx, node *html.Node) { | func fullSha1PatternProcessor(ctx *postProcessCtx, node *html.Node) { | ||||||
|  | 	if ctx.metas == nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
| 	m := anySHA1Pattern.FindStringSubmatchIndex(node.Data) | 	m := anySHA1Pattern.FindStringSubmatchIndex(node.Data) | ||||||
| 	if m == nil { | 	if m == nil { | ||||||
| 		return | 		return | ||||||
| @@ -686,7 +689,7 @@ func sha1CurrentPatternProcessor(ctx *postProcessCtx, node *html.Node) { | |||||||
| 	// Although unlikely, deadbeef and 1234567 are valid short forms of SHA1 hash | 	// Although unlikely, deadbeef and 1234567 are valid short forms of SHA1 hash | ||||||
| 	// as used by git and github for linking and thus we have to do similar. | 	// as used by git and github for linking and thus we have to do similar. | ||||||
| 	replaceContent(node, m[2], m[3], | 	replaceContent(node, m[2], m[3], | ||||||
| 		createCodeLink(util.URLJoin(ctx.urlPrefix, "commit", hash), base.ShortSha(hash))) | 		createCodeLink(util.URLJoin(setting.AppURL, ctx.metas["user"], ctx.metas["repo"], "commit", hash), base.ShortSha(hash))) | ||||||
| } | } | ||||||
|  |  | ||||||
| // emailAddressProcessor replaces raw email addresses with a mailto: link. | // emailAddressProcessor replaces raw email addresses with a mailto: link. | ||||||
|   | |||||||
| @@ -16,12 +16,17 @@ import ( | |||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | var localMetas = map[string]string{ | ||||||
|  | 	"user": "gogits", | ||||||
|  | 	"repo": "gogs", | ||||||
|  | } | ||||||
|  |  | ||||||
| func TestRender_Commits(t *testing.T) { | func TestRender_Commits(t *testing.T) { | ||||||
| 	setting.AppURL = AppURL | 	setting.AppURL = AppURL | ||||||
| 	setting.AppSubURL = AppSubURL | 	setting.AppSubURL = AppSubURL | ||||||
|  |  | ||||||
| 	test := func(input, expected string) { | 	test := func(input, expected string) { | ||||||
| 		buffer := RenderString(".md", input, setting.AppSubURL, nil) | 		buffer := RenderString(".md", input, setting.AppSubURL, localMetas) | ||||||
| 		assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(buffer))) | 		assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(buffer))) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -45,7 +50,7 @@ func TestRender_CrossReferences(t *testing.T) { | |||||||
| 	setting.AppSubURL = AppSubURL | 	setting.AppSubURL = AppSubURL | ||||||
|  |  | ||||||
| 	test := func(input, expected string) { | 	test := func(input, expected string) { | ||||||
| 		buffer := RenderString("a.md", input, setting.AppSubURL, nil) | 		buffer := RenderString("a.md", input, setting.AppSubURL, localMetas) | ||||||
| 		assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(buffer))) | 		assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(buffer))) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -195,7 +200,7 @@ func TestRender_ShortLinks(t *testing.T) { | |||||||
| 	test := func(input, expected, expectedWiki string) { | 	test := func(input, expected, expectedWiki string) { | ||||||
| 		buffer := markdown.RenderString(input, tree, nil) | 		buffer := markdown.RenderString(input, tree, nil) | ||||||
| 		assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(buffer))) | 		assert.Equal(t, strings.TrimSpace(expected), strings.TrimSpace(string(buffer))) | ||||||
| 		buffer = markdown.RenderWiki([]byte(input), setting.AppSubURL, nil) | 		buffer = markdown.RenderWiki([]byte(input), setting.AppSubURL, localMetas) | ||||||
| 		assert.Equal(t, strings.TrimSpace(expectedWiki), strings.TrimSpace(string(buffer))) | 		assert.Equal(t, strings.TrimSpace(expectedWiki), strings.TrimSpace(string(buffer))) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -103,6 +103,8 @@ func testAnswers(baseURLContent, baseURLImages string) []string { | |||||||
| <li><a href="` + baseURLContent + `/Tips" rel="nofollow">Tips</a></li> | <li><a href="` + baseURLContent + `/Tips" rel="nofollow">Tips</a></li> | ||||||
| </ul> | </ul> | ||||||
|  |  | ||||||
|  | <p>See commit <a href="http://localhost:3000/gogits/gogs/commit/fc7f44dadf" rel="nofollow"><code>fc7f44dadf</code></a></p> | ||||||
|  |  | ||||||
| <p>Ideas and codes</p> | <p>Ideas and codes</p> | ||||||
|  |  | ||||||
| <ul> | <ul> | ||||||
| @@ -192,6 +194,8 @@ var sameCases = []string{ | |||||||
| - [[Links, Language bindings, Engine bindings|Links]] | - [[Links, Language bindings, Engine bindings|Links]] | ||||||
| - [[Tips]] | - [[Tips]] | ||||||
|  |  | ||||||
|  | See commit fc7f44dadf | ||||||
|  |  | ||||||
| Ideas and codes | Ideas and codes | ||||||
|  |  | ||||||
| - Bezier widget (by @r-lyeh) ` + AppURL + `ocornut/imgui/issues/786 | - Bezier widget (by @r-lyeh) ` + AppURL + `ocornut/imgui/issues/786 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user