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; }