src/main/kotlin/de/uapcore/lightpit/viewmodel/Issues.kt

changeset 234
d71bc6db42ef
parent 231
dcb1d5a7ea3a
child 249
6bded7090719
     1.1 --- a/src/main/kotlin/de/uapcore/lightpit/viewmodel/Issues.kt	Sun Sep 26 14:59:36 2021 +0200
     1.2 +++ b/src/main/kotlin/de/uapcore/lightpit/viewmodel/Issues.kt	Sat Oct 09 17:46:12 2021 +0200
     1.3 @@ -30,6 +30,7 @@
     1.4  import com.vladsch.flexmark.html.HtmlRenderer
     1.5  import com.vladsch.flexmark.parser.Parser
     1.6  import com.vladsch.flexmark.util.data.MutableDataSet
     1.7 +import com.vladsch.flexmark.util.data.SharedDataKeys
     1.8  import de.uapcore.lightpit.entities.*
     1.9  import de.uapcore.lightpit.types.IssueCategory
    1.10  import de.uapcore.lightpit.types.IssueStatus
    1.11 @@ -68,19 +69,30 @@
    1.12      val version: Version? = null,
    1.13      val component: Component? = null
    1.14  ) : View() {
    1.15 +    private val parser: Parser
    1.16 +    private val renderer: HtmlRenderer
    1.17  
    1.18      init {
    1.19          val options = MutableDataSet()
    1.20 -            .set(Parser.EXTENSIONS, listOf(TablesExtension.create(), StrikethroughExtension.create()))
    1.21 -        val parser = Parser.builder(options).build()
    1.22 -        val renderer = HtmlRenderer.builder(options).build()
    1.23 -        val process = fun(it: String) = renderer.render(parser.parse(it))
    1.24 +            .set(SharedDataKeys.EXTENSIONS, listOf(TablesExtension.create(), StrikethroughExtension.create()))
    1.25 +        parser = Parser.builder(options).build()
    1.26 +        renderer = HtmlRenderer.builder(options
    1.27 +            .set(HtmlRenderer.ESCAPE_HTML, true)
    1.28 +        ).build()
    1.29  
    1.30 -        issue.description = process(issue.description ?: "")
    1.31 +        issue.description = formatMarkdown(issue.description ?: "")
    1.32          for (comment in comments) {
    1.33 -            comment.commentFormatted = process(comment.comment)
    1.34 +            comment.commentFormatted = formatMarkdown(comment.comment)
    1.35          }
    1.36      }
    1.37 +
    1.38 +    private fun formatEmojis(text: String) = text
    1.39 +        .replace("(/)", "✅")
    1.40 +        .replace("(x)", "❌")
    1.41 +        .replace("(!)", "⚡")
    1.42 +
    1.43 +    private fun formatMarkdown(text: String) =
    1.44 +        renderer.render(parser.parse(formatEmojis(text)))
    1.45  }
    1.46  
    1.47  class IssueEditView(

mercurial