mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00: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