diff --git a/src/main/scala/gitbucket/core/plugin/Renderer.scala b/src/main/scala/gitbucket/core/plugin/Renderer.scala
index 16fd533..b4c333e 100644
--- a/src/main/scala/gitbucket/core/plugin/Renderer.scala
+++ b/src/main/scala/gitbucket/core/plugin/Renderer.scala
@@ -3,6 +3,7 @@
import gitbucket.core.controller.Context
import gitbucket.core.service.RepositoryService
import gitbucket.core.view.Markdown
+import gitbucket.core.view.helpers.urlLink
import play.twirl.api.Html
/**
@@ -33,12 +34,7 @@
object DefaultRenderer extends Renderer {
override def render(request: RenderRequest): Html = {
- import request._
- Html(
- s"${
- fileContent.split("(\\r\\n)|\\n").map(xml.Utility.escape(_)).mkString("
")
- }"
- )
+ Html(s"""${urlLink(request.fileContent)}
""")
}
}
@@ -51,4 +47,4 @@
enableRefsLink: Boolean,
enableAnchor: Boolean,
context: Context
-)
\ No newline at end of file
+)
diff --git a/src/main/scala/gitbucket/core/view/helpers.scala b/src/main/scala/gitbucket/core/view/helpers.scala
index 6f38ccb..41088aa 100644
--- a/src/main/scala/gitbucket/core/view/helpers.scala
+++ b/src/main/scala/gitbucket/core/view/helpers.scala
@@ -346,10 +346,10 @@
}
// This pattern comes from: http://stackoverflow.com/a/4390768/1771641 (extract-url-from-string)
- private[this] val detectAndRenderLinksRegex = """(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,13}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))""".r
+ private[this] val urlRegex = """(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,13}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))""".r
- def detectAndRenderLinks(text: String, repository: RepositoryInfo)(implicit context: Context): String = {
- val matches = detectAndRenderLinksRegex.findAllMatchIn(text).toSeq
+ def urlLink(text: String): String = {
+ val matches = urlRegex.findAllMatchIn(text).toSeq
val (x, pos) = matches.foldLeft((collection.immutable.Seq.empty[Html], 0)){ case ((x, pos), m) =>
val url = m.group(0)
@@ -361,8 +361,7 @@
}
// append rest fragment
val out = if (pos < text.length) x :+ HtmlFormat.escape(text.substring(pos)) else x
-
- decorateHtml(HtmlFormat.fill(out).toString, repository)
+ HtmlFormat.fill(out).toString
}
/**
diff --git a/src/main/twirl/gitbucket/core/repo/files.scala.html b/src/main/twirl/gitbucket/core/repo/files.scala.html
index 442ee8b..f3e64db 100644
--- a/src/main/twirl/gitbucket/core/repo/files.scala.html
+++ b/src/main/twirl/gitbucket/core/repo/files.scala.html
@@ -25,7 +25,7 @@
@if(pathList.isEmpty) {
@repository.repository.description.map { description =>
- @Html(helpers.detectAndRenderLinks(description, repository)) + @Html(helpers.decorateHtml(helpers.urlLink(description), repository))
} } diff --git a/src/main/webapp/assets/common/css/gitbucket.css b/src/main/webapp/assets/common/css/gitbucket.css index b0eb58b..b5d8c64 100644 --- a/src/main/webapp/assets/common/css/gitbucket.css +++ b/src/main/webapp/assets/common/css/gitbucket.css @@ -584,6 +584,11 @@ font-size: 12px; } +div.markdown-body pre.plain { + background: white; + font-size: 14px; +} + #readme { margin-top: 20px; }