All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gitbucket.core.plugin.Renderer.scala Maven / Gradle / Ivy

package gitbucket.core.plugin

import gitbucket.core.controller.Context
import gitbucket.core.service.RepositoryService
import gitbucket.core.view.Markdown
import play.twirl.api.Html

/**
 * A render engine to render content to HTML.
 */
trait Renderer {

  /**
   * Render the given request to HTML.
   */
  def render(request: RenderRequest): Html

}

object MarkdownRenderer extends Renderer {
  override def render(request: RenderRequest): Html = {
    import request._
    Html(Markdown.toHtml(
      markdown         = fileContent,
      repository       = repository,
      enableWikiLink   = enableWikiLink,
      enableRefsLink   = enableRefsLink,
      enableAnchor     = enableAnchor,
      enableLineBreaks = false
    )(context))
  }
}

object DefaultRenderer extends Renderer {
  override def render(request: RenderRequest): Html = {
    import request._
    Html(
      s"${
        fileContent.split("(\\r\\n)|\\n").map(xml.Utility.escape(_)).mkString("
") }
" ) } } case class RenderRequest( filePath: List[String], fileContent: String, branch: String, repository: RepositoryService.RepositoryInfo, enableWikiLink: Boolean, enableRefsLink: Boolean, enableAnchor: Boolean, context: Context )




© 2015 - 2025 Weber Informatics LLC | Privacy Policy