hq/app/logic/DocumentUtil.scala (25 lines of code) (raw):

package logic import com.vladsch.flexmark.html.HtmlRenderer import com.vladsch.flexmark.parser.Parser import java.io.InputStream import com.vladsch.flexmark.util.data.MutableDataSet import scala.io.Source import play.twirl.api.Html object DocumentUtil { private val options = new MutableDataSet() private val parser = Parser.builder(options).build() private val renderer = HtmlRenderer.builder(options).build def convert(markdownfile: String): Option[Html] = { getClass getResourceAsStream s"/$markdownfile.md" match { case is: InputStream => val sourceString = Source.fromInputStream(is).mkString Some(renderInputAsHtml(sourceString)) case _ => None } } private def renderInputAsHtml(content: String) = { val document = parser.parse(content) new Html(renderer.render(document)) } }