diff --git a/project/build.scala b/project/build.scala index 9a19a67..3e10eab 100644 --- a/project/build.scala +++ b/project/build.scala @@ -38,7 +38,8 @@ scalaVersion := ScalaVersion, resolvers ++= Seq( Classpaths.typesafeReleases, - "amateras-repo" at "http://amateras.sourceforge.jp/mvn/" + "amateras-repo" at "http://amateras.sourceforge.jp/mvn/", + "amateras-snapshot-repo" at "http://amateras.sourceforge.jp/mvn-snapshot/" ), scalacOptions := Seq("-deprecation", "-language:postfixOps"), libraryDependencies ++= Seq( @@ -51,7 +52,7 @@ "jp.sf.amateras" %% "scalatra-forms" % "0.1.0", "commons-io" % "commons-io" % "2.4", // "org.pegdown" % "pegdown" % "1.5.0", - "io.github.gitbucket" % "markedj" % "1.0.0", + "io.github.gitbucket" % "markedj" % "1.0.1-SNAPSHOT", "org.apache.commons" % "commons-compress" % "1.9", "org.apache.commons" % "commons-email" % "1.3.3", "org.apache.httpcomponents" % "httpclient" % "4.3.6", diff --git a/src/main/scala/gitbucket/core/view/Markdown.scala b/src/main/scala/gitbucket/core/view/Markdown.scala index ebdf976..aefdef5 100644 --- a/src/main/scala/gitbucket/core/view/Markdown.scala +++ b/src/main/scala/gitbucket/core/view/Markdown.scala @@ -1,19 +1,14 @@ package gitbucket.core.view import java.text.Normalizer -import java.util.Locale +import java.util.{Optional, Locale} import java.util.regex.Pattern import gitbucket.core.controller.Context import gitbucket.core.service.{RepositoryService, RequestCache, WikiService} import gitbucket.core.util.StringUtil import io.github.gitbucket.markedj._ -//import org.parboiled.common.StringUtils -//import org.pegdown.LinkRenderer.Rendering -//import org.pegdown._ -//import org.pegdown.ast._ - -import scala.collection.JavaConverters._ +import io.github.gitbucket.markedj.Utils._ object Markdown { @@ -36,16 +31,19 @@ enableTaskList: Boolean = false, hasWritePermission: Boolean = false, pages: List[String] = Nil)(implicit context: Context): String = { - Marked.marked(markdown, new Options()) -// // escape issue id -// val s = if(enableRefsLink){ -// markdown.replaceAll("(?<=(\\W|^))#(\\d+)(?=(\\W|$))", "issue:$2") -// } else markdown -// -// // escape task list -// val source = if(enableTaskList){ -// GitBucketHtmlSerializer.escapeTaskList(s) -// } else s + // escape issue id + val s = if(enableRefsLink){ + markdown.replaceAll("(?<=(\\W|^))#(\\d+)(?=(\\W|$))", "issue:$2") + } else markdown + + // escape task list + val source = if(enableTaskList){ + GitBucketHtmlSerializer.escapeTaskList(s) + } else s + + val options = new Options() + Marked.marked(source, options, new GitBucketMarkedRenderer(options)) + // // val rootNode = new PegDownProcessor( // Extensions.AUTOLINKS | Extensions.WIKILINKS | Extensions.FENCED_CODE_BLOCKS | @@ -59,6 +57,19 @@ } } +class GitBucketMarkedRenderer(options: Options) extends Renderer(options) { + + override def code(code: String, lang: Optional[String], escaped: Boolean): String = { + "
" +
+      (if(escaped) code else escape(code, true)) + "
" + } + + override def text(text: String): String = { + text + } + +} + //class GitBucketLinkRender( // context: Context, // repository: RepositoryService.RepositoryInfo,