(refs #17)Fix wiki link.

This commit is contained in:
takezoe
2013-07-04 17:26:32 +09:00
parent d0f052e056
commit 869930165c

View File

@@ -25,8 +25,6 @@ class GitBucketLinkRender(context: app.Context, repository: service.RepositorySe
enableWikiLink: Boolean) extends LinkRenderer { enableWikiLink: Boolean) extends LinkRenderer {
override def render(node: WikiLinkNode): Rendering = { override def render(node: WikiLinkNode): Rendering = {
if(enableWikiLink){ if(enableWikiLink){
super.render(node)
} else {
try { try {
val text = node.getText val text = node.getText
val (label, page) = if(text.contains('|')){ val (label, page) = if(text.contains('|')){
@@ -35,12 +33,14 @@ class GitBucketLinkRender(context: app.Context, repository: service.RepositorySe
} else { } else {
(text, text) (text, text)
} }
val url = "%s/%s/%s/wiki/%s".format(context.path, repository.owner, repository.name, val url = repository.url.replaceFirst("/git/", "/").replaceFirst("\\.git$", "") +
java.net.URLEncoder.encode(page.replace(' ', '-'), "UTF-8")) "/wiki/" + java.net.URLEncoder.encode(page.replace(' ', '-'), "UTF-8")
new Rendering(url, label) new Rendering(url, label)
} catch { } catch {
case e: java.io.UnsupportedEncodingException => throw new IllegalStateException(); case e: java.io.UnsupportedEncodingException => throw new IllegalStateException();
} }
} else {
super.render(node)
} }
} }
} }
@@ -96,8 +96,11 @@ class GitBucketHtmlSerializer(
} }
private def fixUrl(url: String): String = { private def fixUrl(url: String): String = {
if(!enableWikiLink || url.startsWith("http://") || url.startsWith("https://")) url if(!enableWikiLink || url.startsWith("http://") || url.startsWith("https://")){
else repository.url.replaceFirst("/git/", "/").replaceFirst("\\.git$", "") + "/wiki/_blob/" + url url
} else {
repository.url.replaceFirst("/git/", "/").replaceFirst("\\.git$", "") + "/wiki/_blob/" + url
}
} }
private def printAttribute(name: String, value: String) { private def printAttribute(name: String, value: String) {