diff --git a/src/main/scala/view/Markdown.scala b/src/main/scala/view/Markdown.scala index 5f718c5..90da6da 100644 --- a/src/main/scala/view/Markdown.scala +++ b/src/main/scala/view/Markdown.scala @@ -1,12 +1,14 @@ package view import util.StringUtil +import util.ControlUtil._ +import util.Directory._ import org.parboiled.common.StringUtils import org.pegdown._ import org.pegdown.ast._ import org.pegdown.LinkRenderer.Rendering import scala.collection.JavaConverters._ -import service.RequestCache +import service.{RequestCache, WikiService} object Markdown { @@ -29,7 +31,7 @@ } class GitBucketLinkRender(context: app.Context, repository: service.RepositoryService.RepositoryInfo, - enableWikiLink: Boolean) extends LinkRenderer { + enableWikiLink: Boolean) extends LinkRenderer with WikiService { override def render(node: WikiLinkNode): Rendering = { if(enableWikiLink){ try { @@ -40,8 +42,14 @@ } else { (text, text) } + val url = repository.url.replaceFirst("/git/", "/").replaceFirst("\\.git$", "") + "/wiki/" + StringUtil.urlEncode(page) - new Rendering(url, label) + + if(getWikiPage(repository.owner, repository.name, page).isDefined){ + new Rendering(url, label) + } else { + new Rendering(url, label).withAttribute("class", "absent") + } } catch { case e: java.io.UnsupportedEncodingException => throw new IllegalStateException } diff --git a/src/main/webapp/assets/common/css/gitbucket.css b/src/main/webapp/assets/common/css/gitbucket.css index 0233826..03e3e6a 100644 --- a/src/main/webapp/assets/common/css/gitbucket.css +++ b/src/main/webapp/assets/common/css/gitbucket.css @@ -649,6 +649,10 @@ margin-top: 0px; } +a.absent { + color: #c00; +} + /****************************************************************************/ /* Repository Settings */ /****************************************************************************/