diff --git a/src/main/scala/gitbucket/core/view/LinkConverter.scala b/src/main/scala/gitbucket/core/view/LinkConverter.scala
index 7792626..36d55f5 100644
--- a/src/main/scala/gitbucket/core/view/LinkConverter.scala
+++ b/src/main/scala/gitbucket/core/view/LinkConverter.scala
@@ -18,47 +18,48 @@
escaped
// convert username/project@SHA to link
.replaceBy("(?<=(^|\\W))([a-zA-Z0-9\\-_]+)/([a-zA-Z0-9\\-_\\.]+)@([a-f0-9]{40})(?=(\\W|$))".r){ m =>
- getAccountByUserName(m.group(2)).map { _ =>
- s"""${m.group(2)}/${m.group(3)}@${m.group(4).substring(0, 7)}"""
+ getAccountByUserName(m.group(2)).map { _ =>
+ s"""${m.group(2)}/${m.group(3)}@${m.group(4).substring(0, 7)}"""
+ }
}
- }
// convert username/project#Num to link
.replaceBy( ("(?<=(^|\\W))([a-zA-Z0-9\\-_]+)/([a-zA-Z0-9\\-_\\.]+)" + issueIdPrefix + "([0-9]+)(?=(\\W|$))").r){ m =>
- getIssue(m.group(2), m.group(3), m.group(4)) match {
- case Some(issue) if (issue.isPullRequest)
- => Some( s"""${m.group(2)}/${m.group(3)}#${m.group(4)}""")
- case Some(_) => Some( s"""${m.group(2)}/${m.group(3)}#${m.group(4)}""")
- case None => Some( s"""${m.group(2)}/${m.group(3)}#${m.group(4)}""")
+ getIssue(m.group(2), m.group(3), m.group(4)) match {
+ case Some(issue) if (issue.isPullRequest)
+ => Some( s"""${m.group(2)}/${m.group(3)}#${m.group(4)}""")
+ case Some(_) => Some( s"""${m.group(2)}/${m.group(3)}#${m.group(4)}""")
+ case None => Some( s"""${m.group(2)}/${m.group(3)}#${m.group(4)}""")
+ }
}
- }
// convert username@SHA to link
.replaceBy( ("(?<=(^|\\W))([a-zA-Z0-9\\-_]+)@([a-f0-9]{40})(?=(\\W|$))").r ) { m =>
- getAccountByUserName(m.group(2)).map { _ =>
- s"""${m.group(2)}@${m.group(3).substring(0, 7)}"""
+ getAccountByUserName(m.group(2)).map { _ =>
+ s"""${m.group(2)}@${m.group(3).substring(0, 7)}"""
+ }
}
- }
// convert username#Num to link
.replaceBy( ("(?<=(^|\\W))([a-zA-Z0-9\\-_]+)" + issueIdPrefix + "([0-9]+)(?=(\\W|$))").r ) { m =>
- getIssue(m.group(2), repository.name, m.group(3)) match {
- case Some(issue) if(issue.isPullRequest)
- => Some(s"""${m.group(2)}#${m.group(3)}""")
- case Some(_) => Some(s"""${m.group(2)}#${m.group(3)}""")
- case None => Some(s"""${m.group(2)}#${m.group(3)}""")
+ getIssue(m.group(2), repository.name, m.group(3)) match {
+ case Some(issue) if(issue.isPullRequest)
+ => Some(s"""${m.group(2)}#${m.group(3)}""")
+ case Some(_) => Some(s"""${m.group(2)}#${m.group(3)}""")
+ case None => Some(s"""${m.group(2)}#${m.group(3)}""")
+ }
}
- }
// convert issue id to link
.replaceBy(("(?<=(^|\\W))(GH-|" + issueIdPrefix + ")([0-9]+)(?=(\\W|$))").r){ m =>
- getIssue(repository.owner, repository.name, m.group(3)) match {
- case Some(issue) if(issue.isPullRequest)
- => Some(s"""${m.group(2)}${m.group(3)}""")
- case Some(_) => Some(s"""${m.group(2)}${m.group(3)}""")
- case None => Some(s"""${m.group(2)}${m.group(3)}""")
+ val prefix = if(m.group(2) == "issue:") "#" else m.group(2)
+ getIssue(repository.owner, repository.name, m.group(3)) match {
+ case Some(issue) if(issue.isPullRequest)
+ => Some(s"""${prefix}${m.group(3)}""")
+ case Some(_) => Some(s"""${prefix}${m.group(3)}""")
+ case None => Some(s"""${m.group(2)}${m.group(3)}""")
+ }
}
- }
// convert @username to link
.replaceBy("(?<=(^|\\W))@([a-zA-Z0-9\\-_\\.]+)(?=(\\W|$))".r){ m =>