|  | @@ -76,7 +76,7 @@ func IsReadmeFile(name string) bool {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  var (
 |  |  var (
 | 
											
												
													
														|  |  	// MentionPattern matches string that mentions someone, e.g. @Unknwon
 |  |  	// MentionPattern matches string that mentions someone, e.g. @Unknwon
 | 
											
												
													
														|  | -	MentionPattern = regexp.MustCompile(`(\s|^)@[0-9a-zA-Z-_\.]+`)
 |  | 
 | 
											
												
													
														|  | 
 |  | +	MentionPattern = regexp.MustCompile(`(\s|^|\W)@[0-9a-zA-Z-_\.]+`)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	// CommitPattern matches link to certain commit with or without trailing hash,
 |  |  	// CommitPattern matches link to certain commit with or without trailing hash,
 | 
											
												
													
														|  |  	// e.g. https://try.gogs.io/gogs/gogs/commit/d8a994ef243349f321568f9e36d5c3f444b99cae#diff-2
 |  |  	// e.g. https://try.gogs.io/gogs/gogs/commit/d8a994ef243349f321568f9e36d5c3f444b99cae#diff-2
 | 
											
										
											
												
													
														|  | @@ -101,7 +101,7 @@ var (
 | 
											
												
													
														|  |  func FindAllMentions(content string) []string {
 |  |  func FindAllMentions(content string) []string {
 | 
											
												
													
														|  |  	mentions := MentionPattern.FindAllString(content, -1)
 |  |  	mentions := MentionPattern.FindAllString(content, -1)
 | 
											
												
													
														|  |  	for i := range mentions {
 |  |  	for i := range mentions {
 | 
											
												
													
														|  | -		mentions[i] = strings.TrimSpace(mentions[i])[1:] // Strip @ character
 |  | 
 | 
											
												
													
														|  | 
 |  | +		mentions[i] = mentions[i][strings.Index(mentions[i], "@")+1:] // Strip @ character
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  	return mentions
 |  |  	return mentions
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
										
											
												
													
														|  | @@ -275,7 +275,7 @@ func RenderSha1CurrentPattern(rawBytes []byte, urlPrefix string) []byte {
 | 
											
												
													
														|  |  func RenderSpecialLink(rawBytes []byte, urlPrefix string, metas map[string]string) []byte {
 |  |  func RenderSpecialLink(rawBytes []byte, urlPrefix string, metas map[string]string) []byte {
 | 
											
												
													
														|  |  	ms := MentionPattern.FindAll(rawBytes, -1)
 |  |  	ms := MentionPattern.FindAll(rawBytes, -1)
 | 
											
												
													
														|  |  	for _, m := range ms {
 |  |  	for _, m := range ms {
 | 
											
												
													
														|  | -		m = bytes.TrimSpace(m)
 |  | 
 | 
											
												
													
														|  | 
 |  | +		m = m[bytes.Index(m, []byte("@")):]
 | 
											
												
													
														|  |  		rawBytes = bytes.Replace(rawBytes, m,
 |  |  		rawBytes = bytes.Replace(rawBytes, m,
 | 
											
												
													
														|  |  			[]byte(fmt.Sprintf(`<a href="%s/%s">%s</a>`, setting.AppSubUrl, m[1:], m)), -1)
 |  |  			[]byte(fmt.Sprintf(`<a href="%s/%s">%s</a>`, setting.AppSubUrl, m[1:], m)), -1)
 | 
											
												
													
														|  |  	}
 |  |  	}
 |