
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 gitbucket.core.view.helpers.urlLink
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,
branch = branch,
enableWikiLink = enableWikiLink,
enableRefsLink = enableRefsLink,
enableAnchor = enableAnchor,
enableLineBreaks = false,
enableTaskList = true,
hasWritePermission = false
)(context)
)
}
}
object DefaultRenderer extends Renderer {
override def render(request: RenderRequest): Html = {
Html(s"""${urlLink(request.fileContent)}
""")
}
}
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