mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Fix commit sha1 URL rendering in markdown (#1677)
* Fix commit sha1 URL rendering in markdown * Add unit test for commit sha1 markdown rendering when sha1 has space before it * Change to better variable name
This commit is contained in:
		| @@ -56,7 +56,7 @@ var ( | |||||||
| 	// Sha1CurrentPattern matches string that represents a commit SHA, e.g. d8a994ef243349f321568f9e36d5c3f444b99cae | 	// Sha1CurrentPattern matches string that represents a commit SHA, e.g. d8a994ef243349f321568f9e36d5c3f444b99cae | ||||||
| 	// FIXME: this pattern matches pure numbers as well, right now we do a hack to check in renderSha1CurrentPattern | 	// FIXME: this pattern matches pure numbers as well, right now we do a hack to check in renderSha1CurrentPattern | ||||||
| 	// by converting string to a number. | 	// by converting string to a number. | ||||||
| 	Sha1CurrentPattern = regexp.MustCompile(`(?:^|\s|\()[0-9a-f]{40}\b`) | 	Sha1CurrentPattern = regexp.MustCompile(`(?:^|\s|\()([0-9a-f]{40})\b`) | ||||||
|  |  | ||||||
| 	// ShortLinkPattern matches short but difficult to parse [[name|link|arg=test]] syntax | 	// ShortLinkPattern matches short but difficult to parse [[name|link|arg=test]] syntax | ||||||
| 	ShortLinkPattern = regexp.MustCompile(`(\[\[.*\]\]\w*)`) | 	ShortLinkPattern = regexp.MustCompile(`(\[\[.*\]\]\w*)`) | ||||||
| @@ -542,12 +542,12 @@ func RenderCrossReferenceIssueIndexPattern(rawBytes []byte, urlPrefix string, me | |||||||
| func renderSha1CurrentPattern(rawBytes []byte, urlPrefix string) []byte { | func renderSha1CurrentPattern(rawBytes []byte, urlPrefix string) []byte { | ||||||
| 	ms := Sha1CurrentPattern.FindAllSubmatch(rawBytes, -1) | 	ms := Sha1CurrentPattern.FindAllSubmatch(rawBytes, -1) | ||||||
| 	for _, m := range ms { | 	for _, m := range ms { | ||||||
| 		all := m[0] | 		hash := m[1] | ||||||
| 		if com.StrTo(all).MustInt() > 0 { | 		if com.StrTo(hash).MustInt() > 0 { | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
| 		rawBytes = bytes.Replace(rawBytes, all, []byte(fmt.Sprintf( | 		rawBytes = bytes.Replace(rawBytes, hash, []byte(fmt.Sprintf( | ||||||
| 			`<a href="%s">%s</a>`, URLJoin(urlPrefix, "commit", string(all)), base.ShortSha(string(all)))), -1) | 			`<a href="%s">%s</a>`, URLJoin(urlPrefix, "commit", string(hash)), base.ShortSha(string(hash)))), -1) | ||||||
| 	} | 	} | ||||||
| 	return rawBytes | 	return rawBytes | ||||||
| } | } | ||||||
|   | |||||||
| @@ -296,6 +296,7 @@ func TestRender_Commits(t *testing.T) { | |||||||
| 	test(sha, `<p><a href="`+commit+`" rel="nofollow">b6dd6210ea</a></p>`) | 	test(sha, `<p><a href="`+commit+`" rel="nofollow">b6dd6210ea</a></p>`) | ||||||
| 	test(commit, `<p><a href="`+commit+`" rel="nofollow">b6dd6210ea</a></p>`) | 	test(commit, `<p><a href="`+commit+`" rel="nofollow">b6dd6210ea</a></p>`) | ||||||
| 	test(tree, `<p><a href="`+src+`" rel="nofollow">b6dd6210ea/src</a></p>`) | 	test(tree, `<p><a href="`+src+`" rel="nofollow">b6dd6210ea/src</a></p>`) | ||||||
|  | 	test("commit "+sha, `<p>commit <a href="`+commit+`" rel="nofollow">b6dd6210ea</a></p>`) | ||||||
| } | } | ||||||
|  |  | ||||||
| func TestRender_Images(t *testing.T) { | func TestRender_Images(t *testing.T) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user