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(