diff --git a/src/main/scala/gitbucket/core/controller/IssuesController.scala b/src/main/scala/gitbucket/core/controller/IssuesController.scala index 21821a5..e358844 100644 --- a/src/main/scala/gitbucket/core/controller/IssuesController.scala +++ b/src/main/scala/gitbucket/core/controller/IssuesController.scala @@ -231,10 +231,20 @@ } getOrElse { contentType = formats("json") org.json4s.jackson.Serialization.write( - Map("title" -> x.title, - "content" -> Markdown.toHtml(x.content getOrElse "No description given.", - repository, false, true, true, true, isEditable(x.userName, x.repositoryName, x.openedUserName)) - )) + Map( + "title" -> x.title, + "content" -> Markdown.toHtml( + markdown = x.content getOrElse "No description given.", + repository = repository, + enableWikiLink = false, + enableRefsLink = true, + enableAnchor = true, + enableLineBreaks = true, + enableTaskList = true, + hasWritePermission = isEditable(x.userName, x.repositoryName, x.openedUserName) + ) + ) + ) } } else Unauthorized } getOrElse NotFound @@ -249,9 +259,19 @@ } getOrElse { contentType = formats("json") org.json4s.jackson.Serialization.write( - Map("content" -> view.Markdown.toHtml(x.content, - repository, false, true, true, isEditable(x.userName, x.repositoryName, x.commentedUserName)) - )) + Map( + "content" -> view.Markdown.toHtml( + markdown = x.content, + repository = repository, + enableWikiLink = false, + enableRefsLink = true, + enableAnchor = true, + enableLineBreaks = true, + enableTaskList = true, + hasWritePermission = isEditable(x.userName, x.repositoryName, x.commentedUserName) + ) + ) + ) } } else Unauthorized } getOrElse NotFound diff --git a/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala b/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala index 7e44a91..d88bdc1 100644 --- a/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala +++ b/src/main/scala/gitbucket/core/controller/RepositoryViewerController.scala @@ -102,11 +102,15 @@ */ post("/:owner/:repository/_preview")(referrersOnly { repository => contentType = "text/html" - helpers.markdown(params("content"), repository, - params("enableWikiLink").toBoolean, - params("enableRefsLink").toBoolean, - params("enableTaskList").toBoolean, - hasWritePermission(repository.owner, repository.name, context.loginAccount)) + helpers.markdown( + markdown = params("content"), + repository = repository, + enableWikiLink = params("enableWikiLink").toBoolean, + enableRefsLink = params("enableRefsLink").toBoolean, + enableLineBreaks = params("enableLineBreaks").toBoolean, + enableTaskList = params("enableTaskList").toBoolean, + hasWritePermission = hasWritePermission(repository.owner, repository.name, context.loginAccount) + ) }) /** @@ -424,8 +428,16 @@ } getOrElse { contentType = formats("json") org.json4s.jackson.Serialization.write( - Map("content" -> view.Markdown.toHtml(x.content, - repository, false, true, true, isEditable(x.userName, x.repositoryName, x.commentedUserName)) + Map( + "content" -> view.Markdown.toHtml( + markdown = x.content, + repository = repository, + enableWikiLink = false, + enableRefsLink = true, + enableAnchor = true, + enableLineBreaks = true, + hasWritePermission = isEditable(x.userName, x.repositoryName, x.commentedUserName) + ) )) } } else Unauthorized diff --git a/src/main/scala/gitbucket/core/plugin/Renderer.scala b/src/main/scala/gitbucket/core/plugin/Renderer.scala index ed8a42b..16fd533 100644 --- a/src/main/scala/gitbucket/core/plugin/Renderer.scala +++ b/src/main/scala/gitbucket/core/plugin/Renderer.scala @@ -20,7 +20,14 @@ object MarkdownRenderer extends Renderer { override def render(request: RenderRequest): Html = { import request._ - Html(Markdown.toHtml(fileContent, repository, enableWikiLink, enableRefsLink, enableAnchor)(context)) + Html(Markdown.toHtml( + markdown = fileContent, + repository = repository, + enableWikiLink = enableWikiLink, + enableRefsLink = enableRefsLink, + enableAnchor = enableAnchor, + enableLineBreaks = false + )(context)) } } @@ -35,11 +42,13 @@ } } -case class RenderRequest(filePath: List[String], - fileContent: String, - branch: String, - repository: RepositoryService.RepositoryInfo, - enableWikiLink: Boolean, - enableRefsLink: Boolean, - enableAnchor: Boolean, - context: Context) \ No newline at end of file +case class RenderRequest( + filePath: List[String], + fileContent: String, + branch: String, + repository: RepositoryService.RepositoryInfo, + enableWikiLink: Boolean, + enableRefsLink: Boolean, + enableAnchor: Boolean, + context: Context +) \ No newline at end of file diff --git a/src/main/scala/gitbucket/core/util/Notifier.scala b/src/main/scala/gitbucket/core/util/Notifier.scala index b851c7b..c5efe0f 100644 --- a/src/main/scala/gitbucket/core/util/Notifier.scala +++ b/src/main/scala/gitbucket/core/util/Notifier.scala @@ -75,7 +75,14 @@ database withSession { implicit session => defining( s"[${r.name}] ${issue.title} (#${issue.issueId})" -> - msg(Markdown.toHtml(content, r, false, true, false))) { case (subject, msg) => + msg(Markdown.toHtml( + markdown = content, + repository = r, + enableWikiLink = false, + enableRefsLink = true, + enableAnchor = false, + enableLineBreaks = false + ))) { case (subject, msg) => recipients(issue) { to => val email = new HtmlEmail email.setHostName(smtp.host) diff --git a/src/main/scala/gitbucket/core/view/Markdown.scala b/src/main/scala/gitbucket/core/view/Markdown.scala index 8b655ea..2d78546 100644 --- a/src/main/scala/gitbucket/core/view/Markdown.scala +++ b/src/main/scala/gitbucket/core/view/Markdown.scala @@ -19,6 +19,7 @@ * @param enableWikiLink if true then wiki style link is available in markdown * @param enableRefsLink if true then issue reference (e.g. #123) is rendered as link * @param enableAnchor if true then anchor for headline is generated + * @param enableLineBreaks if true then render line breaks as <br> * @param enableTaskList if true then task list syntax is available * @param hasWritePermission true if user has writable to ths given repository * @param pages the list of existing Wiki pages @@ -28,6 +29,7 @@ enableWikiLink: Boolean, enableRefsLink: Boolean, enableAnchor: Boolean, + enableLineBreaks: Boolean, enableTaskList: Boolean = false, hasWritePermission: Boolean = false, pages: List[String] = Nil)(implicit context: Context): String = { @@ -43,7 +45,7 @@ val options = new Options() options.setSanitize(true) - options.setBreaks(true) + options.setBreaks(enableLineBreaks) val renderer = new GitBucketMarkedRenderer(options, repository, enableWikiLink, enableRefsLink, enableAnchor, enableTaskList, hasWritePermission, pages) Marked.marked(source, options, renderer) } diff --git a/src/main/scala/gitbucket/core/view/helpers.scala b/src/main/scala/gitbucket/core/view/helpers.scala index 3ee2c91..69418fc 100644 --- a/src/main/scala/gitbucket/core/view/helpers.scala +++ b/src/main/scala/gitbucket/core/view/helpers.scala @@ -84,14 +84,25 @@ /** * Converts Markdown of Wiki pages to HTML. */ - def markdown(value: String, + def markdown(markdown: String, repository: RepositoryService.RepositoryInfo, enableWikiLink: Boolean, enableRefsLink: Boolean, + enableLineBreaks: Boolean, enableTaskList: Boolean = false, hasWritePermission: Boolean = false, pages: List[String] = Nil)(implicit context: Context): Html = - Html(Markdown.toHtml(value, repository, enableWikiLink, enableRefsLink, true, enableTaskList, hasWritePermission, pages)) + Html(Markdown.toHtml( + markdown = markdown, + repository = repository, + enableWikiLink = enableWikiLink, + enableRefsLink = enableRefsLink, + enableAnchor = true, + enableLineBreaks = enableLineBreaks, + enableTaskList = enableTaskList, + hasWritePermission = hasWritePermission, + pages = pages + )) /** * Render the given source (only markdown is supported in default) as HTML. diff --git a/src/main/twirl/gitbucket/core/helper/commitcomment.scala.html b/src/main/twirl/gitbucket/core/helper/commitcomment.scala.html index 86dd6fc..e26f9c4 100644 --- a/src/main/twirl/gitbucket/core/helper/commitcomment.scala.html +++ b/src/main/twirl/gitbucket/core/helper/commitcomment.scala.html @@ -34,7 +34,15 @@
- @markdown(comment.content, repository, false, true, true, hasWritePermission) + @markdown( + markdown = comment.content, + repository = repository, + enableWikiLink = false, + enableRefsLink = true, + enableLineBreaks = true, + enableTaskList = false, + hasWritePermission = hasWritePermission + )
diff --git a/src/main/twirl/gitbucket/core/helper/preview.scala.html b/src/main/twirl/gitbucket/core/helper/preview.scala.html index 937752e..d6df583 100644 --- a/src/main/twirl/gitbucket/core/helper/preview.scala.html +++ b/src/main/twirl/gitbucket/core/helper/preview.scala.html @@ -2,6 +2,7 @@ content: String, enableWikiLink: Boolean, enableRefsLink: Boolean, + enableLineBreaks: Boolean, enableTaskList: Boolean, hasWritePermission: Boolean, style: String = "", @@ -50,10 +51,11 @@ $('#preview@uid').click(function(){ $('#preview-area@uid').html(' Previewing...'); $.post('@url(repository)/_preview', { - content : $('#content@uid').val(), - enableWikiLink : @enableWikiLink, - enableRefsLink : @enableRefsLink, - enableTaskList : @enableTaskList + content : $('#content@uid').val(), + enableWikiLink : @enableWikiLink, + enableRefsLink : @enableRefsLink, + enableLineBreaks : @enableLineBreaks, + enableTaskList : @enableTaskList }, function(data){ $('#preview-area@uid').html(data); prettyPrint(); diff --git a/src/main/twirl/gitbucket/core/issues/commentform.scala.html b/src/main/twirl/gitbucket/core/issues/commentform.scala.html index b293d8c..d6a63d1 100644 --- a/src/main/twirl/gitbucket/core/issues/commentform.scala.html +++ b/src/main/twirl/gitbucket/core/issues/commentform.scala.html @@ -15,6 +15,7 @@ content = "", enableWikiLink = false, enableRefsLink = true, + enableLineBreaks = true, enableTaskList = true, hasWritePermission = hasWritePermission, style = "", diff --git a/src/main/twirl/gitbucket/core/issues/commentlist.scala.html b/src/main/twirl/gitbucket/core/issues/commentlist.scala.html index fa656b4..9ddc095 100644 --- a/src/main/twirl/gitbucket/core/issues/commentlist.scala.html +++ b/src/main/twirl/gitbucket/core/issues/commentlist.scala.html @@ -18,7 +18,15 @@
- @markdown(issue.get.content getOrElse "No description provided.", repository, false, true, true, hasWritePermission) + @markdown( + markdown = issue.get.content getOrElse "No description provided.", + repository = repository, + enableWikiLink = false, + enableRefsLink = true, + enableLineBreaks = true, + enableTaskList = true, + hasWritePermission = hasWritePermission + )
} @@ -53,14 +61,30 @@
@if(comment.action == "commit" && comment.content.split(" ").last.matches("[a-f0-9]{40}")){ - @markdown(comment.content.substring(0, comment.content.length - 41), repository, false, true, true, hasWritePermission) + @markdown( + markdown = comment.content.substring(0, comment.content.length - 41), + repository = repository, + enableWikiLink = false, + enableRefsLink = true, + enableLineBreaks = true, + enableTaskList = true, + hasWritePermission = hasWritePermission + ) } else { @if(comment.action == "refer"){ @defining(comment.content.split(":")){ case Array(issueId, rest @ _*) => @issueLink(repository, issueId.toInt): @rest.mkString(":") } } else { - @markdown(comment.content, repository, false, true, true, hasWritePermission) + @markdown( + markdown = comment.content, + repository = repository, + enableWikiLink = false, + enableRefsLink = true, + enableLineBreaks = true, + enableTaskList = true, + hasWritePermission = hasWritePermission + ) } }
diff --git a/src/main/twirl/gitbucket/core/issues/create.scala.html b/src/main/twirl/gitbucket/core/issues/create.scala.html index bf24d44..2da6bd4 100644 --- a/src/main/twirl/gitbucket/core/issues/create.scala.html +++ b/src/main/twirl/gitbucket/core/issues/create.scala.html @@ -20,6 +20,7 @@ content = "", enableWikiLink = false, enableRefsLink = true, + enableLineBreaks = true, enableTaskList = true, hasWritePermission = hasWritePermission, style = "width: 680px; height: 200px; max-height: 250px;", diff --git a/src/main/twirl/gitbucket/core/issues/milestones/list.scala.html b/src/main/twirl/gitbucket/core/issues/milestones/list.scala.html index 327e5aa..fff7c37 100644 --- a/src/main/twirl/gitbucket/core/issues/milestones/list.scala.html +++ b/src/main/twirl/gitbucket/core/issues/milestones/list.scala.html @@ -79,7 +79,13 @@ @if(milestone.description.isDefined){
- @markdown(milestone.description.get, repository, false, false) + @markdown( + markdown = milestone.description.get, + repository = repository, + enableWikiLink = false, + enableRefsLink = false, + enableLineBreaks = true + )
} diff --git a/src/main/twirl/gitbucket/core/pulls/compare.scala.html b/src/main/twirl/gitbucket/core/pulls/compare.scala.html index b394c56..3f4aeee 100644 --- a/src/main/twirl/gitbucket/core/pulls/compare.scala.html +++ b/src/main/twirl/gitbucket/core/pulls/compare.scala.html @@ -65,6 +65,7 @@ content = "", enableWikiLink = false, enableRefsLink = true, + enableLineBreaks = true, enableTaskList = true, hasWritePermission = true, style = "width: 680px; height: 200px;" diff --git a/src/main/twirl/gitbucket/core/repo/commentform.scala.html b/src/main/twirl/gitbucket/core/repo/commentform.scala.html index 72ca0a4..2aaa162 100644 --- a/src/main/twirl/gitbucket/core/repo/commentform.scala.html +++ b/src/main/twirl/gitbucket/core/repo/commentform.scala.html @@ -20,6 +20,7 @@ content = "", enableWikiLink = false, enableRefsLink = true, + enableLineBreaks = true, enableTaskList = true, hasWritePermission = hasWritePermission, style = "width: 635px; height: 100px; max-height: 150px;", diff --git a/src/main/twirl/gitbucket/core/wiki/edit.scala.html b/src/main/twirl/gitbucket/core/wiki/edit.scala.html index b3b1b5b..a2530be 100644 --- a/src/main/twirl/gitbucket/core/wiki/edit.scala.html +++ b/src/main/twirl/gitbucket/core/wiki/edit.scala.html @@ -27,6 +27,7 @@ content = page.map(_.content).getOrElse(""), enableWikiLink = true, enableRefsLink = false, + enableLineBreaks = false, enableTaskList = false, hasWritePermission = false, style = "width: 900px; height: 400px;", diff --git a/src/main/twirl/gitbucket/core/wiki/page.scala.html b/src/main/twirl/gitbucket/core/wiki/page.scala.html index 576dfa1..3fcadd7 100644 --- a/src/main/twirl/gitbucket/core/wiki/page.scala.html +++ b/src/main/twirl/gitbucket/core/wiki/page.scala.html @@ -58,7 +58,16 @@
- @markdown(page.content, repository, true, false, false, false, pages) + @markdown( + markdown = page.content, + repository = repository, + enableWikiLink = true, + enableRefsLink = false, + enableLineBreaks = false, + enableTaskList = false, + hasWritePermission = false, + pages = pages + )
}