1 package de.uapcore.lightpit.viewmodel; |
1 package de.uapcore.lightpit.viewmodel; |
2 |
2 |
|
3 import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughExtension; |
|
4 import com.vladsch.flexmark.ext.tables.TablesExtension; |
|
5 import com.vladsch.flexmark.html.HtmlRenderer; |
|
6 import com.vladsch.flexmark.parser.Parser; |
|
7 import com.vladsch.flexmark.util.data.MutableDataSet; |
3 import de.uapcore.lightpit.entities.Issue; |
8 import de.uapcore.lightpit.entities.Issue; |
4 import de.uapcore.lightpit.entities.IssueComment; |
9 import de.uapcore.lightpit.entities.IssueComment; |
5 |
10 |
|
11 import java.util.Arrays; |
6 import java.util.List; |
12 import java.util.List; |
7 |
13 |
8 public class IssueDetailView extends ProjectView { |
14 public class IssueDetailView extends ProjectView { |
9 private Issue issue; |
15 private Issue issue; |
10 |
16 |
23 } |
29 } |
24 |
30 |
25 public void setComments(List<IssueComment> comments) { |
31 public void setComments(List<IssueComment> comments) { |
26 this.comments = comments; |
32 this.comments = comments; |
27 } |
33 } |
|
34 |
|
35 public void processMarkdown() { |
|
36 final var options = new MutableDataSet() |
|
37 .set(Parser.EXTENSIONS, Arrays.asList(TablesExtension.create(), StrikethroughExtension.create())) |
|
38 .toImmutable(); |
|
39 final var parser = Parser.builder(options).build(); |
|
40 final var renderer = HtmlRenderer.builder(options).build(); |
|
41 |
|
42 issue.setDescription(renderer.render(parser.parse(issue.getDescription()))); |
|
43 for (var comment : comments) { |
|
44 comment.setComment(renderer.render(parser.parse(comment.getComment()))); |
|
45 } |
|
46 } |
28 } |
47 } |