From 641d50655961f137955485f901b6f744a3bdcaa8 Mon Sep 17 00:00:00 2001 From: takezoe Date: Sun, 3 Nov 2013 18:06:58 +0900 Subject: [PATCH] (refs #177)Fix regular expressions for issue link conversion. --- src/main/scala/view/LinkConverter.scala | 15 +++++++-------- src/main/scala/view/Markdown.scala | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/main/scala/view/LinkConverter.scala b/src/main/scala/view/LinkConverter.scala index f15bfe677..121cb2de9 100644 --- a/src/main/scala/view/LinkConverter.scala +++ b/src/main/scala/view/LinkConverter.scala @@ -14,22 +14,21 @@ trait LinkConverter { self: RequestCache => // escape HTML tags .replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """) // convert issue id to link - .replaceBy(("(^|\\W)" + issueIdPrefix + "(\\d+)(\\W|$)").r){ m => + .replaceBy(("(?<=(^|\\W))" + issueIdPrefix + "([0-9]+)(?=(\\W|$))").r){ m => getIssue(repository.owner, repository.name, m.group(2)) match { case Some(issue) if(issue.isPullRequest) - => Some(s"""${m.group(1)}#${m.group(2)}${m.group(3)}""") - case Some(_) => Some(s"""${m.group(1)}#${m.group(2)}${m.group(3)}""") - case None => Some(s"""${m.group(1)}#${m.group(2)}${m.group(3)}""") - + => Some(s"""#${m.group(2)}""") + case Some(_) => Some(s"""#${m.group(2)}""") + case None => Some(s"""#${m.group(2)}""") } } // convert @username to link - .replaceBy("(^|\\W)@([a-zA-Z0-9\\-_]+)(\\W|$)".r){ m => + .replaceBy("(?<=(^|\\W))@([a-zA-Z0-9\\-_]+)(?=(\\W|$))".r){ m => getAccountByUserName(m.group(2)).map { _ => - s"""${m.group(1)}@${m.group(2)}${m.group(3)}""" + s"""@${m.group(2)}""" } } // convert commit id to link - .replaceAll("(^|\\W)([a-f0-9]{40})(\\W|$)", s"""$$1$$2$$3""") + .replaceAll("(?<=(^|\\W))([a-f0-9]{40})(?=(\\W|$))", s"""$$2""") } } diff --git a/src/main/scala/view/Markdown.scala b/src/main/scala/view/Markdown.scala index 90da6da4f..7d796eefd 100644 --- a/src/main/scala/view/Markdown.scala +++ b/src/main/scala/view/Markdown.scala @@ -19,7 +19,7 @@ object Markdown { enableWikiLink: Boolean, enableRefsLink: Boolean)(implicit context: app.Context): String = { // escape issue id val source = if(enableRefsLink){ - markdown.replaceAll("(^|\\W)#([0-9]+)(\\W|$)", "$1issue:$2$3") + markdown.replaceAll("(?<=(\\W|^))#(\\d+)(?=(\\W|$))", "issue:$2") } else markdown val rootNode = new PegDownProcessor(